Merge branch '4.9' into 4.10
diff --git a/.gitignore b/.gitignore
index 48aa29b..29b4ffc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,7 +51,6 @@
 *.jar
 *.war
 *.mar
-*.zip
 *.iso
 *.tar.gz
 *.tgz
diff --git a/.java-version b/.java-version
index d3bdbdf..6259340 100644
--- a/.java-version
+++ b/.java-version
@@ -1 +1 @@
-1.7
+1.8
diff --git a/.travis.yml b/.travis.yml
index 359d666..414f6f8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,7 +19,7 @@
 group: edge
 language: java
 jdk:
-- openjdk7
+- oraclejdk8
 python:
   - "2.7"
 cache:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c4ad197..6ac3ad5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,10 +3,26 @@
 
 Summary
 -------
-This document covers how to contribute to the ACS project. These instructions assume you have a GitHub.com account, so if you don't have one you will have to create one. Your proposed code changes will be published to your own fork of the ACS project and you will submit a Pull Request for your changes to be added.
+This document covers how to contribute to the ACS project. ACS uses github PRs to manage code contributions. 
+These instructions assume you have a GitHub.com account, so if you don't have one you will have to create one. Your proposed code changes will be published to your own fork of the ACS project and you will submit a Pull Request for your changes to be added.
 
 _Lets get started!!!_
 
+Bug fixes
+---------
+
+It's very important that we can easily track bug fix commits, so their hashes should remain the same in all branches. 
+Therefore, a pull request (PR) that fixes a bug, should be sent against a release branch. 
+This can be either the "current release" or the "previous release", depending on which ones are maintained. 
+Since the goal is a stable master, bug fixes should be "merged forward" to the next branch in order: "previous release" -> "current release" -> master (in other words: old to new)
+
+Developing new features
+-----------------------
+
+Development should be done in a feature branch, branched off of master. 
+Send a PR(steps below) to get it into master (2x LGTM applies). 
+PR will only be merged when master is open, will be held otherwise until master is open again. 
+No back porting / cherry-picking features to existing branches!
 
 Fork the code 
 -------------
@@ -30,6 +46,7 @@
 Making changes
 --------------
 
+
 It is important that you create a new branch to make changes on and that you do not change the `master` branch (other than to rebase in changes from `upstream/master`).  In this example I will assume you will be making your changes to a branch called `feature_x`.  This `feature_x` branch will be created on your local repository and will be pushed to your forked repository on GitHub.  Once this branch is on your fork you will create a Pull Request for the changes to be added to the ACS project.
 
 It is best practice to create a new branch each time you want to contribute to the project and only track the changes for that pull request in this branch.
@@ -72,6 +89,8 @@
 
 When you are happy with your changes and you are ready to contribute them, you will create a Pull Request on GitHub to do so.  This is done by pushing your local changes to your forked repository (default remote name is `origin`) and then initiating a pull request on GitHub.
 
+Please include JIRA id, detailed information about the bug/feature, what all tests are executed, how the reviewer can test this feature etc. Incase of UI PRs, a screenshot is preferred.
+
 > **IMPORTANT:** Make sure you have rebased your `feature_x` branch to include the latest code from `upstream/master` _before_ you do this.
 
 ``` bash
@@ -105,3 +124,7 @@
 $ git branch -D feature_x
 $ git push origin :feature_x
 ```
+
+Release Principles
+------------------
+Detailed information about ACS release principles is available at https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+principles+for+Apache+CloudStack+4.6+and+up 
diff --git a/INSTALL.md b/INSTALL.md
index 8a83fb0..c69018d 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -154,7 +154,7 @@
 
 ## Notes
 
-If you will be using Xen as your hypervisor, please download [vhd-util](http://download.cloud.com.s3.amazonaws.com/tools/vhd-util)
+If you will be using Xen as your hypervisor, please download [vhd-util](http://download.cloudstack.org/tools/vhd-util)
 
 If management server is installed on RHEL/CentOS, then copy vhd-util into:
 
diff --git a/README.md b/README.md
index 287f8f2..5785328 100644
--- a/README.md
+++ b/README.md
@@ -92,8 +92,7 @@
 
 * [Blog](https://blogs.apache.org/cloudstack)
 * [Twitter](https://twitter.com/cloudstack)
-* [Planet CloudStack](http://planet.apache.org/cloudstack)
-* [Events and meetup](http://lanyrd.com/topics/apache-cloudstack)
+* [Events and meetup](http://cloudstackcollab.org/)
 
 ## Reporting Security Vulnerabilities
 
diff --git a/agent/conf/agent.properties b/agent/conf/agent.properties
index 8b99ee3..3ed382a 100644
--- a/agent/conf/agent.properties
+++ b/agent/conf/agent.properties
@@ -56,6 +56,11 @@
 # local storage path, by default, it's /var/lib/libvirt/images/
 #local.storage.path=/var/lib/libvirt/images/
 
+# Qemu socket path, directory where Qemu sockets are placed.
+# These sockets are for the Qemu Guest Agent and SSVM privisioning
+# Make sure that AppArmor or SELinux allow libvirt to write there
+#qemu.sockets.path=/var/lib/libvirt/qemu
+
 # The UUID for the local storage pool, this is mandatory!
 # Generate with "uuidgen"
 local.storage.uuid=
@@ -153,6 +158,25 @@
 # Some newer linux kernels are incapable of reliably migrating vms with kvmclock
 # This is a workaround for the bug, admin can set this to true per-host
 #
-#router.aggregation.command.each.timeout=600
-#timeout value for aggregation commands send to virtual router
+# vm.rng.enable=false
+# This enabled the VirtIO Random Number Generator device for guests.
+#
+# vm.rng.model=random
+# The model of VirtIO Random Number Generator (RNG) to present to the Guest.
+# Currently only 'random' is supported.
+#
+# vm.rng.path=/dev/random
+# Local Random Number Device Generator to use for VirtIO RNG for Guests.
+# This is usually /dev/random, but per platform this might be different
+#
+# vm.rng.rate.bytes=2048
+# The amount of bytes the Guest may request/obtain from the RNG in the period
+# specified below.
+#
+# vm.rng.rate.period=1000
+# The number of milliseconds in which the guest is allowed to obtain the bytes
+# specified above.
+
+# router.aggregation.command.each.timeout=600
+# timeout value for aggregation commands send to virtual router
 #
diff --git a/agent/pom.xml b/agent/pom.xml
index 02eb9d8..22e3fc6 100644
--- a/agent/pom.xml
+++ b/agent/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>
diff --git a/api/pom.xml b/api/pom.xml
index d9be0a1..cdf6d54 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>
diff --git a/api/resources/META-INF/cloudstack/api-config/spring-api-config-context.xml b/api/resources/META-INF/cloudstack/api-config/spring-api-config-context.xml
index 2cd1266..5ea3246 100644
--- a/api/resources/META-INF/cloudstack/api-config/spring-api-config-context.xml
+++ b/api/resources/META-INF/cloudstack/api-config/spring-api-config-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="apiServiceConfiguration" class="org.apache.cloudstack.config.ApiServiceConfiguration" />
diff --git a/api/resources/META-INF/cloudstack/api-planner/spring-api-planner-context.xml b/api/resources/META-INF/cloudstack/api-planner/spring-api-planner-context.xml
index 2fd34a8..8523daf 100644
--- a/api/resources/META-INF/cloudstack/api-planner/spring-api-planner-context.xml
+++ b/api/resources/META-INF/cloudstack/api-planner/spring-api-planner-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="UserDispersingPlanner" class="com.cloud.deploy.UserDispersingPlanner">
diff --git a/api/src/com/cloud/agent/api/to/FirewallRuleTO.java b/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
index edfb0aa..25e7b5f 100644
--- a/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
+++ b/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
@@ -48,6 +48,7 @@
     boolean revoked;
     boolean alreadyAdded;
     private List<String> sourceCidrList;
+    private List<String> destCidrList;
     FirewallRule.Purpose purpose;
     private Integer icmpType;
     private Integer icmpCode;
@@ -170,6 +171,7 @@
             rule.getSourceCidrList(),
             rule.getIcmpType(),
             rule.getIcmpCode());
+        this.destCidrList = rule.getDestinationCidrList();
         this.trafficType = trafficType;
         this.defaultEgressPolicy = defaultEgressPolicy;
     }
@@ -257,6 +259,10 @@
         return sourceCidrList;
     }
 
+    public List<String> getDestCidrList(){
+        return destCidrList;
+    }
+
     public boolean isAlreadyAdded() {
         return alreadyAdded;
     }
diff --git a/api/src/com/cloud/agent/api/to/NetworkTO.java b/api/src/com/cloud/agent/api/to/NetworkTO.java
index be11dea..9c88805 100644
--- a/api/src/com/cloud/agent/api/to/NetworkTO.java
+++ b/api/src/com/cloud/agent/api/to/NetworkTO.java
@@ -38,6 +38,8 @@
     protected URI isolationUri;
     protected boolean isSecurityGroupEnabled;
     protected String name;
+    protected String ip6address;
+    protected String ip6cidr;
 
     public NetworkTO() {
     }
@@ -62,6 +64,14 @@
         this.ip = ip;
     }
 
+    public void setIp6Address(String addr) {
+        this.ip6address = addr;
+    }
+
+    public void setIp6Cidr(String cidr) {
+        this.ip6cidr = cidr;
+    }
+
     public void setNetmask(String netmask) {
         this.netmask = netmask;
     }
@@ -114,6 +124,7 @@
      * the full information about what is needed.
      *
      * @param ip
+     * @param ip6address
      * @param vlan
      * @param netmask
      * @param mac
@@ -130,10 +141,30 @@
         this.dns2 = dns2;
     }
 
+    public NetworkTO(String ip, String netmask, String mac, String gateway, String dns1, String dns2, String ip6address,
+                     String ip6cidr) {
+        this.ip = ip;
+        this.netmask = netmask;
+        this.mac = mac;
+        this.gateway = gateway;
+        this.dns1 = dns1;
+        this.dns2 = dns2;
+        this.ip6address = ip6address;
+        this.ip6cidr = ip6cidr;
+    }
+
     public String getIp() {
         return ip;
     }
 
+    public String getIp6Address() {
+        return ip6address;
+    }
+
+    public String getIp6Cidr() {
+        return ip6cidr;
+    }
+
     public String getNetmask() {
         return netmask;
     }
diff --git a/api/src/com/cloud/agent/api/to/VirtualMachineTO.java b/api/src/com/cloud/agent/api/to/VirtualMachineTO.java
index c367ec9..f982e4b 100644
--- a/api/src/com/cloud/agent/api/to/VirtualMachineTO.java
+++ b/api/src/com/cloud/agent/api/to/VirtualMachineTO.java
@@ -18,6 +18,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.HashMap;
 
 import com.cloud.template.VirtualMachineTemplate.BootloaderType;
 import com.cloud.vm.VirtualMachine;
@@ -69,6 +70,7 @@
     String configDriveIsoRootFolder = null;
     String configDriveIsoFile = null;
 
+    Map<String, String> guestOsDetails = new HashMap<String, String>();
 
     public VirtualMachineTO(long id, String instanceName, VirtualMachine.Type type, int cpus, Integer speed, long minRam, long maxRam, BootloaderType bootloader,
             String os, boolean enableHA, boolean limitCpuUse, String vncPassword) {
@@ -331,4 +333,11 @@
         this.configDriveIsoFile = configDriveIsoFile;
     }
 
+    public Map<String, String> getGuestOsDetails() {
+        return guestOsDetails;
+    }
+
+    public void setGuestOsDetails(Map<String, String> guestOsDetails) {
+        this.guestOsDetails = guestOsDetails;
+    }
 }
diff --git a/api/src/com/cloud/deploy/DeploymentClusterPlanner.java b/api/src/com/cloud/deploy/DeploymentClusterPlanner.java
index 6c09a6d..a668b79 100644
--- a/api/src/com/cloud/deploy/DeploymentClusterPlanner.java
+++ b/api/src/com/cloud/deploy/DeploymentClusterPlanner.java
@@ -29,6 +29,7 @@
 
     static final String ClusterCPUCapacityDisableThresholdCK = "cluster.cpu.allocated.capacity.disablethreshold";
     static final String ClusterMemoryCapacityDisableThresholdCK = "cluster.memory.allocated.capacity.disablethreshold";
+    static final String ClusterThresholdEnabledCK = "cluster.threshold.enabled";
 
     static final ConfigKey<Float> ClusterCPUCapacityDisableThreshold =
         new ConfigKey<Float>(
@@ -46,6 +47,15 @@
             "0.85",
             "Percentage (as a value between 0 and 1) of memory utilization above which allocators will disable using the cluster for low memory available. Keep the corresponding notification threshold lower than this to be notified beforehand.",
             true, ConfigKey.Scope.Cluster, null);
+    static final ConfigKey<Boolean> ClusterThresholdEnabled =
+        new ConfigKey<Boolean>(
+            "Advanced",
+            Boolean.class,
+            ClusterThresholdEnabledCK,
+            "true",
+            "Enable/Disable cluster thresholds. If disabled, an instance can start in a cluster even though the threshold may be crossed.",
+            false,
+            ConfigKey.Scope.Global);
 
     /**
      * This is called to determine list of possible clusters where a virtual
diff --git a/api/src/com/cloud/network/IpAddress.java b/api/src/com/cloud/network/IpAddress.java
index 2061771..2447809 100644
--- a/api/src/com/cloud/network/IpAddress.java
+++ b/api/src/com/cloud/network/IpAddress.java
@@ -92,4 +92,8 @@
 
     public Date getCreated();
 
+    State getRuleState();
+
+    void setRuleState(State ruleState);
+
 }
diff --git a/api/src/com/cloud/network/Network.java b/api/src/com/cloud/network/Network.java
index 7cc5441..122ce70 100644
--- a/api/src/com/cloud/network/Network.java
+++ b/api/src/com/cloud/network/Network.java
@@ -41,6 +41,8 @@
         Shared, Isolated
     }
 
+    public String updatingInSequence ="updatingInSequence";
+
     public static class Service {
         private static List<Service> supportedServices = new ArrayList<Service>();
 
@@ -58,7 +60,8 @@
         public static final Service PortForwarding = new Service("PortForwarding");
         public static final Service SecurityGroup = new Service("SecurityGroup");
         public static final Service NetworkACL = new Service("NetworkACL", Capability.SupportedProtocols);
-        public static final Service Connectivity = new Service("Connectivity", Capability.DistributedRouter, Capability.RegionLevelVpc, Capability.StretchedL2Subnet);
+        public static final Service Connectivity = new Service("Connectivity", Capability.DistributedRouter, Capability.RegionLevelVpc, Capability.StretchedL2Subnet,
+                Capability.NoVlan, Capability.PublicAccess);
 
         private final String name;
         private final Capability[] caps;
@@ -213,6 +216,8 @@
         public static final Capability DistributedRouter = new Capability("DistributedRouter");
         public static final Capability StretchedL2Subnet = new Capability("StretchedL2Subnet");
         public static final Capability RegionLevelVpc = new Capability("RegionLevelVpc");
+        public static final Capability NoVlan = new Capability("NoVlan");
+        public static final Capability PublicAccess = new Capability("PublicAccess");
 
         private final String name;
 
diff --git a/api/src/com/cloud/network/NetworkModel.java b/api/src/com/cloud/network/NetworkModel.java
index 780f97d..811c792 100644
--- a/api/src/com/cloud/network/NetworkModel.java
+++ b/api/src/com/cloud/network/NetworkModel.java
@@ -38,6 +38,7 @@
 import com.cloud.vm.Nic;
 import com.cloud.vm.NicProfile;
 import com.cloud.vm.VirtualMachine;
+import org.apache.cloudstack.framework.config.ConfigKey;
 
 /**
  * The NetworkModel presents a read-only view into the Network data such as L2 networks,
@@ -47,6 +48,9 @@
  */
 public interface NetworkModel {
 
+    static final ConfigKey<Integer> MACIdentifier = new ConfigKey<Integer>("Advanced",Integer.class, "mac.identifier", "0",
+            "This value will be used while generating the mac addresses for isolated and shared networks. The hexadecimal equivalent value will be present at the 2nd octet of the mac address. Default value is null which means this feature is disabled.Its scope is global.", true, ConfigKey.Scope.Global);
+
     /**
      * Lists IP addresses that belong to VirtualNetwork VLANs
      *
@@ -154,6 +158,8 @@
 
     boolean checkIpForService(IpAddress ip, Service service, Long networkId);
 
+    boolean providerSupportsCapability(Set<Provider> providers, Service service, Capability cap);
+
     void checkCapabilityForProvider(Set<Provider> providers, Service service, Capability cap, String capValue);
 
     Provider getDefaultUniqueProviderForService(String serviceName);
diff --git a/api/src/com/cloud/network/NetworkService.java b/api/src/com/cloud/network/NetworkService.java
index c1b68eb..598b77f 100644
--- a/api/src/com/cloud/network/NetworkService.java
+++ b/api/src/com/cloud/network/NetworkService.java
@@ -77,7 +77,7 @@
     IpAddress getIp(long id);
 
     Network updateGuestNetwork(long networkId, String name, String displayText, Account callerAccount, User callerUser, String domainSuffix, Long networkOfferingId,
-        Boolean changeCidr, String guestVmCidr, Boolean displayNetwork, String newUUID);
+        Boolean changeCidr, String guestVmCidr, Boolean displayNetwork, String newUUID, boolean updateInSequence, boolean forced);
 
     PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List<String> isolationMethods, String broadcastDomainRange, Long domainId,
         List<String> tags, String name);
@@ -180,4 +180,6 @@
     IpAddress updateIP(Long id, String customId, Boolean displayIp);
 
     boolean configureNicSecondaryIp(NicSecondaryIp secIp, boolean isZoneSgEnabled);
+
+    List<? extends NicSecondaryIp> listVmNicSecondaryIps(ListNicsCmd listNicsCmd);
 }
diff --git a/api/src/com/cloud/network/element/DnsServiceProvider.java b/api/src/com/cloud/network/element/DnsServiceProvider.java
new file mode 100644
index 0000000..7abce53
--- /dev/null
+++ b/api/src/com/cloud/network/element/DnsServiceProvider.java
@@ -0,0 +1,36 @@
+// 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.element;
+
+import com.cloud.deploy.DeployDestination;
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.Network;
+import com.cloud.vm.NicProfile;
+import com.cloud.vm.ReservationContext;
+import com.cloud.vm.VirtualMachineProfile;
+
+public interface DnsServiceProvider extends NetworkElement {
+    boolean addDnsEntry(Network network, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context)
+        throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException;
+
+    boolean configDnsSupportForSubnet(Network network, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context)
+        throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException;
+
+    boolean removeDnsSupportForSubnet(Network network) throws ResourceUnavailableException;
+}
diff --git a/api/src/com/cloud/network/lb/SslCert.java b/api/src/com/cloud/network/element/RedundantResource.java
similarity index 65%
copy from api/src/com/cloud/network/lb/SslCert.java
copy to api/src/com/cloud/network/element/RedundantResource.java
index 98f96ce..6ed2d67 100644
--- a/api/src/com/cloud/network/lb/SslCert.java
+++ b/api/src/com/cloud/network/element/RedundantResource.java
@@ -14,22 +14,15 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package com.cloud.network.lb;
+package com.cloud.network.element;
 
-import org.apache.cloudstack.acl.ControlledEntity;
-import org.apache.cloudstack.api.Identity;
-import org.apache.cloudstack.api.InternalIdentity;
+import com.cloud.network.Network;
 
-public interface SslCert extends InternalIdentity, Identity, ControlledEntity {
-
-    public String getCertificate();
-
-    public String getKey();
-
-    public String getChain();
-
-    public String getPassword();
-
-    public String getFingerPrint();
-
+/**
+ * Created by bharat on 11/08/15.
+ */
+public interface RedundantResource {
+     public void configureResource(Network network);
+     public int getResourceCount(Network network);
+     public void finalize(Network network, boolean success);
 }
diff --git a/api/src/com/cloud/network/router/VirtualRouter.java b/api/src/com/cloud/network/router/VirtualRouter.java
index 0114a96..060ef0f 100644
--- a/api/src/com/cloud/network/router/VirtualRouter.java
+++ b/api/src/com/cloud/network/router/VirtualRouter.java
@@ -26,6 +26,10 @@
         VIRTUAL_ROUTER, LB, INTERNAL_LB_VM
     }
 
+    public enum UpdateState {
+        UPDATE_NEEDED, UPDATE_IN_PROGRESS, UPDATE_COMPLETE, UPDATE_FAILED
+    }
+
     Role getRole();
 
     boolean getIsRedundantRouter();
diff --git a/api/src/com/cloud/network/rules/FirewallRule.java b/api/src/com/cloud/network/rules/FirewallRule.java
index 4346e2f..6a46c7d 100644
--- a/api/src/com/cloud/network/rules/FirewallRule.java
+++ b/api/src/com/cloud/network/rules/FirewallRule.java
@@ -79,6 +79,8 @@
 
     List<String> getSourceCidrList();
 
+    List<String> getDestinationCidrList();
+
     Long getRelated();
 
     FirewallRuleType getType();
diff --git a/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java b/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
index decf8c4..5426d18 100644
--- a/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
+++ b/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
@@ -33,7 +33,7 @@
 
     RemoteAccessVpn createRemoteAccessVpn(long vpnServerAddressId, String ipRange, boolean openFirewall, Boolean forDisplay) throws NetworkRuleConflictException;
 
-    boolean destroyRemoteAccessVpnForIp(long ipId, Account caller) throws ResourceUnavailableException;
+    boolean destroyRemoteAccessVpnForIp(long ipId, Account caller, boolean forceCleanup) throws ResourceUnavailableException;
 
     RemoteAccessVpn startRemoteAccessVpn(long vpnServerAddressId, boolean openFirewall) throws ResourceUnavailableException;
 
@@ -43,7 +43,7 @@
 
     List<? extends VpnUser> listVpnUsers(long vpnOwnerId, String userName);
 
-    boolean applyVpnUsers(long vpnOwnerId, String userName);
+    boolean applyVpnUsers(long vpnOwnerId, String userName) throws ResourceUnavailableException;
 
     Pair<List<? extends RemoteAccessVpn>, Integer> searchForRemoteAccessVpns(ListRemoteAccessVpnsCmd cmd);
 
diff --git a/api/src/com/cloud/offering/NetworkOffering.java b/api/src/com/cloud/offering/NetworkOffering.java
index f1ef69c..5eab98a 100644
--- a/api/src/com/cloud/offering/NetworkOffering.java
+++ b/api/src/com/cloud/offering/NetworkOffering.java
@@ -131,4 +131,6 @@
     boolean isKeepAliveEnabled();
 
     boolean getSupportsStrechedL2();
+
+    boolean getSupportsPublicAccess();
 }
diff --git a/api/src/com/cloud/offering/ServiceOffering.java b/api/src/com/cloud/offering/ServiceOffering.java
index 05ae237..394605d 100644
--- a/api/src/com/cloud/offering/ServiceOffering.java
+++ b/api/src/com/cloud/offering/ServiceOffering.java
@@ -31,6 +31,7 @@
     public static final String routerDefaultOffUniqueName = "Cloud.Com-SoftwareRouter";
     public static final String elbVmDefaultOffUniqueName = "Cloud.Com-ElasticLBVm";
     public static final String internalLbVmDefaultOffUniqueName = "Cloud.Com-InternalLBVm";
+    // leaving cloud.com references as these are identifyers and no real world adresses (check against DB)
 
     public enum StorageType {
         local, shared
diff --git a/api/src/com/cloud/resource/ResourceService.java b/api/src/com/cloud/resource/ResourceService.java
index 7050b97..854b535 100644
--- a/api/src/com/cloud/resource/ResourceService.java
+++ b/api/src/com/cloud/resource/ResourceService.java
@@ -53,7 +53,7 @@
     Host reconnectHost(ReconnectHostCmd cmd);
 
     /**
-     * We will automatically create a cloud.com cluster to attach to the external cluster and return a hyper host to perform
+     * We will automatically create an Apache CloudStack cluster to attach to the external cluster and return a hyper host to perform
      * host related operation within the cluster
      *
      * @param cmd
diff --git a/api/src/com/cloud/server/ManagementService.java b/api/src/com/cloud/server/ManagementService.java
index 449e108..56f36a8 100644
--- a/api/src/com/cloud/server/ManagementService.java
+++ b/api/src/com/cloud/server/ManagementService.java
@@ -390,7 +390,7 @@
      * @return Ternary<List<? extends Host>, List<? extends Host>, Map<Host, Boolean>> List of all Hosts to which a VM
      *         can be migrated, list of Hosts with enough capacity and hosts requiring storage motion for migration.
      */
-    Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> listHostsForMigrationOfVM(Long vmId, Long startIndex, Long pageSize);
+    Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> listHostsForMigrationOfVM(Long vmId, Long startIndex, Long pageSize, String keyword);
 
     /**
      * List storage pools for live migrating of a volume. The API returns list of all pools in the cluster to which the
diff --git a/api/src/com/cloud/server/ResourceTag.java b/api/src/com/cloud/server/ResourceTag.java
index ce09fdf..3bed77d 100644
--- a/api/src/com/cloud/server/ResourceTag.java
+++ b/api/src/com/cloud/server/ResourceTag.java
@@ -57,7 +57,8 @@
         AutoScaleVmGroup(false, true),
         LBStickinessPolicy(false, true),
         LBHealthCheckPolicy(false, true),
-        SnapshotPolicy(false, true);
+        SnapshotPolicy(false, true),
+        GuestOs(false, true);
 
 
         ResourceObjectType(boolean resourceTagsSupport, boolean resourceMetadataSupport) {
diff --git a/api/src/com/cloud/storage/Snapshot.java b/api/src/com/cloud/storage/Snapshot.java
index 7f0168e..9e44e57 100644
--- a/api/src/com/cloud/storage/Snapshot.java
+++ b/api/src/com/cloud/storage/Snapshot.java
@@ -16,14 +16,13 @@
 // under the License.
 package com.cloud.storage;
 
-import java.util.Date;
-
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.utils.fsm.StateObject;
 import org.apache.cloudstack.acl.ControlledEntity;
 import org.apache.cloudstack.api.Identity;
 import org.apache.cloudstack.api.InternalIdentity;
 
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.utils.fsm.StateObject;
+import java.util.Date;
 
 public interface Snapshot extends ControlledEntity, Identity, InternalIdentity, StateObject<Snapshot.State> {
     public enum Type {
@@ -67,6 +66,10 @@
         CreateRequested, OperationNotPerformed, BackupToSecondary, BackedupToSecondary, DestroyRequested, CopyingRequested, OperationSucceeded, OperationFailed
     }
 
+    enum LocationType {
+        PRIMARY, SECONDARY
+    }
+
     public static final long MANUAL_POLICY_ID = 0L;
 
     @Override
@@ -89,4 +92,5 @@
 
     short getsnapshotType();
 
+    LocationType getLocationType(); // This type is in reference to the location where the snapshot resides (ex. primary storage, archive on secondary storage, etc.)
 }
diff --git a/api/src/com/cloud/storage/Storage.java b/api/src/com/cloud/storage/Storage.java
index 25ae5ca..c94cefe 100644
--- a/api/src/com/cloud/storage/Storage.java
+++ b/api/src/com/cloud/storage/Storage.java
@@ -143,6 +143,10 @@
         public boolean isShared() {
             return shared;
         }
+
+        public boolean supportsOverProvisioning() {
+            return this == StoragePoolType.NetworkFilesystem || this == StoragePoolType.VMFS || this == StoragePoolType.PreSetup;
+        }
     }
 
     public static List<StoragePoolType> getNonSharedStoragePoolTypes() {
diff --git a/api/src/com/cloud/storage/StoragePool.java b/api/src/com/cloud/storage/StoragePool.java
index 8e03c33..3a2d3bd 100644
--- a/api/src/com/cloud/storage/StoragePool.java
+++ b/api/src/com/cloud/storage/StoragePool.java
@@ -104,4 +104,6 @@
     boolean isInMaintenance();
 
     Hypervisor.HypervisorType getHypervisor();
+
+    boolean isManaged();
 }
diff --git a/api/src/com/cloud/storage/Volume.java b/api/src/com/cloud/storage/Volume.java
index f70ead9..133a59d 100644
--- a/api/src/com/cloud/storage/Volume.java
+++ b/api/src/com/cloud/storage/Volume.java
@@ -51,7 +51,8 @@
         NotUploaded("The volume entry is just created in DB, not yet uploaded"),
         UploadInProgress("Volume upload is in progress"),
         UploadError("Volume upload encountered some error"),
-        UploadAbandoned("Volume upload is abandoned since the upload was never initiated within a specificed time");
+        UploadAbandoned("Volume upload is abandoned since the upload was never initiated within a specificed time"),
+        Attaching("The volume is attaching to a VM");
 
         String _description;
 
@@ -118,6 +119,9 @@
             s_fsm.addTransition(new StateMachine2.Transition<State, Event>(UploadInProgress, Event.OperationTimeout, UploadError, null));
             s_fsm.addTransition(new StateMachine2.Transition<State, Event>(UploadError, Event.DestroyRequested, Destroy, null));
             s_fsm.addTransition(new StateMachine2.Transition<State, Event>(UploadAbandoned, Event.DestroyRequested, Destroy, null));
+            s_fsm.addTransition(new StateMachine2.Transition<State, Event>(Ready, Event.AttachRequested, Attaching, null));
+            s_fsm.addTransition(new StateMachine2.Transition<State, Event>(Attaching, Event.OperationSucceeded, Ready, null));
+            s_fsm.addTransition(new StateMachine2.Transition<State, Event>(Attaching, Event.OperationFailed, Ready, null));
         }
     }
 
@@ -139,6 +143,7 @@
         DestroyRequested,
         ExpungingRequested,
         ResizeRequested,
+        AttachRequested,
         OperationTimeout;
     }
 
diff --git a/api/src/com/cloud/storage/VolumeApiService.java b/api/src/com/cloud/storage/VolumeApiService.java
index 7832b89..673fffc 100644
--- a/api/src/com/cloud/storage/VolumeApiService.java
+++ b/api/src/com/cloud/storage/VolumeApiService.java
@@ -70,8 +70,6 @@
     /**
      * Uploads the volume to secondary storage
      *
-     * @param UploadVolumeCmdByAdmin cmd
-     *
      * @return Volume object
      */
     Volume uploadVolume(UploadVolumeCmd cmd)    throws ResourceAllocationException;
@@ -82,11 +80,11 @@
 
     Volume attachVolumeToVM(AttachVolumeCmd command);
 
-    Volume detachVolumeFromVM(DetachVolumeCmd cmmd);
+    Volume detachVolumeFromVM(DetachVolumeCmd cmd);
 
-    Snapshot takeSnapshot(Long volumeId, Long policyId, Long snapshotId, Account account, boolean quiescevm) throws ResourceAllocationException;
+    Snapshot takeSnapshot(Long volumeId, Long policyId, Long snapshotId, Account account, boolean quiescevm, Snapshot.LocationType locationType) throws ResourceAllocationException;
 
-    Snapshot allocSnapshot(Long volumeId, Long policyId, String snapshotName) throws ResourceAllocationException;
+    Snapshot allocSnapshot(Long volumeId, Long policyId, String snapshotName, Snapshot.LocationType locationType) throws ResourceAllocationException;
 
     Volume updateVolume(long volumeId, String path, String state, Long storageId, Boolean displayVolume, String customId, long owner, String chainInfo);
 
@@ -104,4 +102,6 @@
     boolean isDisplayResourceEnabled(Long id);
 
     void updateDisplay(Volume volume, Boolean displayVolume);
+
+    Snapshot allocSnapshotForVm(Long vmId, Long volumeId, String snapshotName) throws ResourceAllocationException;
 }
diff --git a/api/src/com/cloud/storage/snapshot/SnapshotApiService.java b/api/src/com/cloud/storage/snapshot/SnapshotApiService.java
index fb48f47..eb13935 100644
--- a/api/src/com/cloud/storage/snapshot/SnapshotApiService.java
+++ b/api/src/com/cloud/storage/snapshot/SnapshotApiService.java
@@ -86,7 +86,7 @@
 
     boolean deleteSnapshotPolicies(DeleteSnapshotPoliciesCmd cmd);
 
-    Snapshot allocSnapshot(Long volumeId, Long policyId, String snapshotName) throws ResourceAllocationException;
+    Snapshot allocSnapshot(Long volumeId, Long policyId, String snapshotName, Snapshot.LocationType locationType) throws ResourceAllocationException;
 
     /**
      * Create a snapshot of a volume
@@ -108,5 +108,7 @@
 
     Snapshot revertSnapshot(Long snapshotId);
 
+    Snapshot backupSnapshotFromVmSnapshot(Long snapshotId, Long vmId, Long volumeId, Long vmSnapshotId);
+
     SnapshotPolicy updateSnapshotPolicy(UpdateSnapshotPolicyCmd updateSnapshotPolicyCmd);
 }
diff --git a/api/src/com/cloud/user/AccountService.java b/api/src/com/cloud/user/AccountService.java
index 959a710..9683d9f 100644
--- a/api/src/com/cloud/user/AccountService.java
+++ b/api/src/com/cloud/user/AccountService.java
@@ -21,6 +21,7 @@
 import org.apache.cloudstack.acl.ControlledEntity;
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.api.command.admin.user.GetUserKeysCmd;
 import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
 
 import com.cloud.domain.Domain;
@@ -28,6 +29,7 @@
 import com.cloud.offering.DiskOffering;
 import com.cloud.offering.ServiceOffering;
 
+
 public interface AccountService {
 
     /**
@@ -124,6 +126,8 @@
 
     void checkAccess(Account account, DiskOffering dof) throws PermissionDeniedException;
 
+    void checkAccess(User user, ControlledEntity entity);
+
     void checkAccess(Account account, AccessType accessType, boolean sameOwner, String apiName,
             ControlledEntity... entities) throws PermissionDeniedException;
 
@@ -136,4 +140,5 @@
      */
     UserAccount getUserAccountById(Long userId);
 
+    public Map<String, String> getKeys(GetUserKeysCmd cmd);
 }
diff --git a/api/src/com/cloud/vm/UserVmService.java b/api/src/com/cloud/vm/UserVmService.java
index 54206ed..db9ded8 100644
--- a/api/src/com/cloud/vm/UserVmService.java
+++ b/api/src/com/cloud/vm/UserVmService.java
@@ -75,14 +75,14 @@
     /**
      * Destroys one virtual machine
      *
-     * @param userId
-     *            the id of the user performing the action
      * @param vmId
      *            the id of the virtual machine.
+     * @param expunge
+     *            indicates if vm should be expunged
      * @throws ConcurrentOperationException
      * @throws ResourceUnavailableException
      */
-    UserVm destroyVm(long vmId) throws ResourceUnavailableException, ConcurrentOperationException;
+    UserVm destroyVm(long vmId, boolean expunge) throws ResourceUnavailableException, ConcurrentOperationException;
 
     /**
      * Resets the password of a virtual machine.
diff --git a/api/src/com/cloud/vm/VmDetailConstants.java b/api/src/com/cloud/vm/VmDetailConstants.java
index d34afc1..c3c6db7 100644
--- a/api/src/com/cloud/vm/VmDetailConstants.java
+++ b/api/src/com/cloud/vm/VmDetailConstants.java
@@ -23,4 +23,5 @@
     public static final String NESTED_VIRTUALIZATION_FLAG = "nestedVirtualizationFlag";
     public static final String HYPERVISOR_TOOLS_VERSION = "hypervisortoolsversion";
     public static final String DATA_DISK_CONTROLLER = "dataDiskController";
+    public static final String SVGA_VRAM_SIZE = "svga.vramSize";
 }
diff --git a/api/src/com/cloud/vm/snapshot/VMSnapshot.java b/api/src/com/cloud/vm/snapshot/VMSnapshot.java
index 7713b20..c398e58 100644
--- a/api/src/com/cloud/vm/snapshot/VMSnapshot.java
+++ b/api/src/com/cloud/vm/snapshot/VMSnapshot.java
@@ -102,4 +102,6 @@
 
     @Override
     public long getAccountId();
+
+    public long getServiceOfferingId();
 }
diff --git a/api/src/com/cloud/vm/snapshot/VMSnapshotService.java b/api/src/com/cloud/vm/snapshot/VMSnapshotService.java
index 12767b3..e376265 100644
--- a/api/src/com/cloud/vm/snapshot/VMSnapshotService.java
+++ b/api/src/com/cloud/vm/snapshot/VMSnapshotService.java
@@ -36,7 +36,7 @@
 
     VMSnapshot getVMSnapshotById(Long id);
 
-    VMSnapshot creatVMSnapshot(Long vmId, Long vmSnapshotId, Boolean quiescevm);
+    VMSnapshot createVMSnapshot(Long vmId, Long vmSnapshotId, Boolean quiescevm);
 
     VMSnapshot allocVMSnapshot(Long vmId, String vsDisplayName, String vsDescription, Boolean snapshotMemory) throws ResourceAllocationException;
 
@@ -46,4 +46,11 @@
         ConcurrentOperationException;
 
     VirtualMachine getVMBySnapshotId(Long id);
+
+    /**
+     * Delete vm snapshots only from database. Introduced as a Vmware optimization in which vm snapshots are deleted when
+     * the vm gets deleted on hypervisor (no need to delete each vm snapshot before deleting vm, just mark them as deleted on DB)
+     * @param id vm id
+     */
+    boolean deleteVMSnapshotsFromDB(Long vmId);
 }
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index 1d0b4a3..a16a327 100644
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -48,6 +48,7 @@
     public static final String CIDR = "cidr";
     public static final String IP6_CIDR = "ip6cidr";
     public static final String CIDR_LIST = "cidrlist";
+    public static final String DEST_CIDR_LIST = "destcidrlist";
     public static final String CLEANUP = "cleanup";
     public static final String MAKEREDUNDANTE = "makeredundant";
     public static final String CLUSTER_ID = "clusterid";
@@ -131,6 +132,7 @@
     public static final String INTERNAL_DNS1 = "internaldns1";
     public static final String INTERNAL_DNS2 = "internaldns2";
     public static final String INTERVAL_TYPE = "intervaltype";
+    public static final String LOCATION_TYPE = "locationtype";
     public static final String IOPS_READ_RATE = "iopsreadrate";
     public static final String IOPS_WRITE_RATE = "iopswriterate";
     public static final String IP_ADDRESS = "ipaddress";
@@ -239,6 +241,7 @@
     public static final String SIGNATURE = "signature";
     public static final String SIGNATURE_VERSION = "signatureversion";
     public static final String SIZE = "size";
+    public static final String SNAPSHOT = "snapshot";
     public static final String SNAPSHOT_ID = "snapshotid";
     public static final String SNAPSHOT_POLICY_ID = "snapshotpolicyid";
     public static final String SNAPSHOT_TYPE = "snapshottype";
@@ -261,6 +264,7 @@
     public static final String ISO_ID = "isoid";
     public static final String TIMEOUT = "timeout";
     public static final String TIMEZONE = "timezone";
+    public static final String TIMEZONEOFFSET = "timezoneoffset";
     public static final String TYPE = "type";
     public static final String TRUST_STORE = "truststore";
     public static final String TRUST_STORE_PASSWORD = "truststorepass";
@@ -272,6 +276,7 @@
     public static final String USERNAME = "username";
     public static final String USER_SECURITY_GROUP_LIST = "usersecuritygrouplist";
     public static final String USE_VIRTUAL_NETWORK = "usevirtualnetwork";
+    public static final String Update_IN_SEQUENCE ="updateinsequence";
     public static final String VALUE = "value";
     public static final String VIRTUAL_MACHINE_ID = "virtualmachineid";
     public static final String VIRTUAL_MACHINE_IDS = "virtualmachineids";
@@ -637,6 +642,7 @@
     public static final String READ_ONLY = "readonly";
     public static final String SUPPORTS_REGION_LEVEL_VPC = "supportsregionLevelvpc";
     public static final String SUPPORTS_STRECHED_L2_SUBNET = "supportsstrechedl2subnet";
+    public static final String SUPPORTS_PUBLIC_ACCESS = "supportspublicaccess";
     public static final String REGION_LEVEL_VPC = "regionlevelvpc";
     public static final String STRECHED_L2_SUBNET = "strechedl2subnet";
     public static final String NETWORK_SPANNED_ZONES = "zonesnetworkspans";
@@ -645,7 +651,10 @@
     public static final String OVM3_POOL = "ovm3pool";
     public static final String OVM3_CLUSTER = "ovm3cluster";
     public static final String OVM3_VIP = "ovm3vip";
+    public static final String CLEAN_UP_DETAILS = "cleanupdetails";
 
+    public static final String ZONE_ID_LIST = "zoneids";
+    public static final String DESTINATION_ZONE_ID_LIST = "destzoneids";
     public static final String ADMIN = "admin";
 
     public enum HostDetails {
diff --git a/api/src/org/apache/cloudstack/api/ApiServerService.java b/api/src/org/apache/cloudstack/api/ApiServerService.java
index aeeb7b6..2b57682 100644
--- a/api/src/org/apache/cloudstack/api/ApiServerService.java
+++ b/api/src/org/apache/cloudstack/api/ApiServerService.java
@@ -43,7 +43,4 @@
 
     public Class<?> getCmdClass(String cmdName);
 
-    public String getJSONContentType();
-
-    public boolean isSecureSessionCookieEnabled();
 }
diff --git a/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java b/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
index 5dc2b06..3676734 100644
--- a/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
+++ b/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
@@ -17,7 +17,6 @@
 package org.apache.cloudstack.api;
 
 import org.apache.log4j.Logger;
-
 import org.apache.cloudstack.api.command.user.iso.UpdateIsoCmd;
 import org.apache.cloudstack.api.response.GuestOSResponse;
 import org.apache.cloudstack.api.response.TemplateResponse;
@@ -73,6 +72,11 @@
     @Parameter(name = ApiConstants.DETAILS, type = CommandType.MAP, description = "Details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61")
     protected Map details;
 
+    @Parameter(name = ApiConstants.CLEAN_UP_DETAILS,
+            type = CommandType.BOOLEAN,
+            description = "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)")
+    private Boolean cleanupDetails;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -129,4 +133,8 @@
         Collection paramsCollection = this.details.values();
         return (Map) (paramsCollection.toArray())[0];
     }
-}
\ No newline at end of file
+
+    public boolean isCleanupDetails(){
+        return cleanupDetails == null ? false : cleanupDetails.booleanValue();
+    }
+}
diff --git a/api/src/org/apache/cloudstack/api/ResponseGenerator.java b/api/src/org/apache/cloudstack/api/ResponseGenerator.java
index 1cc5bc8..9fd4d84 100644
--- a/api/src/org/apache/cloudstack/api/ResponseGenerator.java
+++ b/api/src/org/apache/cloudstack/api/ResponseGenerator.java
@@ -237,6 +237,8 @@
 
     VlanIpRangeResponse createVlanIpRangeResponse(Vlan vlan);
 
+    VlanIpRangeResponse createVlanIpRangeResponse(Class<? extends VlanIpRangeResponse> subClass, Vlan vlan);
+
     IPAddressResponse createIPAddressResponse(ResponseView view, IpAddress ipAddress);
 
     GuestVlanRangeResponse createDedicatedGuestVlanRangeResponse(GuestVlan result);
@@ -305,7 +307,11 @@
 
     TemplateResponse createTemplateUpdateResponse(ResponseView view, VirtualMachineTemplate result);
 
-    List<TemplateResponse> createTemplateResponses(ResponseView view, VirtualMachineTemplate result, Long zoneId, boolean readyOnly);
+    List<TemplateResponse> createTemplateResponses(ResponseView view, VirtualMachineTemplate result,
+                                                   Long zoneId, boolean readyOnly);
+
+    List<TemplateResponse> createTemplateResponses(ResponseView view, VirtualMachineTemplate result,
+                                                   List<Long> zoneIds, boolean readyOnly);
 
     List<CapacityResponse> createCapacityResponse(List<? extends Capacity> result, DecimalFormat format);
 
diff --git a/api/src/org/apache/cloudstack/api/command/admin/config/ListCfgsByCmd.java b/api/src/org/apache/cloudstack/api/command/admin/config/ListCfgsByCmd.java
index a34bc3e..8f71f48 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/config/ListCfgsByCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/config/ListCfgsByCmd.java
@@ -28,6 +28,7 @@
 import org.apache.cloudstack.api.response.AccountResponse;
 import org.apache.cloudstack.api.response.ClusterResponse;
 import org.apache.cloudstack.api.response.ConfigurationResponse;
+import org.apache.cloudstack.api.response.ImageStoreResponse;
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
@@ -76,6 +77,12 @@
                description = "the ID of the Account to update the parameter value for corresponding account")
     private Long accountId;
 
+    @Parameter(name = ApiConstants.IMAGE_STORE_UUID,
+            type = CommandType.UUID,
+            entityType = ImageStoreResponse.class,
+            description = "the ID of the Image Store to update the parameter value for corresponding image store")
+    private Long imageStoreId;
+
     // ///////////////////////////////////////////////////
     // ///////////////// Accessors ///////////////////////
     // ///////////////////////////////////////////////////
@@ -104,6 +111,10 @@
         return accountId;
     }
 
+    public Long getImageStoreId() {
+        return imageStoreId;
+    }
+
     @Override
     public Long getPageSizeVal() {
         Long defaultPageSize = 500L;
@@ -147,6 +158,9 @@
             if (getAccountId() != null) {
                 cfgResponse.setScope("account");
             }
+            if (getImageStoreId() != null){
+                cfgResponse.setScope("imagestore");
+            }
             configResponses.add(cfgResponse);
         }
 
diff --git a/api/src/org/apache/cloudstack/api/command/admin/config/UpdateCfgCmd.java b/api/src/org/apache/cloudstack/api/command/admin/config/UpdateCfgCmd.java
index 45f790f..fa5e26e 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/config/UpdateCfgCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/config/UpdateCfgCmd.java
@@ -19,8 +19,8 @@
 import com.google.common.base.Strings;
 import org.apache.cloudstack.acl.RoleService;
 import org.apache.log4j.Logger;
-
 import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiArgValidator;
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.ApiErrorCode;
 import org.apache.cloudstack.api.BaseCmd;
@@ -29,6 +29,7 @@
 import org.apache.cloudstack.api.response.AccountResponse;
 import org.apache.cloudstack.api.response.ClusterResponse;
 import org.apache.cloudstack.api.response.ConfigurationResponse;
+import org.apache.cloudstack.api.response.ImageStoreResponse;
 import org.apache.cloudstack.api.response.StoragePoolResponse;
 import org.apache.cloudstack.api.response.ZoneResponse;
 import org.apache.cloudstack.config.Configuration;
@@ -75,6 +76,13 @@
                description = "the ID of the Account to update the parameter value for corresponding account")
     private Long accountId;
 
+    @Parameter(name = ApiConstants.IMAGE_STORE_UUID,
+            type = CommandType.UUID,
+            entityType = ImageStoreResponse.class,
+            description = "the ID of the Image Store to update the parameter value for corresponding image store",
+            validations = ApiArgValidator.PositiveNumber)
+    private Long imageStoreId;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -107,6 +115,10 @@
         return accountId;
     }
 
+    public Long getImageStoreId() {
+        return imageStoreId;
+    }
+
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
diff --git a/api/src/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java b/api/src/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
index 3ba9669..717bcfe 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/guest/AddGuestOsCmd.java
@@ -33,6 +33,11 @@
 import com.cloud.storage.GuestOS;
 import com.cloud.user.Account;
 
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
 @APICommand(name = "addGuestOs", description = "Add a new guest OS type", responseObject = GuestOSResponse.class,
         since = "4.4.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class AddGuestOsCmd extends BaseAsyncCreateCmd {
@@ -53,8 +58,11 @@
     @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, required = false, description = "Optional name for Guest OS")
     private String osName;
 
+    @Parameter(name = ApiConstants.DETAILS, type = CommandType.MAP, required = true, description = "Map of (key/value pairs)")
+    private Map details;
 
-/////////////////////////////////////////////////////
+
+    /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
 
@@ -70,6 +78,22 @@
         return osName;
     }
 
+    public Map getDetails() {
+        Map<String, String> detailsMap = new HashMap<String, String>();
+        if (!details.isEmpty()) {
+            Collection<?> servicesCollection = details.values();
+            Iterator<?> iter = servicesCollection.iterator();
+            while (iter.hasNext()) {
+                HashMap<String, String> services = (HashMap<String, String>)iter.next();
+                String key = services.get("key");
+                String value = services.get("value");
+                detailsMap.put(key, value);
+            }
+        }
+        return detailsMap;
+    }
+
+
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
diff --git a/api/src/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java b/api/src/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
index e4b1ecd..ff3b49d 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/guest/UpdateGuestOsCmd.java
@@ -31,6 +31,11 @@
 import com.cloud.storage.GuestOS;
 import com.cloud.user.Account;
 
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
 @APICommand(name = "updateGuestOs", description = "Updates the information about Guest OS", responseObject = GuestOSResponse.class,
         since = "4.4.0", requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class UpdateGuestOsCmd extends BaseAsyncCmd {
@@ -49,6 +54,10 @@
     @Parameter(name = ApiConstants.OS_DISPLAY_NAME, type = CommandType.STRING, required = true, description = "Unique display name for Guest OS")
     private String osDisplayName;
 
+    @Parameter(name = ApiConstants.DETAILS, type = CommandType.MAP, required = true, description = "Map of (key/value pairs)")
+    private Map details;
+
+
 /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -61,6 +70,21 @@
         return osDisplayName;
     }
 
+    public Map getDetails() {
+        Map<String, String> detailsMap = new HashMap<String, String>();;
+        if (!details.isEmpty()) {
+            Collection<?> servicesCollection = details.values();
+            Iterator<?> iter = servicesCollection.iterator();
+            while (iter.hasNext()) {
+                HashMap<String, String> services = (HashMap<String, String>)iter.next();
+                String key = services.get("key");
+                String value = services.get("value");
+                detailsMap.put(key, value);
+            }
+        }
+        return detailsMap;
+    }
+
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
diff --git a/api/src/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java b/api/src/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java
index dbb9438..ad9b6af 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/host/FindHostsForMigrationCmd.java
@@ -76,7 +76,7 @@
         Map<Host, Boolean> hostsRequiringStorageMotion;
 
         Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> hostsForMigration =
-            _mgr.listHostsForMigrationOfVM(getVirtualMachineId(), this.getStartIndex(), this.getPageSizeVal());
+            _mgr.listHostsForMigrationOfVM(getVirtualMachineId(), this.getStartIndex(), this.getPageSizeVal(), this.getKeyword());
         result = hostsForMigration.first();
         List<? extends Host> hostsWithCapacity = hostsForMigration.second();
         hostsRequiringStorageMotion = hostsForMigration.third();
diff --git a/api/src/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java b/api/src/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
index 3391fdc..9a5d311 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/host/ListHostsCmd.java
@@ -209,7 +209,7 @@
         } else {
             Pair<List<? extends Host>, Integer> result;
             Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> hostsForMigration =
-                    _mgr.listHostsForMigrationOfVM(getVirtualMachineId(), this.getStartIndex(), this.getPageSizeVal());
+                _mgr.listHostsForMigrationOfVM(getVirtualMachineId(), this.getStartIndex(), this.getPageSizeVal(), null);
             result = hostsForMigration.first();
             List<? extends Host> hostsWithCapacity = hostsForMigration.second();
             List<HostResponse> hostResponses = new ArrayList<HostResponse>();
diff --git a/api/src/org/apache/cloudstack/api/command/admin/network/UpdateNetworkCmdByAdmin.java b/api/src/org/apache/cloudstack/api/command/admin/network/UpdateNetworkCmdByAdmin.java
index 269f43e..388348c 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/network/UpdateNetworkCmdByAdmin.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/UpdateNetworkCmdByAdmin.java
@@ -49,7 +49,7 @@
         }
 
         Network result = _networkService.updateGuestNetwork(getId(), getNetworkName(), getDisplayText(), callerAccount,
-                callerUser, getNetworkDomain(), getNetworkOfferingId(), getChangeCidr(), getGuestVmCidr(), getDisplayNetwork(), getCustomId());
+                callerUser, getNetworkDomain(), getNetworkOfferingId(), getChangeCidr(), getGuestVmCidr(), getDisplayNetwork(), getCustomId(), getUpdateInSequence(),getForced());
 
 
         if (result != null) {
diff --git a/api/src/org/apache/cloudstack/api/command/admin/template/CopyTemplateCmdByAdmin.java b/api/src/org/apache/cloudstack/api/command/admin/template/CopyTemplateCmdByAdmin.java
index 11c00e3..e0c798c 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/template/CopyTemplateCmdByAdmin.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/template/CopyTemplateCmdByAdmin.java
@@ -40,11 +40,20 @@
     @Override
     public void execute() throws ResourceAllocationException{
         try {
+            if (destZoneId == null && (destZoneIds == null || destZoneIds.size() == 0))
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Either destzoneid or destzoneids parameters have to be specified.");
+
+            if (destZoneId != null && destZoneIds != null && destZoneIds.size() != 0)
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Both destzoneid and destzoneids cannot be specified at the same time.");
+
             CallContext.current().setEventDetails(getEventDescription());
             VirtualMachineTemplate template = _templateService.copyTemplate(this);
 
             if (template != null){
-                List<TemplateResponse> listResponse = _responseGenerator.createTemplateResponses(ResponseView.Full, template, getDestinationZoneId(), false);
+                List<TemplateResponse> listResponse = _responseGenerator.createTemplateResponses(ResponseView.Full, template,
+                        getDestinationZoneIds(), false);
                 TemplateResponse response = new TemplateResponse();
                 if (listResponse != null && !listResponse.isEmpty()) {
                     response = listResponse.get(0);
diff --git a/api/src/org/apache/cloudstack/api/command/admin/template/RegisterTemplateCmdByAdmin.java b/api/src/org/apache/cloudstack/api/command/admin/template/RegisterTemplateCmdByAdmin.java
index 68d53f9..7281197 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/template/RegisterTemplateCmdByAdmin.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/template/RegisterTemplateCmdByAdmin.java
@@ -40,10 +40,23 @@
     @Override
     public void execute() throws ResourceAllocationException{
         try {
+            if ((zoneId != null) && (zoneIds != null && !zoneIds.isEmpty()))
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Both zoneid and zoneids cannot be specified at the same time");
+
+            if (zoneId == null && (zoneIds == null || zoneIds.isEmpty()))
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Either zoneid or zoneids is required. Both cannot be null.");
+
+            if (zoneIds != null && zoneIds.size() > 1 && zoneIds.contains(-1L))
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Parameter zoneids cannot combine all zones (-1) option with other zones");
+
             VirtualMachineTemplate template = _templateService.registerTemplate(this);
             if (template != null){
                 ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
-                List<TemplateResponse> templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Full, template, zoneId, false);
+                List<TemplateResponse> templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Full, template,
+                        zoneIds, false);
                 response.setResponses(templateResponses);
                 response.setResponseName(getCommandName());
                 setResponseObject(response);
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/GetUserKeysCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/GetUserKeysCmd.java
new file mode 100644
index 0000000..f93c6e1
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/GetUserKeysCmd.java
@@ -0,0 +1,77 @@
+// 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 org.apache.cloudstack.api.command.admin.user;
+
+
+import com.cloud.user.Account;
+import com.cloud.user.User;
+import org.apache.cloudstack.acl.RoleType;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.response.RegisterResponse;
+import org.apache.cloudstack.api.response.UserResponse;
+
+import java.util.Map;
+import java.util.logging.Logger;
+
+@APICommand(name = GetUserKeysCmd.APINAME,
+            description = "This command allows the user to query the seceret and API keys for the account",
+            responseObject = RegisterResponse.class,
+            requestHasSensitiveInfo = false,
+            responseHasSensitiveInfo = true,
+            authorized = {RoleType.User, RoleType.Admin, RoleType.DomainAdmin, RoleType.ResourceAdmin},
+            since = "4.10.0")
+
+public class GetUserKeysCmd extends BaseCmd{
+
+    @Parameter(name= ApiConstants.ID, type = CommandType.UUID, entityType = UserResponse.class, required = true, description = "ID of the user whose keys are required")
+    private Long id;
+
+    public static final Logger s_logger = Logger.getLogger(RegisterCmd.class.getName());
+    public static final String APINAME = "getUserKeys";
+
+    public Long getID(){
+        return id;
+    }
+
+    public String getCommandName() {
+        return APINAME.toLowerCase() + BaseCmd.RESPONSE_SUFFIX;
+    }
+
+    public long getEntityOwnerId(){
+        User user = _entityMgr.findById(User.class, getID());
+        if(user != null){
+            return user.getAccountId();
+        }
+        else return Account.ACCOUNT_ID_SYSTEM;
+    }
+    public void execute(){
+        Map<String, String> keys = _accountService.getKeys(this);
+        RegisterResponse response = new RegisterResponse();
+        if(keys != null){
+            response.setApiKey(keys.get("apikey"));
+            response.setSecretKey(keys.get("secretkey"));
+        }
+
+        response.setObjectName("userkeys");
+        response.setResponseName(getCommandName());
+        this.setResponseObject(response);
+    }
+}
diff --git a/api/src/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
index 435b7f1..da5f688 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/vm/AssignVMCmd.java
@@ -29,9 +29,11 @@
 import org.apache.cloudstack.api.ServerApiException;
 import org.apache.cloudstack.api.response.DomainResponse;
 import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.api.response.ProjectResponse;
 import org.apache.cloudstack.api.response.SecurityGroupResponse;
 import org.apache.cloudstack.api.response.UserVmResponse;
 
+import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.user.Account;
 import com.cloud.uservm.UserVm;
 import com.cloud.vm.VirtualMachine;
@@ -58,12 +60,15 @@
                description = "id of the VM to be moved")
     private Long virtualMachineId;
 
-    @Parameter(name = ApiConstants.ACCOUNT, type = CommandType.STRING, required = true, description = "account name of the new VM owner.")
+    @Parameter(name = ApiConstants.ACCOUNT, type = CommandType.STRING, description = "account name of the new VM owner.")
     private String accountName;
 
-    @Parameter(name = ApiConstants.DOMAIN_ID, type = CommandType.UUID, entityType = DomainResponse.class, required = true, description = "domain id of the new VM owner.")
+    @Parameter(name = ApiConstants.DOMAIN_ID, type = CommandType.UUID, entityType = DomainResponse.class, description = "domain id of the new VM owner.")
     private Long domainId;
 
+    @Parameter(name = ApiConstants.PROJECT_ID, type = CommandType.UUID, entityType = ProjectResponse.class, description = "an optional project for the new VM owner.")
+    private Long projectId;
+
     //Network information
     @Parameter(name = ApiConstants.NETWORK_IDS,
                type = CommandType.LIST,
@@ -98,6 +103,10 @@
         return domainId;
     }
 
+    public Long getProjectId() {
+        return projectId;
+    }
+
     public List<Long> getNetworkIds() {
         return networkIds;
     }
@@ -125,6 +134,9 @@
             UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", userVm).get(0);
             response.setResponseName(getCommandName());
             setResponseObject(response);
+        } catch (InvalidParameterValueException e){
+            e.printStackTrace();
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
         } catch (Exception e) {
             e.printStackTrace();
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to move vm " + e.getMessage());
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
index 0303445..1f14abf 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
@@ -77,6 +77,9 @@
     @Parameter(name = ApiConstants.CIDR_LIST, type = CommandType.LIST, collectionType = CommandType.STRING, description = "the cidr list to forward traffic from")
     private List<String> cidrlist;
 
+    @Parameter(name = ApiConstants.DEST_CIDR_LIST, type = CommandType.LIST, collectionType = CommandType.STRING, description = "the cidr list to forward traffic to")
+    private List<String> destCidrList;
+
     @Parameter(name = ApiConstants.ICMP_TYPE, type = CommandType.INTEGER, description = "type of the icmp message being sent")
     private Integer icmpType;
 
@@ -113,6 +116,11 @@
         }
     }
 
+    @Override
+    public List<String> getDestinationCidrList(){
+        return destCidrList;
+    }
+
     public Long getVpcId() {
         Network network = _networkService.getNetwork(getNetworkId());
         if (network == null) {
@@ -136,6 +144,10 @@
         cidrlist = cidrs;
     }
 
+    public void setDestCidrList(List<String> cidrs){
+        destCidrList = cidrs;
+    }
+
     @Override
     public void execute() throws ResourceUnavailableException {
         CallContext callerContext = CallContext.current();
@@ -245,6 +257,16 @@
                 }
             }
         }
+
+        //Destination CIDR formatting check. Since it's optional param, no need to set a default as in the case of source.
+        if(destCidrList != null){
+            for(String cidr : destCidrList){
+                if(!NetUtils.isValidCIDR(cidr)) {
+                    throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Destination cidrs formatting error" + cidr);
+                }
+            }
+        }
+
         if (getProtocol().equalsIgnoreCase(NetUtils.ALL_PROTO)) {
             if (getSourcePortStart() != null && getSourcePortEnd() != null) {
                 throw new InvalidParameterValueException("Do not pass ports to protocol ALL, protocol ALL do not require ports. Unable to create " +
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
index ee62aa5..548b814 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
@@ -350,6 +350,11 @@
     }
 
     @Override
+    public List<String> getDestinationCidrList(){
+        return null;
+    }
+
+    @Override
     public Class<?> getEntityType() {
         return FirewallRule.class;
     }
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
index 9a0dffe..6936060 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/CreatePortForwardingRuleCmd.java
@@ -430,6 +430,11 @@
     }
 
     @Override
+    public List<String> getDestinationCidrList(){
+        return null;
+    }
+
+    @Override
     public boolean isDisplay() {
         if (display != null) {
             return display;
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteSslCertCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteSslCertCmd.java
index 2efd036..656c14c 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteSslCertCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteSslCertCmd.java
@@ -34,7 +34,7 @@
 import com.cloud.exception.NetworkRuleConflictException;
 import com.cloud.exception.ResourceAllocationException;
 import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.network.lb.CertService;
+import org.apache.cloudstack.network.tls.CertService;
 import com.cloud.utils.exception.CloudRuntimeException;
 
 @APICommand(name = "deleteSslCert", description = "Delete a certificate to CloudStack", responseObject = SuccessResponse.class,
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListSslCertsCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListSslCertsCmd.java
index d1dbdcb..cfa5675 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListSslCertsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListSslCertsCmd.java
@@ -33,7 +33,7 @@
 import org.apache.cloudstack.api.response.SslCertResponse;
 import org.apache.cloudstack.context.CallContext;
 
-import com.cloud.network.lb.CertService;
+import org.apache.cloudstack.network.tls.CertService;
 import com.cloud.utils.exception.CloudRuntimeException;
 
 @APICommand(name = "listSslCerts", description = "Lists SSL certificates", responseObject = SslCertResponse.class,
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UploadSslCertCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UploadSslCertCmd.java
index 4bd2de9..a6d71c7 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UploadSslCertCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UploadSslCertCmd.java
@@ -36,7 +36,7 @@
 import com.cloud.exception.NetworkRuleConflictException;
 import com.cloud.exception.ResourceAllocationException;
 import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.network.lb.CertService;
+import org.apache.cloudstack.network.tls.CertService;
 
 @APICommand(name = "uploadSslCert", description = "Upload a certificate to CloudStack", responseObject = SslCertResponse.class,
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
diff --git a/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
index d85030e..1b367a9 100644
--- a/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/nat/CreateIpForwardingRuleCmd.java
@@ -324,6 +324,11 @@
     }
 
     @Override
+    public List<String> getDestinationCidrList(){
+        return null;
+    }
+
+    @Override
     public Class<?> getEntityType() {
         return FirewallRule.class;
     }
diff --git a/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java b/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
index 921e74b..c313f36 100644
--- a/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/network/UpdateNetworkCmd.java
@@ -75,11 +75,17 @@
     @Parameter(name = ApiConstants.GUEST_VM_CIDR, type = CommandType.STRING, description = "CIDR for guest VMs, CloudStack allocates IPs to guest VMs only from this CIDR")
     private String guestVmCidr;
 
+    @Parameter(name =ApiConstants.Update_IN_SEQUENCE, type=CommandType.BOOLEAN, description = "if true, we will update the routers one after the other. applicable only for redundant router based networks using virtual router as provider")
+    private Boolean updateInSequence;
+
     @Parameter(name = ApiConstants.DISPLAY_NETWORK,
                type = CommandType.BOOLEAN,
  description = "an optional field, whether to the display the network to the end user or not.", authorized = {RoleType.Admin})
     private Boolean displayNetwork;
 
+    @Parameter(name= ApiConstants.FORCED, type = CommandType.BOOLEAN, description = "Setting this to true will cause a forced network update,", authorized = {RoleType.Admin})
+    private Boolean forced;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -119,6 +125,19 @@
         return displayNetwork;
     }
 
+    public Boolean getUpdateInSequence(){
+        if(updateInSequence ==null)
+            return false;
+        else
+            return updateInSequence;
+    }
+
+    public boolean getForced(){
+        if(forced==null){
+            return false;
+        }
+        return forced;
+    }
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
@@ -149,7 +168,7 @@
 
         Network result =
             _networkService.updateGuestNetwork(getId(), getNetworkName(), getDisplayText(), callerAccount, callerUser, getNetworkDomain(), getNetworkOfferingId(),
-                getChangeCidr(), getGuestVmCidr(), getDisplayNetwork(), getCustomId());
+                getChangeCidr(), getGuestVmCidr(), getDisplayNetwork(), getCustomId(), getUpdateInSequence(), getForced());
 
         if (result != null) {
             NetworkResponse response = _responseGenerator.createNetworkResponse(ResponseView.Restricted, result);
diff --git a/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java b/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
index 306ab5f..e79feb7 100644
--- a/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotCmd.java
@@ -16,8 +16,15 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.snapshot;
 
-import org.apache.log4j.Logger;
-
+import com.cloud.event.EventTypes;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.PermissionDeniedException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.projects.Project;
+import com.cloud.storage.Snapshot;
+import com.cloud.storage.Volume;
+import com.cloud.user.Account;
+import com.cloud.utils.exception.CloudRuntimeException;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandJobType;
 import org.apache.cloudstack.api.ApiConstants;
@@ -30,16 +37,7 @@
 import org.apache.cloudstack.api.response.SnapshotPolicyResponse;
 import org.apache.cloudstack.api.response.SnapshotResponse;
 import org.apache.cloudstack.api.response.VolumeResponse;
-import org.apache.cloudstack.context.CallContext;
-
-import com.cloud.event.EventTypes;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.PermissionDeniedException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.projects.Project;
-import com.cloud.storage.Snapshot;
-import com.cloud.storage.Volume;
-import com.cloud.user.Account;
+import org.apache.log4j.Logger;
 
 @APICommand(name = "createSnapshot", description = "Creates an instant snapshot of a volume.", responseObject = SnapshotResponse.class, entityType = {Snapshot.class},
         requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
@@ -74,6 +72,10 @@
     @Parameter(name = ApiConstants.SNAPSHOT_QUIESCEVM, type = CommandType.BOOLEAN, required = false, description = "quiesce vm if true")
     private Boolean quiescevm;
 
+    @Parameter(name = ApiConstants.LOCATION_TYPE, type = CommandType.STRING, required = false, description = "Currently applicable only for managed storage. " +
+            "Valid location types: 'primary', 'secondary'. Default = 'primary'.")
+    private String locationType;
+
     @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, description = "the name of the snapshot")
     private String snapshotName;
 
@@ -108,7 +110,7 @@
     }
 
     public String getVolumeUuid() {
-        Volume volume = (Volume)this._entityMgr.findById(Volume.class, getVolumeId());
+        Volume volume = _entityMgr.findById(Volume.class, getVolumeId());
         if (volume == null) {
             throw new InvalidParameterValueException("Unable to find volume's UUID");
         }
@@ -141,7 +143,7 @@
     }
 
     public static String getResultObjectName() {
-        return "snapshot";
+        return ApiConstants.SNAPSHOT;
     }
 
     @Override
@@ -184,7 +186,7 @@
 
     @Override
     public void create() throws ResourceAllocationException {
-        Snapshot snapshot = _volumeService.allocSnapshot(getVolumeId(), getPolicyId(), getSnapshotName());
+        Snapshot snapshot = _volumeService.allocSnapshot(getVolumeId(), getPolicyId(), getSnapshotName(), getLocationType());
         if (snapshot != null) {
             setEntityId(snapshot.getId());
             setEntityUuid(snapshot.getUuid());
@@ -195,21 +197,37 @@
 
     @Override
     public void execute() {
-        s_logger.info("VOLSS: createSnapshotCmd starts:" + System.currentTimeMillis());
-        CallContext.current().setEventDetails("Volume Id: " + getVolumeUuid());
         Snapshot snapshot;
         try {
             snapshot =
-                _volumeService.takeSnapshot(getVolumeId(), getPolicyId(), getEntityId(), _accountService.getAccount(getEntityOwnerId()), getQuiescevm());
+                _volumeService.takeSnapshot(getVolumeId(), getPolicyId(), getEntityId(), _accountService.getAccount(getEntityOwnerId()), getQuiescevm(), getLocationType());
+
             if (snapshot != null) {
                 SnapshotResponse response = _responseGenerator.createSnapshotResponse(snapshot);
                 response.setResponseName(getCommandName());
                 setResponseObject(response);
             } else {
-                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create snapshot due to an internal error creating snapshot for volume " + volumeId);
+                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create snapshot due to an internal error creating snapshot for volume " + getVolumeId());
             }
         } catch (Exception e) {
-            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create snapshot due to an internal error creating snapshot for volume " + volumeId);
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create snapshot due to an internal error creating snapshot for volume " + getVolumeId());
+        }
+    }
+
+    private Snapshot.LocationType getLocationType() {
+
+        if (Snapshot.LocationType.values() == null || Snapshot.LocationType.values().length == 0 || locationType == null) {
+            return null;
+        }
+
+        try {
+            String lType = locationType.trim().toUpperCase();
+            return Snapshot.LocationType.valueOf(lType);
+        } catch (IllegalArgumentException e) {
+            String errMesg = "Invalid locationType " + locationType + "Specified for volume " + getVolumeId()
+                        + " Valid values are: primary,secondary ";
+            s_logger.warn(errMesg);
+            throw  new CloudRuntimeException(errMesg);
         }
     }
 
diff --git a/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotFromVMSnapshotCmd.java b/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotFromVMSnapshotCmd.java
new file mode 100644
index 0000000..7a35d34
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/command/user/snapshot/CreateSnapshotFromVMSnapshotCmd.java
@@ -0,0 +1,219 @@
+// 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 org.apache.cloudstack.api.command.user.snapshot;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiCommandJobType;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseAsyncCmd;
+import org.apache.cloudstack.api.BaseAsyncCreateCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.SnapshotResponse;
+import org.apache.cloudstack.api.response.VMSnapshotResponse;
+import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.log4j.Logger;
+
+import com.cloud.event.EventTypes;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.PermissionDeniedException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.projects.Project;
+import com.cloud.storage.Snapshot;
+import com.cloud.user.Account;
+import com.cloud.uservm.UserVm;
+import com.cloud.vm.snapshot.VMSnapshot;
+
+@APICommand(name = "createSnapshotFromVMSnapshot", description = "Creates an instant snapshot of a volume from existing vm snapshot.", responseObject = SnapshotResponse.class, entityType = {Snapshot.class}, since = "4.10.0",
+        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
+public class CreateSnapshotFromVMSnapshotCmd extends BaseAsyncCreateCmd {
+    public static final Logger s_logger = Logger.getLogger(CreateSnapshotFromVMSnapshotCmd.class.getName());
+    private static final String s_name = "createsnapshotfromvmsnapshotresponse";
+
+    // ///////////////////////////////////////////////////
+    // ////////////// API parameters /////////////////////
+    // ///////////////////////////////////////////////////
+
+    @Parameter(name = ApiConstants.VOLUME_ID, type = CommandType.UUID, entityType = VolumeResponse.class, required = true, description = "The ID of the disk volume")
+    private Long volumeId;
+
+    @Parameter(name=ApiConstants.VM_SNAPSHOT_ID, type=CommandType.UUID, entityType=VMSnapshotResponse.class,
+            required=true, description="The ID of the VM snapshot")
+    private Long vmSnapshotId;
+
+    @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, description = "the name of the snapshot")
+    private String snapshotName;
+
+    private String syncObjectType = BaseAsyncCmd.snapshotHostSyncObject;
+
+    // ///////////////////////////////////////////////////
+    // ///////////////// Accessors ///////////////////////
+    // ///////////////////////////////////////////////////
+
+    public Long getVolumeId() {
+        return volumeId;
+    }
+
+    public Long getVMSnapshotId() {
+        return vmSnapshotId;
+    }
+
+    public String getSnapshotName() {
+        return snapshotName;
+    }
+
+    private Long getVmId() {
+        VMSnapshot vmsnapshot = _entityMgr.findById(VMSnapshot.class, getVMSnapshotId());
+        if (vmsnapshot == null) {
+            throw new InvalidParameterValueException("Unable to find vm snapshot by id=" + getVMSnapshotId());
+        }
+        UserVm vm = _entityMgr.findById(UserVm.class, vmsnapshot.getVmId());
+        if (vm == null) {
+            throw new InvalidParameterValueException("Unable to find vm by vm snapshot id=" + getVMSnapshotId());
+        }
+        return vm.getId();
+    }
+    private Long getHostId() {
+        VMSnapshot vmsnapshot = _entityMgr.findById(VMSnapshot.class, getVMSnapshotId());
+        if (vmsnapshot == null) {
+            throw new InvalidParameterValueException("Unable to find vm snapshot by id=" + getVMSnapshotId());
+        }
+        UserVm vm = _entityMgr.findById(UserVm.class, vmsnapshot.getVmId());
+        if (vm != null) {
+            if(vm.getHostId() != null) {
+                return vm.getHostId();
+            } else if(vm.getLastHostId() != null) {
+                return vm.getLastHostId();
+            }
+        }
+        return null;
+    }
+
+
+    // ///////////////////////////////////////////////////
+    // ///////////// API Implementation///////////////////
+    // ///////////////////////////////////////////////////
+
+    @Override
+    public String getCommandName() {
+        return s_name;
+    }
+
+    public static String getResultObjectName() {
+        return ApiConstants.SNAPSHOT;
+    }
+
+    @Override
+    public long getEntityOwnerId() {
+
+        VMSnapshot vmsnapshot = _entityMgr.findById(VMSnapshot.class, getVMSnapshotId());
+        if (vmsnapshot == null) {
+            throw new InvalidParameterValueException("Unable to find vmsnapshot by id=" + getVMSnapshotId());
+        }
+
+        Account account = _accountService.getAccount(vmsnapshot.getAccountId());
+        //Can create templates for enabled projects/accounts only
+        if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
+            Project project = _projectService.findByProjectAccountId(vmsnapshot.getAccountId());
+            if (project == null) {
+                throw new InvalidParameterValueException("Unable to find project by account id=" + account.getUuid());
+            }
+            if (project.getState() != Project.State.Active) {
+                throw new PermissionDeniedException("Can't add resources to the project id=" + project.getUuid() + " in state=" + project.getState() + " as it's no longer active");
+            }
+        } else if (account.getState() == Account.State.disabled) {
+            throw new PermissionDeniedException("The owner of template is disabled: " + account);
+        }
+
+        return vmsnapshot.getAccountId();
+    }
+
+    @Override
+    public String getEventType() {
+        return EventTypes.EVENT_SNAPSHOT_CREATE;
+    }
+
+    @Override
+    public String getEventDescription() {
+        return "creating snapshot from vm snapshot : " + getVMSnapshotId();
+    }
+
+    @Override
+    public ApiCommandJobType getInstanceType() {
+        return ApiCommandJobType.Snapshot;
+    }
+
+    @Override
+    public void create() throws ResourceAllocationException {
+        Snapshot snapshot = this._volumeService.allocSnapshotForVm(getVmId(), getVolumeId(), getSnapshotName());
+        if (snapshot != null) {
+            this.setEntityId(snapshot.getId());
+            this.setEntityUuid(snapshot.getUuid());
+        } else {
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create snapshot from vm snapshot");
+        }
+    }
+
+    @Override
+    public void execute() {
+        s_logger.info("CreateSnapshotFromVMSnapshotCmd with vm snapshot id:" + getVMSnapshotId() + " and snapshot id:" + getEntityId() + " starts:" + System.currentTimeMillis());
+        CallContext.current().setEventDetails("Vm Snapshot Id: "+ getVMSnapshotId());
+        Snapshot snapshot = null;
+        try {
+            snapshot = _snapshotService.backupSnapshotFromVmSnapshot(getEntityId(), getVmId(), getVolumeId(), getVMSnapshotId());
+            if (snapshot != null) {
+                SnapshotResponse response = _responseGenerator.createSnapshotResponse(snapshot);
+                response.setResponseName(getCommandName());
+                this.setResponseObject(response);
+            } else {
+                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create snapshot due to an internal error creating snapshot from vm snapshot " + getVMSnapshotId());
+            }
+        } catch (InvalidParameterValueException ex) {
+            throw ex;
+        } catch (Exception e) {
+            s_logger.debug("Failed to create snapshot", e);
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create snapshot due to an internal error creating snapshot from vm snapshot " + getVMSnapshotId());
+        } finally {
+            if (snapshot == null) {
+                try {
+                    _snapshotService.deleteSnapshot(getEntityId());
+                } catch (Exception e) {
+                    s_logger.debug("Failed to clean failed snapshot" + getEntityId());
+                }
+            }
+        }
+    }
+
+
+    @Override
+    public String getSyncObjType() {
+        if (getSyncObjId() != null) {
+            return syncObjectType;
+        }
+        return null;
+    }
+
+    @Override
+    public Long getSyncObjId() {
+        if (getHostId() != null) {
+            return getHostId();
+        }
+        return null;
+    }
+}
diff --git a/api/src/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java b/api/src/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java
index 97bb187..bdb23e4 100644
--- a/api/src/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java
@@ -34,8 +34,8 @@
 import com.cloud.storage.Snapshot;
 import com.cloud.utils.Pair;
 
-@APICommand(name = "listSnapshots", description = "Lists all available snapshots for the account.", responseObject = SnapshotResponse.class, entityType = {Snapshot.class},
-        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
+@APICommand(name = "listSnapshots", description = "Lists all available snapshots for the account.", responseObject = SnapshotResponse.class, entityType = {
+        Snapshot.class }, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 public class ListSnapshotsCmd extends BaseListTaggedResourcesCmd {
     public static final Logger s_logger = Logger.getLogger(ListSnapshotsCmd.class.getName());
 
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
index fdbdafd..d16b87cd9 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/CopyTemplateCmd.java
@@ -16,6 +16,7 @@
 // under the License.
 package org.apache.cloudstack.api.command.user.template;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.log4j.Logger;
@@ -51,25 +52,46 @@
     @Parameter(name = ApiConstants.DESTINATION_ZONE_ID,
                type = CommandType.UUID,
                entityType = ZoneResponse.class,
-               required = true,
+               required = false,
                description = "ID of the zone the template is being copied to.")
-    private Long destZoneId;
+    protected Long destZoneId;
 
-    @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = TemplateResponse.class, required = true, description = "Template ID.")
+    @Parameter(name = ApiConstants.ID, type = CommandType.UUID,
+            entityType = TemplateResponse.class, required = true, description = "Template ID.")
     private Long id;
 
     @Parameter(name = ApiConstants.SOURCE_ZONE_ID,
                type = CommandType.UUID,
                entityType = ZoneResponse.class,
-            description = "ID of the zone the template is currently hosted on. If not specified and template is cross-zone, then we will sync this template to region wide image store.")
+            description = "ID of the zone the template is currently hosted on. " +
+                    "If not specified and template is cross-zone, " +
+                    "then we will sync this template to region wide image store.")
     private Long sourceZoneId;
 
+    @Parameter(name = ApiConstants.DESTINATION_ZONE_ID_LIST,
+                    type=CommandType.LIST,
+                    collectionType = CommandType.UUID,
+                    entityType = ZoneResponse.class,
+                    required = false,
+                    description = "A list of IDs of the zones that the template needs to be copied to." +
+                            "Specify this list if the template needs to copied to multiple zones in one go. " +
+                            "Do not specify destzoneid and destzoneids together, however one of them is required.")
+    protected List<Long> destZoneIds;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
 
-    public Long getDestinationZoneId() {
-        return destZoneId;
+    public List<Long> getDestinationZoneIds() {
+        if (destZoneIds != null && destZoneIds.size() != 0) {
+            return destZoneIds;
+        }
+        if (destZoneId != null) {
+            List < Long > destIds = new ArrayList<>();
+            destIds.add(destZoneId);
+            return destIds;
+        }
+        return null;
     }
 
     public Long getId() {
@@ -111,7 +133,8 @@
 
     @Override
     public String getEventDescription() {
-        return  "copying template: " + getId() + " from zone: " + getSourceZoneId() + " to zone: " + getDestinationZoneId();
+        return  "copying template: " + getId() + " from zone: " + getSourceZoneId()
+                + " to zone: " + getDestinationZoneIds();
     }
 
     @Override
@@ -127,11 +150,20 @@
     @Override
     public void execute() throws ResourceAllocationException {
         try {
+            if (destZoneId == null && (destZoneIds == null || destZoneIds.size() == 0))
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Either destzoneid or destzoneids parameters have to be specified.");
+
+            if (destZoneId != null && destZoneIds != null && destZoneIds.size() != 0)
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Both destzoneid and destzoneids cannot be specified at the same time.");
+
             CallContext.current().setEventDetails(getEventDescription());
             VirtualMachineTemplate template = _templateService.copyTemplate(this);
 
             if (template != null){
-                List<TemplateResponse> listResponse = _responseGenerator.createTemplateResponses(ResponseView.Restricted, template, getDestinationZoneId(), false);
+                List<TemplateResponse> listResponse = _responseGenerator.createTemplateResponses(ResponseView.Restricted,
+                                                            template, getDestinationZoneIds(), false);
                 TemplateResponse response = new TemplateResponse();
                 if (listResponse != null && !listResponse.isEmpty()) {
                     response = listResponse.get(0);
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
index 8ff0b6b..aff9d46 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java
@@ -17,6 +17,7 @@
 package org.apache.cloudstack.api.command.user.template;
 
 import java.net.URISyntaxException;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -109,7 +110,7 @@
     private String url;
 
     @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.UUID, entityType = ZoneResponse.class,
-            required=true, description="the ID of the zone the template is to be hosted on")
+            required=false, description="the ID of the zone the template is to be hosted on")
     protected Long zoneId;
 
     @Parameter(name = ApiConstants.DOMAIN_ID,
@@ -130,7 +131,8 @@
     @Parameter(name = ApiConstants.PROJECT_ID, type = CommandType.UUID, entityType = ProjectResponse.class, description = "Register template for the project")
     private Long projectId;
 
-    @Parameter(name = ApiConstants.DETAILS, type = CommandType.MAP, description = "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61")
+    @Parameter(name = ApiConstants.DETAILS, type = CommandType.MAP,
+            description = "Template details in key/value pairs using format details[i].keyname=keyvalue. Example: details[0].hypervisortoolsversion=xenserver61")
     protected Map details;
 
     @Parameter(name = ApiConstants.IS_DYNAMICALLY_SCALABLE,
@@ -141,6 +143,19 @@
     @Parameter(name = ApiConstants.ROUTING, type = CommandType.BOOLEAN, description = "true if the template type is routing i.e., if template is used to deploy router")
     protected Boolean isRoutingType;
 
+    @Parameter(name=ApiConstants.ZONE_ID_LIST,
+            type=CommandType.LIST,
+            collectionType = CommandType.UUID,
+            entityType = ZoneResponse.class,
+            required=false,
+            since="4.10.0.0",
+            description="A list of zone ids where the template will be hosted. Use this parameter if the template needs " +
+                    "to be registered to multiple zones in one go. Use zoneid if the template " +
+                    "needs to be registered to only one zone." +
+                    "Passing only -1 to this will cause the template to be registered as a cross " +
+                    "zone template and will be copied to all zones. ")
+    protected List<Long> zoneIds;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -197,8 +212,22 @@
         return url;
     }
 
-    public Long getZoneId() {
-        return zoneId;
+    public List<Long> getZoneIds() {
+        // This function will return null when the zoneId
+        //is -1 which means all zones.
+        if (zoneIds != null && !(zoneIds.isEmpty())) {
+            if ((zoneIds.size() == 1) && (zoneIds.get(0) == -1L))
+                return null;
+            else
+                return zoneIds;
+        }
+        if (zoneId == null)
+            return null;
+        if (zoneId!= null && zoneId == -1)
+            return null;
+        List<Long> zones = new ArrayList<>();
+        zones.add(zoneId);
+        return zones;
     }
 
     public Long getDomainId() {
@@ -261,10 +290,23 @@
     @Override
     public void execute() throws ResourceAllocationException {
         try {
+            if ((zoneId != null) && (zoneIds != null && !zoneIds.isEmpty()))
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Both zoneid and zoneids cannot be specified at the same time");
+
+            if (zoneId == null && (zoneIds == null || zoneIds.isEmpty()))
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Either zoneid or zoneids is required. Both cannot be null.");
+
+            if (zoneIds != null && zoneIds.size() > 1 && zoneIds.contains(-1L))
+                throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
+                        "Parameter zoneids cannot combine all zones (-1) option with other zones");
+
             VirtualMachineTemplate template = _templateService.registerTemplate(this);
             if (template != null) {
                 ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
-                List<TemplateResponse> templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Restricted, template, zoneId, false);
+                List<TemplateResponse> templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Restricted,
+                        template, getZoneIds(), false);
                 response.setResponses(templateResponses);
                 response.setResponseName(getCommandName());
                 setResponseObject(response);
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
index ccec3e6..30a3b8c 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/ListNicsCmd.java
@@ -18,7 +18,8 @@
 
 import java.util.ArrayList;
 import java.util.List;
-
+import com.cloud.vm.NicSecondaryIp;
+import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiCommandJobType;
@@ -122,22 +123,45 @@
     public void execute() throws ResourceUnavailableException, ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException {
 
         try {
-            List<? extends Nic> results = _networkService.listNics(this);
-            ListResponse<NicResponse> response = new ListResponse<NicResponse>();
-            List<NicResponse> resList = null;
-            if (results != null) {
-                resList = new ArrayList<NicResponse>(results.size());
-                for (Nic r : results) {
-                    NicResponse resp = _responseGenerator.createNicResponse(r);
-                    resp.setObjectName("nic");
-                    resList.add(resp);
-                }
-                response.setResponses(resList);
-            }
-            response.setResponses(resList);
-            response.setResponseName(getCommandName());
-            this.setResponseObject(response);
+            if (this.getKeyword() != null && !this.getKeyword().isEmpty() && this.getNicId() != null) {
+                List<? extends NicSecondaryIp> results = _networkService.listVmNicSecondaryIps(this);
+                ListResponse<NicSecondaryIpResponse> response = new ListResponse<NicSecondaryIpResponse>();
+                List<NicSecondaryIpResponse> resList = new ArrayList<NicSecondaryIpResponse>();
+                NicSecondaryIpResponse res = new NicSecondaryIpResponse();
+                List<NicSecondaryIpResponse> res_List = new ArrayList<NicSecondaryIpResponse>();
+                if (results != null) {
+                    for (NicSecondaryIp r : results) {
+                        NicSecondaryIpResponse ipRes = _responseGenerator.createSecondaryIPToNicResponse(r);
+                        resList.add(ipRes);
+                        res.setSecondaryIpsList(resList);
+                        res.setObjectName("nic");
+                    }
 
+                    res_List.add(res);
+                    response.setResponses(res_List);
+                }
+                response.setResponses(res_List);
+                response.setResponseName(getCommandName());
+                this.setResponseObject(response);
+
+            } else {
+                List<? extends Nic> results = _networkService.listNics(this);
+                ListResponse<NicResponse> response = new ListResponse<NicResponse>();
+                List<NicResponse> resList = null;
+                if (results != null) {
+                    resList = new ArrayList<NicResponse>(results.size());
+                    for (Nic r : results) {
+                        NicResponse resp = _responseGenerator.createNicResponse(r);
+                        resp.setObjectName("nic");
+                        resList.add(resp);
+                    }
+                    response.setResponses(resList);
+                }
+
+                response.setResponses(resList);
+                response.setResponseName(getCommandName());
+                this.setResponseObject(response);
+            }
         } catch (Exception e) {
             s_logger.warn("Failed to list secondary ip address per nic ");
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
index 4508f7e..eb03f08 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/UpdateVMCmd.java
@@ -116,6 +116,11 @@
             )
     private List<String> securityGroupNameList;
 
+    @Parameter(name = ApiConstants.CLEAN_UP_DETAILS,
+            type = CommandType.BOOLEAN,
+            description = "optional boolean field, which indicates if details should be cleaned up or not (if set to true, details removed for this resource, details field ignored; if false or not set, no action)")
+    private Boolean cleanupDetails;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -173,6 +178,10 @@
         return securityGroupNameList;
     }
 
+    public boolean isCleanupDetails(){
+        return cleanupDetails == null ? false : cleanupDetails.booleanValue();
+    }
+
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
diff --git a/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java b/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
index f18793a..3e37bbe 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vmsnapshot/CreateVMSnapshotCmd.java
@@ -110,7 +110,7 @@
     @Override
     public void execute() {
         CallContext.current().setEventDetails("VM Id: " + getVmId());
-        VMSnapshot result = _vmSnapshotService.creatVMSnapshot(getVmId(), getEntityId(), getQuiescevm());
+        VMSnapshot result = _vmSnapshotService.createVMSnapshot(getVmId(), getEntityId(), getQuiescevm());
         if (result != null) {
             VMSnapshotResponse response = _responseGenerator.createVMSnapshotResponse(result);
             response.setResponseName(getCommandName());
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
index 9993102..9fd4c5a 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java
@@ -119,8 +119,12 @@
     public void execute() {
         VpnUser vpnUser = _entityMgr.findById(VpnUser.class, getEntityId());
         Account account = _entityMgr.findById(Account.class, vpnUser.getAccountId());
-        if (!_ravService.applyVpnUsers(vpnUser.getAccountId(), userName)) {
-            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add vpn user");
+        try {
+            if (!_ravService.applyVpnUsers(vpnUser.getAccountId(), userName)) {
+                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add vpn user");
+            }
+        }catch (Exception ex) {
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
         }
 
         VpnUsersResponse vpnResponse = new VpnUsersResponse();
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
index e113109..5c2cbfe 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/CreateVpnCustomerGatewayCmd.java
@@ -89,7 +89,7 @@
     private Long domainId;
 
     @Parameter(name = ApiConstants.PROJECT_ID, type = CommandType.UUID, entityType = ProjectResponse.class,
-            description = "create site-to-site VPN customer gateway for the project")
+            description = "create site-to-site VPN customer gateway for the project", since = "4.6")
     private Long projectId;
 
     /////////////////////////////////////////////////////
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
index 37b7b5a..12ab531 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
@@ -93,7 +93,7 @@
 
     @Override
     public void execute() throws ResourceUnavailableException {
-        if (! _ravService.destroyRemoteAccessVpnForIp(publicIpId, CallContext.current().getCallingAccount())) {
+        if (! _ravService.destroyRemoteAccessVpnForIp(publicIpId, CallContext.current().getCallingAccount(), false)) {
                        throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete remote access vpn");
         }
     }
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java
index f552b14..140bdad 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/RemoveVpnUserCmd.java
@@ -115,9 +115,14 @@
             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to remove vpn user");
         }
 
-        if (!_ravService.applyVpnUsers(owner.getId(), userName)) {
-            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to apply vpn user removal");
+        try {
+            if (!_ravService.applyVpnUsers(owner.getId(), userName)) {
+                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to apply vpn user removal");
+            }
+        }catch (Exception ex) {
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to remove vpn user due to resource unavailable");
         }
+
         SuccessResponse response = new SuccessResponse(getCommandName());
         setResponseObject(response);
     }
diff --git a/api/src/org/apache/cloudstack/api/response/AutoScaleVmProfileResponse.java b/api/src/org/apache/cloudstack/api/response/AutoScaleVmProfileResponse.java
index 2c21935..412af1c 100644
--- a/api/src/org/apache/cloudstack/api/response/AutoScaleVmProfileResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/AutoScaleVmProfileResponse.java
@@ -75,6 +75,7 @@
     @Parameter(name = ApiConstants.CS_URL,
                type = CommandType.STRING,
                description = "the API URL including port of the CloudStack Management Server example: http://server.cloud.com:8080/client/api?")
+    // leaving cloud.com reference above as it serves only as an example
     private String csUrl;
 
     @SerializedName(ApiConstants.ACCOUNT)
diff --git a/api/src/org/apache/cloudstack/api/response/FirewallResponse.java b/api/src/org/apache/cloudstack/api/response/FirewallResponse.java
index 462bd1b..eabc935 100644
--- a/api/src/org/apache/cloudstack/api/response/FirewallResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/FirewallResponse.java
@@ -79,6 +79,10 @@
     @Param(description = "is rule for display to the regular user", since = "4.4", authorized = {RoleType.Admin})
     private Boolean forDisplay;
 
+    @SerializedName(ApiConstants.DEST_CIDR_LIST)
+    @Param(description = "the cidr list to forward traffic to")
+    private String destCidr;
+
     public void setId(String id) {
         this.id = id;
     }
@@ -130,4 +134,8 @@
     public void setForDisplay(Boolean forDisplay) {
         this.forDisplay = forDisplay;
     }
+
+    public void setDestCidr(String cidrList){
+        this.destCidr = cidrList;
+    }
 }
diff --git a/api/src/org/apache/cloudstack/api/response/HostForMigrationResponse.java b/api/src/org/apache/cloudstack/api/response/HostForMigrationResponse.java
index 2f3c86b..8cc3109 100644
--- a/api/src/org/apache/cloudstack/api/response/HostForMigrationResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/HostForMigrationResponse.java
@@ -107,6 +107,15 @@
     @Param(description = "the amount of the host's CPU after applying the cpu.overprovisioning.factor ")
     private String cpuWithOverprovisioning;
 
+    @Deprecated
+    @SerializedName("memorytotal")
+    @Param(description = "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning")
+    private Long memoryTotal;
+
+    @SerializedName("memorywithoverprovisioning")
+    @Param(description = "the amount of the host's memory after applying the mem.overprovisioning.factor ")
+    private String memWithOverprovisioning;
+
     @SerializedName("averageload")
     @Param(description = "the cpu average load on the host")
     private Long averageLoad;
@@ -119,13 +128,9 @@
     @Param(description = "the outgoing network traffic on the host")
     private Long networkKbsWrite;
 
-    @SerializedName("memorytotal")
-    @Param(description = "the memory total of the host")
-    private Long memoryTotal;
-
     @SerializedName("memoryallocated")
     @Param(description = "the amount of the host's memory currently allocated")
-    private Long memoryAllocated;
+    private String memoryAllocated;
 
     @SerializedName("memoryused")
     @Param(description = "the amount of the host's memory currently used")
@@ -305,11 +310,7 @@
         this.networkKbsWrite = networkKbsWrite;
     }
 
-    public void setMemoryTotal(Long memoryTotal) {
-        this.memoryTotal = memoryTotal;
-    }
-
-    public void setMemoryAllocated(Long memoryAllocated) {
+    public void setMemoryAllocated(String memoryAllocated) {
         this.memoryAllocated = memoryAllocated;
     }
 
@@ -401,6 +402,10 @@
         this.cpuWithOverprovisioning = cpuWithOverprovisioning;
     }
 
+    public void setMemWithOverprovisioning(String memWithOverprovisioning){
+        this.memWithOverprovisioning=memWithOverprovisioning;
+    }
+
     public void setHypervisorVersion(String hypervisorVersion) {
         this.hypervisorVersion = hypervisorVersion;
     }
@@ -408,4 +413,8 @@
     public void setHaHost(Boolean haHost) {
         this.haHost = haHost;
     }
+
+    public void setMemoryTotal(Long memoryTotal) {
+        this.memoryTotal = memoryTotal;
+    }
 }
diff --git a/api/src/org/apache/cloudstack/api/response/HostResponse.java b/api/src/org/apache/cloudstack/api/response/HostResponse.java
index 90fe800..1a3a80c 100644
--- a/api/src/org/apache/cloudstack/api/response/HostResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/HostResponse.java
@@ -125,13 +125,18 @@
     @Param(description = "the outgoing network traffic on the host")
     private Long networkKbsWrite;
 
+    @Deprecated
     @SerializedName("memorytotal")
-    @Param(description = "the memory total of the host")
+    @Param(description = "the memory total of the host, this parameter is deprecated use memorywithoverprovisioning")
     private Long memoryTotal;
 
+    @SerializedName("memorywithoverprovisioning")
+    @Param(description = "the amount of the host's memory after applying the mem.overprovisioning.factor")
+    private String memWithOverprovisioning;
+
     @SerializedName("memoryallocated")
     @Param(description = "the amount of the host's memory currently allocated")
-    private Long memoryAllocated;
+    private long memoryAllocated;
 
     @SerializedName("memoryused")
     @Param(description = "the amount of the host's memory currently used")
@@ -328,11 +333,11 @@
         this.networkKbsWrite = networkKbsWrite;
     }
 
-    public void setMemoryTotal(Long memoryTotal) {
-        this.memoryTotal = memoryTotal;
+    public void setMemWithOverprovisioning(String memWithOverprovisioning){
+        this.memWithOverprovisioning=memWithOverprovisioning;
     }
 
-    public void setMemoryAllocated(Long memoryAllocated) {
+    public void setMemoryAllocated(long memoryAllocated) {
         this.memoryAllocated = memoryAllocated;
     }
 
@@ -458,6 +463,9 @@
 
     }
 
+    public void setMemoryTotal(Long memoryTotal) {
+        this.memoryTotal = memoryTotal;
+    }
     public String getName() {
         return name;
     }
@@ -542,7 +550,7 @@
         return memoryTotal;
     }
 
-    public Long getMemoryAllocated() {
+    public long getMemoryAllocated() {
         return memoryAllocated;
     }
 
diff --git a/api/src/org/apache/cloudstack/api/response/ImageStoreResponse.java b/api/src/org/apache/cloudstack/api/response/ImageStoreResponse.java
index bb44a01..aaef652 100644
--- a/api/src/org/apache/cloudstack/api/response/ImageStoreResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/ImageStoreResponse.java
@@ -16,9 +16,6 @@
 // under the License.
 package org.apache.cloudstack.api.response;
 
-import java.util.LinkedHashSet;
-import java.util.Set;
-
 import com.google.gson.annotations.SerializedName;
 
 import org.apache.cloudstack.api.ApiConstants;
@@ -63,12 +60,7 @@
     @Param(description = "the scope of the image store")
     private ScopeType scope;
 
-    @SerializedName("details")
-    @Param(description = "the details of the image store")
-    private Set<ImageStoreDetailResponse> details;
-
     public ImageStoreResponse() {
-        this.details = new LinkedHashSet<ImageStoreDetailResponse>();
     }
 
     @Override
@@ -140,16 +132,4 @@
         this.protocol = protocol;
     }
 
-    public Set<ImageStoreDetailResponse> getDetails() {
-        return details;
-    }
-
-    public void setDetails(Set<ImageStoreDetailResponse> details) {
-        this.details = details;
-    }
-
-    public void addDetail(ImageStoreDetailResponse detail) {
-        this.details.add(detail);
-    }
-
 }
diff --git a/api/src/org/apache/cloudstack/api/response/LoginCmdResponse.java b/api/src/org/apache/cloudstack/api/response/LoginCmdResponse.java
index 55eb2c4..d2d122e 100644
--- a/api/src/org/apache/cloudstack/api/response/LoginCmdResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/LoginCmdResponse.java
@@ -58,6 +58,10 @@
     @Param(description = "user time zone")
     private String timeZone;
 
+    @SerializedName(value = ApiConstants.TIMEZONEOFFSET)
+    @Param(description = "user time zoneoffset")
+    private String timeZoneOffset;
+
     @SerializedName(value = ApiConstants.REGISTERED)
     @Param(description = "Is user registered")
     private String registered;
@@ -138,6 +142,12 @@
         this.timeZone = timeZone;
     }
 
+    public String getTimeZoneOffset() {
+        return timeZoneOffset;
+    }
+
+    public void setTimeZoneOffset(String timeZoneOffset) { this.timeZoneOffset = timeZoneOffset; }
+
     public String getRegistered() {
         return registered;
     }
diff --git a/api/src/org/apache/cloudstack/api/response/NetworkOfferingResponse.java b/api/src/org/apache/cloudstack/api/response/NetworkOfferingResponse.java
index 775c9a8..93cbb12 100644
--- a/api/src/org/apache/cloudstack/api/response/NetworkOfferingResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/NetworkOfferingResponse.java
@@ -120,6 +120,10 @@
     @Param(description = "true if network offering supports network that span multiple zones", since = "4.4")
     private Boolean supportsStrechedL2Subnet;
 
+    @SerializedName(ApiConstants.SUPPORTS_PUBLIC_ACCESS)
+    @Param(description = "true if network offering supports public access for guest networks", since = "4.10.0")
+    private Boolean supportsPublicAccess;
+
     public void setId(String id) {
         this.id = id;
     }
@@ -207,4 +211,8 @@
     public void setSupportsStrechedL2Subnet(Boolean supportsStrechedL2Subnet) {
         this.supportsStrechedL2Subnet = supportsStrechedL2Subnet;
     }
+
+    public void setSupportsPublicAccess(Boolean supportsPublicAccess) {
+        this.supportsPublicAccess = supportsPublicAccess;
+    }
 }
diff --git a/api/src/org/apache/cloudstack/api/response/NicSecondaryIpResponse.java b/api/src/org/apache/cloudstack/api/response/NicSecondaryIpResponse.java
index e0884c0..467a1c9 100644
--- a/api/src/org/apache/cloudstack/api/response/NicSecondaryIpResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/NicSecondaryIpResponse.java
@@ -17,7 +17,7 @@
 package org.apache.cloudstack.api.response;
 
 import com.google.gson.annotations.SerializedName;
-
+import java.util.List;
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.BaseResponse;
 import org.apache.cloudstack.api.EntityReference;
@@ -33,6 +33,10 @@
     @Param(description = "the ID of the secondary private IP addr")
     private String id;
 
+    @SerializedName("secondaryip")
+    @Param(description = "the list of Secondary ipv4 addr of nic")
+    private List<NicSecondaryIpResponse> secondaryIpsList;
+
     @SerializedName(ApiConstants.IP_ADDRESS)
     @Param(description = "Secondary IP address")
     private String ipAddr;
@@ -94,4 +98,11 @@
         this.id = id;
     }
 
+    public List<NicSecondaryIpResponse> getSecondaryIpsList() {
+        return secondaryIpsList;
+    }
+
+    public void setSecondaryIpsList(List<NicSecondaryIpResponse> secondaryIpsList) {
+        this.secondaryIpsList = secondaryIpsList;
+    }
 }
diff --git a/api/src/org/apache/cloudstack/api/response/ProjectResponse.java b/api/src/org/apache/cloudstack/api/response/ProjectResponse.java
index ad29d2b..0ae9e18 100644
--- a/api/src/org/apache/cloudstack/api/response/ProjectResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/ProjectResponse.java
@@ -56,6 +56,10 @@
     @Param(description = "the account name of the project's owner")
     private String ownerName;
 
+    @SerializedName("projectaccountname")
+    @Param(description="the project account name of the project")
+    private String projectAccountName;
+
     @SerializedName(ApiConstants.STATE)
     @Param(description = "the state of the project")
     private String state;
@@ -228,6 +232,10 @@
         ownerName = owner;
     }
 
+    public void setProjectAccountName(String projectAccountName) {
+        this.projectAccountName = projectAccountName;
+    }
+
     public void setState(String state) {
         this.state = state;
     }
diff --git a/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java b/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java
index aa8de5c..a49a4e3 100644
--- a/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/SnapshotResponse.java
@@ -16,17 +16,15 @@
 // under the License.
 package org.apache.cloudstack.api.response;
 
-import java.util.Date;
-import java.util.List;
-
+import com.cloud.serializer.Param;
+import com.cloud.storage.Snapshot;
 import com.google.gson.annotations.SerializedName;
-
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.BaseResponse;
 import org.apache.cloudstack.api.EntityReference;
 
-import com.cloud.serializer.Param;
-import com.cloud.storage.Snapshot;
+import java.util.Date;
+import java.util.List;
 
 @EntityReference(value = Snapshot.class)
 public class SnapshotResponse extends BaseResponse implements ControlledEntityResponse {
@@ -82,6 +80,10 @@
     @Param(description = "valid types are hourly, daily, weekly, monthy, template, and none.")
     private String intervalType;
 
+    @SerializedName(ApiConstants.LOCATION_TYPE)
+    @Param(description = "valid location types are primary and secondary.")
+    private String locationType;
+
     @SerializedName(ApiConstants.STATE)
     @Param(description = "the state of the snapshot. BackedUp means that snapshot is ready to be used; Creating - the snapshot is being allocated on the primary storage; BackingUp - the snapshot is being backed up on secondary storage")
     private Snapshot.State state;
@@ -102,6 +104,14 @@
     @Param(description = "indicates whether the underlying storage supports reverting the volume to this snapshot")
     private boolean revertable;
 
+    @SerializedName(ApiConstants.OS_TYPE_ID)
+    @Param(description = "id of the os on volume", since = "4.10")
+    private String osTypeId;
+
+    @SerializedName(ApiConstants.OS_DISPLAY_NAME)
+    @Param(description = "display name of the os on volume")
+    private String osDisplayName;
+
     @Override
     public String getObjectId() {
         return this.getId();
@@ -166,6 +176,10 @@
         this.intervalType = intervalType;
     }
 
+    public void setLocationType(String locationType) {
+        this.locationType = locationType;
+    }
+
     public void setState(Snapshot.State state) {
         this.state = state;
     }
@@ -192,11 +206,19 @@
         this.tags = tags;
     }
 
-    public boolean isRevertable() {
-        return revertable;
-    }
-
     public void setRevertable(boolean revertable) {
         this.revertable = revertable;
     }
-}
+
+    public String getOsTypeId() {
+        return osTypeId;
+    }
+
+    public void setOsTypeId(String osTypeId) {
+        this.osTypeId = osTypeId;
+    }
+
+    public void setOsDisplayName(String osDisplayName) {
+        this.osDisplayName = osDisplayName;
+    }
+}
\ No newline at end of file
diff --git a/api/src/org/apache/cloudstack/api/response/SslCertResponse.java b/api/src/org/apache/cloudstack/api/response/SslCertResponse.java
index 8b3db46..d722e98 100644
--- a/api/src/org/apache/cloudstack/api/response/SslCertResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/SslCertResponse.java
@@ -24,7 +24,7 @@
 import org.apache.cloudstack.api.BaseResponse;
 import org.apache.cloudstack.api.EntityReference;
 
-import com.cloud.network.lb.SslCert;
+import org.apache.cloudstack.network.tls.SslCert;
 import com.cloud.serializer.Param;
 
 //import org.apache.cloudstack.api.EntityReference;
diff --git a/api/src/org/apache/cloudstack/api/response/TemplateResponse.java b/api/src/org/apache/cloudstack/api/response/TemplateResponse.java
index 237f181..c576493 100644
--- a/api/src/org/apache/cloudstack/api/response/TemplateResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/TemplateResponse.java
@@ -169,6 +169,10 @@
     @Param(description = "additional key/value details tied with template")
     private Map details;
 
+    @SerializedName(ApiConstants.BITS)
+    @Param(description="the processor bit size", since = "4.10")
+    private int bits;
+
     @SerializedName(ApiConstants.SSHKEY_ENABLED)
     @Param(description = "true if template is sshkey enabled, false otherwise")
     private Boolean sshKeyEnabled;
@@ -347,4 +351,7 @@
         return zoneId;
     }
 
+    public void setBits(int bits) {
+        this.bits = bits;
+    }
 }
diff --git a/api/src/org/apache/cloudstack/api/response/UsageRecordResponse.java b/api/src/org/apache/cloudstack/api/response/UsageRecordResponse.java
index 87a085c..e51475b 100644
--- a/api/src/org/apache/cloudstack/api/response/UsageRecordResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/UsageRecordResponse.java
@@ -253,4 +253,8 @@
     public void setMemory(Long memory) {
         this.memory = memory;
     }
+
+    public String getDomainName(){
+        return domainName;
+    }
 }
diff --git a/api/src/org/apache/cloudstack/api/response/UserResponse.java b/api/src/org/apache/cloudstack/api/response/UserResponse.java
index cc986b3..d96f632 100644
--- a/api/src/org/apache/cloudstack/api/response/UserResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/UserResponse.java
@@ -94,6 +94,7 @@
     @Param(description = "the api key of the user", isSensitive = true)
     private String apiKey;
 
+    @Deprecated
     @SerializedName("secretkey")
     @Param(description = "the secret key of the user", isSensitive = true)
     private String secretKey;
@@ -236,7 +237,6 @@
     public String getSecretKey() {
         return secretKey;
     }
-
     public void setSecretKey(String secretKey) {
         this.secretKey = secretKey;
     }
diff --git a/api/src/com/cloud/network/lb/CertService.java b/api/src/org/apache/cloudstack/network/tls/CertService.java
similarity index 90%
rename from api/src/com/cloud/network/lb/CertService.java
rename to api/src/org/apache/cloudstack/network/tls/CertService.java
index e9219e0..6f4feff 100644
--- a/api/src/com/cloud/network/lb/CertService.java
+++ b/api/src/org/apache/cloudstack/network/tls/CertService.java
@@ -14,8 +14,9 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package com.cloud.network.lb;
+package org.apache.cloudstack.network.tls;
 
+import java.security.cert.Certificate;
 import java.util.List;
 
 import org.apache.cloudstack.api.command.user.loadbalancer.DeleteSslCertCmd;
@@ -30,4 +31,6 @@
     public void deleteSslCert(DeleteSslCertCmd deleteSslCertCmd);
 
     public List<SslCertResponse> listSslCerts(ListSslCertsCmd listSslCertCmd);
+
+    public Certificate parseCertificate(final String cert);
 }
\ No newline at end of file
diff --git a/api/src/com/cloud/network/lb/SslCert.java b/api/src/org/apache/cloudstack/network/tls/SslCert.java
similarity index 96%
rename from api/src/com/cloud/network/lb/SslCert.java
rename to api/src/org/apache/cloudstack/network/tls/SslCert.java
index 98f96ce..fb1590c 100644
--- a/api/src/com/cloud/network/lb/SslCert.java
+++ b/api/src/org/apache/cloudstack/network/tls/SslCert.java
@@ -14,7 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package com.cloud.network.lb;
+package org.apache.cloudstack.network.tls;
 
 import org.apache.cloudstack.acl.ControlledEntity;
 import org.apache.cloudstack.api.Identity;
diff --git a/api/test/org/apache/cloudstack/api/command/test/CreateSnapshotCmdTest.java b/api/test/org/apache/cloudstack/api/command/test/CreateSnapshotCmdTest.java
new file mode 100644
index 0000000..5e2b222
--- /dev/null
+++ b/api/test/org/apache/cloudstack/api/command/test/CreateSnapshotCmdTest.java
@@ -0,0 +1,132 @@
+// 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 org.apache.cloudstack.api.command.test;
+
+import com.cloud.storage.Snapshot;
+import com.cloud.storage.VolumeApiService;
+import com.cloud.user.Account;
+import com.cloud.user.AccountService;
+import junit.framework.TestCase;
+import org.apache.cloudstack.api.ResponseGenerator;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotCmd;
+import org.apache.cloudstack.api.response.SnapshotResponse;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.isNull;
+
+public class CreateSnapshotCmdTest extends TestCase {
+
+    private CreateSnapshotCmd createSnapshotCmd;
+    private ResponseGenerator responseGenerator;
+
+    @Rule
+    public ExpectedException expectedException = ExpectedException.none();
+
+    @Override
+    @Before
+    public void setUp() {
+
+        createSnapshotCmd = new CreateSnapshotCmd() {
+
+            @Override
+            public String getCommandName() {
+                return "createsnapshotresponse";
+            }
+
+            @Override
+            public Long getVolumeId(){
+                return 1L;
+            }
+
+            @Override
+            public long getEntityOwnerId(){
+                return 1L;
+            }
+        };
+
+    }
+
+    @Test
+    public void testCreateSuccess() {
+
+        AccountService accountService = Mockito.mock(AccountService.class);
+        Account account = Mockito.mock(Account.class);
+        Mockito.when(accountService.getAccount(anyLong())).thenReturn(account);
+
+        VolumeApiService volumeApiService = Mockito.mock(VolumeApiService.class);
+        Snapshot snapshot = Mockito.mock(Snapshot.class);
+        try {
+
+            Mockito.when(volumeApiService.takeSnapshot(anyLong(), anyLong(), anyLong(),
+                    any(Account.class), anyBoolean(), isNull(Snapshot.LocationType.class))).thenReturn(snapshot);
+
+        } catch (Exception e) {
+            Assert.fail("Received exception when success expected " + e.getMessage());
+        }
+
+        responseGenerator = Mockito.mock(ResponseGenerator.class);
+        SnapshotResponse snapshotResponse = Mockito.mock(SnapshotResponse.class);
+        Mockito.when(responseGenerator.createSnapshotResponse(snapshot)).thenReturn(snapshotResponse);
+        Mockito.doNothing().when(snapshotResponse).setAccountName(anyString());
+
+        createSnapshotCmd._accountService = accountService;
+        createSnapshotCmd._responseGenerator = responseGenerator;
+        createSnapshotCmd._volumeService = volumeApiService;
+
+        try {
+            createSnapshotCmd.execute();
+        } catch (Exception e) {
+            Assert.fail("Received exception when success expected " + e.getMessage());
+        }
+    }
+
+    @Test
+    public void testCreateFailure() {
+
+        AccountService accountService = Mockito.mock(AccountService.class);
+        Account account = Mockito.mock(Account.class);
+        Mockito.when(accountService.getAccount(anyLong())).thenReturn(account);
+
+        VolumeApiService volumeApiService = Mockito.mock(VolumeApiService.class);
+
+        try {
+                Mockito.when(volumeApiService.takeSnapshot(anyLong(), anyLong(), anyLong(),
+                        any(Account.class), anyBoolean(), isNull(Snapshot.LocationType.class))).thenReturn(null);
+        } catch (Exception e) {
+            Assert.fail("Received exception when success expected " + e.getMessage());
+        }
+
+        createSnapshotCmd._accountService = accountService;
+        createSnapshotCmd._volumeService = volumeApiService;
+
+        try {
+            createSnapshotCmd.execute();
+        } catch (ServerApiException exception) {
+            Assert.assertEquals("Failed to create snapshot due to an internal error creating snapshot for volume 1", exception.getDescription());
+        }
+    }
+}
diff --git a/api/test/org/apache/cloudstack/api/command/user/template/CopyTemplateCmdByAdminTest.java b/api/test/org/apache/cloudstack/api/command/user/template/CopyTemplateCmdByAdminTest.java
new file mode 100644
index 0000000..d34c31f
--- /dev/null
+++ b/api/test/org/apache/cloudstack/api/command/user/template/CopyTemplateCmdByAdminTest.java
@@ -0,0 +1,77 @@
+// 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 org.apache.cloudstack.api.command.user.template;
+
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.template.TemplateApiService;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.command.admin.template.CopyTemplateCmdByAdmin;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import java.util.ArrayList;
+
+/**
+ * Created by stack on 7/21/16.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class CopyTemplateCmdByAdminTest{
+
+    @InjectMocks
+    private CopyTemplateCmdByAdmin copyTemplateCmdByAdmin;
+
+    @Mock
+    public TemplateApiService _templateService;
+
+    @Test
+    public void testZoneidAndZoneIdListEmpty() throws ResourceAllocationException {
+        try {
+            copyTemplateCmdByAdmin = new CopyTemplateCmdByAdmin();
+            copyTemplateCmdByAdmin.execute();
+        } catch (ServerApiException e) {
+            if(e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("API should fail when no parameters are passed.");
+            }
+        }
+    }
+
+    @Test
+    public void testDestZoneidAndDestZoneIdListBothPresent() throws ResourceAllocationException {
+        try {
+            copyTemplateCmdByAdmin = new CopyTemplateCmdByAdmin();
+            copyTemplateCmdByAdmin.destZoneId = -1L;
+            copyTemplateCmdByAdmin.destZoneIds = new ArrayList<>();
+            copyTemplateCmdByAdmin.destZoneIds.add(-1L);
+
+            copyTemplateCmdByAdmin.execute();
+        } catch (ServerApiException e) {
+            if(e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("Api should fail when both destzoneid and destzoneids are passed");
+            }
+        }
+    }
+
+
+}
+
diff --git a/api/test/org/apache/cloudstack/api/command/user/template/CopyTemplateCmdTest.java b/api/test/org/apache/cloudstack/api/command/user/template/CopyTemplateCmdTest.java
new file mode 100644
index 0000000..145aaa6
--- /dev/null
+++ b/api/test/org/apache/cloudstack/api/command/user/template/CopyTemplateCmdTest.java
@@ -0,0 +1,75 @@
+// 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 org.apache.cloudstack.api.command.user.template;
+
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.template.TemplateApiService;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.ServerApiException;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import java.util.ArrayList;
+
+/**
+ * Created by stack on 7/21/16.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class CopyTemplateCmdTest{
+
+    @InjectMocks
+    private CopyTemplateCmd copyTemplateCmd;
+
+    @Mock
+    public TemplateApiService _templateService;
+
+    @Test
+    public void testZoneidAndZoneIdListEmpty() throws ResourceAllocationException {
+        try {
+            copyTemplateCmd = new CopyTemplateCmd();
+            copyTemplateCmd.execute();
+        } catch (ServerApiException e) {
+            if(e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("API should fail when no parameters are passed.");
+            }
+        }
+    }
+
+    @Test
+    public void testDestZoneidAndDestZoneIdListBothPresent() throws ResourceAllocationException {
+        try {
+            copyTemplateCmd = new CopyTemplateCmd();
+            copyTemplateCmd.destZoneId = -1L;
+            copyTemplateCmd.destZoneIds = new ArrayList<>();
+            copyTemplateCmd.destZoneIds.add(-1L);
+
+            copyTemplateCmd.execute();
+        } catch (ServerApiException e) {
+            if(e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("Api should fail when both destzoneid and destzoneids are passed");
+            }
+        }
+    }
+
+
+}
+
diff --git a/api/test/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmdByAdminTest.java b/api/test/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmdByAdminTest.java
new file mode 100644
index 0000000..1ba7963
--- /dev/null
+++ b/api/test/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmdByAdminTest.java
@@ -0,0 +1,113 @@
+// 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 org.apache.cloudstack.api.command.user.template;
+
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.template.TemplateApiService;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.command.admin.template.RegisterTemplateCmdByAdmin;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import java.util.ArrayList;
+
+@RunWith(MockitoJUnitRunner.class)
+public class RegisterTemplateCmdByAdminTest{
+
+    @InjectMocks
+    private RegisterTemplateCmdByAdmin registerTemplateCmdByAdmin;
+
+    @Mock
+    public TemplateApiService _templateService;
+
+    @Test
+    public void testZoneidAndZoneIdListEmpty() throws ResourceAllocationException {
+        try {
+            registerTemplateCmdByAdmin = new RegisterTemplateCmdByAdmin();
+            registerTemplateCmdByAdmin.execute();
+        } catch (ServerApiException e) {
+            if(e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("Api should fail when both zoneid and zoneids aren't passed");
+            }
+        }
+    }
+
+    @Test
+    public void testZoneidAndZoneIdListBothPresent() throws ResourceAllocationException {
+        try {
+            registerTemplateCmdByAdmin = new RegisterTemplateCmdByAdmin();
+            registerTemplateCmdByAdmin.zoneId = -1L;
+            registerTemplateCmdByAdmin.zoneIds = new ArrayList<>();
+            registerTemplateCmdByAdmin.zoneIds.add(-1L);
+
+            registerTemplateCmdByAdmin.execute();
+        } catch (ServerApiException e) {
+            if(e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("Api should fail when both zoneid and zoneids are passed");
+            }
+        }
+    }
+
+
+    @Test
+    public void testZoneidMinusOne() throws ResourceAllocationException {
+        // If zoneId is passed as -1, then zone ids list should be null.
+        registerTemplateCmdByAdmin = new RegisterTemplateCmdByAdmin();
+        registerTemplateCmdByAdmin.zoneId = -1L;
+
+        Assert.assertNull(registerTemplateCmdByAdmin.getZoneIds());
+    }
+
+    @Test
+    public void testZoneidListMinusOne() throws ResourceAllocationException {
+        // If zoneId List has only one parameter -1, then zone ids list should be null.
+        registerTemplateCmdByAdmin = new RegisterTemplateCmdByAdmin();
+        registerTemplateCmdByAdmin.zoneIds = new ArrayList<>();
+        registerTemplateCmdByAdmin.zoneIds.add(-1L);
+
+        Assert.assertNull(registerTemplateCmdByAdmin.getZoneIds());
+    }
+
+    @Test
+    public void testZoneidListMoreThanMinusOne() throws ResourceAllocationException {
+        try {
+            registerTemplateCmdByAdmin = new RegisterTemplateCmdByAdmin();
+            registerTemplateCmdByAdmin.zoneIds = new ArrayList<>();
+            registerTemplateCmdByAdmin.zoneIds.add(-1L);
+            registerTemplateCmdByAdmin.zoneIds.add(1L);
+            registerTemplateCmdByAdmin.execute();
+        } catch (ServerApiException e) {
+            if (e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("Parameter zoneids cannot combine all zones (-1) option with other zones");
+            }
+        }
+    }
+   @Test
+    public void testZoneidPresentZoneidListAbsent() throws ResourceAllocationException {
+           registerTemplateCmdByAdmin  = new RegisterTemplateCmdByAdmin();
+           registerTemplateCmdByAdmin.zoneIds = null;
+           registerTemplateCmdByAdmin.zoneId = 1L;
+           Assert.assertEquals((Long)1L,registerTemplateCmdByAdmin.getZoneIds().get(0));
+    }
+}
diff --git a/api/test/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmdTest.java b/api/test/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmdTest.java
new file mode 100644
index 0000000..f0cf6a9
--- /dev/null
+++ b/api/test/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmdTest.java
@@ -0,0 +1,111 @@
+// 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 org.apache.cloudstack.api.command.user.template;
+
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.template.TemplateApiService;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.ServerApiException;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import java.util.ArrayList;
+
+@RunWith(MockitoJUnitRunner.class)
+public class RegisterTemplateCmdTest{
+
+    @InjectMocks
+    private RegisterTemplateCmd registerTemplateCmd;
+
+    @Mock
+    public TemplateApiService _templateService;
+
+    @Test
+    public void testZoneidAndZoneIdListEmpty() throws ResourceAllocationException {
+        try {
+            registerTemplateCmd = new RegisterTemplateCmd();
+            registerTemplateCmd.execute();
+        } catch (ServerApiException e) {
+            if(e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("Api should fail when both zoneid and zoneids aren't passed");
+            }
+        }
+    }
+
+    @Test
+    public void testZoneidAndZoneIdListBothPresent() throws ResourceAllocationException {
+        try {
+            registerTemplateCmd = new RegisterTemplateCmd();
+            registerTemplateCmd.zoneId = -1L;
+            registerTemplateCmd.zoneIds = new ArrayList<>();
+            registerTemplateCmd.zoneIds.add(-1L);
+
+            registerTemplateCmd.execute();
+        } catch (ServerApiException e) {
+            if(e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("Api should fail when both zoneid and zoneids are passed");
+            }
+        }
+    }
+
+
+    @Test
+    public void testZoneidMinusOne() throws ResourceAllocationException {
+        // If zoneId is passed as -1, then zone ids list should be null.
+        registerTemplateCmd = new RegisterTemplateCmd();
+        registerTemplateCmd.zoneId = -1L;
+
+        Assert.assertNull(registerTemplateCmd.getZoneIds());
+    }
+
+    @Test
+    public void testZoneidListMinusOne() throws ResourceAllocationException {
+        // If zoneId List has only one parameter -1, then zone ids list should be null.
+        registerTemplateCmd = new RegisterTemplateCmd();
+        registerTemplateCmd.zoneIds = new ArrayList<>();
+        registerTemplateCmd.zoneIds.add(-1L);
+
+        Assert.assertNull(registerTemplateCmd.getZoneIds());
+    }
+    @Test
+    public void testZoneidListMoreThanMinusOne() throws ResourceAllocationException {
+        try {
+            registerTemplateCmd = new RegisterTemplateCmd();
+            registerTemplateCmd.zoneIds = new ArrayList<>();
+            registerTemplateCmd.zoneIds.add(-1L);
+            registerTemplateCmd.zoneIds.add(1L);
+            registerTemplateCmd.execute();
+        } catch (ServerApiException e) {
+            if (e.getErrorCode() != ApiErrorCode.PARAM_ERROR) {
+                Assert.fail("Parameter zoneids cannot combine all zones (-1) option with other zones");
+            }
+        }
+    }
+    @Test
+    public void testZoneidPresentZoneidListAbsent() throws ResourceAllocationException {
+            registerTemplateCmd = new RegisterTemplateCmd();
+            registerTemplateCmd.zoneIds = null;
+            registerTemplateCmd.zoneId = 1L;
+            Assert.assertEquals((Long)1L,registerTemplateCmd.getZoneIds().get(0));
+    }
+}
diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
deleted file mode 100644
index 327e1d9..0000000
--- a/client/WEB-INF/classes/resources/messages.properties
+++ /dev/null
@@ -1,2291 +0,0 @@
-# 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.
-label.add.ldap.account=Add LDAP account
-label.vm.ip=VM IP Address
-message.listView.subselect.multi=(Ctrl/Cmd-click)
-label.use.vm.ips=Use VM IPs
-label.reinstall.vm=Reinstall VM
-message.reinstall.vm=NOTE: Proceed with caution. This will cause the VM to be reinstalled from the template; data on the root disk will be lost. Extra data volumes, if any, will not be touched.
-label.recover.vm=Recover VM
-message.recover.vm=Please confirm that you would like to recover this VM.
-label.port=Port
-label.remove.ldap=Remove LDAP
-label.configure.ldap=Configure LDAP
-label.ldap.configuration=LDAP Configuration
-label.ldap.port=LDAP port
-label.create.nfs.secondary.staging.store=Create NFS secondary staging store
-label.volatile=Volatile
-label.planner.mode=Planner mode
-label.deployment.planner=Deployment planner
-label.quiesce.vm=Quiesce VM
-label.smb.username=SMB Username
-label.smb.password=SMB Password
-label.smb.domain=SMB Domain
-label.hypervisors=Hypervisors
-label.home=Home
-label.sockets=CPU Sockets
-label.root.disk.size=Root disk size (GB)
-label.s3.nfs.server=S3 NFS Server
-label.s3.nfs.path=S3 NFS Path
-label.delete.events=Delete events
-label.delete.alerts=Delete alerts
-label.archive.alerts=Archive alerts
-label.archive.events=Archive events
-label.by.alert.type=By alert type
-label.by.event.type=By event type
-label.by.date.start=By date (start)
-label.by.date.end=By date (end)
-label.switch.type=Switch Type
-label.service.state=Service State
-label.egress.default.policy=Egress Default Policy
-label.routing=Routing
-label.hvm=HVM
-label.about=About
-label.app.name=CloudStack
-label.about.app=About CloudStack
-label.custom.disk.iops=Custom IOPS
-label.disk.iops.min=Min IOPS
-label.disk.iops.max=Max IOPS
-label.disk.iops.total=IOPS Total
-label.hypervisor.snapshot.reserve=Hypervisor Snapshot Reserve
-label.secondary.ips=Secondary IPs
-label.edit.secondary.ips=Edit secondary IPs
-label.view.secondary.ips=View secondary IPs
-message.validate.invalid.characters=Invalid characters found; please correct.
-message.acquire.ip.nic=Please confirm that you would like to acquire a new secondary IP for this NIC.<br/>NOTE: You need to manually configure the newly-acquired secondary IP inside the virtual machine.
-message.select.affinity.groups=Please select any affinity groups you want this VM to belong to:
-message.no.affinity.groups=You do not have any affinity groups. Please continue to the next step.
-label.action.delete.nic=Remove NIC
-message.action.delete.nic=Please confirm that want to remove this NIC, which will also remove the associated network from the VM.
-changed.item.properties=Changed item properties
-confirm.enable.s3=Please fill in the following information to enable support for S3-backed Secondary Storage
-confirm.enable.swift=Please fill in the following information to enable support for Swift
-error.could.not.change.your.password.because.ldap.is.enabled=Error could not change your password because LDAP is enabled.
-error.could.not.enable.zone=Could not enable zone
-error.installWizard.message=Something went wrong; you may go back and correct any errors
-error.invalid.username.password=Invalid username or password
-error.login=Your username/password does not match our records.
-error.menu.select=Unable to perform action due to no items being selected.
-error.mgmt.server.inaccessible=The Management Server is unaccessible.  Please try again later.
-error.password.not.match=The password fields do not match
-error.please.specify.physical.network.tags=Network offerings is not available until you specify tags for this physical network.
-error.session.expired=Your session has expired.
-error.something.went.wrong.please.correct.the.following=Something went wrong; please correct the following
-error.unable.to.reach.management.server=Unable to reach Management Server
-error.unresolved.internet.name=Your internet name cannot be resolved.
-label.extractable=Extractable
-force.delete.domain.warning=Warning\: Choosing this option will cause the deletion of all child domains and all associated accounts and their resources.
-force.delete=Force Delete
-force.remove.host.warning=Warning\: Choosing this option will cause CloudStack to forcefully stop all running virtual machines before removing this host from the cluster.
-force.remove=Force Remove
-force.stop.instance.warning=Warning\: Forcing a stop on this instance should be your last option. It can lead to data loss as well as inconsistent behavior of the virtual machine state.
-force.stop=Force Stop
-ICMP.code=ICMP Code
-ICMP.type=ICMP Type
-image.directory=Image Directory
-inline=Inline
-instances.actions.reboot.label=Reboot instance
-label.accept.project.invitation=Accept project invitation
-label.account.and.security.group=Account, Security group
-label.account.id=Account ID
-label.account.name=Account Name
-label.account.specific=Account-Specific
-label.account=Account
-label.accounts=Accounts
-label.acquire.new.ip=Acquire New IP
-label.acquire.new.secondary.ip=Acquire new secondary IP
-label.action.attach.disk.processing=Attaching Disk....
-label.action.attach.disk=Attach Disk
-label.action.attach.iso.processing=Attaching ISO....
-label.action.attach.iso=Attach ISO
-label.action.cancel.maintenance.mode.processing=Cancelling Maintenance Mode....
-label.action.cancel.maintenance.mode=Cancel Maintenance Mode
-label.action.change.password=Change Password
-label.action.configure.samlauthorization=Configure SAML SSO Authorization
-label.action.change.service.processing=Changing Service....
-label.action.change.service=Change Service
-label.action.copy.ISO.processing=Copying ISO....
-label.action.copy.ISO=Copy ISO
-label.action.copy.template.processing=Copying Template....
-label.action.copy.template=Copy Template
-label.action.create.template.from.vm=Create Template from VM
-label.action.create.template.from.volume=Create Template from Volume
-label.action.create.template.processing=Creating Template....
-label.action.create.template=Create Template
-label.action.create.vm.processing=Creating VM....
-label.action.create.vm=Create VM
-label.action.create.volume.processing=Creating Volume....
-label.action.create.volume=Create Volume
-label.action.delete.account.processing=Deleting account....
-label.action.delete.account=Delete account
-label.action.delete.cluster.processing=Deleting Cluster....
-label.action.delete.cluster=Delete Cluster
-label.action.delete.disk.offering.processing=Deleting Disk Offering....
-label.action.delete.disk.offering=Delete Disk Offering
-label.action.delete.domain.processing=Deleting Domain....
-label.action.delete.domain=Delete Domain
-label.action.delete.firewall.processing=Deleting Firewall....
-label.action.delete.firewall=Delete firewall rule
-label.action.delete.ingress.rule.processing=Deleting Ingress Rule....
-label.action.delete.ingress.rule=Delete Ingress Rule
-label.action.delete.IP.range.processing=Deleting IP Range....
-label.action.delete.IP.range=Delete IP Range
-label.action.delete.ISO.processing=Deleting ISO....
-label.action.delete.ISO=Delete ISO
-label.action.delete.load.balancer.processing=Deleting Load Balancer....
-label.action.delete.load.balancer=Delete load balancer rule
-label.action.delete.network.processing=Deleting Network....
-label.action.delete.network=Delete Network
-label.action.delete.nexusVswitch=Delete Nexus 1000v
-label.action.delete.physical.network=Delete physical network
-label.action.delete.pod.processing=Deleting Pod....
-label.action.delete.pod=Delete Pod
-label.action.delete.primary.storage.processing=Deleting Primary Storage....
-label.action.delete.primary.storage=Delete Primary Storage
-label.action.delete.secondary.storage.processing=Deleting Secondary Storage....
-label.action.delete.secondary.storage=Delete Secondary Storage
-label.action.delete.security.group.processing=Deleting Security Group....
-label.action.delete.security.group=Delete Security Group
-label.action.delete.service.offering.processing=Deleting Service Offering....
-label.action.delete.service.offering=Delete Service Offering
-label.action.delete.snapshot.processing=Deleting Snapshot....
-label.action.delete.snapshot=Delete Snapshot
-label.action.delete.system.service.offering=Delete System Service Offering
-label.action.delete.template.processing=Deleting Template....
-label.action.delete.template=Delete Template
-label.action.delete.user.processing=Deleting User....
-label.action.delete.user=Delete User
-label.action.delete.volume.processing=Deleting Volume....
-label.action.delete.volume=Delete Volume
-label.action.delete.zone.processing=Deleting Zone....
-label.action.delete.zone=Delete Zone
-label.action.destroy.instance.processing=Destroying Instance....
-label.action.destroy.instance=Destroy Instance
-label.action.destroy.systemvm.processing=Destroying System VM....
-label.action.destroy.systemvm=Destroy System VM
-label.action.detach.disk.processing=Detaching Disk....
-label.action.detach.disk=Detach Disk
-label.action.detach.iso.processing=Detaching ISO....
-label.action.detach.iso=Detach ISO
-label.action.disable.account.processing=Disabling account....
-label.action.disable.account=Disable account
-label.action.disable.cluster.processing=Disabling Cluster....
-label.action.disable.cluster=Disable Cluster
-label.action.disable.nexusVswitch=Disable Nexus 1000v
-label.action.disable.physical.network=Disable physical network
-label.action.disable.pod.processing=Disabling Pod....
-label.action.disable.pod=Disable Pod
-label.action.disable.static.NAT.processing=Disabling Static NAT....
-label.action.disable.static.NAT=Disable Static NAT
-label.action.disable.user.processing=Disabling User....
-label.action.disable.user=Disable User
-label.action.disable.zone.processing=Disabling Zone....
-label.action.disable.zone=Disable Zone
-label.action.download.ISO=Download ISO
-label.action.download.template=Download Template
-label.action.download.volume.processing=Downloading Volume....
-label.action.download.volume=Download Volume
-label.action.edit.account=Edit account
-label.action.edit.disk.offering=Edit Disk Offering
-label.action.edit.domain=Edit Domain
-label.action.edit.global.setting=Edit Global Setting
-label.action.edit.host=Edit Host
-label.action.edit.instance=Edit Instance
-label.action.edit.ISO=Edit ISO
-label.action.edit.network.offering=Edit Network Offering
-label.action.edit.network.processing=Editing Network....
-label.action.edit.network=Edit Network
-label.action.edit.pod=Edit Pod
-label.action.edit.primary.storage=Edit Primary Storage
-label.action.edit.resource.limits=Edit Resource Limits
-label.action.edit.service.offering=Edit Service Offering
-label.action.edit.template=Edit Template
-label.action.edit.user=Edit User
-label.action.edit.zone=Edit Zone
-label.action.enable.account.processing=Enabling account....
-label.action.enable.account=Enable account
-label.action.enable.cluster.processing=Enabling Cluster....
-label.action.enable.cluster=Enable Cluster
-label.action.enable.maintenance.mode.processing=Enabling Maintenance Mode....
-label.action.enable.maintenance.mode=Enable Maintenance Mode
-label.action.enable.nexusVswitch=Enable Nexus 1000v
-label.action.enable.physical.network=Enable physical network
-label.action.enable.pod.processing=Enabling Pod....
-label.action.enable.pod=Enable Pod
-label.action.enable.static.NAT.processing=Enabling Static NAT....
-label.action.enable.static.NAT=Enable Static NAT
-label.action.enable.user.processing=Enabling User....
-label.action.enable.user=Enable User
-label.action.enable.zone.processing=Enabling Zone....
-label.action.enable.zone=Enable Zone
-label.action.expunge.instance=Expunge Instance
-label.action.expunge.instance.processing=Expunging Instance....
-label.action.force.reconnect.processing=Reconnecting....
-label.action.force.reconnect=Force Reconnect
-label.action.generate.keys.processing=Generate Keys....
-label.action.generate.keys=Generate Keys
-label.action.list.nexusVswitch=List Nexus 1000v
-label.action.lock.account.processing=Locking account....
-label.action.lock.account=Lock account
-label.action.manage.cluster.processing=Managing Cluster....
-label.action.manage.cluster=Manage Cluster
-label.action.migrate.instance.processing=Migrating Instance....
-label.action.migrate.instance=Migrate Instance
-label.action.migrate.router.processing=Migrating Router....
-label.action.migrate.router=Migrate Router
-label.action.migrate.systemvm.processing=Migrating System VM....
-label.action.migrate.systemvm=Migrate System VM
-label.action.reboot.instance.processing=Rebooting Instance....
-label.action.reboot.instance=Reboot Instance
-label.action.reboot.router.processing=Rebooting Router....
-label.action.reboot.router=Reboot Router
-label.action.reboot.systemvm.processing=Rebooting System VM....
-label.action.reboot.systemvm=Reboot System VM
-label.action.recurring.snapshot=Recurring Snapshots
-label.action.register.iso=Register ISO
-label.action.register.template=Register Template from URL
-label.action.release.ip.processing=Releasing IP....
-label.action.release.ip=Release IP
-label.action.remove.host.processing=Removing Host....
-label.action.remove.host=Remove Host
-label.action.reset.password.processing=Resetting Password....
-label.action.reset.password=Reset Password
-label.action.resize.volume.processing=Resizing Volume....
-label.action.resize.volume=Resize Volume
-label.action.resource.limits=Resource limits
-label.action.restore.instance.processing=Restoring Instance....
-label.action.restore.instance=Restore Instance
-label.action.start.instance.processing=Starting Instance....
-label.action.start.instance=Start Instance
-label.action.start.router.processing=Starting Router....
-label.action.start.router=Start Router
-label.action.start.systemvm.processing=Starting System VM....
-label.action.start.systemvm=Start System VM
-label.action.stop.instance.processing=Stopping Instance....
-label.action.stop.instance=Stop Instance
-label.action.stop.router.processing=Stopping Router....
-label.action.stop.router=Stop Router
-label.action.stop.systemvm.processing=Stopping System VM....
-label.action.stop.systemvm=Stop System VM
-label.action.take.snapshot.processing=Taking Snapshot....
-label.action.take.snapshot=Take Snapshot
-label.action.revert.snapshot.processing=Reverting to Snapshot...
-label.action.revert.snapshot=Revert to Snapshot
-label.action.unmanage.cluster.processing=Unmanaging Cluster....
-label.action.unmanage.cluster=Unmanage Cluster
-label.action.update.OS.preference.processing=Updating OS Preference....
-label.action.update.OS.preference=Update OS Preference
-label.action.update.resource.count.processing=Updating Resource Count....
-label.action.update.resource.count=Update Resource Count
-label.action.vmsnapshot.create=Take VM Snapshot
-label.action.vmsnapshot.delete=Delete VM snapshot
-label.action.vmsnapshot.revert=Revert to VM snapshot
-label.actions=Actions
-label.activate.project=Activate Project
-label.active.sessions=Active Sessions
-label.add.account.to.project=Add account to project
-label.add.account=Add Account
-label.add.accounts.to=Add accounts to
-label.add.accounts=Add accounts
-label.add.ACL=Add ACL
-label.add.affinity.group=Add new affinity group
-label.add.BigSwitchBcf.device=Add BigSwitch BCF Controller
-label.add.by.cidr=Add By CIDR
-label.add.by.group=Add By Group
-label.add.by=Add by
-label.add.cluster=Add Cluster
-label.add.compute.offering=Add compute offering
-label.add.direct.iprange=Add Direct Ip Range
-label.add.disk.offering=Add Disk Offering
-label.add.domain=Add Domain
-label.add.egress.rule=Add egress rule
-label.add.F5.device=Add F5 device
-label.add.firewall=Add firewall rule
-label.add.guest.network=Add guest network
-label.add.isolated.guest.network=Add Isolated Guest Network
-label.add.host=Add Host
-label.add.ingress.rule=Add Ingress Rule
-label.add.intermediate.certificate=Add intermediate certificate
-label.add.ip.range=Add IP Range
-label.add.load.balancer=Add Load Balancer
-label.add.more=Add More
-label.add.netScaler.device=Add Netscaler device
-label.add.network.ACL=Add network ACL
-label.add.network.device=Add Network Device
-label.add.network.offering=Add network offering
-label.add.network=Add Network
-label.add.new.F5=Add new F5
-label.add.new.gateway=Add new gateway
-label.add.new.NetScaler=Add new NetScaler
-label.add.new.SRX=Add new SRX
-label.add.new.PA=Add new Palo Alto
-label.add.new.tier=Add new tier
-label.add.NiciraNvp.device=Add Nvp Controller
-label.add.NuageVsp.device=Add Nuage Virtualized Services Directory (VSD)
-label.add.BrocadeVcs.device=Add Brocade Vcs Switch
-label.add.physical.network=Add physical network
-label.add.pod=Add Pod
-label.add.port.forwarding.rule=Add port forwarding rule
-label.add.primary.storage=Add Primary Storage
-label.add.region=Add Region
-label.add.resources=Add Resources
-label.add.route=Add route
-label.add.rule=Add rule
-label.add.secondary.storage=Add Secondary Storage
-label.add.security.group=Add Security Group
-label.add.service.offering=Add Service Offering
-label.add.SRX.device=Add SRX device
-label.add.PA.device=Add Palo Alto device
-label.add.static.nat.rule=Add static NAT rule
-label.add.static.route=Add static route
-label.add.system.service.offering=Add System Service Offering
-label.add.template=Add Template
-label.add.to.group=Add to group
-label.add.user=Add User
-label.add.userdata=Userdata
-label.add.vlan=Add VLAN
-label.add.vxlan=Add VXLAN
-label.add.VM.to.tier=Add VM to tier
-label.add.vm=Add VM
-label.add.vms.to.lb=Add VM(s) to load balancer rule
-label.add.vms=Add VMs
-label.add.volume=Add Volume
-label.add.vpc=Add VPC
-label.add.vpn.customer.gateway=Add VPN Customer Gateway
-label.add.VPN.gateway=Add VPN Gateway
-label.add.vpn.user=Add VPN user
-label.add.zone=Add Zone
-label.add=Add
-label.adding.cluster=Adding Cluster
-label.adding.failed=Adding Failed
-label.adding.pod=Adding Pod
-label.adding.processing=Adding....
-label.adding.succeeded=Adding Succeeded
-label.adding.user=Adding User
-label.adding.zone=Adding Zone
-label.adding=Adding
-label.additional.networks=Additional Networks
-label.admin.accounts=Admin Accounts
-label.admin=Admin
-label.advanced.mode=Advanced Mode
-label.advanced.search=Advance Search
-label.advanced=Advanced
-label.affinity.group=Affinity Group
-label.affinity.groups=Affinity Groups
-label.affinity=Affinity
-label.agent.password=Agent Password
-label.agent.port=Agent Port
-label.agent.username=Agent Username
-label.agree=Agree
-label.alert=Alert
-label.algorithm=Algorithm
-label.allocated=Allocated
-label.allocation.state=Allocation State
-label.anti.affinity.group=Anti-affinity Group
-label.anti.affinity.groups=Anti-affinity Groups
-label.anti.affinity=Anti-affinity
-label.api.key=API Key
-label.api.version=API Version
-label.apply=Apply
-label.assign.to.load.balancer=Assigning instance to load balancer
-label.assign=Assign
-label.associated.network.id=Associated Network ID
-label.associated.network=Associated Network
-label.attached.iso=Attached ISO
-label.author.email=Author e-mail
-label.author.name=Author name
-label.availability.zone=Availability Zone
-label.availability=Availability
-label.available.public.ips=Available Public IP Addresses
-label.available=Available
-label.back=Back
-label.bandwidth=Bandwidth
-label.basic.mode=Basic Mode
-label.basic=Basic
-label.bigswitch.controller.address=BigSwitch BCF Controller Address
-label.bootable=Bootable
-label.broadcast.domain.range=Broadcast domain range
-label.broadcast.domain.type=Broadcast Domain Type
-label.broadcast.uri=Broadcast URI
-label.by.account=By Account
-label.by.availability=By Availability
-label.by.domain=By Domain
-label.by.end.date=By End Date
-label.by.level=By Level
-label.by.pod=By Pod
-label.by.role=By Role
-label.by.start.date=By Start Date
-label.by.state=By State
-label.by.traffic.type=By Traffic Type
-label.by.type.id=By Type ID
-label.by.type=By Type
-label.by.zone=By Zone
-label.bytes.received=Bytes Received
-label.bytes.sent=Bytes Sent
-label.cancel=Cancel
-label.capacity=Capacity
-label.capacity.bytes=Capacity Bytes
-label.capacity.iops=Capacity IOPS
-label.certificate=Server certificate
-label.change.ipaddress=Change IP address for NIC
-label.change.service.offering=Change service offering
-label.change.value=Change value
-label.character=Character
-label.md5.checksum=MD5 checksum
-label.cidr.account=CIDR or Account/Security Group
-label.CIDR.list=CIDR list
-label.cidr.list=Source CIDR
-label.CIDR.of.destination.network=CIDR of destination network
-label.cidr=CIDR
-label.clean.up=Clean up
-label.make.redundant=Make redundant
-label.clear.list=Clear list
-label.close=Close
-label.cloud.console=Cloud Management Console
-label.cloud.managed=Cloud.com Managed
-label.cluster.name=Cluster Name
-label.cluster.type=Cluster Type
-label.cluster=Cluster
-label.clusters=Clusters
-label.clvm=CLVM
-label.custom.disk.offering=Custom Disk Offering
-label.rbd=RBD
-label.rbd.monitor=Ceph monitor
-label.rbd.pool=Ceph pool
-label.rbd.id=Cephx user
-label.rbd.secret=Cephx secret
-label.code=Code
-label.community=Community
-label.compute.and.storage=Compute and Storage
-label.compute.offering=Compute offering
-label.compute.offerings=Compute Offerings
-label.compute=Compute
-label.configuration=Configuration
-label.configure.network.ACLs=Configure Network ACLs
-label.configure.vpc=Configure VPC
-label.configure=Configure
-label.confirm.password=Confirm password
-label.confirmation=Confirmation
-label.congratulations=Congratulations\!
-label.conserve.mode=Conserve mode
-label.console.proxy=Console proxy
-label.continue.basic.install=Continue with basic installation
-label.continue=Continue
-label.corrections.saved=Corrections saved
-label.cpu.allocated.for.VMs=CPU Allocated for VMs
-label.cpu.allocated=CPU Allocated
-label.CPU.cap=CPU Cap
-label.cpu.limits=CPU limits
-label.cpu.mhz=CPU (in MHz)
-label.cpu.utilized=CPU Utilized
-label.cpu=CPU
-label.create.project=Create project
-label.create.ssh.key.pair=Create a SSH Key Pair
-label.create.template=Create template
-label.create.VPN.connection=Create VPN Connection
-label.created.by.system=Created by system
-label.created=Created
-label.cross.zones=Cross Zones
-label.custom.disk.size=Custom Disk Size
-label.daily=Daily
-label.data.disk.offering=Data Disk Offering
-label.date=Date
-label.day.of.month=Day of Month
-label.day.of.week=Day of Week
-label.dead.peer.detection=Dead Peer Detection
-label.decline.invitation=Decline invitation
-label.dedicated=Dedicated
-label.default.use=Default Use
-label.default.view=Default View
-label.default=Default
-label.delete.affinity.group=Delete Affinity Group
-label.delete.BigSwitchBcf=Remove BigSwitch BCF Controller
-label.delete.F5=Delete F5
-label.delete.gateway=Delete gateway
-label.delete.NetScaler=Delete NetScaler
-label.delete.NiciraNvp=Remove Nvp Controller
-label.delete.NuageVsp=Remove Nuage VSD
-label.delete.BrocadeVcs=Remove Brocade Vcs Switch
-label.delete.project=Delete project
-label.delete.SRX=Delete SRX
-label.delete.PA=Delete Palo Alto
-label.delete.VPN.connection=Delete VPN connection
-label.delete.VPN.customer.gateway=Delete VPN Customer Gateway
-label.delete.VPN.gateway=Delete VPN Gateway
-label.delete.vpn.user=Delete VPN user
-label.delete=Delete
-label.deleting.failed=Deleting Failed
-label.deleting.processing=Deleting....
-label.description=Description
-label.destination.physical.network.id=Destination physical network ID
-label.destination.zone=Destination Zone
-label.destroy.router=Destroy router
-label.destroy=Destroy
-label.detaching.disk=Detaching Disk
-label.details=Details
-label.device.id=Device ID
-label.devices=Devices
-label.DHCP.server.type=DHCP Server Type
-label.dhcp=DHCP
-label.direct.ips=Shared Network IPs
-label.disable.provider=Disable provider
-label.disable.vpn=Disable Remote Access VPN
-label.disabled=Disabled
-label.disabling.vpn.access=Disabling VPN Access
-label.disk.allocated=Disk Allocated
-label.disk.bytes.read.rate=Disk Read Rate (BPS)
-label.disk.bytes.write.rate=Disk Write Rate (BPS)
-label.disk.iops.read.rate=Disk Read Rate (IOPS)
-label.disk.iops.write.rate=Disk Write Rate (IOPS)
-label.disk.offering=Disk Offering
-label.disk.provisioningtype=Provisioning Type
-label.disk.read.bytes=Disk Read (Bytes)
-label.disk.read.io=Disk Read (IO)
-label.disk.size.gb=Disk Size (in GB)
-label.disk.size=Disk Size
-label.disk.total=Disk Total
-label.disk.volume=Disk Volume
-label.disk.write.bytes=Disk Write (Bytes)
-label.disk.write.io=Disk Write (IO)
-label.display.text=Display Text
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.DNS.domain.for.guest.networks=DNS domain for Guest Networks
-label.dns=DNS
-label.domain.admin=Domain Admin
-label.domain.id=Domain ID
-label.domain.name=Domain Name
-label.domain.router=Domain router
-label.domain.suffix=DNS Domain Suffix (i.e., xyz.com)
-label.domain=Domain
-label.done=Done
-label.double.quotes.are.not.allowed=Double quotes are not allowed
-label.download.progress=Download Progress
-label.drag.new.position=Drag to new position
-label.edit.affinity.group=Edit Affinity Group
-label.edit.lb.rule=Edit LB rule
-label.edit.network.details=Edit network details
-label.edit.project.details=Edit project details
-label.edit.tags=Edit tags
-label.edit.traffic.type=Edit traffic type
-label.edit.vpc=Edit VPC
-label.edit=Edit
-label.egress.rule=Egress rule
-label.egress.rules=Egress rules
-label.elastic.IP=Elastic IP
-label.elastic.LB=Elastic LB
-label.elastic=Elastic
-label.email=Email
-label.enable.provider=Enable provider
-label.enable.s3=Enable S3-backed Secondary Storage
-label.enable.swift=Enable Swift
-label.enable.vpn=Enable Remote Access VPN
-label.enabling.vpn.access=Enabling VPN Access
-label.enabling.vpn=Enabling VPN
-label.end.IP=End IP
-label.end.port=End Port
-label.end.reserved.system.IP=End Reserved system IP
-label.end.vlan=End VLAN
-label.end.vxlan=End VXLAN
-label.endpoint.or.operation=Endpoint or Operation
-label.endpoint=Endpoint
-label.enter.token=Enter token
-label.error.code=Error Code
-label.error=Error
-label.ESP.encryption=ESP Encryption
-label.ESP.hash=ESP Hash
-label.ESP.lifetime=ESP Lifetime (second)
-label.ESP.policy=ESP policy
-label.esx.host=ESX/ESXi Host
-label.example=Example
-label.expunge=Expunge
-label.external.link=External link
-label.f5=F5
-label.failed=Failed
-label.featured=Featured
-label.fetch.latest=Fetch latest
-label.fingerprint=FingerPrint
-label.filterBy=Filter by
-label.firewall=Firewall
-label.first.name=First Name
-label.format=Format
-label.friday=Friday
-label.full.path=Full path
-label.full=Full
-label.gateway=Gateway
-label.general.alerts=General Alerts
-label.generating.url=Generating URL
-label.gluster.volume=Volume
-label.go.step.2=Go to Step 2
-label.go.step.3=Go to Step 3
-label.go.step.4=Go to Step 4
-label.go.step.5=Go to Step 5
-label.group.optional=Group (Optional)
-label.group=Group
-label.guest.cidr=Guest CIDR
-label.guest.end.ip=Guest end IP
-label.guest.gateway=Guest Gateway
-label.guest.ip.range=Guest IP Range
-label.guest.ip=Guest IP Address
-label.guest.netmask=Guest Netmask
-label.guest.networks=Guest networks
-label.guest.start.ip=Guest start IP
-label.guest.traffic=Guest Traffic
-label.guest.type=Guest Type
-label.guest=Guest
-label.ha.enabled=HA Enabled
-label.help=Help
-label.hide.ingress.rule=Hide Ingress Rule
-label.hints=Hints
-label.host.alerts=Hosts in Alert State
-label.host.MAC=Host MAC
-label.host.name=Host Name
-label.host.tag=Host Tag
-label.host.tags=Host Tags
-label.host=Host
-label.hosts=Hosts
-label.hourly=Hourly
-label.hypervisor.capabilities=Hypervisor capabilities
-label.hypervisor.type=Hypervisor Type
-label.hypervisor.version=Hypervisor version
-label.hypervisor=Hypervisor
-label.id=ID
-label.IKE.DH=IKE DH
-label.IKE.encryption=IKE Encryption
-label.IKE.hash=IKE Hash
-label.IKE.lifetime=IKE lifetime (second)
-label.IKE.policy=IKE policy
-label.info=Info
-label.ingress.rule=Ingress Rule
-label.initiated.by=Initiated By
-label.installWizard.addClusterIntro.subtitle=What is a cluster?
-label.installWizard.addClusterIntro.title=Let&rsquo;s add a cluster
-label.installWizard.addHostIntro.subtitle=What is a host?
-label.installWizard.addHostIntro.title=Let&rsquo;s add a host
-label.installWizard.addPodIntro.subtitle=What is a pod?
-label.installWizard.addPodIntro.title=Let&rsquo;s add a pod
-label.installWizard.addPrimaryStorageIntro.subtitle=What is primary storage?
-label.installWizard.addPrimaryStorageIntro.title=Let&rsquo;s add primary storage
-label.installWizard.addSecondaryStorageIntro.subtitle=What is secondary storage?
-label.installWizard.addSecondaryStorageIntro.title=Let&rsquo;s add secondary storage
-label.installWizard.addZone.title=Add zone
-label.installWizard.addZoneIntro.subtitle=What is a zone?
-label.installWizard.addZoneIntro.title=Let&rsquo;s add a zone
-label.installWizard.click.launch=Click the launch button.
-label.installWizard.subtitle=This tour will aid you in setting up your CloudStack&\#8482 installation
-label.installWizard.title=Hello and Welcome to CloudStack&\#8482
-label.instance.limits=Instance Limits
-label.instance.name=Instance Name
-label.instance=Instance
-label.instances=Instances
-label.intermediate.certificate=Intermediate certificate {0}
-label.internal.dns.1=Internal DNS 1
-label.internal.dns.2=Internal DNS 2
-label.internal.name=Internal name
-label.interval.type=Interval Type
-label.introduction.to.cloudstack=Introduction to CloudStack&\#8482
-label.invalid.integer=Invalid Integer
-label.invalid.number=Invalid Number
-label.invitations=Invitations
-label.invite.to=Invite to
-label.invite=Invite
-label.invited.accounts=Invited accounts
-label.ip.address=IP Address
-label.ip.allocations=IP Allocations
-label.ip.limits=Public IP Limits
-label.ip.or.fqdn=IP or FQDN
-label.ip.range=IP Range
-label.ip.ranges=IP Ranges
-label.ip=IP
-label.ipaddress=IP Address
-label.ips=IPs
-label.IPsec.preshared.key=IPsec Preshared-Key
-label.is.default=Is Default
-label.is.redundant.router=Redundant
-label.is.shared=Is Shared
-label.is.system=Is System
-label.iscsi=iSCSI
-label.iso.boot=ISO Boot
-label.iso=ISO
-label.isolated.networks=Isolated networks
-label.isolation.method=Isolation method
-label.isolation.mode=Isolation Mode
-label.isolation.uri=Isolation URI
-label.item.listing=Item listing
-label.keep=Keep
-label.key=Key
-label.keyboard.type=Keyboard type
-label.kvm.traffic.label=KVM traffic label
-label.label=Label
-label.lang.arabic=Arabic
-label.lang.brportugese=Brazilian Portugese
-label.lang.catalan=Catalan
-label.lang.chinese=Chinese (Simplified)
-label.lang.dutch=Dutch (Netherlands)
-label.lang.english=English
-label.lang.french=French
-label.lang.german=German
-label.lang.italian=Italian
-label.lang.japanese=Japanese
-label.lang.korean=Korean
-label.lang.norwegian=Norwegian
-label.lang.polish=Polish
-label.lang.russian=Russian
-label.lang.spanish=Spanish
-label.lang.hungarian=Hungarian
-label.last.disconnected=Last Disconnected
-label.last.name=Last Name
-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.level=Level
-label.linklocal.ip=Link Local IP Address
-label.load.balancer=Load Balancer
-label.load.balancing.policies=Load balancing policies
-label.load.balancing=Load Balancing
-label.loading=Loading
-label.local.storage.enabled=Enable local storage for User VMs
-label.local.storage.enabled.system.vms=Enable local storage for System VMs
-label.local.storage=Local Storage
-label.local=Local
-label.local.file=Local file
-label.login=Login
-label.logout=Logout
-label.saml.enable=Authorize SAML SSO
-label.saml.entity=Identity Provider
-label.add.LDAP.account=Add LDAP Account
-label.LUN.number=LUN \#
-label.lun=LUN
-label.make.project.owner=Make account project owner
-label.manage.resources=Manage Resources
-label.management.server=Management Server
-label.manage=Manage
-label.managed=Managed
-label.management.ips=Management IP Addresses
-label.management=Management
-label.max.cpus=Max. CPU cores
-label.max.guest.limit=Max guest limit
-label.max.memory=Max. memory (MiB)
-label.max.networks=Max. networks
-label.max.primary.storage=Max. primary (GiB)
-label.max.public.ips=Max. public IPs
-label.max.secondary.storage=Max. secondary (GiB)
-label.max.snapshots=Max. snapshots
-label.max.templates=Max. templates
-label.max.vms=Max. user VMs
-label.max.volumes=Max. volumes
-label.max.vpcs=Max. VPCs
-label.maximum=Maximum
-label.may.continue=You may now continue.
-label.memory.allocated=Memory Allocated
-label.memory.limits=Memory limits (MiB)
-label.memory.mb=Memory (in MB)
-label.memory.total=Memory Total
-label.memory.used=Memory Used
-label.memory=Memory
-label.menu.accounts=Accounts
-label.menu.alerts=Alerts
-label.menu.all.accounts=All Accounts
-label.menu.all.instances=All Instances
-label.menu.community.isos=Community ISOs
-label.menu.community.templates=Community Templates
-label.menu.configuration=Configuration
-label.menu.dashboard=Dashboard
-label.menu.destroyed.instances=Destroyed Instances
-label.menu.disk.offerings=Disk Offerings
-label.menu.domains=Domains
-label.menu.events=Events
-label.menu.featured.isos=Featured ISOs
-label.menu.featured.templates=Featured Templates
-label.menu.global.settings=Global Settings
-label.menu.infrastructure=Infrastructure
-label.menu.instances=Instances
-label.menu.ipaddresses=IP Addresses
-label.menu.isos=ISOs
-label.menu.my.accounts=My Accounts
-label.menu.my.instances=My Instances
-label.menu.my.isos=My ISOs
-label.menu.my.templates=My Templates
-label.menu.network.offerings=Network Offerings
-label.menu.network=Network
-label.menu.physical.resources=Physical Resources
-label.menu.regions=Regions
-label.menu.running.instances=Running Instances
-label.menu.security.groups=Security Groups
-label.menu.service.offerings=Service Offerings
-label.menu.snapshots=Snapshots
-label.menu.stopped.instances=Stopped Instances
-label.menu.storage=Storage
-label.menu.system.service.offerings=System Offerings
-label.menu.system.vms=System VMs
-label.menu.system=System
-label.menu.templates=Templates
-label.menu.virtual.appliances=Virtual Appliances
-label.menu.virtual.resources=Virtual Resources
-label.menu.volumes=Volumes
-label.menu.sshkeypair=SSH KeyPair
-label.metrics=Metrics
-label.metrics.allocated=Allocated
-label.metrics.clusters=Clusters
-label.metrics.cpu.allocated=CPU Allocation
-label.metrics.cpu.max.dev=Deviation
-label.metrics.cpu.total=Total
-label.metrics.cpu.usage=CPU Usage
-label.metrics.cpu.used.avg=Used
-label.metrics.disk=Disk
-label.metrics.disk.iops.total=IOPS
-label.metrics.disk.read=Read
-label.metrics.disk.size=Size
-label.metrics.disk.storagetype=Type
-label.metrics.disk.usage=Disk Usage
-label.metrics.disk.used=Used
-label.metrics.disk.total=Total
-label.metrics.disk.allocated=Allocated
-label.metrics.disk.unallocated=Unallocated
-label.metrics.disk.write=Write
-label.metrics.hosts=Hosts
-label.metrics.memory.allocated=Mem Allocation
-label.metrics.memory.max.dev=Deviation
-label.metrics.memory.total=Total
-label.metrics.memory.usage=Mem Usage
-label.metrics.memory.used.avg=Used
-label.metrics.name=Name
-label.metrics.network.usage=Network Usage
-label.metrics.network.read=Read
-label.metrics.network.write=Write
-label.metrics.num.cpu.cores=Cores
-label.metrics.property=Property
-label.metrics.scope=Scope
-label.metrics.state=State
-label.metrics.outofbandmanagementpowerstate=Power State
-label.metrics.storagepool=Storage Pool
-label.metrics.vm.name=VM Name
-label.migrate.instance.to.host=Migrate instance to another host
-label.migrate.instance.to.ps=Migrate instance to another primary storage
-label.migrate.instance.to=Migrate instance to
-label.migrate.router.to=Migrate Router to
-label.migrate.systemvm.to=Migrate System VM to
-label.migrate.to.host=Migrate to host
-label.migrate.to.storage=Migrate to storage
-label.migrate.volume.to.primary.storage=Migrate volume to another primary storage
-label.migrate.volume=Migrate Volume
-label.minimum=Minimum
-label.minute.past.hour=minute(s) past the hour
-label.monday=Monday
-label.monthly=Monthly
-label.more.templates=More Templates
-label.move.down.row=Move down one row
-label.move.to.bottom=Move to bottom
-label.move.to.top=Move to top
-label.move.up.row=Move up one row
-label.my.account=My Account
-label.my.network=My network
-label.my.templates=My templates
-label.na=N/A
-label.name.optional=Name (Optional)
-label.name=Name
-label.nat.port.range=NAT Port Range
-label.netmask=Netmask
-label.netScaler=NetScaler
-label.network.ACL.total=Network ACL Total
-label.network.ACL=Network ACL
-label.network.ACLs=Network ACLs
-label.network.desc=Network Desc
-label.network.device.type=Network Device Type
-label.network.device=Network Device
-label.network.domain.text=Network domain
-label.network.domain=Network Domain
-label.network.id=Network ID
-label.network.label.display.for.blank.value=Use default gateway
-label.network.limits=Network limits
-label.network.name=Network Name
-label.network.offering.display.text=Network Offering Display Text
-label.network.offering.id=Network Offering ID
-label.network.offering.name=Network Offering Name
-label.network.offering=Network Offering
-label.network.rate.megabytes=Network Rate (MB/s)
-label.network.rate=Network Rate (Mb/s)
-label.network.read=Network Read
-label.network.service.providers=Network Service Providers
-label.network.type=Network Type
-label.network.write=Network Write
-label.network=Network
-label.networking.and.security=Networking and security
-label.networks=Networks
-label.new.password=New Password
-label.new.project=New Project
-label.new.ssh.key.pair=New SSH Key Pair
-label.new.vm=New VM
-label.new=New
-label.next=Next
-label.nexusVswitch=Nexus 1000v
-label.nfs.server=NFS Server
-label.nfs.storage=NFS Storage
-label.nfs=NFS
-label.nic.adapter.type=NIC adapter type
-label.nicira.controller.address=Controller Address
-label.nicira.l2gatewayserviceuuid=L2 Gateway Service Uuid
-label.nicira.l3gatewayserviceuuid=L3 Gateway Service Uuid
-label.nicira.transportzoneuuid=Transport Zone Uuid
-label.brocade.vcs.address=Vcs Switch Address
-label.nics=NICs
-label.no.actions=No Available Actions
-label.no.alerts=No Recent Alerts
-label.no.data=No data to show
-label.no.errors=No Recent Errors
-label.no.isos=No available ISOs
-label.no.items=No Available Items
-label.no.security.groups=No Available Security Groups
-label.no.thanks=No thanks
-label.no=No
-label.none=None
-label.not.found=Not Found
-label.notifications=Notifications
-label.num.cpu.cores=\# of CPU Cores
-label.number.of.clusters=Number of Clusters
-label.number.of.hosts=Number of Hosts
-label.number.of.pods=Number of Pods
-label.number.of.system.vms=Number of System VMs
-label.number.of.virtual.routers=Number of Virtual Routers
-label.number.of.zones=Number of Zones
-label.numretries=Number of Retries
-label.ocfs2=OCFS2
-label.offer.ha=Offer HA
-label.ok=OK
-label.optional=Optional
-label.order=Order
-label.os.preference=OS Preference
-label.os.type=OS Type
-label.ovm3.vip=Master Vip IP
-label.ovm3.pool=Native Pooling
-label.ovm3.cluster=Native Clustering
-label.ovm3.traffic.label=OVM3 traffic label
-label.owned.public.ips=Owned Public IP Addresses
-label.owner.account=Owner Account
-label.owner.domain=Owner Domain
-label.PA.log.profile=Palo Alto Log Profile
-label.PA.threat.profile=Palo Alto Threat Profile
-label.parent.domain=Parent Domain
-label.password.enabled=Password Enabled
-label.password=Password
-label.path=Path
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.physical.network.ID=Physical network ID
-label.physical.network=Physical Network
-label.PING.CIFS.password=PING CIFS password
-label.PING.CIFS.username=PING CIFS username
-label.PING.dir=PING Directory
-label.PING.storage.IP=PING storage IP
-label.please.specify.netscaler.info=Please specify Netscaler info
-label.please.wait=Please Wait
-label.plugin.details=Plugin details
-label.plugins=Plugins
-label.pod.name=Pod name
-label.pod=Pod
-label.pods=Pods
-label.port.forwarding.policies=Port forwarding policies
-label.port.forwarding=Port Forwarding
-label.port.range=Port Range
-label.powerstate=Power State
-label.outofbandmanagement=Out-of-band Management
-label.outofbandmanagement.action.issue=Issue Out-of-band Management Power Action
-label.outofbandmanagement.action=Action
-label.outofbandmanagement.address=Address
-label.outofbandmanagement.changepassword=Change Out-of-band Management Password
-label.outofbandmanagement.configure=Configure Out-of-band Management
-label.outofbandmanagement.driver=Driver
-label.outofbandmanagement.disable=Disable Out-of-band Management
-label.outofbandmanagement.enable=Enable Out-of-band Management
-label.outofbandmanagement.password=Password
-label.outofbandmanagement.reenterpassword=Re-enter Password
-label.outofbandmanagement.port=Port
-label.outofbandmanagement.username=Username
-message.outofbandmanagement.changepassword=Change Out-of-band Management password
-message.outofbandmanagement.configure=Configure Out-of-band Management
-message.outofbandmanagement.disable=Disable Out-of-band Management
-message.outofbandmanagement.enable=Enable Out-of-band Management
-message.outofbandmanagement.issue=Issue Out-of-band Management Power Action
-message.outofbandmanagement.action.maintenance=Warning host is in maintenance mode
-label.PreSetup=PreSetup
-label.prev=Prev
-label.previous=Previous
-label.primary.allocated=Primary Storage Allocated
-label.primary.network=Primary Network
-label.primary.storage.count=Primary Storage Pools
-label.primary.storage.limits=Primary Storage limits (GiB)
-label.primary.storage=Primary Storage
-label.primary.used=Primary Storage Used
-label.private.Gateway=Private Gateway
-label.private.interface=Private Interface
-label.private.ip.range=Private IP Range
-label.private.ip=Private IP Address
-label.private.ips=Private IP Addresses
-label.private.key=Private Key
-label.private.network=Private network
-label.private.port=Private Port
-label.private.zone=Private Zone
-label.privatekey=PKCS\#8 Private Key
-label.project.dashboard=Project dashboard
-label.project.id=Project ID
-label.project.invite=Invite to project
-label.project.name=Project name
-label.project.view=Project View
-label.project=Project
-label.projects=Projects
-label.protocol=Protocol
-label.provider=Provider
-label.providers=Providers
-label.public.interface=Public Interface
-label.public.ip=Public IP Address
-label.public.ips=Public IP Addresses
-label.public.key=Public Key
-label.public.network=Public network
-label.public.port=Public Port
-label.public.traffic=Public traffic
-label.public.zone=Public Zone
-label.public=Public
-label.purpose=Purpose
-label.Pxe.server.type=Pxe Server Type
-label.quickview=Quickview
-label.reboot=Reboot
-label.recent.errors=Recent Errors
-label.redundant.router.capability=Redundant router capability
-label.redundant.router=Redundant Router
-label.redundant.vpc=Redundant VPC
-label.redundant.state=Redundant state
-label.refresh=Refresh
-label.region=Region
-label.related=Related
-label.remind.later=Remind me later
-label.remove.ACL=Remove ACL
-label.remove.egress.rule=Remove egress rule
-label.remove.from.load.balancer=Removing instance from load balancer
-label.remove.ingress.rule=Remove ingress rule
-label.remove.ip.range=Remove IP range
-label.remove.pf=Remove port forwarding rule
-label.remove.project.account=Remove account from project
-label.remove.region=Remove Region
-label.remove.rule=Remove rule
-label.remove.ssh.key.pair=Remove SSH Key Pair
-label.remove.static.nat.rule=Remove static NAT rule
-label.remove.static.route=Remove static route
-label.remove.tier=Remove tier
-label.remove.vm.from.lb=Remove VM from load balancer rule
-label.remove.vpc=Remove VPC
-label.removing.user=Removing User
-label.removing=Removing
-label.required=Required
-label.reserved.system.gateway=Reserved system gateway
-label.reserved.system.ip=Reserved System IP
-label.reserved.system.netmask=Reserved system netmask
-label.reset.ssh.key.pair=Reset SSH Key Pair
-label.reset.ssh.key.pair.on.vm=Reset SSH Key Pair on VM
-label.reset.VPN.connection=Reset VPN connection
-label.resize.new.offering.id=New Offering
-label.resize.new.size=New Size (GB)
-label.resize.shrink.ok=Shrink OK
-label.resource.limits=Resource Limits
-label.resource.state=Resource state
-label.resource=Resource
-label.resources=Resources
-label.restart.network=Restart network
-label.restart.required=Restart required
-label.restart.vpc=Restart VPC
-message.restart.vpc.remark=Please confirm that you want to restart the VPC <p><small><i>Remark: making a non-redundant VPC redundant will force a clean up. The networks will not be available for a couple of minutes</i>.</small></p>
-label.restore=Restore
-label.retry.interval=Retry Interval
-label.review=Review
-label.revoke.project.invite=Revoke invitation
-label.role=Role
-label.roles=Roles
-label.roletype=Role Type
-label.add.role=Add Role
-label.edit.role=Edit Role
-label.delete.role=Delete Role
-message.role.ordering.fail=Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.
-label.root.certificate=Root certificate
-label.root.disk.controller=Root disk controller
-label.root.disk.offering=Root Disk Offering
-label.permission=Permission
-label.rule=Rule
-label.rules=Rules
-label.running.vms=Running VMs
-label.s3.access_key=Access Key
-label.s3.bucket=Bucket
-label.s3.connection_timeout=Connection Timeout
-label.s3.endpoint=Endpoint
-label.s3.max_error_retry=Max Error Retry
-label.s3.secret_key=Secret Key
-label.s3.socket_timeout=Socket Timeout
-label.s3.use_https=Use HTTPS
-label.saturday=Saturday
-label.save.and.continue=Save and continue
-label.save=Save
-label.saving.processing=Saving....
-label.scope=Scope
-label.search=Search
-label.secondary.storage.count=Secondary Storage Pools
-label.secondary.storage.limits=Secondary Storage limits (GiB)
-label.secondary.storage.vm=Secondary storage VM
-label.secondary.storage=Secondary Storage
-label.secondary.used=Secondary Storage Used
-label.secret.key=Secret Key
-label.security.group.name=Security Group Name
-label.security.group=Security Group
-label.security.groups.enabled=Security Groups Enabled
-label.security.groups=Security Groups
-label.select-view=Select view
-label.select.a.template=Select a template
-label.select.a.zone=Select a zone
-label.select.instance.to.attach.volume.to=Select instance to attach volume to
-label.select.instance=Select instance
-label.select.iso.or.template=Select ISO or template
-label.select.offering=Select offering
-label.select.project=Select Project
-label.select.tier=Select Tier
-label.select.vm.for.static.nat=Select VM for static NAT
-label.select=Select
-label.sent=Sent
-label.server=Server
-label.service.capabilities=Service Capabilities
-label.service.offering=Service Offering
-label.session.expired=Session Expired
-label.set.up.zone.type=Set up zone type
-label.setup.network=Set up Network
-label.setup.zone=Set up Zone
-label.setup=Setup
-label.shared=Shared
-label.SharedMountPoint=SharedMountPoint
-label.show.ingress.rule=Show Ingress Rule
-label.shutdown.provider=Shutdown provider
-label.site.to.site.VPN=Site-to-site VPN
-label.size=Size
-label.skip.guide=I have used CloudStack before, skip this guide
-label.snapshot.limits=Snapshot Limits
-label.snapshot.name=Snapshot Name
-label.snapshot.s=Snapshots
-label.snapshot.schedule=Set up Recurring Snapshot
-label.snapshot=Snapshot
-label.snapshots=Snapshots
-label.source.nat=Source NAT
-label.specify.IP.ranges=Specify IP ranges
-label.specify.vlan=Specify VLAN
-label.specify.vxlan=Specify VXLAN
-label.SR.name=SR Name-Label
-label.srx=SRX
-label.ssh.key.pair=SSH Key Pair
-label.ssh.key.pair.details=SSH Key Pair Details
-label.PA=Palo Alto
-label.start.IP=Start IP
-label.start.port=Start Port
-label.start.reserved.system.IP=Start Reserved system IP
-label.start.vlan=Start VLAN
-label.start.vxlan=Start VXLAN
-label.state=State
-label.static.nat.enabled=Static NAT Enabled
-label.static.nat.to=Static NAT to
-label.static.nat.vm.details=Static NAT VM Details
-label.static.nat=Static NAT
-label.statistics=Statistics
-label.status=Status
-label.step.1.title=Step 1\: <strong>Select a Template</strong>
-label.step.1=Step 1
-label.step.2.title=Step 2\: <strong>Service Offering</strong>
-label.step.2=Step 2
-label.step.3.title=Step 3\: <strong id\="step3_label">Select a Disk Offering</strong>
-label.step.3=Step 3
-label.step.4.title=Step 4\: <strong>Network</strong>
-label.step.4=Step 4
-label.step.5.title=Step 5\: <strong>Review</strong>
-label.step.5=Step 5
-label.stickiness=Stickiness
-label.sticky.cookie-name=Cookie name
-label.sticky.domain=Domain
-label.sticky.expire=Expires
-label.sticky.holdtime=Hold time
-label.sticky.indirect=Indirect
-label.sticky.length=Length
-label.sticky.mode=Mode
-label.sticky.nocache=No cache
-label.sticky.postonly=Post only
-label.sticky.prefix=Prefix
-label.sticky.request-learn=Request learn
-label.sticky.tablesize=Table size
-label.stop=Stop
-label.stopped.vms=Stopped VMs
-label.storage.tags=Storage Tags
-label.storage.traffic=Storage Traffic
-label.storage.type=Storage Type
-label.qos.type=QoS Type
-label.cache.mode=Write-cache Type
-label.storage=Storage
-label.subdomain.access=Subdomain Access
-label.submit=Submit
-label.submitted.by=[Submitted by\: <span id\="submitted_by"></span>]
-label.succeeded=Succeeded
-label.sunday=Sunday
-label.super.cidr.for.guest.networks=Super CIDR for Guest Networks
-label.supported.services=Supported Services
-label.supported.source.NAT.type=Supported Source NAT type
-label.suspend.project=Suspend Project
-label.system.capacity=System Capacity
-label.system.offering=System Offering
-label.system.service.offering=System Service Offering
-label.system.vm.type=System VM Type
-label.system.vm=System VM
-label.system.vms=System VMs
-label.system.wide.capacity=System-wide capacity
-label.tagged=Tagged
-label.tags=Tags
-label.target.iqn=Target IQN
-label.task.completed=Task completed
-label.template.limits=Template Limits
-label.template=Template
-label.TFTP.dir=TFTP Directory
-label.theme.default=Default Theme
-label.theme.grey=Custom - Grey
-label.theme.lightblue=Custom - Light Blue
-label.thursday=Thursday
-label.tier.details=Tier details
-label.tier=Tier
-label.time.zone=Timezone
-label.time=Time
-label.timeout.in.second = Timeout (seconds)
-label.timeout=Timeout
-label.timezone=Timezone
-label.token=Token
-label.total.CPU=Total CPU
-label.total.cpu=Total CPU
-label.total.hosts=Total Hosts
-label.total.memory=Total Memory
-label.total.of.ip=Total of IP Addresses
-label.total.of.vm=Total of VMs
-label.total.storage=Total Storage
-label.total.vms=Total VMs
-label.traffic.label=Traffic label
-label.traffic.type=Traffic Type
-label.traffic.types=Traffic Types
-label.tuesday=Tuesday
-label.type.id=Type ID
-label.type=Type
-label.unavailable=Unavailable
-label.unlimited=Unlimited
-label.untagged=Untagged
-label.update.project.resources=Update project resources
-label.update.ssl.cert= SSL Certificate
-label.update.ssl= SSL Certificate
-label.updating=Updating
-label.upload.from.local=Upload from Local
-label.upload.template.from.local=Upload Template from Local
-label.upload.volume=Upload volume
-label.upload.volume.from.local=Upload Volume from Local
-label.upload.volume.from.url=Upload volume from URL
-label.upload=Upload
-label.url=URL
-label.usage.interface=Usage Interface
-label.use.vm.ip=Use VM IP\:
-label.used=Used
-label.user=User
-label.username=Username
-label.users=Users
-label.value=Value
-label.vcdcname=vCenter DC name
-label.vcenter.cluster=vCenter Cluster
-label.vcenter.datacenter=vCenter Datacenter
-label.vcenter.datastore=vCenter Datastore
-label.vcenter.host=vCenter Host
-label.vcenter.password=vCenter Password
-label.vcenter.username=vCenter Username
-label.vcipaddress=vCenter IP Address
-label.version=Version
-label.view.all=View all
-label.view.console=View console
-label.view.more=View more
-label.view=View
-label.viewing=Viewing
-label.virtual.appliance=Virtual Appliance
-label.virtual.appliances=Virtual Appliances
-label.virtual.machines=Virtual Machines
-label.virtual.machine=Virtual Machine
-label.virtual.network=Virtual Network
-label.virtual.router=Virtual Router
-label.virtual.routers=Virtual Routers
-label.vlan.id=VLAN/VNI ID
-label.vlan.range=VLAN/VNI Range
-label.vlan=VLAN/VNI
-label.vnet=VLAN/VNI
-label.vnet.id=VLAN/VNI ID
-label.vxlan.id=VXLAN ID
-label.vxlan.range=VXLAN Range
-label.vxlan=VXLAN
-label.vm.add=Add Instance
-label.vm.destroy=Destroy
-label.vm.display.name=VM display name
-label.vm.name=VM name
-label.vm.reboot=Reboot
-label.vm.start=Start
-label.vm.state=VM state
-label.vm.stop=Stop
-label.VMFS.datastore=VMFS datastore
-label.vmfs=VMFS
-label.VMs.in.tier=VMs in tier
-label.vms=VMs
-label.vmsnapshot.current=isCurrent
-label.vmsnapshot.memory=Snapshot memory
-label.vmsnapshot.parentname=Parent
-label.vmsnapshot.type=Type
-label.vmsnapshot=VM Snapshots
-label.vmware.traffic.label=VMware traffic label
-label.volgroup=Volume Group
-label.volume.limits=Volume Limits
-label.volume.name=Volume Name
-label.volume=Volume
-label.volumes=Volumes
-label.vpc.id=VPC ID
-label.VPC.router.details=VPC router details
-label.vpc=VPC
-label.VPN.connection=VPN Connection
-label.VPN.customer.gateway=VPN Customer Gateway
-label.vpn.customer.gateway=VPN Customer Gateway
-label.VPN.gateway=VPN Gateway
-label.vpn=VPN
-label.vsmctrlvlanid=Control VLAN ID
-label.vsmpktvlanid=Packet VLAN ID
-label.vsmstoragevlanid=Storage VLAN ID
-label.vsphere.managed=vSphere Managed
-label.waiting=Waiting
-label.warn=Warn
-label.warning=Warning
-label.wednesday=Wednesday
-label.weekly=Weekly
-label.welcome.cloud.console=Welcome to Management Console
-label.welcome=Welcome
-label.what.is.cloudstack=What is CloudStack&\#8482?
-label.xenserver.traffic.label=XenServer traffic label
-label.yes=Yes
-label.zone.details=Zone details
-label.zone.id=Zone ID
-label.zone.step.1.title=Step 1\: <strong>Select a Network</strong>
-label.zone.step.2.title=Step 2\: <strong>Add a Zone</strong>
-label.zone.step.3.title=Step 3\: <strong>Add a Pod</strong>
-label.zone.step.4.title=Step 4\: <strong>Add an IP range</strong>
-label.zone.type=Zone Type
-label.zone.wide=Zone-Wide
-label.zone=Zone
-label.zones=Zones
-label.zoneWizard.trafficType.guest=Guest\: Traffic between end-user virtual machines
-label.zoneWizard.trafficType.management=Management\: Traffic between CloudStack\\\\'s internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs
-label.zoneWizard.trafficType.public=Public\: Traffic between the internet and virtual machines in the cloud.
-label.zoneWizard.trafficType.storage=Storage\: Traffic between primary and secondary storage servers, such as VM templates and snapshots
-label.ldap.group.name=LDAP Group
-label.password.reset.confirm=Password has been reset to 
-label.provider=Provider
-label.resetVM=Reset VM
-label.openDaylight=OpenDaylight
-label.assign.instance.another=Assign Instance to Another Account
-label.network.addVM=Add network to VM
-label.set.default.NIC=Set default NIC
-label.Xenserver.Tools.Version61plus=Original XS Version is 6.1\+
-label.supportsstrechedl2subnet=Supports Streched L2 Subnet
-label.menu.vpc.offerings=VPC Offerings
-label.vpc.offering=VPC Offering
-label.regionlevelvpc=Region Level VPC
-label.add.vpc.offering=Add VPC Offering
-label.distributedrouter=Distributed Router
-label.vpc.offering.details=VPC offering details
-label.disable.vpc.offering=Disable VPC offering
-label.enable.vpc.offering=Enable VPC offering
-label.remove.vpc.offering=Remove VPC offering
-label.vpc.distributedvpcrouter=Distributed VPC Router
-label.vpc.supportsregionlevelvpc=Supports Region Level VPC
-label.dynamically.scalable=Dynamically Scalable
-label.instance.scaled.up=Instance scaled to the requested offering
-label.tag.key=Tag Key
-label.tag.value=Tag Value
-label.ipv6.address=IPv6 IP Address
-label.ipv6.gateway=IPv6 Gateway
-label.ipv6.CIDR=IPv6 CIDR
-label.VPC.limits=VPC limits
-label.edit.region=Edit Region
-label.gslb.domain.name=GSLB Domain Name
-label.add.gslb=Add GSLB
-label.gslb.servicetype=Service Type
-label.gslb.details=GSLB details
-label.gslb.delete=Delete GSLB
-label.opendaylight.controller=OpenDaylight Controller
-label.opendaylight.controllers=OpenDaylight Controllers
-label.portable.ip.ranges=Portable IP Ranges
-label.add.portable.ip.range=Add Portable IP Range
-label.delete.portable.ip.range=Delete Portable IP Range
-label.opendaylight.controllerdetail=OpenDaylight Controller Details
-label.portable.ip.range.details=Portable IP Range details
-label.portable.ips=Portable IPs
-label.gslb.assigned.lb=Assigned load balancing
-label.gslb.assigned.lb.more=Assign more load balancing
-label.gslb.lb.rule=Load balancing rule
-label.gslb.lb.details=Load balancing details
-label.gslb.lb.remove=Remove load balancing from this GSLB
-label.enable.autoscale=Enable Autoscale
-label.disable.autoscale=Disable Autoscale
-label.min.instances=Min Instances
-label.max.instances=Max Instances
-label.add.OpenDaylight.device=Add OpenDaylight Controller
-label.show.advanced.settings=Show advanced settings
-label.delete.OpenDaylight.device=Delete OpenDaylight Controller
-label.polling.interval.sec=Polling Interval (in sec)
-label.quiet.time.sec=Quiet Time (in sec)
-label.usage.type=Usage Type
-label.usage.unit=Unit
-label.quota.value=Quota Value
-label.quota.description=Quota Description
-label.quota.configuration=Quota Configuration
-label.quota.configure=Configure Quota
-label.quota.remove=Remove Quota
-label.quota.totalusage=Total Usage
-label.quota.balance=Balance
-label.quota.minbalance=Min Balance
-label.quota.enforcequota=Enforce Quota
-label.quota.summary=Summary
-label.quota.fullsummary=All Accounts
-label.quota.tariff=Tariff
-label.quota.state=State
-label.quota.startdate=Start Date
-label.quota.enddate=End Date
-label.quota.total=Total
-label.quota.startquota=Start Quota
-label.quota.endquota=End Quota
-label.quota.type.name=Usage Type
-label.quota.type.unit=Usage Unit
-label.quota.usage=Quota Consumption
-label.quota.add.credits=Add Credits
-label.quota.email.template=Email Template
-label.quota.statement=Statement
-label.quota.statement.balance=Quota Balance
-label.quota.statement.quota=Quota Usage
-label.quota.statement.tariff=Quota Tariff
-label.quota.tariff.value=Tariff Value
-label.quota.tariff.edit=Edit Tariff
-label.quota.tariff.effectivedate=Effective Date
-label.quota.date=Date
-label.quota.dates=Update Dates
-label.quota.credit=Credit
-label.quota.credits=Credits
-label.quota.value=Quota Value
-label.quota.statement.bydates=Statement
-label.quota.email.subject=Subject
-label.quota.email.body=Body
-label.quota.email.lastupdated=Last Update
-label.destroy.vm.graceperiod=Destroy VM Grace Period
-label.SNMP.community=SNMP Community
-label.SNMP.port=SNMP Port
-label.add.ucs.manager=Add UCS Manager
-label.ovm.traffic.label=OVM traffic label
-label.lxc.traffic.label=LXC Traffic Label
-label.hyperv.traffic.label=HyperV Traffic Label
-label.resource.name=Resource Name
-label.reource.id=Resource ID
-label.vnmc.devices=VNMC Devices
-label.add.vnmc.provider=Add VNMC provider
-label.enable.vnmc.provider=Enable VNMC provider
-label.add.vnmc.device=Add VNMC device
-label.ciscovnmc.resource.details=CiscoVNMC resource details
-label.delete.ciscovnmc.resource=Delete CiscoVNMC resource
-label.enable.vnmc.device=Enable VNMC device
-label.disbale.vnmc.device=Disable VNMC device
-label.disable.vnmc.provider=Disable VNMC provider
-label.services=Services
-label.secondary.staging.store=Secondary Staging Store
-label.release.account=Release from Account
-label.release.account.lowercase=Release from account
-label.vlan.vni.ranges=VLAN/VNI Range(s)
-label.dedicated.vlan.vni.ranges=Dedicated VLAN/VNI Ranges
-label.dedicate.vlan.vni.range=Dedicate VLAN/VNI Range
-label.vlan.vni.range=VLAN/VNI Range
-label.vlan.range.details=VLAN Range details
-label.release.dedicated.vlan.range=Release dedicated VLAN range
-label.broadcat.uri=Broadcast URI
-label.ipv4.cidr=IPv4 CIDR
-label.guest.network.details=Guest network details
-label.ipv4.gateway=IPv4 Gateway
-label.release.dedicated.vlan.range=Release dedicated VLAN range
-label.vlan.ranges=VLAN Range(s)
-label.virtual.appliance.details=Virtual applicance details
-label.start.lb.vm=Start LB VM
-label.stop.lb.vm=Stop LB VM
-label.migrate.lb.vm=Migrate LB VM
-label.vpc.virtual.router=VPC Virtual Router
-label.ovs=OVS
-label.gslb.service=GSLB service
-label.gslb.service.public.ip=GSLB service Public IP
-label.gslb.service.private.ip=GSLB service Private IP
-label.baremetal.dhcp.provider=Baremetal DHCP Provider
-label.add.baremetal.dhcp.device=Add Baremetal DHCP Device
-label.baremetal.pxe.provider=Baremetal PXE Provider
-label.baremetal.pxe.device=Add Baremetal PXE Device
-label.tftp.root.directory=Tftp root directory
-label.add.vmware.datacenter=Add VMware datacenter
-label.remove.vmware.datacenter=Remove VMware datacenter
-label.dc.name=DC Name
-label.vcenter=vcenter
-label.dedicate.zone=Dedicate Zone
-label.zone.dedicated=Zone Dedicated
-label.release.dedicated.zone=Release Dedicated Zone
-label.ipv6.dns1=IPv6 DNS1
-label.ipv6.dns2=IPv6 DNS2
-label.vmware.datacenter.name=VMware datacenter Name
-label.vmware.datacenter.vcenter=VMware datacenter vcenter
-label.vmware.datacenter.id=VMware datacenter ID
-label.system.vm.details=System VM details
-label.system.vm.scaled.up=System VM Scaled Up
-label.console.proxy.vm=Console Proxy VM
-label.settings=Settings
-label.requires.upgrade=Requires Upgrade
-label.upgrade.router.newer.template=Upgrade Router to Use Newer Template
-label.router.vm.scaled.up=Router VM Scaled Up
-label.total.virtual.routers=Total of Virtual Routers
-label.upgrade.required=Upgrade is required
-label.virtual.routers.group.zone=Virtual Routers group by zone
-label.total.virtual.routers.upgrade=Total of Virtual Routers that require upgrade
-label.virtual.routers.group.pod=Virtual Routers group by pod
-label.virtual.routers.group.cluster=Virtual Routers group by cluster
-label.zone.lower=zone
-label.virtual.routers.group.account=Virtual Routers group by account
-label.netscaler.details=NetScaler details
-label.baremetal.dhcp.devices=Baremetal DHCP Devices
-label.baremetal.pxe.devices=Baremetal PXE Devices
-label.addes.new.f5=Added new F5
-label.f5.details=F5 details
-label.srx.details=SRX details
-label.palo.alto.details=Palo Alto details
-label.added.nicira.nvp.controller=Added new Nicira NVP Controller
-label.nicira.nvp.details=Nicira NVP details
-label.added.brocade.vcs.switch=Added new Brocade Vcs Switch
-label.brocade.vcs.details=Brocade Vcs Switch details
-label.added.new.bigswitch.bcf.controller=Added new BigSwitch BCF Controller
-label.bigswitch.bcf.details=BigSwitch BCF details
-label.bigswitch.bcf.nat=BigSwitch BCF NAT Enabled
-label.dedicate=Dedicate
-label.dedicate.pod=Dedicate Pod
-label.pod.dedicated=Pod Dedicated
-label.release.dedicated.pod=Release Dedicated Pod
-label.override.public.traffic=Override Public-Traffic
-label.public.traffic.vswitch.type=Public Traffic vSwitch Type
-label.public.traffic.vswitch.name=Public Traffic vSwitch Name
-label.override.guest.traffic=Override Guest-Traffic
-label.guest.traffic.vswitch.type=Guest Traffic vSwitch Type
-label.guest.traffic.vswitch.name=Guest Traffic vSwitch Name
-label.cisco.nexus1000v.ip.address=Nexus 1000v IP Address
-label.cisco.nexus1000v.username=Nexus 1000v Username
-label.cisco.nexus1000v.password=Nexus 1000v Password
-label.dedicate.cluster=Dedicate Cluster
-label.release.dedicated.cluster=Release Dedicated Cluster
-label.dedicate.host=Dedicate Host
-label.release.dedicated.host=Release Dedicated Host
-label.number.of.cpu.sockets=The Number of CPU Sockets
-label.delete.ucs.manager=Delete UCS Manager
-label.blades=Blades
-label.chassis=Chassis
-label.blade.id=Blade ID
-label.associated.profile=Associated Profile
-label.refresh.blades=Refresh Blades
-label.instanciate.template.associate.profile.blade=Instanciate Template and Associate Profile to Blade
-label.select.template=Select Template
-label.profile=Profile
-label.delete.profile=Delete Profile
-label.disassociate.profile.blade=Disassociate Profile from Blade
-label.secondary.storage.details=Secondary storage details
-label.secondary.staging.store.details=Secondary Staging Store details
-label.add.nfs.secondary.staging.store=Add NFS Secondary Staging Store
-label.delete.secondary.staging.store=Delete Secondary Staging Store
-label.ipv4.start.ip=IPv4 Start IP
-label.ipv4.end.ip=IPv4 End IP
-label.ipv6.start.ip=IPv6 Start IP
-label.ipv6.end.ip=IPv6 End IP
-label.vm.password=Password of the VM is
-label.group.by.zone=Group by zone
-label.group.by.pod=Group by pod
-label.group.by.cluster=Group by cluster
-label.group.by.account=Group by account
-label.no.grouping=(no grouping)
-label.create.nfs.secondary.staging.storage=Create NFS Secondary Staging Store
-label.username.lower=username
-label.password.lower=password
-label.email.lower=email
-label.firstname.lower=firstname
-label.lastname.lower=lastname
-label.domain.lower=domain
-label.account.lower=account
-label.type.lower=type
-label.rule.number=Rule Number
-label.action=Action
-label.name.lower=name
-label.ucs=UCS
-label.change.affinity=Change Affinity
-label.persistent=Persistent 
-label.broadcasturi=broadcasturi
-label.network.cidr=Network CIDR
-label.reserved.ip.range=Reserved IP Range
-label.autoscale=AutoScale
-label.health.check=Health Check
-label.public.load.balancer.provider=Public Load Balancer Provider
-label.add.isolated.network=Add Isolated Network
-label.add.isolated.guest.network=Add Isolated Guest Network
-label.vlan.only=VLAN
-label.secondary.isolated.vlan.id=Secondary Isolated VLAN ID
-label.ipv4.netmask=IPv4 Netmask
-label.custom=Custom
-label.disable.network.offering=Disable network offering
-label.enable.network.offering=Enable network offering
-label.remove.network.offering=Remove network offering
-label.system.offering.for.router=System Offering for Router
-label.mode=Mode
-label.associate.public.ip=Associate Public IP
-label.acl=ACL
-label.user.data=User Data
-label.virtual.networking=Virtual Networking
-label.allow=Allow
-label.deny=Deny
-label.default.egress.policy=Default egress policy
-label.xenserver.tools.version.61.plus=Original XS Version is 6.1\+
-label.gpu=GPU
-label.vgpu.type=vGPU type
-label.vgpu.video.ram=Video RAM
-label.vgpu.max.resolution=Max resolution
-label.vgpu.max.vgpu.per.gpu=vGPUs per GPU
-label.vgpu.remaining.capacity=Remaining capacity
-label.routing.host=Routing Host
-label.usage.server=Usage Server
-label.user.vm=User VM
-label.resource.limit.exceeded=Resource Limit Exceeded
-label.direct.attached.public.ip=Direct Attached Public IP
-label.usage.sanity.result=Usage Sanity Result
-label.select.region=Select region
-label.info.upper=INFO
-label.warn.upper=WARN
-label.error.upper=ERROR
-label.event.deleted=Event Deleted
-label.add.ciscoASA1000v=Add CiscoASA1000v Resource
-label.delete.ciscoASA1000v=Delete CiscoASA1000v
-label.inside.port.profile=Inside Port Profile
-label.archive=Archive
-label.event.archived=Event Archived
-label.alert.details=Alert details
-label.alert.deleted=Alert Deleted
-label.alert.archived=Alert Archived
-label.volume.details=Volume details
-label.volume.migrated=Volume migrated
-label.storage.pool=Storage Pool
-label.enable.host=Enable Host
-label.disable.host=Disable Host
-label.copying.iso=Copying ISO
-label.add.internal.lb=Add Internal LB
-label.internal.lb.details=Internal LB details
-label.delete.internal.lb=Delete Internal LB
-label.remove.vm.load.balancer=Remove VM from load balancer
-label.add.acl.list=Add ACL List
-label.add.list.name=ACL List Name
-label.add.network.acl.list=Add Network ACL List
-label.delete.acl.list=Delete ACL List
-label.acl.replaced=ACL replaced
-label.ipv4.dns1=IPv4 DNS1
-label.ipv4.dns2=IPv4 DNS2
-label.protocol.number=Protocol Number
-label.edit.acl.rule=Edit ACL rule
-label.source.ip.address=Source IP Address
-label.source.port=Source Port
-label.instance.port=Instance Port
-label.assigned.vms=Assigned VMs
-label.replace.acl=Replace ACL
-label.source.nat.supported=SourceNAT Supported
-label.acl.name=ACL Name
-label.acl.id=ACL ID
-label.passive=Passive
-label.replace.acl.list=Replace ACL List
-label.vswitch.name=vSwitch Name
-label.vSwitch.type=vSwitch Type
-label.ping.path=Ping Path
-label.response.timeout.in.sec=Response Timeout (in sec)
-label.health.check.interval.in.sec=Health Check Interval (in sec)
-label.healthy.threshold=Healthy Threshold
-label.unhealthy.threshold=Unhealthy Threshold
-label.other=Other
-label.vm.id=VM ID
-label.vnmc=VNMC
-label.scale.up.policy=SCALE UP POLICY
-label.counter=Counter
-label.operator=Operator
-label.threshold=Threshold
-label.load.balancer.type=Load Balancer Type
-label.vgpu=VGPU
-label.sticky.name=Sticky Name
-label.stickiness.method=Stickiness method
-label.gslb=GSLB
-label.portable.ip=Portable IP
-label.internallbvm=InternalLbVm
-label.agent.state=Agent State
-label.duration.in.sec=Duration (in sec)
-managed.state=Managed State
-message.acquire.new.ip.vpc=Please confirm that you would like to acquire a new IP for this VPC.
-message.acquire.new.ip=Please confirm that you would like to acquire a new IP for this network.
-message.acquire.public.ip=Please select a zone from which you want to acquire your new IP from.
-message.action.cancel.maintenance.mode=Please confirm that you want to cancel this maintenance.
-message.action.cancel.maintenance=Your host has been successfully canceled for maintenance. This process can take up to several minutes.
-message.action.change.service.warning.for.instance=Your instance must be stopped before attempting to change its current service offering.
-message.action.change.service.warning.for.router=Your router must be stopped before attempting to change its current service offering.
-message.action.delete.cluster=Please confirm that you want to delete this cluster.
-message.action.delete.disk.offering=Please confirm that you want to delete this disk offering.
-message.action.delete.domain=Please confirm that you want to delete this domain.
-message.action.delete.external.firewall=Please confirm that you would like to remove this external firewall. Warning\: If you are planning to add back the same external firewall, you must reset usage data on the device.
-message.action.delete.external.load.balancer=Please confirm that you would like to remove this external load balancer. Warning\: If you are planning to add back the same external load balancer, you must reset usage data on the device.
-message.action.delete.ingress.rule=Please confirm that you want to delete this ingress rule.
-message.action.delete.ISO.for.all.zones=The ISO is used by all zones. Please confirm that you want to delete it from all zones.
-message.action.delete.ISO=Please confirm that you want to delete this ISO.
-message.action.delete.network=Please confirm that you want to delete this network.
-message.action.delete.nexusVswitch=Please confirm that you want to delete this nexus 1000v
-message.action.delete.physical.network=Please confirm that you want to delete this physical network
-message.action.delete.pod=Please confirm that you want to delete this pod.
-message.action.delete.primary.storage=Please confirm that you want to delete this primary storage.
-message.action.delete.secondary.storage=Please confirm that you want to delete this secondary storage.
-message.action.delete.security.group=Please confirm that you want to delete this security group.
-message.action.delete.service.offering=Please confirm that you want to delete this service offering.
-message.action.delete.snapshot=Please confirm that you want to delete this snapshot.
-message.action.delete.system.service.offering=Please confirm that you want to delete this system service offering.
-message.action.delete.template.for.all.zones=The template is used by all zones. Please confirm that you want to delete it from all zones.
-message.action.delete.template=Please confirm that you want to delete this template.
-message.action.delete.volume=Please confirm that you want to delete this volume.
-message.action.delete.zone=Please confirm that you want to delete this zone.
-message.action.destroy.instance=Please confirm that you want to destroy this instance.
-message.action.destroy.systemvm=Please confirm that you want to destroy this System VM.
-message.action.disable.cluster=Please confirm that you want to disable this cluster.
-message.action.disable.nexusVswitch=Please confirm that you want to disable this nexus 1000v
-message.action.disable.physical.network=Please confirm that you want to disable this physical network.
-message.action.disable.pod=Please confirm that you want to disable this pod.
-message.action.disable.static.NAT=Please confirm that you want to disable static NAT.
-message.action.disable.zone=Please confirm that you want to disable this zone.
-message.action.download.iso=Please confirm that you want to download this ISO.
-message.action.download.template=Please confirm that you want to download this template.
-message.action.enable.cluster=Please confirm that you want to enable this cluster.
-message.action.enable.maintenance=Your host has been successfully prepared for maintenance.  This process can take up to several minutes or longer depending on how many VMs are currently on this host.
-message.action.enable.nexusVswitch=Please confirm that you want to enable this nexus 1000v
-message.action.enable.physical.network=Please confirm that you want to enable this physical network.
-message.action.enable.pod=Please confirm that you want to enable this pod.
-message.action.enable.zone=Please confirm that you want to enable this zone.
-message.action.expunge.instance=Please confirm that you want to expunge this instance.
-message.action.force.reconnect=Your host has been successfully forced to reconnect.  This process can take up to several minutes.
-message.action.host.enable.maintenance.mode=Enabling maintenance mode will cause a live migration of all running instances on this host to any available host.
-message.action.instance.reset.password=Please confirm that you want to change the ROOT password for this virtual machine.
-message.action.manage.cluster=Please confirm that you want to manage the cluster.
-message.action.primarystorage.enable.maintenance.mode=Warning\: placing the primary storage into maintenance mode will cause all VMs using volumes from it to be stopped.  Do you want to continue?
-message.action.reboot.instance=Please confirm that you want to reboot this instance.
-message.action.reboot.router=All services provided by this virtual router will be interrupted. Please confirm that you want to reboot this router.
-message.action.reboot.systemvm=Please confirm that you want to reboot this system VM.
-message.action.release.ip=Please confirm that you want to release this IP.
-message.action.remove.host=Please confirm that you want to remove this host.
-message.action.reset.password.off=Your instance currently does not support this feature.
-message.action.reset.password.warning=Your instance must be stopped before attempting to change its current password.
-message.action.restore.instance=Please confirm that you want to restore this instance.
-message.action.start.instance=Please confirm that you want to start this instance.
-message.action.start.router=Please confirm that you want to start this router.
-message.action.start.systemvm=Please confirm that you want to start this system VM.
-message.action.stop.instance=Please confirm that you want to stop this instance.
-message.action.stop.router=All services provided by this virtual router will be interrupted. Please confirm that you want to stop this router.
-message.action.stop.systemvm=Please confirm that you want to stop this system VM.
-message.action.take.snapshot=Please confirm that you want to take a snapshot of this volume.
-message.action.revert.snapshot=Please confirm that you want to revert the owning volume to this snapshot.
-message.action.unmanage.cluster=Please confirm that you want to unmanage the cluster.
-message.action.vmsnapshot.delete=Please confirm that you want to delete this VM snapshot.
-message.action.vmsnapshot.revert=Revert VM snapshot
-message.activate.project=Are you sure you want to activate this project?
-message.add.cluster.zone=Add a hypervisor managed cluster for zone <b><span id\="zone_name"></span></b>
-message.add.cluster=Add a hypervisor managed cluster for zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.disk.offering=Please specify the following parameters to add a new disk offering
-message.add.domain=Please specify the subdomain you want to create under this domain
-message.add.firewall=Add a firewall to zone
-message.add.guest.network=Please confirm that you would like to add a guest network
-message.add.host=Please specify the following parameters to add a new host
-message.add.ip.range.direct.network=Add an IP range to direct network <b><span id\="directnetwork_name"></span></b> in zone <b><span id\="zone_name"></span></b>
-message.add.ip.range.to.pod=<p>Add an IP range to pod\: <b><span id\="pod_name_label"></span></b></p>
-message.add.ip.range=Add an IP range to public network in zone
-message.add.load.balancer.under.ip=The load balancer rule has been added under IP\:
-message.add.load.balancer=Add a load balancer to zone
-message.add.network=Add a new network for zone\: <b><span id\="zone_name"></span></b>
-message.add.new.gateway.to.vpc=Please specify the information to add a new gateway to this VPC.
-message.add.pod.during.zone.creation=Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack\'s internal management traffic. The reserved IP range must be unique for each zone in the cloud.
-message.add.pod=Add a new pod for zone <b><span id\="add_pod_zone_name"></span></b>
-message.add.primary.storage=Add a new Primary Storage for zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.primary=Please specify the following parameters to add a new primary storage
-message.add.region=Please specify the required information to add a new region.
-message.add.secondary.storage=Add a new storage for zone <b><span id\="zone_name"></span></b>
-message.add.service.offering=Please fill in the following data to add a new compute offering.
-message.add.system.service.offering=Please fill in the following data to add a new system service offering.
-message.add.template=Please enter the following data to create your new template
-message.add.volume=Please fill in the following data to add a new volume.
-message.add.VPN.gateway=Please confirm that you want to add a VPN Gateway
-message.adding.host=Adding host
-message.adding.Netscaler.device=Adding Netscaler device
-message.adding.Netscaler.provider=Adding Netscaler provider
-message.additional.networks.desc=Please select additional network(s) that your virtual instance will be connected to.
-message.advanced.mode.desc=Choose this network model if you wish to enable VLAN support.  This network model provides the most flexibility in allowing administrators to provide custom network offerings such as providing firewall, vpn, or load balancer support as well as enabling direct vs virtual networking.
-message.advanced.security.group=Choose this if you wish to use security groups to provide guest VM isolation.
-message.advanced.virtual=Choose this if you wish to use zone-wide VLANs to provide guest VM isolation.
-message.after.enable.s3=S3-backed Secondary Storage configured. Note\: When you leave this page, you will not be able to re-configure S3 again.
-message.after.enable.swift=Swift configured. Note\: When you leave this page, you will not be able to re-configure Swift again.
-message.alert.state.detected=Alert state detected
-message.allow.vpn.access=Please enter a username and password of the user that you want to allow VPN access.
-message.apply.snapshot.policy=You have successfully updated your current snapshot policy.
-message.attach.iso.confirm=Please confirm that you want to attach the ISO to this virtual instance.
-message.attach.volume=Please fill in the following data to attach a new volume. If you are attaching a disk volume to a Windows based virtual machine, you will need to reboot the instance to see the attached disk.
-message.basic.mode.desc=Choose this network model if you do <b>*<u>not</u>*</b> want to enable any VLAN support.  All virtual instances created under this network model will be assigned an IP directly from the network and security groups are used to provide security and segregation.
-message.change.ipaddress=Please confirm that you would like to change the IP address for this NIC on VM.
-message.change.offering.confirm=Please confirm that you wish to change the service offering of this virtual instance.
-message.change.password=Please change your password.
-message.configure.all.traffic.types=You have multiple physical networks; please configure labels for each traffic type by clicking on the Edit button.
-message.configuring.guest.traffic=Configuring guest traffic
-message.configuring.physical.networks=Configuring physical networks
-message.configuring.public.traffic=Configuring public traffic
-message.configuring.storage.traffic=Configuring storage traffic
-message.confirm.action.force.reconnect=Please confirm that you want to force reconnect this host.
-message.confirm.delete.F5=Please confirm that you would like to delete F5
-message.confirm.delete.BigSwitchBcf=Please confirm that you would like to delete this BigSwitch BCF Controller
-message.confirm.delete.BrocadeVcs=Please confirm that you would like to delete Brocade Vcs Switch
-message.confirm.delete.NetScaler=Please confirm that you would like to delete NetScaler
-message.confirm.delete.NuageVsp=Please confirm that you would like to delete Nuage Virtualized Services Directory
-message.confirm.delete.SRX=Please confirm that you would like to delete SRX
-message.confirm.delete.PA=Please confirm that you would like to delete Palo Alto
-message.confirm.destroy.router=Please confirm that you would like to destroy this router
-message.confirm.disable.provider=Please confirm that you would like to disable this provider
-message.confirm.enable.provider=Please confirm that you would like to enable this provider
-message.confirm.join.project=Please confirm you wish to join this project.
-message.confirm.remove.IP.range=Please confirm that you would like to remove this IP range.
-message.confirm.shutdown.provider=Please confirm that you would like to shutdown this provider
-message.confirm.current.guest.CIDR.unchanged=Do you want to keep the current guest network CIDR unchanged?
-message.confirm.delete.ciscoASA1000v=Please confirm you want to delete CiscoASA1000v
-message.confirm.remove.selected.events=Please confirm you would like to remove the selected events
-message.confirm.archive.selected.events=Please confirm you would like to archive the selected events
-message.confirm.remove.event=Are you sure you want to remove this event?
-message.confirm.archive.event=Please confirm that you want to archive this event.
-message.confirm.remove.selected.alerts=Please confirm you would like to remove the selected alerts
-message.confirm.archive.selected.alerts=Please confirm you would like to archive the selected alerts
-message.confirm.delete.alert=Are you sure you want to delete this alert ?
-message.confirm.archive.alert=Please confirm that you want to archive this alert.
-message.confirm.migrate.volume=Do you want to migrate this volume?
-message.confirm.attach.disk=Are you sure you want to attach disk?
-message.confirm.create.volume=Are you sure you want to create volume?
-message.confirm.enable.host=Please confirm that you want to enable the host
-message.confirm.disable.host=Please confirm that you want to disable the host
-message.confirm.delete.internal.lb=Please confirm you want to delete Internal LB
-message.confirm.remove.load.balancer=Please confirm you want to remove VM from load balancer
-message.confirm.delete.acl.list=Are you sure you want to delete this ACL list?
-message.confirm.replace.acl.new.one=Do you want to replace the ACL with a new one?
-message.copy.iso.confirm=Please confirm that you wish to copy your ISO to
-message.copy.template=Copy template <b id\="copy_template_name_text">XXX</b> from zone <b id\="copy_template_source_zone_text"></b> to
-message.create.template.vm=Create VM from template <b id\="p_name"></b>
-message.create.template.volume=Please specify the following information before creating a template of your disk volume\: <b><span id\="volume_name"></span></b>. Creation of the template can range from several minutes to longer depending on the size of the volume.
-message.create.template=Are you sure you want to create template?
-message.creating.cluster=Creating cluster
-message.creating.guest.network=Creating guest network
-message.creating.physical.networks=Creating physical networks
-message.creating.pod=Creating pod
-message.creating.primary.storage=Creating primary storage
-message.creating.secondary.storage=Creating secondary storage
-message.creating.zone=Creating zone
-message.decline.invitation=Are you sure you want to decline this project invitation?
-message.dedicate.zone=Dedicating zone
-message.delete.account=Please confirm that you want to delete this account.
-message.delete.affinity.group=Please confirm that you would like to remove this affinity group.
-message.delete.gateway=Please confirm you want to delete the gateway
-message.delete.project=Are you sure you want to delete this project?
-message.delete.user=Please confirm that you would like to delete this user.
-message.delete.VPN.connection=Please confirm that you want to delete VPN connection
-message.delete.VPN.customer.gateway=Please confirm that you want to delete this VPN Customer Gateway
-message.delete.VPN.gateway=Please confirm that you want to delete this VPN Gateway
-message.desc.advanced.zone=For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.
-message.desc.basic.zone=Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering).
-message.desc.cluster=Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.
-message.desc.created.ssh.key.pair=Created a SSH Key Pair.
-message.desc.host=Each cluster must contain at least one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host\\'s DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.
-message.desc.primary.storage=Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.
-message.desc.reset.ssh.key.pair=Please specify a ssh key pair that you would like to add to this VM. Please note the root password will be changed by this operation if password is enabled.
-message.desc.secondary.storage=Each zone must have at least one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.
-message.desc.zone=A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.
-message.detach.disk=Are you sure you want to detach this disk?
-message.detach.iso.confirm=Please confirm that you want to detach the ISO from this virtual instance.
-message.disable.account=Please confirm that you want to disable this account.  By disabling the account, all users for this account will no longer have access to their cloud resources.  All running virtual machines will be immediately shut down.
-message.disable.snapshot.policy=You have successfully disabled your current snapshot policy.
-message.disable.user=Please confirm that you would like to disable this user.
-message.disable.vpn.access=Please confirm that you want to disable Remote Access VPN.
-message.disable.vpn=Are you sure you want to disable VPN?
-message.download.ISO=Please click <a href\="\#">00000</a> to download ISO
-message.download.template=Please click <a href\="\#">00000</a> to download template
-message.download.volume.confirm=Please confirm that you want to download this volume.
-message.download.volume=Please click <a href\="\#">00000</a> to download volume
-message.edit.account=Edit ("-1" indicates no limit to the amount of resources create)
-message.edit.confirm=Please confirm your changes before clicking "Save".
-message.edit.limits=Please specify limits to the following resources.  A "-1" indicates no limit to the amount of resources create.
-message.edit.traffic.type=Please specify the traffic label you want associated with this traffic type.
-message.enable.account=Please confirm that you want to enable this account.
-message.enable.user=Please confirm that you would like to enable this user.
-message.enable.vpn.access=VPN is currently disabled for this IP Address.  Would you like to enable VPN access?
-message.enable.vpn=Please confirm that you want Remote Access VPN enabled for this IP address.
-message.enabled.vpn.ip.sec=Your IPSec pre-shared key is
-message.enabled.vpn=Your Remote Access VPN is currently enabled and can be accessed via the IP
-message.enabling.security.group.provider=Enabling Security Group provider
-message.enabling.zone=Enabling zone
-message.enter.token=Please enter the token that you were given in your invite e-mail.
-message.generate.keys=Please confirm that you would like to generate new keys for this user.
-message.guest.traffic.in.advanced.zone=Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.
-message.guest.traffic.in.basic.zone=Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.
-message.installWizard.click.retry=Click the button to retry launch.
-message.installWizard.copy.whatIsACluster=A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack&\#8482; deployment. Clusters are contained within pods, and pods are contained within zones.<br/><br/>CloudStack&\#8482; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster.
-message.installWizard.copy.whatIsAHost=A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer or KVM.<br/><br/>The host is the smallest organizational unit within a CloudStack&\#8482; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones.
-message.installWizard.copy.whatIsAPod=A pod often represents a single rack. Hosts in the same pod are in the same subnet.<br/><br/>A pod is the second-largest organizational unit within a CloudStack&\#8482; deployment. Pods are contained within zones. Each zone can contain one or more pods; in the Basic Installation, you will have just one pod in your zone.
-message.installWizard.copy.whatIsAZone=A zone is the largest organizational unit within a CloudStack&\#8482; deployment. A zone typically corresponds to a single datacenter, although it is permissible to have multiple zones in a datacenter. The benefit of organizing infrastructure into zones is to provide physical isolation and redundancy. For example, each zone can have its own power supply and network uplink, and the zones can be widely separated geographically (though this is not required).
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482 is a software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. CloudStack&\#8482 manages the network, storage, and compute nodes that make up a cloud infrastructure. Use CloudStack&\#8482 to deploy, manage, and configure cloud computing environments.<br/><br/>Extending beyond individual virtual machine images running on commodity hardware, CloudStack&\#8482 provides a turnkey cloud infrastructure software stack for delivering virtual datacenters as a service - delivering all of the essential components to build, deploy, and manage multi-tier and multi-tenant cloud applications. Both open-source and Premium versions are available, with the open-source version offering nearly identical features.
-message.installWizard.copy.whatIsPrimaryStorage=A CloudStack&\#8482; cloud infrastructure makes use of two types of storage\: primary storage and secondary storage. Both of these can be iSCSI or NFS servers, or localdisk.<br/><br/><strong>Primary storage</strong> is associated with a cluster, and it stores the disk volumes of each guest VM for all the VMs running on hosts in that cluster. The primary storage server is typically located close to the hosts.
-message.installWizard.copy.whatIsSecondaryStorage=Secondary storage is associated with a zone, and it stores the following\:<ul><li>Templates - OS images that can be used to boot VMs and can include additional configuration information, such as installed applications</li><li>ISO images - OS images that can be bootable or non-bootable</li><li>Disk volume snapshots - saved copies of VM data which can be used for data recovery or to create new templates</ul>
-message.installWizard.now.building=Now building your cloud...
-message.installWizard.tooltip.addCluster.name=A name for the cluster.  This can be text of your choosing and is not used by CloudStack.
-message.installWizard.tooltip.addHost.hostname=The DNS name or IP address of the host.
-message.installWizard.tooltip.addHost.password=This is the password for the user named above (from your XenServer install).
-message.installWizard.tooltip.addHost.username=Usually root.
-message.installWizard.tooltip.addPod.name=A name for the pod
-message.installWizard.tooltip.addPod.reservedSystemEndIp=This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.
-message.installWizard.tooltip.addPod.reservedSystemGateway=The gateway for the hosts in that pod.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=The netmask in use on the subnet the guests will use.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.
-message.installWizard.tooltip.addPrimaryStorage.name=The name for the storage device.
-message.installWizard.tooltip.addPrimaryStorage.path=(for NFS) In NFS this is the exported path from the server. Path (for SharedMountPoint).  With KVM this is the path on each host that is where this primary storage is mounted.  For example, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(for NFS, iSCSI, or PreSetup) The IP address or DNS name of the storage device.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=The IP address of the NFS server hosting the secondary storage
-message.installWizard.tooltip.addSecondaryStorage.path=The exported path, located on the server you specified above
-message.installWizard.tooltip.addZone.dns1=These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.
-message.installWizard.tooltip.addZone.dns2=These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.
-message.installWizard.tooltip.addZone.internaldns1=These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.
-message.installWizard.tooltip.addZone.internaldns2=These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.
-message.installWizard.tooltip.addZone.name=A name for the zone
-message.installWizard.tooltip.configureGuestTraffic.description=A description for your network
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=The gateway that the guests should use
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=The netmask in use on the subnet that the guests should use
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.
-message.installWizard.tooltip.configureGuestTraffic.name=A name for your network
-message.instanceWizard.noTemplates=You do not have any templates available; please add a compatible template, and re-launch the instance wizard.
-message.ip.address.changed=Your IP addresses may have changed; would you like to refresh the listing? Note that in this case the details pane will close.
-message.iso.desc=Disc image containing data or bootable media for OS
-message.join.project=You have now joined a project. Please switch to Project view to see the project.
-message.launch.vm.on.private.network=Do you wish to launch your instance on your own private dedicated network?
-message.launch.zone=Zone is ready to launch; please proceed to the next step.
-message.lock.account=Please confirm that you want to lock this account.  By locking the account, all users for this account will no longer be able to manage their cloud resources.  Existing resources can still be accessed.
-message.migrate.instance.confirm=Please confirm the host you wish to migrate the virtual instance to.
-message.migrate.instance.to.host=Please confirm that you want to migrate instance to another host.
-message.migrate.instance.to.ps=Please confirm that you want to migrate instance to another primary storage.
-message.migrate.router.confirm=Please confirm the host you wish to migrate the router to\:
-message.migrate.systemvm.confirm=Please confirm the host you wish to migrate the system VM to\:
-message.migrate.volume=Please confirm that you want to migrate volume to another primary storage.
-message.new.user=Specify the following to add a new user to the account
-message.no.network.support.configuration.not.true=You do not have any zone that has security group enabled. Thus, no additional network features.  Please continue to step 5.
-message.no.network.support=Your selected hypervisor, vSphere, does not have any additional network features.  Please continue to step 5.
-message.no.projects.adminOnly=You do not have any projects.<br/>Please ask your administrator to create a new project.
-message.no.projects=You do not have any projects.<br/>Please create a new one from the projects section.
-message.number.clusters=<h2><span> \# of </span> Clusters</h2>
-message.number.hosts=<h2><span> \# of </span> Hosts</h2>
-message.number.pods=<h2><span> \# of </span> Pods</h2>
-message.number.storage=<h2><span> \# of </span> Primary Storage Volumes</h2>
-message.number.zones=<h2><span> \# of </span> Zones</h2>
-message.pending.projects.1=You have pending project invitations\:
-message.pending.projects.2=To view, please go to the projects section, then select invitations from the drop-down.
-message.please.add.at.lease.one.traffic.range=Please add at least one traffic range.
-message.please.proceed=Please proceed to the next step.
-message.please.select.a.configuration.for.your.zone=Please select a configuration for your zone.
-message.please.select.a.different.public.and.management.network.before.removing=Please select a different public and management network before removing
-message.please.select.networks=Please select networks for your virtual machine.
-message.please.wait.while.zone.is.being.created=Please wait while your zone is being created; this may take a while...
-message.project.invite.sent=Invite sent to user; they will be added to the project once they accept the invitation
-message.public.traffic.in.advanced.zone=Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.
-message.public.traffic.in.basic.zone=Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.
-message.redirecting.region=Redirecting to region...
-message.remove.region=Are you sure you want to remove this region from this management server?
-message.remove.vpc=Please confirm that you want to remove the VPC
-message.remove.vpn.access=Please confirm that you want to remove VPN access from the following user.
-message.reset.password.warning.notPasswordEnabled=The template of this instance was created without password enabled
-message.reset.password.warning.notStopped=Your instance must be stopped before attempting to change its current password
-message.reset.VPN.connection=Please confirm that you want to reset VPN connection
-message.restart.mgmt.server=Please restart your management server(s) for your new settings to take effect.
-message.restart.mgmt.usage.server=Please restart your management server(s) and usage server(s) for your new settings to take effect.
-message.restart.network=All services provided by this network will be interrupted. Please confirm that you want to restart this network.
-message.restart.vpc=Please confirm that you want to restart the VPC
-message.security.group.usage=(Use <strong>Ctrl-click</strong> to select all applicable security groups)
-message.select.a.zone=A zone typically corresponds to a single datacenter. Multiple zones help make the cloud more reliable by providing physical isolation and redundancy.
-message.select.instance=Please select an instance.
-message.select.iso=Please select an ISO for your new virtual instance.
-message.select.item=Please select an item.
-message.select.security.groups=Please select security group(s) for your new VM
-message.select.template=Please select a template for your new virtual instance.
-message.setup.physical.network.during.zone.creation.basic=When adding a basic zone, you can set up one physical network, which corresponds to a NIC on the hypervisor. The network carries several types of traffic.<br/><br/>You may also <strong>drag and drop</strong> other traffic types onto the physical network.
-message.setup.physical.network.during.zone.creation=When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the hypervisor. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.
-message.setup.successful=Cloud setup successful\!
-message.snapshot.schedule=You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference
-message.specify.url=Please specify URL
-message.step.1.continue=Please select a template or ISO to continue
-message.step.1.desc=Please select a template for your new virtual instance. You can also choose to select a blank template from which an ISO image can be installed onto.
-message.step.2.continue=Please select a service offering to continue
-message.step.3.continue=Please select a disk offering to continue
-message.step.4.continue=Please select at least one network to continue
-message.step.4.desc=Please select the primary network that your virtual instance will be connected to.
-message.storage.traffic=Traffic between CloudStack\\'s internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.
-message.suspend.project=Are you sure you want to suspend this project?
-message.template.desc=OS image that can be used to boot VMs
-message.tooltip.dns.1=Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
-message.tooltip.dns.2=A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
-message.tooltip.internal.dns.1=Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.
-message.tooltip.internal.dns.2=Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.
-message.tooltip.network.domain=A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.
-message.tooltip.pod.name=A name for this pod.
-message.tooltip.reserved.system.gateway=The gateway for the hosts in the pod.
-message.tooltip.reserved.system.netmask=The network prefix that defines the pod subnet. Uses CIDR notation.
-message.tooltip.zone.name=A name for the zone.
-message.update.os.preference=Please choose a OS preference for this host.  All virtual instances with similar preferences will be first allocated to this host before choosing another.
-message.update.resource.count=Please confirm that you want to update resource counts for this account.
-message.update.ssl=Please submit a new X.509 compliant SSL certificate chain to be updated to each console proxy and secondary storage virtual instance\:
-message.update.ssl.succeeded=Update SSL Certificates succeeded
-message.update.ssl.failed=Failed to update SSL Certificate.
-message.validate.instance.name=Instance name can not be longer than 63 characters. Only ASCII letters a~z, A~Z, digits 0~9, hyphen are allowed. Must start with a letter and end with a letter or a digit.
-message.virtual.network.desc=A dedicated virtualized network for your account.  The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.
-message.vm.create.template.confirm=Create Template will reboot the VM automatically.
-message.vm.review.launch=Please review the following information and confirm that your virtual instance is correct before launch.
-message.volume.create.template.confirm=Please confirm that you wish to create a template for this disk volume.  Creation of the template can range from several minutes to longer depending on the size of the volume.
-message.you.must.have.at.least.one.physical.network=You must have at least one physical network
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Zone creation complete. Would you like to enable this zone?
-message.Zone.creation.complete=Zone creation complete
-message.zone.no.network.selection=The zone you selected does not have any choices for network selection.
-message.zone.step.1.desc=Please select a network model for your zone.
-message.zone.step.2.desc=Please enter the following info to add a new zone
-message.zone.step.3.desc=Please enter the following info to add a new pod
-message.zoneWizard.enable.local.storage=WARNING\: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch\:<br/><br/>1. If system VMs need to be launched in shared primary storage, shared primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local primary storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?
-message.validate.fieldrequired=This field is required.
-message.validate.fixfield=Please fix this field.
-message.validate.email.address=Please enter a valid email address.
-message.validate.URL=Please enter a valid URL.
-message.validate.date=Please enter a valid date.
-message.validate.date.ISO=Please enter a valid date (ISO).
-message.validate.number=Please enter a valid number.
-message.validate.digits=Please enter only digits.
-message.validate.creditcard=Please enter a valid credit card number.
-message.validate.equalto=Please enter the same value again.
-message.validate.accept=Please enter a value with a valid extension.
-message.validate.maxlength=Please enter no more than {0} characters.
-message.validate.minlength=Please enter at least {0} characters.
-message.validate.range.length=Please enter a value between {0} and {1} characters long.
-message.validate.range=Please enter a value between {0} and {1}.
-message.validate.max=Please enter a value less than or equal to {0}.
-messgae.validate.min=Please enter a value greater than or equal to {0}.
-message.creating.systemVM=Creating system VMs (this may take a while)
-message.enabling.zone.dots=Enabling zone...
-message.restoreVM=Do you want to restore the VM ?
-message.no.host.available=No Hosts are available for Migration
-message.network.addVM.desc=Please specify the network that you would like to add this VM to. A new NIC will be added for this network.
-message.network.addVMNIC=Please confirm that you would like to add a new VM NIC for this network.
-message.set.default.NIC=Please confirm that you would like to make this NIC the default for this VM.
-message.set.default.NIC.manual=Please manually update the default NIC on the VM now.
-message.instance.scaled.up.confirm=Do you really want to scale Up your instance ?
-message.copy.template.confirm=Are you sure you want to copy template?
-message.template.copying=Template is being copied.
-message.XSTools61plus.update.failed=Failed to update Original XS Version is 6.1\+ field. Error\:
-message.gslb.delete.confirm=Please confirm you want to delete this GSLB
-message.portable.ip.delete.confirm=Please confirm you want to delete Portable IP Range
-message.gslb.lb.remove.confirm=Please confirm you want to remove load balancing from GSLB
-message.admin.guide.read=For VMware-based VMs, please read the dynamic scaling section in the admin guide before scaling. Would you like to continue?\,
-message.tier.required=Tier is required
-message.remove.ldap=Are you sure you want to delete the LDAP configuration?
-message.action.downloading.template=Downloading template.
-message.configure.ldap=Please confirm you would like to configure LDAP.
-message.confirm.delete.ciscovnmc.resource=Please confirm you want to delete CiscoVNMC resource
-message.confirm.add.vnmc.provider=Please confirm you would like to add the VNMC provider.
-message.confirm.enable.vnmc.provider=Please confirm you would like to enable the VNMC provider.
-message.confirm.disable.vnmc.provider=Please confirm you would like to disable the VNMC provider.
-message.vnmc.available.list=VNMC is not available from provider list.
-message.vnmc.not.available.list=VNMC is not available from provider list.
-message.confirm.release.dedicate.vlan.range=Please confirm you want to release dedicated VLAN range
-message.confirm.start.lb.vm=Please confirm you want to start LB VM
-message.confirm.stop.lb.vm=Please confirm you want to stop LB VM
-message.confirm.remove.vmware.datacenter=Please confirm you want to remove VMware datacenter
-message.confirm.dedicate.zone=Do you really want to dedicate this zone to a domain/account?
-message.confirm.release.dedicated.zone=Do you want to release this dedicated zone ? 
-message.dedicated.zone.released=Zone dedication released
-message.read.admin.guide.scaling.up=Please read the dynamic scaling section in the admin guide before scaling up.
-message.confirm.scale.up.system.vm=Do you really want to scale up the system VM ?
-message.confirm.upgrade.router.newer.template=Please confirm that you want to upgrade router to use newer template
-message.confirm.scale.up.router.vm=Do you really want to scale up the Router VM ?
-message.confirm.upgrade.routers.newtemplate=Please confirm that you want to upgrade all routers in this zone to use newer template
-message.confirm.upgrade.routers.pod.newtemplate=Please confirm that you want to upgrade all routers in this pod to use newer template
-message.confirm.upgrade.routers.cluster.newtemplate=Please confirm that you want to upgrade all routers in this cluster to use newer template
-message.confirm.upgrade.routers.account.newtemplate=Please confirm that you want to upgrade all routers in this account to use newer template
-message.confirm.dedicate.pod.domain.account=Do you really want to dedicate this pod to a domain/account? 
-message.confirm.release.dedicated.pod=Do you want to release this dedicated pod ?
-message.pod.dedication.released=Pod dedication released
-message.confirm.dedicate.cluster.domain.account=Do you really want to dedicate this cluster to a domain/account? 
-message.cluster.dedicated=Cluster Dedicated
-message.confirm.release.dedicated.cluster=Do you want to release this dedicated cluster ?
-message.cluster.dedication.released=Cluster dedication released
-message.confirm.dedicate.host.domain.account=Do you really want to dedicate this host to a domain/account? 
-message.host.dedicated=Host Dedicated
-message.confirm.release.dedicated.host=Do you want to release this dedicated host ?
-message.host.dedication.released=Host dedication released
-message.confirm.delete.ucs.manager=Please confirm that you want to delete UCS Manager
-message.confirm.refresh.blades=Please confirm that you want to refresh blades.
-message.confirm.delete.secondary.staging.store=Please confirm you want to delete Secondary Staging Store.
-message.select.tier=Please select a tier
-message.disallowed.characters=Disallowed characters: \<\,\>
-message.waiting.for.builtin.templates.to.load=Waiting for builtin templates to load...
-message.systems.vms.ready=System VMs ready.
-message.your.cloudstack.is.ready=Your CloudStack is ready\!
-message.specifiy.tag.key.value=Please specify a tag key and value
-message.enter.seperated.list.multiple.cidrs=Please enter a comma separated list of CIDRs if more than one
-message.disabling.network.offering=Disabling network offering
-message.confirm.enable.network.offering=Are you sure you want to enable this network offering?
-message.enabling.network.offering=Enabling network offering
-message.confirm.remove.network.offering=Are you sure you want to remove this network offering?
-message.confirm.disable.network.offering=Are you sure you want to disable this network offering?
-message.disabling.vpc.offering=Disabling VPC offering
-message.confirm.enable.vpc.offering=Are you sure you want to enable this VPC offering?
-message.enabling.vpc.offering=Enabling VPC offering
-message.confirm.remove.vpc.offering=Are you sure you want to remove this VPC offering?
-message.confirm.disable.vpc.offering=Are you sure you want to disable this VPC offering?
-mode=Mode
-network.rate=Network Rate
-notification.reboot.instance=Reboot instance
-notification.start.instance=Start instance
-notification.stop.instance=Stop instance
-side.by.side=Side by Side
-state.Accepted=Accepted
-state.Active=Active
-state.Allocated=Allocated
-state.Allocating=Allocating
-state.BackedUp=Backed Up
-state.BackingUp=Backing Up
-state.Completed=Completed
-state.Creating=Creating
-state.Declined=Declined
-state.Destroyed=Destroyed
-state.detached=Detached
-state.Disabled=Disabled
-state.Enabled=Enabled
-state.Error=Error
-state.Expunging=Expunging
-state.Migrating=Migrating
-state.Pending=Pending
-state.Ready=Ready
-state.Running=Running
-state.Starting=Starting
-state.Stopped=Stopped
-state.Stopping=Stopping
-state.Suspended=Suspended
-ui.listView.filters.all=All
-ui.listView.filters.mine=Mine
-label.na=N/A
-label.added.network.offering=Added network offering
-hint.type.part.storage.tag=Type in part of a storage tag
-hint.type.part.host.tag=Type in part of a host tag
-hint.no.storage.tags=No storage tags found
-hint.no.host.tags=No host tags found
-label.availabilityZone=availabilityZone
-label.diskoffering=diskoffering
-title.upload.volume=Upload Volume
-label.format.lower=format
-label.checksum=checksum
-label.assign.vms=Assign VMs
-label.extractable.lower=extractable
-label.globo.dns=GloboDNS
-label.add.globo.dns=Add GloboDNS
-label.globo.dns.configuration=GloboDNS Configuration
-label.region.details=Region details
-label.baremetal.rack.configuration=Baremetal Rack Configuration
-label.add.baremetal.rack.configuration=Add Baremetal Rack Configuration
-label.delete.baremetal.rack.configuration=Delete Baremetal Rack Configuration
-message.confirm.delete.baremetal.rack.configuration=Please confirm that you want to delete Baremetal Rack Configuration.
-message.added.new.nuage.vsp.controller=Added new Nuage Vsp Controller
-message.added.vpc.offering=Added VPC offering
-label.keyboard.language=Keyboard language
-label.standard.us.keyboard=Standard (US) keyboard
-label.uk.keyboard=UK keyboard
-label.japanese.keyboard=Japanese keyboard
-label.simplified.chinese.keyboard=Simplified Chinese keyboard
-label.display.name=Display Name
-label.zone.name=Zone Name
-label.instances=Instances
-label.event=Event
-label.minutes.past.hour=minutes(s) past the hour
-label.time.colon=Time:
-label.min.past.the.hr=min past the hr
-label.timezone.colon=Timezone:
-label.keep.colon=Keep:
-label.every=Every
-label.day=Day
-label.of.month=of month
-label.add.private.gateway=Add Private Gateway
-label.link.domain.to.ldap=Link Domain to LDAP
-message.link.domain.to.ldap=Enable autosync for this domain in LDAP
-label.ldap.link.type=Type
-label.account.type=Account Type
-message.desc.created.ssh.key.pair=Created a SSH Key Pair.
-message.please.confirm.remove.ssh.key.pair=Please confirm that you want to remove this SSH Key Pair
-message.password.has.been.reset.to=Password has been reset to
-message.password.of.the.vm.has.been.reset.to=Password of the VM has been reset to
-message.question.are.you.sure.you.want.to.add=Are you sure you want to add
-label.domain.details=Domain details
-label.account.details=Account details
-label.user.details=User details
-label.service.offering.details=Service offering details
-label.system.service.offering.details=System service offering details
-label.disk.offering.details=Disk offering details
-label.network.offering.details=Network offering details
-label.remove.this.physical.network=Remove this physical network
-label.physical.network.name=Physical network name
-label.save.changes=Save changes
-label.autoscale.configuration.wizard=AutoScale Configuration Wizard
-label.health.check.wizard=Health Check Wizard
-label.health.check.message.desc=Your load balancer will automatically perform health checks on your cloudstack instances and only route traffic to instances that pass the health check
-label.health.check.configurations.options=Configuration Options:
-label.health.check.advanced.options=Advanced Options:
-label.add.isolated.guest.network.with.sourcenat=Add Isolated Guest Network with SourceNat
-message.network.remote.access.vpn.configuration=Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.
-label.vpc.router.details=VPC Router Details
-label.edit.rule=Edit rule
-label.advanced.search=Advanced Search
-label.internal.lb=Internal LB
-label.public.lb=Public LB
-label.acl.list.rules=ACL List Rules
-label.static.routes=Static Routes
-label.network.details=Network Details
-label.scaleup.policy=ScaleUp Policy
-label.scaledown.policy=ScaleDown Policy
-label.configure.sticky.policy=Configure Sticky Policy
-label.please.complete.the.following.fields=Please complete the following fields
-message.desc.add.new.lb.sticky.rule=Add new LB sticky rule
-label.ssh.key.pairs=SSH Key Pairs
-message.desc.create.ssh.key.pair=Please fill in the following data to create or register a ssh key pair.<br><br>(1) If public key is set, CloudStack will register the public key. You can use it through your private key.<br><br>(2) If public key is not set, CloudStack will create a new SSH Key pair. In this case, please copy and save the private key. CloudStack will not keep it.<br>
-message.removed.ssh.key.pair=Removed a SSH Key Pair
-message.please.select.ssh.key.pair.use.with.this.vm=Please select a ssh key pair you want this VM to use:
-message.configure.firewall.rules.allow.traffic=Configure the rules to allow Traffic
-message.configure.firewall.rules.block.traffic=Configure the rules to block Traffic
-message.ldap.group.import=All The users from the given group name will be imported
-label.vpn.force.encapsulation=Force UDP Encapsulation of ESP Packets
diff --git a/client/WEB-INF/classes/resources/messages_ar.properties b/client/WEB-INF/classes/resources/messages_ar.properties
deleted file mode 100644
index d1832c4..0000000
--- a/client/WEB-INF/classes/resources/messages_ar.properties
+++ /dev/null
@@ -1,284 +0,0 @@
-# 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.
-
-changed.item.properties=\u062a\u063a\u064a\u0631 \u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0639\u0646\u0635\u0631
-confirm.enable.s3=\u0641\u0636\u0644\u0627 \u0642\u0645 \u0628\u062a\u0639\u0628\u0626\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0642\u0627\u062f\u0645\u0629 \u0644\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 S3 \u0644\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u062b\u0627\u0646\u0648\u064a\u0629.
-instances.actions.reboot.label=\u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0646\u0645\u0648\u0630\u062c
-label.accept.project.invitation=\u0642\u0628\u0648\u0644 \u062f\u0639\u0648\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.action.delete.system.service.offering=\u062d\u0630\u0641 \u0646\u0638\u0627\u0645 \u062a\u0642\u062f\u064a\u0645 \u0627\u0644\u062e\u062f\u0645\u0629
-label.action.disable.physical.network=\u062a\u0639\u0637\u064a\u0644 \u0634\u0628\u0643\u0629 \u0641\u064a\u0632\u064a\u0627\u0626\u064a\u0629
-label.action.enable.physical.network=\u062a\u0645\u0643\u064a\u0646 \u0634\u0628\u0643\u0629 \u0641\u064a\u0632\u064a\u0627\u0626\u064a\u0629
-label.activate.project=\u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.add.accounts.to=\u0625\u0636\u0627\u0641\u0629 \u062d\u0633\u0627\u0628\u0627\u062a \u0625\u0644\u0649
-label.add.accounts=\u0625\u0636\u0627\u0641\u0629 \u062d\u0633\u0627\u0628\u0627\u062a
-label.add.account.to.project=\u0625\u0636\u0627\u0641\u0629 \u062d\u0633\u0627\u0628 \u0644\u0644\u0645\u0634\u0631\u0648\u0639
-label.add.ACL=\u0625\u0636\u0627\u0641\u0629 ACL
-label.add.network.ACL=\u0625\u0636\u0627\u0641\u0629 \u0634\u0628\u0643\u0629 ACL
-label.add.new.gateway=\u0623\u0636\u0641 \u0628\u0648\u0627\u0628\u0629 \u062c\u062f\u064a\u062f\u0629
-label.add.new.tier=\u0625\u0636\u0627\u0641\u0629 \u0637\u0628\u0642\u0629 \u062c\u062f\u064a\u062f\u0629
-label.add.port.forwarding.rule=\u0625\u0636\u0627\u0641\u0629 \u0642\u0627\u0639\u062f\u0629 \u0645\u0646\u0641\u0630 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u0648\u062c\u064a\u0647
-label.add.route=\u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u0627\u0631
-label.add.rule=\u0625\u0636\u0627\u0641\u0629 \u0642\u0627\u0639\u062f\u0629
-label.add.static.route=\u0625\u0636\u0627\u0641\u0629 \u062a\u0648\u062c\u064a\u0647 \u062b\u0627\u0628\u062a
-label.add.to.group=\u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0629
-label.add.VM.to.tier=\u0625\u0636\u0627\u0641\u0629 \u062c\u0647\u0627\u0632 \u0625\u0641\u062a\u0631\u0627\u0636\u064a \u0641\u064a \u0637\u0628\u0642\u0629
-label.add.vpc=\u0625\u0636\u0627\u0641\u0629 \u0633\u062d\u0627\u0628\u0629 \u0625\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u062e\u0627\u0635\u0629
-label.add.VPN.gateway=\u0623\u0636\u0641 \u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629
-label.allocated=\u062a\u062e\u0635\u064a\u0635
-label.apply=\u062a\u0637\u0628\u064a\u0642
-label.associated.network=\u0634\u0628\u0643\u0629 \u0645\u0631\u062a\u0628\u0637\u0629
-label.broadcast.uri=\u0628\u062b \u0627\u0644\u0631\u0627\u0628\u0637
-label.broadcat.uri=\u0628\u062b \u0627\u0644\u0631\u0627\u0628\u0637
-label.change.value=\u062a\u063a\u064a\u0631 \u0627\u0644\u0642\u064a\u0645\u0629
-label.CIDR.list=\u0642\u0627\u0626\u0645\u0629 CIDR
-label.CIDR.of.destination.network=CIDR \u0627\u0644\u062e\u0627\u0635 \u0628\u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0645\u0648\u062c\u0647\u0629.
-label.clean.up=\u062a\u0646\u0638\u064a\u0641
-label.clear.list=\u0645\u0633\u062d \u0627\u0644\u0642\u0627\u0626\u0645\u0629
-label.configuration=\u062a\u0631\u062a\u064a\u0628
-label.configure.network.ACLs=\u0636\u0628\u0637 \u0634\u0628\u0643\u0629 ACLs
-label.configure=\u0642\u0645 \u0628\u062a\u0643\u0648\u064a\u0646
-label.configure.vpc=\u062a\u0643\u0648\u064a\u0646 VPC
-label.corrections.saved=\u062a\u0645 \u062d\u0641\u0638 \u0627\u0644\u062a\u0635\u062d\u064a\u062d\u0627\u062a
-label.cpu.mhz=\u0648\u062d\u062f\u0629 \u0627\u0644\u0645\u0639\u0627\u0644\u062c\u0629 \u0627\u0644\u0645\u0631\u0643\u0632\u064a\u0629 (\u0628\u0627\u0644\u0645\u064a\u063a\u0627\u0647\u064a\u0631\u062a\u0632)
-label.cpu=\u0648 \u0645 \u0645
-label.create.project=\u0623\u0646\u0634\u0626 \u0645\u0634\u0631\u0648\u0639
-label.create.VPN.connection=\u0625\u0646\u0634\u0627\u0621 \u0627\u062a\u0635\u0627\u0644 \u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629
-label.dead.peer.detection=\u0643\u0634\u0641 \u0627\u0644\u0642\u0631\u064a\u0646 \u0627\u0644\u0645\u0641\u0642\u0648\u062f
-label.decline.invitation=\u0631\u0641\u0636 \u0627\u0644\u062f\u0639\u0648\u0629
-label.default=\u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a
-label.default.view=\u0637\u0631\u064a\u0642\u0629 \u0627\u0644\u0639\u0631\u0636 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629
-label.delete.gateway=\u0627\u062d\u0630\u0641 \u0627\u0644\u0628\u0648\u0627\u0628\u0629
-label.delete.project=\u062d\u0630\u0641 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.delete.VPN.connection=\u0627\u062d\u0630\u0641 \u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629
-label.delete.VPN.customer.gateway=\u062d\u0630\u0641 \u0628\u0648\u0627\u0628\u0629 VPN \u0627\u0644\u0645\u062e\u0635\u0635\u0629
-label.delete.VPN.gateway=\u0627\u062d\u0630\u0641 \u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629
-label.destroy=\u0647\u062f\u0645
-label.devices=\u0627\u0644\u0623\u062c\u0647\u0632\u0629
-label.direct.ips=\u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0645\u0634\u062a\u0631\u0643\u0629 IPs
-label.DNS.domain.for.guest.networks=\u0645\u062c\u0627\u0644 DNS \u0644\u0634\u0628\u0643\u0627\u062a \u0627\u0644\u0632\u0627\u0626\u0631
-label.dns=\u0646\u0638\u0627\u0645 \u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u0645\u062c\u0627\u0644 DNS
-label.drag.new.position=\u0627\u0633\u062d\u0628 \u0644\u0645\u0648\u0642\u0641 \u062c\u062f\u064a\u062f
-label.edit.network.details=\u062a\u062d\u0631\u064a\u0631 \u062a\u0641\u0627\u0635\u064a\u0644 \u0627\u0644\u0634\u0628\u0643\u0629
-label.edit.project.details=\u0627\u0636\u0627\u0641\u0629 \u062a\u0641\u0627\u0635\u064a\u0644 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.edit.tags=\u062a\u0639\u062f\u064a\u0644 \u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a
-label.edit.vpc=\u062a\u0639\u062f\u064a\u0644 VPC
-label.egress.rules=\u0642\u0648\u0627\u0639\u062f \u0627\u0644\u062e\u0631\u0648\u062c
-label.elastic=\u0645\u0631\u0646
-label.enable.s3=\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u0648\u064a S3
-label.endpoint=\u0646\u0642\u0637\u0629 \u0627\u0644\u0646\u0647\u0627\u064a\u0629
-label.error=\u062e\u0637\u0623
-label.ESP.lifetime=\u0639\u0645\u0631 ESP (\u062b\u0627\u0646\u064a\u0629)
-label.ESP.policy=\u0633\u064a\u0627\u0633\u0629 ESP
-label.failed=\u062e\u0637\u0623
-label.filterBy=\u062a\u0635\u0641\u064a\u0629 \u062d\u0633\u0628
-label.full.path=\u0645\u0633\u0627\u0631 \u0643\u0627\u0645\u0644
-label.gpu=\u0648\u0639\u0631
-label.guest.type=\u0646\u0648\u0639 \u0627\u0644\u0636\u064a\u0641
-label.IKE.lifetime=\u0639\u0645\u0631 IKE (\u062b\u0627\u0646\u064a\u0629)
-label.IKE.policy=\u0633\u064a\u0627\u0633\u0629 IKE
-label.instances=\u0627\u0644\u062d\u0627\u0644\u0627\u062a
-label.invitations=\u062f\u0639\u0648\u0627\u062a
-label.invited.accounts=\u062f\u0639\u0648\u0629 \u062d\u0633\u0627\u0628\u0627\u062a
-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.lb.algorithm.leastconn=\u0623\u0642\u0644 \u0627\u0644\u0625\u062a\u0635\u0627\u0644\u0627\u062a
-label.lb.algorithm.source=\u0645\u0635\u062f\u0631
-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
-label.memory.mb=\u0627\u0644\u0630\u0627\u0643\u0631\u0629 ( \u0628\u0627\u0644\u0645\u064a\u062c\u0627\u0628\u0627\u064a\u0628\u062a)
-label.memory=\u0627\u0644\u0630\u0627\u0643\u0631\u0629
-label.menu.alerts=\u0627\u0644\u062a\u0646\u0628\u064a\u0647\u0627\u062a
-label.menu.all.accounts=\u062c\u0645\u064a\u0639 \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a
-label.menu.all.instances=\u062c\u0645\u064a\u0639 \u0627\u0644\u062d\u0627\u0644\u0627\u062a
-label.menu.community.isos=\u0627\u0644\u062a\u0636\u0627\u0645\u0646 \u0627\u0644\u062f\u0648\u0644\u064a \u0627\u0644\u0645\u062c\u062a\u0645\u0639\u064a
-label.menu.community.templates=\u0642\u0648\u0627\u0644\u0628 \u0627\u0644\u0645\u062c\u062a\u0645\u0639
-label.menu.configuration=\u062a\u0631\u062a\u064a\u0628
-label.menu.dashboard=\u0644\u0648\u062d\u0629 \u0627\u0644\u0642\u064a\u0627\u062f\u0629
-label.menu.destroyed.instances=\u062d\u0627\u0644\u0627\u062a \u0627\u0644\u062a\u062f\u0645\u064a\u0631
-label.menu.disk.offerings=\u0639\u0631\u0648\u0636 \u0627\u0644\u0642\u0631\u0635
-label.menu.domains=\u0627\u0644\u0645\u062c\u0627\u0644\u0627\u062a
-label.menu.events=\u0623\u062d\u062f\u0627\u062b
-label.menu.featured.isos=\u0645\u0645\u064a\u0632\u0627\u062a \u0627\u0644\u062a\u0636\u0627\u0645\u0646 \u0627\u0644\u062f\u0648\u0644\u064a
-label.menu.featured.templates=\u0642\u0648\u0627\u0644\u0628 \u0645\u0645\u064a\u0632\u0629
-label.menu.global.settings=\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0639\u0645\u0648\u0645\u064a\u0629
-label.menu.instances=\u0627\u0644\u062d\u0627\u0644\u0627\u062a
-label.metrics.allocated=\u062a\u062e\u0635\u064a\u0635
-label.metrics.disk.allocated=\u062a\u062e\u0635\u064a\u0635
-label.metrics.scope=\u0627\u0644\u0645\u062c\u0627\u0644
-label.migrate.instance.to.host=\u0646\u0642\u0644 \u0627\u0644\u0642\u0627\u0644\u0628 \u0625\u0644\u0649 \u0645\u0636\u064a\u0641 \u0622\u062e\u0631
-label.migrate.instance.to.ps=\u0646\u0642\u0644 \u0627\u0644\u0642\u0627\u0644\u0628 \u0625\u0644\u0649 \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629
-label.migrate.to.host=\u0627\u0644\u062a\u062d\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u0636\u064a\u0641
-label.migrate.to.storage=\u0627\u0644\u062a\u062d\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u062a\u062e\u0632\u064a\u0646
-label.move.down.row=\u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0625\u0644\u0649 \u0627\u0644\u0623\u0633\u0641\u0644 \u0628\u0635\u0641 \u0648\u0627\u062d\u062f
-label.move.to.bottom=\u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0625\u0644\u0649 \u0627\u0644\u0623\u0633\u0641\u0644
-label.move.to.top=\u0627\u0646\u062a\u0642\u0627\u0644 \u0625\u0644\u0649 \u0623\u0639\u0644\u0649
-label.move.up.row=\u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0625\u0644\u0649 \u0627\u0644\u0623\u0639\u0644\u0649 \u0628\u0635\u0641 \u0648\u0627\u062d\u062f
-label.my.network=\u0634\u0628\u0643\u062a\u064a
-label.my.templates=\u0642\u0648\u0627\u0644\u0628\u064a
-label.network.ACLs=\u0634\u0628\u0643\u0629 ACLs
-label.network.ACL.total=\u0625\u062c\u0645\u0627\u0644 \u0634\u0628\u0643\u0629 ACL
-label.network.ACL=\u0634\u0628\u0643\u0629 ACL
-label.networks=\u0627\u0644\u0634\u0628\u0643\u0627\u062a
-label.new.project=\u0645\u0634\u0631\u0648\u0639 \u062c\u062f\u064a\u062f
-label.new=\u062c\u062f\u064a\u062f
-label.no.data=\u0644\u0627 \u064a\u0648\u062c\u062f \u0628\u064a\u0627\u0646\u0627\u062a \u0644\u0644\u0639\u0631\u0636
-label.no.thanks=\u0644\u0627\u061b \u0634\u0643\u0631\u0627\u064b
-label.notifications=\u0627\u0644\u062a\u0646\u0628\u064a\u0647\u0627\u062a
-label.ok=\u0645\u0648\u0627\u0641\u0642
-label.order=\u062a\u0631\u062a\u064a\u0628
-label.previous=\u0627\u0644\u0633\u0627\u0628\u0642
-label.private.Gateway=\u0645\u0646\u0641\u0630\\Gateway \u062e\u0627\u0635
-label.project.invite=\u062f\u0639\u0648\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.project.name=\u0627\u0633\u0645 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.projects=\u0627\u0644\u0645\u0634\u0627\u0631\u064a\u0639
-label.project=\u0645\u0634\u0631\u0648\u0639
-label.project.view=\u0639\u0631\u0636 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.quickview=\u0646\u0638\u0631\u0629 \u0633\u0631\u064a\u0639\u0629
-label.quota.fullsummary=\u062c\u0645\u064a\u0639 \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a
-label.reboot=\u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644
-label.remind.later=\u0630\u0643\u0631\u0646\u064a \u0644\u0627\u062d\u0642\u0627\u064b
-label.remove.ACL=\u0625\u0632\u0627\u0644\u0629 ACL
-label.remove.static.route=\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u062a\u0648\u062c\u064a\u0647 \u062b\u0627\u0628\u062a
-label.remove.tier=\u0625\u0636\u0627\u0641\u0629 \u0637\u0628\u0642\u0629
-label.remove.vpc=\u0625\u0632\u0627\u0644\u0629 VPC
-label.reset.VPN.connection=\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u0627\u062a\u0635\u0627\u0644 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629
-label.restart.network=\u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0634\u0628\u0643\u0629
-label.restart.required=\u0645\u0637\u0644\u0648\u0628 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644
-label.restart.vpc=\u0625\u0639\u062f\u0627\u0629 \u062a\u0634\u063a\u064a\u0644 VPC
-label.restore=\u0625\u0633\u062a\u0639\u0627\u062f\u0629
-label.review=\u0645\u0631\u0627\u062c\u0639\u0629
-label.revoke.project.invite=\u0625\u0644\u063a\u0627\u0621 \u0627\u0644\u062f\u0639\u0648\u0629
-label.s3.access_key=\u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0648\u0635\u0648\u0644
-label.s3.bucket=\u062f\u0644\u0648
-label.s3.connection_timeout=\u0645\u0647\u0644\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644
-label.s3.endpoint=\u0646\u0642\u0637\u0629 \u0627\u0644\u0646\u0647\u0627\u064a\u0629
-label.s3.max_error_retry=\u0623\u0642\u0635\u0649 \u062e\u0637\u0623 \u0641\u064a \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629
-label.s3.secret_key=\u0627\u0644\u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0633\u0631\u064a
-label.s3.socket_timeout=\u0645\u0647\u0644\u0629 \u0627\u0644\u0645\u0642\u0628\u0633
-label.s3.use_https=\u0627\u0633\u062a\u062e\u062f\u0645 HTTPS
-label.scope=\u0627\u0644\u0645\u062c\u0627\u0644
-label.search=\u0628\u062d\u062b
-label.secret.key=\u0627\u0644\u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0633\u0631\u064a
-label.select.a.template=\u0627\u062e\u062a\u0631 \u0642\u0627\u0644\u0628
-label.select.project=\u062d\u062f\u062f \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.select.tier=\u062d\u062f\u062f \u0637\u0628\u0642\u0629
-label.select-view=\u062d\u062f\u062f \u0637\u0631\u064a\u0642\u0629 \u0627\u0644\u0639\u0631\u0636
-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.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
-label.super.cidr.for.guest.networks=CIDR \u0645\u0645\u062a\u0627\u0632 \u0644\u0634\u0628\u0643\u0627\u062a \u0627\u0644\u0636\u064a\u0641.
-label.supported.services=\t\u0627\u0644\u062e\u062f\u0645\u0627\u062a \u0627\u0644\u0645\u062f\u0639\u0648\u0645\u0629
-label.suspend.project=\u0625\u064a\u0642\u0627\u0641 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-label.tier.details=\u062a\u0641\u0627\u0635\u064a\u0644 \u0627\u0644\u0637\u0628\u0642\u0629
-label.tier=\u0637\u0628\u0642\u0629
-label.upload=\u0631\u0641\u0639
-label.view.all=\u0639\u0631\u0636 \u0627\u0644\u0643\u0644
-label.viewing=\u0639\u0631\u0636
-label.view=\u0639\u0631\u0636
-label.vm.destroy=\u0647\u062f\u0645
-label.vm.reboot=\u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644
-label.VMs.in.tier=\u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0641\u064a \u0637\u0628\u0642\u0629
-label.vm.stop=\u062a\u0648\u0642\u0641
-label.volume.limits=\u062d\u062f\u0648\u062f \u0627\u0644\u0645\u0646\u0637\u0642\u0629
-label.vpc.id=\u0647\u0648\u064a\u0629 \u062e\u0627\u0635\u0629 \u0628\u0633\u062d\u0627\u0628\u0629 \u0625\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u062e\u0627\u0635\u0629
-label.VPC.router.details=\u062a\u0641\u0627\u0635\u064a\u0644 \u062c\u0647\u0627\u0632 \u0627\u0644\u062a\u0648\u062c\u064a\u0647 VPC
-label.vpc=\u0633\u062d\u0627\u0628\u0629 \u0625\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u062e\u0627\u0635\u0629 VPC
-label.VPN.connection=\u0625\u062a\u0635\u0627\u0644 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629
-label.vpn.customer.gateway=\u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0644\u0644\u0639\u0645\u064a\u0644
-label.VPN.customer.gateway=\u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0644\u0644\u0639\u0645\u064a\u0644
-label.VPN.gateway=\u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629
-label.waiting=\u0642\u064a\u062f \u0627\u0644\u0625\u0646\u062a\u0638\u0627\u0631
-label.warn=\u062a\u062d\u0630\u064a\u0631
-label.wednesday=\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621
-label.weekly=\u0625\u0633\u0628\u0648\u0639\u064a
-label.welcome.cloud.console=\u0645\u0631\u062d\u0628\u0627 \u0628\u0643\u0645 \u0641\u064a \u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u062d\u0643\u0645 \u0627\u0644\u0625\u0631\u0627\u062f\u064a\u0629
-label.welcome=\u0645\u0631\u062d\u0628\u0627
-label.yes=\u0646\u0639\u0645
-label.zone.details=\u062a\u0641\u0627\u0635\u064a\u0644 \u0627\u0644\u0645\u0646\u0637\u0642\u0629
-label.zone.step.1.title=\u0627\u0644\u062e\u0637\u0648\u0629 1 \\\: \u0639\u0644\u0649 .<\u0642\u0648\u064a> \u0627\u062e\u062a\u0631 \u0634\u0628\u0643\u0629 </ \u0642\u0648\u064a>
-label.zone.step.2.title=\u0627\u0644\u062e\u0637\u0648\u0629 2 \\\: <\u0642\u0648\u064a> \u0625\u0636\u0627\u0641\u0629 \u0645\u0646\u0637\u0642\u0629 </ \u0642\u0648\u064a>
-label.zone.step.3.title=\u0627\u0644\u062e\u0637\u0648\u0629 3 \\\: \u0639\u0644\u0649 <\u0642\u0648\u064a> \u0625\u0636\u0627\u0641\u0629 \u0628\u0648\u062f </ \u0642\u0648\u064a>
-label.zone.step.4.title=\u0627\u0644\u062e\u0637\u0648\u0629 4 \\\: <\u0642\u0648\u064a> \u0625\u0636\u0627\u0641\u0629 \u0645\u062c\u0645\u0648\u0639\u0629 IP <\\\u0642\u0648\u064a>
-label.zone.wide=\u0645\u0646\u0637\u0642\u0629 \u0648\u0627\u0633\u0639\u0629
-label.zoneWizard.trafficType.guest=\u0627\u0644\u0636\u064a\u0641 \\\: \u0627\u0644\u062d\u0631\u0643\u0629 \u0628\u064a\u0646 \u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0646\u0647\u0627\u0626\u064a.
-label.zoneWizard.trafficType.management=\u0625\u062f\u0627\u0631\u0629\\\: \u0627\u0644\u062d\u0631\u0643\u0629 \u0628\u064a\u0646 \u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0627\u0644\u062f\u0627\u062e\u0644\u064a\u0629 \u0644 \u0643\u0644\u0627\u0648\u062f \u0633\u062a\u0627\u0643 \u060c \u0645\u062a\u0636\u0645\u0646\u0629 \u0623\u064a \u062c\u0632\u0621 \u064a\u062a\u0635\u0644 \u0628\u062e\u0627\u062f\u0645\\\u0633\u064a\u0631\u0641\u0631 \u0627\u0644\u0625\u062f\u0627\u0631\u0629 \u060c \u0645\u062b\u0644 \u0627\u0644\u0645\u0636\u064a\u0641\u0627\u062a \u0648 \u0623\u0646\u0638\u0645\u0629 \u0643\u0644\u0627\u0648\u062f \u0633\u062a\u0627\u0643 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a\u0629.
-label.zoneWizard.trafficType.public=\u0627\u0644\u0639\u0627\u0645\u0629 \\\: \u0627\u0644\u0645\u0631\u0648\u0631 \u0628\u064a\u0646 \u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a \u0648\u0627\u0644\u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0638\u0627\u0647\u0631\u064a\u0629 \u0641\u064a \u0627\u0644\u0633\u062d\u0627\u0628\u0629.
-label.zoneWizard.trafficType.storage=\u0627\u0644\u062a\u062e\u0632\u064a\u0646 \\\: \u0627\u0644\u0645\u0631\u0648\u0631 \u0628\u064a\u0646 \u0645\u0644\u0642\u0645\u0627\u062a \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0627\u0628\u062a\u062f\u0627\u0626\u064a\u0629 \u0648\u0627\u0644\u062b\u0627\u0646\u0648\u064a\u0629\u060c \u0645\u062b\u0644 \u0642\u0648\u0627\u0644\u0628 VM \u0648\u0627\u0644\u0644\u0642\u0637\u0627\u062a
-message.acquire.new.ip.vpc=\u064a\u0631\u062c\u0649 \u0627\u0644\u062a\u0623\u0643\u064a\u062f \u0628\u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0641\u064a \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0628\u0648\u0631\u062a\u0648\u0643\u0648\u0644 \u0625\u0646\u062a\u0631\u0646\u062a \u062c\u062f\u064a\u062f \u0644\u0647\u0630\u0627 \u0627\u0644\u062d\u0627\u0633\u0648\u0628 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a.
-message.action.delete.system.service.offering=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u0623\u0643\u064a\u062f \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u062d\u0630\u0641 \u062e\u062f\u0645\u0629 \u0627\u0644\u0646\u0638\u0627\u0645 \u0627\u0644\u0645\u0642\u062f\u0645\u0629.
-message.action.disable.physical.network=\u0641\u0636\u0644\u0627 \u060c \u0623\u0643\u0651\u062f \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u062a\u0639\u0637\u064a\u0644 \u0647\u0630\u0647 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0641\u064a\u0632\u064a\u0627\u0626\u064a\u0629
-message.action.enable.physical.network=\u0641\u0636\u0644\u0627 \u060c \u0623\u0643\u0651\u062f \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u062a\u0645\u0643\u064a\u0646 \u0647\u0630\u0647 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0641\u064a\u0632\u064a\u0627\u0626\u064a\u0629
-message.activate.project=\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u062a\u0641\u0639\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u061f
-message.add.domain=\u064a\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0645\u062c\u0627\u0644 \u0627\u0644\u0641\u0631\u0639\u064a \u0627\u0644\u0630\u064a \u062a\u0631\u064a\u062f \u0625\u0646\u0634\u0627\u0621 \u062a\u062d\u062a \u0647\u0630\u0627 \u0627\u0644\u0646\u0637\u0627\u0642
-message.add.new.gateway.to.vpc=\u0641\u0636\u0644\u0627 \u062d\u062f\u062f \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0644\u0625\u0636\u0627\u0641\u0629 \u0628\u0648\u0627\u0628\u0629 gateway \u0644\u0647\u0630\u0647 \u0627\u0644\u0633\u062d\u0627\u0628\u0629 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 VPC
-message.add.system.service.offering=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u0639\u0628\u0626\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0644\u0625\u0636\u0627\u0641\u0629 \u0646\u0638\u0627\u0645 \u062c\u062f\u064a\u062f \u0644\u0637\u0631\u062d
-message.add.VPN.gateway=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u0625\u0636\u0627\u0641\u0629 \u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 VPN
-message.after.enable.s3=\u062a\u0645 \u0625\u0639\u062f\u0627\u062f \u0627\u0644\u062a\u062e\u0632\u064a\u0646 S3 \u0644\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u062b\u0627\u0646\u0648\u064a\u0629. \u062a\u0646\u0648\u064a\u0647 \: \u0639\u0646\u062f \u0645\u063a\u0627\u062f\u0631\u062a\u0643 \u0644\u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629 \u0644\u0646 \u064a\u0643\u0648\u0646 \u0628\u0625\u0645\u0643\u0627\u0646\u0643 \u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637 S3 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.
-message.confirm.join.project=\u0646\u0631\u062c\u0648 \u062a\u0623\u0643\u064a\u062f \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-message.decline.invitation=\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u0631\u0641\u0636 \u0647\u0630\u0647 \u0627\u0644\u062f\u0639\u0648\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639\u061f
-message.delete.gateway=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u062d\u0630\u0641 \u0627\u0644\u0628\u0648\u0627\u0628\u0629
-message.delete.project=\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u062d\u0630\u0641 \u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u061f
-message.delete.user=\u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0623\u0643\u064a\u062f \u0628\u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0628\u062d\u0630\u0641 \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
-message.delete.VPN.connection=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u062d\u0630\u0641 \u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 VPN
-message.delete.VPN.gateway=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u062d\u0630\u0641 \u0628\u0648\u0627\u0628\u0629 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629
-message.detach.disk=\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u0641\u0635\u0644 \u0647\u0630\u0627 \u0627\u0644\u0642\u0631\u0635\u061f
-message.disable.user=\u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0623\u0643\u064a\u062f \u0628\u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0628\u062a\u0639\u0637\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
-message.enable.account=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u0623\u0643\u064a\u062f \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u062a\u0645\u0643\u064a\u0646 \u0647\u0630\u0627 \u0627\u0644\u062d\u0633\u0627\u0628.
-message.enable.user=\u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0623\u0643\u064a\u062f \u0628\u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0628\u062a\u0641\u0639\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
-message.generate.keys=\u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0623\u0643\u064a\u062f \u0628\u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0641\u0627\u062a\u064a\u062d \u062c\u062f\u064a\u062f\u0629 \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645
-message.instanceWizard.noTemplates=\u0644\u064a\u0633 \u0644\u062f\u064a\u0643 \u0623\u064a \u0642\u0648\u0627\u0644\u0628 \u0645\u062a\u0627\u062d\u0629\u061b \u064a\u0631\u062c\u0649 \u0625\u0636\u0627\u0641\u0629 \u0642\u0627\u0644\u0628 \u0645\u062a\u0648\u0627\u0641\u0642\u060c \u0648\u0625\u0639\u0627\u062f\u0629 \u0625\u0637\u0644\u0627\u0642 \u0627\u0644\u0645\u0639\u0627\u0644\u062c .
-message.join.project=\u0644\u0642\u062f \u0627\u0646\u0636\u0645\u0645\u062a \u0625\u0644\u0649 \u0627\u0644\u0645\u0634\u0631\u0648\u0639. \u064a\u0631\u062c\u0649 \u0627\u0644\u062a\u0628\u062f\u064a\u0644 \u0625\u0644\u0649 \u0637\u0631\u064a\u0642\u0629 \u0639\u0631\u0636 \u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u0644\u0631\u0624\u064a\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639
-message.migrate.instance.to.host=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u0646\u0642\u0644 \u0627\u0644\u0642\u0627\u0644\u0628 \u0625\u0644\u0649 \u0645\u0636\u064a\u0641 \u0622\u062e\u0631.
-message.migrate.instance.to.ps=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u0646\u0642\u0644 \u0627\u0644\u0642\u0627\u0644\u0628 \u0625\u0644\u0649 \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629.
-message.no.projects.adminOnly=\u0644\u064a\u0633 \u0644\u062f\u064a\u0643 \u0623\u064a \u0645\u0634\u0627\u0631\u064a\u0639. <br/> \u0627\u0644\u0631\u062c\u0627\u0621 \u0637\u0644\u0628 \u0645\u0646 \u0627\u0644\u0645\u0633\u0624\u0648\u0644 \u0625\u0646\u0634\u0627\u0621 \u0645\u0634\u0631\u0648\u0639 \u062c\u062f\u064a\u062f.
-message.no.projects=\u0644\u064a\u0633 \u0644\u062f\u064a\u0643 \u0623\u064a \u0645\u0634\u0627\u0631\u064a\u0639. <br/> \u064a\u0631\u062c\u0649 \u0625\u0646\u0634\u0627\u0621 \u0645\u0634\u0631\u0648\u0639 \u062c\u062f\u064a\u062f \u0645\u0646 \u0642\u0633\u0645 \u0627\u0644\u0645\u0634\u0627\u0631\u064a\u0639.
-message.pending.projects.1=\u0644\u062f\u064a\u0643 \u062f\u0639\u0648\u0627\u062a \u0645\u0634\u0631\u0648\u0639 \u0645\u0639\u0644\u0642\u0629/\:
-message.pending.projects.2=\u0644\u0639\u0631\u0636\u060c \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649 \u0642\u0633\u0645 \u0627\u0644\u0645\u0634\u0627\u0631\u064a\u0639\u060c \u062b\u0645 \u062d\u062f\u062f \u062f\u0639\u0648\u0627\u062a \u0645\u0646 \u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u0646\u0633\u062f\u0644\u0629.
-message.please.select.networks=\u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u0634\u0628\u0643\u0627\u062a \u0644\u062c\u0647\u0627\u0632\u0643 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a
-message.project.invite.sent=\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u062f\u0639\u0648\u0629 ; \u0633\u064a\u062a\u0645 \u0625\u0636\u0627\u0641\u062a\u0647\u0645 \u0625\u0644\u0649 \u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u0628\u0645\u062c\u0631\u062f \u0642\u0628\u0648\u0644 \u0627\u0644\u062f\u0639\u0648\u0629
-message.remove.vpc=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u062d\u0630\u0641 \u0627\u0644\u0640VPC
-message.reset.password.warning.notPasswordEnabled=\u0627\u0644\u0642\u0627\u0644\u0628 \u0644\u0647\u0630\u0627 \u0627\u0644\u0646\u0645\u0648\u0630\u062c \u062a\u0645 \u0627\u0646\u0634\u0627\u0626\u0647 \u0645\u0646 \u062f\u0648\u0646 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u0645\u0645\u0643\u0646\u0629
-message.reset.password.warning.notStopped=\u064a\u062c\u0628 \u0625\u064a\u0642\u0627\u0641 \u0627\u0644\u0646\u0645\u0648\u0630\u062c \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0642\u0628\u0644 \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0627\u0644\u062d\u0627\u0644\u064a\u0629
-message.reset.VPN.connection=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u0625\u0639\u0627\u062f\u0629-\u0636\u0628\u0637 \u0625\u062a\u0635\u0627\u0644 \u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 VPN
-message.restart.vpc=\u064a\u0631\u062c\u0649 \u062a\u0623\u0643\u064a\u062f \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0640VPN
-message.select.template=\u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u062e\u062a\u064a\u0627\u0631 \u0642\u0627\u0644\u0628 \u0644\u0645\u062b\u0627\u0644\u0643 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a \u0627\u0644\u062c\u062f\u064a\u062f
-message.suspend.project=\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u0625\u064a\u0642\u0627\u0641 \u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u061f
-message.update.resource.count=\u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0623\u0643\u064a\u062f \u0628\u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0628\u062a\u062d\u062f\u064a\u062b \u0645\u0635\u0627\u062f\u0631 \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a \u0644\u0647\u0630\u0627 \u0627\u0644\u062d\u0633\u0627\u0628
-message.vm.review.launch=\u064a\u0631\u062c\u0649 \u0645\u0631\u0627\u062c\u0639\u0629 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0648\u062a\u0623\u0643\u062f \u0623\u0646 \u0645\u062b\u0627\u0644\u0643 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a \u0635\u062d\u064a\u062d \u0642\u0628\u0644 \u0627\u0644\u0625\u0646\u0637\u0644\u0627\u0642
-notification.reboot.instance=\u0625\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0646\u0645\u0648\u0630\u062c
-notification.start.instance=\u0628\u062f\u0621 \u0627\u0644\u0646\u0645\u0648\u0630\u062c
-notification.stop.instance=\u0625\u064a\u0642\u0627\u0641 \u0627\u0644\u0646\u0645\u0648\u0630\u062c
-state.Accepted=\u062a\u0645 \u0627\u0644\u0642\u0628\u0648\u0644
-state.Active=\u0646\u0634\u0637
-state.Allocated=\u062a\u062e\u0635\u064a\u0635
-state.Completed=\u062a\u0645 \u0627\u0644\u0627\u0643\u0645\u0627\u0644
-state.Creating=\u0625\u0646\u0634\u0627\u0621
-state.Declined=\u062a\u0645 \u0627\u0644\u0631\u0641\u0636
-state.Destroyed=\u062f\u0645\u0631
-state.Enabled=\u062a\u0645\u0643\u064a\u0646
-state.Error=\u062e\u0637\u0623
-state.Expunging=\u0645\u062d\u0648
-state.Pending=\u0641\u064a \u0627\u0644\u0627\u0646\u062a\u0638\u0627\u0631
-state.Ready=\u062c\u0627\u0647\u0632
-state.Stopped=\u062a\u0648\u0642\u0641
-state.Suspended=\u062a\u0645 \u0627\u0644\u0625\u064a\u0642\u0627\u0641
-ui.listView.filters.all=\u0627\u0644\u0643\u0644
diff --git a/client/WEB-INF/classes/resources/messages_ca.properties b/client/WEB-INF/classes/resources/messages_ca.properties
deleted file mode 100644
index 8b17a56..0000000
--- a/client/WEB-INF/classes/resources/messages_ca.properties
+++ /dev/null
@@ -1,298 +0,0 @@
-# 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.
-
-confirm.enable.swift=Si us plau ompliu la seg\u00fcent informaci\u00f3 per habilitar el suport per a Swift
-error.installWizard.message=Quelcom ha fallat, vost\u00e8 pot tornar enrere i corregir els errors detalls suggerime
-error.password.not.match=Els camps de contrasenya no coincideixen
-inline=En l\u00ednia
-label.accept.project.invitation=Accpetar invitaci\u00f3 al projecte
-label.action.edit.host=Editar Host
-label.action.migrate.router=Migrar router
-label.action.migrate.router.processing=Migrant router...
-label.action.migrate.systemvm=Migrar MV de Sistema
-label.action.migrate.systemvm.processing=Migrant MV de Sistema...
-label.activate.project=Activar projecte
-label.add.accounts=Afegir comptes
-label.add.accounts.to=Afegir comptes a
-label.add.account.to.project=Afegir compte al projecte
-label.add.by=Afegir per
-label.add.egress.rule=Afegir regla de sortida
-label.add.new.F5=Afegir nou F5
-label.add.new.NetScaler=Afegir un nou NetScaler
-label.add.new.SRX=Afegir nou SRX
-label.add.physical.network=Afegir xarxa f\u00edsica
-label.add.rule=Afegir regla
-label.add.static.nat.rule=Afegir regla de NAT est\u00e0tic
-label.add.to.group=Afegir a grup
-label.add.vm=Afegir MV
-label.add.vms=Afegir MVs
-label.add.vms.to.lb=Afegir MV(s) a la regla de balanceig de c\u00e0rrega
-label.add.vpn.user=Afegir usuari VPN
-label.agree=D\\'acord
-label.apply=Aplicar
-label.bandwidth=Ample de banda
-label.broadcast.domain.range=Rang del domini de broadcast
-label.capacity=Capacitat
-label.change.service.offering=Canvia oferta de servei
-label.change.value=Canviar valor
-label.clear.list=Esborra llista
-label.community=Comunitat
-label.compute.and.storage=Computaci\u00f3 i Emmagatzematge
-label.compute=Computaci\u00f3
-label.configuration=Configuraci\u00f3
-label.configure=Configurar
-label.confirm.password=Confirmar contrasenya
-label.congratulations=Enorabona\!
-label.continue.basic.install=Continueu amb la instal\u00b7laci\u00f3 b\u00e0sica
-label.continue=Continuar
-label.corrections.saved=Correccions guardades
-label.create.project=Crear projecte
-label.decline.invitation=Declinar invitaci\u00f3
-label.dedicated=Dedicat
-label.default=Per defecte
-label.delete.F5=Esborrar F5
-label.delete.NetScaler=Esborrar NetScaler
-label.delete.project=Esborrar projecte
-label.delete.SRX=Esborar SRX
-label.delete.vpn.user=Esborrar usuari VPN
-label.destination.physical.network.id=ID de xarxa f\u00edsica de dest\u00ed
-label.destination.zone=Zona de dest\u00ed
-label.destroy.router=Destruir router
-label.dhcp=DHCP
-label.disabled=Deshabilitat
-label.disable.provider=Deshabilitar prove\u00efdor
-label.disable.vpn=Deshabilitar VPN
-label.drag.new.position=Arrosegar a la nova posici\u00f3
-label.edit.project.details=Editar detalls del projecte
-label.egress.rule=Regla de sortida
-label.elastic=El\u00e0stic
-label.enable.provider=Habilitar prove\u00efdor
-label.enable.swift=Habilitar Swift
-label.enable.vpn=Habilitar VPN
-label.extractable=Es pot extreure
-label.f5=F5
-label.full.path=Cam\u00ed sencer
-label.guest.end.ip=Fi d\\'IP per a MV
-label.guest=MV
-label.guest.start.ip=Inici d\\'IP per a MV
-label.guest.traffic=Tr\u00e0fic de MV
-label.hints=Pistes
-label.installWizard.addClusterIntro.subtitle=Que \u00e9s un cluster?
-label.installWizard.addClusterIntro.title=Anem a afegir un cluster
-label.installWizard.addHostIntro.subtitle=Qu\u00e8 \u00e9s un amfitri\u00f3 "host"?
-label.installWizard.addHostIntro.title=Anem a afegir un amfitri\u00f3
-label.installWizard.addPodIntro.subtitle=Que \u00e9s un pod?
-label.installWizard.addPodIntro.title=Anem a afegir un pod
-label.installWizard.addPrimaryStorageIntro.subtitle=Qu\u00e8 \u00e9s l\\'emmagatzematge primari?
-label.installWizard.addPrimaryStorageIntro.title=Anem a afegir emmagatzematge primari
-label.installWizard.addSecondaryStorageIntro.subtitle=Qu\u00e8 \u00e9s el emmagatzematge secundari?
-label.installWizard.addSecondaryStorageIntro.title=Anem a afegir emmagatzematge secundari
-label.installWizard.addZoneIntro.subtitle=Que \u00e9s una zona?
-label.installWizard.addZoneIntro.title=Anem a afegir una zona
-label.installWizard.addZone.title=Afegir zona
-label.installWizard.click.launch=Feu clic al bot\u00f3 d\\'inici.
-label.installWizard.subtitle=Auqesta guia us ajudar\u00e0 a configurar la vostra instal\u00b7laci\u00f3 de CloudStack&\#8482
-label.installWizard.title=Hola i benvigut a CloudStack&\#8482
-label.introduction.to.cloudstack=Introducci\u00f3 a la CloudStack&\#8482
-label.invitations=Invitacions
-label.invite=Convidar
-label.invited.accounts=Comptes convidades
-label.invite.to=Convidar a
-label.ip.ranges=Rangs d\\'IPs
-label.item.listing=Llista d\\'articles
-label.keyboard.type=Tipus de teclat
-label.key=Clau
-label.launch=Iniciar
-label.launch.vm=Arrencar MV
-label.load.balancing=Balanceig de c\u00e0rrega
-label.load.balancing.policies=Pol\u00b7l\u00edtiques de balanceig de c\u00e0rrega
-label.local.storage=Emmagatzemament local
-label.make.project.owner=Feu la compta propiet\u00e0ria del projecte
-label.management=Administraci\u00f3
-label.manage.resources=Administrar Recursos
-label.max.public.ips=Max. IP p\u00fabliques
-label.max.snapshots=Max. instant\u00e0nies
-label.max.templates=Max. plantilles
-label.max.vms=Max. MV d\\'usuari
-label.max.volumes=Max. Volums
-label.may.continue=Ara pot continuar
-label.menu.configuration=Configuraci\u00f3
-label.migrate.instance.to.host=Migrar inst\u00e0ncia a un altre amfitri\u00f3 "Host"
-label.migrate.instance.to.ps=Migrar inst\u00e0ncia a un altra emmagatzematge primari
-label.migrate.router.to=Migrar router a
-label.migrate.systemvm.to=Migrar MV de sistema a\:
-label.mode=Mode
-label.move.down.row=Moure una fila cap a baix
-label.move.to.top=Moure a dalt
-label.move.up.row=Moure una fla cap a dalt
-label.my.network=La meva xarxa
-label.my.templates=Les meves plantilles
-label.netScaler=NetScaler
-label.networking.and.security=Xarxa i seguretat
-label.network.rate=Velocitat de xarxa
-label.networks=Xarxes
-label.new=Nou
-label.new.project=Nou projecte
-label.new.vm=Nova MV
-label.nic.adapter.type=Tipus de tarja de xarxa
-label.no.data=No hi ha dades
-label.no.thanks=No gr\u00e0cies
-label.number.of.clusters=Nombre de cl\u00fasters
-label.number.of.hosts=Nombre de Hosts
-label.number.of.pods=Nombre de racks
-label.number.of.zones=Nombre de zones
-label.ocfs2=OCFS2
-label.order=Ordre
-label.physical.network.ID=ID de xarxa f\u00edsica
-label.please.specify.netscaler.info=Si us plau doneu informaci\u00f3 del NetScaler
-label.pod.name=Nom de rack
-label.pods=Racks
-label.port.forwarding.policies=Pol\u00b7l\u00edtiques de reenviament de ports
-label.previous=Anterior
-label.private.network=Xarxa privada
-label.project.dashboard=Quadre de comandament del projecte
-label.project.id=ID de projecte
-label.project.invite=Convidar al projecte
-label.project.name=Nom del projecte
-label.project=Projecte
-label.projects=Projectes
-label.providers=Prove\u00efdors
-label.public.network=Xarxa p\u00fablica
-label.Pxe.server.type=Tipus de servidor PXE
-label.redundant.state=Estat redundant
-label.remind.later=Recordeu-m\\'ho despr\u00e9s
-label.remove.egress.rule=Esborrar regla de sortida
-label.remove.ingress.rule=Esborrar regla d\\'entrada
-label.remove.pf=Esborrar regla de reenviament de port
-label.remove.rule=Esborrar regla
-label.remove.static.nat.rule=Esborrar regla de NAT est\u00e0tic
-label.remove.vm.from.lb=Treure VM de la regla de balanceig de c\u00e0rrega
-label.removing=Esborrant
-label.reserved.system.gateway=Pasarel\u00b7la reservada del sistema
-label.reserved.system.netmask=M\u00e0scara reservada del sistema
-label.revoke.project.invite=Revocar invitaci\u00f3
-label.root.disk.controller=Controlador de disc arrel
-label.save.and.continue=Desa i continua
-label.select.a.template=Sel\u00b7leccioni una plantilla
-label.select.a.zone=Sel\u00b7leccioni una zona
-label.select.iso.or.template=Sel\u00b7leccioni ISO o plantilla
-label.select.project=Sel\u00b7leccionar projecte
-label.select-view=Sel\u00b7lecioni vista
-label.setup=Configuraci\u00f3
-label.shutdown.provider=Apagar prove\u00efdor
-label.skip.guide=Si heu utilitzat CloudStack abans, ometi aquesta guia
-label.srx=SRX
-label.static.nat.enabled=NAT est\u00e0tic habilitat
-label.stickiness=Tend\u00e8ncia
-label.sticky.mode=Mode
-label.storage.traffic=Tr\u00e0fic d\\'emmagatzemament
-label.subdomain.access=Acc\u00e9s de subdomini
-label.suspend.project=Suspendre projecte
-label.task.completed=Tasca complerta
-label.timeout=Timeout
-label.total.cpu=Total de CPU
-label.total.CPU=Total de CPU
-label.total.hosts=Total de hosts
-label.total.memory=Total de RAM
-label.total.storage=Total d\\'emmagatzemament
-label.traffic.types=Tipus de tr\u00e0fics
-label.update.project.resources=Actualitzar recursos del projecte
-label.view.all=Veure tots
-label.view.console=Veure consola
-label.viewing=Veient
-label.view.more=Veure m\u00e9s
-label.view=Veure
-label.virtual.router=Router virtual
-label.what.is.cloudstack=Que \u00e9s CloudStack&\#8482?
-label.zone.details=Detalls de la zona
-label.zones=Zones
-message.acquire.new.ip=Si us plau confirmeu que voleu adquirir una nova IP per aquesta xarxa.
-message.action.download.iso=Si us plau confirmeu que voleu descarregar aquesta ISO.
-message.action.download.template=Si us plau confirmeu que voleu descarregar aquesta plantilla.
-message.activate.project=Esteu segurs d\\'activar aquest projecte?
-message.add.domain=Si us plau especifiqueu el sub-domini que voleu crear sota aquest domini
-message.add.guest.network=Si us plau confirmeu que voleu afegir una xarxa per a MVs
-message.after.enable.swift=Swift configurat. Nota\: Quan abandoneu aquesta p\u00e0gina, no sereu capa\u00e7os de reconfigurar Swift de nou.
-message.alert.state.detected=Estat d\\'alerta detectat
-message.change.password=Si us plau, canvieu la contrasenya.
-message.confirm.delete.F5=Si us plau confirmeu que voleu esborrar l\\'F5
-message.confirm.delete.NetScaler=Si us plau confirmeu que voleu esborrar el NetScaler
-message.confirm.delete.SRX=Si us plau confirmeu que voleu esborrar l\\'SRX
-message.confirm.destroy.router=Si us plau confirmeu que voleu destruir aquest router
-message.confirm.disable.provider=Si us plau confirmeu que voleu deshabilitar aquest prove\u00efdor
-message.confirm.enable.provider=Si us plau confirmeu que voleu habilitar aquest prove\u00efdor
-message.confirm.join.project=Si us plau confirmeu que voleu unir-vos al projecte.
-message.confirm.shutdown.provider=Si us plau confirmeu que voleu apagar aquest prove\u00efdor
-message.decline.invitation=Esteu segurs de declinar aquesta invitaci\u00f3 per al projecte?
-message.delete.project=Esteu segurs d\\'eliminar el projecte?
-message.delete.user=Si us plau confirmeu que voleu esborrar aquest usuari.
-message.disable.user=Si us plao confirmeu que voleu deshabilitar aquest usuari.
-message.disable.vpn=\u00bfEsteu segurs de deshabilitar la VPN?
-message.edit.account=Editar ("-1" indica que no hi ha limit en la quantitat de recursos a crear)
-message.enable.user=Si us plau confirmeu que voleu habilitar aquest usuari.
-message.enable.vpn=Si us plau confirmeu que voleu habilitar l\\'acc\u00e9s VPN per aquesta adre\u00e7a IP
-message.generate.keys=Si us plau confirmeu que voleu generar noves claus per aquest usuari.
-message.installWizard.click.retry=Feu clic al bot\u00f3 per tornar a intentar l\\'inici.
-message.installWizard.copy.whatIsSecondaryStorage=L\\'emmagatzemament secundari s\\'associa amb una zona, i emmagatzema el seg\u00fcent\:<ul><li>Plantilles - Imatges de SO que es poden fer servir per arrencar MVs i poden incloure altra informaci\u00f3 de configuraci\u00f3, com ara aplicacions instal\u00b7lades</li><li>Imatges ISO - Imatges de SO que poden ser arrencables o no</li><li>Snapshots de disc - copies guardades de dades de MV que poden usar-se per recuperaci\u00f3 de dades o crear altres plantilles</ul>
-message.installWizard.tooltip.addCluster.name=Un nom per al cluster. Pot ser un text de la seva elecci\u00f3 i no utilitzat per CloudStack.
-message.installWizard.tooltip.addHost.hostname=El nom DNS o adre\u00e7a de l\\'amfitri\u00f3 "host".
-message.installWizard.tooltip.addHost.password=Aquesta \u00e9s la contrasenya per a l\\'usuari del d\\'amunt (des de la instal\u00b7laci\u00f3 de XenServer).
-message.installWizard.tooltip.addHost.username=Normalment root
-message.installWizard.tooltip.addPod.name=Un nom per al pod
-message.installWizard.tooltip.addPod.reservedSystemEndIp=Aquest \u00e9s el rang IP a la xarxa privada que el CloudStack fa servir per administrar MVs per al Secondary Storage i Proxy de consoles. Aquestes IP es prenen de la mateixa sub-xarxa que els servidors de virtualitzaci\u00f3.
-message.installWizard.tooltip.addPod.reservedSystemGateway=La passarel\u00b7la per als amfitrions en aquest pot.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=La m\u00e0scara de xarxa en \u00fas en la subxarxa dels clients a utilitzar
-message.installWizard.tooltip.addPod.reservedSystemStartIp=Aquest \u00e9s el rang IP a la xarxa privada que el CloudStack fa servir per administrar MVs per al Secondary Storage i Proxy de consoles. Aquestes IP es prenen de la mateixa sub-xarxa que els servidors de virtualitzaci\u00f3.
-message.installWizard.tooltip.addPrimaryStorage.name=El nom per al dispositiu d\\'emmagatzematge
-message.installWizard.tooltip.addPrimaryStorage.path=(per a NFS) A NFS, aquest \u00e9s el cam\u00ed exportat des del servidor. Cam\u00ed (per SharedMountPoint). Amb KVM aquest \u00e9s el cam\u00ed a cada host on es munta el emmagatzemament primari. Per exemple, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(per NFS, iSCSI, o PreSetup) La adre\u00e7a IP o nom DNS del dispositiu d\\'emmagatzematge.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=L\\'adre\u00e7a IP del servidor NFS que allotja l\\'emmagatzematge secundari
-message.installWizard.tooltip.addSecondaryStorage.path=La ruta d\\'exportaci\u00f3, que es troba en el servidor que s\\'ha especificat anteriorment
-message.installWizard.tooltip.configureGuestTraffic.description=Una descripci\u00f3 de la xarxa
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=La passarel\u00b7la que els convidats han d\\'utilitzar
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=La m\u00e0scara de xarxa en \u00fas en la subxarxa que els clients han d\\'utilitzar
-message.installWizard.tooltip.configureGuestTraffic.name=Un nom per a la teva xarxa
-message.instanceWizard.noTemplates=No teniu cap plantilla disponible; si us plau afegiu una plantilla disponible i torneu a usar l\\'assistent.
-message.join.project=Us heu unit a un projecte. Si us pla canvieu a vista de projecte per veure el projecte.
-message.migrate.instance.to.host=Si us plau, confirmi que vol migrar la inst\u00e0ncia a un altra  amfitri\u00f3 "host"
-message.migrate.instance.to.ps=Si us plau, confirmi que vol migrar la inst\u00e0ncia a un altra emmagatzematge primari.
-message.migrate.router.confirm=Si us plau confirmeu que voleu migrar el router a\:
-message.migrate.systemvm.confirm=Si us plau confirmeu que voleu migrar la MV de sistema a\:
-message.no.projects.adminOnly=No teniu cap projecte.<br/>Si us plau demaneu a l\\'administrador que us en crei un.
-message.no.projects=No teniu cap projecte.<br/>Si us plau creeu-ne un des de la secci\u00f3 de projecte.
-message.pending.projects.1=Teniu invitacions pendents.
-message.pending.projects.2=Per veure, si us plau aneu a la secci\u00f3 de projectes, i sel\u00b7leccioneu invitacions al desplegable.
-message.project.invite.sent=Invitaci\u00f3 enviada a l\\'usuari; ser\u00e0 afegit al projecte quan accepti l\\'invitaci\u00f3
-message.select.item=Si us plau sel\u00b7leccioneu un article
-message.setup.successful=Instal\u00b7laci\u00f3 del cloud correcte\!
-message.suspend.project=Esteu segurs de suspendre aquest projecte?
-message.update.resource.count=Si us plau confirmeu que voleu actualitzar el comptatge de recursos per aquest compte.
-mode=Mode
-network.rate=Velocitat de xarxa
-side.by.side=Costat a costat
-state.Accepted=Acceptat
-state.Active=Actiu
-state.Completed=Complert
-state.Creating=Creant
-state.Declined=Declinat
-state.Disabled=Deshabilitat
-state.Enabled=Habilitat
-state.Expunging=Esborrant
-state.Pending=Pendent
-state.Ready=Preparat
-state.Starting=Arrencant
-state.Suspended=Susp\u00e9s
diff --git a/client/WEB-INF/classes/resources/messages_de_DE.properties b/client/WEB-INF/classes/resources/messages_de_DE.properties
deleted file mode 100644
index d850ab7..0000000
--- a/client/WEB-INF/classes/resources/messages_de_DE.properties
+++ /dev/null
@@ -1,2284 +0,0 @@
-# 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.
-
-changed.item.properties=Ge\u00e4nderte Eintragseigenschaften
-confirm.enable.s3=Bitte f\u00fcgen Sie die folgenden Informationen hinzu, um die Unterst\u00fctzung f\u00fcr "S3-backed Secondary Storage" hinzuzuf\u00fcgen
-confirm.enable.swift=Bitte f\u00fcgen Sie die folgenden Informationen hinzu, um die Unterst\u00fctzung f\u00fcr Swift zu erm\u00f6glichen.
-error.could.not.change.your.password.because.ldap.is.enabled=Fehler\! Ihr Passwort konnte nicht ge\u00e4ndert werden, weil LDAP konfiguriert wurde.
-error.could.not.enable.zone=Zone konnte nicht aktiviert werden
-error.installWizard.message=Etwas ging schief; Sie k\u00f6nnen zur\u00fcckgehen um m\u00f6gliche Fehler zu beheben
-error.invalid.username.password=Ung\u00fcltiger Benutzername oder ung\u00fcltiges Passwort
-error.login=Ihr Benutzername / Passwort stimmt nicht mit unseren Aufzeichnungen \u00fcberein.
-error.menu.select=Es ist nicht m\u00f6glich dies auszuf\u00fchren, weil nichts ausgew\u00e4hlt wurde.
-error.mgmt.server.inaccessible=Der Verwaltungsserver ist nicht erreichbar. Bitte versuche Sie es sp\u00e4ter noch einmal.
-error.password.not.match=Die Passwortfelder stimmen nicht \u00fcberein
-error.please.specify.physical.network.tags=Netzwerk-Angebote sind nicht verf\u00fcgbar solange Sie keine Tags f\u00fcr dieses physische Netzwerk auff\u00fchren.
-error.session.expired=Ihre Sitzung ist abgelaufen.
-error.something.went.wrong.please.correct.the.following=Etwas ging schief; bitte korrigieren Sie folgende Angaben
-error.unable.to.reach.management.server=Verwaltungsserver kann nicht erreicht werden
-error.unresolved.internet.name=Ihr Internetname kann nicht aufgel\u00f6st werden.
-force.delete.domain.warning=Achtung\: Diese Auswahl f\u00fchrt zu einer L\u00f6schung aller untergeordneten Domains und aller angeschlossenen Konten sowie ihrer Quellen.
-force.delete=Erzwinge L\u00f6schung
-force.remove=Erzwinge Entfernung
-force.remove.host.warning=Achtung\: Diese Auswahl wird CloudStack zum sofortigen Anhalten der virtuellen Maschine f\u00fchren, bevor der Host vom Cluster entfernt wurde.
-force.stop=Erzwinge Stopp
-force.stop.instance.warning=Warnung\: Das erwzungene Stoppen dieser Instanz sollte Ihre letzte Option sein. Es kann zu Datenverlust und inkonsistentem Zustand der virtuellen Maschine f\u00fchren.
-hint.no.host.tags=Keine Host-Tags gefunden
-hint.no.storage.tags=Keine Speicher-Tags gefunden
-hint.type.part.host.tag=Teil eines Host-Tags eintragen
-hint.type.part.storage.tag=Teil eines Storage-Tags eintragen
-ICMP.code=ICMP-Code
-ICMP.type=ICMP-Typ
-image.directory=Bildverzeichnis
-inline=Inline
-instances.actions.reboot.label=Instanz neu starten
-label.about.app=\u00dcber CloudStack
-label.about=\u00dcber
-label.accept.project.invitation=Projekteinladung annehmen
-label.account.and.security.group=Konto, Sicherheitsgruppe
-label.account=Benutzerkonto
-label.account.details=Kontodetails
-label.account.id=Benutzerkonto-ID
-label.account.lower=Konto
-label.account.name=Benutzerkonto-Name
-label.accounts=Benutzerkonten
-label.account.specific=Besonderheiten des Benutzerkontos
-label.account.type=Benutzerkontotyp
-label.acl=ACL
-label.acl.id=ACL-Kennung
-label.acl.list.rules=ACL-Listenregeln
-label.acl.name=ACL-Name
-label.acl.replaced=ACL ersetzt
-label.acquire.new.ip=Neue IP erwerben
-label.acquire.new.secondary.ip=Neue sekund\u00e4re IP erwerben
-label.action=Aktion
-label.action.attach.disk=Festplatte hinzuf\u00fcgen
-label.action.attach.disk.processing=Festplatte wird hinzugef\u00fcgt....
-label.action.attach.iso=ISO hinzuf\u00fcgen
-label.action.attach.iso.processing=ISO wird hinzugef\u00fcgt....
-label.action.cancel.maintenance.mode.processing=Abbruch des Wartungsmodus
-label.action.cancel.maintenance.mode=Wartungsmodus abbrechen
-label.action.change.password=Passwort \u00e4ndern
-label.action.change.service=Dienst \u00e4ndern
-label.action.change.service.processing=Dienst wird gewechselt....
-label.action.configure.samlauthorization=SAML SSO Autorisation konfigurieren
-label.action.copy.ISO=ISO kopieren
-label.action.copy.ISO.processing=ISO wird kopiert....
-label.action.copy.template.processing=Vorlage wird kopiert....
-label.action.copy.template=Vorlage kopieren
-label.action.create.template.from.vm=Erstelle Vorlage aus VM
-label.action.create.template.from.volume=Vorlage vom Volumen erstellen
-label.action.create.template.processing=Vorlage wird erstellt....
-label.action.create.template=Vorlage erstellen
-label.action.create.vm=Erstelle VM
-label.action.create.vm.processing=VM wird erstellt....
-label.action.create.volume.processing=Volumen wird erstellt....
-label.action.create.volume=Volumen erstellen
-label.action.delete.account=Benutzerkonto l\u00f6schen
-label.action.delete.account.processing=Konto wird gel\u00f6scht....
-label.action.delete.cluster=L\u00f6schen des Clusters
-label.action.delete.cluster.processing=Cluster wird gel\u00f6scht....
-label.action.delete.disk.offering=Festplattenangebot l\u00f6schen
-label.action.delete.disk.offering.processing=Festplattenangebot wird gel\u00f6scht....
-label.action.delete.domain=L\u00f6schen der Domain
-label.action.delete.domain.processing=Dom\u00e4ne wird gel\u00f6scht....
-label.action.delete.firewall=Firewall-Regel l\u00f6schen
-label.action.delete.firewall.processing=Firewall wird gel\u00f6scht....
-label.action.delete.ingress.rule.processing=Zutrittsregel wird gel\u00f6scht....
-label.action.delete.ingress.rule=Zutrittsregel l\u00f6schen
-label.action.delete.IP.range=IP-Bereich l\u00f6schen
-label.action.delete.IP.range.processing=IP-Bereich wird gel\u00f6scht....
-label.action.delete.ISO=ISO l\u00f6schen
-label.action.delete.ISO.processing=ISO wird gel\u00f6scht....
-label.action.delete.load.balancer=Lastverteilerregel l\u00f6schen
-label.action.delete.load.balancer.processing=Lastverteiler wird gel\u00f6scht....
-label.action.delete.network=L\u00f6schen des Netzwerks
-label.action.delete.network.processing=Netzwerk wird gel\u00f6scht....
-label.action.delete.nexusVswitch=Nexus 1000v l\u00f6schen
-label.action.delete.nic=NIC entfernen
-label.action.delete.physical.network=Physikalisches Netzwerk l\u00f6schen
-label.action.delete.pod=Pod l\u00f6schen
-label.action.delete.pod.processing=Pod wird gel\u00f6scht....
-label.action.delete.primary.storage=Hauptspeicher l\u00f6schen
-label.action.delete.primary.storage.processing=Hauptspeicher wird gel\u00f6scht....
-label.action.delete.secondary.storage.processing=Sekund\u00e4rspeicher wird gel\u00f6scht....
-label.action.delete.secondary.storage=Sekund\u00e4rspeicher l\u00f6schen
-label.action.delete.security.group.processing=Sicherheitsgruppe wird gel\u00f6scht....
-label.action.delete.security.group=Sicherheitsgruppe l\u00f6schen
-label.action.delete.service.offering=Dienstangebot l\u00f6schen
-label.action.delete.service.offering.processing=Dienstangebot wird gel\u00f6scht....
-label.action.delete.snapshot.processing=Schnappschuss wird gel\u00f6scht....
-label.action.delete.snapshot=Schnappschuss l\u00f6schen
-label.action.delete.system.service.offering=Systemdienstangebot l\u00f6schen
-label.action.delete.template.processing=Vorlage wird gel\u00f6scht....
-label.action.delete.template=Vorlage l\u00f6schen
-label.action.delete.user=Benutzer l\u00f6schen
-label.action.delete.user.processing=Benutzer wird gel\u00f6scht....
-label.action.delete.volume.processing=Volumen wird gel\u00f6scht....
-label.action.delete.volume=Volumen l\u00f6schen
-label.action.delete.zone.processing=Zone wird gel\u00f6scht....
-label.action.delete.zone=Zone l\u00f6schen
-label.action.destroy.instance=Die Instanz vernichten
-label.action.destroy.instance.processing=Instanz wird zerst\u00f6rt....
-label.action.destroy.systemvm.processing=System-VM wird zerst\u00f6rt....
-label.action.destroy.systemvm=System-VM vernichten
-label.action.detach.disk=Festplatte losl\u00f6sen
-label.action.detach.disk.processing=Festplatte wird losgel\u00f6st...
-label.action.detach.iso=ISO losl\u00f6sen
-label.action.detach.iso.processing=ISO wird losgel\u00f6st....
-label.action.disable.account=Benutzerkonto deaktivieren
-label.action.disable.account.processing=Konto wird deaktiviert....
-label.action.disable.cluster=Deaktivieren des Clusters
-label.action.disable.cluster.processing=Cluster wird deaktiviert....
-label.action.disable.nexusVswitch=Nexus 1000v deaktivieren
-label.action.disable.physical.network=Physikalisches Netzwerk deaktivieren
-label.action.disable.pod=Deaktiviere Pod
-label.action.disable.pod.processing=Pod wird deaktiviert....
-label.action.disable.static.NAT.processing=Statische NAT wird deaktiviert....
-label.action.disable.static.NAT=Statische NAT deaktivieren
-label.action.disable.user=Benutzer deaktivieren
-label.action.disable.user.processing=Benutzer wird deaktiviert....
-label.action.disable.zone=Deaktivieren der Zone
-label.action.disable.zone.processing=Zone wird deaktiviert....
-label.action.download.ISO=ISO herunterladen
-label.action.download.template=Vorlage herunterladen
-label.action.download.volume.processing=Volumen wird heruntergeladen....
-label.action.download.volume=Volumen herunterladen
-label.action.edit.account=Benutzerkonto bearbeiten
-label.action.edit.disk.offering=Festplattenangebot bearbeiten
-label.action.edit.domain=Domain bearbeiten
-label.action.edit.global.setting=Globale Einstellungen bearbeiten
-label.action.edit.host=Bearbeite Host
-label.action.edit.instance=Instanz bearbeiten
-label.action.edit.ISO=ISO bearbeiten
-label.action.edit.network=Bearbeiten des Netzwerks
-label.action.edit.network.offering=Netzwerkangebot bearbeiten
-label.action.edit.network.processing=Netzwerk wird bearbeitet....
-label.action.edit.pod=Bearbeiten des Pods
-label.action.edit.primary.storage=Hauptspeicher bearbeiten
-label.action.edit.resource.limits=Resourcenlimit bearbeiten
-label.action.edit.service.offering=Dienstangebot bearbeiten
-label.action.edit.template=Vorlage bearbeiten
-label.action.edit.user=Benutzer bearbeiten
-label.action.edit.zone=Zone bearbeiten
-label.action.enable.account=Konto aktivieren
-label.action.enable.account.processing=Konto wird aktiviert....
-label.action.enable.cluster=Aktivieren des Clusters
-label.action.enable.cluster.processing=Cluster wird aktiviert....
-label.action.enable.maintenance.mode.processing=Aktivieren des Wartungsmodus
-label.action.enable.maintenance.mode=Wartungsmodus aktivieren
-label.action.enable.nexusVswitch=Nexus 1000v aktivieren
-label.action.enable.physical.network=Physikalisches Netzwerk aktivieren
-label.action.enable.pod=Aktiviere Pod
-label.action.enable.pod.processing=Pod wird aktiviert....
-label.action.enable.static.NAT.processing=Statische NAT wird aktiviert....
-label.action.enable.static.NAT=Statische NAT aktivieren
-label.action.enable.user=Nutzer aktivieren
-label.action.enable.user.processing=Benutzer wird aktiviert....
-label.action.enable.zone=Aktivieren der Zone
-label.action.enable.zone.processing=Zone wird aktiviert....
-label.action.expunge.instance=Instanz unwiederbringlich l\u00f6schen
-label.action.expunge.instance.processing=L\u00f6sche Instanz unwiederbringlich...
-label.action.force.reconnect=Erzwinge wieder verbinden
-label.action.force.reconnect.processing=Wieder verbinden....
-label.action.generate.keys.processing=Generiere Schl\u00fcssel...
-label.action.generate.keys=Schl\u00fcssel generieren
-label.action.list.nexusVswitch=Nexus 1000v auflisten
-label.action.lock.account=Konto sperren
-label.action.lock.account.processing=Konto wird gesperrt....
-label.action.manage.cluster.processing=Cluster wird verwaltet....
-label.action.manage.cluster=Verwalte Cluster
-label.action.migrate.instance=Eine Instanz migrieren
-label.action.migrate.instance.processing=Instanz migrieren
-label.action.migrate.router.processing=Router wird migriert....
-label.action.migrate.router=Router migrieren
-label.action.migrate.systemvm.processing=System-VM wird migriert....
-label.action.migrate.systemvm=System-VM migrieren
-label.action.reboot.instance=Instanz neu starten
-label.action.reboot.instance.processing=Instanz wird neu gebootet...
-label.action.reboot.router.processing=Router wird neu gebootet....
-label.action.reboot.router=Router neu starten
-label.action.reboot.systemvm.processing=System-VM wird neu gebootet....
-label.action.reboot.systemvm=System-VM neu starten
-label.action.recurring.snapshot=Wiederkehrende Schnappsch\u00fcsse
-label.action.register.iso=ISO registrieren
-label.action.register.template=Vorlage von URL registrieren
-label.action.release.ip=IP losl\u00f6sen
-label.action.release.ip.processing=IP wird losgel\u00f6st....
-label.action.remove.host=Host entfernen
-label.action.remove.host.processing=Host wird entfernt....
-label.action.reset.password=Passwort zur\u00fccksetzen
-label.action.reset.password.processing=Passwort wird zur\u00fcckgesetzt....
-label.action.resize.volume.processing=Volumengr\u00f6\u00dfe wird ge\u00e4ndert....
-label.action.resize.volume=Volumengr\u00f6\u00dfe \u00e4ndern
-label.action.resource.limits=Ressourcenlimits
-label.action.restore.instance=Instanz wiederherstellen
-label.action.restore.instance.processing=Instanz wird wiederhergestellt....
-label.action.revert.snapshot=Auf Schnappschuss zur\u00fcckkehren
-label.action.revert.snapshot.processing=Es wird auf den Schnappschuss zur\u00fcckgekehrt...
-label.actions=Aktionen
-label.action.start.instance=Instanz beginnen
-label.action.start.instance.processing=Instanz wird gestartet....
-label.action.start.router.processing=Router wird gestartet....
-label.action.start.router=Router starten
-label.action.start.systemvm.processing=System-VM wird gestartet....
-label.action.start.systemvm=System-VM starten
-label.action.stop.instance=Instanz stoppen
-label.action.stop.instance.processing=Instanz wird gestartet....
-label.action.stop.router.processing=Routers wird gestoppt....
-label.action.stop.router=Router stoppen
-label.action.stop.systemvm.processing=System-VM wird gestoppt....
-label.action.stop.systemvm=System-VM stoppen
-label.action.take.snapshot.processing=Schnappschuss wird gemacht....
-label.action.take.snapshot=Schnappschuss erstellen
-label.action.unmanage.cluster.processing=Cluster wird nicht mehr verwaltet....
-label.action.unmanage.cluster=Vernachl\u00e4ssige Cluster
-label.action.update.OS.preference=Betriebssystem Pr\u00e4verenz aktualisieren
-label.action.update.OS.preference.processing=Betriebssystemeinstellung wird aktualisiert....
-label.action.update.resource.count.processing=Ressourcenanzahl wird aktualisiert....
-label.action.update.resource.count=Ressourcenanzahl aktualisieren
-label.action.vmsnapshot.create=VM-Schnappschuss machen
-label.action.vmsnapshot.delete=VM-Schnappschuss l\u00f6schen
-label.action.vmsnapshot.revert=Auf VM-Schnappschuss zur\u00fcckkehren
-label.activate.project=Projekt aktivieren
-label.active.sessions=Aktive Sitzungen
-label.add.account=Konto hinzuf\u00fcgen
-label.add.accounts=Konten hinzuf\u00fcgen
-label.add.accounts.to=Konten hinzuf\u00fcgen zu
-label.add.account.to.project=Konto zu Projekt hinzuf\u00fcgen
-label.add.ACL=ACL hinzuf\u00fcgen
-label.add.acl.list=ACL-Liste hinzuf\u00fcgen
-label.add.affinity.group=Neue Affinit\u00e4tsgruppe hinzuf\u00fcgen
-label.add.baremetal.dhcp.device=Baremetal DHCP-Ger\u00e4t hinzuf\u00fcgen
-label.add.baremetal.rack.configuration=Baremetal Rackkonfiguration hinzuf\u00fcgen
-label.add.BigSwitchBcf.device=F\u00fcge BigSwitch BCF Controller hinzu
-label.add.BrocadeVcs.device=Brocade Vcs Switch hinzuf\u00fcgen
-label.add.by.cidr=Hinzuf\u00fcgen durch CIDR
-label.add.by.group=Hinzuf\u00fcgen durch Gruppe
-label.add.by=Hinzugef\u00fcgt von
-label.add.ciscoASA1000v=CiscoASA1000v-Ressource hinzuf\u00fcgen
-label.add.cluster=Cluster hinzuf\u00fcgen
-label.add.compute.offering=Berechnungsangebot hinzuf\u00fcgen
-label.add.direct.iprange=Direkten IP-Bereich hinzuf\u00fcgen
-label.add.disk.offering=Festplattenangebot hinzuf\u00fcgen
-label.add.domain=Domain hinzuf\u00fcgen
-label.added.brocade.vcs.switch=Neuer Brocade Vcs Switch hinzugef\u00fcgt
-label.added.network.offering=Netzwerkangebot hinzugef\u00fcgt
-label.added.new.bigswitch.bcf.controller=Neuer BigSwitch BCF Controller hinzugef\u00fcgt
-label.added.nicira.nvp.controller=Neuer Nicira NVP Controller hinzugef\u00fcgt
-label.add.egress.rule=Egress-Regel hinzuf\u00fcgen
-label.addes.new.f5=Neues F5 hinzugef\u00fcgt
-label.add.F5.device=F5-Ger\u00e4t hinzuf\u00fcgen
-label.add.firewall=Firewall-Regel hinzuf\u00fcgen
-label.add.globo.dns=GloboDNS hinzuf\u00fcgen
-label.add.gslb=GSLB hinzuf\u00fcgen
-label.add.guest.network=Gastnetzwerk hinzuf\u00fcgen
-label.add=Hinzuf\u00fcgen
-label.add.host=Host hinzuf\u00fcgen
-label.adding.cluster=Cluster hinzuf\u00fcgen
-label.adding.failed=Hinzuf\u00fcgen fehlgeschlagen
-label.adding=Hinzuf\u00fcgen
-label.adding.pod=Hinzuf\u00fcgen des Pods
-label.adding.processing=Hinzuf\u00fcgen....
-label.add.ingress.rule=Zutrittsregel hinzuf\u00fcgen
-label.adding.succeeded=Erfolgreich hinzugef\u00fcgt
-label.adding.user=Nutzer hinzuf\u00fcgen
-label.adding.zone=Hinzuf\u00fcgen der Zone
-label.add.intermediate.certificate=Intermediate Zertifikat hinzuf\u00fcgen
-label.add.internal.lb=Interne LB hinzuf\u00fcgen
-label.add.ip.range=IP-Bereich hinzuf\u00fcgen
-label.add.isolated.guest.network=Isoliertes Gastnetzwerk hinzuf\u00fcgen
-label.add.isolated.guest.network.with.sourcenat=Isoliertes Gastnetzwerk mit Source-NAT hinzuf\u00fcgen
-label.add.isolated.network=Isoliertes Netzwerk hinzuf\u00fcgen
-label.additional.networks=Zus\u00e4tzliche Netzwerke
-label.add.ldap.account=LDAP-Konto hinzuf\u00fcgen
-label.add.LDAP.account=LDAP-Konto hinzuf\u00fcgen
-label.add.list.name=ACL-Listename
-label.add.load.balancer=Lastverteiler hinzuf\u00fcgen
-label.add.more=Mehr hinzuf\u00fcgen
-label.add.netScaler.device=Netscaler-Ger\u00e4t hinzuf\u00fcgen
-label.add.network.acl.list=Netzwerk-ACL-Liste hinzuf\u00fcgen
-label.add.network.ACL=Netzwerk-ACL hinzuf\u00fcgen
-label.add.network.device=Hinzuf\u00fcgen eines Netzwerkger\u00e4tes
-label.add.network=Netzwerk hinzuf\u00fcgen
-label.add.network.offering=Netzwerkangebot hinzuf\u00fcgen
-label.add.new.F5=Neues F5 hinzuf\u00fcgen
-label.add.new.gateway=Neues Gateway hinzuf\u00fcgen
-label.add.new.NetScaler=Neuer NetScaler hinzuf\u00fcgen
-label.add.new.PA=Neues Palo Alto hinzuf\u00fcgen
-label.add.new.SRX=Neuer SRX hinzuf\u00fcgen
-label.add.new.tier=Neue Ebene hinzuf\u00fcgen
-label.add.nfs.secondary.staging.store=NFS Sekund\u00e4r Staging Store hinzuf\u00fcgen
-label.add.NiciraNvp.device=Nvp Controller hinzuf\u00fcgen
-label.add.NuageVsp.device=Nuage Virtualized Services Directory (VSD) hinzuf\u00fcgen
-label.add.OpenDaylight.device=OpenDaylight Controller hinzuf\u00fcgen
-label.add.PA.device=Palo Alto-Ger\u00e4t hinzuf\u00fcgen
-label.add.physical.network=Physikalisches Netzwerk hinzuf\u00fcgen
-label.add.pod=Pod hinzuf\u00fcgen
-label.add.portable.ip.range=Portablen IP-Bereich hinzuf\u00fcgen
-label.add.port.forwarding.rule=Portweiterleitungsregel hinzuf\u00fcgen
-label.add.primary.storage=Hauptspeicher hinzuf\u00fcgen
-label.add.private.gateway=Privaten Gateway hinzuf\u00fcgen
-label.add.region=Region hinzuf\u00fcgen
-label.add.resources=Ressourcen hinzuf\u00fcgen
-label.add.role=Rolle hinzuf\u00fcgen
-label.add.route=Route hinzuf\u00fcgen
-label.add.rule=Regel hinzuf\u00fcgen
-label.add.secondary.storage=Sekund\u00e4rspeicher hinzuf\u00fcgen
-label.add.security.group=Sicherheitsgruppe hinzuf\u00fcgen
-label.add.service.offering=Dienstangebot hinzuf\u00fcgen
-label.add.SRX.device=SRX-Ger\u00e4t hinzuf\u00fcgen
-label.add.static.nat.rule=Statische NAT-Regel hinzuf\u00fcgen
-label.add.static.route=F\u00fcge eine statische Route hinzu
-label.add.system.service.offering=Systemdienstangebot hinzuf\u00fcgen
-label.add.template=Vorlage hinzuf\u00fcgen
-label.add.to.group=Zu Gruppe hinzuf\u00fcgen
-label.add.ucs.manager=UCS Manager hinzuf\u00fcgen
-label.add.user=Benutzer hinzuf\u00fcgen
-label.add.userdata=Benutzerdaten
-label.add.vlan=VLAN hinzuf\u00fcgen
-label.add.vms.to.lb=VM(s) zur Lastverteilerregel hinzuf\u00fcgen
-label.add.vms=VMs hinzuf\u00fcgen
-label.add.VM.to.tier=VM zur Ebene hinzuf\u00fcgen
-label.add.vm=VM hinzuf\u00fcgen
-label.add.vmware.datacenter=VMware-Rechenzentrum hinzuf\u00fcgen
-label.add.vnmc.device=VNMC-Ger\u00e4t hinzuf\u00fcgen
-label.add.vnmc.provider=VNMC-Anbieter hinzuf\u00fcgen
-label.add.volume=Volumen hinzuf\u00fcgen
-label.add.vpc.offering=VPC-Angebot hinzuf\u00fcgen
-label.add.vpc=VPC hinzuf\u00fcgen
-label.add.vpn.customer.gateway=VPN Customer Gateway hinzuf\u00fcgen
-label.add.VPN.gateway=VPN Gateway hinzuf\u00fcgen
-label.add.vpn.user=VPN-Benutzer hinzuf\u00fcgen
-label.add.vxlan=VXLAN hinzuf\u00fcgen
-label.add.zone=Zone hinzuf\u00fcgen
-label.admin.accounts=Administratoren-Konten
-label.admin=Administrator
-label.advanced.mode=Erweiterter Modus
-label.advanced.search=Erweiterte Suche
-label.advanced=Weitergehend
-label.affinity=Affinit\u00e4t
-label.affinity.group=Affinit\u00e4tsgruppe
-label.affinity.groups=Affinit\u00e4tsgruppen
-label.agent.password=Agent-Passwort
-label.agent.port=Agent-Port
-label.agent.state=Agent-Status
-label.agent.username=Agent-Benutzername
-label.agree=Zustimmen
-label.alert.archived=Alarm archiviert
-label.alert.deleted=Alarm gel\u00f6scht
-label.alert.details=Alarmdetails
-label.alert=Warnung
-label.algorithm=Algorithmus
-label.allocated=Zugeteilt
-label.allocation.state=Belegungszustand
-label.allow=Erlauben
-label.anti.affinity=Anti-Affinit\u00e4t
-label.anti.affinity.group=Anti-Affinit\u00e4tsgruppe
-label.anti.affinity.groups=Anti-Affinit\u00e4tsgruppen
-label.api.key=API Schl\u00fcssel
-label.api.version=API-Version
-label.apply=Anwenden
-label.app.name=CloudStack
-label.archive.alerts=Alarme archivieren
-label.archive=Archiv
-label.archive.events=Ereignisse archivieren
-label.assigned.vms=Zugewiesene VMs
-label.assign.instance.another=Instanz einem anderen Benutzerkonto zuweisen
-label.assign.to.load.balancer=Instanz zum Lastverteiler hinzuf\u00fcgen
-label.assign.vms=VMs zuweisen
-label.assign=Zuweisen
-label.associated.network.id=Assozierte Netzwerk ID
-label.associated.network=Zugeh\u00f6riges Netzwerk
-label.associated.profile=Zugeh\u00f6riges Profil
-label.associate.public.ip=\u00d6ffentliche IP assoziieren
-label.attached.iso=Angeh\u00e4ngte ISO
-label.author.email=Autoremail
-label.author.name=Autorname
-label.autoscale=Automatische Skalierung
-label.autoscale.configuration.wizard=Eingabehilfe der Autoskalierungs-Konfiguration
-label.availability=Verf\u00fcgbarkeit
-label.availability.zone=Verf\u00fcgbare Zone
-label.availabilityZone=Verf\u00fcgbarkeitszone
-label.available.public.ips=Verf\u00fcgbaren \u00f6ffentlichen IP-Adressen
-label.available=Verf\u00fcgbar
-label.back=Zur\u00fcck
-label.bandwidth=Bandbreite
-label.baremetal.dhcp.devices=Baremetal DHCP-Ger\u00e4te
-label.baremetal.dhcp.provider=Baremetal DHCP-Provider
-label.baremetal.pxe.device=Baremetal PXE-Ger\u00e4t hinzuf\u00fcgen
-label.baremetal.pxe.devices=Baremetal PXE-Ger\u00e4te
-label.baremetal.pxe.provider=Baremetal PXE-Provider
-label.baremetal.rack.configuration=Barematel Rackkonfiguration
-label.basic=Basis
-label.basic.mode=Grundmodus
-label.bigswitch.bcf.details=BigSwitch BCF Details
-label.bigswitch.bcf.nat=BigSwitch BCF NAT aktiviert
-label.bigswitch.controller.address=Adresse des BigSwitch BCF Controllers
-label.blade.id=Blade ID
-label.blades=Blades
-label.bootable=Bootbar
-label.broadcast.domain.range=Broadcast-Domain Bereich
-label.broadcast.domain.type=Broadcast Domain Typ
-label.broadcast.uri=Broadcast URI
-label.broadcasturi=Broadcast-URI
-label.broadcat.uri=Broadcast URI
-label.brocade.vcs.address=Vcs Switch Adresse
-label.brocade.vcs.details=Brocade Vcs Switch Details
-label.by.account=Nach Benutzerkonto
-label.by.alert.type=Nach Alarmtyp
-label.by.availability=Nach Verf\u00fcgbarkeit
-label.by.date.end=Nach Datum (Ende)
-label.by.date.start=Nach Datum (Start)
-label.by.domain=Nach Domain
-label.by.end.date=Nach Endedatum
-label.by.event.type=Nach Ereignistyp
-label.by.level=Nach Level
-label.by.pod=Nach Pod
-label.by.role=Nach Rolle
-label.by.start.date=Nach Beginndatum
-label.by.state=\u00fcber den Zustand
-label.bytes.received=Empfangene Bytes
-label.bytes.sent=Gesendete Bytes
-label.by.traffic.type=Nach Traffic-Typ
-label.by.type.id=Nach Typ ID
-label.by.type=Nach Typ
-label.by.zone=Nach Zone
-label.cache.mode=Schreib-Cache-Typ
-label.cancel=Abbrechen
-label.capacity.bytes=Kapazit\u00e4ts-Bytes
-label.capacity.iops=Kapazit\u00e4ts-IOPS
-label.capacity=Kapazit\u00e4t
-label.certificate=Serverzertifikat
-label.change.affinity=Affinit\u00e4t \u00e4ndern
-label.change.ipaddress=\u00c4ndern der IP Adresse f\u00fcr das NIC
-label.change.service.offering=Dienstangebot \u00e4ndern
-label.change.value=Wert \u00e4ndern
-label.character=Buchstabe
-label.chassis=Chassis
-label.checksum=Pr\u00fcfsumme
-label.cidr.account=CIDR oder Benutzerkonto/Sicherheitsgruppe
-label.cidr=CIDR
-label.CIDR.list=CIDR-Liste
-label.cidr.list=Quelle CIDR
-label.CIDR.of.destination.network=CIDR des Zielnetzwerks
-label.cisco.nexus1000v.ip.address=Nexus 1000v-IP-Adresse
-label.cisco.nexus1000v.password=Nexus 1000v-Passwort
-label.cisco.nexus1000v.username=Nexus 1000v-Benutzername
-label.ciscovnmc.resource.details=CiscoVNMC-Ressourcendetails
-label.clean.up=Bereinigen
-label.clear.list=Liste l\u00f6schen
-label.close=Schliessen
-label.cloud.console=Cloud Verwaltungskonsole
-label.cloud.managed=Geleitet von cloud.com
-label.cluster=Cluster
-label.cluster.name=Clustername
-label.clusters=Cluster
-label.cluster.type=Cluster-Typ
-label.clvm=CLVM
-label.code=Code
-label.community=Gemeinschaft
-label.compute.and.storage=Berechnen und Speicher
-label.compute=Berechnen
-label.compute.offering=Berechnungsangebot
-label.compute.offerings=Berechnungsangebote
-label.configuration=Konfiguration
-label.configure=Konfigurieren
-label.configure.ldap=LDAP konfigurieren
-label.configure.network.ACLs=Netzwerk-ACLs konfigurieren
-label.configure.sticky.policy=Sticky-Richtlinie konfigurieren
-label.configure.vpc=VPC konfigurieren
-label.confirmation=Best\u00e4tigung
-label.confirm.password=Passwort best\u00e4tigen
-label.congratulations=Herzlichen Gl\u00fcckwunsch
-label.conserve.mode=Konserven-Modus
-label.console.proxy=Konsolenproxy
-label.console.proxy.vm=Konsolenproxy-VM
-label.continue.basic.install=Weiterfahren mit Basisinstallation
-label.continue=Fortsetzen
-label.copying.iso=ISO wird kopiert
-label.corrections.saved=Korrekturen gespeichert
-label.counter=Z\u00e4hler
-label.cpu.allocated.for.VMs=CPU alloziert f\u00fcr VMs
-label.cpu.allocated=Zugeteilte CPU
-label.CPU.cap=CPU Obergrenze
-label.cpu=CPU
-label.cpu.limits=CPU-Begrenzungen
-label.cpu.mhz=CPU (in MHz)
-label.cpu.utilized=genutzte CPU
-label.created.by.system=Vom System erstellt
-label.created=Erstellt
-label.create.nfs.secondary.staging.storage=NFS sekund\u00e4rer Staging Store erstellen
-label.create.nfs.secondary.staging.store=NFS sekund\u00e4rer Staging Store erstellen
-label.create.project=Projekt erstellen
-label.create.ssh.key.pair=Erstelle ein SSH-Schl\u00fcsselpaar
-label.create.template=Vorlage erstellen
-label.create.VPN.connection=VPN-Verbindung erstellen
-label.cross.zones=\u00fcberschneidende Zonen
-label.custom=Benutzerdefiniert
-label.custom.disk.iops=Benutzerspezifische IOPS
-label.custom.disk.offering=Benutzerdefiniertes Festplattenangebot
-label.custom.disk.size=Benutzerdefinierte Festplattengr\u00f6sse
-label.daily=T\u00e4glich
-label.data.disk.offering=Datenspeicherplatzangebot
-label.date=Datum
-label.day.of.month=Tag des Monats
-label.day.of.week=Tag der Woche
-label.day=Tag
-label.dc.name=DC-Name
-label.dead.peer.detection=Dead-Peer-Erkennung
-label.decline.invitation=Einladung ablehnen
-label.dedicate.cluster=Dediziere Cluster
-label.dedicated=Dediziert
-label.dedicate=Dedizieren
-label.dedicated.vlan.vni.ranges=Dedizierte VLAN/VNI Bereiche
-label.dedicate.host=Dediziere Host
-label.dedicate.pod=Dediziere Pod
-label.dedicate.vlan.vni.range=Dedizierter VLAN/VNI Bereich
-label.dedicate.zone=Zone dedizieren
-label.default.egress.policy=Standard Egress Richtlinie
-label.default=Standard
-label.default.use=Standardeinstellung nutzen
-label.default.view=Standardansicht
-label.delete.acl.list=ACL-Liste ersetzen
-label.delete.affinity.group=Affinit\u00e4tsgruppe entfernen
-label.delete.alerts=Alarme l\u00f6schen
-label.delete.baremetal.rack.configuration=Barematel Rackkonfiguration entfernen
-label.delete.BigSwitchBcf=BigSwitch BCF Controller entfernen
-label.delete.BrocadeVcs=Brocade Vcs Switch l\u00f6schen
-label.delete.ciscoASA1000v=CiscoASA1000v l\u00f6schen
-label.delete.ciscovnmc.resource=CiscoVNMC-Ressource l\u00f6schen
-label.delete.events=Ereignisse l\u00f6schen
-label.delete.F5=F5 l\u00f6schen
-label.delete.gateway=L\u00f6sche Gateway
-label.delete.internal.lb=Interne LB l\u00f6schen
-label.delete=L\u00f6schen
-label.delete.NetScaler=L\u00f6sche NetScaler
-label.delete.NiciraNvp=Entferne Nvp Controller
-label.delete.NuageVsp=Nuage VSD entfernen
-label.delete.OpenDaylight.device=OpenDaylight Controller l\u00f6schen
-label.delete.PA=Palo Alto l\u00f6schen
-label.delete.portable.ip.range=Portablen IP-Bereich l\u00f6schen
-label.delete.profile=Profil l\u00f6schen
-label.delete.project=Projekt l\u00f6schen
-label.delete.role=Rolle l\u00f6schen
-label.delete.secondary.staging.store=Sekund\u00e4rer Staging Store l\u00f6schen
-label.delete.SRX=SRX l\u00f6schen
-label.delete.ucs.manager=UCS Manager l\u00f6schen
-label.delete.VPN.connection=VPN-Verbindung l\u00f6schen
-label.delete.VPN.customer.gateway=VPN Customer Gateway l\u00f6schen
-label.delete.VPN.gateway=VPN-Gateway l\u00f6schen
-label.delete.vpn.user=VPN-Benutzer l\u00f6schen
-label.deleting.failed=L\u00f6schen fehlgeschlagen
-label.deleting.processing=L\u00f6sche....
-label.deny=Verweigern
-label.deployment.planner=Deployment-Planer
-label.description=Beschreibung
-label.destination.physical.network.id=Physiche Netzwerk-ID des Zielorts
-label.destination.zone=Zielzone
-label.destroy.router=Router zerst\u00f6ren
-label.destroy.vm.graceperiod=Gnadenfrist bis zur Zerst\u00f6rung der VM
-label.destroy=Zerst\u00f6ren
-label.detaching.disk=Entfernen der Festplatte
-label.details=Details
-label.device.id=Ger\u00e4te-ID
-label.devices=Ger\u00e4te
-label.dhcp=DHCP
-label.DHCP.server.type=DHCP Server Type
-label.direct.attached.public.ip=Direkt angeschlossene \u00f6ffentliche IP
-label.direct.ips=Gemeinsame Netzwerk-IPs
-label.disable.autoscale=Automatische Skalierung deaktivieren
-label.disabled=Deaktiviert
-label.disable.host=Host deaktivieren
-label.disable.network.offering=Netzwerkangebot deaktivieren
-label.disable.provider=Anbieter deaktivieren
-label.disable.vnmc.provider=VNMC-Anbieter deaktivieren
-label.disable.vpc.offering=VPC-Angebot deaktivieren
-label.disable.vpn=Fernzugriff-VPN deaktivieren
-label.disabling.vpn.access=Deaktivierung des VPN Zugangs
-label.disassociate.profile.blade=Verbindung vom Profil zum Blade entfernen
-label.disbale.vnmc.device=VNMC-Ger\u00e4t deaktivieren
-label.disk.allocated=Zugeordnete Festplatte
-label.disk.bytes.read.rate=Festplatten-Leserate (BPS)
-label.disk.bytes.write.rate=Festplatten-Schreibrate (BPS)
-label.disk.iops.max=Max IOPS
-label.disk.iops.min=Min IOPS
-label.disk.iops.read.rate=Festplatten-Leserate (IOPS)
-label.disk.iops.total=Gesamte IOPS
-label.disk.iops.write.rate=Festplatten-Schreibrate (IOPS)
-label.disk.offering.details=Festplattenangebotdetails
-label.disk.offering=Festplattenangebot
-label.diskoffering=Festplattenangebot
-label.disk.provisioningtype=Provisionierungstyp
-label.disk.read.bytes=Festplatte Lesen (Bytes)
-label.disk.read.io=Festplatte Lesen (EA)
-label.disk.size=Festplattengr\u00f6\u00dfe
-label.disk.size.gb=Festplattengr\u00f6\u00dfe (in GB)
-label.disk.total=Gesamtzahl der Festplatten
-label.disk.volume=Festplattenvolumen
-label.disk.write.bytes=Festplatte Schreiben (Bytes)
-label.disk.write.io=Festplatte Schreiben (EA)
-label.display.name=Anzeigename
-label.display.text=Anzeigetext
-label.distributedrouter=Verteilter Router
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=DNS Domain f\u00fcr Gast-Netzwerke
-label.domain.admin=Domain Administrator
-label.domain.details=N\u00e4hrere Angaben zu Domains
-label.domain=Domain
-label.domain.id=Domain ID
-label.domain.lower=Dom\u00e4ne
-label.domain.name=Domain Name
-label.domain.router=Domain Router
-label.domain.suffix=DNS Domainsuffix (z.B. xzy.com)
-label.done=Fertig
-label.double.quotes.are.not.allowed=Anf\u00fchrungszeichen sind nicht erlaubt
-label.download.progress=Download-Fortschritt
-label.drag.new.position=Ziehe zu neuer Position
-label.duration.in.sec=Dauer (in Sekunden)
-label.dynamically.scalable=Dynamisch skalierbar
-label.edit.acl.rule=ACL-Regel bearbeiten
-label.edit.affinity.group=Affinit\u00e4tsgruppe bearbeiten
-label.edit=Bearbeiten
-label.edit.lb.rule=LB-Regel bearbeiten
-label.edit.network.details=Netzwerkdetails bearbeiten
-label.edit.project.details=Projektdetails bearbeiten
-label.edit.region=Region bearbeiten
-label.edit.role=Rolle bearbeiten
-label.edit.rule=Regel bearbeiten
-label.edit.secondary.ips=Sekund\u00e4re IPs bearbeiten
-label.edit.tags=Schlagw\u00f6rter bearbeiten
-label.edit.traffic.type=Datenverkehrstyp bearbeiten
-label.edit.vpc=VPC bearbeiten
-label.egress.default.policy=Egress Standard Richtlinie
-label.egress.rule=Egress-Regel
-label.egress.rules=Egress-Regeln
-label.elastic=Elastisch
-label.elastic.IP=Elastische IP Adresse
-label.elastic.LB=Elastischer LB
-label.email=E-Mail
-label.email.lower=E-Mail-Adresse
-label.enable.autoscale=Automatische Skalierung aktivieren
-label.enable.host=Host aktivieren
-label.enable.network.offering=Netzwerkangebot aktivieren
-label.enable.provider=Anbieter aktivieren
-label.enable.s3=S3-Backend Sekund\u00e4rspeicher einschalten
-label.enable.swift=Swift aktivieren
-label.enable.vnmc.device=VNMC-Ger\u00e4t aktivieren
-label.enable.vnmc.provider=VNMC-Anbieter aktivieren
-label.enable.vpc.offering=VPC-Angebot aktivieren
-label.enable.vpn=Fernzugriff-VPN einschalten
-label.enabling.vpn.access=Aktivieren des VPN-Zugriffs
-label.enabling.vpn=VPN aktivieren
-label.end.IP=End-IP
-label.endpoint=Endpunkt
-label.endpoint.or.operation=Endpunkt oder Bedienung
-label.end.port=Beende Port
-label.end.reserved.system.IP=Reservierte System-End-IP
-label.end.vlan=End-VLAN
-label.end.vxlan=End-VXLAN
-label.enter.token=Token eingeben
-label.error.code=Fehlercode
-label.error=Fehler
-label.error.upper=FEHLER
-label.ESP.encryption=ESP-Verschl\u00fcsselung
-label.ESP.hash=ESP-Pr\u00fcfsumme
-label.ESP.lifetime=ESP-Lebensdauer (Sekunde)
-label.ESP.policy=ESP-Richtlinie
-label.esx.host=ESX / ESXi-Host
-label.event.archived=Ereignis archiviert
-label.event.deleted=Ereignis gel\u00f6scht
-label.event=Ereignis
-label.every=Jeder
-label.example=Beispiel
-label.expunge=Unwiederbringlich l\u00f6schen
-label.external.link=Externer Link
-label.extractable=Extrahierbar
-label.extractable.lower=extrahierbar
-label.f5.details=F5-Details
-label.f5=F5
-label.failed=Fehlgeschlagen
-label.featured=Empfohlen
-label.fetch.latest=Neuste abrufen
-label.filterBy=Filtern nach
-label.fingerprint=FingerAbdruck
-label.firewall=Firewall
-label.firstname.lower=Vorname
-label.first.name=Vorname
-label.format=Format
-label.format.lower=Format
-label.friday=Freitag
-label.full.path=Vollst\u00e4ndiger Pfad
-label.full=Voll
-label.gateway=Schnittstelle
-label.general.alerts=Allgemeine Alarme
-label.generating.url=Generieren der URL
-label.globo.dns.configuration=GloboDNS-Konfiguration
-label.globo.dns=GloboDNS
-label.gluster.volume=Volume
-label.go.step.2=Gehe zu Schritt 2
-label.go.step.3=Weiter zu Schritt 3
-label.go.step.4=Weiter mit Schritt 4
-label.go.step.5=Weiter mit Schritt 5
-label.gpu=GPU
-label.group.by.account=Nach Konto gruppieren
-label.group.by.cluster=Nach Cluster gruppieren
-label.group.by.pod=Gruppiert nach Pod
-label.group.by.zone=Nach Zone gruppieren
-label.group=Gruppe
-label.group.optional=Gruppe (optional)
-label.gslb.assigned.lb.more=Mehr Lastverteilung zuweisen
-label.gslb.assigned.lb=Zugewiesene Lastverteilung
-label.gslb.delete=GSLB l\u00f6schen
-label.gslb.details=GSLB-Details
-label.gslb.domain.name=GSLB-Dom\u00e4nenname
-label.gslb=GSLB
-label.gslb.lb.details=Lastverteilungsdetails
-label.gslb.lb.remove=Lastverteilung aus diesem GSLB entfernen
-label.gslb.lb.rule=Lastverteilungsregel
-label.gslb.service=GSLB-Dienst
-label.gslb.service.private.ip=GSLB-Dienst Private IP
-label.gslb.service.public.ip=GSLB-Dienst \u00d6ffentliche IP
-label.gslb.servicetype=Diensttyp
-label.guest.cidr=Gast CIDR
-label.guest.end.ip=Gast-End-IP
-label.guest=Gast
-label.guest.gateway=Gast-Schnittstelle
-label.guest.ip=Gast IP-Adresse
-label.guest.ip.range=Gast-IP-Bereich
-label.guest.netmask=Gast Netzmaske
-label.guest.network.details=Gastnetzwerkdetails
-label.guest.networks=Gastnetzwerke
-label.guest.start.ip=Gast-Start-IP
-label.guest.traffic=Gast-Datenverkehr
-label.guest.traffic.vswitch.name=Gast Datenverkehr vSwitch Name
-label.guest.traffic.vswitch.type=Gast Datenverkehr vSwitch Typ
-label.guest.type=Gasttyp
-label.ha.enabled=HA aktiviert
-label.health.check.advanced.options=Erweiterte Optionen\:
-label.health.check.configurations.options=Konfigurationsoptionen\:
-label.health.check=Heath-Check
-label.health.check.interval.in.sec=Gesundheitscheck-Interval (in Sek.)
-label.health.check.message.desc=Ihr Lastverteiler wird autmatisch Heath-Checks ausf\u00fchren auf Ihren CloudStack Instanzen und nur Datenverkehr zu denjenigen Instanzen routen, welchen den Heath-Check bestehen.
-label.health.check.wizard=Health-Check Eingabehilfe
-label.healthy.threshold=Schwellwert gesund
-label.help=Hilfe
-label.hide.ingress.rule=Verstecke Regeln, die den Zutritt steuern
-label.hints=Hinweise
-label.home=Start
-label.host.alerts=Hosts im Alarmzustand
-label.host=Host
-label.host.MAC=Host-MAC
-label.host.name=Host Name
-label.hosts=Hosts
-label.host.tag=Host Tag
-label.host.tags=Markierungen des Hosts
-label.hourly=St\u00fcndlich
-label.hvm=HVM
-label.hypervisor.capabilities=Hypervisorf\u00e4higkeiten
-label.hypervisor=Hypervisor
-label.hypervisors=Hypervisoren
-label.hypervisor.snapshot.reserve=Hypervisor Schnappschuss-Reserve
-label.hypervisor.type=Hypervisor Typ
-label.hypervisor.version=Hypervisor-Version
-label.hyperv.traffic.label=HyperV Datenverkehrs-Bezeichnung
-label.id=Identifikation
-label.IKE.DH=IKE DH
-label.IKE.encryption=IKE-Verschl\u00fcsselung
-label.IKE.hash=IKE-Pr\u00fcfsumme
-label.IKE.lifetime=IKE-Lebensdauer (Sekunde)
-label.IKE.policy=IKE-Richtlinie
-label.info=Info
-label.info.upper=INFO
-label.ingress.rule=Zutrittsregel
-label.initiated.by=Initiiert durch
-label.inside.port.profile=Inside Port Profil
-label.installWizard.addClusterIntro.subtitle=Was ist ein Cluster?
-label.installWizard.addClusterIntro.title=Cluster hinzuf\u00fcgen
-label.installWizard.addHostIntro.subtitle=Was ist ein Host?
-label.installWizard.addHostIntro.title=Host hinzuf\u00fcgen
-label.installWizard.addPodIntro.subtitle=Was ist ein Pod?
-label.installWizard.addPodIntro.title=Pod hinzuf\u00fcgen
-label.installWizard.addPrimaryStorageIntro.subtitle=Was ist Prim\u00e4rspeicher?
-label.installWizard.addPrimaryStorageIntro.title=Prim\u00e4rspeicher hinzuf\u00fcgen
-label.installWizard.addSecondaryStorageIntro.subtitle=Was ist Sekund\u00e4rspeicher?
-label.installWizard.addSecondaryStorageIntro.title=Sekund\u00e4rspeicher hinzuf\u00fcgen
-label.installWizard.addZoneIntro.subtitle=Was ist eine Zone?
-label.installWizard.addZoneIntro.title=Zone hinzuf\u00fcgen
-label.installWizard.addZone.title=Zone hinzuf\u00fcgen
-label.installWizard.click.launch=Bitte den Start-Knopf dr\u00fccken
-label.installWizard.subtitle=Diese F\u00fchrung wird Ihnen beim Aufsetzen Ihrer CloudStack&\#8482 Installation behilflich sein.
-label.installWizard.title=Hallo und Willkommen bei CloudStack&\#8482
-label.instance=Instanz
-label.instance.limits=Instanz-Limiten
-label.instance.name=Name der Instanz
-label.instance.port=Instanz-Port
-label.instance.scaled.up=Instanz wurde zum gew\u00fcnschten Angebot skaliert
-label.instances=Instanzen
-label.instanciate.template.associate.profile.blade=Vorlage instanzieren und Profil zu Blade assoziieren
-label.intermediate.certificate=Intermediate Zertifikat {0}
-label.internal.dns.1=Interner DNS 1
-label.internal.dns.2=Interner DNS 2
-label.internal.lb.details=Interne LB-Details
-label.internal.lb=Interne LB
-label.internallbvm=Interne LV VM
-label.internal.name=Interner Name
-label.interval.type=Interval Typ
-label.introduction.to.cloudstack=Einf\u00fchrung in CloudStack&\#8482
-label.invalid.integer=Ung\u00fcltige Ganzzahl
-label.invalid.number=Ung\u00fcltige Anzahl
-label.invitations=Einladungen
-label.invited.accounts=Eingeladene Konten
-label.invite=Einladen
-label.invite.to=Einladen zu
-label.ip.address=IP-Adresse
-label.ipaddress=IP-Adresse
-label.ip.allocations=IP-Zuweisungen
-label.ip=IP
-label.ip.limits=\u00d6ffentliche IP-Begrenzungen
-label.ip.or.fqdn=IP oder FQDN
-label.ip.range=IP-Bereich
-label.ip.ranges=IP-Bereiche
-label.IPsec.preshared.key=IPsec Preshared-Schl\u00fcssel
-label.ips=IPs
-label.ipv4.cidr=IPv4 CIDR
-label.ipv4.dns1=IPv4 DNS1
-label.ipv4.dns2=IPv4 DNS2
-label.ipv4.end.ip=IPv4 End-IP
-label.ipv4.gateway=IPv4 Gateway
-label.ipv4.netmask=IPv4-Netzmaske
-label.ipv4.start.ip=IPv4 Start-IP
-label.ipv6.address=IPv6-IP-Adresse
-label.ipv6.CIDR=IPv6-CIDR
-label.ipv6.dns1=IPv6 DNS1
-label.ipv6.dns2=IPv6 DNS2
-label.ipv6.end.ip=IPv6 End-IP
-label.ipv6.gateway=IPv6-Gateway
-label.ipv6.start.ip=IPv6 Start-IP
-label.iscsi=iSCSI
-label.is.default=Ist vorgegeben
-label.iso.boot=ISO-Boot
-label.iso=ISO
-label.isolated.networks=Isolierte Netzwerke
-label.isolation.method=Isolationsmethode
-label.isolation.mode=Isolationsmodus
-label.isolation.uri=Isolations-URI
-label.is.redundant.router=Redundant
-label.is.shared=Gemeinsam
-label.is.system=Ist System
-label.item.listing=Eintragsauflistung
-label.japanese.keyboard=Japanische Tastatur
-label.keep=Behalten
-label.keep.colon=Behalten\:
-label.keyboard.language=Tastatursprache
-label.keyboard.type=Tastaturtyp
-label.key=Schl\u00fcssel
-label.kvm.traffic.label=KVM Datenverkehrs-Bezeichnung
-label.label=Bezeichnung
-label.lang.arabic=Arabisch
-label.lang.brportugese=Brasilianisches Portugiesisch
-label.lang.catalan=Katalanisch
-label.lang.chinese=Chinesisch (vereinfacht)
-label.lang.dutch=Niederl\u00e4ndisch
-label.lang.english=Englisch
-label.lang.french=Franz\u00f6sisch
-label.lang.german=Deutsch
-label.lang.hungarian=Ungarisch
-label.lang.italian=Italienisch
-label.lang.japanese=Japanisch
-label.lang.korean=Koreanisch
-label.lang.norwegian=Norwegisch
-label.lang.polish=Polnisch
-label.lang.russian=Russisch
-label.lang.spanish=Spanisch
-label.last.disconnected=Zuletzt getrennt
-label.lastname.lower=Nachname
-label.last.name=Nachname
-label.latest.events=Neueste Ereignisse
-label.launch=Start
-label.launch.vm=VM starten
-label.launch.zone=Zone starten
-label.lb.algorithm.leastconn=Mindestverbindungen
-label.lb.algorithm.roundrobin=Rundlauf-Verfahren
-label.lb.algorithm.source=Quelle
-label.LB.isolation=LB-Isolation
-label.ldap.configuration=LDAP-Konfiguration
-label.ldap.group.name=LDAP-Gruppe
-label.ldap.link.type=Typ
-label.ldap.port=LDAP-Port
-label.level=Ebene
-label.link.domain.to.ldap=Verbinde Domain mit LDAP
-label.linklocal.ip=Link-Local IP-Adresse
-label.load.balancer=Serverlastverteilung
-label.load.balancer.type=Lastverteilungstyp
-label.load.balancing=Lastverteilung
-label.load.balancing.policies=Verteilungsrichtlinien laden
-label.loading=Laden
-label.local.file=Lokale Datei
-label.local=Lokal
-label.local.storage.enabled=Erm\u00f6gliche lokalen Speicher f\u00fcr Benutzer VMs
-label.local.storage.enabled.system.vms=Aktiviere lokaler Speicher f\u00fcr die System-VMs
-label.local.storage=Lokaler Speicher
-label.login=Login
-label.logout=Abmelden
-label.lun=LUN
-label.LUN.number=LUN \#
-label.lxc.traffic.label=LXC Datenverkehrs-Bezeichnung
-label.make.project.owner=Mache Benutzerkonto zum Projekteigent\u00fcmer
-label.make.redundant=Redundant machen
-label.managed=Verwaltet
-label.management.ips=Verwaltung IP-Adressen
-label.management.server=Verwaltungsserver
-label.management=Verwaltung
-label.manage.resources=Ressourcen verwalten
-label.manage=Verwalten
-label.max.cpus=Max. CPU-Kerne
-label.max.guest.limit=Maximales Limit f\u00fcr Anzahl der G\u00e4ste
-label.maximum=Maximum
-label.max.instances=Max Instanzen
-label.max.memory=Max. Speicher (MiB)
-label.max.networks=Max. Netzwerke
-label.max.primary.storage=Max. prim\u00e4rer (GiB)
-label.max.public.ips=Max. \u00f6ffentliche IPs
-label.max.secondary.storage=Max. sekund\u00e4rer (GiB)
-label.max.snapshots=Max. Schnappsch\u00fcsse
-label.max.templates=Max. Vorlagen
-label.max.vms=Max. Benutzer-VMs
-label.max.volumes=Max. Volumen
-label.max.vpcs=Max. VPCs
-label.may.continue=Sie k\u00f6nnen jetzt fortfahren
-label.md5.checksum=MD5-Pr\u00fcfsumme
-label.memory.allocated=zugeordneter Speicher
-label.memory.limits=Speicherbegrenzungen (MiB)
-label.memory.mb=Speicher (in MB)
-label.memory=Speicher (in MB)
-label.memory.total=Speicher insgesamt
-label.memory.used=Genutzter Speicher
-label.menu.accounts=Benutzerkonten
-label.menu.alerts=Alarme
-label.menu.all.accounts=Alle Konten
-label.menu.all.instances=Alle Instanzen
-label.menu.community.isos=Gemeinschaft ISOs
-label.menu.community.templates=Gemeinschaft Vorlagen
-label.menu.configuration=Konfiguration
-label.menu.dashboard=Dashboard
-label.menu.destroyed.instances=Zerst\u00f6rte Instanzen
-label.menu.disk.offerings=Festplattenangebote
-label.menu.domains=Domains
-label.menu.events=Events
-label.menu.featured.isos=Empfohlene ISOs
-label.menu.featured.templates=Empfohlene Vorlagen
-label.menu.global.settings=Allgemeine Einstellungen
-label.menu.infrastructure=Infrastruktur
-label.menu.instances=Instanzen
-label.menu.ipaddresses=IP-Adressen
-label.menu.isos=ISOs
-label.menu.my.accounts=Meine Konten
-label.menu.my.instances=Meine F\u00e4lle
-label.menu.my.isos=Meine ISOs
-label.menu.my.templates=Meine Vorlagen
-label.menu.network=Netzwerk
-label.menu.network.offerings=Netzwerkangebote
-label.menu.physical.resources=Technische Ressourcen
-label.menu.regions=Regionen
-label.menu.running.instances=Laufende Instanzen
-label.menu.security.groups=Sicherheitsgruppen
-label.menu.service.offerings=Dienstangebote
-label.menu.snapshots=Schnappsch\u00fcsse
-label.menu.sshkeypair=SSH-Schl\u00fcsselpaar
-label.menu.stopped.instances=Beendete Instanzen
-label.menu.storage=Speicherung
-label.menu.system.service.offerings=Systemangebote
-label.menu.system=System
-label.menu.system.vms=System-VMs
-label.menu.templates=Vorlagen
-label.menu.virtual.appliances=Virtuelle Appliances
-label.menu.virtual.resources=Virtuelle Ressourcen
-label.menu.volumes=Volumina
-label.menu.vpc.offerings=VPC-Angebote
-label.metrics.allocated=Zugeteilt
-label.metrics.clusters=Cluster
-label.metrics.cpu.allocated=CPU Zuteilung
-label.metrics.cpu.max.dev=Abweichung
-label.metrics.cpu.total=Gesamt
-label.metrics.cpu.usage=CPU Benutzung
-label.metrics.cpu.used.avg=Gebraucht
-label.metrics.disk.allocated=Zugeteilt
-label.metrics.disk=Disk
-label.metrics.disk.iops.total=IOPS
-label.metrics.disk.read=Lesen
-label.metrics.disk.size=Gr\u00f6\u00dfe
-label.metrics.disk.storagetype=Typ
-label.metrics.disk.total=Gesamt
-label.metrics.disk.unallocated=Unbelegt
-label.metrics.disk.usage=Festplattennutzung
-label.metrics.disk.used=Gebraucht
-label.metrics.disk.write=Schreiben
-label.metrics.hosts=Hosts
-label.metrics.memory.allocated=Speicher Belegung
-label.metrics.memory.max.dev=Abweichung
-label.metrics.memory.total=Gesamt
-label.metrics.memory.usage=Speichernutzung
-label.metrics.memory.used.avg=Gebraucht
-label.metrics=Metriken
-label.metrics.name=Name
-label.metrics.network.read=Lesen
-label.metrics.network.usage=Netzwerk Nutzung
-label.metrics.network.write=Schreiben
-label.metrics.num.cpu.cores=Cores
-label.metrics.outofbandmanagementpowerstate=Betriebszustand
-label.metrics.property=Eigentum
-label.metrics.scope=Geltungsbereich
-label.metrics.state=Status
-label.metrics.storagepool=Speicher-Pool
-label.metrics.vm.name=VM Name
-label.migrate.instance.to.host=Instanz auf einen anderen Host migrieren
-label.migrate.instance.to=Instanz migrieren zu
-label.migrate.instance.to.ps=Instanz auf einen anderen Prim\u00e4rspeicher migrieren
-label.migrate.lb.vm=LB-VM migrieren
-label.migrate.router.to=Router migrieren zu
-label.migrate.systemvm.to=System-VM migrieren zu
-label.migrate.to.host=Zu Host migrieren
-label.migrate.to.storage=Zu Speicher migrieren
-label.migrate.volume.to.primary.storage=Migriere ein Speichervolumen zu einem anderen Hauptspeicher
-label.migrate.volume=Volumen migrieren
-label.minimum=Minimum
-label.min.instances=Min Instanzen
-label.min.past.the.hr=min seit Std. vergangen
-label.minute.past.hour=Minute(n) seit der Stunde vergangen
-label.minutes.past.hour=Minute(n) seit der Stunde vergangen
-label.mode=Modus
-label.monday=Montag
-label.monthly=Monatlich
-label.more.templates=Mehr Vorlagen
-label.move.down.row=Eine Zeile nach unten verschieben
-label.move.to.bottom=Nach unten verschieben
-label.move.to.top=Nach oben verschieben
-label.move.up.row=Eine Zeile nach oben verschieben
-label.my.account=Ihr Benutzerkonto
-label.my.network=Mein Netzwerk
-label.my.templates=Meine Vorlagen
-label.name.lower=Name
-label.name=Name
-label.name.optional=Name (Optional)
-label.na=N/V
-label.nat.port.range=NAT-Portbereich
-label.netmask=Netzmaske
-label.netscaler.details=NetScaler-Details
-label.netScaler=NetScaler
-label.network.ACL=Netzwerk-ACL
-label.network.ACLs=Netzwerk-ACLs
-label.network.ACL.total=Netzwerk-ACL Total
-label.network.addVM=Netzwerk zur VM hinzuf\u00fcgen
-label.network.cidr=Netzwerk-CIDR
-label.network.desc=Netzwerkbeschreibung
-label.network.details=Netzwerkdetails
-label.network.device=Netzwerkger\u00e4t
-label.network.device.type=Netzwerkger\u00e4tetyp
-label.network.domain=Netzwerk-Domain
-label.network.domain.text=Netzwerkdom\u00e4ne
-label.network.id=Netzwerk-ID
-label.networking.and.security=Netzwerkbetrieb und Sicherheit
-label.network.label.display.for.blank.value=Standard-Gateway verwenden
-label.network.limits=Netzwerkbegrenzungen
-label.network.name=Netzwerk Name
-label.network=Netzwerk
-label.network.offering.details=Netzwerkangebotdetails
-label.network.offering.display.text=Netzwerkangebot-Anzeigetext
-label.network.offering.id=Netzwerkangebotskennung
-label.network.offering.name=Netzwerkangebotsname
-label.network.offering=Netzwerkangebot
-label.network.rate.megabytes=Netzwerkrate (MB/s)
-label.network.rate=Netzwerk-Rate
-label.network.read=Netzwerk Lesen
-label.network.service.providers=Netzwerkdienstanbieter
-label.networks=Netzwerke
-label.network.type=Netzwerk-Typ
-label.network.write=Netzwerk Schreiben
-label.new=Neu
-label.new.password=Neues Passwort
-label.new.project=Neues Projekt
-label.new.ssh.key.pair=Neues SSH-Schl\u00fcsselpaar
-label.new.vm=Neue VM
-label.next=Weiter
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nfs.server=NFS Server
-label.nfs.storage=NFS-Speicher
-label.nic.adapter.type=NIC-Adaptertyp
-label.nicira.controller.address=Controller-Adresse
-label.nicira.l2gatewayserviceuuid=L2 Gateway Service Uuid
-label.nicira.l3gatewayserviceuuid=L3 Gateway Service Uuid
-label.nicira.nvp.details=Nicira NVP-Details
-label.nicira.transportzoneuuid=Transportzone Uuid
-label.nics=NICs
-label.no.actions=Nicht verf\u00fcgbare Aktionen
-label.no.alerts=Keine aktuellen Alarme
-label.no.data=Keine anzuzeigenden Daten
-label.no.errors=Keine neuen Fehler
-label.no.grouping=(keine Gruppierung)
-label.no.isos=Kein verf\u00fcgbaren ISOs
-label.no.items=Keine verf\u00fcgbaren Eintr\u00e4ge
-label.no=Nein
-label.none=Kein
-label.no.security.groups=Keine verf\u00fcgbare Sicherheitsgruppe
-label.not.found=Nicht gefunden
-label.no.thanks=Nein, danke
-label.notifications=Benachrichtigungen
-label.number.of.clusters=Anzahl der Cluster
-label.number.of.cpu.sockets=Die Anzahl der CPU-Sockeln
-label.number.of.hosts=Anzahl an Hosts
-label.number.of.pods=Anzahl Pods
-label.number.of.system.vms=Anzahl an System-VMs
-label.number.of.virtual.routers=Anzahl an virtuellen Routern
-label.number.of.zones=Anzahl an Zonen
-label.num.cpu.cores=Anzahl an CPU-Kernen
-label.numretries=Anzahl von Wiederholungen
-label.ocfs2=OCFS2
-label.offer.ha=HA anbieten
-label.of.month=des Monats
-label.ok=OK
-label.opendaylight.controllerdetail=OpenDayight Controller Details
-label.opendaylight.controller=OpenDaylight Controller
-label.opendaylight.controllers=OpenDaylight Controller
-label.openDaylight=OpenDaylight
-label.operator=Betreiber
-label.optional=optional
-label.order=Reihenfolge
-label.os.preference=OS Pr\u00e4ferenz
-label.os.type=OS Typ
-label.other=Andere
-label.outofbandmanagement.action=Aktion
-label.outofbandmanagement.action.issue=Eine Out-of-band Verwaltungs-Strom Aktion durchf\u00fchren
-label.outofbandmanagement.address=Adresse
-label.outofbandmanagement.changepassword=Passwort f\u00fcr Out-of-band Verwaltung \u00e4ndern
-label.outofbandmanagement.configure=Out-of-band Verwaltung konfigurieren
-label.outofbandmanagement.disable=Out-of-band Verwaltung deaktivieren
-label.outofbandmanagement.driver=Treiber
-label.outofbandmanagement.enable=Out-of-band Verwaltung aktivieren
-label.outofbandmanagement=Out-of-band Verwaltung
-label.outofbandmanagement.password=Passwort
-label.outofbandmanagement.port=Port
-label.outofbandmanagement.reenterpassword=Passwort erneut eingeben
-label.outofbandmanagement.username=Benutzername
-label.override.guest.traffic=Gast-Datenverkehr \u00fcberschreiben
-label.override.public.traffic=\u00d6ffentlichen Datenverkehr \u00fcberschreiben
-label.ovm3.cluster=Natives Clustering
-label.ovm3.pool=Natives Pooling
-label.ovm3.traffic.label=OVM3 Datenverkehrs-Bezeichnung
-label.ovm3.vip=Master Vip IP
-label.ovm.traffic.label=OVM Datenverkehrs-Bezeichnung
-label.ovs=OVS
-label.owned.public.ips=Ihnen geh\u00f6rende \u00f6ffentliche IP-Adressen
-label.owner.account=Eigent\u00fcmerkonto
-label.owner.domain=Eigent\u00fcmerdom\u00e4ne
-label.palo.alto.details=Palo Alto-Details
-label.PA.log.profile=Palo Alto-Protokollprofil
-label.PA=Palo Alto
-label.parent.domain=\u00dcbergeordnete Dom\u00e4ne
-label.passive=Passiv
-label.password.enabled=Passwort aktiviert
-label.password.lower=Passwort
-label.password=Passwort
-label.password.reset.confirm=Passwort wurde zur\u00fcckgesetzt auf
-label.path=Pfad
-label.PA.threat.profile=Palo Alto Threat Profil
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.permission=Berechtigung
-label.persistent=Persistent
-label.physical.network.ID=Physikalisches Netzwerkkennung
-label.physical.network.name=Name des physischen Netzwerks
-label.physical.network=Physikalisches Netzwerk
-label.PING.CIFS.password=PING CIFS Passwort
-label.PING.CIFS.username=PING CIFS Benutzername
-label.PING.dir=PING-Verzeichnis
-label.ping.path=Ping-Pfad
-label.PING.storage.IP=IP des externen Speichers anpingen
-label.planner.mode=Planungs Modus
-label.please.complete.the.following.fields=Bitte vervollst\u00e4ndigen Sie die folgenden Felder
-label.please.specify.netscaler.info=Bitte Netscaler-Info definieren
-label.please.wait=Bitte warten
-label.plugin.details=Plugindetails
-label.plugins=Plugins
-label.pod.dedicated=Pod dediziert
-label.pod.name=Podname
-label.pod=Pod
-label.pods=Pod
-label.polling.interval.sec=Abfrageintervall (in Sekunden)
-label.portable.ip=Portable IP
-label.portable.ip.range.details=Portable IP-Bereichsdetails
-label.portable.ip.ranges=Portable IP-Bereiche
-label.portable.ips=Portable IPs
-label.port.forwarding.policies=Portweiterleitungsrichtlinien
-label.port.forwarding=Portweiterleitung
-label.port=Port
-label.port.range=Portbereich
-label.powerstate=Betriebszustand
-label.PreSetup=Voreinstellung
-label.previous=Vorherige
-label.prev=Vor
-label.primary.allocated=Zugewiesener Hauptspeicher
-label.primary.network=Hauptnetzwerk
-label.primary.storage.count=Hauptspeicher-Pools
-label.primary.storage=Hauptspeicher
-label.primary.storage.limits=Hauptspeicher-Limits (GiB)
-label.primary.used=Genutzter Hauptspeicher
-label.private.Gateway=Privater Gateway
-label.private.interface=Privates Interface
-label.private.ip=Private IP-Adresse
-label.private.ip.range=Privater IP-Bereich
-label.private.ips=Private IP-Adressen
-label.privatekey=PKCS\#8 Privater Schl\u00fcssel
-label.private.key=Privater Schl\u00fcssel
-label.private.network=Privates Netzwerk
-label.private.port=Privater Port
-label.private.zone=Private Zone
-label.profile=Profil
-label.project.dashboard=Projekt\u00fcbersichtsseite
-label.project.id=Projektkennung
-label.project.invite=Zum Projekt einladen
-label.project.name=Projektname
-label.project=Projekt
-label.projects=Projekte
-label.project.view=Projektansicht
-label.protocol.number=Protokollnummer
-label.protocol=Protokoll
-label.provider=Anbieter
-label.providers=Anbieter
-label.public.interface=\u00d6ffentliches Interface
-label.public.ips=\u00d6ffentliche IP-Adressen
-label.public.ip=\u00d6ffentliche IP-Adresse
-label.public.key=\u00d6ffentlicher Schl\u00fcssel
-label.public.lb=\u00d6ffentliche LB
-label.public.load.balancer.provider=\u00d6ffentlicher Lastverteileranbieter
-label.public.network=\u00d6ffentliches Netzwerk
-label.public.port=\u00d6ffentlicher Port
-label.public.traffic=\u00d6ffentlicher Datenverkehr
-label.public.traffic.vswitch.name=\u00d6ffentlicher Datenverkehr vSwitch Name
-label.public.traffic.vswitch.type=\u00d6ffentlicher Datenverkehr vSwitch Typ
-label.public=\u00d6ffentlich
-label.public.zone=\u00d6ffentliche Zone
-label.purpose=Zweck
-label.Pxe.server.type=PXE Server Type
-label.qos.type=QoS-Typ
-label.quickview=Schnellansicht
-label.quiesce.vm=VM stilllegen
-label.quiet.time.sec=Ruhezeit (in Sekunden)
-label.quota.add.credits=Guthaben hinzuf\u00fcgen
-label.quota.balance=Abgleich
-label.quota.configuration=Konfiguration der Quota
-label.quota.configure=Konfiguriere eine Quota
-label.quota.credit=Guthaben
-label.quota.credits=Guthaben
-label.quota.date=Datum
-label.quota.dates=Aktualisierung der Daten
-label.quota.description=Beschreibung der Quota
-label.quota.email.body=K\u00f6rper
-label.quota.email.lastupdated=Letzte Aktualisierung
-label.quota.email.subject=Thema
-label.quota.email.template=Email Vorlage
-label.quota.enddate=Enddatum
-label.quota.endquota=Quota Ende
-label.quota.enforcequota=Erzwinge eine Quota
-label.quota.fullsummary=Alle Konten
-label.quota.minbalance=Min Abrechnung
-label.quota.remove=Eine Quota l\u00f6schen
-label.quota.startdate=Startdatum
-label.quota.startquota=Start Quota
-label.quota.statement=Aussage
-label.quota.statement.balance=Quota Abrechnung
-label.quota.statement.bydates=Aussage
-label.quota.statement.quota=Quota Verbrauch
-label.quota.statement.tariff=Quota Tarif
-label.quota.state=Status
-label.quota.summary=Summe
-label.quota.tariff.edit=Tarif bearbeiten
-label.quota.tariff.effectivedate=Anwendungsdatum
-label.quota.tariff=Tarif
-label.quota.tariff.value=Tarif Wert
-label.quota.total=Gesamt
-label.quota.totalusage=Gesamte Nutzung
-label.quota.type.name=Art der Auslastung
-label.quota.type.unit=Verbrauch der Einheit
-label.quota.usage=Verbrauch der Quota
-label.quota.value=Wert der Quota
-label.rbd.id=Cephx-Benutzer
-label.rbd.monitor=Ceph-\u00dcberwachung
-label.rbd.pool=Ceph-Pool
-label.rbd=RBD
-label.rbd.secret=Cephx-Geheimnis
-label.reboot=Neustart
-label.recent.errors=Aktuelle Fehler
-label.recover.vm=VM wiederherstellen
-label.redundant.router.capability=Redundanter Router Kapazit\u00e4t
-label.redundant.router=Redundanter Router
-label.redundant.state=Redundanter Status
-label.redundant.vpc=Redundante VPC
-label.refresh=Aktualisieren
-label.refresh.blades=Blades aktualisieren
-label.region.details=Regiondetails
-label.regionlevelvpc=Region Level VPC
-label.region=Region
-label.reinstall.vm=VM neu installieren
-label.related=Verwandt
-label.release.account.lowercase=Vom Benutzerkonto losl\u00f6sen
-label.release.account=Vom Benutzerkonto losl\u00f6sen
-label.release.dedicated.cluster=Dedizierter Cluster losl\u00f6sen
-label.release.dedicated.host=Dedizierter Host losl\u00f6sen
-label.release.dedicated.pod=Dedizierter Pod freigeben
-label.release.dedicated.vlan.range=Dedizierter VLAN/VNI Bereich losl\u00f6sen
-label.release.dedicated.zone=Dedizierte Zone losl\u00f6sen
-label.remind.later=Sp\u00e4ter erinnern
-label.remove.ACL=ACL entfernen
-label.remove.egress.rule=Egress Regel entfernen
-label.remove.from.load.balancer=Instanz von Lastverteiler entfernen
-label.remove.ingress.rule=Ingress Regel entfernen
-label.remove.ip.range=IP-Bereich entfernen
-label.remove.ldap=LDAP entfernen
-label.remove.network.offering=Netzwerkangebot entfernen
-label.remove.pf=Portweiterleitungsregel entfernen
-label.remove.project.account=Konto aus Projekt entfernen
-label.remove.region=Region entfernen
-label.remove.rule=Regel entfernen
-label.remove.ssh.key.pair=SSH-Schl\u00fcsselpaar entfernen
-label.remove.static.nat.rule=Statische NAT-Regel entfernen
-label.remove.static.route=Statische Route entfernen
-label.remove.this.physical.network=Dieses physikalische Netzwerk entfernen
-label.remove.tier=Ebene entfernen
-label.remove.vm.from.lb=VM von Lastverteiler-Regel entfernen
-label.remove.vm.load.balancer=VM aus Lastverteiler entfernen
-label.remove.vmware.datacenter=VMware-Rechenzentrum entfernen
-label.remove.vpc.offering=VPC-Angebot entfernen
-label.remove.vpc=VPC entfernen
-label.removing=am Entfernen
-label.removing.user=Entfernen von Benutzern
-label.reource.id=Ressourcenkennung
-label.replace.acl=ACL ersetzen
-label.replace.acl.list=ACL-Liste ersetzen
-label.required=Erforderlich
-label.requires.upgrade=Erfordert Aktualisierung
-label.reserved.ip.range=Reservierter IP-Bereich
-label.reserved.system.gateway=Reservierter System-Gateway
-label.reserved.system.ip=Reservierte System-IP
-label.reserved.system.netmask=Reservierte System-Netzmaske
-label.reset.ssh.key.pair.on.vm=SSH-Schl\u00fcsselpaar auf VM zur\u00fccksetzen
-label.reset.ssh.key.pair=SSH-Schl\u00fcsselpaar zur\u00fccksetzen
-label.resetVM=VM zur\u00fccksetzen
-label.reset.VPN.connection=VPN-Verbindung zur\u00fccksetzen
-label.resize.new.offering.id=Neues Angebot
-label.resize.new.size=Neue Gr\u00f6\u00dfe (GB)
-label.resize.shrink.ok=Verkleinern OK
-label.resource.limit.exceeded=Ressourcenbegrenzung erreicht
-label.resource.limits=Ressourcenbegrenzungen
-label.resource.name=Ressourcenname
-label.resource=Ressource
-label.resources=Ressourcen
-label.resource.state=Ressourcenstatus
-label.response.timeout.in.sec=Zeit\u00fcberschreitung der Antworkt (in Sek.)
-label.restart.network=Netzwerk neu starten
-label.restart.required=Neustart erforderlich
-label.restart.vpc=VPC neu starten
-label.restore=Wiederherstellen
-label.retry.interval=Wiederversuchs-Interval
-label.review=Nachpr\u00fcfung
-label.revoke.project.invite=Einladung widerrufen
-label.role=Rolle
-label.roles=Rollen
-label.roletype=Rollentyp
-label.root.certificate=Root-Zertifikat
-label.root.disk.controller=Root-Festplatten-Controller
-label.root.disk.offering=Root-Festplattenangebot
-label.root.disk.size=Root-Festplattengr\u00f6\u00dfe
-label.router.vm.scaled.up=Router VM hochskaliert
-label.routing.host=Routing Host
-label.routing=Routing
-label.rule.number=Regelnummer
-label.rule=Regel
-label.rules=Regeln
-label.running.vms=Laufende VMs
-label.s3.access_key=Zugriffsschl\u00fcssel
-label.s3.bucket=Bucket
-label.s3.connection_timeout=Verbindungszeit\u00fcberschreitung
-label.s3.endpoint=Endpunkt
-label.s3.max_error_retry=Maximale Fehlerwiederholungen
-label.s3.nfs.path=S3 NFS-Pfad
-label.s3.nfs.server=S3 NFS-Server
-label.s3.secret_key=Secret Key
-label.s3.socket_timeout=Socket-Zeit\u00fcberschreitung
-label.s3.use_https=HTTPS verwenden
-label.saml.enable=Autorisiere SAML SSO
-label.saml.entity=Identit\u00e4tsanbieter
-label.saturday=Samstag
-label.save.and.continue=Speichern und fortsetzen
-label.save.changes=\u00c4nderungen speichern
-label.save=Sichern
-label.saving.processing=Speichern....
-label.scaledown.policy=Herunterskalierungs-Richtlinie
-label.scale.up.policy=HOCHSKALIERUNGSRICHTLINIE
-label.scaleup.policy=Hochskalierungs-Richtlinie
-label.scope=Geltungsbereich
-label.search=Suche
-label.secondary.ips=Sekund\u00e4re IPs
-label.secondary.isolated.vlan.id=Sekund\u00e4re isolierte VLAN ID
-label.secondary.staging.store.details=Sekund\u00e4rer Staging Store Details
-label.secondary.staging.store=Sekund\u00e4rer Staging Store
-label.secondary.storage.count=Sekund\u00e4respeicher-Pools
-label.secondary.storage.details=Sekund\u00e4rspeicherdetails
-label.secondary.storage.limits=Sekund\u00e4rspeicherbegrenzungen (GiB)
-label.secondary.storage=Sekund\u00e4rspeicher
-label.secondary.storage.vm=Sekund\u00e4rspeicher-VM
-label.secondary.used=Genutzter Sekund\u00e4rspeicher
-label.secret.key=Secret Key
-label.security.group.name=Sicherheitsgruppen-Name
-label.security.groups.enabled=Sicherheitsgruppe aktiviert
-label.security.group=Sicherheitsgruppe
-label.security.groups=Sicherheitsgruppen
-label.select.a.template=Vorlage ausw\u00e4hlen
-label.select=Ausw\u00e4hlen
-label.select.a.zone=Zone ausw\u00e4hlen
-label.select.instance=Instanz ausw\u00e4hlen
-label.select.instance.to.attach.volume.to=Instanz w\u00e4hlen an welche das Volumen angef\u00fcgt wird
-label.select.iso.or.template=ISO oder Vorlage ausw\u00e4hlen
-label.select.offering=Angebot ausw\u00e4hlen
-label.select.project=Projekt ausw\u00e4hlen
-label.select.region=Region ausw\u00e4hlen
-label.select.template=Vorlage ausw\u00e4hlen
-label.select.tier=Ebene ausw\u00e4hlen
-label.select-view=Ansicht ausw\u00e4hlen
-label.select.vm.for.static.nat=VM f\u00fcr statisches NAT ausw\u00e4hlen
-label.sent=Versendet
-label.server=Server
-label.service.capabilities=Dienstf\u00e4higkeiten
-label.service.offering.details=Dienstangebotdetails
-label.service.offering=Dienstangebot
-label.services=Dienste
-label.service.state=Dienststatus
-label.session.expired=Sitzung abgelaufen
-label.set.default.NIC=Standard-NIC festlegen
-label.settings=Einstellungen
-label.setup=Konfiguration
-label.setup.network=Netzwerk einrichten
-label.set.up.zone.type=Zonentyp einrichten
-label.setup.zone=Zone einrichten
-label.shared=Gemeinsame
-label.SharedMountPoint=Geteilter Einh\u00e4ngepunkt
-label.show.advanced.settings=Erweiterte Einstellungen anzeigen
-label.show.ingress.rule=Zeige Regeln, die den Zutritt steuern
-label.shutdown.provider=Herunterfahrungs-Anbieter
-label.simplified.chinese.keyboard=Vereinfachte Chinesische Tastatur
-label.site.to.site.VPN=Site-to-site VPN
-label.size=Gr\u00f6\u00dfe
-label.skip.guide=Ich habe CloudStack bereits vorher benutzt, diese Hilfe \u00fcberspringen
-label.smb.domain=SMB-Dom\u00e4ne
-label.smb.password=SMB-Passwort
-label.smb.username=SMB-Benutzername
-label.snapshot.limits=Schnappschuss Grenzen
-label.snapshot.name=Schnappschuss Name
-label.snapshot.schedule=Wiederkehrende Schnappsch\u00fcsse einrichten
-label.snapshot=Schnappschuss
-label.snapshot.s=Schnappsch\u00fcsse
-label.snapshots=Schnappsch\u00fcsse
-label.SNMP.community=SNMP Gemeinschaft
-label.SNMP.port=SNMP-Port
-label.sockets=CPU-Sockets
-label.source.ip.address=Quell IP-Adresse
-label.source.nat=Source NAT
-label.source.nat.supported=SourceNAT unterst\u00fctzt
-label.source.port=Port der Quelle
-label.specify.IP.ranges=IP-Bereiche angeben
-label.specify.vlan=VLAN angeben
-label.specify.vxlan=VXLAN angeben
-label.SR.name=SR Name-Bezeichnung
-label.srx.details=SRX-Details
-label.srx=SRX
-label.ssh.key.pair.details=SSH-Schl\u00fcsselpaardetails
-label.ssh.key.pair=SSH-Schl\u00fcsselpaar
-label.ssh.key.pairs=SSH-Schl\u00fcsselpaare
-label.standard.us.keyboard=Standard-(US)-Tastatur
-label.start.IP=Start-IP
-label.start.lb.vm=LB-VM starten
-label.start.port=Startport
-label.start.reserved.system.IP=Reservierte System-IP starten
-label.start.vlan=Start VLAN
-label.start.vxlan=VXLAN starten
-label.state=Status
-label.static.nat.enabled=Statisches NAT eingeschaltet
-label.static.nat=Statische NAT
-label.static.nat.to=Statisches NAT nach
-label.static.nat.vm.details=Statisches NAT VM Details
-label.static.routes=Statische Routen
-label.statistics=Statistiken
-label.status=Status
-label.step.1=Schritt 1
-label.step.1.title=Schritt 1\: <strong>W\u00e4hlen Sie eine Vorlage aus</strong>
-label.step.2=Schritt 2
-label.step.2.title=Schritt 2\: <strong>Dienstangebot</strong>
-label.step.3=Schritt 3
-label.step.3.title=Schritt 3\: <strong id\="step3_label">W\u00e4hlen Sie ein Festplattenangebot aus</strong>
-label.step.4=Schritt 4
-label.step.4.title=Schritt 4\: <strong>Netzwerk</strong>
-label.step.5=Schritt 5
-label.step.5.title=Schritt 5\: <strong>\u00dcberpr\u00fcfung</strong>
-label.stickiness=Klebrigkeit
-label.stickiness.method=Stickness-Methode
-label.sticky.cookie-name=Cookiename
-label.sticky.domain=Domain
-label.sticky.expire=L\u00e4uft ab
-label.sticky.holdtime=Haltezeit
-label.sticky.indirect=Indirekt
-label.sticky.length=L\u00e4nge
-label.sticky.mode=Modus
-label.sticky.name=Sticky-Name
-label.sticky.nocache=Kein Cache
-label.sticky.postonly=nur Post
-label.sticky.prefix=Pr\u00e4fix
-label.sticky.request-learn=Verlange zu lernen
-label.sticky.tablesize=Tabellengr\u00f6\u00dfe
-label.stop.lb.vm=LB-VM stoppen
-label.stopped.vms=Gestoppte VMs
-label.stop=Stopp
-label.storage.pool=Speicher-Pool
-label.storage=Speicherung
-label.storage.tags=Datenspeicher-Markierung
-label.storage.traffic=Datenspeicherverkehr
-label.storage.type=Speichertyp
-label.subdomain.access=Subdomain-Zugriff
-label.submit=Absenden
-label.submitted.by=[Eingereicht von\: <span id\="submitted_by"></span>]
-label.succeeded=Erfolgreich
-label.sunday=Sonntag
-label.super.cidr.for.guest.networks=Super CIDR f\u00fcr Gast-Netzwerke
-label.supported.services=Unterst\u00fctzte Dienste
-label.supported.source.NAT.type=Unterst\u00fctzter Source-NAT-Typ
-label.supportsstrechedl2subnet=Unters\u00fctzt Streched L2 Subnet
-label.suspend.project=Projekt suspendieren
-label.switch.type=Switch Typ
-label.system.capacity=Systemkapazit\u00e4t
-label.system.offering.for.router=Systemangebot f\u00fcr Router
-label.system.offering=Systemangebot
-label.system.service.offering.details=Systemdienstangebotdetails
-label.system.service.offering=Systemdienstangebot
-label.system.vm.details=System-VM-Details
-label.system.vm.scaled.up=System-VM hochskaliert
-label.system.vms=System-VMs
-label.system.vm=System-VM
-label.system.vm.type=System-VM-Typ
-label.system.wide.capacity=Systemweite Kapazit\u00e4t
-label.tagged=Markiert
-label.tag.key=Schlagwortschl\u00fcssel
-label.tags=Markierungen
-label.tag.value=Schlagwortwert
-label.target.iqn=Ziel-IQN
-label.task.completed=Aufgabe fertiggestellt
-label.template.limits=Vorlagenbegrenzungen
-label.template=Vorlage
-label.TFTP.dir=TFTP-Verzeichnis
-label.tftp.root.directory=Tftp root-Verzeichnis
-label.theme.default=Motiv-Standardeinstellung
-label.theme.grey=Benutzerdefiniert - Grau
-label.theme.lightblue=Benutzerdefiniert - Hellblau
-label.threshold=Schwellenwert
-label.thursday=Donnerstag
-label.tier.details=Ebenendetails
-label.tier=Ebene
-label.time.colon=Zeit\:
-label.timeout.in.second = Zeit\u00fcberschreitung (Sekunden)
-label.timeout=Zeit\u00fcberschreitung
-label.time=Zeit
-label.timezone.colon=Zeitzone\:
-label.time.zone=Zeitzone
-label.timezone=Zeitzone
-label.token=Token
-label.total.cpu=Gesamtanzahl CPU
-label.total.CPU=Gesamtanzahl CPU
-label.total.hosts=Gesamtanzahl Hosts
-label.total.memory=Gesamter Speicher
-label.total.of.ip=Gesamtzahl der IP-Adressen
-label.total.of.vm=Gesamtanzahl VMs
-label.total.storage=Gesamter Speicher
-label.total.virtual.routers=Total an virtuellen Routern
-label.total.virtual.routers.upgrade=Total an virtuellen Routern, welche ein Softwareupgrade ben\u00f6tigen
-label.total.vms=Gesamtanzahl VMs
-label.traffic.label=Datenverkehrsbezeichnung
-label.traffic.type=Datenverkehrstyp
-label.traffic.types=Datenverkehrstypen
-label.tuesday=Dienstag
-label.type.id=Typenkennung
-label.type.lower=Typ
-label.type=Typ
-label.ucs=UCS
-label.uk.keyboard=UK-Tastatur
-label.unavailable=Nicht verf\u00fcgbar
-label.unhealthy.threshold=Schwellwert ungesund
-label.unlimited=Unbegrenzt
-label.untagged=Unmarkiert
-label.update.project.resources=Projektressourcen aktualisieren
-label.update.ssl.cert= SSL-Zertifikat
-label.update.ssl= SSL-Zertifikat
-label.updating=Aktualisierungsvorgang
-label.upgrade.required=Aktualisierung ist erforderlich
-label.upgrade.router.newer.template=Router upgraden um neuere Vorlage zu verwenden
-label.upload.from.local=Von lokal hochladen
-label.upload=Hochladen
-label.upload.template.from.local=Vorlage von lokal hochladen
-label.upload.volume.from.local=Volumen von lokal hochladen
-label.upload.volume.from.url=Volumen von URL hochladen
-label.upload.volume=Volumen hochladen
-label.url=URL
-label.usage.interface=Auslastungsoberfl\u00e4che
-label.usage.sanity.result=Usage Sanity Resultat
-label.usage.server=Auslastungsserver
-label.usage.type=Art der Auslastung
-label.usage.unit=Einheit
-label.used=Gebraucht
-label.user=Benutzer
-label.user.data=Benutzerdaten
-label.user.details=Benutzerdetails
-label.username=Benutzername
-label.username.lower=Benutzername
-label.users=Benutzer
-label.user.vm=Benutzer-VM
-label.use.vm.ips=VM-IPs verwenden
-label.use.vm.ip=VM-IP verwenden\:
-label.value=Wert
-label.vcdcname=vCenter RZ-Name
-label.vcenter.cluster=vCenter-Cluster
-label.vcenter.datacenter=vCenter-Rechenzentrum
-label.vcenter.datastore=vCenter-Datenspeicher
-label.vcenter.host=vCenter-Host
-label.vcenter.password=vCenter-Passwort
-label.vcenter.username=vCenter-Benutzername
-label.vcenter=vcenter
-label.vcipaddress=vCenter-IP-Adresse
-label.version=Version
-label.vgpu.max.resolution=Maximale Aufl\u00f6sung
-label.vgpu.max.vgpu.per.gpu=vGPUs pro GPU
-label.vgpu.remaining.capacity=Verbleibende Kapazit\u00e4t
-label.vgpu.type=vGPU-Typ
-label.vgpu=VGPU
-label.vgpu.video.ram=Video RAM
-label.view.all=Alle ansehen
-label.view=Ansicht
-label.view.console=Konsole ansehen
-label.viewing=Ansehen
-label.view.more=Weitere ansehen
-label.view.secondary.ips=Sekund\u00e4re IPs ansehen
-label.virtual.appliance.details=Virtuelle Appliance Details
-label.virtual.appliances=Virtuelle Appliances
-label.virtual.appliance=Virtuelle Applicance
-label.virtual.machines=Virtuelle Maschinen
-label.virtual.machine=Virtuelle Maschine
-label.virtual.networking=Virtuelle Netzwerkverbindung
-label.virtual.network=Virtuelles Netzwerk
-label.virtual.routers.group.account=Virtuelle Router gruppiert nach Benutzerkonto
-label.virtual.routers.group.cluster=Virtuelle Router gruppiert nach Cluster
-label.virtual.routers.group.pod=Virtuelle Router gruppiert nach Pod
-label.virtual.routers.group.zone=Virtuelle Router gruppiert nach Zone
-label.virtual.routers=Virtuelle Router
-label.virtual.router=Virtueller Router
-label.vlan.id=VLAN/VNI-Kennung
-label.vlan.only=VLAN
-label.vlan.range.details=VLAN-Bereichdetails
-label.vlan.ranges=VLAN-Bereich(e)
-label.vlan.range=VLAN/VNI-Bereich
-label.vlan=VLAN/VNI
-label.vlan.vni.ranges=VLAN/VNI-Bereich(e)
-label.vlan.vni.range=VLAN/VNI-Bereich
-label.vm.add=Instanz hinzuf\u00fcgen
-label.vm.destroy=Zerst\u00f6ren
-label.vm.display.name=VM-Anzeigename
-label.VMFS.datastore=VMFS-Datenspeicher
-label.vmfs=VMFS
-label.vm.id=VM-Kennung
-label.vm.ip=VM-IP-Adresse
-label.vm.name=VM-Name
-label.vm.password=Passwort der VM ist
-label.vm.reboot=Neustart
-label.VMs.in.tier=VMs in Ebene
-label.vmsnapshot.current=istAktuell
-label.vmsnapshot.memory=Schnappschussspeicher
-label.vmsnapshot.parentname=\u00dcbergeordnet
-label.vmsnapshot.type=Typ
-label.vmsnapshot=VM-Schnappsch\u00fcsse
-label.vm.start=Start
-label.vm.state=VM-Status
-label.vm.stop=Stopp
-label.vms=VMs
-label.vmware.datacenter.id=VMware-Rechenzentrumskennung
-label.vmware.datacenter.name=VMware-Rechenzentrumsname
-label.vmware.datacenter.vcenter=VMware Rechenzentrum-vCenter
-label.vmware.traffic.label=VMware Datenverkehrs-Bezeichnung
-label.vnet.id=VLAN/VNI-Kennung
-label.vnet=VLAN/VNI
-label.vnmc.devices=VNMC-Ger\u00e4te
-label.vnmc=VNMC
-label.volatile=Verg\u00e4nglich
-label.volgroup=Volumengruppe
-label.volume.details=Volumendetails
-label.volume.limits=Volumenbegrenzungen
-label.volume.migrated=Volumen migriert
-label.volume.name=Volumenname
-label.volumes=Volumina
-label.volume=Volume
-label.vpc.distributedvpcrouter=Verteilter VPC-Router
-label.vpc.id=VPC-Kennung
-label.VPC.limits=VPC-Begrenzungen
-label.vpc.offering.details=VPC-Angebotdetails
-label.vpc.offering=VPC-Angebot
-label.vpc.router.details=VPC-Routerdetails
-label.VPC.router.details=VPC-Routerdetails
-label.vpc.supportsregionlevelvpc=Unterst\u00fctzt Region Level VPC
-label.vpc.virtual.router=VPC Virtueller Router
-label.vpc=VPC
-label.VPN.connection=VPN-Verbindung
-label.vpn.customer.gateway=VPN Customer Gateway
-label.VPN.customer.gateway=VPN Customer Gateway
-label.vpn.force.encapsulation=Erzwinge eine Kapselung der UDP- in ESP-Pakete
-label.VPN.gateway=VPN-Gateway
-label.vpn=VPN
-label.vsmctrlvlanid=Steuerungs-VLAN-Kennung
-label.vsmpktvlanid=Paket-VLAN-Kennung
-label.vsmstoragevlanid=Speicher-VLAN-Kennung
-label.vsphere.managed=vSphere verwaltet
-label.vswitch.name=vSwitch-Name
-label.vSwitch.type=vSwitch-Typ
-label.vxlan.id=VXLAN-Kennung
-label.vxlan.range=VXLAN-Bereich
-label.vxlan=VXLAN
-label.waiting=Warten
-label.warning=Warnung
-label.warn.upper=WARNEN
-label.warn=Warnen
-label.wednesday=Mittwoch
-label.weekly=W\u00f6chentlich
-label.welcome.cloud.console=Willkommen bei der Verwaltungskonsole
-label.welcome=Willkommen
-label.what.is.cloudstack=Was ist CloudStack&\#8482?
-label.xenserver.tools.version.61.plus=Originale XS-Version ist 6.1\\+
-label.Xenserver.Tools.Version61plus=Originale XS-Version ist 6.1\\+
-label.xenserver.traffic.label=XenServer Datenverkehrs-Bezeichnung
-label.yes=Ja
-label.zone.dedicated=Zone dediziert
-label.zone.details=Zonendetails
-label.zone.id=Zone ID
-label.zone.lower=Zone
-label.zone.name=Zonenname
-label.zone.step.1.title=Schritt 1\: <strong>W\u00e4hlen Sie ein Netzwerk aus</strong>
-label.zone.step.2.title=Schritt 2\: <strong>F\u00fcgen Sie eine Zone hinzu</strong>
-label.zone.step.3.title=Schritt 3\: <strong>Pod hinzuf\u00fcgen</strong>
-label.zone.step.4.title=Schritt 4\: <strong>F\u00fcgen Sie einen IP-Bereich hinzu</strong>
-label.zones=Zonen
-label.zone.type=Zonentyp
-label.zone.wide=Zonenweit
-label.zoneWizard.trafficType.guest=Gast\: Datenverkehr zwischen den virtuellen Maschinen der Endbenutzer
-label.zoneWizard.trafficType.management=Management\: Datenverkehr zwischen den CloudStack internen Ressourcen, inklusive aller Komponenten, die mit dem Management Server kommunizieren, wie Hosts und CloudStack System VMs
-label.zoneWizard.trafficType.public=\u00d6ffentlich\: Datenverkehr zwischen dem Internet und virtuellen Maschinen in der Cloud.
-label.zoneWizard.trafficType.storage=Speicherung\: Datenverkehr zwischen Haupt- und Sekund\u00e4rspeicherserver, wie VM-Vorlagen und Schnappsch\u00fcsse.
-label.zone=Zone
-managed.state=Verwalteter Status
-message.acquire.ip.nic=Bitte best\u00e4tigen Sie, dass Sie eine neue, sekund\u00e4re IP-Adresse f\u00fcr dieses Netzwerk-Schnittstelle ben\u00f6tigen.<br/>HINWEIS\: Sie m\u00fcssen diese neue sekund\u00e4re IP-Adresse manuell in der virtuellen Maschine hinzuf\u00fcgen.
-message.acquire.new.ip=Bitte best\u00e4tigen Sie, dass sie eine neue IP Adresse f\u00fcr dieses Netzwerk haben m\u00f6chten.
-message.acquire.new.ip.vpc=Bitte best\u00e4tigen Sie, dass sie eine neue IP Adresse f\u00fcr diesen VPC ben\u00f6tigen.
-message.acquire.public.ip=Bitte w\u00e4hlen Sie eine Zone, von der Sie Ihre neue IP erlangen m\u00f6chten.
-message.action.cancel.maintenance=Ihr Host ist erfolgreich f\u00fcr die Wartung abgebrochen. Dieser Prozess kann ein paar Minuten dauern.
-message.action.cancel.maintenance.mode=Bitte best\u00e4tigen Sie, dass Sie die Wartung abbrechen m\u00f6chten.
-message.action.change.service.warning.for.instance=Ihre Instanz muss zuerst unterbrochen werden, bevor Sie Ihr derzeitiges Dienstangebot \u00e4ndern k\u00f6nnen.
-message.action.change.service.warning.for.router=Ihr Router muss zuerst unterbrochen werden, bevor Sie Ihr derzeitiges Dienstangebot \u00e4ndern k\u00f6nnen.
-message.action.delete.cluster=Bitte best\u00e4tigen Sie, dass Sie dieses Cluster l\u00f6schen m\u00f6chten.
-message.action.delete.disk.offering=Bitte best\u00e4tigen Sie, dass Sie dieses Festplattenangebot l\u00f6schen m\u00f6chten.
-message.action.delete.domain=Bitte best\u00e4tigen Sie, dass Sie diese Domain l\u00f6schen m\u00f6chten.
-message.action.delete.external.firewall=Bitte best\u00e4tigen Sie, dass Sie die externe Firewall entfernen m\u00f6chten. Warnung\: Wenn Sie planen dieselbe exterene Firewall wieder hinzuzuf\u00fcgen, m\u00fcssen Sie s\u00e4mtliche Nutzungsdaten auf diesem Ger\u00e4t zur\u00fccksetzen
-message.action.delete.external.load.balancer=Bitte best\u00e4tigen Sie, dass Sie diesen externen Loadbalancer entfernen m\u00f6chten. Warnung\: Wenn Sie planen denselben exterenen Loadbalancer wieder hinzuzuf\u00fcgen, m\u00fcssen Sie s\u00e4mtliche Nutzungsdaten auf diesem Ger\u00e4t zur\u00fccksetzen
-message.action.delete.ingress.rule=Bitte best\u00e4tigen Sie, dass Sie diese Zutrittsregel l\u00f6schen wollen.
-message.action.delete.ISO=Bitte best\u00e4tigen Sie, dass Sie diese ISO l\u00f6schen m\u00f6chten.
-message.action.delete.ISO.for.all.zones=Die ISO gilt f\u00fcr alle Zonen. Bitte best\u00e4tigen Sie, dass Sie diese aus allen Zonen l\u00f6schen m\u00f6chten.
-message.action.delete.network=Bitte best\u00e4tigen Sie, dass Sie dieses Netzwerk l\u00f6schen m\u00f6chten.
-message.action.delete.nexusVswitch=Bitte best\u00e4tigen Sie, dass Sie diesen nexus 1000v l\u00f6schen m\u00f6chten.
-message.action.delete.nic=Bitte best\u00e4tigen Sie die L\u00f6schung dieser NIC, da dies auch zur L\u00f6schung des zugeh\u00f6rigen Netzwerks von der VM f\u00fchrt.
-message.action.delete.physical.network=Bitte best\u00e4tigen Sie, dass Sie dieses physikalische Netzwerk l\u00f6schen m\u00f6chten
-message.action.delete.pod=Bitte best\u00e4tigen Sie, dass Sie dieses pod l\u00f6schen m\u00f6chten.
-message.action.delete.primary.storage=Bitte best\u00e4tigen Sie, dass Sie diese Hauptspeicher l\u00f6schen m\u00f6chten.
-message.action.delete.secondary.storage=Bitte best\u00e4tigen Sie, dass Sie diesen Sekund\u00e4rspeicher l\u00f6schen m\u00f6chten.
-message.action.delete.security.group=Bitte best\u00e4tigen Sie, dass Sie diese Sicherheitsgruppe l\u00f6schen m\u00f6chten.
-message.action.delete.service.offering=Bitte best\u00e4tigen Sie, dass Sie dieses Dienstangebot l\u00f6schen m\u00f6chten.
-message.action.delete.snapshot=Bitte best\u00e4tigen Sie, dass Sie diesen Schnappschuss l\u00f6schen m\u00f6chten.
-message.action.delete.system.service.offering=Bitte best\u00e4tigen Sie, dass Sie dieses Dienstangebot des Systems l\u00f6schen m\u00f6chten
-message.action.delete.template=Bitte best\u00e4tigen Sie, dass Sie diese Vorlage l\u00f6schen m\u00f6chten.
-message.action.delete.template.for.all.zones=Die Vorlage wird f\u00fcr alle Zonen genutzt. Bitte best\u00e4tigen Sie, dass Sie diese f\u00fcr alle Zonen l\u00f6schen m\u00f6chten.
-message.action.delete.volume=Bitte best\u00e4tigen Sie, dass Sie dieses Volumen l\u00f6schen m\u00f6chten.
-message.action.delete.zone=Bitte best\u00e4tigen Sie, dass Sie diese Zone l\u00f6schen m\u00f6chten.
-message.action.destroy.instance=Bitte best\u00e4tigen Sie, dass Sie diese Instanz l\u00f6schen m\u00f6chten.
-message.action.destroy.systemvm=Bitte best\u00e4tigen Sie, dass Sie diese System-VM zerst\u00f6ren m\u00f6chten.
-message.action.disable.cluster=Bitte best\u00e4tigen Sie, dass Sie diesen Cluster deaktivieren m\u00f6chten.
-message.action.disable.nexusVswitch=Bitte best\u00e4tigen Sie, dass sie diesen nexus 1000v deaktivieren m\u00f6chten.
-message.action.disable.physical.network=Bitte best\u00e4tigen Sie, dass Sie dieses physikalische Netzwerk deaktivieren m\u00f6chten.
-message.action.disable.pod=Bitte best\u00e4tigen Sie, dass Sie diesen Pod deaktivieren m\u00f6chten.
-message.action.disable.static.NAT=Bitte best\u00e4tigen Sie, dass Sie die statische NAT deaktivieren m\u00f6chten.
-message.action.disable.zone=Bitte best\u00e4tigen Sie, dass Sie diese Zone deaktivieren m\u00f6chten.
-message.action.downloading.template=Vorlage wird heruntergeladen.
-message.action.download.iso=Bitte best\u00e4tigen Sie, dass Sie dieses ISO herunterladen m\u00f6chten.
-message.action.download.template=Bitte best\u00e4tigen Sie, dass Sie dieses Template herunterladen m\u00f6chten.
-message.action.enable.cluster=Bitte best\u00e4tigen Sie, dass Sie diesen Cluster aktivieren m\u00f6chten.
-message.action.enable.maintenance=Ihr Host wurde erfolgreich f\u00fcr die Wartung vorbereitet. Dieser Prozess kann einige Minuten, oder abh\u00e4nig von der jetzigen Anzahl VMs auf diesem Host auch l\u00e4nger, in Anspruch nehmen.
-message.action.enable.nexusVswitch=Bitte best\u00e4tigen Sie, dass sie diesen nexus 1000v aktivieren m\u00f6chten.
-message.action.enable.physical.network=Bitte best\u00e4tigen Sie, dass Sie dieses physikalische Netzwerk aktivieren m\u00f6chten.
-message.action.enable.pod=Bitte best\u00e4tigen Sie, dass Sie diesen Pod aktivieren m\u00f6chten.
-message.action.enable.zone=Bitte best\u00e4tigen Sie, dass Sie diese Zone aktivieren m\u00f6chten.
-message.action.expunge.instance=Bitte best\u00e4tigen Sie, dasss Sie diese Instanz unwiederbringlich l\u00f6schen m\u00f6chten.
-message.action.force.reconnect=Ihr Host wurde erfolgreich gewzungen wiederzuverbinden. Dieser Prozess kann einige Minuten beanspruchen.
-message.action.host.enable.maintenance.mode=Die Aktivierung des Wartungsmodus verursacht eine Livemigration aller laufenden Instanzen auf diesem Host zu einem anderen verf\u00fcgbaren Host.
-message.action.instance.reset.password=Bitte best\u00e4tigen Sie, dass Sie das ROOT Passwort f\u00fcr diese virtuelle Maschine \u00e4ndern m\u00f6chten.
-message.action.manage.cluster=Bitte best\u00e4tigen Sie, dass das Cluster bearbeitet werden soll.
-message.action.primarystorage.enable.maintenance.mode=Warnung\: den Hauptspeicher in den Wartungsmodus zu stellen, wird alle VMs stoppen, welche noch Volumen auf demjenigen haben. M\u00f6chten Sie fortfahren?
-message.action.reboot.instance=Bitte best\u00e4tigen Sie, dass Sie diese Instanz neu starten m\u00f6chten.
-message.action.reboot.router=Alle angebotenen Dienste dieses Routers werden unterbrochen. Bitte best\u00e4tigen Sie, dass Sie den Router neu starten m\u00f6chten.
-message.action.reboot.systemvm=Bitte best\u00e4tigen Sie, dass Sie diese System-VM neu starten m\u00f6chten.
-message.action.release.ip=Bitte best\u00e4tigen Sie, dass Sie diese IP freigeben m\u00f6chten.
-message.action.remove.host=Bitte best\u00e4tigen Sie, dass Sie diesen Host entfernen m\u00f6chten.
-message.action.reset.password.off=Ihre Instanz untersch\u00fctzt derzeitig nicht dieses Feature.
-message.action.reset.password.warning=Ihre Instanz muss zuerst unterbrochen werden, bevor Sie Ihr derzeitiges Passwort \u00e4ndern k\u00f6nnen.
-message.action.restore.instance=Bitte best\u00e4tigen Sie, dass Sie diese Instanz wiederherstellen m\u00f6chten.
-message.action.revert.snapshot=Bitte best\u00e4tigen Sie, dass Sie das dazugeh\u00f6rige Volumen zu diesen Schnappschuss zur\u00fccksetzten m\u00f6chten.
-message.action.start.instance=Bitte best\u00e4tigen Sie, dass Sie diese Instanz starten m\u00f6chten.
-message.action.start.router=Bitte best\u00e4tigen Sie, dass Sie diesen Router starten m\u00f6chten.
-message.action.start.systemvm=Bitte best\u00e4tigen Sie, dass Sie diese System-VM starten m\u00f6chten.
-message.action.stop.instance=Bitte best\u00e4tigen Sie, dass Sie diese Instanz anhalten m\u00f6chten.
-message.action.stop.router=Alle von diesem Router angebotenen Dienste werden unterbrochen. Bitte best\u00e4tigen Sie, dass Sie diesen Router stoppen m\u00f6chten.
-message.action.stop.systemvm=Bitte best\u00e4tigen Sie, dass Sie diese System-VM stoppen m\u00f6chten.
-message.action.take.snapshot=Bitte best\u00e4tigen Sie, dass Sie einen Schnappschuss von diesem Volumen sichern m\u00f6chten.
-message.action.unmanage.cluster=Bitte best\u00e4tigen Sie, dass Sie das Cluster vernachl\u00e4ssigen m\u00f6chten.
-message.action.vmsnapshot.delete=Bitte best\u00e4tigen Sie, dass Sie diesen VM Schnappschuss l\u00f6schen wollen.
-message.action.vmsnapshot.revert=VM-Schnappschuss zur\u00fccksetzen
-message.activate.project=Sind Sie sicher, dass Sie dieses Projekt aktivieren wollen?
-message.add.cluster=Hinzuf\u00fcgen eines vom Hypervisor verwaltender Clusters f\u00fcr Zone <b><span id\="zone_name"></span></b>, Pod <b><span id\="pod_name"></span></b>
-message.add.cluster.zone=Ein Hypervisor verwalteter Cluster f\u00fcr Zone <b><span id\="zone_name"></span></b> hinzuf\u00fcgen
-message.add.disk.offering=Bitte spezifizieren Sie die folgenden Parameter, um ein neues Festplattenangebot hinzuzuf\u00fcgen.
-message.add.domain=Bitte spezifizieren Sie die Subdomain, die Sie unter dieser Domain erstellen wollen.
-message.added.new.nuage.vsp.controller=Neuer Nicira Vsp Controller hinzugef\u00fcgt
-message.added.vpc.offering=VPC-Angebot hinzugef\u00fcgt
-message.add.firewall=Eine Firewall zur Zone hinzuf\u00fcgen
-message.add.guest.network=Bitte best\u00e4tigen Sie, dass Sie ein Gast-Netzwerk hinzuf\u00fcgen m\u00f6chten.
-message.add.host=Bitte spezifizieren Sie die folgenden Parameter, um einen neuen Host hinzuzuf\u00fcgen.
-message.adding.host=Host wird hinzugef\u00fcgt
-message.adding.Netscaler.device=Hinzuf\u00fcgen eines Netscaler Ger\u00e4tes
-message.adding.Netscaler.provider=Hinzuf\u00fcgen eines Netscaler Provider
-message.add.ip.range.direct.network=Einen IP-Bereich zum direkten Netzwerk<b><span id\="directnetwork_name"></span></b> in Zone hinzuf\u00fcgen <b><span id\="zone_name"></span></b>
-message.add.ip.range=IP-Bereich zu \u00f6ffentlichem Netzwerk in Zone hinzuf\u00fcgen
-message.add.ip.range.to.pod=<p>Einen IP-Bereich zum Pod hinzuf\u00fcgen <b><span id\="pod_name_label"></span></b></p>
-message.additional.networks.desc=Bitte w\u00e4hlen Sie ein oder mehrere Netzwerke aus, an die Ihre virtuelle Instanz verbunden wird.
-message.add.load.balancer=Einen Lastverteiler zur Zone hinzuf\u00fcgen
-message.add.load.balancer.under.ip=Die Lasterverteiler-Regel wurde hinzugef\u00fcgt zu IP\:
-message.add.network=Eine neues Netzwerk f\u00fcr Zone hinzuf\u00fcgen\:  <b><span id\="zone_name"></span></b>
-message.add.new.gateway.to.vpc=Bitte spezifizieren Sie Informationen  um ein neues Gateway f\u00fcr dieses VPC hinzuzuf\u00fcgen.
-message.add.pod.during.zone.creation=Jede Zone muss mindestens einen Pod enthalten, welchen wir nun konfigurieren und hinzuf\u00fcgen. Ein Pod enth\u00e4lt Hosts und prim\u00e4ren Storage, welche in einem sp\u00e4teren Schritt hinzugef\u00fcgt werden. Zuerst konfigurieren Sie den Bereich der reservierten IP-Adressen f\u00fcr CloudStacks internen Verwaltungsdatenverkehr. Der reservierte IP-Bereich muss f\u00fcr jede Zone in der Cloud eindeutig sein.
-message.add.pod=Ein neuer Pod f\u00fcr Zone <b><span id\="add_pod_zone_name"></span></b> hinzuf\u00fcgen
-message.add.primary=Bitte spezifizieren Sie die folgenden Parameter, um einen neuen Hauptspeicher hinzuzuf\u00fcgen
-message.add.primary.storage=Bitte f\u00fcgen Sie einen neuen prim\u00e4ren Speicher f\u00fcr Zone <b><span id\="zone_name"></span></b>, und Pod <b><span id\="pod_name"></span></b> hinzu.
-message.add.region=Bitte geben Sie die ben\u00f6tigten Informationen ein um eine neue Region hinzuzuf\u00fcgen
-message.add.secondary.storage=Bitte f\u00fcgen Sie einen neuen Speicher f\u00fcr die Zone <b><span id\="zone_name"></span></b> hinzu.
-message.add.service.offering=Bitte geben Sie die folgenden Daten ein, um ein neues Berechnungsangebot hinzuzuf\u00fcgen.
-message.add.system.service.offering=Bitte geben Sie die folgenden Daten ein, um ein neues Systemdienstangebot hinzuzuf\u00fcgen.
-message.add.template=Bitte geben Sie die folgende Daten ein, um Ihre neue Vorlage zu erstellen
-message.add.volume=Bitte geben Sie die folgende Daten ein, um ein neues Volumen hinzuzuf\u00fcgen.
-message.add.VPN.gateway=Bitte best\u00e4tigen Sie, dass sie ein VPN Gateway hinzuf\u00fcgen wollen.
-message.admin.guide.read=F\u00fcr VMware basierte VMs, lesen Sie bitte den Abschnitt \u00fcber das dynamische Skalieren in dem Administrations-Leitfaden bevor Sie hochskalieren. M\u00f6chten Sie fortfahren?
-message.advanced.mode.desc=W\u00e4hlen Sie dieses Netzwerkmodell aus, wenn Sie VLAN-Unterst\u00fctzung aktivieren m\u00f6chten. Dieses Netzwerkmodell bietet die gr\u00f6\u00dfte Flexibilit\u00e4t um Administratoren kundenspezifische Netzwerkangebote zu erm\u00f6glichen, wie das Anbieten von Firewall, VPN oder Lastverteilerunterst\u00fctzung wie auch aktivieren direkten gegen virtuellen Netzwerkverkehr.
-message.advanced.security.group=W\u00e4hlen Sie dies, wenn Sie Sicherheits Gruppen verwenden wollen, um eine Isolation f\u00fcr Gast VMs anzubieten.
-message.advanced.virtual=W\u00e4hlen Sie dies, wenn Sie Zonen-weite VLANs verwenden wollen, um eine Isolation f\u00fcr Gast VMs anzubieten.
-message.after.enable.s3=S3-gest\u00fctzter zweiter Speicher konfiguriert. Hinweis\: Wenn Sie dieses Seite verlassen, k\u00f6nnen Sie S3 nicht mehr umkonfigurieren.
-message.after.enable.swift=Swift ist konfiguriert. Bemerkung\: Wenn Sie diese Seite verlassen, werden Sie nicht mehr in der Lage sein Swift um zu konfigurieren.
-message.alert.state.detected=Alarmstatus erkannt
-message.allow.vpn.access=Bitte geben Sie einen Benutzernamen und ein Kennwort f\u00fcr den Benutzer ein, f\u00fcr den Sie VPN-Zugang m\u00f6chten.
-message.apply.snapshot.policy=Sie haben Ihre derzeitige Schnappschuss Richtlinie erfolgreich aktualisiert.
-message.attach.iso.confirm=Bitte best\u00e4tigen Sie, dass sie die ISO zu Ihrer virtuellen Instanz hinzuf\u00fcgen m\u00f6chten.
-message.attach.volume=Bitte f\u00fcllen Sie die folgenden Daten aus um neue Volumen anzubinden. Falls Sie das Festplattenvolumen zu einer Windows-basierten virtuellen Maschine anbinden, m\u00fcssen Sie die Instanz neu starten um die angebundene Festplatte verwenden zu k\u00f6nnen.
-message.basic.mode.desc=W\u00e4hlen Sie dieses Netzwerk-Modell falls Sie <b>*<u>keine</u>*</b> VLAN-Unterst\u00fctzung aktivieren m\u00f6chten. Allen virtuellen Instanzen unter diesem Netzwerk-Modell erhalten eine IP direkt von Netzwerk, Sicherheitsgruppen werden verwendet um Sicherheit und Trennung zu gew\u00e4hrleisten.
-message.change.ipaddress=Bitte best\u00e4tigen Sie, dass Sie die IP Adresse f\u00fcr dieses NIC auf dieser VM \u00e4ndern m\u00f6chten.
-message.change.offering.confirm=Bitte best\u00e4tigen Sie, dass Sie das Dienstangebot dieser virtuellen Instanz \u00e4ndern m\u00f6chten.
-message.change.password=Bitte \u00e4ndern Sie Ihre Passwort.
-message.cluster.dedicated=Cluster dediziert
-message.cluster.dedication.released=Cluster-Dedizierung aufgehoben
-message.configure.all.traffic.types=Sie haben mehrere physikalische Netzwerke; bitte konfigurieren Sie f\u00fcr jeden Datenverkehrstyp Bezeichnungen indem Sie auf den Bearbeiten-Knopf klicken
-message.configure.firewall.rules.allow.traffic=Konfigurieren Sie die Regeln um Datenverkehr zu erlauben
-message.configure.firewall.rules.block.traffic=Konfigurieren Sie die Regeln um den Datenverkehr zu blockieren
-message.configure.ldap=Bitte best\u00e4tigen Sie, dass Sie LDAP konfigurieren m\u00f6chten.
-message.configuring.guest.traffic=Gast-Datenverkehr wird konfiguriert
-message.configuring.physical.networks=Physikalische Netzwerke werden konfiguriert
-message.configuring.public.traffic=\u00d6ffentlicher Datenverkehr wird konfiguriert
-message.configuring.storage.traffic=Speicherungsdatenverkehr wird konfiguriert
-message.confirm.action.force.reconnect=Bitte best\u00e4tigen Sie, dass Sie f\u00fcr diesen Host das Wiederverbinden erzwingen m\u00f6chten.
-message.confirm.add.vnmc.provider=Bitte best\u00e4tigen Sie, dass Sie den VNMC-Provider hinzuf\u00fcgen m\u00f6chten.
-message.confirm.archive.alert=Bitte best\u00e4tigen Sie, dass Sie diesen Alarm archivieren m\u00f6chten.
-message.confirm.archive.event=Bitte best\u00e4tigen Sie, dass Sie dieses Ereignis archivieren m\u00f6chten.
-message.confirm.archive.selected.alerts=Bitte best\u00e4tigen Sie, dass Sie die ausgew\u00e4hlten Alarme archivieren m\u00f6chten
-message.confirm.archive.selected.events=Bitte best\u00e4tigen Sie, dass Sie die ausgew\u00e4hlten Vorg\u00e4nge archivieren m\u00f6chten
-message.confirm.attach.disk=Sind Sie sicher, dass Sie eine Platte hinzuf\u00fcgen m\u00f6chten?
-message.confirm.create.volume=Sind Sie sicher, dass Sie ein Volumen erstellen m\u00f6chten?
-message.confirm.current.guest.CIDR.unchanged=M\u00f6chten Sie den aktuellen Gastnetzwerk CIDR unver\u00e4ndert lassen?
-message.confirm.dedicate.cluster.domain.account=M\u00f6chten Sie diesen Cluster wirklich f\u00fcr diese Domain / dieses Benutzerkonto dedizieren?
-message.confirm.dedicate.host.domain.account=M\u00f6chten Sie diesen Host wirklich f\u00fcr diese Domain / dieses Benutzerkonto dedizieren?
-message.confirm.dedicate.pod.domain.account=M\u00f6chten Sie diesen Pod wirklich f\u00fcr diese Domain / dieses Benutzerkonto dedizieren?
-message.confirm.dedicate.zone=M\u00f6chten Sie diese Zone wirklich f\u00fcr diese Domain / dieses Benutzerkonto dedizieren?
-message.confirm.delete.acl.list=Sind Sie sicher, dass Sie diese ACL-Liste l\u00f6schen m\u00f6chten?
-message.confirm.delete.alert=Sind Sie sicher, dass Sie diesen Alarm l\u00f6schen m\u00f6chten?
-message.confirm.delete.baremetal.rack.configuration=Bitte best\u00e4tigen Sie, dass sie die Baremetal Rackkonfiguration l\u00f6schen wollen.
-message.confirm.delete.BigSwitchBcf=Bitte best\u00e4tigen Sie, dass Sie diesen BigSwitch BCF Controller l\u00f6schen m\u00f6chten
-message.confirm.delete.BrocadeVcs=Bitte best\u00e4tigen Sie, dass Sie Brocade Vcs Switch l\u00f6schen m\u00f6chten
-message.confirm.delete.ciscoASA1000v=Bitte best\u00e4tigen Sie, dass Sie CiscoASA1000v l\u00f6schen m\u00f6chten
-message.confirm.delete.ciscovnmc.resource=Bitte best\u00e4tigen Sie, dass Sie die CiscoVNMC Ressource l\u00f6schen m\u00f6chten
-message.confirm.delete.F5=Bitte best\u00e4tigen Sie, dass Sie F5 l\u00f6schen m\u00f6chten
-message.confirm.delete.internal.lb=Bitte best\u00e4tigen Sie, dass Sie den internen Loadbalancer l\u00f6schen m\u00f6chten
-message.confirm.delete.NetScaler=Bitte best\u00e4tigen Sie, dass Sie NetScaler l\u00f6schen m\u00f6chten
-message.confirm.delete.NuageVsp=Bitte best\u00e4tigen Sie, dass Sie das Nuage Virtulazierte Dienste Verzeichnis l\u00f6schen m\u00f6chten
-message.confirm.delete.PA=Bitte best\u00e4tigen Sie, dass Sie Palo Alto l\u00f6schen m\u00f6chten
-message.confirm.delete.secondary.staging.store=Bitte best\u00e4tigen Sie, dass Sie diesen Sekund\u00e4r-Staging-Store l\u00f6schen m\u00f6chten.
-message.confirm.delete.SRX=Bitte best\u00e4tigen Sie, dass Sie SRX l\u00f6schen m\u00f6chten
-message.confirm.delete.ucs.manager=Bitte best\u00e4tigen Sie, dass Sie UCS-Manager l\u00f6schen m\u00f6chten
-message.confirm.destroy.router=Bitte best\u00e4tigen Sie, dass Sie diesen Router zerst\u00f6ren m\u00f6chten
-message.confirm.disable.host=Bitte best\u00e4tigen Sie, dass Sie den Host deaktivieren m\u00f6chten
-message.confirm.disable.network.offering=Sind Sie sicher, dass Sie dieses Netzwerkangebot deaktivieren m\u00f6chten?
-message.confirm.disable.provider=Bitte best\u00e4tigen Sie, dass Sie diesen Anbieter l\u00f6schen m\u00f6chten
-message.confirm.disable.vnmc.provider=Bitte best\u00e4tigen Sie, dass Sie den VNMC-Provider deaktivieren m\u00f6chten.
-message.confirm.disable.vpc.offering=Sind Sie sicher, dass Sie dieses VPC-Angebot deaktivieren m\u00f6chten?
-message.confirm.enable.host=Bitte best\u00e4tigen Sie, dass Sie den Host aktivieren m\u00f6chten
-message.confirm.enable.network.offering=Sind Sie sicher, dass Sie dieses Netzwerkangebot aktivieren m\u00f6chten?
-message.confirm.enable.provider=Bitte best\u00e4tigen Sie, dass Sie diesen Anbieter hinzuf\u00fcgen m\u00f6chten
-message.confirm.enable.vnmc.provider=Bitte best\u00e4tigen Sie, dass Sie den VNMC-Provider aktivieren m\u00f6chten.
-message.confirm.enable.vpc.offering=Sind Sie sicher, dass Sie dieses VPC-Angebot aktivieren m\u00f6chten?
-message.confirm.join.project=Bitte best\u00e4tigen Sie, dass Sie diesem Projekt beitreten m\u00f6chten.
-message.confirm.migrate.volume=M\u00f6chten Sie dieses Volumen migrieren?
-message.confirm.refresh.blades=Bitte best\u00e4tigen Sie, dass Sie die Blades aktuallisieren m\u00f6chten.
-message.confirm.release.dedicated.cluster=M\u00f6chten Sie diesen dedizierten Cluster freigeben?
-message.confirm.release.dedicated.host=M\u00f6chten Sie diesen dedizierten Host freigeben?
-message.confirm.release.dedicated.pod=M\u00f6chten Sie diesen dedizierten Pod freigeben?
-message.confirm.release.dedicated.zone=M\u00f6chten Sie diese dedizierte Zone freigeben?
-message.confirm.release.dedicate.vlan.range=Bitte best\u00e4tigen Sie, dass Sie ein dedizierten VLAN-Bereich losl\u00f6sen m\u00f6chten
-message.confirm.remove.event=Sind Sie sicher, dass Sie dieses Ereignis entfernen m\u00f6chten?
-message.confirm.remove.IP.range=Bitte best\u00e4tigen Sie, dass sie diesen IP Adressbereich l\u00f6schen m\u00f6chten.
-message.confirm.remove.load.balancer=Bitte best\u00e4tigen Sie, dass Sie die VM vom Lastverteiler zur\u00fcckziehen m\u00f6chten
-message.confirm.remove.network.offering=Sind Sie sicher, dass Sie dieses Netzwerkangebot entfernen m\u00f6chten?
-message.confirm.remove.selected.alerts=Bitte best\u00e4tigen Sie, dass Sie die ausgew\u00e4hlten Alarme entfernen m\u00f6chten
-message.confirm.remove.selected.events=Bitte best\u00e4tigen Sie, dass Sie die ausgew\u00e4hlten Ereignisse entfernen m\u00f6chten
-message.confirm.remove.vmware.datacenter=Bitte best\u00e4tigen Sie, dass Sie das VMware Rechenzentrum entfernen m\u00f6chten
-message.confirm.remove.vpc.offering=Sind Sie sicher, dass Sie dieses VPC-Angebot entfernen m\u00f6chten?
-message.confirm.replace.acl.new.one=M\u00f6chten Sie die ACL durch die neue ersetzen?
-message.confirm.scale.up.router.vm=M\u00f6chten Sie die Router-VM wirklich hochskalieren?
-message.confirm.scale.up.system.vm=M\u00f6chten Sie die System-VM wirklich hochskalieren?
-message.confirm.shutdown.provider=Bitte best\u00e4tigen Sie, dass sie diesen Anbieter herunterfahren m\u00f6chten.
-message.confirm.start.lb.vm=Bitte best\u00e4tigen Sie, dass Sie die LB VM starten m\u00f6chten
-message.confirm.stop.lb.vm=Bitte best\u00e4tigen Sie, dass Sie die LB VM stoppen m\u00f6chten
-message.confirm.upgrade.router.newer.template=Bitte best\u00e4tigen Sie, dass Sie den Router aktuallisieren m\u00f6chten, so dass er die neue Vorlage verwendet.
-message.confirm.upgrade.routers.account.newtemplate=Bitte best\u00e4tigen Sie, dass Sie alle Router zu dieser Benutzerkonto aktuallisieren m\u00f6chten, so dass sie die neue Vorlage verwenden.
-message.confirm.upgrade.routers.cluster.newtemplate=Bitte best\u00e4tigen Sie, dass Sie alle Router in diesem Cluster aktuallisieren m\u00f6chten, so dass sie die neue Vorlage verwenden.
-message.confirm.upgrade.routers.newtemplate=Bitte best\u00e4tigen Sie, dass Sie alle Router in dieser Zone aktuallisieren m\u00f6chten, so dass sie die neue Vorlage verwenden.
-message.confirm.upgrade.routers.pod.newtemplate=Bitte best\u00e4tigen Sie, dass Sie alle Router in diesem Pod aktuallisieren m\u00f6chten, so dass sie die neue Vorlage verwenden.
-message.copy.iso.confirm=Bitte best\u00e4tigen Sie, dass Sie Ihre ISO kopieren m\u00f6chten und zwar nach
-message.copy.template.confirm=Sind Sie sicher, dass Sie die Vorlage kopieren m\u00f6chten?
-message.copy.template=Kopiere Vorlage <b id\="copy_template_name_text">XXX</b> von Zone <b id\="copy_template_source_zone_text"></b> nach
-message.create.template=Sind Sie sicher, dass Sie eine Vorlage erstellen m\u00f6chten?
-message.create.template.vm=VM aus Vorlage <b id\="p_name"></b> erstellen
-message.create.template.volume=Bitte definieren Sie die folgenden Informationen bevor Sie eine Vorlage f\u00fcr Ihr Festplattenvolumen erstellen\: <b><span id\="volume_name"></span></b>. Das Erstellen der Vorlage kann einige Minuten oder abh\u00e4ngig von der Volumengr\u00f6\u00dfe auch l\u00e4nger dauern.
-message.creating.cluster=Cluster wird erstellt
-message.creating.guest.network=Gastnetzwerk wird erstellt
-message.creating.physical.networks=Physikalische Netzwerke werden erstellt
-message.creating.pod=Erstelle einen Pod
-message.creating.primary.storage=Hauptspeicher wird erstellt
-message.creating.secondary.storage=Sekund\u00e4rspeicher wird erstellt
-message.creating.systemVM=Erstellung von System VMs (das kann eine Weile dauern)
-message.creating.zone=Zone wird erstellt
-message.decline.invitation=Sind Sie sicher, dass Sie diese Einladung zu dem Projekt ablehnen m\u00f6chten?
-message.dedicated.zone.released=Zonen-Dedizierung freigegeben
-message.dedicate.zone=Dediziere Zone
-message.delete.account=Bitte best\u00e4tigen Sie, dass Sie dieses Benutzerkonto l\u00f6schen m\u00f6chten.
-message.delete.affinity.group=Bitte best\u00e4tigen Sie, dass Sie diese Affinit\u00e4tsgruppe l\u00f6schen m\u00f6chten.
-message.delete.gateway=Bitte best\u00e4tigen Sie, dass Sie dieses Gateway l\u00f6schen m\u00f6chten
-message.delete.project=Sind Sie sicher, dass Sie dieses Projekt l\u00f6schen m\u00f6chten?
-message.delete.user=Bitte best\u00e4tigen Sie, dass Sie diesen Benutzer l\u00f6schen m\u00f6chten.
-message.delete.VPN.connection=Bitte best\u00e4tigen Sie, dass Sie die VPN-Verbindung l\u00f6schen m\u00f6chten
-message.delete.VPN.customer.gateway=Bitte best\u00e4tigen Sie, dass Sie dieses Kunden VPN Gateway l\u00f6schen m\u00f6chten
-message.delete.VPN.gateway=Bitte best\u00e4tigen Sie, dass Sie dieses VPN Gateway l\u00f6schen m\u00f6chten
-message.desc.add.new.lb.sticky.rule=Neue Lastverteiler Sticky Regel hinzuf\u00fcgen
-message.desc.advanced.zone=F\u00fcr anspruchvollere Netzwerk-Topologien. Dieses Netzwerkmodell bietet die h\u00f6chste Flexibilit\u00e4t beim Definieren der Gast-Netzwerke und beim Anbieten von ma\u00dfgeschneiderten Nerzwerk-Angeboten wie Firewall-, VPN- oder Lastverteilungsunterst\u00fctzung.
-message.desc.basic.zone=Biete ein einzelnes Netzwerk an, in dem alle VM-Instanzen direkt mit IP vom Netzwerk verbunden sind. G\u00e4steisolation kann durch Layer-3 wie Sicherheitsgruppen angeboten werden (IP-Adressen Source Filtering)
-message.desc.cluster=Jeder Pod muss einen oder mehrere Clusters enthalten, und wir werden jetzt den ersten Cluster hinzuf\u00fcgen. Ein Cluster bietet die M\u00f6glichkeit Hosts zu gruppieren. Die Hosts in einem Cluster haben alle identische Hardware, betreiben den selben Hypervisor, sind im selben Subnetz und greiffen auf den selben geteilten Speicher zu. Jeder Cluster besteht aus einem oder mehreren Hosts und einem oder mehreren Hauptspeicher-Server.
-message.desc.created.ssh.key.pair=Erstellte ein SSH-Schl\u00fcsselpaar.
-message.desc.create.ssh.key.pair=Bitte die folgenden Daten eintragen um einen SSH-Schl\u00fcsselpaar zu registrieren oder erstellen.<br><br> (1) Wenn \u00f6ffentlicher Schl\u00fcssel ausgew\u00e4hlt, registriert CloudStack einen \u00f6ffentlichen Schl\u00fcssel. Dieser kann \u00fcber den privaten Schl\u00fcssel verwendet werden.<br><br>(2) Wenn \u00f6ffentlicher Schl\u00fcssel nicht ausgew\u00e4hlt ist, erstellt CloudStack einen neuen SSH-Schl\u00fcssel. In diesem Fall bitte den privaten Schl\u00fcssel kopieren und speichern. CloudStack wird ihn nicht speichern.<br>
-message.desc.host=Jeder Cluster muss mindestens ein Host (Computer) beinhalten damit Gast-VMs darauf laufen k\u00f6nnen und wir werden nun den ersten Host erstellen. Damit ein Host in CloudStack funktioniert, muss eine Hypervisor-Software darauf installiert, eine IP-Adressse zugewiesen sowie sichergestellt sein, dass sich der Host mit dem CloudStack Verwaltungs-Server verbinden kann .<br/><br/>Geben Sie bitte den DNS-Namen oder IP-Adresse, den Benutzernamen (f\u00fcr gew\u00f6hnlich root) und das Passwort sowie jegliche Labels ein, mit denen Sie den Host kategorisieren m\u00f6chten.
-message.desc.primary.storage=Jeder Cluster muss einen oder mehrere Hauptspeicher-Server enthalten, und wir werden nun den ersten erfassen. Hauptspeicher enth\u00e4lt die Festplatten-Volumen aller VMs, welche auf den Hosts in dem Cluster befinden. Benutzen Sie irgend ein standardkonformes Protokoll, welches vom darunterliegenden Hypervisor unterst\u00fctzt wird.
-message.desc.reset.ssh.key.pair=Bitte definieren Sie ein SSH-Schl\u00fcsselpaar welches Sie zu dieser VM hinzuf\u00fcgen m\u00f6chten. Bitte beachten Sie, dass das Root-Passwort dabei ge\u00e4ndert wird falls es aktiviert ist.
-message.desc.secondary.storage=Jede Zone muss mindestens ein NFS oder Sekund\u00e4rspeicher-Server haben und wir werden nun den ersten hinzuf\u00fcgen. Sekund\u00e4rspeicher speichert VM-Vorlagen, ISO-Abbilder und VM-Festplatten-Schnappsch\u00fcsse. Dieser Server muss f\u00fcr alle Host in der Zone erreichbar sein.<br/><br/>Geben Sie die IP und den exportierten Pfad an.
-message.desc.zone=Eine Zone ist die gr\u00f6\u00dfte organisatorische Einheit in CloudStack und entspricht typischerweise eines einzelnen Rechenzentrum. Zonen bieten physikalische Isolation und Redundanz. Eine Zone beinhaltet einen oder mehrere Pods (jeder von Ihnen beinhaltet Hosts und Hauptspeicher-Server) und ein Sekund\u00e4rspeicher-Server, welcher von allen Pods in der Zone geteilt wird.
-message.detach.disk=Sind Sie sicher, dass Sie diese Festplatte losl\u00f6sen m\u00f6chten?
-message.detach.iso.confirm=Bitte best\u00e4tigen Sie, dass Sie die ISO von der virtuellen Instanz trennen m\u00f6chten.
-message.disable.account=Bitte best\u00e4tigen Sie, dass Sie Ihr Benutzerkonto deaktivieren m\u00f6chten. Kein Nutzer dieses Kontos wird mehr Zugriff auf die Cloud Ressourcen haben. Alle laufenden virtuellen Maschinen werden sofort abgestellt.
-message.disable.snapshot.policy=Sie haben Ihre derzeitige Schnappschuss Richtlinie erfolgreich deaktiviert.
-message.disable.user=Bitte best\u00e4tigen Sie, dass Sie diesen Benutzer deaktivieren m\u00f6chten.
-message.disable.vpn.access=Bitte best\u00e4tigen Sie, dass Sie den VPN Zugriff deaktivieren m\u00f6chten.
-message.disable.vpn=Sind Sie sicher, dass Sie das VPN deaktivieren m\u00f6chten?
-message.disabling.network.offering=Netzwerkangebot wird deaktiviert
-message.disabling.vpc.offering=VPC-Angebot wird deaktiviert
-message.disallowed.characters=Nicht erlaubte Zeichen\: \\<\\,\\>
-message.download.ISO=Bitte klicken Sie auf <a href\="\#">00000</a>, um das ISO herunterzuladen
-message.download.template=Bitte klicken Sie auf <a href\="\#">00000</a>, um die Vorlage herunterzuladen
-message.download.volume=Bitte klicken Sie auf <a href\="\#">00000</a>, um das Volumen herunterzuladen
-message.download.volume.confirm=Bitte best\u00e4tigen Sie, dass Sie dieses Volumen herunterladen m\u00f6chten.
-message.edit.account=Bearbeiten ("-1" bedeutet keine Begrenzung der Anzahl Ressourcen)
-message.edit.confirm=Bitte best\u00e4tigen Sie Ihre \u00c4nderungen bevor Sie "Speichern" klicken.
-message.edit.limits=Bitte definieren Sie Begrenzungen f\u00fcr die folgenden Ressourcen. Ein "-1" bedeutet keine Begrenzung f\u00fcr die Ressourcen-Erstellung.
-message.edit.traffic.type=Bitte definieren Sie die Datenverkehrs-Bezeichnung, welche Sie mit diesem Datenverkehrs-Typ verbunden haben m\u00f6chten.
-message.enable.account=Bitte best\u00e4tigen Sie, dass Sie dieses Konto aktivieren m\u00f6chten.
-message.enabled.vpn=Ihr VPN Zugriff ist zurzeit aktiv und via IP k\u00f6nnen Sie darauf zugreifen
-message.enabled.vpn.ip.sec=Ihr IPSec Preshared-Schl\u00fcssel ist
-message.enable.user=Bitte best\u00e4tigen Sie, dass sie diesen Benutzer aktivieren m\u00f6chten.
-message.enable.vpn.access=VPN ist zurzeit nicht f\u00fcr diese IP Addresse aktiviert. M\u00f6chten Sie den VPN Zugriff aktivieren?
-message.enable.vpn=Bitte best\u00e4tigen Sie, dass Sie f\u00fcr diese IP-Adresse das Remote Access VPN aktivieren m\u00f6chten.
-message.enabling.network.offering=Netzwerkangebot wird aktiviert
-message.enabling.security.group.provider=Sicherheitsgruppenanbieter wird aktiviert
-message.enabling.vpc.offering=VPC-Angebot wird aktiviert
-message.enabling.zone.dots=Zone wird aktiviert...
-message.enabling.zone=Zone wird aktiviert
-message.enter.seperated.list.multiple.cidrs=Bitte geben Sie eine Komma separierte Liste von CIDRs ein, sofern es mehrere sind.
-message.enter.token=Bitte geben Sie dasjenige Merkmal ein, welches Ihnen in Ihrem Einladungsemail mitgeteilt wurde.
-message.generate.keys=Bitte best\u00e4tigen Sie, dass Sie f\u00fcr diesen Benutzer neue Schl\u00fcssel generieren m\u00f6chten.
-message.gslb.delete.confirm=Bitte best\u00e4tigen Sie, dass Sie diesen GSLB l\u00f6schen m\u00f6chten.
-message.gslb.lb.remove.confirm=Bitte best\u00e4tigen Sie, dass Sie die Lastverteilung vom GSLB entfernen m\u00f6chten
-message.guest.traffic.in.advanced.zone=Gastnetzwerk-Datenverkehr ist die kommunikation zwischen virtuellen Maschinen des Endbenutzers. Definieren Sie einen Bereich von VLAN IDs um den Gast-Datenverkehr jedes physikalischen Netzwerks zuzustellen.
-message.guest.traffic.in.basic.zone=Gastnetzwerk-Datenverkehr ist die kommunikation zwischen virtuellen Maschinen des Endbenutzers. Definieren Sie einen Bereich von IP-Adressen welche CloudStack Gast-VMs zuweisen kann. Stellen Sie sicher, dass dieser Bereich sich nicht mit dem reservierten IP-Bereich des Systems \u00fcberlappt.
-message.host.dedicated=Host dediziert
-message.host.dedication.released=Host-Dedizierung freigegeben
-message.installWizard.click.retry=Bitte den Start Button f\u00fcr einen neuen Versuch dr\u00fccken
-message.installWizard.copy.whatIsACluster=Ein Cluster bietet die M\u00f6glichkeit Hosts zu gruppieren. Die Hosts in einem Cluster haben alle identische Hardware, laufen mit dem selben Hypervisor, sind im selben Subnetz und greifen auf den selben Speicher zu. Instanzen von virtuellen Maschinen (VMs) k\u00f6nnen von einem Host zum anderen innerhalb des Clusters live-migriert werden, ohne Unterbrechung des Dienstes f\u00fcr den Endbenutzer. Ein Cluster ist die drittgr\u00f6\u00dfte organisatorische Einheit innerhalb einer CloudStack&\#8482; Installation. Cluster sind geschlossen innerhalb Pods und Pods sind geschlossen innerhalb Zonen. <br/><br/>CloudStack&\#8482; erlaubt mehrere Cluster in einer Cloudinstallation, aber f\u00fcr eine Basisinstallation ben\u00f6tigen wir nur ein Cluster.
-message.installWizard.copy.whatIsAHost=Ein Host ist ein einzelner Computer. Hosts bieten Rechnungsressourcen f\u00fcr virtuelle Maschinen. Jeder Host hat Hypervisorsoftware installiert, welche die G\u00e4ste-VMs verwaltet (ausgenommen davon sind Bare-Metal-Hosts, welche im erweiterten Installationsanleitung als Spezialfall behandelt werden). Beispiele f\u00fcr Hosts sind ein KVM Linuxserver, ein Citrix XenServer-Server oder auch ein ESXi-Server. In der Basisinstallation verwenden wir einen einzelnen Host mit XenServer oder KVM.<br/><br/>Der Host ist die kleinste, organisatorische Einheit innerhalb einer CloudStack&\#8482; Installation. Hosts befinden sind innerhalb von Clustern, Cluster innerhalb Pods und Pods innerhalb von Zonen.
-message.installWizard.copy.whatIsAPod=Ein Pod steht h\u00e4ufig f\u00fcr ein einzelnes Rack. Host im selben Pod sind im selben Subnetz.<br/><br/>Ein Pod ist die zweitgr\u00f6\u00dfte Einheit innerhalb einer CloudStack&\#8482; Installation. Pods sind geschlossen innerhalb der Zonen. Jede Zone kann eine oder mehrere Pods enthalten; in der Basisinstallation werden Sie nur ein Pod in Ihrer Zone haben.
-message.installWizard.copy.whatIsAZone=Eine Zone ist die gr\u00f6\u00dfte organisatorische Einheit innerhalb einer CloudStack&\#8482; Installation. Eine Zone steht typischerweise f\u00fcr ein einzelnes Rechenzentrum, obwohl es nat\u00fcrlich erlaubt ist, mehrere Zonen in einem Rechenzentrum zu haben. Der Vorteil einer Unterteilung der Infrastruktur in Zonen besteht im Anbieten einer physikalischen Isolierung und Redundanz. Zum Beispiel kann jede Zone ihre eigene Stromversorgung und ihr eigener Netzwerk-Uplink haben und geographisch weit auseinanderliegen (obschon dies nicht zwingend ist).
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482; ist eine Software-Plattform welche Rechenressourcen zusammenfasst, um \u00f6ffentliche, private oder hybride "Infrastructure as a Service" (IaaS) Clouds zu bauen. CloudStack&\#8482; verwaltet das Netzwerk-, Speicher- und Computingknoten was eine Cloud-Infrastruktur ausmacht. Benutzen Sie CloudStack&\#8482; um Computing-Umgebungen zu erstellen, verwalten und zu konfigurieren.<br/><br/>Neben dem Erweitern von individuellen virtuellen Maschinenabbilder auf auf Standardhardware bietet CloudStack&\#8482; einen schl\u00fcsselfertigen Cloud Infrastruktur-Software-Stack f\u00fcr die Bereitstellung von virtueller Rechenzentren as a Service \u2013 Liefert alle wesentlichen Komponenten f\u00fcr das Bauen, Bereitstellen und Verwalten von multi-tier- und mandantenf\u00e4higen Cloud-Anwendungen. Open-Source sowie Premium-Versionen sind verf\u00fcgbar, mit nahezu identischen Features.
-message.installWizard.copy.whatIsPrimaryStorage=Eine CloudStack&\#8482; Cloud-Infrastruktur verwendet zwei Arten von Speicher\: Hauptspeicher und Sekund\u00e4rspeicher. Beide k\u00f6nnen iSCSI- oder NFS-Server, oder auch lokale Festplatten sein.<br/><br/><strong>Hauptspeicher</strong> ist mit einem Cluster verbunden und speichert Festplattenvolumen aller diejenigen Gast-VMs, welche auf Hosts in diesem Cluster laufen. Der Hauptspeicher-Server ist typischerweise nahe am Host gelegen.
-message.installWizard.copy.whatIsSecondaryStorage=Sekund\u00e4rspeicher wird mit einer Zone verbunden und speichert alles folgende\:<ul><li>Vorlagen - Betriebssystemabbilder welche f\u00fcr das Booten der VMs verwendet werden und zus\u00e4tzliche Konfigurationsinformationen wie installierte Applikationen beinhalten kann</li><li>ISO-Abbilder - Betriebssystemabbilder welche bootbar oder nicht bootbar sein k\u00f6nnen</li><li>Festplattenvolumen-Schnappsch\u00fcsse - gesicherte Kopien von VM-Daten, welche f\u00fcr die Datenwiederherstellung oder f\u00fcr neue Vorlagen verwenden werden k\u00f6nnen</li></ul>
-message.installWizard.now.building=Ihre Cloud wird erstellt...
-message.installWizard.tooltip.addCluster.name=Der Name des Clusters. Der Name kann frei gew\u00e4hlt werden und wird von Cloudstack nicht genutzt.
-message.installWizard.tooltip.addHost.hostname=Der DNS-Name oder die IP-Adresse des hosts
-message.installWizard.tooltip.addHost.password=Dies ist das Passwort des o.a. Users (von der XenServer Installation)
-message.installWizard.tooltip.addHost.username=\u00fcberlicherweise root
-message.installWizard.tooltip.addPod.name=Der Name f\u00fcr den pod
-message.installWizard.tooltip.addPod.reservedSystemEndIp=Dies ist der IP-Bereich im privaten Netzwerk, welches CloudStack verwendet um Sekund\u00e4rspeicher-VMs und Konsolen-Proxies zu verwalten. Diese IP-Adressen werden vom selben Subnetz genommen wie Computing-Server.
-message.installWizard.tooltip.addPod.reservedSystemGateway=Das Gateways f\u00fcr die Hosts des pod
-message.installWizard.tooltip.addPod.reservedSystemNetmask=Die Subnetzmaske des Gast-Netzwerks
-message.installWizard.tooltip.addPod.reservedSystemStartIp=Dies ist der IP-Bereich im privaten Netzwerk, welches CloudStack verwendet um Sekund\u00e4rspeicher-VMs und Konsolen-Proxies zu verwalten. Diese IP-Adressen werden vom selben Subnetz genommen wie Computing-Server.
-message.installWizard.tooltip.addPrimaryStorage.name=Der Name der Storage Devices
-message.installWizard.tooltip.addPrimaryStorage.path=(f\u00fcr NFS) Bei NFS wird hier der exportierte Pfad (Shared Mount Point) angegeben. F\u00fcr KVM wird hier der Pfad angegeben, wo auf jedem Host das primary storage gemountet wurde. Z.B. "/mnt/primary"
-message.installWizard.tooltip.addPrimaryStorage.server=(f\u00fcr NFS, iSCSI oder PreSetup) Die IP-Adresse oder der DNS-Name des storage devices.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=Die IP-Adresse des NFS-Servers, der den Secondary Storage bereitstellt.
-message.installWizard.tooltip.addSecondaryStorage.path=Der exportierte Pfad, der auf dem o.a. Server liegt.
-message.installWizard.tooltip.addZone.dns1=Dies sind die DNS Server f\u00fcr die G\u00e4ste VMs in dieser Zone. Diese DNS Server werden \u00fcber das Interface f\u00fcr das private Netzwerk der System VMs erreicht. Die private IP Adresse, die Sie angeben muss eine Route zu dem hier benannten DNS Server haben.
-message.installWizard.tooltip.addZone.dns2=Dies sind die DNS Server f\u00fcr die G\u00e4ste VMs in dieser Zone. Diese DNS Server werden \u00fcber das Interface f\u00fcr das private Netzwerk der System VMs erreicht. Die private IP Adresse, die Sie angeben muss eine Route zu dem hier benannten DNS Server haben.
-message.installWizard.tooltip.addZone.internaldns1=Dies sind die DNS Server f\u00fcr die System VMs in dieser Zone. Diese DNS Server werden \u00fcber das Interface f\u00fcr das private Netzwerk der System VMs erreicht. Die private IP Adresse, die Sie angeben muss eine Route zu dem hier benannten DNS Server haben.
-message.installWizard.tooltip.addZone.internaldns2=Dies sind die DNS Server f\u00fcr die System VMs in dieser Zone. Diese DNS Server werden \u00fcber das Interface f\u00fcr das private Netzwerk der System VMs erreicht. Die private IP Adresse, die Sie angeben muss eine Route zu dem hier benannten DNS Server haben.
-message.installWizard.tooltip.addZone.name=Der Name f\u00fcr die zone
-message.installWizard.tooltip.configureGuestTraffic.description=Eine Beschreibung des Netzwerkes.
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=Der Bereich der IP Adressen die f\u00fcr die Verwendung durch G\u00e4ster in dieser Zone verf\u00fcgbar sind. Wenn nur ein NIC verwendet wird, sollten die IP Adressen in demselben CIDR seind wie der CIDR des Pods.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=Das gateway, welches der Gast benutzen soll.
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=Die Subnetzmaske des Gast-Netzwerks
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=Der Bereich der IP Adressen die f\u00fcr die Verwendung durch G\u00e4ster in dieser Zone verf\u00fcgbar sind. Wenn nur ein NIC verwendet wird, sollten die IP Adressen in demselben CIDR seind wie der CIDR des Pods.
-message.installWizard.tooltip.configureGuestTraffic.name=Der Name f\u00fcr das Netzwerk
-message.instance.scaled.up.confirm=M\u00f6chten Sie Ihre Instanz wirklich hochskalieren?
-message.instanceWizard.noTemplates=Sie haben keine Vorlagen verf\u00fcgbar; bitte f\u00fcgen Sie kompatible Vorlagen hinzu, und starten Sie den Instanz-Installationsassistent neu.
-message.ip.address.changed=Ihre IP Adresse kann sich ge\u00e4ndert haben; m\u00f6chten Sie die Liste aktualisieren lassen? Bitte beachten Sie, dass sich in diesem Fall die Ansicht der Details schlie\u00dfen wird.
-message.iso.desc=Dieses Disk Image enth\u00e4lt Daten oder ein bootf\u00e4higes Medium f\u00fcr das Betriebssystem.
-message.join.project=Sie sind jetzt einem Projekt beigetreten. Bitte wechseln Sie in die Ansicht \u00fcber die Projekte um das Projekt zu sehen.
-message.launch.vm.on.private.network=W\u00fcnschen Sie Ihre Instanze in Ihren eigenen privaten dedizierten Netzwerk zu starten?
-message.launch.zone=Die Zone kann gestartet werden; bitte fahren sie mit dem n\u00e4chsten Schritt fort.
-message.ldap.group.import=Alle Benutzer von der gew\u00e4hlten Gruppe werden importiert.
-message.link.domain.to.ldap=Autosync f\u00fcr diese Domain mit LDAP einstellen
-message.listView.subselect.multi=(Strg/Cmd-Klick)
-message.lock.account=Bitte best\u00e4tigen Sie, dass Sie dieses Benutzerkonto sperren m\u00f6chten. Nach dem Sperren ist es Benutzer dieses Benutzerkontos nicht mehr m\u00f6glich, ihre Cloud Ressourcen zu verwalten. Auf bestehende Ressourcen kann aber weiterhin zugegriffen werden.
-message.migrate.instance.confirm=Bitte best\u00e4tigen Sie den Host auf den Sie die virtuelle Instanz migrieren wollen.
-message.migrate.instance.to.host=Bitte best\u00e4tigen sie, dass die Instanz auf einen anderen Host migriert werden soll
-message.migrate.instance.to.ps=Bitte best\u00e4tigen sie, dass sie die Instanz auf einen anderen prim\u00e4ren Speicher migrieren wollen.
-message.migrate.router.confirm=Bitte best\u00e4tigen Sie den Host, auf welchen Sie den Router migrieren m\u00f6chten\:
-message.migrate.systemvm.confirm=Bitte best\u00e4tigen Sie den Host, auf welchen Sie die System-VM migrieren m\u00f6chten\:
-message.migrate.volume=Bitte best\u00e4tigen sie, dass sie dieses Volume auf einen anderen prim\u00e4ren Speicher migrieren wollen.
-message.network.addVM.desc=Bitte definieren Sie das Netzwerk, zu welchen Sie die VM hinzuf\u00fcgen m\u00f6chten. Eine neue NIC wird zu diesem Netzwerk hinzugef\u00fcgt.
-message.network.addVMNIC=Bitte best\u00e4tigen Sie, dass sie eine neue VM NIC zu dieses Netzwerk hinzuf\u00fcgen m\u00f6chten.
-message.network.remote.access.vpn.configuration=Remote VPN-Zugang wurde generiert, konnte aber nicht angewendet werden. Bitte \u00fcberpr\u00fcfe die Verbindung zum Netzwerkelement und probiere es neu aus.
-message.new.user=Spezifieren Sie das folgende um einen neuen Nutzer dem Benutzerkonto hinzuzuf\u00fcgen
-message.no.affinity.groups=Sie haben keine Affinit\u00e4ts-Gruppen. Bitte fahren Sie fort zum n\u00e4chsten Schritt.
-message.no.host.available=Es ist kein Host f\u00fcr eine Migration verf\u00fcgbar
-message.no.network.support.configuration.not.true=Sie haben keine Zone die eine aktivierte Sicherheitsgruppe hat. Deswegen gibt es keine zus\u00e4tzlichen Netzwerk Merkmale. Bitte fahren Sie mit Schritt 5 fort.
-message.no.network.support=Ihr ausgew\u00e4hlter Hypervisor vSphere hat keine zus\u00e4tzlichen Netzwerk Merkmale. Bitte fahren Sie mit Schritt 5 fort.
-message.no.projects.adminOnly=Sie haben keine Projekt.<br/>Bitte fragen Sie Ihren Administrator damit er ein neues Projekt anlegt.
-message.no.projects=Sie haben keine Projekte.<br/>Bitte erzeugen Sie ein neues aus dem Projekt Bereich.
-message.number.clusters=<h2><span> \# of </span> Cluster</h2>
-message.number.hosts=<h2><span> \# of </span> Hosts</h2>
-message.number.pods=<h2><span>Anzahl der</span>Pods</h2>
-message.number.storage=<h2><span> \# von </span> Hauptspeichervolumina</h2>
-message.number.zones=<h2><span> \# of </span> Zonen</h2>
-message.outofbandmanagement.action.maintenance=Warnung Host ist im Wartungsmodus
-message.outofbandmanagement.changepassword=Passwort f\u00fcr Out-of-band Verwaltung \u00e4ndern
-message.outofbandmanagement.configure=Out-of-band Verwaltung konfigurieren
-message.outofbandmanagement.disable=Out-of-band Verwaltung deaktivieren
-message.outofbandmanagement.enable=Out-of-band Verwaltung aktivieren
-message.outofbandmanagement.issue=Eine Out-of-band Verwaltungs-Strom Aktion durchf\u00fchren
-message.password.has.been.reset.to=Passwort wurde zur\u00fcckgesetzt auf
-message.password.of.the.vm.has.been.reset.to=Passwort der VM wurde zur\u00fcckgesetzt auf
-message.pending.projects.1=Sie haben ausstehende Projekteinladungen\:
-message.pending.projects.2=F\u00fcr die Ansicht wechseln Sie bitte in den Projekt Bereich und w\u00e4hlen die Einladungen aus dem Drop-down-Men\u00fc
-message.please.add.at.lease.one.traffic.range=Bitte f\u00fcgen Sie mindestens einen Datenverkehrsbereich hinzu.
-message.please.confirm.remove.ssh.key.pair=Bitte best\u00e4tigen Sie, dass Sie dieses SSH-Schl\u00fcsselpaar entfernen m\u00f6chten
-message.please.proceed=Bitte fahren Sie mit dem n\u00e4chsten Schritt fort.
-message.please.select.a.configuration.for.your.zone=Bitte w\u00e4hlen Sie eine Konfiguration f\u00fcr Ihre Zone aus.
-message.please.select.a.different.public.and.management.network.before.removing=Bitte w\u00e4hlen Sie ein anderes \u00f6ffentliches und Management Netzwerk bevor Sie es l\u00f6schen
-message.please.select.networks=Bitte w\u00e4hlen Sie Netzwerke f\u00fcr Ihre virtuelle Maschine aus.
-message.please.select.ssh.key.pair.use.with.this.vm=Bitte ein SSH Schl\u00fcsselpaar ausw\u00e4hlen, welches Sie mit dieser VM verwenden m\u00f6chten\:
-message.please.wait.while.zone.is.being.created=Bitte warten Sie solange Ihre Zone erstellt wird; dies kann einige Zeit in Anspruch nehmen...
-message.pod.dedication.released=Pod-Dedizierung freigegeben
-message.portable.ip.delete.confirm=Bitte best\u00e4tigen Sie, dass Sie ein portablen IP-Bereich l\u00f6schen m\u00f6chten
-message.project.invite.sent=Einladung an Benutzer verschickt; sie werden zum Projekt hinzugef\u00fcgt sobald sie Einladung akzeptiert haben
-message.public.traffic.in.advanced.zone=\u00d6ffentlicher Datenverkehr wird verursacht, wenn VMs in der Cloud auf das Internet zugreifen. \u00d6ffentlich zugreifbare IPs m\u00fcssen f\u00fcr diesen Zweck bezogen werden. Endbenutzer k\u00f6nnen hierf\u00fcr das CloudStack UI verwenden um NAT zwischen dem Gast-Netzwerk und Ihrem \u00f6ffentlichen Netzwerk einzurichten.  <br/><br/>Bitte geben Sie mindestens einen Bereich von IP-Adressen f\u00fcr den Internet-Datenverkehr an.
-message.public.traffic.in.basic.zone=\u00d6ffentlicher Datenverkehr wird generiert, sobald VMs in der Cloud auf das Internet zugreifen oder Dienste an Kunden \u00fcber das Internet anbieten. Hierf\u00fcr m\u00fcssen \u00f6ffentliche IPs zugewiesen werden. Wenn eine Instanz erstellt wird, wird eine \u00f6ffentliche IP von diesem Satz zus\u00e4tzlich zu der G\u00e4ste- IP-Adresse zugewiesen. Statisches 1-1-Nat wird automatisch zwischen der \u00f6ffentlichen IP und der G\u00e4ste-IP einrichtet. Endbenutzer k\u00f6nnen zudem das CloudStack UI verwenden um zus\u00e4tzliche IPs zu beziehen um statisches NAT zwischen ihren Instanzen und der \u00f6ffentlichen IP zu implementieren.
-message.question.are.you.sure.you.want.to.add=Sind Sie sicher, dass Sie hinzuf\u00fcgen m\u00f6chten
-message.read.admin.guide.scaling.up=Bitte lesen Sie den Abschnitt \u00fcber das dynamische Skalieren in dem Administrations-Leitfaden bevor Sie hochskalieren.
-message.recover.vm=Bitte best\u00e4tigen Sie, dass Sie diese VM wiederherstellen m\u00f6chten.
-message.redirecting.region=Weiterleitung zu Region...
-message.reinstall.vm=Hinweis\: Mit Vorsicht verwenden. Dies wird dazu f\u00fchren, dass die VM von der Vorlage neu installiert wird; Daten auf der Root-Ferstplatte werden dadruch gel\u00f6scht. Extra Daten-Volumen, falls vorhanden, bleiben jedoch unber\u00fchrt.
-message.removed.ssh.key.pair=Hat ein SSH-Schl\u00fcsselpaar entfernt
-message.remove.ldap=Sind Sie sicher, dass Sie die LDAP-Konfiguration l\u00f6schen m\u00f6chten?
-message.remove.region=Sind Sie sicher, dass Sie diese Region vom Verwaltungsserver entfernen m\u00f6chten?
-message.remove.vpc=Bitte best\u00e4tigen Sie, dass Sie das VPC l\u00f6schen m\u00f6chten
-message.remove.vpn.access=Bitte best\u00e4tigen Sie, dass Sie den VPN-Zugriff vom folgenden Benutzer entfernen m\u00f6chten.
-message.reset.password.warning.notPasswordEnabled=Das Template dieser Instanz wurde erstellt ohne dass ein Passwort erforderlich ist
-message.reset.password.warning.notStopped=Ihre Instanz muss gestoppt werden bevor Sie versuchen k\u00f6nnen das Passwort zu \u00e4ndern
-message.reset.VPN.connection=Bitte best\u00e4tigen Sie, dass Sie die VPN-Verbindung zur\u00fccksetzen m\u00f6chten
-message.restart.mgmt.server=Bitte starten Sie Ihre(n) Management Server durch, damit Ihre neuen Einstellungen aktiviert werden.
-message.restart.mgmt.usage.server=Bitte starten Sie Ihre(n) Management- und Usage Server durch, damit Ihre neuen Einstellungen aktiviert werden.
-message.restart.network=Alle angebotenen Dienste in diesem Netzwerk werden unterbrochen. Bitte best\u00e4tigen Sie, dass Sie dieses Netzwerk neu starten m\u00f6chten.
-message.restart.vpc=Bitte best\u00e4tigen Sie, dass Sie den VPC neu starten m\u00f6chten
-message.restart.vpc.remark=Bitte best\u00e4tigen Sie, dass Sie die VPC neu starten m\u00f6chten <p>small><i>Hinweis\: Ein nicht-redundante VPC redundant zu machen wird eine Bereinigung erzwingen. Die Netzwerke werden dadurch einige Minuten nicht verf\u00fcgbar sein</i>.</small></p>
-message.restoreVM=M\u00f6chten Sie die VM wiederherstellen?
-message.role.ordering.fail=Die Neuordnung der Regelberechtigungen wurde abgebrochen, es sind \u00c4nderungen eingetreten, w\u00e4hrend Sie an der Liste Arbeiten durchgef\u00fchrt haben. Bitte versuchen Sie es erneut.
-message.security.group.usage=(Verwenden Sie <strong>Ctrl-click</strong> um alle passenden Sicherheits Gruppen auszuw\u00e4hlen)
-message.select.affinity.groups=Bitte w\u00e4hlen Sie beliebige Affinit\u00e4tsgruppen, zu denen diese VM geh\u00f6ren soll\:
-message.select.a.zone=Eine Zone steht typischerweise f\u00fcr ein einzelnes Rechenzentrum. Mehrere Zonen helfen dabei, die Cloud zuverl\u00e4ssiger zu machen durch physikalische Isolation und Redundanz.
-message.select.instance=Bitte w\u00e4hlen Sie eine Instanz aus.
-message.select.iso=Bitte w\u00e4hlen Sie ein ISO f\u00fcr Ihre neue virtuelle Instanz aus.
-message.select.item=Bitte w\u00e4hlen Sie ein Element aus.
-message.select.security.groups=Bitte w\u00e4hlen Sie (eine) Sicherheitsgruppe(n) f\u00fcr Ihre neue VM aus
-message.select.template=Bitte w\u00e4hlen Sie eine Vorlage f\u00fcr Ihre neue virtuelle Instanz aus.
-message.select.tier=Bitte Ebene ausw\u00e4hlen
-message.set.default.NIC=Bitte best\u00e4tigen Sie, dass Sie f\u00fcr die VM diese NIC zur Standard-NIC m\u00f6chten.
-message.set.default.NIC.manual=Bitte aktuallisieren Sie die Standard-NIC auf der VM jetzt manuell.
-message.setup.physical.network.during.zone.creation.basic=Wenn Sie eine Basiszone hinzuf\u00fcgen, k\u00f6nnen Sie ein einzelnes physikalisches Netzwerk einrichten, welches einer NIC auf dem Hypervisor entspricht. Das Netzwerk behandelt mehrere Arten von Datenverkehr.<br/><br/>Sie k\u00f6nnen auch weitere Datenverkehrsarten zum pysikalische Netzwerk hinzuf\u00fcgen, durch <strong>Ziehen und Loslassen</strong>.
-message.setup.physical.network.during.zone.creation=Wenn Sie eine erweiterte Zone hinzuf\u00fcgen, m\u00fcssen Sie ein oder mehrere physikalische Netzweke einrichten. Jedes Netzwerk entspricht einer NIC auf dem Hypervisor. Jedes physikalische Netzwerk kann eine oder mehere Arten von Datenverkehr behandeln, mit gewissen Beschr\u00e4nkungen wie diese kombiniert werden k\u00f6nnen. <br/><br/><strong>Durch Ziehen und Loslassen eines oder mehreren Datenverkehrsarten auf jedes einzelne physikalische Netzwerk.
-message.setup.successful=Cloud setup erfolgreich
-message.snapshot.schedule=Sie k\u00f6nnen wiederkehrende Schnapschuss-Zeitpl\u00e4ne einrichten in dem Sie die untenstehenden verf\u00fcgbaren Optionen ausw\u00e4hlen und Ihren Regeleinstellungen anwenden
-message.specifiy.tag.key.value=Bitte geben Sie einen Ettikettnamen und -wert an
-message.specify.url=Bitte geben Sie eine URL an
-message.step.1.continue=Bitte w\u00e4hlen Sie eine Vorlage oder ISO, um fortzufahren
-message.step.1.desc=Bitte w\u00e4hlen Sie eine Vorlage f\u00fcr Ihre neue virtuelle Instanz aus. Sie k\u00f6nnen auch ein leeres Template ausw\u00e4hlen, von welchen aus dann ein ISO-Abbild instaliert werden kann.
-message.step.2.continue=Bitte w\u00e4hlen Sie ein Dienstangebot zum Fortfahren aus
-message.step.3.continue=Bitte w\u00e4hlen Sie ein Festplattenangebot zum Fortfahren aus
-message.step.4.continue=Bitte w\u00e4hlen Sie mindestens ein Netzwerk, um fortzufahren
-message.step.4.desc=Bitte w\u00e4hlen Sie Ihr Hauptnetzwerk zu dem Ihre virtuelle Instanz verbunden sein wird.
-message.storage.traffic=Datenverkehr zwischen den CloudStack internen Ressourcen, inklusive aller Komponenten, die mit dem Verwaltugns-Server kommunizieren, wie Hosts und CloudStack System VMs. Bitte konfigurieren Sie Speicherdatenverkehr hier.
-message.suspend.project=Sind Sie sicher, dass sie die Ausf\u00fchrung dieses Projektes unterbrechen m\u00f6chten?
-message.systems.vms.ready=System-VMs bereit.
-message.template.copying=Vorlage wird kopiert.
-message.template.desc=Betriebssystem Abbild das zum starten von VMs verwendet werden kann
-message.tier.required=Ebene ist zwingend
-message.tooltip.dns.1=Name eines DNS Servers zur Verwendung von VMs in der Zone. Die \u00f6ffentlichen IP Adressen m\u00fcssen eine Route zu diesem Server haben.
-message.tooltip.dns.2=Ein zweiter Name eines DNS Servers zur Verwendung von VMs in der Zone. Die \u00f6ffentlichen IP Adressen m\u00fcssen eine Route zu diesem Server haben.
-message.tooltip.internal.dns.1=Ein Name eines DNS Servers zur Verwendung von CloudStack internen System VMs in der Zone. Die \u00f6ffentlichen IP Adressen m\u00fcssen eine Route zu diesem Server haben.
-message.tooltip.internal.dns.2=Ein Name eines DNS Servers zur Verwendung von CloudStack internen System VMs in der Zone. Die \u00f6ffentlichen IP Adressen m\u00fcssen eine Route zu diesem Server haben.
-message.tooltip.network.domain=Ein DNS Suffix zur Erstellung eines Kunden Domain Namens f\u00fcr das Netzwerk das von Gast VMs verwendet wird.
-message.tooltip.pod.name=Ein Name f\u00fcr diesen Pod.
-message.tooltip.reserved.system.gateway=Das Gateway f\u00fcr die Hosts des pods.
-message.tooltip.reserved.system.netmask=Das Netzwerk Prefix welches das Pod Subnetz definiert. Es verwendet CIDR Notation.
-message.tooltip.zone.name=Einen Namen f\u00fcr die Zone.
-message.update.os.preference=Bitte geben Sie eine Betriebssystem-Pr\u00e4ferenz f\u00fcr diesen Host an, Alle virtuellen Instanzen mit gleichen Pr\u00e4ferenzen werden zuerst zu diesem Host zugewiesen bevor andere gew\u00e4hlt werden.
-message.update.resource.count=Bitte best\u00e4tigen Sie, dass Sie die Anzahl der Ressourcen f\u00fcr dieses Benutzerkonto aktualisieren m\u00f6chten.
-message.update.ssl=Bitte eine neue X.509 kompatible SSL Zertifikatskette einreichen, diese wird auf jedem Konsolenproxy und der Sekund\u00e4rspeicher-VM aktuallisiert\:
-message.update.ssl.failed=Fehler beim Aktualisieren des SSL-Zertifikats.
-message.update.ssl.succeeded=Aktualisierung der SSL Zertifikate erfolgreich durchgef\u00fchrt
-message.validate.accept=Bitte geben Sie einen Wert mit einer g\u00fcltigen Erweiterung ein.
-message.validate.creditcard=Bitte geben Sie eine g\u00fcltige Kreditkartennummer ein.
-message.validate.date=Bitte geben Sie ein g\u00fcltiges Datum ein.
-message.validate.date.ISO=Bitte geben Sie ein g\u00fcltiges Datum (ISO) ein.
-message.validate.digits=Bitte geben Sie nur Ziffern ein.
-message.validate.email.address=Bitte geben Sie eine g\u00fcltige E-Mail-Adresse ein.
-message.validate.equalto=Bitte geben Sie den gleichen Wert erneut ein.
-message.validate.fieldrequired=Dieses Feld wird ben\u00f6tigt
-message.validate.fixfield=Bitte korrigieren Sie dieses Feld.
-message.validate.instance.name=Der Name der Instanz kann nicht l\u00e4nger als 63 Zeichen sein. Nur ASCII Zeichen wie a~z, A~Z, Zahlen 0~9 und Bindestriche sind erlaubt. Er mu\u00df mit einem Buchstaben starten und mit einem Buchstaben oder einer Zahl enden.
-message.validate.invalid.characters=Ung\u00fcltige Zeichen gefunden; bitte korrigieren.
-message.validate.max=Bitte geben sie einen Wert kleiner oder gleich {0} ein.
-message.validate.maxlength=Bitte geben Sie nicht mehr als {0} Zeichen ein.
-message.validate.minlength=Bitte geben Sie mindestens {0} Zeichen ein.
-message.validate.number=Bitte geben Sie eine g\u00fcltige Nummer ein.
-message.validate.range=Bitte geben Sie einen Wert zwischen {0} und {1} ein.
-message.validate.range.length=Bitte geben Sie einen Wert zwischen {0}  und {1} Zeichen land ein.
-message.validate.URL=Bitte geben Sie eine g\u00fcltige URL ein.
-message.virtual.network.desc=Ein dediziert virtualisiertes Netzwerk f\u00fcr Ihr Benutzerkonto. Die Broadcast-Domain ist innerhalb  eines VLANs und jeglicher \u00f6ffentliche Netzwerkzugriff wird von einem virtuellen Router geroutet.
-message.vm.create.template.confirm=Das Erstellen einer Vorlage f\u00fchrt automatisch zu einem Neustart der VM.
-message.vm.review.launch=Bitte \u00fcberpr\u00fcfen Sie die folgenden Informationen und best\u00e4tigen Sie, dass Ihre virtuelle Instanz korrekt ist, bevor Sie sie starten.
-message.vnmc.available.list=VNMC ist nicht verf\u00fcgbar aus der Providerliste.
-message.vnmc.not.available.list=VNMC ist nicht verf\u00fcgbar aus der Providerliste.
-message.volume.create.template.confirm=Bitte best\u00e4tigen Sie, dass Sie eine Vorlage aus diesem Festplatten-Volumen erstellen m\u00f6chten. Das Erstellen der Vorlage kann wenige Minuten oder auch l\u00e4nger dauern abh\u00e4ngig von der Gr\u00f6\u00dfe des Volumen.
-message.waiting.for.builtin.templates.to.load=Warten bis die mitgelieferten Vorlagen geladen sind...
-message.XSTools61plus.update.failed=Die Aktuallisierung des Original XS Version ist 6.1\\+ Feldes ist fehlgeschlagen. Fehlermeldung\:
-message.you.must.have.at.least.one.physical.network=Sie m\u00fcssen mindestens ein physikalisches Netzwerk haben
-message.your.cloudstack.is.ready=Ihr CloudStack ist bereit\!
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Die Erstellung der Zone ist komplett. M\u00f6chten Sie diese Zone aktivieren?
-message.Zone.creation.complete=Zonenerstellung abgeschlossen
-message.zone.no.network.selection=Die von Ihnen gew\u00e4hlte Zone bietet keine Alternativen f\u00fcr die Auswahl eines Netzwerks.
-message.zone.step.1.desc=Bitte w\u00e4hlen Sie ein Netzwerk-Modell f\u00fcr Ihre Zone.
-message.zone.step.2.desc=Bitte geben Sie die folgende Information ein, um eine neue Zone hinzuzuf\u00fcgen
-message.zone.step.3.desc=Bitte geben Sie die folgende Information ein, um einen neuen pod hinzuzuf\u00fcgen
-message.zoneWizard.enable.local.storage=WARNUNG\: Wenn Sie den lokalen Speicher f\u00fcr diese Zone aktivieren m\u00f6chten, m\u00fcssen Sie, abh\u00e4ngig davon wo Sie Ihre System-VMs starten m\u00f6chten, wie folgt vorgehen\: <br/><br/>1. Wenn die System-VMs im geteilten Hauptspeicher gestartet werden sollen, muss der geteilte Hauptspeicher nach dem Erstellen zur Zone hinzugef\u00fcgt werden. Zudem muss die Zone im deaktivierten Zustand gestartet werden.<br/><br/>2. Wenn die System-VMs im lokalen Hauptspeicher gestartet werden sollen, muss, "system.vm.use.local.storage" auf "true" gesetzt werden bevor Sie die Zone aktivieren.<br/><br/><br/>M\u00f6chten Sie weiterfahren?
-messgae.validate.min=Bitte geben sie einen Wert gr\u00f6\u00dfer oder gleich {0} ein.
-mode=Modus
-network.rate=Netzwerk-Rate
-notification.reboot.instance=Instanz neu starten
-notification.start.instance=Instanz starten
-notification.stop.instance=Instanz stoppen
-side.by.side=Nebeneinander
-state.Accepted=Angenommen
-state.Active=Aktiv
-state.Allocated=Zugeteilt
-state.Allocating=Zugeteilt
-state.BackedUp=Daten gesichert
-state.BackingUp=Daten werden gesichert
-state.Completed=Fertiggestellt
-state.Creating=Erstellung
-state.Declined=Abgelehnt
-state.Destroyed=Zerst\u00f6rt
-state.detached=Losgel\u00f6st
-state.Disabled=Deaktiviert
-state.Enabled=Aktiviert
-state.Error=Fehler
-state.Expunging=Unwiederbringlich gel\u00f6scht
-state.Migrating=Migration
-state.Pending=Ausstehend
-state.Ready=Bereit
-state.Running=L\u00e4uft
-state.Starting=Startet
-state.Stopped=Gestoppt
-state.Stopping=Stoppt
-state.Suspended=Suspendiert
-title.upload.volume=Volumen hochladen
-ui.listView.filters.all=Alle
-ui.listView.filters.mine=Meine
diff --git a/client/WEB-INF/classes/resources/messages_es.properties b/client/WEB-INF/classes/resources/messages_es.properties
deleted file mode 100644
index bcb8ed5..0000000
--- a/client/WEB-INF/classes/resources/messages_es.properties
+++ /dev/null
@@ -1,2284 +0,0 @@
-# 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.
-
-changed.item.properties=Propiedades del elemento cambiados
-confirm.enable.s3=Por favor, complete la siguiente informaci\u00f3n para habilitar el soporte del Almacenamiento Secundario sobre S3
-confirm.enable.swift=Por favor, complete la siguiente informaci\u00f3n para habilitar el soporte para Swift
-error.could.not.change.your.password.because.ldap.is.enabled=Error, no se puede cambiar la contrase\u00f1a porque LDAP esta activado
-error.could.not.enable.zone=No se pudo accionar la zona
-error.installWizard.message=Algo salio mal, debes ir para atr\u00e1s y corregir los errores.
-error.invalid.username.password=Usuario o contrase\u00f1a invalido
-error.login=Su nombre de usuario / contrase\u00f1a no coinciden con nuestros registros.
-error.menu.select=Imposible ejecutar la acci\u00f3n, ya que no hay elementos seleccionados.
-error.mgmt.server.inaccessible=El Servidor de Gesti\u00f3n es inaccesible. Por favor, int\u00e9ntelo de nuevo m\u00e1s tarde.
-error.password.not.match=Los campos de contrase\u00f1a no coinciden
-error.please.specify.physical.network.tags=Las Ofertas de Red no est\u00e1n disponibles hasta que se especifique los tags para esta red f\u00edsica.
-error.session.expired=Su sesi\u00f3n ha caducado.
-error.something.went.wrong.please.correct.the.following=Algo sali\u00f3 mal, pro favor corrija lo siguiente
-error.unable.to.reach.management.server=No podemos conectar con el Management Server
-error.unresolved.internet.name=El nombre de Internet no se puede resolver.
-force.delete.domain.warning=Advertencia\: Si elige esta opci\u00f3n, la supresi\u00f3n de todos los dominios secundarios y todas las cuentas asociadas y sus recursos.
-force.delete=Forzar el borrado
-force.remove=Forzar el retiro
-force.remove.host.warning=Advertencia\: Si elige esta opci\u00f3n, CloudStack para detener la fuerza todas las m\u00e1quinas virtuales en ejecuci\u00f3n antes de retirar este host del cl\u00faster.
-force.stop=Forzar la detenci\u00f3n
-force.stop.instance.warning=Advertencia\: Forzar la dertenci\u00f3n de esta instancia deber\u00ed\u00ada ser su \u00faltima opci\u00f3n. Puede conducir a la p\u00e9rdida de datos, as\u00ed\u00ad como un comportamiento incoherente del Estado de la m\u00e1quina virtual.
-hint.no.host.tags=No se encontraron las etiquetas de servidor
-hint.no.storage.tags=No se encontraron las etiquetas de almacenamiento
-hint.type.part.host.tag=El tipo esta en parte de la etiqueta de servidor
-hint.type.part.storage.tag=El tipo est\u00e1 en parte de la etiqueta de almacenamiento
-ICMP.code=C\u00f3digo ICMP
-ICMP.type=Tipo ICMP
-image.directory=Directorio de im\u00e1genes
-inline=alineado
-instances.actions.reboot.label=Reiniciar Instancia
-label.about=Acerca de
-label.about.app=Acerca de CloudStack
-label.accept.project.invitation=Aceptar invitaci\u00f3n al proyecto
-label.account.and.security.group=Cuenta, Grupo de seguridad
-label.account=Cuenta
-label.account.details=Detalles de la Cuenta
-label.account.id=ID de la cuenta
-label.account.lower=cuenta
-label.account.name=Nombre de cuenta
-label.accounts=Cuentas
-label.account.specific=espec\u00edficas de la cuenta
-label.account.type=Tipo de Cuenta
-label.acl=ACL
-label.acl.id=ID de ACL
-label.acl.list.rules=Lista de Reglas ACL
-label.acl.name=Nombre de ACL
-label.acl.replaced=ACL reemplazada
-label.acquire.new.ip=Adquirir nueva IP
-label.acquire.new.secondary.ip=Adquirir nuevo IP secundario
-label.action=Acci\u00f3n
-label.action.attach.disk=Conecte el disco
-label.action.attach.disk.processing=Conectando el disco....
-label.action.attach.iso=Conectar ISO
-label.action.attach.iso.processing=Conectando el ISO....
-label.action.cancel.maintenance.mode=Cancelar el modo de mantenimiento
-label.action.cancel.maintenance.mode.processing=Cancelando el modo de mantenimiento....
-label.action.change.password=Cambiar la contrase\u00f1a
-label.action.change.service=Cambiar el Servicio
-label.action.change.service.processing=Cambiando el servicio....
-label.action.configure.samlauthorization=Configurar Autorizaci\u00f3n SAML SSO
-label.action.copy.ISO=Copiar ISO
-label.action.copy.ISO.processing=Copiando ISO....
-label.action.copy.template=Copiear la plantilla
-label.action.copy.template.processing=Copiando Plantilla....
-label.action.create.template=Crear plantilla
-label.action.create.template.from.vm=Crear plantilla de VM
-label.action.create.template.from.volume=Crear plantilla de volumen
-label.action.create.template.processing=Creaci\u00f3n de plantillas ....
-label.action.create.vm=Crear VM
-label.action.create.vm.processing=Creaci\u00f3n de m\u00e1quina virtual ....
-label.action.create.volume=Crear volumen
-label.action.create.volume.processing=Crear volumen ....
-label.action.delete.account=Eliminar cuenta
-label.action.delete.account.processing=Eliminar cuentas ....
-label.action.delete.cluster=Borrar Grupo
-label.action.delete.cluster.processing=Borrar Grupo ....
-label.action.delete.disk.offering=Borrar disco Ofrenda
-label.action.delete.disk.offering.processing=Borrar disco ofrece ....
-label.action.delete.domain=Eliminar de dominio
-label.action.delete.domain.processing=Eliminaci\u00f3n de dominio ....
-label.action.delete.firewall=Eliminar servidor de seguridad
-label.action.delete.firewall.processing=Eliminaci\u00f3n de firewall ....
-label.action.delete.ingress.rule=Borrar ingreso Regla
-label.action.delete.ingress.rule.processing=Eliminaci\u00f3n de ingreso regla ....
-label.action.delete.IP.range=Eliminar Rango de IP
-label.action.delete.IP.range.processing=Eliminar Rango de IP ....
-label.action.delete.ISO=Eliminar ISO
-label.action.delete.ISO.processing=Eliminaci\u00f3n de la norma ISO ....
-label.action.delete.load.balancer=Eliminar equilibrador de carga
-label.action.delete.load.balancer.processing=Eliminaci\u00f3n del equilibrador de carga ....
-label.action.delete.network=Eliminar Red
-label.action.delete.network.processing=Eliminaci\u00f3n de red ....
-label.action.delete.nexusVswitch=Eliminar Nexus 1000v
-label.action.delete.nic=Quitar NIC
-label.action.delete.physical.network=Eliminar red f\u00edsica
-label.action.delete.pod=Eliminar Pod
-label.action.delete.pod.processing=Eliminar Pod ....
-label.action.delete.primary.storage=Almacenamiento primario Eliminar
-label.action.delete.primary.storage.processing=Eliminaci\u00f3n de almacenamiento primaria ....
-label.action.delete.secondary.storage.processing=Eliminaci\u00f3n de almacenamiento secundario ....
-label.action.delete.secondary.storage=secundaria almacenamiento Eliminar
-label.action.delete.security.group=Borrar Grupo de Seguridad
-label.action.delete.security.group.processing=Eliminar grupo de seguridad ....
-label.action.delete.service.offering=Eliminar Oferta de Servicio
-label.action.delete.service.offering.processing=Eliminaci\u00f3n de Oferta de Servicio ....
-label.action.delete.snapshot=Eliminar instant\u00e1nea
-label.action.delete.snapshot.processing=Eliminar instant\u00e1nea ....
-label.action.delete.system.service.offering=Eliminar Oferta de Servicio de Sistema
-label.action.delete.template=Eliminar plantilla
-label.action.delete.template.processing=Eliminar plantilla ....
-label.action.delete.user=Eliminar usuario
-label.action.delete.user.processing=Eliminar usuario ....
-label.action.delete.volume=Eliminar volumen
-label.action.delete.volume.processing=Eliminar volumen ....
-label.action.delete.zone=Eliminar Zona
-label.action.delete.zone.processing=Eliminaci\u00f3n de la Zona ....
-label.action.destroy.instance=Destruye Instancia
-label.action.destroy.instance.processing=Destrucci\u00f3n Instancia ....
-label.action.destroy.systemvm=destruir el sistema VM
-label.action.destroy.systemvm.processing=Destrucci\u00f3n del sistema VM ....
-label.action.detach.disk.processing=Extracci\u00f3n disco ....
-label.action.detach.disk=Separar disco
-label.action.detach.iso.processing=Extracci\u00f3n ISO ....
-label.action.detach.iso=Separar ISO
-label.action.disable.account=Desactivar cuenta
-label.action.disable.account.processing=Deshabilitar cuenta ....
-label.action.disable.cluster=Deshabilitar cl\u00faster
-label.action.disable.cluster.processing=Desactivaci\u00f3n de Cluster Server ....
-label.action.disable.nexusVswitch=Deshabilitar Nexus 1000v
-label.action.disable.physical.network=Desactivar la red f\u00edsica
-label.action.disable.pod=Deshabilitar Pod
-label.action.disable.pod.processing=Deshabilitar Pod ....
-label.action.disable.static.NAT=Deshabilitar NAT est\u00e1tica
-label.action.disable.static.NAT.processing=Deshabilitar NAT est\u00e1tica ....
-label.action.disable.user=Deshabilitar usuario
-label.action.disable.user.processing=Desactivaci\u00f3n de usuario ....
-label.action.disable.zone=Deshabilitar la zona
-label.action.disable.zone.processing=Desactivaci\u00f3n de la zona ....
-label.action.download.ISO=ISO Descargar
-label.action.download.template=Descargar plantilla
-label.action.download.volume=Descargar Volumen
-label.action.download.volume.processing=Volumen Descargar ....
-label.action.edit.account=Editar cuenta
-label.action.edit.disk.offering=Editar disco Ofrenda
-label.action.edit.domain=Editar Dominio
-label.action.edit.global.setting=Editar Mundial Marco
-label.action.edit.host=edici\u00f3n Anfitri\u00f3n
-label.action.edit.instance=Editar Instancia
-label.action.edit.ISO=Editar ISO
-label.action.edit.network=Edici\u00f3n de redes
-label.action.edit.network.offering=Editar Red ofrece
-label.action.edit.network.processing=Editando Red....
-label.action.edit.pod=Editar Pod
-label.action.edit.primary.storage=Editar Almacenamiento primario
-label.action.edit.resource.limits=Editar l\u00edmites de recursos
-label.action.edit.service.offering=Editar Oferta de Servicio
-label.action.edit.template=Editar plantilla
-label.action.edit.user=Editar usuario
-label.action.edit.zone=Edici\u00f3n Zona
-label.action.enable.account=Habilitar cuenta
-label.action.enable.account.processing=cuenta de Habilitaci\u00f3n ....
-label.action.enable.cluster=Habilitar cl\u00faster
-label.action.enable.cluster.processing=Habilitar cl\u00faster ....
-label.action.enable.maintenance.mode=Activar el modo de mantenimiento
-label.action.enable.maintenance.mode.processing=Habilitaci\u00f3n del modo de mantenimiento ....
-label.action.enable.nexusVswitch=Habilitar Nexus 1000v
-label.action.enable.physical.network=Habilitar red f\u00edsica
-label.action.enable.pod=Habilitar Pod
-label.action.enable.pod.processing=Habilitaci\u00f3n Pod ....
-label.action.enable.static.NAT=Habilitar NAT est\u00e1tica
-label.action.enable.static.NAT.processing=Habilitar NAT est\u00e1tica ....
-label.action.enable.user.processing=Habilitaci\u00f3n del usuario ....
-label.action.enable.user=usuario Activar
-label.action.enable.zone=Habilitar la zona
-label.action.enable.zone.processing=Habilitaci\u00f3n de zona ....
-label.action.expunge.instance=Borrar Instancia
-label.action.expunge.instance.processing=Borrando Instancia....
-label.action.force.reconnect=Fuerza Vuelva a conectar
-label.action.force.reconnect.processing=Reconectando ....
-label.action.generate.keys=Generar Claves
-label.action.generate.keys.processing=Generar claves ....
-label.action.list.nexusVswitch=Listar Nexus 1000v
-label.action.lock.account=Bloqueo de cuenta
-label.action.lock.account.processing=Bloqueo de cuenta ....
-label.action.manage.cluster=gestionar racimo
-label.action.manage.cluster.processing=La gesti\u00f3n de cl\u00fasteres ....
-label.action.migrate.instance=Migrar Instancia
-label.action.migrate.instance.processing=Migrar Instancia ....
-label.action.migrate.router=migrar Router
-label.action.migrate.router.processing=Migraci\u00f3n router ....
-label.action.migrate.systemvm=Migrar del sistema VM
-label.action.migrate.systemvm.processing=La migraci\u00f3n de VM del sistema ....
-label.action.reboot.instance.processing=Reiniciar Instancia ....
-label.action.reboot.instance=Reiniciar Instancia
-label.action.reboot.router.processing=Reiniciar router ....
-label.action.reboot.router=Reiniciar router
-label.action.reboot.systemvm.processing=reinicio del sistema VM ....
-label.action.reboot.systemvm=Reiniciar sistema VM
-label.action.recurring.snapshot=recurrente instant\u00e1neas
-label.action.register.iso=Registrar ISO
-label.action.register.template=Registrar plantilla desde una URL
-label.action.release.ip=estreno IP
-label.action.release.ip.processing=Liberar IP ....
-label.action.remove.host.processing=Extracci\u00f3n de host ....
-label.action.remove.host=Quitar host
-label.action.reset.password.processing=Restablecimiento de la contrase\u00f1a ....
-label.action.reset.password=Restablecer contrase\u00f1a
-label.action.resize.volume=Cambiar el tama\u00f1o del Volumen
-label.action.resize.volume.processing=Cambiar el tama\u00f1o del Volumen....
-label.action.resource.limits=Recursos l\u00edmites
-label.action.restore.instance.processing=Restaurar Instancia ....
-label.action.restore.instance=Restaurar Instancia
-label.action.revert.snapshot.processing=Volviendo a Snapshot...
-label.action.revert.snapshot=Revertir a Snapshot
-label.actions=Acciones
-label.action.start.instance=Iniciar Instancia
-label.action.start.instance.processing=A partir Instancia ....
-label.action.start.router=inicio del router
-label.action.start.router.processing=A partir del router ....
-label.action.start.systemvm=Inicio del sistema VM
-label.action.start.systemvm.processing=A partir del sistema VM ....
-label.action.stop.instance=Detener Instancia
-label.action.stop.instance.processing=Detener Instancia ....
-label.action.stop.router=Detener router
-label.action.stop.router.processing=Detener router ....
-label.action.stop.systemvm=parada del sistema VM
-label.action.stop.systemvm.processing=Detener sistema VM ....
-label.action.take.snapshot.processing=Tomar instant\u00e1neas ....
-label.action.take.snapshot=Tomar instant\u00e1nea
-label.action.unmanage.cluster.processing=Unmanaging Grupo ....
-label.action.unmanage.cluster=Unmanage racimo
-label.action.update.OS.preference=Actualizar OS Preferencia
-label.action.update.OS.preference.processing=Actualizaci\u00f3n de sistema operativo preferencia ....
-label.action.update.resource.count=Actualizaci\u00f3n de recursos Conde
-label.action.update.resource.count.processing=Actualizaci\u00f3n de Conde de recursos ....
-label.action.vmsnapshot.create=Tomar instant\u00e1nea de VM
-label.action.vmsnapshot.delete=Borrar Instantanea de VM
-label.action.vmsnapshot.revert=Volver VM a la instantanea
-label.activate.project=Activar Proyecto
-label.active.sessions=Sesiones activas
-label.add.account=A\u00f1adir cuenta
-label.add.accounts=Agregar cuentas
-label.add.accounts.to=Agregar cuentas a
-label.add.account.to.project=Agregar cuenta al projecto
-label.add.ACL=Agregar ACL
-label.add.acl.list=Agregar Lista ACL
-label.add.affinity.group=Agregar un nuevo grupo de afinidad
-label.add=Agregar
-label.add.baremetal.dhcp.device=Agregar dispositivo Baremetal de DHCP
-label.add.baremetal.rack.configuration=Agregar Configuraci\u00f3n del Rack Baremetal
-label.add.BigSwitchBcf.device=Agregar Controlador BigSwitch BCF
-label.add.BrocadeVcs.device=Agregar Switch Brocade Vcs
-label.add.by=A\u00f1adir por
-label.add.by.cidr=A\u00f1adir Por CIDR
-label.add.by.group=A\u00f1adir Por el Grupo de
-label.add.ciscoASA1000v=Agregar un Recurso CiscoASA1000v
-label.add.cluster=A\u00f1adir Grupo
-label.add.compute.offering=Agregar oferta de computo
-label.add.direct.iprange=A\u00f1adir Direct IP Gama
-label.add.disk.offering=A\u00f1adir disco Ofrenda
-label.add.domain=Agregar dominio
-label.added.brocade.vcs.switch=Nuevo Switch VCS Brocade agregado
-label.added.network.offering=Oferta de Red agregada
-label.added.new.bigswitch.bcf.controller=Nuevo Controlador BigSwitch BCF agregado
-label.added.nicira.nvp.controller=Nuevo Controlador Nicira NVP agregado
-label.add.egress.rule=Agregar regla de salida
-label.addes.new.f5=Agregar nuevo F5
-label.add.F5.device=Agregar dispositivo F5
-label.add.firewall=Agregar Servidor de seguridad
-label.add.globo.dns=Agregar GloboDNS
-label.add.gslb=Agregar GSLB
-label.add.guest.network=Agregar red de invitado
-label.add.host=Agregar host
-label.adding=Agregar
-label.adding.cluster=Adici\u00f3n de cl\u00faster
-label.adding.failed=No se pudo agregar
-label.adding.pod=Agregar Pod
-label.adding.processing=A\u00f1adir ....
-label.add.ingress.rule=A\u00f1adir regla del ingreso
-label.adding.succeeded=Agregar Sucesor
-label.adding.user=Agregar usuario
-label.adding.zone=Agregar la zona
-label.add.intermediate.certificate=Agregar certificado de entidad intermedia
-label.add.internal.lb=Agregar LB Interno
-label.add.ip.range=A\u00f1adir Rango de IP
-label.add.isolated.guest.network=Agregar red Aislado para Guest
-label.add.isolated.guest.network.with.sourcenat=Agregar Red Aislada para Guest con SourceNat
-label.add.isolated.network=Agregar Red Aislada
-label.additional.networks=Redes adicional
-label.add.ldap.account=Agregar cuenta LDAP
-label.add.LDAP.account=Agregar Cuenta LDAP
-label.add.list.name=Nombre de la Lista ACL
-label.add.load.balancer=A\u00f1adir equilibrador de carga
-label.add.more=A\u00f1adir m\u00e1s
-label.add.netScaler.device=Agregar dispositivo Netscaler
-label.add.network.ACL=Agregar ACL de Red
-label.add.network.acl.list=Agregar Lista ACL de Red
-label.add.network=Agregar sitios de red
-label.add.network.device=A\u00f1adir dispositivo de red
-label.add.network.offering=Agregar oferta de red
-label.add.new.F5=Agregar un nuevo F5
-label.add.new.gateway=Agregar nuevo gateway
-label.add.new.NetScaler=Agregar un nuevo NetScaler
-label.add.new.PA=Agregar un nuevo Palo Alto
-label.add.new.SRX=Agregar nuevo SRX
-label.add.new.tier=Agregar un nuevo tier
-label.add.nfs.secondary.staging.store=Agregar un Almacenamiento Secundario Temporario NFS
-label.add.NiciraNvp.device=Agregar Controlador Nvp
-label.add.NuageVsp.device=Agregar Nuage Virtualized Services Directory (VSD)
-label.add.OpenDaylight.device=Agregar el Controlador OpenDaylight
-label.add.PA.device=Agregar dispositivo Palo Alto
-label.add.physical.network=Agregar red f\u00edsica
-label.add.pod=A\u00f1adir Pod
-label.add.portable.ip.range=Agregar un Rango IP Port\u00e1til
-label.add.port.forwarding.rule=Agregar regla port forwarding
-label.add.primary.storage=A\u00f1adir Almacenamiento primario
-label.add.private.gateway=Agregar Gateway Privado
-label.add.region=Agregar Regi\u00f3n
-label.add.resources=Agregar Recursos
-label.add.role=Agregar Rol
-label.add.route=Agregar ruta
-label.add.rule=Agregar regla
-label.add.secondary.storage=A\u00f1adir secundaria almacenamiento
-label.add.security.group=Agregar grupo de seguridad
-label.add.service.offering=A\u00f1adir Servicio de Oferta
-label.add.SRX.device=Agregar dispositivo SRX
-label.add.static.nat.rule=Agregar regla NAT est\u00e1tica
-label.add.static.route=Agregar ruta est\u00e1tica
-label.add.system.service.offering=Agregar Oferta de Servicio del Sistema
-label.add.template=A\u00f1adir plantilla
-label.add.to.group=Agregar al grupo
-label.add.ucs.manager=Agregar UCS Manager
-label.add.user=Agregar usuario
-label.add.userdata=Datos de Usuario
-label.add.vlan=A\u00f1adir VLAN
-label.add.vm=Agregar VM
-label.add.vms=Agregar VMs
-label.add.vms.to.lb=Agregar VM(s) a el balanceador de carga
-label.add.VM.to.tier=Agregar VM al tier
-label.add.vmware.datacenter=Agregar Datacenter VMware
-label.add.vnmc.device=Agregar dispositivo VNMC
-label.add.vnmc.provider=Agregar proveedor VNMC
-label.add.volume=A\u00f1adir volumen
-label.add.vpc=Agregar VPC
-label.add.vpc.offering=Agregar Ofertas de VPC
-label.add.vpn.customer.gateway=Agregar VPN para Acceso del Cliente
-label.add.VPN.gateway=Agregar Gateway VPN
-label.add.vpn.user=Agregar usuario VPN
-label.add.vxlan=A\u00f1adir VXLAN
-label.add.zone=A\u00f1adir Zona
-label.admin.accounts=Administrador de Cuentas
-label.admin=Admin
-label.advanced=Avanzado
-label.advanced.mode=Modo avanzado
-label.advanced.search=B\u00fasqueda Avanzada
-label.affinity=Afinidad
-label.affinity.group=Grupo de Afinidad
-label.affinity.groups=Grupos de Afinidades
-label.agent.password=Password de Agente
-label.agent.port=Puerto del Agente
-label.agent.state=Estado del Agente
-label.agent.username=Usuario de Agente
-label.agree=De-acuerdo
-label.alert=Alerta
-label.alert.archived=Alerta Archivada
-label.alert.deleted=Alerta Borrada
-label.alert.details=Detalles de la Alerta
-label.algorithm=Algoritmo
-label.allocated=Asignados
-label.allocation.state=Estado de la Asignaci\u00f3n
-label.allow=Permitir
-label.anti.affinity=Anti-afinidad
-label.anti.affinity.group=Grupo de Anti-Afinidad
-label.anti.affinity.groups=Grupos de Anti-Afinidad
-label.api.key=clave de API
-label.api.version=Versi\u00f3n de API
-label.apply=Aplicar
-label.app.name=CloudStack
-label.archive.alerts=Archivar alertas
-label.archive=Archivar
-label.archive.events=Archivar sucesos
-label.assign=Asignar
-label.assigned.vms=VMs Asignadas
-label.assign.instance.another=Asignar la instancias a otra Cuenta
-label.assign.to.load.balancer=instancia de Asignaci\u00f3n de equilibrador de carga
-label.assign.vms=Asignar VMs
-label.associated.network.id=ID de red asociados
-label.associated.network=Red Asociada
-label.associated.profile=Perfil Asociado
-label.associate.public.ip=Asociar IP P\u00fablica
-label.attached.iso=adjunta ISO
-label.author.email=e-mail del Autor
-label.author.name=Nombre del Autor
-label.autoscale.configuration.wizard=Asistente de configuraci\u00f3n de Escalado Autom\u00e1tico
-label.autoscale=Escalado Autom\u00e1tico
-label.availability=Disponibilidad
-label.availability.zone=Disponibilidad de la zona
-label.availabilityZone=zonaDeDisponibilidad
-label.available=Disponible
-label.available.public.ips=Disponible direcciones IP p\u00fablicas
-label.back=Volver
-label.bandwidth=Ancho de banda
-label.baremetal.dhcp.devices=Dispositivo Baremetal para DHCP
-label.baremetal.dhcp.provider=Proveedor Baremetal de DHCP
-label.baremetal.pxe.device=Agregar Proveedor PXE para Baremetal
-label.baremetal.pxe.devices=Dispositivo Baremetal para PXE
-label.baremetal.pxe.provider=Proveedor PXE para Baremetal
-label.baremetal.rack.configuration=Configuraci\u00f3n del Rack Baremetal
-label.basic=B\u00e1sica
-label.basic.mode=Modo b\u00e1sico
-label.bigswitch.bcf.details=Detalles del Controlador BigSwitch BCF
-label.bigswitch.bcf.nat=BigSwitch BCF con NAT habilitado
-label.bigswitch.controller.address=Direcci\u00f3n del Controlador BigSwitch BCF
-label.blade.id=ID de Hoja
-label.blades=Hojas
-label.bootable=arranque
-label.broadcast.domain.range=Rango del dominio de Broadcast
-label.broadcast.domain.type=Tipo de dominio de difusi\u00f3n
-label.broadcasturi=broadcasturi
-label.broadcast.uri=URI de Broadcast
-label.broadcat.uri=URI de Broadcast
-label.brocade.vcs.address=Direcci\u00f3n del Switch VCS
-label.brocade.vcs.details=Detalles del Switch VCS Brocade 
-label.by.account=Por Cuenta
-label.by.alert.type=Por tipo de alerta
-label.by.availability=Por Disponibilidad
-label.by.date.end=Por fecha (finalizaci\u00f3n)
-label.by.date.start=Por fecha (inicio)
-label.by.domain=Por dominio
-label.by.end.date=Por Fecha de finalizaci\u00f3n
-label.by.event.type=Por tipo de suceso
-label.by.level=por Nivel
-label.by.pod=Por Pod
-label.by.role=por funci\u00f3n
-label.by.start.date=Por Fecha de inicio
-label.by.state=Por Estado
-label.bytes.received=Bytes recibidos
-label.bytes.sent=Bytes enviados
-label.by.traffic.type=Por tipo de tr\u00e1fico
-label.by.type.id=Por tipo de identificaci\u00f3n
-label.by.type=Por tipo
-label.by.zone=Por Zona
-label.cache.mode=Tipo de cache de escritura
-label.cancel=Cancelar
-label.capacity.bytes=Capacidad en Bytes
-label.capacity=Capacidad
-label.capacity.iops=Capacidad en IOPS
-label.certificate=Certificado
-label.change.affinity=Cambiar Afinidad
-label.change.ipaddress=Cambiar la direcci\u00f3n IP de la NIC
-label.change.service.offering=Cambiar oferta de servicio
-label.change.value=Cambiar valor
-label.character=Personaje
-label.chassis=Chasis
-label.checksum=checksum
-label.cidr.account=CIDR o de cuenta / Grupo de Seguridad
-label.cidr=CIDR
-label.cidr.list=fuente CIDR
-label.CIDR.list=Lista CIDR
-label.CIDR.of.destination.network=CIDR de la red destino
-label.cisco.nexus1000v.ip.address=Direcci\u00f3n IP del Nexus 1000v
-label.cisco.nexus1000v.password=Contrase\u00f1a del Nexus 1000v
-label.cisco.nexus1000v.username=Usuario del Nexus 1000v
-label.ciscovnmc.resource.details=Detalle de recursos CiscoVNMC
-label.clean.up=Limpiar
-label.clear.list=Limpiar lista
-label.close=Cerrar
-label.cloud.console=Cloud Management Console
-label.cloud.managed=Cloud.com Gestionado
-label.cluster=Grupo
-label.cluster.name=Nombre del Cluster
-label.clusters=Cluster
-label.cluster.type=Tipo de Cluster Server
-label.clvm=CLVM
-label.code=C\u00f3digo
-label.community=Comunidad
-label.compute.and.storage=Computo y Almacenamiento
-label.compute=Computo
-label.compute.offering=Oferta de Computo
-label.compute.offerings=Ofertas de Computo
-label.configuration=Configuraci\u00f3n
-label.configure=Configurar
-label.configure.ldap=Configurar LDAP
-label.configure.network.ACLs=Configurar ACLs de la Red
-label.configure.sticky.policy=Configurar pol\u00edtica de Sticky
-label.configure.vpc=Configurar VPC
-label.confirmation=Confirmation
-label.confirm.password=Confirmar password
-label.congratulations=Felicitaciones \!
-label.conserve.mode=Conservar modo
-label.console.proxy=Consola proxy
-label.console.proxy.vm=Console Proxy VM
-label.continue.basic.install=Continuar con la instalaci\u00f3n b\u00e1sica
-label.continue=Continuar
-label.copying.iso=Copiando ISO
-label.corrections.saved=Correcciones guardadas
-label.counter=Contador
-label.cpu.allocated=CPU asignado
-label.cpu.allocated.for.VMs=CPU asignado para m\u00e1quinas virtuales
-label.CPU.cap=CPU Cap
-label.cpu=CPU
-label.cpu.limits=L\u00edmites de CPU
-label.cpu.mhz=CPU (En MHz)
-label.cpu.utilized=CPU Utilizado
-label.created.by.system=Creado por el sistema
-label.created=creaci\u00f3n
-label.create.nfs.secondary.staging.storage=Crear un Almacenamiento Secundario Temporario NFS
-label.create.nfs.secondary.staging.store=Crear un NFS secundario para almacenamiento temporal
-label.create.project=Crear proyecto
-label.create.ssh.key.pair=Crear un par de claves SSH
-label.create.template=Crear template
-label.create.VPN.connection=Crear Conexi\u00f3n VPN
-label.cross.zones=Cruz Zonas
-label.custom=A Medida
-label.custom.disk.iops=IOPS personalizadas
-label.custom.disk.offering=Oferta de Disco Personalizada
-label.custom.disk.size=Personal Disk Size
-label.daily=diario
-label.data.disk.offering=Datos Disco Offering
-label.date=Fecha
-label.day=D\u00eda
-label.day.of.month=D\u00eda del mes
-label.day.of.week=d\u00eda de la semana
-label.dc.name=Nombre del DC
-label.dead.peer.detection=Detecci\u00f3n de Dead Peer
-label.decline.invitation=Declinar invitaci\u00f3n
-label.dedicate.cluster=Dedicar el Cluster
-label.dedicated=Dedicado
-label.dedicate=Dedicar
-label.dedicated.vlan.vni.ranges=Rangos VLAN/VNI Dedicados
-label.dedicate.host=Servidor Dedicado
-label.dedicate.pod=Pod Dedicado
-label.dedicate.vlan.vni.range=Dedicar Rango VLAN/VNI
-label.dedicate.zone=Zona Dedicada
-label.default.egress.policy=Pol\u00edtica de salida por defecto
-label.default=Por Defecto
-label.default.use=Usar por defecto
-label.default.view=Vista Por Defecto
-label.delete.acl.list=Borrar Lista ACL
-label.delete.affinity.group=Borrar Grupo de Afinidad
-label.delete.alerts=Eliminar alertas
-label.delete.baremetal.rack.configuration=Borrar Configuraci\u00f3n del Rack Baremetal
-label.delete.BigSwitchBcf=Remover Controlador BigSwitch BCF
-label.delete.BrocadeVcs=Remover Switch Brocade Vcs
-label.delete.ciscoASA1000v=Borrar CiscoASA1000v
-label.delete.ciscovnmc.resource=Borrar recurso CiscoVNMC
-label.delete=Eliminar
-label.delete.events=Eliminar sucesos
-label.delete.F5=Borrar F5
-label.delete.gateway=borrar gateway
-label.delete.internal.lb=Borrar LB Interno
-label.delete.NetScaler=Borrar NetScaler
-label.delete.NiciraNvp=Remover Controlado Nvp
-label.delete.NuageVsp=Remover Nuage VSD
-label.delete.OpenDaylight.device=Borrar el Controlador OpenDaylight
-label.delete.PA=Borrar Palo Alto
-label.delete.portable.ip.range=Borrar Rango IP Port\u00e1til
-label.delete.profile=Borrar Perfil
-label.delete.project=Eliminar proyecto
-label.delete.role=Borrar Rol
-label.delete.secondary.staging.store=Borrar Almacenamiento Secundario Temporario
-label.delete.SRX=Borrar SRX
-label.delete.ucs.manager=Borrar UCS Manager
-label.delete.VPN.connection=eliminar conexi\u00f3n VPN
-label.delete.VPN.customer.gateway=Borrar VPN para Acceso del Cliente
-label.delete.VPN.gateway=eliminar Gateway VPN
-label.delete.vpn.user=Eliminar usuario VPN
-label.deleting.failed=No se pudo eliminar
-label.deleting.processing=Eliminar ....
-label.deny=Denegar
-label.deployment.planner=Modo deployment
-label.description=Descripci\u00f3n
-label.destination.physical.network.id=ID de la red f\u00edsica destino
-label.destination.zone=Zona de destino
-label.destroy=Destroy
-label.destroy.router=Destruir router
-label.destroy.vm.graceperiod=Per\u00edodo de Gracia para Destruir una VM
-label.detaching.disk=Extracci\u00f3n del disco
-label.details=Detalles
-label.device.id=ID de dispositivo
-label.devices=Dispositivos
-label.dhcp=DHCP
-label.DHCP.server.type=Tipo de servidor DHCP
-label.direct.attached.public.ip=IP P\u00fablica Conectada en forma Directa
-label.direct.ips=IPs de la Red Compartida
-label.disable.autoscale=Deshabilitar Escalado Autom\u00e1tico
-label.disabled=personas de movilidad reducida
-label.disable.host=Deshabitar Servidor
-label.disable.network.offering=Deshabitar oferta de red
-label.disable.provider=Deshabilitar proveedor
-label.disable.vnmc.provider=Deshabitar proveedor VNMC
-label.disable.vpc.offering=Deshabitar oferta VPC
-label.disable.vpn=Deshabilitar VPN
-label.disabling.vpn.access=Desactivaci\u00f3n de VPN de acceso
-label.disassociate.profile.blade=Remover asociaci\u00f3n entre Perfil y Blade
-label.disbale.vnmc.device=Deshabitar dispositivo VNMC
-label.disk.allocated=disco asignado
-label.disk.bytes.read.rate=Lectura de Disco (BPS)
-label.disk.bytes.write.rate=Escritura a Disco (BPS)
-label.disk.iops.max=IOPS m\u00e1ximas
-label.disk.iops.min=IOPS m\u00ednimas
-label.disk.iops.read.rate=Lectura de Disco (IOPS)
-label.disk.iops.total=Total de IOPS
-label.disk.iops.write.rate=Escritura de Disco (IOPS)
-label.disk.offering.details=Detalles de oferta de disco
-label.disk.offering=disco Ofrenda
-label.diskoffering=oferta de disco
-label.disk.provisioningtype=Tipo de Aprovisionamiento
-label.disk.read.bytes=Lecturas del Disco (Bytes)
-label.disk.read.io=Lectura de Disco (IO)
-label.disk.size.gb=tama\u00f1o de disco (en GB)
-label.disk.size=tama\u00f1o de disco
-label.disk.total=disco Total
-label.disk.volume=volumen de disco
-label.disk.write.bytes=Escritura a Discos (Bytes)
-label.disk.write.io=Escritura a Disco (IO)
-label.display.name=Nombre a Mostrar
-label.display.text=visualizaci\u00f3n de texto
-label.distributedrouter=Router Distribuido
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=Dominio DNS para las Redes Guest
-label.domain.admin=Administrador de dominio
-label.domain.details=Detalles del Dominio
-label.domain=dominio
-label.domain.id=ID de dominio
-label.domain.lower=dominio 
-label.domain.name=Nombre de dominio
-label.domain.router=Router de Dominio
-label.domain.suffix=DNS sufijo de dominio (es decir, xyz.com)
-label.done=Listo
-label.double.quotes.are.not.allowed=comillas dobles no se permite
-label.download.progress=Progreso de la descarga
-label.drag.new.position=Arrastrar a una nueva ubicaci\u00f3n
-label.duration.in.sec=Duraci\u00f3n (en seg)
-label.dynamically.scalable=Escalable Dinamicamente
-label.edit.acl.rule=Editar regla ACL
-label.edit.affinity.group=Editar Grupo de Afinidad
-label.edit=Editar
-label.edit.lb.rule=Edite regla LB
-label.edit.network.details=Editar detalles de red
-label.edit.project.details=Editar detalles de proyecto
-label.edit.region=Editar Regi\u00f3n
-label.edit.role=Editar Rol
-label.edit.rule=Editar regla
-label.edit.secondary.ips=Editar IPs secundarios
-label.edit.tags=Editar etiquetas
-label.edit.traffic.type=Edite el tipo de trafico
-label.edit.vpc=Editar VPC
-label.egress.default.policy=Directiva de salida predeterminada
-label.egress.rule=Regla de salida
-label.egress.rules=Reglas de salida
-label.elastic=El\u00e1stico
-label.elastic.IP=IP El\u00e1stica
-label.elastic.LB=LB El\u00e1stico
-label.email=correo electr\u00f3nico
-label.email.lower=email
-label.enable.autoscale=Habilitar Escalado Autom\u00e1tico
-label.enable.host=Habilitar Servidor
-label.enable.network.offering=Habilitar  oferta de red
-label.enable.provider=Habilitar proveedor
-label.enable.s3=Habilitar Almacenamiento Secundario sobre S3
-label.enable.swift=Habilitar Swift
-label.enable.vnmc.device=Habilitar dispositivo VNMC
-label.enable.vnmc.provider=Habilitar proveedor VNMC
-label.enable.vpc.offering=Habilitar oferta VPC
-label.enable.vpn=Habilitar VPN
-label.enabling.vpn.access=Habilitaci\u00f3n de Acceso VPN
-label.enabling.vpn=Habilitaci\u00f3n VPN
-label.end.IP=IP Final
-label.endpoint=Endpoint
-label.endpoint.or.operation=punto final o de Operaci\u00f3n
-label.end.port=Puerto final
-label.end.reserved.system.IP=\u00daltima IP de sistema Reservada
-label.end.vlan=VLAN Final
-label.end.vxlan=VXLAN Final
-label.enter.token=Ingrese token
-label.error.code=C\u00f3digo de error
-label.error=Error
-label.error.upper=ERROR
-label.ESP.encryption=Encriptaci\u00f3n ESP
-label.ESP.hash=Hash
-label.ESP.lifetime=Tiempo de vida ESP (en segundos)
-label.ESP.policy=Pol\u00edtica ESP
-label.esx.host=ESX / ESXi anfitri\u00f3n
-label.event.archived=Evento Archivado
-label.event.deleted=Evento Borrado
-label.event=Evento
-label.every=Cada
-label.example=Ejemplo
-label.expunge=Purgar
-label.external.link=Enlace externo
-label.extractable=extra\u00edble
-label.extractable.lower=extraible
-label.f5.details=Detalles F5
-label.f5=F5
-label.failed=Error
-label.featured=destacados
-label.fetch.latest=Obtener el actual
-label.filterBy=Filtrar por
-label.fingerprint=Huella Digital
-label.firewall=Servidor de seguridad
-label.firstname.lower=nombre
-label.first.name=Nombre
-label.format=Formato
-label.format.lower=formato
-label.friday=Viernes
-label.full=completo
-label.full.path=Path completo
-label.gateway=puerta de enlace
-label.general.alerts=General de Alertas
-label.generating.url=Generar URL
-label.globo.dns.configuration=Configuraci\u00f3n de GloboDNS
-label.globo.dns=GloboDNS
-label.gluster.volume=Volumen
-label.go.step.2=Ir al paso 2
-label.go.step.3=Ir al paso 3
-label.go.step.4=Ir al paso 4
-label.go.step.5=Ir al paso 5
-label.gpu=CPU
-label.group.by.account=Agrupar por cuenta
-label.group.by.cluster=Agrupar por cluster
-label.group.by.pod=Agrupar por pod
-label.group.by.zone=Agrupar por zona
-label.group=Grupo
-label.group.optional=Grupo (Opcional)
-label.gslb.assigned.lb=Load balancing asignados
-label.gslb.assigned.lb.more=Asignar  m\u00e1s Load balancing
-label.gslb.delete=Borrar el GSLB
-label.gslb.details=Detalles del GSLB
-label.gslb.domain.name=Nombre de Dominio GSLB
-label.gslb=GSLB
-label.gslb.lb.details=Detalles del load balancing
-label.gslb.lb.remove=Remover el load balancing de este GSLB
-label.gslb.lb.rule=Regla de Load balancing
-label.gslb.service.private.ip=IP Privada del Servicio GSLB
-label.gslb.service.public.ip=IP P\u00fablica del Servicio GSLB
-label.gslb.service=Servicio GSLB
-label.gslb.servicetype=Tipo de Servicio
-label.guest.cidr=Habitaci\u00f3n CIDR
-label.guest.end.ip=IP final del Guest
-label.guest.gateway=Habitaci\u00f3n Gateway
-label.guest=Guest
-label.guest.ip=Habitaci\u00f3n direcci\u00f3n IP
-label.guest.ip.range=Habitaci\u00f3n Rango de IP
-label.guest.netmask=Habitaci\u00f3n m\u00e1scara de red
-label.guest.network.details=Detalles de las redes Guest
-label.guest.networks=Redes de invitado
-label.guest.start.ip=IP inicial del Guest
-label.guest.traffic=Tr\u00e1fico del Guest
-label.guest.traffic.vswitch.name=Nombre del  vSwitch para Tr\u00e1fico Guest
-label.guest.traffic.vswitch.type=Tipo de vSwitch para Tr\u00e1fico Guest
-label.guest.type=Tipo de Guest
-label.ha.enabled=HA Activado
-label.health.check.advanced.options=Opciones Avanzadas\:
-label.health.check.configurations.options=Opciones de Configuraci\u00f3n\:
-label.health.check.interval.in.sec=Intervalo de Health Check (en seg)
-label.health.check.message.desc=Tu load balancer automaticamente har\u00e1 health checks en tus instancias cloudstack  y solo pasar\u00e1 el tr\u00e1fico a las instancias que lo cumplan.
-label.health.check=Verificaci\u00f3n de Salud
-label.health.check.wizard=Wizard para Health Check
-label.healthy.threshold=Barrera de Salud
-label.help=Ayuda
-label.hide.ingress.rule=Ocultar el art\u00edculo ingreso
-label.hints=Sugerencias
-label.home=Inicio
-label.host.alerts=Servidores en Estado de Alerta
-label.host=Ej\u00e9rcitos
-label.host.MAC=MAC del Host
-label.host.name=nombre de host
-label.hosts=Ej\u00e9rcitos
-label.host.tag=Etiqueta del Servidor
-label.host.tags=Etiquetas de Host
-label.hourly=por hora
-label.hvm=HVM
-label.hypervisor.capabilities=Capacidades del Hipervisor
-label.hypervisor=Hypervisor
-label.hypervisors=Hipervisores
-label.hypervisor.snapshot.reserve=Reserva de instant\u00e1neas de hipervisores
-label.hypervisor.type=Tipo Hypervisor
-label.hypervisor.version=Versi\u00f3n del Hipervisor
-label.hyperv.traffic.label=Etiqueta de tr\u00e1fico HyperV
-label.id=ID
-label.IKE.DH=IKE DH
-label.IKE.encryption=Encriptaci\u00f3n IKE
-label.IKE.hash=Hash IKE
-label.IKE.lifetime=IKE lifetime (segundos)
-label.IKE.policy=Pol\u00edtica IKE
-label.info=Informaci\u00f3n
-label.info.upper=INFO
-label.ingress.rule=ingreso Regla
-label.initiated.by=Iniciado por
-label.inside.port.profile=Dentro del Perfil de Puerto
-label.installWizard.addClusterIntro.subtitle=\u00bfQu\u00e9 es un cluster?
-label.installWizard.addClusterIntro.title=Agreguemos un cl\u00faster
-label.installWizard.addHostIntro.subtitle=\u00bfQu\u00e9 es un servidor?
-label.installWizard.addHostIntro.title=Agreguemos un servidor
-label.installWizard.addPodIntro.subtitle=\u00bfQue es un Pod?
-label.installWizard.addPodIntro.title=Agreguemos un Pod
-label.installWizard.addPrimaryStorageIntro.subtitle=\u00bfQu\u00e9 es el almacenamiento primario?
-label.installWizard.addPrimaryStorageIntro.title=Agreguemos almacenamiento primario
-label.installWizard.addSecondaryStorageIntro.subtitle=Que es almacenamiento secundario?
-label.installWizard.addSecondaryStorageIntro.title=A\u00f1adir almacenamiento secundario
-label.installWizard.addZoneIntro.subtitle=\u00bfQu\u00e9 es una zona?
-label.installWizard.addZoneIntro.title=Agreguemos una zona
-label.installWizard.addZone.title=Agregar zona
-label.installWizard.click.launch=Click en el bot\u00f3n de lanzar.
-label.installWizard.subtitle=Esta gu\u00eda te ayudar\u00e1 a configurar la instalaci\u00f3n de CloudStack&\#848
-label.installWizard.title=Hola y Bienvenido a CloudStack&\#8482
-label.instance=Instancia
-label.instance.limits=Instancia L\u00edmites
-label.instance.name=Nombre de instancia
-label.instance.port=Puerto de Instancia
-label.instance.scaled.up=Instancia escalada a lo requerido en la oferta
-label.instances=Instancias
-label.instanciate.template.associate.profile.blade=Instanciar Plantilla y asociar al Perfil del Blade
-label.intermediate.certificate=Entidad de Certificaci\u00f3n Intermedia {0}
-label.internal.dns.1=DNS interno una
-label.internal.dns.2=DNS interno 2
-label.internal.lb.details=Detalles del LB Interno
-label.internal.lb=LB interno
-label.internallbvm=LbVmInterna
-label.internal.name=Nombre interno
-label.interval.type=Tipo de intervalo
-label.introduction.to.cloudstack=Introducci\u00f3n a CloudStack&\#8482
-label.invalid.integer=entero no v\u00e1lido
-label.invalid.number=N\u00famero no v\u00e1lido
-label.invitations=Invitaciones
-label.invited.accounts=Cuentas de invitado
-label.invite=Invitar
-label.invite.to=Invitar a .
-label.ip.address=Direcci\u00f3n IP
-label.ipaddress=Direcci\u00f3n IP
-label.ip.allocations=IP asignaciones
-label.ip=IP
-label.ip.limits=IP p\u00fablica L\u00edmites
-label.ip.or.fqdn=IP o FQDN
-label.ip.range=Rango de IP
-label.ip.ranges=Rangos de IP
-label.IPsec.preshared.key=IPsec Preshared-Key
-label.ips=IP
-label.ipv4.cidr=IPv4 CIDR
-label.ipv4.dns1=IPv4 DNS1
-label.ipv4.dns2=IPv4 DNS2
-label.ipv4.end.ip=IP Final IPv4
-label.ipv4.gateway=Gateway IPv4
-label.ipv4.netmask=Netmask IPv4
-label.ipv4.start.ip=IP Inicial IPv4
-label.ipv6.address=Direcci\u00f3n IP IPv6
-label.ipv6.CIDR=IPv6 CIDR
-label.ipv6.dns1=IPv6 DNS1
-label.ipv6.dns2=IPv6 DNS2
-label.ipv6.end.ip=IP Final IPv6
-label.ipv6.gateway=Gateway IPv6
-label.ipv6.start.ip=IP Inicial IPv6
-label.iscsi=iSCSI
-label.is.default=Es por defecto
-label.iso.boot=ISO de arranque
-label.iso=ISO
-label.isolated.networks=Redes Aisladas
-label.isolation.method=M\u00e9todo de aislamiento
-label.isolation.mode=modo de aislamiento
-label.isolation.uri=URI de aislamiento
-label.is.redundant.router=redundante
-label.is.shared=es compartido
-label.is.system=es el Sistema
-label.item.listing=Listando art\u00edculos
-label.japanese.keyboard=Teclado Japones
-label.keep.colon=Conservar\:
-label.keep=Mantener
-label.keyboard.language=Lenguaje del Teclado
-label.keyboard.type=Tipo de teclado
-label.key=Llave
-label.kvm.traffic.label=Etiqueta de tr\u00e1fico KVM
-label.label=Etiqueta
-label.lang.arabic=\u00c1rabe
-label.lang.brportugese=Portugues de Brasil
-label.lang.catalan=Catal\u00e1n
-label.lang.chinese=Chino (simplificado)
-label.lang.dutch=Holandes
-label.lang.english=Ingl\u00e9s
-label.lang.french=Frances
-label.lang.german=Aleman
-label.lang.hungarian=Hungaro
-label.lang.italian=Italiano
-label.lang.japanese=japon\u00e9s
-label.lang.korean=Coreano
-label.lang.norwegian=Noruego
-label.lang.polish=Polaco
-label.lang.russian=Ruso
-label.lang.spanish=Espa\u00f1ol
-label.last.disconnected=\u00daltima Desconectado
-label.last.name=Apellido
-label.lastname.lower=apellido
-label.latest.events=\u00daltimos eventos
-label.launch=Lanzar
-label.launch.vm=Lanzar maquina virtual
-label.launch.zone=Lanzar zona
-label.lb.algorithm.leastconn=Menor cantidad de conexiones
-label.lb.algorithm.roundrobin=Round-robin
-label.lb.algorithm.source=Fuente
-label.LB.isolation=Aislamiento de LB
-label.ldap.configuration=Configuraci\u00f3n de LADP
-label.ldap.group.name=Grupo LDAP
-label.ldap.link.type=Tipo
-label.ldap.port=Puerto de LDAP
-label.level=Nivel
-label.link.domain.to.ldap=Enlazar Dominio a LDAP
-label.linklocal.ip=Direcci\u00f3n IP del Link Local
-label.load.balancer=equilibrador de carga
-label.load.balancer.type=Tipo de Load Balancer
-label.load.balancing=Balanceador de Carga
-label.load.balancing.policies=Pol\u00edticas del balanceador de carga
-label.loading=Carga
-label.local.file=Archivo local
-label.local=local
-label.local.storage=Almacenamiento Local
-label.local.storage.enabled=Habilitar almacenamiento local para VMs de Usuarios
-label.local.storage.enabled.system.vms=Habilitar almacenamiento local para VMs de Sistema
-label.login=Login
-label.logout=Cerrar sesi\u00f3n
-label.lun=LUN
-label.LUN.number=LUN \#
-label.lxc.traffic.label=Etiqueta de tr\u00e1fico LXC
-label.make.project.owner=Convertir la cuenta en due\u00f1a del proyecto
-label.make.redundant=Hacer redundante
-label.manage=Administrar
-label.managed=Gestionado
-label.management.ips=Direcci\u00f3n IP de Management
-label.management=Management
-label.management.server=Management Server
-label.manage.resources=Administrar los Recursos
-label.max.cpus=CPU cores M\u00e1x.
-label.max.guest.limit=L\u00edmite Guest M\u00e1x.
-label.maximum=m\u00e1ximo
-label.max.instances=Instancias M\u00e1ximas
-label.max.memory=Memoria M\u00e1x. (MiB)
-label.max.networks=Redes M\u00e1x.
-label.max.primary.storage=Primario M\u00e1x. (GiB)
-label.max.public.ips=IPs p\u00fablicas M\u00e1x.
-label.max.secondary.storage=Secundario M\u00e1x. (GiB)
-label.max.snapshots=Instant\u00e1neas M\u00e1x.
-label.max.templates=Plantillas M\u00e1ximos
-label.max.vms=VMs de usuario M\u00e1x.
-label.max.volumes=Maxima cantidad de Volumes
-label.max.vpcs=VPCs M\u00e1x.
-label.may.continue=Ahora puede continuar.
-label.md5.checksum=suma de verificaci\u00f3n MD5
-label.memory.allocated=memoria asignada
-label.memory.limits=L\u00edmite de Memoria (MiB)
-label.memory.mb=Memoria (En MB)
-label.memory=memoria (en MB)
-label.memory.total=Total de memoria
-label.memory.used=memoria usada
-label.menu.accounts=Cuentas
-label.menu.alerts=Alertas
-label.menu.all.accounts=Todas las cuentas
-label.menu.all.instances=todas las instancias
-label.menu.community.isos=Comunidad ISOs
-label.menu.community.templates=plantillas de la comunidad
-label.menu.configuration=Configuraci\u00f3n
-label.menu.dashboard=Interfaz
-label.menu.destroyed.instances=Destruir instancias
-label.menu.disk.offerings=disco ofertas
-label.menu.domains=dominio
-label.menu.events=Eventos
-label.menu.featured.isos=destacados ISO
-label.menu.featured.templates=destacados plantillas
-label.menu.global.settings=Configuraci\u00f3n global
-label.menu.infrastructure=Infraestructura
-label.menu.instances=Instancias
-label.menu.ipaddresses=Direcciones IP
-label.menu.isos=ISO
-label.menu.my.accounts=Mis cuentas
-label.menu.my.instances=Mi instancias
-label.menu.my.isos=Mi ISOs
-label.menu.my.templates=Mis plantillas
-label.menu.network.offerings=Red de ofertas
-label.menu.network=Red
-label.menu.physical.resources=Recursos F\u00edsicos
-label.menu.regions=Regiones
-label.menu.running.instances=Ejecuci\u00f3n de instancias
-label.menu.security.groups=Grupos de seguridad
-label.menu.service.offerings=Ofertas de Servicios
-label.menu.snapshots=instant\u00e1neas
-label.menu.sshkeypair=Par de Claves SSH
-label.menu.stopped.instances=Detenido instancias
-label.menu.storage=Almacenamiento
-label.menu.system.service.offerings=Ofertas de Sistema
-label.menu.system=Sistema
-label.menu.system.vms=Sistema de m\u00e1quinas virtuales
-label.menu.templates=plantillas
-label.menu.virtual.appliances=Virtual Appliances
-label.menu.virtual.resources=Virtual de Recursos
-label.menu.volumes=Vol\u00famenes
-label.menu.vpc.offerings=Ofertas de VPC
-label.metrics.allocated=Asignados
-label.metrics.clusters=Cluster
-label.metrics.cpu.allocated=Asignaci\u00f3n de CPU
-label.metrics.cpu.max.dev=Desviaci\u00f3n
-label.metrics.cpu.total=Total
-label.metrics.cpu.usage=Uso de CPU
-label.metrics.cpu.used.avg=Usado
-label.metrics.disk.allocated=Asignados
-label.metrics.disk=Disco
-label.metrics.disk.iops.total=IOPS
-label.metrics.disk.read=Lectura
-label.metrics.disk.size=Tama\u00f1o
-label.metrics.disk.storagetype=Tipo
-label.metrics.disk.total=Total
-label.metrics.disk.unallocated=Sin asignar
-label.metrics.disk.usage=Uso del Disco
-label.metrics.disk.used=Usado
-label.metrics.disk.write=Escritura
-label.metrics.hosts=Ej\u00e9rcitos
-label.metrics.memory.allocated=Asignaci\u00f3n de Memoria
-label.metrics.memory.max.dev=Desviaci\u00f3n
-label.metrics.memory.total=Total
-label.metrics.memory.usage=Uso de Memoria
-label.metrics.memory.used.avg=Usado
-label.metrics=M\u00e9tricas
-label.metrics.name=Nombre
-label.metrics.network.read=Lectura
-label.metrics.network.usage=Uso de la Red
-label.metrics.network.write=Escritura
-label.metrics.num.cpu.cores=Cores
-label.metrics.outofbandmanagementpowerstate=Estado de la Alimentaci\u00f3n
-label.metrics.property=Propiedad
-label.metrics.scope=Alcance
-label.metrics.state=Estado
-label.metrics.storagepool=Pool de Almacenamiento
-label.metrics.vm.name=Nombre de la VM
-label.migrate.instance.to.host=Migrar instancia a otro host.
-label.migrate.instance.to=Migraci\u00f3n de ejemplo para
-label.migrate.instance.to.ps=Migrar instancia a otro primary storage.
-label.migrate.lb.vm=Migrar LB VM
-label.migrate.router.to=Router para migrar
-label.migrate.systemvm.to=Migrar m\u00e1quina virtual del sistema para
-label.migrate.to.host=Migrar a host
-label.migrate.to.storage=Migrar a almacenamiento
-label.migrate.volume=Migrar Volumen
-label.migrate.volume.to.primary.storage=Migrar volumen a otro almacenamiento primario
-label.minimum=M\u00ednimo
-label.min.instances=Instancias M\u00ednimas
-label.min.past.the.hr=minuto(s) despu\u00e9s de la hora
-label.minute.past.hour=minuto(s) despu\u00e9s de la hora
-label.minutes.past.hour=minuto(s) despu\u00e9s de la hora
-label.mode=modo
-label.monday=lunes
-label.monthly=mensual
-label.more.templates=plantillas \= M\u00e1s
-label.move.down.row=Mover abajo una fila
-label.move.to.bottom=Mover al fondo
-label.move.to.top=Mover al principio
-label.move.up.row=Mover una fila arriba
-label.my.account=Mi Cuenta
-label.my.network=Mi red
-label.my.templates=Mis plantillas
-label.name.lower=Nombre
-label.name=Nombre
-label.name.optional=Nombre (Opcional)
-label.na=N/A
-label.nat.port.range=Rango puertos NAT
-label.netmask=m\u00e1scara de red
-label.netscaler.details=Detalles del NetScaler
-label.netScaler=NetScaler
-label.network.ACL=ACL de Red
-label.network.ACLs=ACLs de Red
-label.network.ACL.total=ACL Total de la Red
-label.network.addVM=Agregar red a VM
-label.network.cidr=CIDR de Red
-label.network.desc=Red de Desc
-label.network.details=Detalles de la Red
-label.network.device=De dispositivos de red
-label.network.device.type=Tipo de red de dispositivos
-label.network.domain=red de dominio
-label.network.domain.text=Dominio de Red
-label.network.id=ID de red
-label.networking.and.security=Redes y Seguridad
-label.network.label.display.for.blank.value=Usar default gateway
-label.network.limits=L\u00edmites de la Red
-label.network.name=Nombre de red
-label.network.offering.details=Detalles de la oferta de red
-label.network.offering.display.text=Red ofrece visualizaci\u00f3n de texto
-label.network.offering.id=Red ofrece ID
-label.network.offering.name=Red ofrece Nombre
-label.network.offering=Red ofrece
-label.network.rate.megabytes=Tr\u00e1fico de Red (MB/s)
-label.network.rate=Tasa de Red
-label.network.read=Leer de la red
-label.network=Red
-label.network.service.providers=Proveedores de Servicios de Red
-label.networks=Redes
-label.network.type=Tipo de red
-label.network.write=Escribir en la red
-label.new=Nuevo
-label.new.password=Nueva contrase\u00f1a
-label.new.project=Nuevo Proyecto
-label.new.ssh.key.pair=Nuevo Par de Claves SSH
-label.new.vm=Nueva maquina virtual
-label.next=Siguiente
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nfs.server=servidor NFS
-label.nfs.storage=NFS Almacenamiento
-label.nic.adapter.type=Tipo de adaptador NIC
-label.nicira.controller.address=Direcci\u00f3n de Controladora
-label.nicira.l2gatewayserviceuuid=UUID del Servicio L2 Gateway
-label.nicira.l3gatewayserviceuuid=UUID del Servicio L3 Gateway
-label.nicira.nvp.details=Detalles del NVP Nicira
-label.nicira.transportzoneuuid=UUID de la Zona de Transporte
-label.nics=NIC
-label.no.actions=No Acciones disponibles
-label.no.alerts=No alertas recientes
-label.no.data=No hay informaci\u00f3n que mostrar
-label.no.errors=No recientes errores
-label.no.grouping=(sin agrupar)
-label.no.isos=No ISOs disponibles
-label.no.items=No art\u00edculos disponibles
-label.none=Ninguno
-label.no=No
-label.no.security.groups=No hay grupos disponibles de Seguridad
-label.not.found=No se ha encontrado
-label.no.thanks=No, gracias
-label.notifications=Notificaciones
-label.number.of.clusters=N\u00famero de Clusters
-label.number.of.cpu.sockets=Cantidad de Sockets de CPU
-label.number.of.hosts=N\u00famero de Hosts
-label.number.of.pods=N\u00famero de Pods
-label.number.of.system.vms=N\u00famero de VM\\'s del Systema
-label.number.of.virtual.routers=N\u00famero de Routers Virtuales
-label.number.of.zones=N\u00famero de Zonas
-label.num.cpu.cores=n\u00famero de n\u00facleos de CPU
-label.numretries=N\u00famero de reintentos
-label.ocfs2=OCFS2
-label.offer.ha=Oferta HA
-label.of.month=de mes
-label.ok=Aceptar
-label.opendaylight.controller=Controlador OpenDaylight
-label.opendaylight.controllerdetail=Detalles del Controlador OpenDaylight
-label.opendaylight.controllers=Controlador OpenDaylight
-label.openDaylight=OpenDaylight
-label.operator=Operador
-label.optional=Opcional
-label.order=Ordenar
-label.os.preference=OS Preferencia
-label.os.type=tipo de Sistema Operativo
-label.other=Otro
-label.outofbandmanagement.action=Acci\u00f3n
-label.outofbandmanagement.action.issue=Enviar Acci\u00f3n de Gesti\u00f3n de Alimentac\u00edon Fuera-de-Banda
-label.outofbandmanagement.address=Direcci\u00f3n
-label.outofbandmanagement.changepassword=Cambiar la contrase\u00f1a de la gesti\u00f3n Out-of-band
-label.outofbandmanagement.configure=Configurar Gesti\u00f3n Out-of-band
-label.outofbandmanagement.disable=Deshabilitar Gesti\u00f3n Out-of-band
-label.outofbandmanagement.driver=Driver
-label.outofbandmanagement.enable=Habilitar Gesti\u00f3n Out-of-band
-label.outofbandmanagement=Gesti\u00f3n Out-of-band
-label.outofbandmanagement.password=Contrase\u00f1a
-label.outofbandmanagement.port=Puerto
-label.outofbandmanagement.reenterpassword=Reingresar contrase\u00f1a
-label.outofbandmanagement.username=Nombre de usuario
-label.override.guest.traffic=Sobreescribir Tr\u00e1fico Guest
-label.override.public.traffic=Sobreescribir Tr\u00e1fico Public
-label.ovm3.cluster=Cluster Nativo
-label.ovm3.pool=Pooling Nativo
-label.ovm3.traffic.label=Etiqueta de tr\u00e1fico OVM3
-label.ovm3.vip=IP del VIP Master
-label.ovm.traffic.label=Etiqueta de tr\u00e1fico OVM
-label.ovs=OVS
-label.owned.public.ips=propiedad p\u00fablica Direcciones IP
-label.owner.account=titular de la cuenta
-label.owner.domain=Due\u00f1o del Dominio
-label.palo.alto.details=Detalles de Palo Alto
-label.PA.log.profile=Perfil de Palo Alto Log
-label.PA=Palo Alto
-label.parent.domain=Padres de dominio
-label.passive=Pasivo
-label.password=Contrase\u00f1a
-label.password.enabled=Contrase\u00f1a Activado
-label.password.lower=contrase\u00f1a
-label.password.reset.confirm=La Contrase\u00f1a se ha cambiado a
-label.PA.threat.profile=Perf\u00edl de Amenazas Palo Alto
-label.path=Ruta
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.permission=Autorizaciones
-label.persistent=Persistente
-label.physical.network.ID=ID de red f\u00edsica
-label.physical.network.name=Nombre de red f\u00edsica
-label.physical.network=Red F\u00edsica
-label.PING.CIFS.password=PING CIFS contrase\u00f1a
-label.PING.CIFS.username=PING CIFS nombre de usuario
-label.PING.dir=PING Directorio
-label.ping.path=Camino de Ping
-label.PING.storage.IP=PING almacenamiento IP
-label.planner.mode=Modo planificaci\u00f3n
-label.please.complete.the.following.fields=Por favor complete los siguientes campos
-label.please.specify.netscaler.info=Por favor especifique la informaci\u00f3n del Netscaler
-label.please.wait=Por favor espere
-label.plugin.details=Detalles del Plugin
-label.plugins=Plugins
-label.pod.dedicated=Pod Dedicado
-label.pod.name=Nombre del Pod
-label.pod=Pod
-label.pods=Pod
-label.polling.interval.sec=Intervalo de Pooling (en seg)
-label.portable.ip=IP Port\u00e1til
-label.portable.ip.range.details=Detalles del Rango de IP port\u00e1til
-label.portable.ip.ranges=Rangos de IP port\u00e1tiles
-label.portable.ips=IPs Port\u00e1tiles
-label.port.forwarding.policies=Pol\u00edticas de Port forwarding
-label.port.forwarding=Port Forwarding
-label.port=Puerto
-label.port.range=rango de puertos
-label.powerstate=Estado de la Alimentaci\u00f3n
-label.PreSetup=PreSetup
-label.prev=Anterior
-label.previous=Previo
-label.primary.allocated=primaria asignado de almacenamiento
-label.primary.network=Red Primaria
-label.primary.storage=Almacenamiento Primario
-label.primary.storage.count=Pool Almacenamiento Primario
-label.primary.storage.limits=L\u00edmite del Almacenamiento Primario (GiB)
-label.primary.used=Primaria Almacenado
-label.private.Gateway=Gateway Privado
-label.private.interface=Interfaz privada
-label.private.ip=direcci\u00f3n IP privada
-label.private.ip.range=IP privada Gama
-label.private.ips=direcciones IP privadas
-label.private.key=Clave Privada
-label.privatekey=PKCS\#8 la clave privada
-label.private.network=Red privada
-label.private.port=Puerto privado
-label.private.zone=Zona Privada
-label.profile=Perfil
-label.project.dashboard=Tablero del Proyecto
-label.project.id=ID proyecto
-label.project.invite=Invitar al proyecto
-label.project.name=Nombre del Proyecto
-label.project=proyecto
-label.projects=proyectos
-label.project.view=Vista de Proyecto
-label.protocol.number=N\u00famero de Protocolo
-label.protocol=Protocolo
-label.provider=Proveedor
-label.providers=Proveedores
-label.public.interface=interfaz p\u00fablica
-label.public.ip=direcci\u00f3n IP p\u00fablica
-label.public.ips=direcciones IP p\u00fablicas
-label.public.key=Clave P\u00fablica
-label.public.lb=LB P\u00fablico
-label.public.load.balancer.provider=Proveedor de Load Balancer P\u00fablico
-label.public.network=Red P\u00fablica
-label.public.port=Puerto P\u00fablico
-label.public=P\u00fablica
-label.public.traffic=Tr\u00e1fico p\u00fablico
-label.public.traffic.vswitch.name=Nombre de vSwitch para Tr\u00e1fico Public
-label.public.traffic.vswitch.type=Tipo de vSwitch para Tr\u00e1fico Public
-label.public.zone=Zona P\u00fablica
-label.purpose=Prop\u00f3sito
-label.Pxe.server.type=Tipo de servidor Pxe
-label.qos.type=Tipo de QoS
-label.quickview=Vista R\u00e1pida
-label.quiesce.vm=Colocar en estado consistente a la VM
-label.quiet.time.sec=Tiempo en Silencio (en seg)
-label.quota.add.credits=Agregar Cr\u00e9ditos
-label.quota.balance=Balance
-label.quota.configuration=Configuraci\u00f3n de Quota
-label.quota.configure=Configurar Quota
-label.quota.credit=Cr\u00e9dito
-label.quota.credits=Cr\u00e9ditos
-label.quota.date=Fecha
-label.quota.dates=Modificar Fechas
-label.quota.description=Descripci\u00f3n de Quota
-label.quota.email.body=Cuerpo
-label.quota.email.lastupdated=\u00daltima Modificaci\u00f3n
-label.quota.email.subject=Tema
-label.quota.email.template=Plantilla de E-Mail
-label.quota.enddate=Fecha de F\u00edn
-label.quota.endquota=Quota Final
-label.quota.enforcequota=Forzar Quota
-label.quota.fullsummary=Todas las cuentas
-label.quota.minbalance=Balance M\u00ednimo
-label.quota.remove=Remover Quota
-label.quota.startdate=Fecha de Inicio
-label.quota.startquota=Quota Inicial
-label.quota.state=Estado
-label.quota.statement.balance=Balance de Quota
-label.quota.statement.bydates=Declaraci\u00f3n
-label.quota.statement=Declaraci\u00f3n
-label.quota.statement.quota=Uso de la Quota
-label.quota.statement.tariff=Tarifa de la Quota
-label.quota.summary=Resumen
-label.quota.tariff.edit=Editar la Tarifa
-label.quota.tariff.effectivedate=Fecha Efectiva
-label.quota.tariff=Tarifa
-label.quota.tariff.value=Valor Tarifario
-label.quota.total=Total
-label.quota.totalusage=Uso Totalizado
-label.quota.type.name=Tipo de Uso
-label.quota.type.unit=Unidad de Uso
-label.quota.usage=Consumo de Quota
-label.quota.value=Valor de Quota
-label.rbd.id=Usuario Cephx
-label.rbd.monitor=Monitor CEPH
-label.rbd.pool=Pool CEPH
-label.rbd=RBD
-label.rbd.secret=Secreto Cephx
-label.reboot=Reiniciar
-label.recent.errors=recientes errores
-label.recover.vm=Recuperar la VM
-label.redundant.router.capability=Capacidades del router redundante
-label.redundant.router=enrutador redundante
-label.redundant.state=Estado redundante
-label.redundant.vpc=VPC redundante
-label.refresh=Actualizar
-label.refresh.blades=Refrescar Blade
-label.region.details=Detalles de la Regi\u00f3n
-label.regionlevelvpc=VPC a Nivel de Regi\u00f3n
-label.region=Regi\u00f3n
-label.reinstall.vm=Reinstalar la VM
-label.related=relacionados
-label.release.account=Liberar de la Cuenta
-label.release.account.lowercase=Liberar de la cuenta
-label.release.dedicated.cluster=Liberar Cluster Dedicado
-label.release.dedicated.host=Liberar Servidor Dedicado
-label.release.dedicated.pod=Liberar Pod Dedicado
-label.release.dedicated.vlan.range=Liberar rango VLAN dedicado
-label.release.dedicated.zone=Liberar Zona Dedicada
-label.remind.later=Recordar mas tarde
-label.remove.ACL=Remover ACL
-label.remove.egress.rule=Eliminar regla de salida
-label.remove.from.load.balancer=ejemplo Eliminaci\u00f3n de equilibrador de carga
-label.remove.ingress.rule=Eliminar regla de entrada
-label.remove.ip.range=Remover rango IP
-label.remove.ldap=Quitar LDAP
-label.remove.network.offering=Remover oferta de red
-label.remove.pf=Remover regla de port forwarding
-label.remove.project.account=Remover cuenta del proyecto
-label.remove.region=Remover Regi\u00f3n
-label.remove.rule=Remover regla
-label.remove.ssh.key.pair=Remover Par de Claves SSH
-label.remove.static.nat.rule=Remover regla NAT est\u00e1tica
-label.remove.static.route=Remover ruta est\u00e1tica
-label.remove.this.physical.network=Remover esta red f\u00edsica
-label.remove.tier=Remover tier
-label.remove.vm.from.lb=Remover VM de la regla de load balancer
-label.remove.vm.load.balancer=Remover VM del load balancer
-label.remove.vmware.datacenter=Remover Datacenter VMware
-label.remove.vpc.offering=Remover oferta VPC
-label.remove.vpc=Remover VPC
-label.removing=Borrando.
-label.removing.user=Eliminar usuario
-label.reource.id=ID del Recurso
-label.replace.acl.list=Reemplazar Lista ACL
-label.replace.acl=Reemplazar ACL
-label.required=Requerido
-label.requires.upgrade=Requiere Actualizaci\u00f3n
-label.reserved.ip.range=Rango IP Reservado
-label.reserved.system.gateway=System gateway reservado
-label.reserved.system.ip=Reservados sistema de PI
-label.reserved.system.netmask=M\u00e1scara de red reservada para el sistema
-label.reset.ssh.key.pair.on.vm=Resetear el Par de Claves SSH en la VM
-label.reset.ssh.key.pair=Resetear el Par de Claves SSH
-label.resetVM=Resetear VM
-label.reset.VPN.connection=Resetear la conexi\u00f3n VPN
-label.resize.new.offering.id=Nueva Oferta
-label.resize.new.size=Nuevo Tama\u00f1o (GB)
-label.resize.shrink.ok=Se redujo satisfactoriamente
-label.resource.limit.exceeded=L\u00edmite de Recursos Excedido
-label.resource.limits=L\u00edmites de Recursos
-label.resource.name=Nombre del Recurso
-label.resource=Recursos
-label.resources=Recursos
-label.resource.state=Estado del recurso
-label.response.timeout.in.sec=Timeout de Respuesta (en seg)
-label.restart.network=Reiniciar red
-label.restart.required=Reiniciado requerido
-label.restart.vpc=Reiniciar VPC
-label.restore=Restaurar
-label.retry.interval=Intervalo de Repetici\u00f3n
-label.review=Revisar
-label.revoke.project.invite=Cancelar Invitaci\u00f3n
-label.role=Papel
-label.roles=Roles
-label.roletype=Tipo de Rol
-label.root.certificate=Certificado Ra\u00edz
-label.root.disk.controller=Controladora de disco ROOT
-label.root.disk.offering=Root Disco Offering
-label.root.disk.size=Tama\u00f1o del disco Root (GB)
-label.router.vm.scaled.up=Router VM Escaladas
-label.routing=Enrutamiento
-label.routing.host=Servidor de Routeo
-label.rule.number=N\u00famero de Regla
-label.rule=Regla
-label.rules=Reglas
-label.running.vms=Ejecuci\u00f3n de m\u00e1quinas virtuales
-label.s3.access_key=Llave de Acceso
-label.s3.bucket=Bucket
-label.s3.connection_timeout=Tiempo de conexi\u00f3n agotado
-label.s3.endpoint=Endpoint
-label.s3.max_error_retry=Repeticiones M\u00e1ximas ante Errores
-label.s3.nfs.path=Ruta NFS S3
-label.s3.nfs.server=Servidor NFS S3
-label.s3.secret_key=clave secreta
-label.s3.socket_timeout=Timeout del Socket
-label.s3.use_https=Use HTTPS
-label.saml.enable=Autorizar SAML SSO
-label.saml.entity=Proveedor de Identidad
-label.saturday=s\u00e1bado
-label.save.and.continue=Guardar y continuar
-label.save.changes=Grabar cambios
-label.save=Guardar
-label.saving.processing=ahorro ....
-label.scaledown.policy=Pol\u00edtica de descenso
-label.scale.up.policy=POLITICA DE ESCALADO
-label.scaleup.policy=Pol\u00edtica de Escalado
-label.scope=Alcance
-label.search=Buscar
-label.secondary.ips=IPs secundarios
-label.secondary.isolated.vlan.id=VLAN ID de Secundaria Aislada
-label.secondary.staging.store=Almacenamiento Secundario Temporario
-label.secondary.staging.store.details=Detalles del Almacenamiento Secundario Temporario
-label.secondary.storage=Almacenamiento secundario
-label.secondary.storage.count=Pools del Almacenamiento Secundario
-label.secondary.storage.details=Detalles del Almacenamiento Secundario
-label.secondary.storage.limits=L\u00edmite del Almacenamiento Secundario (GiB)
-label.secondary.storage.vm=VM de almacenamiento secundario
-label.secondary.used=Secundaria Almacenado
-label.secret.key=clave secreta
-label.security.group=Grupo de Seguridad
-label.security.group.name=Nombre de grupo de seguridad
-label.security.groups.enabled=Los grupos de seguridad habilitado
-label.security.groups=Grupos de seguridad
-label.select.a.template=Seleccione un template
-label.select.a.zone=Seleccione una zona.
-label.select.instance=Seleccione instancia
-label.select.instance.to.attach.volume.to=Elija la instancia para conectar el volumen
-label.select.iso.or.template=Seleccione una ISO o template
-label.select.offering=Elija oferta
-label.select.project=Elegir Proyecto
-label.select.region=Elegir Regi\u00f3n
-label.select=Seleccione
-label.select.template=Elegir Plantilla
-label.select.tier=Elija Tier
-label.select-view=Seleccione vista
-label.select.vm.for.static.nat=Seleccione VM para NAT est\u00e1tica
-label.sent=Enviados
-label.server=Servidor
-label.service.capabilities=Capacidades del Servicio
-label.service.offering.details=Detalles de la oferta de servicio
-label.service.offering=Oferta de Servicio
-label.services=Servicios
-label.service.state=Estado del servicio
-label.session.expired=Session Caducado
-label.set.default.NIC=Definir NIC por defecto
-label.settings=Setos
-label.setup=Configuraci\u00f3n
-label.setup.network=Configurar Red
-label.setup.zone=Configurar Zona
-label.set.up.zone.type=Definir tipo de zona
-label.shared=compartidas
-label.SharedMountPoint=SharedMountPoint
-label.show.advanced.settings=Mostrar setos avanzados
-label.show.ingress.rule=Mostrar la regla del ingreso
-label.shutdown.provider=Apagar proveedor
-label.simplified.chinese.keyboard=Teclado Chino Simplificado
-label.site.to.site.VPN=VPN Site-to-site
-label.size=Tama\u00f1o
-label.skip.guide=He utilizado CloudStack anteriormente, saltar esta gu\u00eda
-label.smb.domain=Dominio SMB
-label.smb.password=Contrase\u00f1a SMB
-label.smb.username=Nombre de usuario SMB
-label.snapshot=Instant\u00e1nea
-label.snapshot.limits=instant\u00e1neas L\u00edmites
-label.snapshot.name=Nombre de instant\u00e1neas
-label.snapshot.schedule=Configurar Instant\u00e1neas Recurrentes
-label.snapshot.s=instant\u00e1neas
-label.snapshots=instant\u00e1neas
-label.SNMP.community=SNMP Community
-label.SNMP.port=SNMP Port
-label.sockets=Sockets
-label.source.ip.address=Direcci\u00f3n IP Origen
-label.source.nat=NAT Fuente
-label.source.nat.supported=SourceNAT Soportado
-label.source.port=Puerto Origen
-label.specify.IP.ranges=Especificar rangos de IP
-label.specify.vlan=Especifique VLAN
-label.specify.vxlan=Especifique VXLAN
-label.SR.name=SR Nombre de etiqueta
-label.srx.details=Detalles de SRX
-label.srx=SRX
-label.ssh.key.pair.details=Detalles del Par de Claves SSH
-label.ssh.key.pair=Par de Claves SSH
-label.ssh.key.pairs=Par de Claves SSH
-label.standard.us.keyboard=Teclado Standard (US)
-label.start.IP=IP inicial
-label.start.lb.vm=Arrancar VM LB
-label.start.port=Iniciar Puerto
-label.start.reserved.system.IP=IP inicial reservada para el sistema
-label.start.vlan=VLAN inicial
-label.start.vxlan=VXLAN inicial
-label.state=Estado
-label.static.nat.enabled=NAT est\u00e1tica habilitada
-label.static.nat=NAT est\u00e1tica
-label.static.nat.to=est\u00e1tico NAT para
-label.static.nat.vm.details=Detalles del NAT est\u00e1tico de la VM
-label.static.routes=Rutas Est\u00e1ticas
-label.statistics=Estad\u00edsticas
-label.status=Estado
-label.step.1=Paso 1
-label.step.1.title=Paso 1\: <strong> Seleccione una plantilla </strong>
-label.step.2=Paso 2
-label.step.2.title=Paso 2\: <strong> Oferta de Servicio </strong>
-label.step.3=Paso 3
-label.step.3.title=Paso 3\: <strong id\="step3_label"> Seleccione un disco Ofrenda </strong>
-label.step.4=Paso 4
-label.step.4.title=Paso 4\: <strong> Red </strong>
-label.step.5=Paso 5
-label.step.5.title=Paso 5\: Revisi\u00f3n <strong> </strong>
-label.stickiness.method=M\u00e9todo de Stickiness
-label.stickiness=Stickiness
-label.sticky.cookie-name=Nombre de Cookie
-label.sticky.domain=dominio
-label.sticky.expire=Expira
-label.sticky.holdtime=Tiempo de Retenci\u00f3n
-label.sticky.indirect=Indirecto
-label.sticky.length=Longitud
-label.sticky.mode=modo
-label.sticky.name=Nombre Pegajoso
-label.sticky.nocache=No Cache
-label.sticky.postonly=Solo Post
-label.sticky.prefix=Prefijo
-label.sticky.request-learn=Solicitar aprendizaje
-label.sticky.tablesize=Tama\u00f1o de tabla
-label.stop=Detener
-label.stop.lb.vm=Parar LB VM
-label.stopped.vms=Detenido m\u00e1quinas virtuales
-label.storage=Almacenamiento
-label.storage.pool=Pool de Almacenamiento
-label.storage.tags=Etiquetas de almacenamiento
-label.storage.traffic=Tr\u00e1fico de Almacenamiento
-label.storage.type=Tipo de almacenamiento
-label.subdomain.access=Acceso al Subdominio
-label.submit=Enviar
-label.submitted.by=[Enviado por\: <span id\="submitted_by"> </span>]
-label.succeeded=Sucesor
-label.sunday=domingo
-label.super.cidr.for.guest.networks=Super CIDR para las Redes Guest
-label.supported.services=Servicios Soportados
-label.supported.source.NAT.type=Tipo de Source NAT soportado
-label.supportsstrechedl2subnet=Soporte de Subredes Streched L2 
-label.suspend.project=Suspender Proyecto
-label.switch.type=Cambiar el tipo
-label.system.capacity=Capacidad de todo el sistema
-label.system.offering.for.router=Oferta de Sistema para Router
-label.system.offering=Oferta de Sistema
-label.system.service.offering.details=Detalles de la oferta de servicio del sistema
-label.system.service.offering=Oferta de Servicio de Sistema
-label.system.vm.details=Detalles de la VM de Sistema
-label.system.vm.scaled.up=VM de Sistema Escaladas
-label.system.vm=Sistema de VM
-label.system.vms=Sistema de m\u00e1quinas virtuales
-label.system.vm.type=Tipo de sistema VM
-label.system.wide.capacity=Capacidad total del sistema
-label.tagged=etiqueta
-label.tag.key=Clave de Etiqueta
-label.tags=Etiquetas
-label.tag.value=Valor de Etiqueta
-label.target.iqn=Objetivo IQN
-label.task.completed=Tarea finalizada.
-label.template.limits=Plantilla L\u00edmites
-label.template=plantilla
-label.TFTP.dir=Directorio de TFTP
-label.tftp.root.directory=Directorio ra\u00edz de TFTP
-label.theme.default=Tema Por Defecto
-label.theme.grey=Personal - Gris
-label.theme.lightblue=Personal - Azul
-label.threshold=Barrera
-label.thursday=Jueves
-label.tier.details=Detalles del Tier
-label.tier=Tier
-label.time.colon=Hora\:
-label.timeout.in.second = Timeout (segundos)
-label.timeout=Tiempo de espera
-label.time=Tiempo
-label.timezone.colon=Zona Horaria\:
-label.time.zone=Zona horaria
-label.timezone=Zona horaria
-label.token=Token
-label.total.cpu=Total CPU
-label.total.CPU=Total CPU
-label.total.hosts=Total de Hosts
-label.total.memory=Memoria Total
-label.total.of.ip=Direcciones IP totales
-label.total.of.vm=Total de m\u00e1quinas virtuales
-label.total.storage=Almacenamiento Total
-label.total.virtual.routers.upgrade=Virtual Routers que requieren actualizaci\u00f3n
-label.total.virtual.routers=Virtual Routers Totales
-label.total.vms=Total de m\u00e1quinas virtuales
-label.traffic.label=Etiqueta de trafico
-label.traffic.types=Tipo de Tr\u00e1ficos
-label.traffic.type=Tipo de Tr\u00e1fico
-label.tuesday=martes
-label.type.id=Tipo de identificaci\u00f3n
-label.type.lower=tipo
-label.type=Tipo
-label.ucs=UCS
-label.uk.keyboard=Teclado UK
-label.unavailable=no disponible
-label.unhealthy.threshold=Fuera del Umbral Saludable
-label.unlimited=Unlimited
-label.untagged=sin etiquetar
-label.update.project.resources=Actualizar recurso del proyecto
-label.update.ssl.cert= Certificado SSL
-label.update.ssl= Certificado SSL
-label.updating=Actualizar
-label.upgrade.required=La Actualizaci\u00f3n es necesaria
-label.upgrade.router.newer.template=Actualizar Router para usar una Plantilla m\u00e1s Nueva
-label.upload.from.local=Subir desde Local
-label.upload=Subir
-label.upload.template.from.local=Subir Plantilla desde Local
-label.upload.volume.from.local=Subir un Volumen desde Local
-label.upload.volume.from.url=Subir un Volumen desde URL
-label.upload.volume=Subir volumen
-label.url=URL
-label.usage.interface=Interfaz de uso
-label.usage.sanity.result=Resultado del Uso Sanitizado
-label.usage.server=Servidor de Uso
-label.usage.type=Tipo de Uso
-label.usage.unit=Unidad
-label.used=Usado
-label.user.data=Datos de Usuario
-label.user.details=Detalles del Usuario
-label.username.lower=usuario
-label.username=Nombre de usuario
-label.users=usuario
-label.user=Usuario
-label.user.vm=VM de Usuario
-label.use.vm.ips=Usar las IP de la VM
-label.use.vm.ip=Usar VM IP\:
-label.value=Valor
-label.vcdcname=nombre
-label.vcenter.cluster=vCenter cl\u00faster
-label.vcenter.datacenter=vCenter de centros de datos
-label.vcenter.datastore=vCenter almac\u00e9n de datos
-label.vcenter.host=vCenter anfitri\u00f3n
-label.vcenter.password=vCenter Contrase\u00f1a
-label.vcenter.username=vCenter Nombre de usuario
-label.vcenter=vcenter
-label.vcipaddress=Direcci\u00f3n IP de vCenter
-label.version=Versi\u00f3n
-label.vgpu.max.resolution=Resoluci\u00f3n M\u00e1xima
-label.vgpu.max.vgpu.per.gpu=vGPU por GPU
-label.vgpu.remaining.capacity=Capacidad remanente
-label.vgpu.type=Tipo de vGPU
-label.vgpu=VGPU
-label.vgpu.video.ram=Video RAM
-label.view.all=Ver todo
-label.view.console=Ver consola
-label.viewing=Mirando
-label.view.more=Ver mas
-label.view.secondary.ips=Ver las IP secundarias
-label.view=Ver
-label.virtual.appliance.details=Detalles del Virtual appliance
-label.virtual.appliances=Virtual Appliances
-label.virtual.appliance=Virtual Appliance
-label.virtual.machine=M\u00e1quinas virtuales
-label.virtual.machines=Maquinas virtuales
-label.virtual.networking=Red Virtual
-label.virtual.network=Red Virtual
-label.virtual.routers.group.account=Routers Virtuales agrupados por cuenta
-label.virtual.routers.group.cluster=Agrupar Virtual Routers por cl\u00faster
-label.virtual.routers.group.pod=Routers Virtuales agrupados por pod
-label.virtual.routers.group.zone=Router Virtuales agrupados por zona
-label.virtual.routers=Routers Virtuales
-label.virtual.router=Virtual Router
-label.vlan.id=ID de VLAN
-label.vlan.only=VLAN
-label.vlan.range.details=Detalle de  Rango VLAN
-label.vlan.ranges=Rango(s) de VLAN
-label.vlan.range=VLAN Gama
-label.vlan=VLAN
-label.vlan.vni.ranges=Rango(s) VLAN/VNI
-label.vlan.vni.range=VLAN Gama
-label.vm.add=A\u00f1adir Instancia
-label.vm.destroy=Destroy
-label.vm.display.name=Nombra a mostrar de la VM
-label.VMFS.datastore=VMFS de datos tienda
-label.vmfs=VMFS
-label.vm.id=ID de VM
-label.vm.ip=Direcci\u00f3n IP de la VM
-label.vm.name=Nombre VM
-label.vm.password=La Contrase\u00f1a de la VM es
-label.vm.reboot=Reiniciar
-label.VMs.in.tier=VMs en el tier
-label.vmsnapshot.current=esLaActual
-label.vmsnapshot=Instant\u00e1neas de VM
-label.vmsnapshot.memory=Instant\u00e1nea de la memoria
-label.vmsnapshot.parentname=Padre
-label.vmsnapshot.type=Tipo
-label.vm.start=Inicio
-label.vm.state=Estado de VM\\'s
-label.vm.stop=Detener
-label.vms=VM
-label.vmware.datacenter.id=VMware datacenter ID
-label.vmware.datacenter.name=Nombre del VMware datacenter
-label.vmware.datacenter.vcenter=VMware datacenter vcenter
-label.vmware.traffic.label=Etiquetas de tr\u00e1fico para VMware
-label.vnet.id=ID de VLAN
-label.vnet=VLAN
-label.vnmc.devices=Dispositivo VNMC
-label.vnmc=ID de VM
-label.volatile=Vol\u00e1til
-label.volgroup=Volume Group
-label.volume.details=Detalles del Volumen
-label.volume.limits=l\u00edmites de volumen
-label.volume.migrated=Volumen migrado
-label.volume.name=Nombre de Volumen
-label.volumes=Vol\u00famenes
-label.volume=Volumen
-label.vpc.distributedvpcrouter=Router Distribuido VPC
-label.vpc.id=ID VPC
-label.VPC.limits=L\u00edmites de VPC
-label.vpc.offering.details=Detalles de las ofertas de VPC
-label.vpc.offering=Oferta de VPC
-label.vpc.router.details=Detalles del Router VPC
-label.VPC.router.details=Detalles del router VPC
-label.vpc.supportsregionlevelvpc=Soporte de VPC a Nivel de Regi\u00f3n
-label.vpc.virtual.router=Router Virtual VPC
-label.vpc=VPC
-label.VPN.connection=Conexi\u00f3n VPN
-label.vpn.customer.gateway=Gateway VPN del Cliente
-label.VPN.customer.gateway=Gateway VPN del Cliente
-label.vpn.force.encapsulation=Forzar la encapsulaci\u00f3n UDP de los paquetes ESP
-label.VPN.gateway=Gateway VPN
-label.vpn=VPN
-label.vsmctrlvlanid=Control VLAN ID
-label.vsmpktvlanid=Packet VLAN ID
-label.vsmstoragevlanid=VLAN ID del Almacenamiento
-label.vsphere.managed=Gestionado \= vSphere
-label.vswitch.name=Nombre del vSwitch
-label.vSwitch.type=Tipo de vSwitch
-label.vxlan.id=ID de VXLAN
-label.vxlan.range=VXLAN Gama
-label.vxlan=VXLAN
-label.waiting=Esperando
-label.warn=Advertir
-label.warning=Advertencia
-label.warn.upper=WARN
-label.wednesday=mi\u00e9rcoles
-label.weekly=Semanal
-label.welcome=Bienvenido
-label.welcome.cloud.console=Bienvenido a la consola de administraci\u00f3n
-label.what.is.cloudstack=Que es CloudStack&\#8482?
-label.xenserver.tools.version.61.plus=Versi\u00f3n Original XS es 6.1\\+
-label.Xenserver.Tools.Version61plus=Versi\u00f3n Original XS es 6.1\\+
-label.xenserver.traffic.label=Etiqueta de tr\u00e1fico para XenServer
-label.yes=S\u00ed
-label.zone.dedicated=Zona Dedicada
-label.zone.details=Detalles de Zona
-label.zone.id=Zona de identificaci\u00f3n
-label.zone.lower=Zona
-label.zone.name=Nombre de la Zona
-label.zone.step.1.title=Paso 1\: <strong> Seleccione una red </strong>
-label.zone.step.2.title=Paso 2\: <strong>A\u00f1adir una zona </strong>
-label.zone.step.3.title=Paso 3\: <strong>A\u00f1adir una vaina </strong>
-label.zone.step.4.title=Paso 4\: <strong>A\u00f1adir un rango de IP </strong>
-label.zones=Zona
-label.zone.type=Tipo de Zona
-label.zone.wide=Zona para todo el
-label.zoneWizard.trafficType.guest=Guest\: Tr\u00e1fico entre las m\u00e1quinas virtuales del usuario final
-label.zoneWizard.trafficType.management=Management\: Tr\u00e1fico entre los recursos internos de CloudStack\\\\'s, incluyendo cualquier componente que se comunique con el Management Server, tales como hosts y las VMs de systema de CloudStack
-label.zoneWizard.trafficType.public=Public\: Tr\u00e1fico entre la internet y las m\u00e1quinas virtuales en el cloud.
-label.zoneWizard.trafficType.storage=Almacenamiento\: Tr\u00e1fico entre los servidores de almacenamiento primario y secundario, tales como plantillas de VM e instant\u00e1neas
-label.zone=Zona
-managed.state=Estado logr\u00f3
-message.acquire.ip.nic=Por favor confirme que desea adquirir una IP secundaria nueva para esta NIC.<br/>NOTA\: Las direcciones IP secundarios adquiridas deben ser configuradas manualmente desde la m\u00e1quina virtual.
-message.acquire.new.ip=Por favor confirme que usted quiere adquirir una nueva IP para esta red
-message.acquire.new.ip.vpc=Por favor confirme que usted desea adquirir una nueva IP para este VPC.
-message.acquire.public.ip=Por favor seleccione una zona de la que desea adquirir su nueva IP.
-message.action.cancel.maintenance.mode=Por favor, confirme que desea cancelar el mantenimiento
-message.action.cancel.maintenance=Su acogida ha sido cancelado con \u00e9xito para el mantenimiento. Este proceso puede tardar hasta varios minutos.
-message.action.change.service.warning.for.instance=Su instancia debe estar apagada antes de intentar el cambio de la oferta de servicio activa.
-message.action.change.service.warning.for.router=Su router debe estar apagado antes de intentar el cambio de la oferta de servicio activa.
-message.action.delete.cluster=Por favor, confirme que desea eliminar del cl\u00faster
-message.action.delete.disk.offering=Por favor, confirme que desea eliminar ofreciendo disco
-message.action.delete.domain=Por favor, confirme que desea eliminar de dominio
-message.action.delete.external.firewall=Por favor, confirme que desea quitar este servidor de seguridad externo. Advertencia\: Si usted est\u00e1 planeando volver a agregar el servidor de seguridad externo mismo, debe restablecer los datos de uso en el dispositivo.
-message.action.delete.external.load.balancer=Por favor, confirme que desea eliminar este equilibrador de carga externa. Advertencia\: Si usted est\u00e1 planeando volver a agregar la misma equilibrador de carga externo, debe restablecer los datos de uso en el dispositivo.
-message.action.delete.ingress.rule=Por favor, confirme que desea eliminar la regla de ingreso
-message.action.delete.ISO.for.all.zones=La ISO es utilizado por todas las zonas. Por favor, confirme que desea eliminar de todas las zonas.
-message.action.delete.ISO=Por favor, confirme que desea eliminar la norma ISO
-message.action.delete.network=Por favor, confirme que desea eliminar de la red
-message.action.delete.nexusVswitch=Porfavor confirme que usted quiere eliminar el Nexus 1000v
-message.action.delete.nic=Por favor, confirme que desea remover esta NIC, lo que har\u00e1 que sea removida la red de esta VM.
-message.action.delete.physical.network=Por favor confirme que desea borrar esta red f\u00edsica
-message.action.delete.pod=Por favor, confirme que desea eliminar de la vaina
-message.action.delete.primary.storage=Por favor, confirme que desea eliminar el almacenamiento primario
-message.action.delete.secondary.storage=Por favor, confirme que desea eliminar de almacenamiento secundario
-message.action.delete.security.group=Por favor, confirme que desea eliminar el grupo de seguridad
-message.action.delete.service.offering=Por favor, confirme que desea eliminar oferta de servicios
-message.action.delete.snapshot=Por favor, confirme que desea eliminar instant\u00e1neas
-message.action.delete.system.service.offering=Por favor confirme que desea borrar esta oferta de servicio.
-message.action.delete.template.for.all.zones=La plantilla es utilizada por todas las zonas. Por favor, confirme que desea eliminar de todas las zonas.
-message.action.delete.template=Por favor, confirme que desea eliminar la plantilla
-message.action.delete.volume=Por favor, confirme que desea eliminar el volumen
-message.action.delete.zone=Por favor, confirme que desea eliminar la zona
-message.action.destroy.instance=Por favor, confirme que desea destruir ejemplo
-message.action.destroy.systemvm=Por favor, confirme que desea destruir la m\u00e1quina virtual del sistema.
-message.action.disable.cluster=Por favor, confirme que desea desactivar este grupo.
-message.action.disable.nexusVswitch=Por favor confirme que usted quiere deshabilitar este nexus 1000v
-message.action.disable.physical.network=Por favor confirmar que usted quiere deshabilitar esta red f\u00edsica
-message.action.disable.pod=Por favor, confirme que desea desactivar esta vaina.
-message.action.disable.static.NAT=Por favor, confirme que desea desactivar NAT est\u00e1tica
-message.action.disable.zone=Por favor, confirme que desea desactivar esta zona.
-message.action.downloading.template=Descargando plantilla.
-message.action.download.iso=Por favor confirme que usted quiere descargar esta ISO
-message.action.download.template=Por favor confirme que usted quiere descargar este template
-message.action.enable.cluster=Por favor, confirme que desea habilitar este grupo.
-message.action.enable.maintenance=Su acogida ha sido preparado con \u00e9xito para el mantenimiento. Este proceso puede tardar hasta varios minutos o m\u00e1s dependiendo de c\u00f3mo las m\u00e1quinas virtuales se encuentran actualmente en este servidor.
-message.action.enable.nexusVswitch=por favor confirme que usted quiere habilitar este nexus 1000v
-message.action.enable.physical.network=Por favor confirmar que usted quiere habilitar esta red f\u00edsica
-message.action.enable.pod=Por favor, confirme que desea habilitar esta vaina.
-message.action.enable.zone=Por favor, confirme que desea habilitar esta zona.
-message.action.expunge.instance=Por favor confirme que desea purgar esta instancia.
-message.action.force.reconnect=Por favor, confirme que desea forzar una reconexi\u00f3n para el anfitri\u00f3n
-message.action.host.enable.maintenance.mode=mode \= mantenimiento de Habilitaci\u00f3n provocar\u00e1 una migraci\u00f3n en vivo de todas las instancias que se ejecutan en el sistema para cualquier m\u00e1quina disponible.
-message.action.instance.reset.password=Por favor, confirmar que desea cambiar la contrase\u00f1a de ROOT para esta VM
-message.action.manage.cluster=Por favor, confirme que desea para administrar el cl\u00faster.
-message.action.primarystorage.enable.maintenance.mode=Advertencia\: colocar el almacenamiento principal en modo de mantenimiento har\u00e1 que todas las m\u00e1quinas virtuales utilizando vol\u00famenes de que sea detenido. \u00bfDesea continuar?
-message.action.reboot.instance=Por favor, confirme que desea reiniciar el ejemplo
-message.action.reboot.router=Todos los servicios provistos por este router virtual ser\u00e1n interrumpidos. Por favor confirmar que desea reiniciarlo.
-message.action.reboot.systemvm=Por favor, confirme que desea reiniciar el sistema VM
-message.action.release.ip=Por favor, confirme que desea liberar IP
-message.action.remove.host=Por favor confirme que desea borrar este servidor.
-message.action.reset.password.off=Su ejemplo en la actualidad no es compatible con esta funci\u00f3n.
-message.action.reset.password.warning=Su ejemplo debe ser detenido antes de intentar cambiar su contrase\u00f1a actual.
-message.action.restore.instance=Por favor, confirme que desea restaurar ejemplo
-message.action.revert.snapshot=Por favor confirme que desea revertir el volumen elegido a esta instant\u00e1nea.
-message.action.start.instance=Por favor, confirme que desea iniciar la instancia
-message.action.start.router=Por favor, confirme que desea iniciar router
-message.action.start.systemvm=Por favor, confirme que desea iniciar el sistema VM
-message.action.stop.instance=Por favor, confirme que desea detener la instancia
-message.action.stop.router=Todos los servicios provistos por este router virtual ser\u00e1n interrumpidos. Por favor confirmar que desea apagarlo.
-message.action.stop.systemvm=Por favor, confirme que desea detener sistema VM
-message.action.take.snapshot=Por favor, confirme que desea tomar instant\u00e1neas
-message.action.unmanage.cluster=Por favor, confirme que desea unmanage del cl\u00faster.
-message.action.vmsnapshot.delete=Por favor confirme que desea borrar la instant\u00e1nea de esta VM.
-message.action.vmsnapshot.revert=Revertir instant\u00e1nea de VM
-message.activate.project=Usted esta seguro que quiere activar este proyecto?
-message.add.cluster=A\u00f1adir un hipervisor administradas por cl\u00faster de <b> zona <span id\="zone_name"> </span> </b>, la consola de <b> <span id\="pod_name"> </span> </b>
-message.add.cluster.zone=A\u00f1adir un hipervisor administradas por cl\u00faster de <b> zona <span id\="zone_name"> </span> </b>
-message.add.disk.offering=Por favor, especifique los par\u00e1metros siguientes para agregar un nuevo disco que ofrece
-message.add.domain=por favor especifique el subdominio que usted quiere crear bajo este dominio
-message.added.new.nuage.vsp.controller=Nuevo Controlador Nuage Vsp agregado
-message.added.vpc.offering=Oferta VPC agregada
-message.add.firewall=A\u00f1adir un servidor de seguridad a la zona
-message.add.guest.network=Por favor confirme que desea agregar una red de guest
-message.add.host=Por favor, especifique los par\u00e1metros siguientes para agregar un nuevo host
-message.adding.host=Agregando un servidor
-message.adding.Netscaler.device=Agregando un dispositivo NetScaler
-message.adding.Netscaler.provider=Agregando un proveedor NetScaler
-message.add.ip.range=A\u00f1adir un rango de IP a la red p\u00fablica en la zona
-message.add.ip.range.direct.network=A\u00f1adir un rango de IP para dirigir <b> red <span id\="directnetwork_name"> </span> </b> en la zona <b> <span id \= "zone_name" > </span> </b>
-message.add.ip.range.to.pod=<p> A\u00f1adir un rango de IP de la vaina\: <b><span id\="pod_name_label"> </span> </b> </p>
-message.additional.networks.desc=Por favor seleccione de red adicionales (s) que la instancia virtual estar\u00e1 conectado.
-message.add.load.balancer=A\u00f1adir un equilibrador de carga a la zona
-message.add.load.balancer.under.ip=La regla de load balancer ha sido agregada bajo la IP\:
-message.add.network=Agregar una nueva red para la zona\: <b><span id\="zone_name"> </span> </b>
-message.add.new.gateway.to.vpc=Por favor especifique la informaci\u00f3n necesaria para agregar un nuevo gateway a este VPC.
-message.add.pod=Agregar una vaina nueva <b> zona <span id\="add_pod_zone_name"> </span> </b>
-message.add.pod.during.zone.creation=Cada zona debe contener uno o m\u00e1s pods, y estaremos agregando el primero ahora. Un pod contiene servidores y servidores de almacenamiento primario, los cuales se agregaran en un paso posterior. Primero, configure un rango de direcciones IP reservadas para el tr\u00e1fico interno de management utilizado por CloudStack\\\\'s. El rango de IP reservado debe ser \u00fanico para cada zona en el cloud.
-message.add.primary=Por favor, especifique los par\u00e1metros siguientes para agregar un nuevo almacenamiento primario
-message.add.primary.storage=Agregar una nueva almacenamiento primario para <b> zona <span id\="zone_name"> </span> </b>, la consola de <b> <span id\="pod_name"> </span> </b>
-message.add.region=Por favor cargue la informaci\u00f3n requerida para agregar una nueva regi\u00f3n.
-message.add.secondary.storage=A\u00f1adir un nuevo almacenamiento de <b> zona <span id\="zone_name"> </span> </b>
-message.add.service.offering=Por favor, rellene los siguientes datos para agregar una nueva oferta de servicio.
-message.add.system.service.offering=Por favor complete los siguientes datos para agregar un nueva oferta de servicio.
-message.add.template=Por favor ingrese los siguientes datos para crear la nueva plantilla
-message.add.volume=Por favor, rellene los siguientes datos para agregar un nuevo volumen.
-message.add.VPN.gateway=Por favor confirme que usted quiere agregar un VPN Gateway
-message.admin.guide.read=Para VM basadas en VMware, lea por favor el cap\u00edtulo de escalado din\u00e1mico en la gu\u00eda de administraci\u00f3n.\u00bfDesea continuar?
-message.advanced.mode.desc=Seleccione este modelo de red si desea habilitar soporte VLAN. Este modelo de red proporciona la m\u00e1xima flexibilidad al permitir a los administradores proporcionar ofertas personalizadas de la red como el suministro de firewall, VPN, o el apoyo equilibrador de carga, as\u00ed como permitir vs directa de redes virtuales.
-message.advanced.security.group=Elija esta opci\u00f3n si desea utilizar grupos de seguridad para proporcionar resultados de aislamiento VM.
-message.advanced.virtual=Elija esta opci\u00f3n si desea utilizar VLAN toda la zona para proporcionar el aislamiento VM invitado.
-message.after.enable.s3=Almacenamiento Secundario sobre S3 configurado. Nota\: Cuando salga de esta p\u00e1gina, no podr\u00e1 volver a reconfigurar S3 nuevamente.
-message.after.enable.swift=Swift configurado. Nota\: Cuando salga de esta p\u00e1gina, no podr\u00e1 volver a reconfigurar Swift nuevamente.
-message.alert.state.detected=Estado de Alerta detectado
-message.allow.vpn.access=Por favor, introduzca un nombre de usuario y la contrase\u00f1a del usuario que desea permitir el acceso de VPN.
-message.apply.snapshot.policy=Ha actualizado su pol\u00edtica instant\u00e1nea actual.
-message.attach.iso.confirm=Por favor, confirme que desea conectar el ISO a la instancia virtual
-message.attach.volume=Por favor, rellene los siguientes datos para fijar un nuevo volumen. Si est\u00e1 colocando un volumen de disco a una m\u00e1quina virtual de Windows basado, usted tendr\u00e1 que reiniciar la instancia para ver el disco adjunto.
-message.basic.mode.desc=Seleccione este modelo de red si lo haces * <b> no <u> </u> * </b> desea habilitar cualquier soporte VLAN. Todas las instancias virtuales creados en virtud de este modelo de red se le asignar\u00e1 una direcci\u00f3n IP directamente desde la red y grupos de seguridad se utilizan para proporcionar la seguridad y la segregaci\u00f3n.
-message.change.ipaddress=Por favor confirme que desea cambiar la direcci\u00f3n IP de esta NIC en la VM.
-message.change.offering.confirm=Por favor, confirme que desea cambiar la oferta de servicio de la instancia virtual.
-message.change.password=Por favor cambie la contrase\u00f1a.
-message.cluster.dedicated=Cl\u00faster Dedicado
-message.cluster.dedication.released=El Cl\u00faster dedicado liberado
-message.configure.all.traffic.types=Tiene multiples redes f\u00edsicas, por favor configure las etiquetas para cada tipo de tr\u00e1fico haciendo click en el bot\u00f3n de Editar.
-message.configure.firewall.rules.allow.traffic=Configurar las reglas para permitir Tr\u00e1fico
-message.configure.firewall.rules.block.traffic=Configurar las reglas para bloquear Tr\u00e1fico
-message.configure.ldap=Por favor confirme que desea configurar LDAP.
-message.configuring.guest.traffic=Configurando el tr\u00e1fico de guest
-message.configuring.physical.networks=Configurando las redes f\u00edsicas
-message.configuring.public.traffic=Configurando el tr\u00e1fico public
-message.configuring.storage.traffic=Configurando el tr\u00e1fico de almacenamiento
-message.confirm.action.force.reconnect=Por favor confirme que desea forzar la reconexi\u00f3n de este servidor
-message.confirm.add.vnmc.provider=Por favor confirme que desea agregar el proveedor VNMC.
-message.confirm.archive.alert=Por favor confirme que desea archivar esta alerta. 
-message.confirm.archive.event=Por favor confirme que desea archivar este evento. 
-message.confirm.archive.selected.alerts=Por favor confirme que desea archivar las alertas seleccionadas 
-message.confirm.archive.selected.events=Por favor confirme que desea archivar los eventos seleccionados 
-message.confirm.attach.disk=\u00bf Est\u00e1 seguro que desea conectar el disco?
-message.confirm.create.volume=\u00bfEst\u00e1 seguro que desea crear un volumen?
-message.confirm.current.guest.CIDR.unchanged=\u00bfDesea mantener el CIDR de la red guest actual sin cambios?
-message.confirm.dedicate.cluster.domain.account=\u00bfRealmente desea dedicar este cluster al dominio/cuenta?
-message.confirm.dedicate.host.domain.account=\u00bfDesea dedicar este hosts a un dominio/cuenta?
-message.confirm.dedicate.pod.domain.account=\u00bfDesea dedicar este por a un dominio/cuenta?
-message.confirm.dedicate.zone=\u00bfRealmente quiere dedicar esta zona a un domino/cuenta?
-message.confirm.delete.acl.list=\u00bfEsta seguro que desea borrar esta lista de ACL?
-message.confirm.delete.alert=\u00bfEst\u00e1 seguro que desea borrar esta alerta?
-message.confirm.delete.baremetal.rack.configuration=Por favor confirme que desea borrar la configuraci\u00f3n del Rack Baremetal.
-message.confirm.delete.BigSwitchBcf=Por favo confirme que desa borrar este Controlador BigSwitch BCF
-message.confirm.delete.BrocadeVcs=Por favo confirme que desa borrar este Switch Brocade Vcs
-message.confirm.delete.ciscoASA1000v=Por favor confirme que desea borrar CiscoASA1000v
-message.confirm.delete.ciscovnmc.resource=Por favor confirme que desea borrar el recurso CiscoVNMC
-message.confirm.delete.F5=Por  favor confirme que ud quiere eliminar el F5
-message.confirm.delete.internal.lb=Por favor confirme que desea borrar este LB Interno
-message.confirm.delete.NetScaler=Por favo confirme que desa borrar este NetScaler
-message.confirm.delete.NuageVsp=Por favo confirme que desa borrar este Nuage Virtualized Services Directory
-message.confirm.delete.PA=Por favor confirme que desa borrar este Palo Alto
-message.confirm.delete.secondary.staging.store=Por favor confirme que desea borrar el Almacenamiento Secundario Temporal.
-message.confirm.delete.SRX=Por favor confirme que desa borrar este SRX
-message.confirm.delete.ucs.manager=Por favor confirme que desea borrar el UCS Manager
-message.confirm.destroy.router=Por favor confirme que desa borrar este router
-message.confirm.disable.host=Por favor confirme que desea deshabitar este servidor 
-message.confirm.disable.network.offering=\u00bfEsta seguro que desea deshabilitar esta oferta de red?
-message.confirm.disable.provider=Por favor confirme que desea deshabitar este proveedor
-message.confirm.disable.vnmc.provider=Por favor confirme que desea deshabitar el proveedor VNMC.
-message.confirm.disable.vpc.offering=\u00bfEsta seguro que desea deshabitar esta oferta de VPC?
-message.confirm.enable.host=Por favor confirme que desea habilitar este servidor 
-message.confirm.enable.network.offering=\u00bfEsta seguro que desea habilitar esta oferta de red?
-message.confirm.enable.provider=Por favor confirme que desea habilitar este proveedor
-message.confirm.enable.vnmc.provider=Por favor confirme que desea habilitar el proveedor VNMC.
-message.confirm.enable.vpc.offering=\u00bfEsta seguro que desea habilitar esta oferta de VPC?
-message.confirm.join.project=por favor confirme que usted desea unirse a este proyecto.
-message.confirm.migrate.volume=\u00bfQuiere migrar este volumen?
-message.confirm.refresh.blades=Por favor confirme que desea refrescar los blades.
-message.confirm.release.dedicated.cluster=\u00bf Desea liberar este cl\u00faster dedicado?
-message.confirm.release.dedicated.host=\u00bfDesea liberar este servidor dedicado?
-message.confirm.release.dedicated.pod=\u00bfDesea liberar el uso dedicado del pod?
-message.confirm.release.dedicated.zone=\u00bfDesea liberar esta zona dedicada?
-message.confirm.release.dedicate.vlan.range=Por favor confirme que desea liberar este rango dedicado de VLAN
-message.confirm.remove.event=\u00bfEst\u00e1 seguro que desea remover este evento?
-message.confirm.remove.IP.range=Por favor confirme que desea remover este rango IP.
-message.confirm.remove.load.balancer=Por favor confirme que desea remover esta VM del load balancer 
-message.confirm.remove.network.offering=\u00bfEsta seguro que desea remover esta oferta de red?
-message.confirm.remove.selected.alerts=Por favor confirme que desea remover las alertas seleccionadas 
-message.confirm.remove.selected.events=Por favor confirme que desea borrar los eventos seleccionados
-message.confirm.remove.vmware.datacenter=Por favor confirme que desea remover el datacenter VMware
-message.confirm.remove.vpc.offering=\u00bfEsta seguro que desea remover esta oferta de VPC?
-message.confirm.replace.acl.new.one=\u00bfDesea reemplazar este ACL con uno nuevo?
-message.confirm.scale.up.router.vm=\u00bfDesea escalar la VM utilizada como Router?
-message.confirm.scale.up.system.vm=\u00bfDesea escalar esta VM de sistema?
-message.confirm.shutdown.provider=Por favor confirme que desea apagar ester proveedor
-message.confirm.start.lb.vm=Por favor confirme que desea iniciar esta VM de LB
-message.confirm.stop.lb.vm=Por favor confirme que desea parar esta VM de LB
-message.confirm.upgrade.router.newer.template=Por favor confirme que desea actualizar el router con una plantilla nueva
-message.confirm.upgrade.routers.account.newtemplate=Por favor confirme que desea actualizar todos los routers de esta cuenta con una plantilla nueva
-message.confirm.upgrade.routers.cluster.newtemplate=Por favor confirme que desea actualizar todos los routers de este cluster con una plantilla nueva
-message.confirm.upgrade.routers.newtemplate=Por favor confirme que desea actualizar todos los routers de esta zona con una plantilla nueva
-message.confirm.upgrade.routers.pod.newtemplate=Por favor confirme que desea actualizar todos los routers de este pod con una plantilla nueva
-message.copy.iso.confirm=Por favor, confirme que desea copiar el ISO a
-message.copy.template.confirm=\u00bfDesea copiar esta plantilla?
-message.copy.template=Copia plantilla <b id\="copy_template_name_text"> XXX </b> de la zona <b id\="copy_template_source_zone_text"> </b>
-message.create.template=Esta seguro que quiere crear un template?
-message.create.template.vm=Crear VM de la plantilla <b id\="p_name"> </b>
-message.create.template.volume=Por favor, especifique la siguiente informaci\u00f3n antes de crear una plantilla de su volumen de disco\: <b> <span id\="volume_name"> </span> </b>. Creaci\u00f3n de la plantilla puede oscilar entre varios minutos m\u00e1s, dependiendo del tama\u00f1o del volumen.
-message.creating.cluster=Creando cluster
-message.creating.guest.network=Creando red guest
-message.creating.physical.networks=Creando redes f\u00edsicas
-message.creating.pod=Creando pod
-message.creating.primary.storage=Creando almacenamiento primario
-message.creating.secondary.storage=Creando almacenamiento secundario
-message.creating.systemVM=Creando VM de sistema (esto puede demorar bastante)
-message.creating.zone=Creando zona
-message.decline.invitation=\u00bfEst\u00e1 segura que desea rechazar esta invitaci\u00f3n al proyecto?
-message.dedicated.zone.released=Dedicaci\u00f3n de zona liberada
-message.dedicate.zone=Dedicando zona
-message.delete.account=Por favor, confirme que desea eliminar esta cuenta.
-message.delete.affinity.group=Por favor confirme que desea remover este grupo de afinidad. 
-message.delete.gateway=Por favor confirme que usted quiere eliminar este gateway
-message.delete.project=Esta seguro que quiere eliminar este proyecto?
-message.delete.user=Por favor confirme que usted quiere eliminar este usuario
-message.delete.VPN.connection=Por favor confirme que usted quiere eliminar la conexi\u00f3n VPN
-message.delete.VPN.customer.gateway=Por favor confirme que desea borrar esta VPN Customer Gateway
-message.delete.VPN.gateway=Por favor confirme que usted quiere eliminar este VPN Gateway
-message.desc.add.new.lb.sticky.rule=Agregar nueva regla Sticky al LB
-message.desc.advanced.zone=Para topologia de redes m\u00e1s sofisticadas. Este modelo de red provee la mayor flexibilidad al definir la redes guest y proveyendo ofertas de redes personalizadas tales como firewall, VPN, o soporte de load balancer.
-message.desc.basic.zone=Provee una red \u00fanica donde cada instancia de VM es asignada una IP directamente desde la red. El aislamiento de Guest puede proveerse por medio de layer-3 tales como los security groups (filtrado de direcciones IP por origen).
-message.desc.cluster=Cada por debe contener uno o m\u00e1s clusters, ahora agregaremos el primero. Un cluster contiene un grupo de servidores. Los servidores en el cluster tiene el mismo hardware, ejecutan el mismo hipervisors, est\u00e1n en la misma subred, y utilizan el mismo almacenamiento compartido. Cada cluster consiste en uno o m\u00e1s servidores y uno o m\u00e1s servidores de almacenamiento primario. 
-message.desc.created.ssh.key.pair=Par de Claves SSH creadas.
-message.desc.create.ssh.key.pair=Por favor completar los siguientes datos para crear o registrar un par de claves ssh.<br/><br/>1. Si la clave p\u00fablica esta definida, CloudStack la registrar\u00e1. Uds puede usarla por medio de la clave privada.<br/><br/>2. Si la clave p\u00fablica no esta definida, CloudStack crear\u00e1 un nuevo Par de Claves SSH. En este caso, por favor copie y grab\u00e9 la clave privada. CloudStack no la almacenar\u00e1.<br/>
-message.desc.host=Cada cluster debe contener por lo menos un host (servidor) para que la VMs Guest ejecuten all\u00ed, y se agregara el primero ahora. Para que un host funcione en CloudStack, se debe instalar el software del hypervisor, asignarle una IP al host en la red de Management y asegurarse que se conecte al servidores de management de CloudStack.<br/><br/>Indicar el nombre DNS del host o su direcci\u00f3n IP, el nombre del usuario (usualmente root), su contrase\u00f1a y las etiquetas necesarias para catalogar los hosts.
-message.desc.primary.storage=Cada cl\u00faster debe contener uno o m\u00e1s servidores primarios de almacenamiento, y ahora se agregara el primero. El almacenamiento primario contiene los volumenes de disco para todas las VMSs ejecutandose en los hosts del cl\u00faster. Utilice cualquier protocolo standard que soporte el hipervisor.
-message.desc.reset.ssh.key.pair=Pro favor especifique el par de claves ssh que desea agregar a esta VM. Tenga en cuenta que la clave de root ser\u00e1 cambiada al realizar esta operaci\u00f3n si la opci\u00f3n de contrase\u00f1a esta habilitada.
-message.desc.secondary.storage=Cada zona debe tener al menos un servidor de NFS secundario, y se agregar\u00e1 el primero ahora. El almacenamiento secundario guarda las plantillas de VM, las im\u00e1genes ISO, y las instantaneas de volumentes. Este server debe estar disponible a todos los hosts de la zona.<br/><br/>Complete con la direcci\u00f3n IP y el PATH exportado
-message.desc.zone=Una zona es la unidad organizacional m\u00e1s grande en CloudStack, y t\u00edpicamente se corresponde con un datacenter en particular. Las Zonas proveen aislaci\u00f3n f\u00edsica y redundancia. Una zona consiste de uno o m\u00e1s pode (cada uno conteniendo servidores y almacenamiento primario), junto con el almacenamiento secundario que es compartido entre todos los pods en la zona 
-message.detach.disk=\u00bf Est\u00e1 seguro que desea desconectar este disco?
-message.detach.iso.confirm=Por favor, confirme que desea quitar el ISO de la instancia virtual
-message.disable.account=Por favor confirmar que desea deshabitar esta cuenta. Al hacerlo, todos los usuarios pertenecientes a ella dejaran de tener acceso a los recursos de cloud. Todas las m\u00e1quinas virtuales en ejecuci\u00f3n ser\u00e1n apagadas en forma inmediata.
-message.disable.snapshot.policy=Ha desactivado su pol\u00edtica instant\u00e1nea actual.
-message.disable.user=Por favor confirme que usted quiere deshabilitar este usuario
-message.disable.vpn.access=Por favor, confirme que desea desactivar VPN de acceso.
-message.disable.vpn=Esta seguro que usted quiere deshabilitar la VPN?
-message.disabling.network.offering=Deshabilitar oferta de red
-message.disabling.vpc.offering=Deshabilitando oferta VPC
-message.disallowed.characters=Caracteres no permitidos\: \\<\\,\\>
-message.download.ISO=Por favor haga click <a href\="\#">00000</a>para descargar el ISO
-message.download.template=Por favor haga click <a href\="\#">00000</a>para descargar la plantilla
-message.download.volume.confirm=Por favor confirme que desea descargar este volumen.
-message.download.volume=Por favor, haga clic <a href\="\#">00000</a> para bajar el volumen
-message.edit.account=Editar ("-1" indica que no hay limite a la cantidad de recursos creados)
-message.edit.confirm=Por favor confirme sus cambios antes de pulsar en "Grabar".
-message.edit.limits=Por favor, especifique los l\u00edmites de los recursos siguientes. A "-1" indica que no hay l\u00edmite a la cantidad de los recursos de crear.
-message.edit.traffic.type=Por favor indique la etiqueta de tr\u00e1fico que desea asociar con este tipo de tr\u00e1fico.
-message.enable.account=Por favor, confirme que desea habilitar esta cuenta.
-message.enabled.vpn.ip.sec=La clave pre-compartida IPSec es
-message.enabled.vpn=Su acceso a la VPN est\u00e1 habilitado y se puede acceder a trav\u00e9s de la IP
-message.enable.user=Por favor confirme que usted quiere habilitar este usuario
-message.enable.vpn.access=VPN \= est\u00e1 desactivado para esta direcci\u00f3n IP. \u00bfTe gustar\u00eda que permitan el acceso VPN?
-message.enable.vpn=VPN de acceso actualmente no est\u00e1 habilitado. Por favor, <a href\="\#" id\="enable_vpn_link"> haga clic aqu\u00ed </a> para habilitar VPN.
-message.enabling.network.offering=Habilitar oferta de red
-message.enabling.security.group.provider=Habilitando el proveedor de Security Group
-message.enabling.vpc.offering=Habilitando oferta VPC
-message.enabling.zone.dots=Habilitando zona...
-message.enabling.zone=Habilitando zona
-message.enter.seperated.list.multiple.cidrs=Por favor ingrese una lista separada por comas de los CIDRs si son m\u00e1s de uno
-message.enter.token=Por favor ingrese el token que recibi\u00f3 en la invitaci\u00f3n por e-mail.
-message.generate.keys=Por favor confirme que usted quiere generar nueva llave para este usuario.
-message.gslb.delete.confirm=Por favor confirme que desea borrar este GSLB
-message.gslb.lb.remove.confirm=Por favor confirme que desea remover el load balanc\u00edn GSLB
-message.guest.traffic.in.advanced.zone=El tr\u00e1fico de red Guest se refiere a la comunicaci\u00f3n entre las m\u00e1quinas virtuales del usuario final. Especifique un rango de VLAN IDs para transportar este tr\u00e1fico en cada red f\u00edsica.
-message.guest.traffic.in.basic.zone=El tr\u00e1fico de las redes Guest es el generado entre las m\u00e1quina virtuales del usuario final.Especifique un rango de direcciones IP para que CloudStack pueda asignar a las VMs guest. Asegures\u00e9 que este rango no se solape con el rango IP reservado para el sistema.
-message.host.dedicated=Servidor Dedicado
-message.host.dedication.released=Dedicaci\u00f3n de Servidor liberada
-message.installWizard.click.retry=Haz click en el bot\u00f3n para re-intentar el lanzamiento de la instancia.
-message.installWizard.copy.whatIsACluster=Un cluster provee una forma de agrupar los servidores. Todos los servidores que componen el cluster tienen un hardware id\u00e9ntico, ejecutan el mismo hipervisor, est\u00e1n en la misma subred y utilizan el mismo almacenamiento compartido. Las instancias de las VMs pueden migrarse en caliente desde un servidor a otro dentro del mismo cluster, sin interrupci\u00f3n del servicio del usuario. Un cluster es la tercera forma organizacional en una instalaci\u00f3n de CloudStack&\#8482; . Los ilustres est\u00e1n contenidos dentro de los podes, los podes estar contenidos en las zonas.<br/><br/>CloudStack&\#8482;  permite m\u00faltiple clusters en una instalaci\u00f3n de cloud, pero para realizar una instalaci\u00f3n b\u00e1sica, solo necesitamos uno.
-message.installWizard.copy.whatIsAHost=Un servidor es una sola computadora. Los Servidores proveen los recursos de computo necesarios para ejecutar las m\u00e1quinas virtuales. Cada servidor tiene un hipervisor instalado para gestionar las VMs guest (excepto en los servidores baremetal, los cuales son un caso especial que se explaya en la Gu\u00eda de Administraci\u00f3n Avanzada). Por ejemplo, un servidor Linux con KVM habilitado, un servidor con Citrix XenServer o un servidor con ESXi. En una instalaci\u00f3n Basica, usaremos un solo servidor ejecutando XenServer o KVM. <br/><br/>El servidor es la m\u00ednima unidad organizacional de CloudStack&\#8482; .Los servidores est\u00e1n contenidos dentro de los ilustres, los ilustres en los pods, y estos \u00faltimos en las zonas.
-message.installWizard.copy.whatIsAPod=Un pod representa generalmente un solo rock. Los servidores en el mismo por estar en la misma subred.<br/><br/>El por es la segunda agrupaci\u00f3n organizacional dentro de CloudStack&\#8482; .Los Pods est\u00e1n contenidos dentro de la zona. Cada zona puede contener uno m\u00e1s pods. En la instalaci\u00f3n B\u00e1sica, solo se necesita tener un por en la zona.
-message.installWizard.copy.whatIsAZone=Una zona es la unidad organizacional m\u00e1s grande dentro de una instalaci\u00f3n de CloudStack&\#8482;. Una zona tipicamente se corresponde a un solo datacenter, sin embargo esta permitido contar con varias zonas dentro del mismo datacenter. El beneficio de organizar la infraestructura en zonas es que provee aislaci\u00f3n f\u00edsica y redundancia. Por ejemplo, cada zona puede tener su propia fuente de alimentaci\u00f3n y lo mismo con su salida de red, ademas de poder estar separadas geograficamente en grandes distancias (lo cual no es obligatorio).
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482 es una plataforma de software que aglutina recursos computo para poder crear coludas de infraestructuras como Servicio (IaaS), tanto p\u00fablicas como privadas.<br/><br/> CloudStack&\#8482 gestiona la red, el almacenamiento y los nodos de computo que conforma la infraestructura de cloud. Se puede usar CloudStack&\#8482 para desplegar, gestionar y configurar ambientes de cloud computan.<br/><br/> Extendiendose m\u00e1s all\u00e1 del manejo individual de m\u00e1quinas virtuales en hardware comotidizado, CloudStack&\#8482 provee una soluci\u00f3n llave en mano de un software de infraestructura de red para ofrecer datacenter virtuales como servicio, proveyendo todos los componentes esenciales para construir, desplegar y gestionar aplicaciones cloud multi-tier y multi-tenant. Se ofrecen dos versiones, la open source y la Premium, brindando la primera caracter\u00edsticas casi id\u00e9nticas.
-message.installWizard.copy.whatIsPrimaryStorage=La infraestrucutra cloud de CloudStack&\#8482 hace uso de dos tipos de almacenamiento, el primario y el secundario. Ambos pueden ser iSCSI, NFS o discos locales. <br/><br/>El <strong>Almacenamiento Primario</strong> se asocia a un cluster, y almacena los vol\u00famenes de discos de cada VM para todas las VMs en los servidores del cluster. El almacenamiento primario es t\u00edpicamente alojado cerca de los servidores.
-message.installWizard.copy.whatIsSecondaryStorage=El almacenamiento secundario est\u00e1 asociado a una zona, y almacena lo siguiente\: <ul> <li> Plantillas - im\u00e1genes del sistema operativo que se pueden utilizar para arrancar VMs, pueden incluir informaci\u00f3n de configuraci\u00f3n adicional, como las aplicaciones instaladas </li><li>Im\u00e1genes ISO - im\u00e1genes del Sistema Operativo que pueden ser boteables o no boteables </li><li>Disco instant\u00e1neas de vol\u00famenes  - copias de datos guardadas de VM que se pueden utilizar para la recuperaci\u00f3n de datos o para crear nuevas plantillas</ul>
-message.installWizard.now.building=Ahora construyendo su nube...
-message.installWizard.tooltip.addCluster.name=Nombre del  Cluster. Puede ser  alfanum\u00e9rico .Este no es usado por CloudStack
-message.installWizard.tooltip.addHost.hostname=El nombre DNS o direcci\u00f3n IP del host
-message.installWizard.tooltip.addHost.password=Este es el password para el nombre de usuario mencionado anteriormente (Desde su Instalaci\u00f3n XenServer)
-message.installWizard.tooltip.addHost.username=Generalmente root
-message.installWizard.tooltip.addPod.name=Nombre del POD
-message.installWizard.tooltip.addPod.reservedSystemEndIp=Este es el rango de direcciones IP en la red privada que la CloudStack utiliza para administrar las VMs del Almacenamiento Secundario y consola Proxy. Estas direcciones IP se han tomado de la misma subred que los servidores inform\u00e1ticos.
-message.installWizard.tooltip.addPod.reservedSystemGateway=El gateway ,puerta de enlace, para los host en ese pod.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=La m\u00e1scara de red en uso en la subred de los hu\u00e9spedes ser\u00e1.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=Este es el rango de direcciones IP en la red privada que la CloudStack utiliza para administrar las VMs del Almacenamiento Secundario y consola Proxy. Estas direcciones IP se han tomado de la misma subred que los servidores inform\u00e1ticos.
-message.installWizard.tooltip.addPrimaryStorage.name=\ Nombre para el storage
-message.installWizard.tooltip.addPrimaryStorage.path=(para NFS) En NFS este es el directorio exportado desde el servidor. Directorio (por SharedMountPoint). Con KVM este es el directorio de cada host en donde se monta el almacenamiento primario. Por ejemplo, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(para NFS, iSCSI, o PreSetup) La direcci\u00f3n IP o el nombre DNS del dispositivo de almacenamiento.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=Direcci\u00f3n IP del servidor NFS que contiene el secondary storage
-message.installWizard.tooltip.addSecondaryStorage.path=El path exportado, ubicado en el servidor especificado anteriormente
-message.installWizard.tooltip.addZone.dns1=Estos son servidores de DNS para ser usados por las VMs guest en la zona. Estos servidores DNS ser\u00e1n accesos por la red public que agregar\u00e1 posteriormente. La IP publica para la zona deber poder acceder a los servidores DNS nombrados aqu\u00ed.
-message.installWizard.tooltip.addZone.dns2=Estos son servidores de DNS para ser usados por las VMs guest en la zona. Estos servidores DNS ser\u00e1n accesos por la red public que agregar\u00e1 posteriormente. La IP publica para la zona deber poder acceder a los servidores DNS nombrados aqu\u00ed.
-message.installWizard.tooltip.addZone.internaldns1=Estos son servidores DNS para ser usados por las VMs de sistema en la zona. Estos servidores DNS deben ser accesible de la interface de red privada de las VMs de Sistema. La direcci\u00f3n IP que proveas para los pods deben llegar a los servidores DNS nombrados aqu\u00ed.
-message.installWizard.tooltip.addZone.internaldns2=Estos son servidores DNS para ser usados por las VMs de sistema en la zona. Estos servidores DNS deben ser accesible de la interface de red privada de las VMs de Sistema. La direcci\u00f3n IP que proveas para los pods deben llegar a los servidores DNS nombrados aqu\u00ed.
-message.installWizard.tooltip.addZone.name=Nombre de la zona.
-message.installWizard.tooltip.configureGuestTraffic.description=Una breve descripci\u00f3n para su red.
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=El rango de direcciones IP que estar\u00e1 disponible para los guest  en esta zona. Si se utiliza una sola NIC, estas IPs estar\u00e1n en el mismo CIDR del pod.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=El gatway, puerta de enlace, que las maquinas guest deben usar.
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=La m\u00e1scara de red en uso en la subred que los clientes deben utilizar
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=El rango de direcciones IP que estar\u00e1 disponible para los guest  en esta zona. Si se utiliza una sola NIC, estas IPs estar\u00e1n en el mismo CIDR del pod.
-message.installWizard.tooltip.configureGuestTraffic.name=Nombre de su RED
-message.instance.scaled.up.confirm=\u00bfRealmente desea escalar la instancia?
-message.instanceWizard.noTemplates=No tienes plantillas disponibles, por favor agregue una plantilla compatible y reinicio el asistente de creaci\u00f3n de instancias.
-message.ip.address.changed=Su direcci\u00f3n IP pudo haber cambiado. Le gustar\u00eda actualizar el listado? Tenga en cuenta que en este caso el panel de detalles se cerrar\u00e1.
-message.iso.desc=Disco con la imagen contenedora de los datos o los medios bootables para el SO
-message.join.project=Ahora estas unido al proyecto. Por favor cambiar a la Vista de Proyecto para verlo.
-message.launch.vm.on.private.network=\u00bfDesea lanzar su instancias en tu red privada dedicada?
-message.launch.zone=La Zona esta lista para ser lanzada, por favor prosiga al pr\u00f3ximo paso.
-message.ldap.group.import=Todos los usuarios del grupo dado ser\u00e1n importados
-message.link.domain.to.ldap=Habilitar autosync para este dominio en LDAP
-message.listView.subselect.multi=(Ctrl/Cmd-click)
-message.lock.account=Por favor, confirme que desea bloquear esta cuenta. Al bloquear la cuenta, todos los usuarios de esta cuenta ya no ser\u00e1 capaz de gestionar sus recursos de la nube. Los recursos existentes todav\u00eda se puede acceder.
-message.migrate.instance.confirm=Por favor, confirme el anfitri\u00f3n desea migrar la instancia virtual.
-message.migrate.instance.to.host=Por favor, confirmar que desea mover la instancia a otro host.
-message.migrate.instance.to.ps=Por favor, confirmar que desea mover la instancia a otro primary storage.
-message.migrate.router.confirm=Por favor, confirme el hu\u00e9sped que desea migrar el router\:
-message.migrate.systemvm.confirm=Por favor, confirme el hu\u00e9sped que desea migrar la m\u00e1quina virtual de sistema\:
-message.migrate.volume=Por favor confirme que usted quiere migrar el volumen a otro almacenamiento primario
-message.network.addVM.desc=Por favor indique la red que desea agregar a esta VM. Una NIC nueva se agregar\u00e1 en esta red.
-message.network.addVMNIC=Por favor confirme que desea agregar una nueva NIC a la VM para esta red.
-message.network.remote.access.vpn.configuration=Se ha creado la configuraci\u00f3n de acceso remoto por VPN, pero fall\u00f3 su aplicaci\u00f3n. Por favor verifique la conectividad de todos los elementos de red y vuelva a intentarlo.
-message.new.user=Especifique lo siguiente para agregar un nuevo usuario a la cuenta
-message.no.affinity.groups=No hay ning\u00fan grupo de afinidad. Por favor continue con el paso siguiente.
-message.no.host.available=No hay disponibles Hosts para la Migraci\u00f3n
-message.no.network.support.configuration.not.true=Usted no tiene ninguna zona que ha permitido a grupo de seguridad. Por lo tanto, no hay funciones de red adicionales. Por favor, contin\u00fae con el paso 5.
-message.no.network.support=El hipervisor seleccionado, vSphere, no tiene funciones de red adicionales. Por favor, contin\u00fae con el paso 5.
-message.no.projects.adminOnly=No tienes ning\u00fan proyecto.<br/>Por favor dile a tu administrador que cree uno nuevo.
-message.no.projects=No tienes ning\u00fan proyecto.<br/>Pro favor crear uno nuevo desde la secci\u00f3n de Proyectos.
-message.number.clusters=<h2> <span> \# de </span> Grupos </h2>
-message.number.hosts=<h2> <span> \# de </span> Anfitri\u00f3n </h2>
-message.number.pods=<h2> <span> \# de </span> Las vainas </h2>
-message.number.storage=<h2> <span> \# de </span> Almacenamiento primario </h2>
-message.number.zones=<h2> <span> \# de </span> Zonas </h2>
-message.outofbandmanagement.action.maintenance=Atenci\u00f3n, el Servidor est\u00e1 en modo mantenimiento
-message.outofbandmanagement.changepassword=Cambiar contrase\u00f1a de Gesti\u00f3n Out-of-band
-message.outofbandmanagement.configure=Configurar Gesti\u00f3n Out-of-band
-message.outofbandmanagement.disable=Deshabilitar gesti\u00f3n Out-of-band
-message.outofbandmanagement.enable=Habilitar gesti\u00f3n Out-of-band
-message.outofbandmanagement.issue=Enviar Acci\u00f3n de Gesti\u00f3n de Alimentac\u00edon Fuera-de-Banda
-message.password.has.been.reset.to=La Contrase\u00f1a se ha cambiado a
-message.password.of.the.vm.has.been.reset.to=La Contrase\u00f1a se ha cambiado a
-message.pending.projects.1=Tiene invitaciones a proyectos pendientes\:
-message.pending.projects.2=Para visualizar, por favor acceda al secci\u00f3n de proyectos y seleccione la invitaci\u00f3n desde la lista desplegable.
-message.please.add.at.lease.one.traffic.range=Por favor agregue al menos un rango de tr\u00e1fico.
-message.please.confirm.remove.ssh.key.pair=Por favor confirme que usted quiere eliminar el Par de Claves SSH
-message.please.proceed=Por favor proceda a el siguiente paso.
-message.please.select.a.configuration.for.your.zone=Por favor elija una configuraci\u00f3n para su zona.
-message.please.select.a.different.public.and.management.network.before.removing=Por favor elija una red public y de management diferente antes de remover
-message.please.select.networks=Por favor seleccione la red para su maquina virtual.
-message.please.select.ssh.key.pair.use.with.this.vm=Por favor elija el par de claves ssh que desea usar en esta VM\:
-message.please.wait.while.zone.is.being.created=Por favor espere un momento la zona esta siendo creada, puede llegar a demorar unos minutos...
-message.pod.dedication.released=Dedicaci\u00f3n de Pod liberada
-message.portable.ip.delete.confirm=Por favor confirme que desea borrar el Rango IP Port\u00e1til
-message.project.invite.sent=Invitaci\u00f3n enviada al usuario, se agregar\u00e1 al proyecto solo cuando acepte la invitaci\u00f3n.
-message.public.traffic.in.advanced.zone=El tr\u00e1fico p\u00fablico se genera cuando las VMs del Cloud acceden a recursos sobre Internet. Para ello se deben asignar direcciones IP p\u00fablicas. Los usuarios pueden usar la interfaz de  CloudStack para adquirir estas IPs e implementar NAT entre su red de guest y su red p\u00fablica.<br/><br/> Debe proveer por lo menos un rango de direcciones IP para el tr\u00e1fico de Internet.
-message.public.traffic.in.basic.zone=El tr\u00e1fico p\u00fablico es generado cuando las VMs en el cloud acceden a Internet o proveen servicios a clientes sobre Internet. Direcciones IPs accesible p\u00fablicamente deben ser asignadas para este cometido. Cuando una instancia es creada, una IP de este conjunto de IPs Publicas es asignada a la instancia ademas de la direcci\u00f3n IP en la red guest. NAT est\u00e1tico 1-1 ser\u00e1 configurado en forma autom\u00e1tica entre la IP p\u00fablica y la IP guest. Los usuarios tambi\u00e9n pueden utilizar la interfaz de CLoudStack para adquirir IPs adicionales para implementar NAT est\u00e1tico entre las instancias y la IP p\u00fablica.
-message.question.are.you.sure.you.want.to.add=Est\u00e1 seguro que quiere agregar
-message.read.admin.guide.scaling.up=Por favor les la secci\u00f3n de escalado din\u00e1mico en la gu\u00eda de administraci\u00f3n antes de escalarlo.
-message.recover.vm=Confirme que quiere recuperar esta VM.
-message.redirecting.region=Redirigiendo a la regi\u00f3n...
-message.reinstall.vm=NOTA\: Proceda con precauci\u00f3n. Esta acci\u00f3n har\u00e1 que la VM se vuelva a instalar usando la plantilla. Los datos en el disco de base se perder\u00e1n. Los vol\u00famenes de datos adicionales no se modificar\u00e1n.
-message.removed.ssh.key.pair=Se removi\u00f3 un Par de Claves SSH
-message.remove.ldap=\u00bfQuiere borrar la configuraci\u00f3n LDAP?
-message.remove.region=\u00bfEsta seguro que desea remover esta regi\u00f3n del servidor de management?
-message.remove.vpc=Por favor confirme que usted quiere eliminar el VPC
-message.remove.vpn.access=Por favor, confirme que desea eliminar el acceso VPN desde el siguiente usuario
-message.reset.password.warning.notPasswordEnabled=El Template de esta instancia fue creado sin gesti\u00f3n de contrase\u00f1a habilitada
-message.reset.password.warning.notStopped=Su instancia debe ser detenida antes de intentar cambiar la contrase\u00f1a actual.
-message.reset.VPN.connection=Por favor confirme que desea respetar la conexi\u00f3n de la VPN
-message.restart.mgmt.server=Por favor, reinicie el servidor de administraci\u00f3n (s) para la nueva configuraci\u00f3n surta efecto.
-message.restart.mgmt.usage.server=Por favor reinicie sus servidores de management y de usare, para que los nuevos seteos se hagan efectivos.
-message.restart.network=Todos los servicios provistos por esta red ser\u00e1n interrumpidos. Por favor confirme que desea reiniciar esta red.
-message.restart.vpc=Por favor confirme que usted quiere reiniciar el VPC
-message.restart.vpc.remark=Por favor confirme que desea reiniciar el VPC <p><small><i>Atenci\u00f3n\: creando un VPC sin redundancia forzara la limpieza. Todas las redes dejaran de estar disponibles por unos minutos</i>.</small></p>
-message.restoreVM=\u00bfDesea recuperar la VM?
-message.role.ordering.fail=Reordenaci\u00f3n de permisos de reglas abortada ya que la lista ha cambiado mientras realizaba los cambios. Por favor, intente de nuevo. 
-message.security.group.usage=(Uso <strong> pulse Ctrl </strong> para seleccionar todos los grupos de seguridad se aplica)
-message.select.affinity.groups=Por favor elija los grupos de afinidad a los que desea unir la VM\:
-message.select.a.zone=Una zona normalmente se corresponde con un solo datacenter. M\u00faltiples zonas pueden ayudar a aumentar la disponibilidad del cloud al proveer aislaci\u00f3n f\u00edsica y redundancia.
-message.select.instance=Por favor seleccione una instancia
-message.select.iso=Por favor seleccione un ISO para su nueva instancia virtual
-message.select.item=Por favor, seleccionar un item .
-message.select.security.groups=Por favor elija los security group(s) para su nueva VM
-message.select.template=Por favor seleccione un template para su nueva instancia virtual
-message.select.tier=Por favo elija un Tier
-message.set.default.NIC.manual=Por favor actualice manualmente la NIC por defecto en la VM.
-message.set.default.NIC=Por favor que desea que esta NIC sea la por defecto en esta VM.
-message.setup.physical.network.during.zone.creation.basic=Cuando se esta agregando un zona b\u00e1sica, puedes sesear un red f\u00edsica que se corresponda a una NIC del hipervisor. La red transporta varios tipos de tr\u00e1fico.<br/><br/>Puedes tambi\u00e9n <strong>arrastrar y soltar</strong> otro tipo de tr\u00e1ficos en la interfaz f\u00edsica.
-message.setup.physical.network.during.zone.creation=Cuando se esta agregando una zona avanzada, se necesita setear una o m\u00e1s redes f\u00edsicas. Cada red se corresponder\u00e1 con una NIC del hipervisor. Cada red f\u00edsica puede transportar uno o m\u00e1s tipos de tr\u00e1fico, con ciertas restricciones en como ellos se combinan.<br/><br/><strong>Arrastre y suelte uno o m\u00e1s tipos de tr\u00e1fico</strong> sobre cada red f\u00edsica.
-message.setup.successful=La configuraci\u00f3n de la cloud finalizo satisfactoriamente.
-message.snapshot.schedule=Puedes definir cronogramas de instant\u00e2neas recurrentes al seleccionar las opciones disponibles debajo y aplicando las pol\u00edticas deseadas
-message.specifiy.tag.key.value=Por favor especifique una etiqueta con clave y valor
-message.specify.url=Por favor especifique la URL
-message.step.1.continue=Por favor seleccione una plantilla o ISO para continuar
-message.step.1.desc=Por favor seleccione una plantilla para la instancia virtual. Tambi\u00e9n puede optar por seleccionar una plantilla en blanco desde el que puede ser una imagen ISO instalado en.
-message.step.2.continue=Por favor seleccione una oferta de servicio para continuar
-message.step.3.continue=Por favor seleccione una oferta en disco para continuar
-message.step.4.continue=Por favor seleccione al menos una red social para continuar
-message.step.4.desc=Por favor, seleccione la red primaria que la instancia virtual estar\u00e1 conectado.
-message.storage.traffic=Tr\u00e1fico entre los recursos internos de CloudStack\\\\'s, incluyendo cualquier componente que se comunique con el Management Server, tales como hosts y las VMs de systema de CloudStack
-message.suspend.project=\u00bfEst\u00e1 seguro que desea suspender este proyecto?
-message.systems.vms.ready=VM de Sistema lista.
-message.template.copying=La Plantilla esta siendo copiada.
-message.template.desc=La imagen de OS que puede usarse para iniciar una VM
-message.tier.required=El Tier es obligatorio.
-message.tooltip.dns.1=Nombre del servidor DNS que ser\u00e1 usado por las VMs en la zona. Las direcciones IP p\u00fablicas de la zona deber\u00e1n llegar a este servidor.
-message.tooltip.dns.2=El nombre del segundo servidor DNS para ser usado por las VMs en esta zona. La direcci\u00f3n IP p\u00fablica para esta zona debe ser accesible desde el servidor.
-message.tooltip.internal.dns.1=Nombre del servidor DNS que ser\u00e1 usado por las VMs internas de sistema de CloudStack en la zona. Las direcciones IP p\u00fablicas de la zona deber\u00e1n llegar a este servidor.
-message.tooltip.internal.dns.2=Nombre del servidor DNS que ser\u00e1 usado por las VMs internas de sistema de CloudStack en la zona. Las direcciones IP p\u00fablicas de la zona deber\u00e1n llegar a este servidor.
-message.tooltip.network.domain=Un subfijo DNS que crear\u00e1 un nombre de dominio personalizado para la red que es acceso da por las VMs guest.
-message.tooltip.pod.name=Un nombre para este pod.
-message.tooltip.reserved.system.gateway=El gateway para los hosts en el pod.
-message.tooltip.reserved.system.netmask=El prefijo de red que define la subred del pod. Use notaci\u00f3n CIDR.
-message.tooltip.zone.name=Un nombre para la zona.
-message.update.os.preference=Por favor seleccione un sistema operativo de preferencia para este equipo. Todas las instancias virtuales con preferencias similares ser\u00e1n los primeros asignados a este equipo antes de elegir otro.
-message.update.resource.count=Por favor confirme que usted quiere actualizar los conteos para esta cuenta
-message.update.ssl.failed=Fallo la actualizaci\u00f3n del Certficado SSL.
-message.update.ssl=Por favor, env\u00ede una nueva X.509 compatible con certificado SSL que se actualizar\u00e1 a cada instancia virtual de la consola del servidor proxy\:
-message.update.ssl.succeeded=Actualizaci\u00f3n del Certificado SSL exitosa
-message.validate.accept=Por favor ingrese un valor con extensi\u00f3n v\u00e1lida.
-message.validate.creditcard=Por favor ingrese un n\u00famero de tarjeta de cr\u00e9dito v\u00e1lido.
-message.validate.date.ISO=Por favor ingrese una fecha (ISO) v\u00e1lida.
-message.validate.date=Por favor ingrese una fecha v\u00e1lida.
-message.validate.digits=Por favor ingrese solo n\u00fameros.
-message.validate.email.address=Por favor ingrese i+un email v\u00e1lido.
-message.validate.equalto=Por favor ingrese el mismo valor nuevamente.
-message.validate.fieldrequired=Este campo es obligatorio.
-message.validate.fixfield=Por favor corrija este campo.
-message.validate.instance.name=El nombre de la instancia no puede ser m\u00e1s largo que 63 caracteres. Solo se permiten letras ASCII tales como  a~z, A~Z, n\u00fameros 0~9, los guiones est\u00e1n permitidos. Deben empezar con una letra y finalizar con una letra o un n\u00famero.
-message.validate.invalid.characters=Se han hallado caracteres no v\u00e1lidos. Por favor, corr\u00edjalos.
-message.validate.maxlength=Por favor ingrese no m\u00e1s que {0} caracteres. 
-message.validate.max=Por favor ingrese un valor menor o igual que  {0}.
-message.validate.minlength=Por favor ingrese al menos  {0} caracteres. 
-message.validate.number=Por favor ingrese un n\u00famero v\u00e1lido.
-message.validate.range.length=Por favor ingrese un valor entre {0} y {1} caracteres de longitud.
-message.validate.range=Por favor ingrese un valor entre {0} y {1}.
-message.validate.URL=Por favor ingrese una URL v\u00e1lida.
-message.virtual.network.desc=Una red dedicada virtualizados para su cuenta. El dominio de difusi\u00f3n est\u00e1 contenida dentro de una VLAN y todos los acceso a la red p\u00fablica se encamina a cabo por un router virtual.
-message.vm.create.template.confirm=Crear plantilla de la m\u00e1quina virtual se reiniciar\u00e1 autom\u00e1ticamente.
-message.vm.review.launch=Por favor verifique la siguiente informaci\u00f3n es correcta y confirme antes de lanzarla.
-message.vnmc.available.list=VNMC no esta disponible en esta lista de proveedores.
-message.vnmc.not.available.list=VNMC no esta disponible en esta lista de proveedores.
-message.volume.create.template.confirm=Por favor, confirme que desea crear una plantilla para este volumen de disco. Creaci\u00f3n de la plantilla puede oscilar entre varios minutos m\u00e1s, dependiendo del tama\u00f1o del volumen.
-message.waiting.for.builtin.templates.to.load=Esperando por las plantillas incorporadas para cargar...
-message.XSTools61plus.update.failed=La actualizaci\u00f3n fall\u00f3, la versi\u00f3n original de XS es 6.1\\+. Error\:
-message.you.must.have.at.least.one.physical.network=Debes tener por lo menos una red f\u00edsica
-message.your.cloudstack.is.ready=Tu CloudStack esta listo\!
-message.Zone.creation.complete=Creci\u00f3n de la zona completada
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Creci\u00f3n de la zona completada.\u00bfDesea habilitarla?
-message.zone.no.network.selection=La zona elegida no tiene ninguna red para seleccionar.
-message.zone.step.1.desc=Por favor seleccione un modelo de red para su zona.
-message.zone.step.2.desc=Por favor ingrese la siguiente informaci\u00f3n para agregar una nueva zona
-message.zone.step.3.desc=Por favor ingrese la siguiente informaci\u00f3n para agregar un nuevo por
-message.zoneWizard.enable.local.storage=PRECAUCI\u00d3N\: Si habilita el almacenamiento local para esta zona, debe hacer lo siguiente dependiendo de donde se quieran iniciar las VMs de sistema\:<br/><br/>1. Si las VMs de sistema deben ser iniciadas sobre el almacenamiento primario compartido, este debe agregarse a la zona despu\u00e9s de creada. Tambi\u00e9n puedes iniciar la zona en estado dshabilitado.<br/><br/>2. Si la VM de sistema necesita ser iniciada en el almacenamiento primario local, el par\u00e1metro system.vm.use.local.storage debe ser puesto en true antes de habilitar la zona.<br/><br/><br/>\u00bfDesea continuar?
-messgae.validate.min=Por favor ingrese un valor mayor o igual que {0}.
-mode=modo
-network.rate=Tasa de Red
-notification.reboot.instance=Reiniciar Instancia
-notification.start.instance=Iniciar Instancia
-notification.stop.instance=Detener Instancia
-side.by.side=Juntos
-state.Accepted=Aceptado
-state.Active=Activo
-state.Allocated=Asignados
-state.Allocating=Asignando
-state.BackedUp=Respaldado
-state.BackingUp=Realizando Backup
-state.Completed=Completado
-state.Creating=Creando
-state.Declined=Declinado
-state.Destroyed=Destruidas
-state.detached=Desconectado
-state.Disabled=personas de movilidad reducida
-state.Enabled=Habilitado
-state.Error=Error
-state.Expunging=Purgando
-state.Migrating=Migrando
-state.Pending=pendiente
-state.Ready=Listo
-state.Running=Ejecutando
-state.Starting=Iniciando
-state.Stopped=Detenidas
-state.Stopping=Parando
-state.Suspended=Suspendido
-title.upload.volume=Subir Volumen
-ui.listView.filters.all=Todas
-ui.listView.filters.mine=Mias
diff --git a/client/WEB-INF/classes/resources/messages_fr_FR.properties b/client/WEB-INF/classes/resources/messages_fr_FR.properties
deleted file mode 100644
index 32b5f35..0000000
--- a/client/WEB-INF/classes/resources/messages_fr_FR.properties
+++ /dev/null
@@ -1,2284 +0,0 @@
-# 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.
-
-changed.item.properties=Propri\u00e9t\u00e9s de l\\'\u00e9l\u00e9ment modifi\u00e9es
-confirm.enable.s3=Remplir les informations suivantes pour activer le support de stockage secondaire S3
-confirm.enable.swift=Remplir les informations suivantes pour activer Swift
-error.could.not.change.your.password.because.ldap.is.enabled=Erreur\: impossible de changer votre mot de passe car le mode LDAP est activ\u00e9.
-error.could.not.enable.zone=Impossible d\\'activer la zone
-error.installWizard.message=Une erreur s\\'est produite ; vous pouvez retourner en arri\u00e8re et corriger les erreurs
-error.invalid.username.password=Identifiant ou mot de passe invalide
-error.login=Votre identifiant / mot de passe ne correspond pas \u00e0 nos enregistrements.
-error.menu.select=\u00c9chec de l\\'action car il n\\'y a aucun \u00e9l\u00e9ment s\u00e9lectionn\u00e9.
-error.mgmt.server.inaccessible=Le serveur de gestion est inaccessible. Veuillez essayer plus tard.
-error.password.not.match=Les champs mot de passe ne correspondent pas
-error.please.specify.physical.network.tags=L\\'offre de r\u00e9seau ne sera pas disponible tant que des libell\u00e9s n\\'auront pas \u00e9t\u00e9 renseign\u00e9s pour ce r\u00e9seau physique.
-error.session.expired=Votre session a expir\u00e9e.
-error.something.went.wrong.please.correct.the.following=Quelque chose s\\'est mal pass\u00e9e ; veuillez corriger le point suivant
-error.unable.to.reach.management.server=Impossible d\\'attendre le serveur de gestion
-error.unresolved.internet.name=Votre nom Internet ne peut pas \u00eatre r\u00e9solu.
-force.delete.domain.warning=Attention \: Choisir cette option entra\u00eenera la suppression de tous les domaines issus et l\\'ensemble des comptes associ\u00e9s, ainsi que de leur ressources
-force.delete=Forcer la suppression
-force.remove.host.warning=Attention \: Choisir cette option entra\u00eenera CloudStack \u00e0 forcer l\\'arr\u00eat de l\\'ensemble des machines virtuelles avant d\\'enlever cet h\u00f4te du cluster
-force.remove=Suppression forc\u00e9e
-force.stop=Forcer l\\'arr\u00eat
-force.stop.instance.warning=Attention \: un arr\u00eat forc\u00e9 sur cette instance est la dernier option. Cela peut engendrer des pertes de donn\u00e9es et/ou un comportement inconsistant de votre instance.
-hint.no.host.tags=Aucun libell\u00e9 d\\'h\u00f4te trouv\u00e9
-hint.no.storage.tags=Aucune libell\u00e9 de stockage trouv\u00e9
-hint.type.part.host.tag=Saisir le cadre d\\'un libell\u00e9 d\\'h\u00f4te
-hint.type.part.storage.tag=Saisir le cadre d\\'un libell\u00e9 de stockage
-ICMP.code=Code ICMP
-ICMP.type=Type ICMP
-image.directory=R\u00e9pertoire d\\'images
-inline=Align\u00e9
-instances.actions.reboot.label=Red\u00e9marrer l\\'instance
-label.about.app=A propos de CloudStack
-label.about=A propos de
-label.accept.project.invitation=Accepter l\\'invitation au projet
-label.account.and.security.group=Compte, groupe de s\u00e9curit\u00e9
-label.account=Compte
-label.account.details=D\u00e9tails compte
-label.account.id=ID de compte
-label.account.lower=compte
-label.account.name=Nom de compte
-label.accounts=Comptes
-label.account.specific=Sp\u00e9cifique au compte
-label.account.type=Type Compte
-label.acl=ACL
-label.acl.id=ID ACL
-label.acl.list.rules=Liste r\u00e8gles ACL
-label.acl.name=Nom ACL
-label.acl.replaced=ACL remplac\u00e9e
-label.acquire.new.ip=Acqu\u00e9rir nouvelle adr. IP
-label.acquire.new.secondary.ip=Acqu\u00e9rir nouvelle IP secondaire
-label.action=Action
-label.action.attach.disk.processing=Rattachement du disque...
-label.action.attach.disk=Rattacher disque
-label.action.attach.iso.processing=Rattachement de l\\'image ISO...
-label.action.attach.iso=Rattacher image ISO
-label.action.cancel.maintenance.mode=Annuler mode maintenance
-label.action.cancel.maintenance.mode.processing=Annulation du mode maintenance...
-label.action.change.password=Changer le mot de passe
-label.action.change.service=Changer Service
-label.action.change.service.processing=Changement service...
-label.action.configure.samlauthorization=Configurer Autorisation SAML SSO
-label.action.copy.ISO=Copier une image ISO
-label.action.copy.ISO.processing=Copie ISO...
-label.action.copy.template=Copier mod\u00e8le
-label.action.copy.template.processing=Copie mod\u00e8le...
-label.action.create.template=Cr\u00e9er un mod\u00e8le
-label.action.create.template.from.vm=Cr\u00e9er un mod\u00e8le depuis la VM
-label.action.create.template.from.volume=Cr\u00e9er un mod\u00e8le depuis le volume
-label.action.create.template.processing=Cr\u00e9ation du Mod\u00e8le...
-label.action.create.vm=Cr\u00e9er une VM
-label.action.create.vm.processing=Cr\u00e9ation de la VM...
-label.action.create.volume=Cr\u00e9er un Volume
-label.action.create.volume.processing=Cr\u00e9ation du Volume...
-label.action.delete.account.processing=Suppression du compte...
-label.action.delete.account=Supprimer un compte
-label.action.delete.cluster.processing=Suppression du Cluster...
-label.action.delete.cluster=Supprimer le Cluster
-label.action.delete.disk.offering.processing=Suppression de l\\'offre de disque...
-label.action.delete.disk.offering=Supprimer Offre de Disque
-label.action.delete.domain.processing=Suppression du domaine...
-label.action.delete.domain=Supprimer le domaine
-label.action.delete.firewall.processing=Suppression du Pare-feu...
-label.action.delete.firewall=Supprimer la r\u00e8gle de pare-feu
-label.action.delete.ingress.rule.processing=Suppression de la r\u00e8gle d\\'entr\u00e9e..
-label.action.delete.ingress.rule=Supprimer la r\u00e8gle d\\'entr\u00e9e
-label.action.delete.IP.range.processing=Suppression de la plage IP...
-label.action.delete.IP.range=Supprimer la plage IP
-label.action.delete.ISO.processing=Suppression de l\\'image ISO...
-label.action.delete.ISO=Supprimer l\\'image ISO
-label.action.delete.load.balancer.processing=Suppression du r\u00e9partiteur de charge...
-label.action.delete.load.balancer=Supprimer la r\u00e8gle de r\u00e9partition de charge
-label.action.delete.network.processing=Suppression du r\u00e9seau...
-label.action.delete.network=Supprimer le r\u00e9seau
-label.action.delete.nexusVswitch=Supprimer le Nexus 1000v
-label.action.delete.nic=Supprimer carte NIC
-label.action.delete.physical.network=Supprimer le r\u00e9seau physique
-label.action.delete.pod.processing=Suppression du pod...
-label.action.delete.pod=Supprimer le Pod
-label.action.delete.primary.storage.processing=Suppression du stockage primaire...
-label.action.delete.primary.storage=Supprimer le stockage primaire
-label.action.delete.secondary.storage.processing=Suppression du stockage secondaire...
-label.action.delete.secondary.storage=Supprimer le stockage secondaire
-label.action.delete.security.group.processing=Suppression du groupe de s\u00e9curit\u00e9
-label.action.delete.security.group=Supprimer le groupe de s\u00e9curit\u00e9
-label.action.delete.service.offering.processing=Suppression de l\\'offre de service...
-label.action.delete.service.offering=Supprimer Offre Service
-label.action.delete.snapshot.processing=Suppression de l\\'instantan\u00e9...
-label.action.delete.snapshot=Supprimer l\\'instantan\u00e9
-label.action.delete.system.service.offering=Supprimer Offre de Service Syst\u00e8me
-label.action.delete.template.processing=Suppression du mod\u00e8le...
-label.action.delete.template=Supprimer le mod\u00e8le
-label.action.delete.user.processing=Suppression de l\\'utilisateur...
-label.action.delete.user=Supprimer l\\'utilisateur
-label.action.delete.volume.processing=Suppression du volume...
-label.action.delete.volume=Supprimer le volume
-label.action.delete.zone.processing=Suppression de la zone...
-label.action.delete.zone=Supprimer la zone
-label.action.destroy.instance.processing=Suppression de l\\'instance...
-label.action.destroy.instance=Supprimer l\\'instance
-label.action.destroy.systemvm.processing=Suppression de la VM Syst\u00e8me...
-label.action.destroy.systemvm=Supprimer VM Syst\u00e8me
-label.action.detach.disk=D\u00e9tacher le disque
-label.action.detach.disk.processing=D\u00e9tachement du disque...
-label.action.detach.iso=D\u00e9tacher l\\'image ISO
-label.action.detach.iso.processing=D\u00e9tachement de l\\'image ISO...
-label.action.disable.account=D\u00e9sactiver le compte
-label.action.disable.account.processing=D\u00e9sactivation du compte...
-label.action.disable.cluster=D\u00e9sactiver le cluster
-label.action.disable.cluster.processing=D\u00e9sactivation du cluster...
-label.action.disable.nexusVswitch=D\u00e9sactiver le Nexus 1000v
-label.action.disable.physical.network=D\u00e9sactiver le r\u00e9seau physique
-label.action.disable.pod=D\u00e9sactiver le Pod
-label.action.disable.pod.processing=D\u00e9sactivation du Pod...
-label.action.disable.static.NAT=D\u00e9sactiver le NAT Statique
-label.action.disable.static.NAT.processing=D\u00e9sactivation du NAT Statique...
-label.action.disable.user=D\u00e9sactiver l\\'utilisateur
-label.action.disable.user.processing=D\u00e9sactivation de l\\'utilisateur...
-label.action.disable.zone=D\u00e9sactivation de la zone
-label.action.disable.zone.processing=D\u00e9sactivation de la zone...
-label.action.download.ISO=T\u00e9l\u00e9charger une image ISO
-label.action.download.template=T\u00e9l\u00e9charger un mod\u00e8le
-label.action.download.volume.processing=T\u00e9l\u00e9chargement du volume...
-label.action.download.volume=T\u00e9l\u00e9charger un volume
-label.action.edit.account=Modifier le Compte
-label.action.edit.disk.offering=Modifier Offre Disque
-label.action.edit.domain=Modifier le domaine
-label.action.edit.global.setting=Modifier la configuration globale
-label.action.edit.host=Modifier l\\'h\u00f4te
-label.action.edit.instance=Modifier l\\'instance
-label.action.edit.ISO=Modifier l\\'image ISO
-label.action.edit.network=Modifier le r\u00e9seau
-label.action.edit.network.offering=Modifier Offre R\u00e9seau
-label.action.edit.network.processing=Modification du R\u00e9seau...
-label.action.edit.pod=Modifier le pod
-label.action.edit.primary.storage=Modifier le stockage primaire
-label.action.edit.resource.limits=Modifier les limites de ressources
-label.action.edit.service.offering=Modifier Offre Service
-label.action.edit.template=Modifier le mod\u00e8le
-label.action.edit.user=Modifier l\\'utilisateur
-label.action.edit.zone=Modifier la zone
-label.action.enable.account=Activer le compte
-label.action.enable.account.processing=Activation du compte...
-label.action.enable.cluster=Activer le cluster
-label.action.enable.cluster.processing=Activation du cluster...
-label.action.enable.maintenance.mode=Activer le mode maintenance
-label.action.enable.maintenance.mode.processing=Activation du mode maintenance...
-label.action.enable.nexusVswitch=Activer le Nexus 1000v
-label.action.enable.physical.network=Activer le r\u00e9seau physique
-label.action.enable.pod=Activer le Pod
-label.action.enable.pod.processing=Activation du Pod...
-label.action.enable.static.NAT=Activer le NAT Statique
-label.action.enable.static.NAT.processing=Activation du NAT Statique...
-label.action.enable.user=Activer l\\'utilisateur
-label.action.enable.user.processing=Activation de l\\'utilisateur...
-label.action.enable.zone=Activer la zone
-label.action.enable.zone.processing=Activation de la zone...
-label.action.expunge.instance.processing=Purge de l\\'Instance...
-label.action.expunge.instance=Purger Instance
-label.action.force.reconnect=Forcer la reconnexion
-label.action.force.reconnect.processing=Reconnexion en cours...
-label.action.generate.keys=G\u00e9n\u00e9rer les cl\u00e9s
-label.action.generate.keys.processing=G\u00e9n\u00e9ration des cl\u00e9s...
-label.action.list.nexusVswitch=Liste des Nexus 1000v
-label.action.lock.account.processing=Verrouillage du compte...
-label.action.lock.account=Verrouiller le compte
-label.action.manage.cluster=G\u00e9rer le Cluster
-label.action.manage.cluster.processing=Gestion du cluster...
-label.action.migrate.instance=Migrer l\\'instance
-label.action.migrate.instance.processing=Migration de l\\'instance...
-label.action.migrate.router=Migration routeur
-label.action.migrate.router.processing=Migration routeur en cours...
-label.action.migrate.systemvm=Migrer VM Syst\u00e8me
-label.action.migrate.systemvm.processing=Migration VM syst\u00e8me en cours ...
-label.action.reboot.instance.processing=Red\u00e9marrage de l\\'instance...
-label.action.reboot.instance=Red\u00e9marrer l\\'instance
-label.action.reboot.router.processing=Red\u00e9marrage du routeur...
-label.action.reboot.router=Red\u00e9marrer le routeur
-label.action.reboot.systemvm.processing=Red\u00e9marrage de la VM Syst\u00e8me...
-label.action.reboot.systemvm=Red\u00e9marrer VM Syst\u00e8me
-label.action.recurring.snapshot=Instantan\u00e9s r\u00e9currents
-label.action.register.iso=Enregistrer ISO
-label.action.register.template=Enregistrer mod\u00e8le depuis une URL
-label.action.release.ip=Lib\u00e9rer l\\'adresse IP
-label.action.release.ip.processing=Lib\u00e9ration de l\\'adresse IP...
-label.action.remove.host.processing=Suppression de l\\'h\u00f4te...
-label.action.remove.host=Supprimer l\\'h\u00f4te
-label.action.reset.password.processing=R\u00e9-initialisation du mot de passe...
-label.action.reset.password=R\u00e9-initialiser le mot de passe
-label.action.resize.volume.processing=Redimensionnement en cours...
-label.action.resize.volume=Redimensionner Volume
-label.action.resource.limits=Limites de ressources
-label.action.restore.instance.processing=Restauration de l\\'instance...
-label.action.restore.instance=Restaurer l\\'instance
-label.action.revert.snapshot.processing=Retour \u00e0 l\\'instantan\u00e9...
-label.action.revert.snapshot=R\u00e9tablir Instantan\u00e9
-label.actions=Actions
-label.action.start.instance=D\u00e9marrer l\\'instance
-label.action.start.instance.processing=D\u00e9marrage de l\\'instance...
-label.action.start.router=D\u00e9marrer le routeur
-label.action.start.router.processing=D\u00e9marrage du routeur...
-label.action.start.systemvm=D\u00e9marrer la VM syst\u00e8me
-label.action.start.systemvm.processing=D\u00e9marrage de la VM syst\u00e8me...
-label.action.stop.instance=Arr\u00eater l\\'Instance
-label.action.stop.instance.processing=Arr\u00eat de l\\'Instance...
-label.action.stop.router=Arr\u00eater le routeur
-label.action.stop.router.processing=Arr\u00eat du routeur...
-label.action.stop.systemvm=Arr\u00eater VM Syst\u00e8me
-label.action.stop.systemvm.processing=Arr\u00eat de la VM syst\u00e8me...
-label.action.take.snapshot=Prendre un instantan\u00e9
-label.action.take.snapshot.processing=Prise de l\\'instantan\u00e9...
-label.action.unmanage.cluster=Ne plus g\u00e9rer le Cluster
-label.action.unmanage.cluster.processing=Arr\u00eat de la gestion du Cluster
-label.action.update.OS.preference=Mettre \u00e0 jour les pr\u00e9f\u00e9rences d\\'OS
-label.action.update.OS.preference.processing=Mise \u00e0 jour des pr\u00e9f\u00e9rences d\\'OS...
-label.action.update.resource.count=Mettre \u00e0 jour le compteur des ressources
-label.action.update.resource.count.processing=Mise \u00e0 jour du compteur...
-label.action.vmsnapshot.create=Prendre un instantan\u00e9 VM
-label.action.vmsnapshot.delete=Supprimer l\\'instantan\u00e9 VM
-label.action.vmsnapshot.revert=R\u00e9tablir Instantan\u00e9 VM
-label.activate.project=Activer projet
-label.active.sessions=Sessions actives
-label.add.account=Ajouter un compte
-label.add.accounts=Ajouter des comptes
-label.add.accounts.to=Ajouter des comptes sur
-label.add.account.to.project=Ajouter un compte au projet
-label.add.ACL=Ajouter r\u00e8gle ACL
-label.add.acl.list=Ajouter Liste ACL
-label.add.affinity.group=Ajouter nouveau groupe d\\'affinit\u00e9
-label.add=Ajouter
-label.add.baremetal.dhcp.device=Ajouter un DHCP Baremetal
-label.add.baremetal.rack.configuration=Ajouter Configuration Rack Baremetal
-label.add.BigSwitchBcf.device=Ajouter un contr\u00f4leur BigSwitch BCF
-label.add.BrocadeVcs.device=Ajouter Switch Brocade Vcs
-label.add.by=Ajout\u00e9 par
-label.add.by.cidr=Ajouter par CIDR
-label.add.by.group=Ajouter par groupe
-label.add.ciscoASA1000v=Ajouter ressource CiscoASA1000v
-label.add.cluster=Ajouter un cluster
-label.add.compute.offering=Ajouter Offre Calcul
-label.add.direct.iprange=Ajouter une plage d\\'adresse IP directe
-label.add.disk.offering=Ajouter Offre Disque
-label.add.domain=Ajouter un domaine
-label.added.brocade.vcs.switch=Ajout d\\'un nouveau switch Brocade Vcs
-label.added.network.offering=Offre de service ajout\u00e9e
-label.added.new.bigswitch.bcf.controller=Ajout du nouveau contr\u00f4leur BigSwitch BCF
-label.added.nicira.nvp.controller=Ajout d\\'un nouveau contr\u00f4leur Nicira NVP
-label.add.egress.rule=Ajouter la r\u00e8gle sortante
-label.addes.new.f5=Ajout d\\'un nouveau F5
-label.add.F5.device=Ajouter un F5
-label.add.firewall=Ajouter une r\u00e8gle de pare-feu
-label.add.globo.dns=Ajouter GloboDNS
-label.add.gslb=Ajouter GSLB
-label.add.guest.network=Ajouter un r\u00e9seau d\\'invit\u00e9
-label.add.host=Ajouter un h\u00f4te
-label.adding=Ajout
-label.adding.cluster=Ajout du Cluster
-label.adding.failed=\u00c9chec de l\\'ajout
-label.adding.pod=Ajout du Pod
-label.adding.processing=Ajout...
-label.add.ingress.rule=Ajouter une r\u00e8gle d\\'entr\u00e9e
-label.adding.succeeded=Ajout r\u00e9ussi
-label.adding.user=Ajout de l\\'utilisateur
-label.adding.zone=Ajout de la zone
-label.add.intermediate.certificate=Ajouter certificat interm\u00e9diaire
-label.add.internal.lb=Ajouter LB interne
-label.add.ip.range=Ajouter une plage IP
-label.add.isolated.guest.network=Ajouter un r\u00e9seau d\\'invit\u00e9 isol\u00e9
-label.add.isolated.guest.network.with.sourcenat=Ajouter un r\u00e9seau d\\'invit\u00e9 isol\u00e9 avec SourceNat
-label.add.isolated.network=Ajouter un r\u00e9seau isol\u00e9
-label.additional.networks=R\u00e9seaux additionnels
-label.add.LDAP.account=Ajouter Compte LDAP
-label.add.ldap.account=Ajouter un compte LDAP
-label.add.list.name=Nom Liste ACL
-label.add.load.balancer=Ajouter un r\u00e9partiteur de charge
-label.add.more=Ajouter plus
-label.add.netScaler.device=Ajouter un Netscaler
-label.add.network.ACL=Ajouter une r\u00e8gle d\\'acc\u00e8s r\u00e9seau ACL
-label.add.network.acl.list=Ajouter Liste ACL r\u00e9seau
-label.add.network=Ajouter un r\u00e9seau
-label.add.network.device=Ajouter un \u00e9quipement r\u00e9seau
-label.add.network.offering=Ajouter Offre R\u00e9seau
-label.add.new.F5=Ajouter un F5
-label.add.new.gateway=Ajouter une nouvelle passerelle
-label.add.new.NetScaler=Ajouter un Netscaler
-label.add.new.PA=Ajouter nouveau Palo Alto
-label.add.new.SRX=Ajouter un SRX
-label.add.new.tier=Ajouter un nouveau tiers
-label.add.nfs.secondary.staging.store=Ajouter un Stockage Secondaire Interm\u00e9diaire NFS
-label.add.NiciraNvp.device=Ajouter un contr\u00f4leur Nvp
-label.add.NuageVsp.device=Ajouter Nuage Virtualized Services Directory (VSD)
-label.add.OpenDaylight.device=Ajouter contr\u00f4leur OpenDaylight
-label.add.PA.device=Ajouter p\u00e9riph\u00e9rique Palo Alto
-label.add.physical.network=Ajouter un r\u00e9seau physique
-label.add.pod=Ajouter un pod
-label.add.portable.ip.range=Ajouter Plage IP portable
-label.add.port.forwarding.rule=Ajouter une r\u00e8gle de transfert de port
-label.add.primary.storage=Ajouter un stockage primaire
-label.add.private.gateway=Ajouter Passerelle Priv\u00e9e
-label.add.region=Ajouter R\u00e9gion
-label.add.resources=Ajouter ressources
-label.add.role=Ajouter R\u00f4le
-label.add.route=Ajouter route
-label.add.rule=Ajouter r\u00e8gle
-label.add.secondary.storage=Ajouter un stockage secondaire
-label.add.security.group=Ajouter un groupe de s\u00e9curit\u00e9
-label.add.service.offering=Ajouter Offre Service
-label.add.SRX.device=Ajouter un SRX
-label.add.static.nat.rule=Ajouter une r\u00e8gle de NAT statique
-label.add.static.route=Ajouter une route statique
-label.add.system.service.offering=Ajouter Offre Service Syst\u00e8me
-label.add.template=Ajouter un mod\u00e8le
-label.add.to.group=Ajouter au groupe
-label.add.ucs.manager=Ajouter Gestionnaire UCS
-label.add.user=Ajouter un utilisateur
-label.add.userdata=Donn\u00e9es Utilisateur
-label.add.vlan=Ajouter un VLAN
-label.add.vm=Ajouter VM
-label.add.vms=Ajouter VMs
-label.add.vms.to.lb=Ajouter une/des VM(s) \u00e0 la r\u00e8gle de r\u00e9partition de charge
-label.add.VM.to.tier=Ajouter une machine virtuelle au tiers
-label.add.vmware.datacenter=Ajouter un datacenter VMware
-label.add.vnmc.device=Ajouter un VNMC
-label.add.vnmc.provider=Ajouter fournisseur VNMC
-label.add.volume=Ajouter un volume
-label.add.vpc=Ajouter un VPC
-label.add.vpc.offering=Ajouter Offre VPC
-label.add.vpn.customer.gateway=Ajouter une passerelle VPN cliente
-label.add.VPN.gateway=Ajouter une passerelle VPN
-label.add.vpn.user=Ajouter un utilisateur VPN
-label.add.vxlan=Ajouter un VXLAN
-label.add.zone=Ajouter une zone
-label.admin.accounts=Comptes Administrateur
-label.admin=Administrateur
-label.advanced=Avanc\u00e9
-label.advanced.mode=Mode avanc\u00e9
-label.advanced.search=Recherche avanc\u00e9e
-label.affinity=Affinit\u00e9
-label.affinity.group=Groupe d\\'Affinit\u00e9
-label.affinity.groups=Groupes d\\'Affinit\u00e9
-label.agent.password=Mot de passe Agent
-label.agent.port=Port Agent
-label.agent.state=Statut Agent
-label.agent.username=Identifiant Agent
-label.agree=Accepter
-label.alert=Alerte
-label.alert.archived=Alerte archiv\u00e9e
-label.alert.deleted=Alerte supprim\u00e9e
-label.alert.details=D\u00e9tails Alerte
-label.algorithm=Algorithme
-label.allocated=Allou\u00e9
-label.allocation.state=\u00c9tat
-label.allow=Autoriser
-label.anti.affinity=Anti-affinit\u00e9
-label.anti.affinity.group=Groupe d\\'Anti-affinit\u00e9
-label.anti.affinity.groups=Groupes d\\'Anti-affinit\u00e9
-label.api.key=Cl\u00e9 d\\'API
-label.api.version=Version d\\'API
-label.apply=Appliquer
-label.app.name=CloudStack
-label.archive.alerts=Archiver alertes
-label.archive=Archiver
-label.archive.events=Archiver \u00e9v\u00e9nements
-label.assign=Assigner
-label.assigned.vms=VMs Assign\u00e9es
-label.assign.instance.another=Assigner l\\'instance \u00e0 un autre compte
-label.assign.to.load.balancer=Assigner l\\'instance au r\u00e9partiteur de charge
-label.assign.vms=Assigner VMs
-label.associated.network.id=ID du r\u00e9seau associ\u00e9
-label.associated.network=R\u00e9seau associ\u00e9
-label.associated.profile=Profil associ\u00e9
-label.associate.public.ip=Associer IP Publique
-label.attached.iso=Image ISO attach\u00e9e
-label.author.email=Email auteur
-label.author.name=Nom auteur
-label.autoscale=AutoScale
-label.autoscale.configuration.wizard=Assistant de configuration AutoScale
-label.availability=Disponibilit\u00e9
-label.availabilityZone=availabilityZone
-label.availability.zone=Zone de disponibilit\u00e9
-label.available=Disponible
-label.available.public.ips=Adresses IP publiques disponibles
-label.back=Retour
-label.bandwidth=Bande passante
-label.baremetal.dhcp.devices=\u00c9quipements DHCP Baremetal
-label.baremetal.dhcp.provider=Fournisseur DHCP Baremetal
-label.baremetal.pxe.device=Ajouter un PXE Baremetal
-label.baremetal.pxe.devices=\u00c9quipements PXE Baremetal
-label.baremetal.pxe.provider=Fournisseur PXE Baremetal
-label.baremetal.rack.configuration=Configuration Rack Baremetal
-label.basic=Basique
-label.basic.mode=Mode basique
-label.bigswitch.bcf.details=D\u00e9tails BigSwitch BCF
-label.bigswitch.bcf.nat=NAT activ\u00e9 BigSwitch BCF
-label.bigswitch.controller.address=Adresse du contr\u00f4leur BigSwitch Vns
-label.blade.id=ID Lame
-label.blades=Lames
-label.bootable=Amor\u00e7able
-label.broadcast.domain.range=Plage du domaine multi-diffusion
-label.broadcast.domain.type=Type de domaine de multi-diffusion
-label.broadcasturi=broadcasturi
-label.broadcast.uri=URI multi-diffusion
-label.broadcat.uri=URI multi-diffusion
-label.brocade.vcs.address=Adress Vcs Switch
-label.brocade.vcs.details=D\u00e9tails Switch Brocade Vcs
-label.by.account=Par compte
-label.by.alert.type=Par type d\\'alerte
-label.by.availability=Par disponibilit\u00e9
-label.by.date.end=Par date (fin)
-label.by.date.start=Par date (d\u00e9but)
-label.by.domain=Par domaine
-label.by.end.date=Par date de fin
-label.by.event.type=Par type d\\'\u00e9v\u00e9nement
-label.by.level=Par niveau
-label.by.pod=Par Pod
-label.by.role=Par r\u00f4le
-label.by.start.date=Par date de d\u00e9but
-label.by.state=Par \u00e9tat
-label.bytes.received=Octets re\u00e7us
-label.bytes.sent=Octets envoy\u00e9s
-label.by.traffic.type=Par type de trafic
-label.by.type.id=Par type d\\'ID
-label.by.type=Par type
-label.by.zone=Par zone
-label.cache.mode=Type Write-cache
-label.cancel=Annuler
-label.capacity.bytes=Capacit\u00e9 Octets
-label.capacity=Capacit\u00e9
-label.capacity.iops=Capacit\u00e9 IOPS
-label.certificate=Certificat
-label.change.affinity=Changer Affinit\u00e9
-label.change.ipaddress=Changer adresse IP pour NIC
-label.change.service.offering=Modifier Offre Service
-label.change.value=Modifier la valeur
-label.character=Caract\u00e8re
-label.chassis=Ch\u00e2ssis
-label.checksum=checksum
-label.cidr.account=CIDR ou Compte/Groupe de s\u00e9curit\u00e9
-label.cidr=CIDR
-label.cidr.list=CIDR Source
-label.CIDR.list=Liste CIDR
-label.CIDR.of.destination.network=CIDR du r\u00e9seau de destination
-label.cisco.nexus1000v.ip.address=Adresse IP Nexus 1000v
-label.cisco.nexus1000v.password=Mot de passe Nexus 1000v
-label.cisco.nexus1000v.username=Identifiant Nexus 1000v
-label.ciscovnmc.resource.details=D\u00e9tails ressource CiscoVNMC
-label.clean.up=Nettoyage
-label.clear.list=Purger la liste
-label.close=Fermer
-label.cloud.console=Console d\\'Administration du Cloud
-label.cloud.managed=G\u00e9r\u00e9 par Cloud.com
-label.cluster=Cluster
-label.cluster.name=Nom du cluster
-label.clusters=Clusters
-label.cluster.type=Type de Cluster
-label.clvm=CLVM
-label.code=Code
-label.community=Communaut\u00e9
-label.compute.and.storage=Calcul et Stockage
-label.compute.offering=Offre de calcul
-label.compute.offerings=Offres de Calcul
-label.compute=Processeur
-label.configuration=Configuration
-label.configure=Configurer
-label.configure.ldap=Configurer LDAP
-label.configure.network.ACLs=Configurer les r\u00e8gles d\\'acc\u00e8s r\u00e9seau ACL
-label.configure.sticky.policy=Configurer Strat\u00e9gie Sticky
-label.configure.vpc=Configurer le VPC
-label.confirmation=Confirmation
-label.confirm.password=Confirmer le mot de passe
-label.congratulations=F\u00e9licitations \!
-label.conserve.mode=Conserver le mode
-label.console.proxy=Console proxy
-label.console.proxy.vm=VM Console Proxy
-label.continue.basic.install=Continuer avec l\\'installation basique
-label.continue=Continuer
-label.copying.iso=Copie ISO
-label.corrections.saved=Modifications enregistr\u00e9es
-label.counter=Compteur
-label.cpu.allocated=CPU allou\u00e9e
-label.cpu.allocated.for.VMs=CPU allou\u00e9e aux VMs
-label.CPU.cap=Limitation CPU
-label.cpu=CPU
-label.cpu.limits=Limites CPU
-label.cpu.mhz=CPU (en MHz)
-label.cpu.utilized=CPU utilis\u00e9e
-label.created.by.system=Cr\u00e9\u00e9 par le syst\u00e8me
-label.created=Cr\u00e9\u00e9
-label.create.nfs.secondary.staging.storage=Cr\u00e9er le Stockage Secondaire Interm\u00e9diaire NFS
-label.create.nfs.secondary.staging.store=Cr\u00e9er le stockage secondaire interm\u00e9diaire NFS
-label.create.project=Cr\u00e9er un projet
-label.create.ssh.key.pair=Cr\u00e9er une bi-cl\u00e9 SSH
-label.create.template=Cr\u00e9er un mod\u00e8le
-label.create.VPN.connection=Cr\u00e9er une connexion VPN
-label.cross.zones=Multi Zones
-label.custom.disk.iops=IOPS personnalis\u00e9
-label.custom.disk.offering=Offre de disque personnalis\u00e9e
-label.custom.disk.size=Personalisable
-label.custom=Personnalis\u00e9
-label.daily=Quotidien
-label.data.disk.offering=Offre de disque de donn\u00e9es
-label.date=Date
-label.day=Jour
-label.day.of.month=Jour du mois
-label.day.of.week=Jour de la semaine
-label.dc.name=Nom DC
-label.dead.peer.detection=D\u00e9tection de pair mort
-label.decline.invitation=Refuser l\\'invitation
-label.dedicate.cluster=D\u00e9dier Cluster
-label.dedicated=D\u00e9di\u00e9
-label.dedicate=D\u00e9dier
-label.dedicated.vlan.vni.ranges=Plages VLAN/VNI d\u00e9di\u00e9es
-label.dedicate.host=D\u00e9dier H\u00f4te
-label.dedicate.pod=D\u00e9dier Pod
-label.dedicate.vlan.vni.range=Plage VLAN/VNI d\u00e9di\u00e9e
-label.dedicate.zone=D\u00e9dier Zone
-label.default.egress.policy=Politique Egress par d\u00e9faut
-label.default=Par d\u00e9faut
-label.default.use=Utilisation par d\u00e9faut
-label.default.view=Vue par d\u00e9faut
-label.delete.acl.list=Supprimer Liste ACL
-label.delete.affinity.group=Supprimer le groupe d\\'affinit\u00e9
-label.delete.alerts=Supprimer alertes
-label.delete.baremetal.rack.configuration=Supprimer Configuration Rack Baremetal
-label.delete.BigSwitchBcf=Supprimer contr\u00f4leur BigSwitch BCF
-label.delete.BrocadeVcs=Supprimer Brocade Vcs Switch
-label.delete.ciscoASA1000v=Supprimer CiscoASA1000v
-label.delete.ciscovnmc.resource=Supprimer ressource CiscoVNMC
-label.delete.events=Supprimer \u00e9v\u00e9nements
-label.delete.F5=Supprimer F5
-label.delete.gateway=Supprimer la passerelle
-label.delete.internal.lb=Supprimer LB interne
-label.delete.NetScaler=Supprimer Netscaler
-label.delete.NiciraNvp=Supprimer un contr\u00f4leur Nvp
-label.delete.NuageVsp=Supprimer Nuage VSD
-label.delete.OpenDaylight.device=Supprimer contr\u00f4leur OpenDaylight
-label.delete.PA=Supprimer Palo Alto
-label.delete.portable.ip.range=Supprimer Plage IP portable
-label.delete.profile=Supprimer Profil
-label.delete.project=Supprimer projet
-label.delete.role=Supprimer R\u00f4le
-label.delete.secondary.staging.store=Supprimer Stockage Secondaire Interm\u00e9diaire
-label.delete.SRX=Supprimer SRX
-label.delete=Supprimer
-label.delete.ucs.manager=Supprimer Gestionnaire UCS
-label.delete.VPN.connection=Supprimer la connexion VPN
-label.delete.VPN.customer.gateway=Supprimer la passerelle VPN client
-label.delete.VPN.gateway=Supprimer la passerelle VPN
-label.delete.vpn.user=Supprimer l\\'utilisateur VPN
-label.deleting.failed=Suppression \u00e9chou\u00e9e
-label.deleting.processing=Suppression...
-label.deny=Interdire
-label.deployment.planner=Planning d\u00e9ploiement
-label.description=Description
-label.destination.physical.network.id=Identifiant du r\u00e9seau physique de destination
-label.destination.zone=Zone de destination
-label.destroy=D\u00e9truire
-label.destroy.router=Supprimer le routeur
-label.destroy.vm.graceperiod=D\u00e9truire P\u00e9riode de gr\u00e2ce VM
-label.detaching.disk=D\u00e9tacher le disque
-label.details=D\u00e9tails
-label.device.id=ID du p\u00e9riph\u00e9rique
-label.devices=Machines
-label.dhcp=DHCP
-label.DHCP.server.type=Serveur DHCP
-label.direct.attached.public.ip=IP publique attach\u00e9e directement
-label.direct.ips=Adresses IP du r\u00e9seau partag\u00e9
-label.disable.autoscale=D\u00e9sactiver Autoscale
-label.disabled=D\u00e9sactiv\u00e9
-label.disable.host=D\u00e9sactiver H\u00f4te
-label.disable.network.offering=D\u00e9sactiver Offre de r\u00e9seau
-label.disable.provider=D\u00e9sactiver ce fournisseur
-label.disable.vnmc.provider=D\u00e9sactiver fournisseur VNMC
-label.disable.vpc.offering=D\u00e9sactiver offre VPC
-label.disable.vpn=D\u00e9sactiver le VPN
-label.disabling.vpn.access=D\u00e9sactiver l\\'acc\u00e8s VPN
-label.disassociate.profile.blade=D\u00e9-associer le Profil de la Lame
-label.disbale.vnmc.device=D\u00e9sactiver VNMC
-label.disk.allocated=Disque Allou\u00e9
-label.disk.bytes.read.rate=D\u00e9bit lecture disque (BPS)
-label.disk.bytes.write.rate=D\u00e9bit \u00e9criture disque (BPS)
-label.disk.iops.max=IOPS maximum
-label.disk.iops.min=IOPS minimum
-label.disk.iops.read.rate=D\u00e9bit lecture disque (IOPS)
-label.disk.iops.total=IOPS Total
-label.disk.iops.write.rate=D\u00e9bit \u00e9criture disque (IOPS)
-label.disk.offering.details=D\u00e9tails offre de disque
-label.diskoffering=diskoffering
-label.disk.offering=Offre de Disque
-label.disk.provisioningtype=Type de provisionnement
-label.disk.read.bytes=Lecture Disque (Octets)
-label.disk.read.io=Lecture Disque (IO)
-label.disk.size=Capacit\u00e9 disque
-label.disk.size.gb=Capacit\u00e9 disque (Go)
-label.disk.total=Espace disque total
-label.disk.volume=Volume disque
-label.disk.write.bytes=\u00c9criture Disque (Octets)
-label.disk.write.io=\u00c9criture Disque (IO)
-label.display.name=Nom d\\'affichage
-label.display.text=Texte affich\u00e9
-label.distributedrouter=Routeur Distribu\u00e9
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=Domaine DNS pour les r\u00e9seaux invit\u00e9s
-label.domain.admin=Administrateur du domaine
-label.domain.details=D\u00e9tails domaine
-label.domain=Domaine
-label.domain.id=ID du domaine
-label.domain.lower=domaine
-label.domain.name=Nom de domaine
-label.domain.router=Routeur du domaine
-label.domain.suffix=Suffixe de domaine DNS (i.e., xyz.com)
-label.done=Termin\u00e9
-label.double.quotes.are.not.allowed=Les guillemets ne sont pas autoris\u00e9es
-label.download.progress=Progression du t\u00e9l\u00e9chargement
-label.drag.new.position=D\u00e9placer sur une autre position
-label.duration.in.sec=Dur\u00e9e (en sec)
-label.dynamically.scalable=Dimensionnement dynamique
-label.edit.acl.rule=Modifier r\u00e8gle ACL
-label.edit.affinity.group=Modifier le groupe d\\'affinit\u00e9
-label.edit.lb.rule=Modifier la r\u00e8gle LB
-label.edit=Modifier
-label.edit.network.details=Modifier les param\u00e8tres r\u00e9seau
-label.edit.project.details=Modifier les d\u00e9tails du projet
-label.edit.region=\u00c9diter R\u00e9gion
-label.edit.role=\u00c9diter R\u00f4le
-label.edit.rule=Modifier r\u00e8gle
-label.edit.secondary.ips=\u00c9diter IPs secondaires
-label.edit.tags=Modifier les balises
-label.edit.traffic.type=Modifier le type de trafic
-label.edit.vpc=Modifier le VPC
-label.egress.default.policy=Politique par d\u00e9faut Egress
-label.egress.rule=R\u00e8gle sortante
-label.egress.rules=R\u00e8gles de sortie
-label.elastic.IP=IP extensible
-label.elastic.LB=R\u00e9partition de charge extensible
-label.elastic=\u00c9lastique
-label.email=Email
-label.email.lower=email
-label.enable.autoscale=Activer Autoscale
-label.enable.host=Activer H\u00f4te
-label.enable.network.offering=Activer Offre de r\u00e9seau
-label.enable.provider=Activer le fournisseur
-label.enable.s3=Activer le stockage secondaire de type S3
-label.enable.swift=Activer Swift
-label.enable.vnmc.device=Activer VNMC
-label.enable.vnmc.provider=Activer fournisseur VNMC
-label.enable.vpc.offering=Activer offre VPC
-label.enable.vpn=Activer VPN
-label.enabling.vpn.access=Activation de l\\'acc\u00e8s VPN
-label.enabling.vpn=Activation du VPN
-label.end.IP=IP fin plage
-label.endpoint.or.operation=Terminaison ou Op\u00e9ration
-label.endpoint=Terminaison
-label.end.port=Port de fin
-label.end.reserved.system.IP=Adresse IP de fin r\u00e9serv\u00e9e Syst\u00e8me
-label.end.vlan=Fin VLAN
-label.end.vxlan=Fin VXLAN
-label.enter.token=Entrez le jeton unique
-label.error.code=Code d\\'erreur
-label.error=Erreur
-label.error.upper=ERROR
-label.ESP.encryption=Chiffrement ESP
-label.ESP.hash=Empreinte ESP
-label.ESP.lifetime=Dur\u00e9e de vie ESP (secondes)
-label.ESP.policy=Mode ESP
-label.esx.host=H\u00f4te ESX/ESXi
-label.event.archived=\u00c9v\u00e9nement archiv\u00e9
-label.event.deleted=\u00c9v\u00e9nement supprim\u00e9
-label.event=\u00c9v\u00e9nement
-label.every=Tous
-label.example=Exemple
-label.expunge=Purger
-label.external.link=Lien externe
-label.extractable.lower=T\u00e9l\u00e9chargeable
-label.extractable=T\u00e9l\u00e9chargeable
-label.f5.details=D\u00e9tails F5
-label.f5=F5
-label.failed=\u00c9chou\u00e9
-label.featured=Sponsoris\u00e9
-label.fetch.latest=Rafra\u00eechir
-label.filterBy=Filtre
-label.fingerprint=Empreinte
-label.firewall=Pare-feu
-label.firstname.lower=pr\u00e9nom
-label.first.name=Pr\u00e9nom
-label.format=Format
-label.format.lower=format
-label.friday=Vendredi
-label.full=Complet
-label.full.path=Chemin complet
-label.gateway=Passerelle
-label.general.alerts=Alertes g\u00e9n\u00e9rales
-label.generating.url=G\u00e9n\u00e9ration de l\\'URL
-label.globo.dns.configuration=Configuration GloboDNS
-label.globo.dns=GloboDNS
-label.gluster.volume=Volume
-label.go.step.2=Aller \u00e0 l\\'\u00e9tape 2
-label.go.step.3=Aller \u00e0 l\\'\u00e9tape 3
-label.go.step.4=Aller \u00e0 l\\'\u00e9tape 4
-label.go.step.5=Aller \u00e0 l\\'\u00e9tape 5
-label.gpu=GPU
-label.group.by.account=Regrouper par compte
-label.group.by.cluster=Regrouper par cluster
-label.group.by.pod=Regrouper par pod
-label.group.by.zone=Regrouper par zone
-label.group=Groupe
-label.group.optional=Groupe (optionnel)
-label.gslb.assigned.lb.more=Assigner plus de r\u00e9partition de charge
-label.gslb.assigned.lb=R\u00e9partition de charge assign\u00e9e
-label.gslb.delete=Supprimer GSLB
-label.gslb.details=D\u00e9tails GSLB
-label.gslb.domain.name=Nom de domaine GSLB
-label.gslb=GSLB
-label.gslb.lb.details=D\u00e9tails r\u00e9partition de charge
-label.gslb.lb.remove=Supprimer r\u00e9partition de charge depuis ce GSLB
-label.gslb.lb.rule=R\u00e8gle de r\u00e9partition de charge
-label.gslb.service.private.ip=IP priv\u00e9e service GSLB
-label.gslb.service.public.ip=IP publique service GSLB
-label.gslb.service=Service GSLB
-label.gslb.servicetype=Type service
-label.guest.cidr=CIDR invit\u00e9
-label.guest.end.ip=Adresse IP de fin pour les invit\u00e9s
-label.guest.gateway=Passerelle pour les invit\u00e9s
-label.guest=Invit\u00e9
-label.guest.ip=Adresse IP des invit\u00e9s
-label.guest.ip.range=Plage d\\'adresses IP des invit\u00e9s
-label.guest.netmask=Masque de r\u00e9seau des invit\u00e9s
-label.guest.network.details=D\u00e9tails r\u00e9seau invit\u00e9
-label.guest.networks=R\u00e9seaux d\\'invit\u00e9
-label.guest.start.ip=Adresse IP de d\u00e9but pour les invit\u00e9s
-label.guest.traffic=Trafic invit\u00e9
-label.guest.traffic.vswitch.name=Nom Trafic Invit\u00e9 vSwitch
-label.guest.traffic.vswitch.type=Type Trafic Invit\u00e9 vSwitch
-label.guest.type=Type d\\'invit\u00e9
-label.ha.enabled=Haute disponibilit\u00e9 activ\u00e9e
-label.health.check.advanced.options=Options avanc\u00e9es \:
-label.health.check.configurations.options=Options de configuration \:
-label.health.check.interval.in.sec=Fr\u00e9quence de v\u00e9rification d\\'\u00e9tat (sec)
-label.health.check.message.desc=Votre r\u00e9partiteur de charge va automatiquement effectuer des v\u00e9rifications d\\'\u00e9tat sur vos instances CloudStack et router seulement le trafic vers les instances ayant pass\u00e9es les v\u00e9rifications avec succ\u00e8s
-label.health.check=V\u00e9rification statut
-label.health.check.wizard=Assistant V\u00e9rification Sant\u00e9
-label.healthy.threshold=Seuil d\\'\u00e9tat
-label.help=Aide
-label.hide.ingress.rule=Cacher la r\u00e8gle d\\'entr\u00e9e
-label.hints=Astuces
-label.home=Accueil
-label.host.alerts=H\u00f4tes en \u00e9tat d\\'Alerte
-label.host=H\u00f4te
-label.host.MAC=Adresse MAC h\u00f4te
-label.host.name=Nom d\\'h\u00f4te
-label.hosts=H\u00f4tes
-label.host.tag=Etiquette h\u00f4te
-label.host.tags=\u00c9tiquettes d\\'h\u00f4te
-label.hourly=Chaque heure
-label.hvm=HVM
-label.hypervisor.capabilities=Fonctions hyperviseur
-label.hypervisor=Hyperviseur
-label.hypervisors=Hyperviseurs
-label.hypervisor.snapshot.reserve=R\u00e9serve d\\'instantan\u00e9e de l\\'Hyperviseur
-label.hypervisor.type=Type d\\'hyperviseur
-label.hypervisor.version=Version hyperviseur
-label.hyperv.traffic.label=Libell\u00e9 trafic HyperV
-label.id=ID
-label.IKE.DH=DH IKE
-label.IKE.encryption=Chiffrement IKE
-label.IKE.hash=Empreinte IKE
-label.IKE.lifetime=Dur\u00e9e de vie IKE (secondes)
-label.IKE.policy=Mode IKE
-label.info=Information
-label.info.upper=INFO
-label.ingress.rule=R\u00e8gle d\\'entr\u00e9e
-label.initiated.by=Initi\u00e9 par
-label.inside.port.profile=Profil Port entrant
-label.installWizard.addClusterIntro.subtitle=Qu\\'est ce qu\\'un cluster ?
-label.installWizard.addClusterIntro.title=Ajoutons un cluster
-label.installWizard.addHostIntro.subtitle=Qu\\'est ce qu\\'un h\u00f4te ?
-label.installWizard.addHostIntro.title=Ajoutons un h\u00f4te
-label.installWizard.addPodIntro.subtitle=Qu\\'est ce qu\\'un pod ?
-label.installWizard.addPodIntro.title=Ajoutons un pod
-label.installWizard.addPrimaryStorageIntro.subtitle=Qu\\'est ce que le stockage primaire ?
-label.installWizard.addPrimaryStorageIntro.title=Ajoutons du stockage primaire
-label.installWizard.addSecondaryStorageIntro.subtitle=Qu\\'est ce que le stockage secondaire ?
-label.installWizard.addSecondaryStorageIntro.title=Ajoutons du stockage secondaire
-label.installWizard.addZoneIntro.subtitle=Qu\\'est ce qu\\'une zone ?
-label.installWizard.addZoneIntro.title=Ajoutons une zone
-label.installWizard.addZone.title=Ajouter une zone
-label.installWizard.click.launch=Appuyer sur le bouton d\u00e9marrer.
-label.installWizard.subtitle=Ce tutoriel vous aidera \u00e0 configurer votre installation CloudStack&\#8482;
-label.installWizard.title=Bonjour et bienvenue dans CloudStack&\#8482;
-label.instance=Instance
-label.instance.limits=Limites des instances
-label.instance.name=Nom de l\\'instance
-label.instance.port=Port Instance
-label.instance.scaled.up=Instance agrandie
-label.instances=Instances
-label.instanciate.template.associate.profile.blade=Instancier Mod\u00e8le et Profil associ\u00e9 \u00e0 la Lame
-label.intermediate.certificate=Certificat interm\u00e9diaire {0}
-label.internal.dns.1=DNS interne 1
-label.internal.dns.2=DNS interne 2
-label.internal.lb.details=D\u00e9tails du LB interne
-label.internal.lb=R\u00e9partiteur interne
-label.internallbvm=InternalLbVm
-label.internal.name=Nom interne
-label.interval.type=Type d\\'intervalle
-label.introduction.to.cloudstack=Introduction \u00e0 CloudStack&\#8482;
-label.invalid.integer=Nombre entier invalide
-label.invalid.number=Nombre invalide
-label.invitations=Invitations
-label.invited.accounts=Comptes invit\u00e9s
-label.invite=Inviter
-label.invite.to=Inviter sur
-label.ip.address=Adresse IP
-label.ipaddress=Adresse IP
-label.ip.allocations=Allocations de IPs
-label.ip=IP
-label.ip.limits=Limite de IPs publiques
-label.ip.or.fqdn=IP ou FQDN
-label.ip.range=Plage IP
-label.ip.ranges=Plages IP
-label.ips=Adresse IP
-label.IPsec.preshared.key=Cl\u00e9 partag\u00e9e IPsec
-label.ipv4.cidr=CIDR IPv4
-label.ipv4.dns1=DNS1 IPv4
-label.ipv4.dns2=DNS2 IPv4
-label.ipv4.end.ip=IP fin IPv4
-label.ipv4.gateway=Passerelle IPv4
-label.ipv4.netmask=Masque de r\u00e9seau IPv4
-label.ipv4.start.ip=IP d\u00e9but IPv4
-label.ipv6.address=Adresse IPv6
-label.ipv6.CIDR=CIDR IPv6
-label.ipv6.dns1=DNS1 IPv6
-label.ipv6.dns2=DNS2 IPv6
-label.ipv6.end.ip=IP fin IPv6
-label.ipv6.gateway=Passerelle IPv6
-label.ipv6.start.ip=IP d\u00e9but IPv6
-label.iscsi=iSCSI
-label.is.default=Est par d\u00e9faut
-label.iso.boot=D\u00e9marrage par ISO
-label.iso=ISO
-label.isolated.networks=R\u00e9seaux isol\u00e9s
-label.isolation.method=Isolation
-label.isolation.mode=Mode d\\'isolation
-label.isolation.uri=URI d\\'isolation
-label.is.redundant.router=Redondant
-label.is.shared=Est partag\u00e9
-label.is.system=Est Syst\u00e8me
-label.item.listing=Liste des \u00e9l\u00e9ments
-label.japanese.keyboard=Clavier japonais
-label.keep.colon=Conserver \:
-label.keep=Conserver
-label.keyboard.language=Langage clavier
-label.keyboard.type=Type de clavier
-label.key=Clef
-label.kvm.traffic.label=Libell\u00e9 trafic KVM
-label.label=Libell\u00e9
-label.lang.arabic=Arabe
-label.lang.brportugese=Portuguais Br\u00e9sil
-label.lang.catalan=Catalan
-label.lang.chinese=Chinois (simplifi\u00e9)
-label.lang.dutch=N\u00e9erlandais
-label.lang.english=Anglais
-label.lang.french=Fran\u00e7ais
-label.lang.german=Allemand
-label.lang.hungarian=Hongrois
-label.lang.italian=Italien
-label.lang.japanese=Japonais
-label.lang.korean=Cor\u00e9en
-label.lang.norwegian=Norv\u00e9gien
-label.lang.polish=Polonais
-label.lang.russian=Russe
-label.lang.spanish=Espagnol
-label.last.disconnected=Derni\u00e8re D\u00e9connexion
-label.lastname.lower=nom
-label.last.name=Nom
-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.leastconn=Le moins de connexions
-label.lb.algorithm.roundrobin=Cyclique
-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.link.type=Type
-label.ldap.port=Port LDAP
-label.level=Niveau
-label.link.domain.to.ldap=Lien Domaine vers LDAP
-label.linklocal.ip=Adresse IP lien local
-label.load.balancer=R\u00e9partiteur de charge
-label.load.balancer.type=Type R\u00e9partiteur de charge
-label.load.balancing.policies=R\u00e8gles de r\u00e9partition de charge
-label.load.balancing=R\u00e9partition de charge
-label.loading=Chargement en cours
-label.local.file=Fichier local
-label.local=Local
-label.local.storage.enabled=Activer le stockage local pour les VMs Utilisateurs
-label.local.storage.enabled.system.vms=Activer le stockage local pour les VMs Syst\u00e8mes
-label.local.storage=Stockage local
-label.login=Connexion
-label.logout=D\u00e9connexion
-label.lun=LUN
-label.LUN.number=N\u00b0 LUN
-label.lxc.traffic.label=Libell\u00e9 trafic LXC
-label.make.project.owner=Devenir propri\u00e9taire du projet
-label.make.redundant=Rendre redondant
-label.managed=G\u00e9r\u00e9
-label.manage=G\u00e9r\u00e9
-label.management=Administration
-label.management.ips=Adresses IP de gestion
-label.management.server=Serveur de gestion
-label.manage.resources=G\u00e9rer les ressources
-label.max.cpus=Nombre coeurs CPU max.
-label.max.guest.limit=Nombre maximum d\\'invit\u00e9s
-label.maximum=Maximum
-label.max.instances=Instance Max.
-label.max.memory=M\u00e9moire max. (Mo)
-label.max.networks=R\u00e9seaux Max.
-label.max.primary.storage=Principal max. (Go)
-label.max.public.ips=Max. IP publiques
-label.max.secondary.storage=Secondaire max. (Go)
-label.max.snapshots=Max instantan\u00e9es
-label.max.templates=Max. mod\u00e8les
-label.max.vms=Max. VMs utilisateur
-label.max.volumes=Max. volumes
-label.max.vpcs=Max. VPCs
-label.may.continue=Vous pouvez continuer.
-label.md5.checksum=Empreinte MD5
-label.memory.allocated=M\u00e9moire allou\u00e9e
-label.memory.limits=Limites m\u00e9moire (Mo)
-label.memory.mb=M\u00e9moire (en MB)
-label.memory=M\u00e9moire (en Mo)
-label.memory.total=M\u00e9moire totale
-label.memory.used=M\u00e9moire utilis\u00e9e
-label.menu.accounts=Comptes
-label.menu.alerts=Alertes
-label.menu.all.accounts=Tous les comptes
-label.menu.all.instances=Toutes les instances
-label.menu.community.isos=ISO de la communaut\u00e9
-label.menu.community.templates=Mod\u00e8les de la communaut\u00e9
-label.menu.configuration=Configuration
-label.menu.dashboard=Tableau de bord
-label.menu.destroyed.instances=Instances d\u00e9truites
-label.menu.disk.offerings=Offres de Disque
-label.menu.domains=Domaines
-label.menu.events=\u00c9v\u00e9nements
-label.menu.featured.isos=ISOs Sponsoris\u00e9es
-label.menu.featured.templates=Mod\u00e8les sponsoris\u00e9s
-label.menu.global.settings=Param\u00e8tres globaux
-label.menu.infrastructure=Infrastructure
-label.menu.instances=Instances
-label.menu.ipaddresses=Adresses IP
-label.menu.isos=ISOs
-label.menu.my.accounts=Mes comptes
-label.menu.my.instances=Mes instances
-label.menu.my.isos=Mes ISOs
-label.menu.my.templates=Mes mod\u00e8les
-label.menu.network.offerings=Offres de R\u00e9seau
-label.menu.network=R\u00e9seau
-label.menu.physical.resources=Ressources physiques
-label.menu.regions=R\u00e9gions
-label.menu.running.instances=Instances actives
-label.menu.security.groups=Groupes de s\u00e9curit\u00e9
-label.menu.service.offerings=Offres de Service
-label.menu.snapshots=Instantan\u00e9s
-label.menu.sshkeypair=Bi-cl\u00e9 SSH
-label.menu.stopped.instances=Instances Arr\u00eat\u00e9es
-label.menu.storage=Stockage
-label.menu.system.service.offerings=Offres de Syst\u00e8me
-label.menu.system=Syst\u00e8me
-label.menu.system.vms=\ VMs Syst\u00e8mes
-label.menu.templates=Mod\u00e8les
-label.menu.virtual.appliances=Appliances Virtuelles
-label.menu.virtual.resources=Ressources Virtuelles
-label.menu.volumes=Volumes
-label.menu.vpc.offerings=Offres de VPC
-label.metrics.allocated=Allou\u00e9
-label.metrics.clusters=Clusters
-label.metrics.cpu.allocated=Allocation CPU
-label.metrics.cpu.max.dev=\u00c9cart
-label.metrics.cpu.total=Total
-label.metrics.cpu.usage=Util. CPU
-label.metrics.cpu.used.avg=Utilis\u00e9
-label.metrics.disk.allocated=Allou\u00e9
-label.metrics.disk=Disque
-label.metrics.disk.iops.total=IOPS
-label.metrics.disk.read=Lecture
-label.metrics.disk.size=Capacit\u00e9
-label.metrics.disk.storagetype=Type
-label.metrics.disk.total=Total
-label.metrics.disk.unallocated=Non allou\u00e9
-label.metrics.disk.usage=Util. Disque
-label.metrics.disk.used=Utilis\u00e9
-label.metrics.disk.write=\u00c9criture
-label.metrics.hosts=H\u00f4tes
-label.metrics.memory.allocated=Allocation M\u00e9m.
-label.metrics.memory.max.dev=\u00c9cart
-label.metrics.memory.total=Total
-label.metrics.memory.usage=Util. M\u00e9m.
-label.metrics.memory.used.avg=Utilis\u00e9
-label.metrics=M\u00e9triques
-label.metrics.name=Nom
-label.metrics.network.read=Lecture
-label.metrics.network.usage=Util. R\u00e9seau
-label.metrics.network.write=\u00c9criture
-label.metrics.num.cpu.cores=Cores
-label.metrics.outofbandmanagementpowerstate=Status Alimentation
-label.metrics.property=Propri\u00e9t\u00e9
-label.metrics.scope=Port\u00e9e
-label.metrics.state=\u00c9tat
-label.metrics.storagepool=Pool de stockage
-label.metrics.vm.name=Nom VM
-label.migrate.instance.to.host=Migration de l\\'instance sur un autre h\u00f4te
-label.migrate.instance.to=Migrer l\\'instance vers
-label.migrate.instance.to.ps=Migration de l\\'instance sur un autre stockage primaire
-label.migrate.lb.vm=Migrer LB VM
-label.migrate.router.to=Migrer le routeur vers
-label.migrate.systemvm.to=Migrer la VM syst\u00e8me vers
-label.migrate.to.host=Migrer vers un h\u00f4te
-label.migrate.to.storage=Migrer vers un stockage
-label.migrate.volume.to.primary.storage=Migration du volume vers un autre stockage primaire
-label.migrate.volume=Volume Migr\u00e9
-label.minimum=Minimum
-label.min.instances=Instances Min.
-label.min.past.the.hr=min ap. l\\'heure
-label.minute.past.hour=minute(s) apr\u00e8s l\\'heure
-label.minutes.past.hour=minute(s) apr\u00e8s l\\'heure
-label.mode=Mode
-label.monday=Lundi
-label.monthly=Mensuel
-label.more.templates=Plus de mod\u00e8les
-label.move.down.row=Descendre d\\'un niveau
-label.move.to.bottom=D\u00e9placer en bas
-label.move.to.top=Placer au dessus
-label.move.up.row=Monter d\\'un niveau
-label.my.account=Mon compte
-label.my.network=Mon r\u00e9seau
-label.my.templates=Mes mod\u00e8les
-label.name.lower=name
-label.name=Nom
-label.name.optional=Nom (optionnel)
-label.na=N/A
-label.nat.port.range=Plage de port NAT
-label.netmask=Masque de r\u00e9seau
-label.netscaler.details=D\u00e9tails NetScaler
-label.netScaler=NetScaler
-label.network.ACL=R\u00e8gles d\\'acc\u00e8s r\u00e9seau ACL
-label.network.ACLs=R\u00e8gles d\\'acc\u00e8s r\u00e9seau
-label.network.ACL.total=Total R\u00e8gles d\\'acc\u00e8s r\u00e9seau
-label.network.addVM=Ajouter r\u00e9seau \u00e0 la VM
-label.network.cidr=CIDR r\u00e9seau
-label.network.desc=Description r\u00e9seau
-label.network.details=D\u00e9tails r\u00e9seau
-label.network.device.type=Type d\\'\u00e9quipement r\u00e9seau
-label.network.device=\u00c9quipement R\u00e9seau
-label.network.domain=Nom de domaine
-label.network.domain.text=Domaine r\u00e9seau
-label.network.id=ID r\u00e9seau
-label.networking.and.security=R\u00e9seau et s\u00e9curit\u00e9
-label.network.label.display.for.blank.value=Utiliser la passerelle par d\u00e9faut
-label.network.limits=Limites r\u00e9seau
-label.network.name=Nom du r\u00e9seau
-label.network.offering.details=D\u00e9tails offre de r\u00e9seau
-label.network.offering.display.text=Texte affich\u00e9 Offre R\u00e9seau
-label.network.offering.id=ID Offre R\u00e9seau
-label.network.offering.name=Nom Offre R\u00e9seau
-label.network.offering=Offre de R\u00e9seau
-label.network.rate=D\u00e9bit R\u00e9seau
-label.network.rate.megabytes=D\u00e9bit r\u00e9seau (Mo/s)
-label.network.read=Lecture r\u00e9seau
-label.network=R\u00e9seau
-label.network.service.providers=Fournisseurs de service r\u00e9seau
-label.networks=R\u00e9seaux
-label.network.type=Type de r\u00e9seau
-label.network.write=\u00c9criture r\u00e9seau
-label.new=Nouveau
-label.new.password=Nouveau mot de passe
-label.new.project=Nouveau projet
-label.new.ssh.key.pair=Nouvelle bi-cl\u00e9 SSH
-label.new.vm=Nouvelle VM
-label.next=Suivant
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nfs.server=Serveur NFS
-label.nfs.storage=Stockage NFS
-label.nic.adapter.type=Type de carte r\u00e9seau
-label.nicira.controller.address=Adresse du contr\u00f4leur
-label.nicira.l2gatewayserviceuuid=Uuid du service passerelle L2
-label.nicira.l3gatewayserviceuuid=Uuid du service passerelle L3
-label.nicira.nvp.details=D\u00e9tails Nicira NVP
-label.nicira.transportzoneuuid=Uuid de la Zone Transport
-label.nics=Cartes NIC
-label.no.actions=Aucune action disponible
-label.no.alerts=Aucune alerte r\u00e9cente
-label.no.data=Aucune donn\u00e9e
-label.no.errors=Aucune erreur r\u00e9cente
-label.no.grouping=(pas de groupement)
-label.no.isos=Aucun ISOs disponible
-label.no.items=Aucun \u00e9l\u00e9ment disponible
-label.none=Aucun
-label.no=Non
-label.no.security.groups=Aucun groupe de s\u00e9curit\u00e9 disponible
-label.not.found=Introuvable
-label.no.thanks=Non merci
-label.notifications=Messages
-label.number.of.clusters=Nombre de clusters
-label.number.of.cpu.sockets=Le nombre de sockets CPU
-label.number.of.hosts=Nombre d\\'H\u00f4tes
-label.number.of.pods=Nombre de Pods
-label.number.of.system.vms=Nombre de VM Syst\u00e8me
-label.number.of.virtual.routers=Nombre de routeurs virtuels
-label.number.of.zones=Nombre de zones
-label.num.cpu.cores=Nombre de c\u0153urs
-label.numretries=Nombre de tentatives
-label.ocfs2=OCFS2
-label.offer.ha=Offrir la haute disponibilit\u00e9
-label.of.month=du mois
-label.ok=OK
-label.opendaylight.controller=Contr\u00f4leur OpenDaylight
-label.opendaylight.controllerdetail=D\u00e9tails Contr\u00f4leur OpenDaylight
-label.opendaylight.controllers=Contr\u00f4leurs OpenDaylight
-label.openDaylight=OpenDaylight
-label.operator=Op\u00e9rateur
-label.optional=Facultatif
-label.order=Ordre
-label.os.preference=Pr\u00e9f\u00e9rence OS
-label.os.type=Type du OS
-label.other=Autre
-label.outofbandmanagement.action=Action
-label.outofbandmanagement.action.issue=Probl\u00e8me dans l\\'allumage via la gestion du flux administration 
-label.outofbandmanagement.address=Adresse
-label.outofbandmanagement.changepassword=Modifier le mot de passe du flux d\\'administration
-label.outofbandmanagement.configure=Configurer la gestion du flux d\\'administration
-label.outofbandmanagement.disable=D\u00e9sactiver la gestion du flux d\\'administration
-label.outofbandmanagement.driver=Pilote
-label.outofbandmanagement.enable=Activer la gestion du flux d\\'administration
-label.outofbandmanagement=Gestion flux administration
-label.outofbandmanagement.password=Mot de passe
-label.outofbandmanagement.port=Port
-label.outofbandmanagement.reenterpassword=Re-saisir Mot de passe
-label.outofbandmanagement.username=Identifiant
-label.override.guest.traffic=Remplacer Trafic-invit\u00e9
-label.override.public.traffic=Remplacer Trafic-public
-label.ovm3.cluster=Cluster natif
-label.ovm3.pool=Pool natif
-label.ovm3.traffic.label=Libell\u00e9 trafic OVM3
-label.ovm3.vip=IP Ma\u00eetre Vip
-label.ovm.traffic.label=Libell\u00e9 trafic OVM
-label.ovs=OVS
-label.owned.public.ips=Adresses IP Publiques d\u00e9tenues
-label.owner.account=Propri\u00e9taire
-label.owner.domain=Propri\u00e9taire
-label.palo.alto.details=D\u00e9tails Palo Alto
-label.PA.log.profile=Profil Journal Palo Alto
-label.PA=Palo Alto
-label.parent.domain=Parent du Domaine
-label.passive=Passif
-label.password.enabled=Mot de passe activ\u00e9
-label.password.lower=mot de passe
-label.password=Mot de passe
-label.password.reset.confirm=Le mot de passe a \u00e9t\u00e9 r\u00e9-initialiser en
-label.path=Chemin
-label.PA.threat.profile=Profil menace Palo Alto
-label.perfect.forward.secrecy=Confidentialit\u00e9 persistante
-label.permission=Autorisation
-label.persistent=Persistant
-label.physical.network.ID=Identifiant du r\u00e9seau physique
-label.physical.network.name=Nom r\u00e9seau physique
-label.physical.network=R\u00e9seau physique
-label.PING.CIFS.password=Mot de passe CIFS PING
-label.PING.CIFS.username=Identifiant CIFS PING
-label.PING.dir=R\u00e9pertoire PING
-label.ping.path=Chemin Ping
-label.PING.storage.IP=IP stockage PING
-label.planner.mode=Mode planification
-label.please.complete.the.following.fields=Veuillez remplir les champs suivants
-label.please.specify.netscaler.info=Renseigner les informations sur le Netscaler
-label.please.wait=Patientez s\\'il vous plait
-label.plugin.details=D\u00e9tails extension
-label.plugins=Extensions
-label.pod.dedicated=Pod D\u00e9di\u00e9
-label.pod.name=Nom du pod
-label.pod=Pod
-label.pods=Pods
-label.polling.interval.sec=Intervalle d\\'appel (en sec)
-label.portable.ip=IP Portable
-label.portable.ip.range.details=D\u00e9tails Plages IP portables
-label.portable.ip.ranges=Plages IP portables
-label.portable.ips=IPs portables
-label.port.forwarding.policies=R\u00e8gles de transfert de port
-label.port.forwarding=Redirection de port
-label.port=Port
-label.port.range=Plage de ports
-label.powerstate=Status Alimentation
-label.PreSetup=PreSetup
-label.previous=Retour
-label.prev=Pr\u00e9c\u00e9dent
-label.primary.allocated=Stockage primaire allou\u00e9
-label.primary.network=R\u00e9seau principal
-label.primary.storage.count=Groupes de stockage primaire
-label.primary.storage.limits=Limites stockage primaire (Go)
-label.primary.storage=Stockages primaires
-label.primary.used=Stockage primaire utilis\u00e9
-label.private.Gateway=Passerelle priv\u00e9e
-label.private.interface=Interface priv\u00e9e
-label.private.ip=Adresse IP Priv\u00e9e
-label.private.ip.range=Plage d\\'adresses IP Priv\u00e9es
-label.private.ips=Adresses IP Priv\u00e9es
-label.private.key=Cl\u00e9 priv\u00e9e
-label.privatekey=Cl\u00e9 priv\u00e9e PKCS\#8
-label.private.network=R\u00e9seau priv\u00e9
-label.private.port=Port priv\u00e9
-label.private.zone=Zone Priv\u00e9e
-label.profile=Profil
-label.project.dashboard=Tableau de bord projet
-label.project.id=ID projet
-label.project.invite=Inviter sur le projet
-label.project.name=Nom du projet
-label.project=Projet
-label.projects=Projets
-label.project.view=Vue projet
-label.protocol.number=Num\u00e9ro Protocole
-label.protocol=Protocole
-label.provider=Fournisseur
-label.providers=Fournisseurs
-label.public.interface=Interface publique
-label.public.ip=Adresse IP publique
-label.public.ips=Adresses IP publiques
-label.public.key=Cl\u00e9 publique
-label.public.lb=R\u00e9partiteur public
-label.public.load.balancer.provider=Fournisseur r\u00e9partition de charge public
-label.public.network=R\u00e9seau public
-label.public.port=Port public
-label.public=Publique
-label.public.traffic=Trafic public
-label.public.traffic.vswitch.name=Nom Trafic Public vSwitch
-label.public.traffic.vswitch.type=Type Trafic Public vSwitch
-label.public.zone=Zone publique
-label.purpose=R\u00f4le
-label.Pxe.server.type=Serveur PXE
-label.qos.type=Type de QoS
-label.quickview=Aper\u00e7u
-label.quiesce.vm=Mettre en veille VM
-label.quiet.time.sec=Quiet Time (en sec)
-label.quota.add.credits=Ajouter Cr\u00e9dits
-label.quota.balance=Balance
-label.quota.configuration=Configuration Quota
-label.quota.configure=Configurer Quota
-label.quota.credit=Cr\u00e9dit
-label.quota.credits=Cr\u00e9dits
-label.quota.date=Date
-label.quota.dates=Mettre \u00e0 jour Dates
-label.quota.description=Description Quota
-label.quota.email.body=Corps de message
-label.quota.email.lastupdated=Derni\u00e8re mise \u00e0 jour
-label.quota.email.subject=Sujet
-label.quota.email.template=Mod\u00e8le d\\'email
-label.quota.enddate=Date fin
-label.quota.endquota=Fin Quota
-label.quota.enforcequota=Forcer Quota
-label.quota.fullsummary=Tous les comptes
-label.quota.minbalance=Balance Min.
-label.quota.remove=Supprimer Quota
-label.quota.startdate=Date d\u00e9but
-label.quota.startquota=D\u00e9but Quota
-label.quota.statement.balance=Balance Quota
-label.quota.statement.bydates=Relev\u00e9
-label.quota.statement.quota=Utilisation Quota
-label.quota.statement=Relev\u00e9
-label.quota.statement.tariff=Tarif Quota
-label.quota.state=\u00c9tat
-label.quota.summary=R\u00e9capitulatif
-label.quota.tariff.edit=Modifier Tarif
-label.quota.tariff.effectivedate=Date d\\'effet
-label.quota.tariff=Tarif
-label.quota.tariff.value=Valeur Tarif
-label.quota.total=Total
-label.quota.totalusage=Usage Total
-label.quota.type.name=Type Usage
-label.quota.type.unit=Unit\u00e9 d\\'usage
-label.quota.usage=Consommation Quota
-label.quota.value=Valeur Quota
-label.rbd.id=Utilisateur Cephx
-label.rbd.monitor=Superviseur Ceph
-label.rbd.pool=Pool Ceph
-label.rbd=RBD
-label.rbd.secret=Secret Cephx
-label.reboot=Red\u00e9marrer
-label.recent.errors=Erreurs r\u00e9centes
-label.recover.vm=Restaurer VM
-label.redundant.router.capability=Router redondant
-label.redundant.router=Routeur redondant
-label.redundant.state=\u00c9tat de la redondance
-label.redundant.vpc=VPC Redondant
-label.refresh=Actualiser
-label.refresh.blades=Rafra\u00eechir Lames
-label.region.details=D\u00e9tails R\u00e9gion
-label.regionlevelvpc=VPC niveau r\u00e9gion
-label.region=R\u00e9gion
-label.reinstall.vm=R\u00e9-installer VM
-label.related=Connexes
-label.release.account=Lib\u00e9rer compte
-label.release.account.lowercase=lib\u00e9rer compte
-label.release.dedicated.cluster=Lib\u00e9ration du cluster d\u00e9die
-label.release.dedicated.host=Lib\u00e9ration de l\\'h\u00f4te d\u00e9di\u00e9
-label.release.dedicated.pod=Lib\u00e9ration du pod d\u00e9di\u00e9
-label.release.dedicated.vlan.range=Lib\u00e9rer plage VLAN d\u00e9di\u00e9e
-label.release.dedicated.zone=Lib\u00e9rer la zone d\u00e9di\u00e9e
-label.remind.later=Rappeler moi plus tard
-label.remove.ACL=Supprimer une r\u00e8gle ACL
-label.remove.egress.rule=Supprimer la r\u00e8gle sortante
-label.remove.from.load.balancer=Supprimer l\\'instance du r\u00e9partiteur de charge
-label.remove.ingress.rule=Supprimer la r\u00e8gle entrante
-label.remove.ip.range=Supprimer la plage IP
-label.remove.ldap=Supprimer LDAP
-label.remove.network.offering=Supprimer Offre de r\u00e9seau
-label.remove.pf=Supprimer la r\u00e8gle de transfert de port
-label.remove.project.account=Supprimer le compte projet
-label.remove.region=Supprimer r\u00e9gion
-label.remove.rule=Supprimer la r\u00e8gle
-label.remove.ssh.key.pair=Supprimer bi-cl\u00e9 SSH
-label.remove.static.nat.rule=Supprimer le NAT statique
-label.remove.static.route=Supprimer une route statique
-label.remove.this.physical.network=Supprimer ce r\u00e9seau physique
-label.remove.tier=Supprimer le tiers
-label.remove.vm.from.lb=Supprimer la VM de la r\u00e8gle de r\u00e9partition de charge
-label.remove.vm.load.balancer=Supprimer VM du r\u00e9partiteur de charge
-label.remove.vmware.datacenter=Supprimer un datacenter VMware
-label.remove.vpc.offering=Supprimer offre VPC
-label.remove.vpc=Supprimer le VPC
-label.removing=Suppression
-label.removing.user=Retrait de l\\'utilisateur
-label.reource.id=ID Ressource
-label.replace.acl.list=Remplacer Liste ACL
-label.replace.acl=Remplacer ACL
-label.required=Requis
-label.requires.upgrade=Mise \u00e0 jour n\u00e9cessaire
-label.reserved.ip.range=Plage IP r\u00e9serv\u00e9e
-label.reserved.system.gateway=Passerelle r\u00e9serv\u00e9e Syst\u00e8me
-label.reserved.system.ip=Adresse IP Syst\u00e8me r\u00e9serv\u00e9e
-label.reserved.system.netmask=Masque de sous-r\u00e9seau r\u00e9serv\u00e9 Syst\u00e8me
-label.reset.ssh.key.pair.on.vm=R\u00e9-initialiser bi-cl\u00e9 sur la VM
-label.reset.ssh.key.pair=R\u00e9-initialiser bi-cl\u00e9 SSH
-label.resetVM=R\u00e9-initialiser VM
-label.reset.VPN.connection=R\u00e9-initialiser la connexion VPN
-label.resize.new.offering.id=Nouvelle Offre
-label.resize.new.size=Nouvelle Taille (Go)
-label.resize.shrink.ok=R\u00e9duction OK
-label.resource.limit.exceeded=Limite ressource d\u00e9pass\u00e9e
-label.resource.limits=Limite des ressources
-label.resource.name=Nom Ressource
-label.resource=Ressource
-label.resources=Ressources
-label.resource.state=\u00c9tat des ressources
-label.response.timeout.in.sec=D\u00e9lai d\\'attente de r\u00e9ponse (sec)
-label.restart.network=Red\u00e9marrage du r\u00e9seau
-label.restart.required=Red\u00e9marrage n\u00e9cessaire
-label.restart.vpc=Red\u00e9marrer le VPC
-label.restore=Restaurer
-label.retry.interval=Interval du nouvel essai
-label.review=Revoir
-label.revoke.project.invite=R\u00e9voquer l\\'invitation
-label.role=R\u00f4le
-label.roles=R\u00f4les
-label.roletype=Type R\u00f4le
-label.root.certificate=Certificat racine
-label.root.disk.controller=Contr\u00f4leur de disque racine
-label.root.disk.offering=Offre de disque racine
-label.root.disk.size=Taille du disque principal (en Go)
-label.router.vm.scaled.up=VM Routeur agrandi
-label.routing.host=H\u00f4te de routage
-label.routing=Routage
-label.rule.number=Num\u00e9ro r\u00e8gle
-label.rule=R\u00e8gle
-label.rules=R\u00e8gles
-label.running.vms=VMs actives
-label.s3.access_key=Cl\u00e9 d\\'Acc\u00e8s
-label.s3.bucket=Seau
-label.s3.connection_timeout=D\u00e9lai d\\'expiration de connexion
-label.s3.endpoint=Terminaison
-label.s3.max_error_retry=Nombre d\\'essai en erreur max.
-label.s3.nfs.path=Chemin NFS S3
-label.s3.nfs.server=Serveur NFS S3
-label.s3.secret_key=Cl\u00e9 priv\u00e9e
-label.s3.socket_timeout=D\u00e9lai d\\'expiration de la socket
-label.s3.use_https=Utiliser HTTPS
-label.saml.enable=Autoriser SAML SSO
-label.saml.entity=Fournisseur d\\'identit\u00e9
-label.saturday=Samedi
-label.save.and.continue=Enregistrer et continuer
-label.save.changes=Sauver changements
-label.save=Sauvegarder
-label.saving.processing=Sauvegarde en cours...
-label.scaledown.policy=Strat\u00e9gie ScaleDown
-label.scale.up.policy=POLITIQUE D\\'AGRANDISSEMENT
-label.scaleup.policy=Strat\u00e9gie ScaleUp
-label.scope=Port\u00e9e
-label.search=Rechercher
-label.secondary.ips=IPs secondaires
-label.secondary.isolated.vlan.id=VLAN ID isol\u00e9 secondaire
-label.secondary.staging.store.details=D\u00e9tails Stockage Secondaire Interm\u00e9diaire
-label.secondary.staging.store=Stockage Secondaire Interm\u00e9diaire
-label.secondary.storage.count=Groupes de stockage secondaire
-label.secondary.storage.details=D\u00e9tails Stockage Secondaire
-label.secondary.storage.limits=Limites stockage secondaire (Go)
-label.secondary.storage=Stockages secondaires
-label.secondary.storage.vm=VM stockage secondaire
-label.secondary.used=Stockage secondaire utilis\u00e9
-label.secret.key=Cl\u00e9 priv\u00e9e
-label.security.group=Groupe de s\u00e9curit\u00e9
-label.security.group.name=Nom du groupe de s\u00e9curit\u00e9
-label.security.groups.enabled=Groupes de s\u00e9curit\u00e9 Activ\u00e9s
-label.security.groups=Groupes de s\u00e9curit\u00e9
-label.select.a.template=S\u00e9lectionner un mod\u00e8le
-label.select.a.zone=S\u00e9lectionner une zone
-label.select.instance=S\u00e9lectionner une instance
-label.select.instance.to.attach.volume.to=S\u00e9lectionner l\\'instance \u00e0 laquelle rattacher ce volume
-label.select.iso.or.template=S\u00e9lectionner un ISO ou un mod\u00e8le
-label.select.offering=S\u00e9lectionner une offre
-label.select.project=S\u00e9lectionner un projet
-label.select.region=S\u00e9lectionner r\u00e9gion
-label.select=S\u00e9lectionner
-label.select.template=S\u00e9lectionner Mod\u00e8le
-label.select.tier=S\u00e9lectionner le tiers
-label.select-view=S\u00e9lectionner la vue
-label.select.vm.for.static.nat=S\u00e9lectionner une VM pour le NAT statique
-label.sent=Envoy\u00e9
-label.server=Serveur
-label.service.capabilities=Fonctions disponibles
-label.service.offering.details=D\u00e9tails offre de service
-label.service.offering=Offre de Service
-label.services=Services
-label.service.state=\u00c9tat du service
-label.session.expired=Session expir\u00e9e
-label.set.default.NIC=D\u00e9finir NIC par d\u00e9faut
-label.settings=Param\u00e8tres
-label.setup=Configuration
-label.setup.network=Configurer R\u00e9seau
-label.setup.zone=Configurer Zone
-label.set.up.zone.type=Configurer le type de zone
-label.shared=En partage
-label.SharedMountPoint=Point de montage partag\u00e9
-label.show.advanced.settings=Voir param\u00e8tres avanc\u00e9s
-label.show.ingress.rule=Montrer la r\u00e8gle d\\'entr\u00e9e
-label.shutdown.provider=\u00c9teindre ce fournisseur
-label.simplified.chinese.keyboard=Clavier chinois simplifi\u00e9
-label.site.to.site.VPN=VPN Site-\u00e0-Site
-label.size=Capacit\u00e9
-label.skip.guide=J\\'ai d\u00e9j\u00e0 utilis\u00e9 CloudStack avant, passer ce tutoriel
-label.smb.domain=Domaine SMB
-label.smb.password=Mot de passe SMB
-label.smb.username=Identifiant SMB
-label.snapshot=Instantan\u00e9
-label.snapshot.limits=Limites d\\'instantan\u00e9s
-label.snapshot.name=Nom Instantan\u00e9
-label.snapshot.schedule=Configurer un instantan\u00e9 r\u00e9current
-label.snapshot.s=Instantan\u00e9s
-label.snapshots=Instantan\u00e9s
-label.SNMP.community=Communaut\u00e9 SNMP
-label.SNMP.port=Port SNMP
-label.sockets=Sockets CPU
-label.source.ip.address=Adresse IP source
-label.source.nat=NAT Source
-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
-label.SR.name=Nom du point de montage
-label.srx.details=D\u00e9tails SRX
-label.srx=SRX
-label.ssh.key.pair=Bi-cl\u00e9 SSH
-label.ssh.key.pair.details=D\u00e9tails bi-cl\u00e9 SSH
-label.ssh.key.pairs=Bi-cl\u00e9s SSH
-label.standard.us.keyboard=Clavier standard (US)
-label.start.IP=IP d\u00e9but plage
-label.start.lb.vm=D\u00e9marrer LB VM
-label.start.port=Port de d\u00e9but
-label.start.reserved.system.IP=Adresse IP de d\u00e9but r\u00e9serv\u00e9e Syst\u00e8me
-label.start.vlan=D\u00e9but VLAN
-label.start.vxlan=D\u00e9but VXLAN
-label.state=\u00c9tat
-label.static.nat.enabled=NAT statique activ\u00e9
-label.static.nat=NAT Statique
-label.static.nat.to=NAT Statique vers
-label.static.nat.vm.details=D\u00e9tails des NAT statique VM
-label.static.routes=Routes statiques
-label.statistics=Statistiques
-label.status=Statut
-label.step.1.title=\u00c9tape 1 \: <strong>S\u00e9lectionnez un mod\u00e8le</strong>
-label.step.1=\u00c9tape 1
-label.step.2.title=\u00c9tape 2 \: <strong>Offre de Service</strong>
-label.step.2=\u00c9tape 2
-label.step.3.title=\u00c9tape 3 \: <strong id\="step3_label">S\u00e9lectionnez une offre de service</strong>
-label.step.3=\u00c9tape 3
-label.step.4.title=\u00c9tape 4 \: <strong>R\u00e9seau</strong>
-label.step.4=\u00c9tape 4
-label.step.5.title=\u00c9tape 5 \: <strong>V\u00e9rification</strong>
-label.step.5=\u00c9tape 5
-label.stickiness=Fid\u00e9lit\u00e9
-label.stickiness.method=M\u00e9thode de fid\u00e9lit\u00e9
-label.sticky.cookie-name=Nom du cookie
-label.sticky.domain=Domaine
-label.sticky.expire=Expiration
-label.sticky.holdtime=Temps de pause
-label.sticky.indirect=Indirect
-label.sticky.length=Longueur
-label.sticky.mode=Mode
-label.sticky.name=Nom de fid\u00e9lit\u00e9
-label.sticky.nocache=Pas de cache
-label.sticky.postonly=Apr\u00e8s seulement
-label.sticky.prefix=Pr\u00e9fixe
-label.sticky.request-learn=Apprendre la requ\u00eate
-label.sticky.tablesize=Dimension tableau
-label.stop=Arr\u00eater
-label.stop.lb.vm=Arr\u00eater LB VM
-label.stopped.vms=VMs arr\u00eat\u00e9es
-label.storage.pool=Pool de stockage
-label.storage=Stockage
-label.storage.tags=\u00c9tiquettes de stockage
-label.storage.traffic=Trafic stockage
-label.storage.type=Type de stockage
-label.subdomain.access=Acc\u00e8s sous-domaine
-label.submit=Envoyer
-label.submitted.by=[Soumis par \: <span id\="submitted_by"></span>]
-label.succeeded=R\u00e9ussi
-label.sunday=Dimanche
-label.super.cidr.for.guest.networks=Super CIDR pour les r\u00e9seaux invit\u00e9s
-label.supported.services=Services support\u00e9s
-label.supported.source.NAT.type=Type de NAT support\u00e9
-label.supportsstrechedl2subnet=Sous-r\u00e9seau Streched L2 support\u00e9
-label.suspend.project=Suspendre projet
-label.switch.type=Type commutateur
-label.system.capacity=Capacit\u00e9 syst\u00e8me
-label.system.offering.for.router=Offre de Syst\u00e8me pour Routeur
-label.system.offering=Offre de Syst\u00e8me
-label.system.service.offering.details=D\u00e9tails offre de service syst\u00e8me
-label.system.service.offering=Offre de Service Syst\u00e8me
-label.system.vm.details=D\u00e9tails VM Syst\u00e8me
-label.system.vm.scaled.up=VM Syst\u00e8me agrandie
-label.system.vms=\ VMs Syst\u00e8mes
-label.system.vm.type=Type de VM syst\u00e8me
-label.system.vm=VM Syst\u00e8me
-label.system.wide.capacity=Capacit\u00e9 globale
-label.tagged=\u00c9tiquet\u00e9
-label.tag.key=Cl\u00e9 Tag
-label.tags=\u00c9tiquette
-label.tag.value=Valeur Tag
-label.target.iqn=Cible IQN
-label.task.completed=T\u00e2che termin\u00e9e
-label.template.limits=Limites de mod\u00e8le
-label.template=Mod\u00e8le
-label.TFTP.dir=R\u00e9pertoire TFTP
-label.tftp.root.directory=R\u00e9pertoire racine TFTP
-label.theme.default=Th\u00e8me par d\u00e9faut
-label.theme.grey=Personnalis\u00e9 - Gris
-label.theme.lightblue=Personnalis\u00e9 - Bleu clair
-label.threshold=Seuil
-label.thursday=Jeudi
-label.tier.details=D\u00e9tails du tiers
-label.tier=Tiers
-label.time.colon=Heure \:
-label.timeout=D\u00e9lai d\\'expiration
-label.timeout.in.second = Timeout (secondes)
-label.time=Temps
-label.timezone.colon=Fuseau horaire \:
-label.time.zone=Fuseau horaire
-label.timezone=Fuseau horaire
-label.token=Jeton unique
-label.total.cpu=Capacit\u00e9 totale en CPU
-label.total.CPU=Capacit\u00e9 totale en CPU
-label.total.hosts=Total H\u00f4tes
-label.total.memory=Total m\u00e9moire
-label.total.of.ip=Total adresses IP
-label.total.of.vm=Total VMs
-label.total.storage=Total stockage
-label.total.virtual.routers=Total des Routeurs virtuels
-label.total.virtual.routers.upgrade=Total des routeurs virtuels avec mise \u00e0 niveau n\u00e9cessaire
-label.total.vms=Nombre total de VMs
-label.traffic.label=Libell\u00e9 trafic
-label.traffic.types=Types de trafic
-label.traffic.type=Type Trafic
-label.tuesday=Mardi
-label.type.id=ID du Type
-label.type.lower=type
-label.type=Type
-label.ucs=UCS
-label.uk.keyboard=Clavier UK
-label.unavailable=Indisponible
-label.unhealthy.threshold=Seuil non tol\u00e9r\u00e9
-label.unlimited=Illimit\u00e9
-label.untagged=Non Tagg\u00e9
-label.update.project.resources=Mettre \u00e0 jour les ressources du projet
-label.update.ssl.cert= Certificat SSL
-label.update.ssl= Certificat SSL
-label.updating=Mise \u00e0 jour
-label.upgrade.required=Une mise \u00e0 jour est n\u00e9cessaire
-label.upgrade.router.newer.template=Mette \u00e0 jour le routeur pour utiliser le mod\u00e8le le plus r\u00e9cent
-label.upload.from.local=T\u00e9l\u00e9verser depuis Local
-label.upload.template.from.local=T\u00e9l\u00e9verser Mod\u00e8le depuis Local
-label.upload=T\u00e9l\u00e9verser
-label.upload.volume.from.local=T\u00e9l\u00e9verser Volume depuis Local
-label.upload.volume.from.url=T\u00e9l\u00e9verser volume depuis URL
-label.upload.volume=T\u00e9l\u00e9verser un volume
-label.url=URL
-label.usage.interface=Interface Utilisation
-label.usage.sanity.result=R\u00e9sultat de sant\u00e9 Usage
-label.usage.server=Serveur d\\'Usage
-label.usage.type=Type Usage
-label.usage.unit=Unit\u00e9
-label.used=Utilis\u00e9
-label.user.data=Donn\u00e9es utilisateur
-label.user.details=D\u00e9tails utilisateur
-label.username=Identifiant
-label.username.lower=identifiant
-label.users=Utilisateurs
-label.user=Utilisateur
-label.user.vm=Utilisateur VM
-label.use.vm.ips=Utiliser IP VMs
-label.use.vm.ip=Utiliser IP VM \:
-label.value=Valeur
-label.vcdcname=Nom du DC vCenter
-label.vcenter.cluster=Cluster vCenter
-label.vcenter.datacenter=Datacenter vCenter
-label.vcenter.datastore=Datastore vCenter
-label.vcenter.host=H\u00f4te vCenter
-label.vcenter.password=Mot de passe vCenter
-label.vcenter.username=Identifiant vCenter
-label.vcenter=vcenter
-label.vcipaddress=Adresse IP vCenter
-label.version=Version
-label.vgpu.max.resolution=R\u00e9solution Max.
-label.vgpu.max.vgpu.per.gpu=vGPUs par GPU
-label.vgpu.remaining.capacity=Capacit\u00e9 restante
-label.vgpu.type=vGPU type
-label.vgpu=VGPU
-label.vgpu.video.ram=M\u00e9moire Vid\u00e9o
-label.view.all=Voir tout
-label.view.console=Voir la console
-label.viewing=Consultation en cours
-label.view.more=Voir plus
-label.view.secondary.ips=Voir IPs secondaires
-label.view=Voir
-label.virtual.appliance=Appliance Virtuelle
-label.virtual.appliance.details=D\u00e9tails Appliance Virtuelle
-label.virtual.appliances=Appliances Virtuelles
-label.virtual.machine=Machine Virtuelle
-label.virtual.machines=Machines virtuelles
-label.virtual.networking=Mise en r\u00e9seau virtuelle
-label.virtual.network=R\u00e9seau virtuel
-label.virtual.router=Routeur Virtuel
-label.virtual.routers.group.account=Routeurs virtuels group\u00e9s par compte
-label.virtual.routers.group.cluster=Routeurs virtuels group\u00e9s par cluster
-label.virtual.routers.group.pod=Routeurs virtuels group\u00e9s par pod
-label.virtual.routers.group.zone=Routeurs virtuels group\u00e9s par zone
-label.virtual.routers=Routeurs virtuels
-label.vlan.id=ID VLAN/VNI
-label.vlan.only=VLAN
-label.vlan.range.details=D\u00e9tails plage VLAN
-label.vlan.range=Plage du VLAN
-label.vlan.ranges=Plage(s) VLAN
-label.vlan=VLAN/VNI
-label.vlan.vni.range=Plage du VLAN
-label.vlan.vni.ranges=Plage(s) VLAN/VNI
-label.vm.add=Ajouter une instance
-label.vm.destroy=D\u00e9truire
-label.vm.display.name=Nom commun VM
-label.VMFS.datastore=Magasin de donn\u00e9es VMFS
-label.vmfs=VMFS
-label.vm.id=ID VM
-label.vm.ip=Adresse IP VM
-label.vm.name=Nom VM
-label.vm.password=Le mot de passe de cette VM est
-label.vm.reboot=Red\u00e9marrer
-label.VMs.in.tier=Machines virtuelles dans le tiers
-label.vmsnapshot.current=estCourant
-label.vmsnapshot=Instantan\u00e9s VM
-label.vmsnapshot.memory=M\u00e9more instantan\u00e9
-label.vmsnapshot.parentname=Parent
-label.vmsnapshot.type=Type
-label.vm.start=D\u00e9marrer
-label.vm.state=\u00c9tat VM
-label.vm.stop=Arr\u00eater
-label.vms=VMs
-label.vmware.datacenter.id=ID datacenter VMware
-label.vmware.datacenter.name=Nom datacenter VMware
-label.vmware.datacenter.vcenter=vcenter datacenter VMware
-label.vmware.traffic.label=Libell\u00e9 trafic VMware
-label.vnet.id=ID VLAN/VNI
-label.vnet=VLAN/VNI
-label.vnmc.devices=\u00c9quipement VNMC
-label.vnmc=VNMC
-label.volatile=Volatile
-label.volgroup=Groupe de Volume
-label.volume.details=D\u00e9tails du volume
-label.volume.limits=Limites des volumes
-label.volume.migrated=Volume migr\u00e9
-label.volume.name=Nom du volume
-label.volumes=Volumes
-label.volume=Volume
-label.vpc.distributedvpcrouter=Routeur VPC Distribu\u00e9
-label.vpc.id=ID VPC
-label.VPC.limits=Limites VPC
-label.vpc.offering.details=D\u00e9tails offre VPC
-label.vpc.offering=Offre de VPC
-label.vpc.router.details=D\u00e9tails Routeur VPC
-label.VPC.router.details=D\u00e9tails routeur VPC
-label.vpc.supportsregionlevelvpc=VPC niveau R\u00e9gion support\u00e9
-label.vpc.virtual.router=Routeur virtuel VPC
-label.vpc=VPC
-label.VPN.connection=Connexion VPN
-label.vpn.customer.gateway=Passerelle VPN client
-label.VPN.customer.gateway=Passerelle VPN client
-label.vpn.force.encapsulation=Force l\\'encapsulation UDP des paquets ESP
-label.VPN.gateway=Passerelle VPN
-label.vpn=VPN
-label.vsmctrlvlanid=\ ID VLAN Contr\u00f4le
-label.vsmpktvlanid=ID VLAN Paquet
-label.vsmstoragevlanid=VLAN ID Stockage
-label.vsphere.managed=G\u00e9r\u00e9e par vSphere
-label.vswitch.name=Nom vSwitch
-label.vSwitch.type=Type vSwitch
-label.vxlan.id=VXLAN ID
-label.vxlan.range=Plage du VXLAN
-label.vxlan=VXLAN
-label.waiting=En attente
-label.warn=Avertissement
-label.warning=Avertissement
-label.warn.upper=WARN
-label.wednesday=Mercredi
-label.weekly=Hebdomadaire
-label.welcome=Bienvenue
-label.welcome.cloud.console=Bienvenue dans la Console d\\'Administration
-label.what.is.cloudstack=Qu\\'est-ce-que CloudStack&\#8482; ?
-label.xenserver.tools.version.61.plus=XenServer Tools Version 6.1\\+
-label.Xenserver.Tools.Version61plus=XenServer Tools Version 6.1\\+
-label.xenserver.traffic.label=Libell\u00e9 trafic XenServer
-label.yes=Oui
-label.zone.dedicated=Zone d\u00e9di\u00e9e
-label.zone.details=D\u00e9tails de la zone
-label.zone.id=ID de la zone
-label.zone.lower=zone
-label.zone.name=Nom de la zone
-label.zone.step.1.title=\u00c9tape 1 \: <strong>S\u00e9lectionnez un r\u00e9seau</strong>
-label.zone.step.2.title=\u00c9tape 2 \: <strong>Ajoutez une zone</strong>
-label.zone.step.3.title=\u00c9tape 3 \: <strong>Ajoutez un Pod</strong>
-label.zone.step.4.title=\u00c9tape 4 \: <strong>Ajoutez une plage d\\'adresses IP</strong>
-label.zones=Zones
-label.zone.type=Type de zone
-label.zone.wide=Transverse \u00e0 la zone
-label.zoneWizard.trafficType.guest=Invit\u00e9 \: Trafic entre les machines virtuelles utilisateurs
-label.zoneWizard.trafficType.management=Administration \: Trafic entre les ressources internes de CloudStack, incluant tous les composants qui communiquent avec le serveur d\\'administration, tels que les h\u00f4tes et les machines virtuelles Syst\u00e8mes CloudStack
-label.zoneWizard.trafficType.public=Public \: Trafic entre Internet et les machines virtuelles dans le nuage
-label.zoneWizard.trafficType.storage=Stockage \: Trafic entre les serveurs de stockages principaux et secondaires, tel que le transfert de machines virtuelles mod\u00e8les et des instantan\u00e9s de disques
-label.zone=Zone
-managed.state=\u00c9tat de la gestion
-message.acquire.ip.nic=Confirmez que vous souhaitez acqu\u00e9rir une nouvelle IP secondaire pour cette carte NIC.<br/>N.B. Vous devez configurer manuellement la nouvelle IP secondaire dans la machine virtuelle.
-message.acquire.new.ip=Confirmer l\\'acquisition d\\'une nouvelle adresse IP pour ce r\u00e9seau.
-message.acquire.new.ip.vpc=Veuillez confirmer que vous voulez une nouvelle adresse IP pour ce VPC
-message.acquire.public.ip=S\u00e9lectionnez la zone dans laquelle vous voulez acqu\u00e9rir votre nouvelle adresse IP.
-message.action.cancel.maintenance.mode=Confirmer l\\'annulation de cette maintenance.
-message.action.cancel.maintenance=Votre h\u00f4te a quitt\u00e9 la maintenance. Ce processus peut prendre jusqu\\'\u00e0 plusieurs minutes.
-message.action.change.service.warning.for.instance=Votre instance doit \u00eatre arr\u00eat\u00e9e avant d\\'essayer de changer son offre de service.
-message.action.change.service.warning.for.router=Votre routeur doit \u00eatre arr\u00eat\u00e9 avant d\\'essayer de changer son offre de service.
-message.action.delete.cluster=\u00cates-vous s\u00fbr que vous voulez supprimer ce cluster.
-message.action.delete.disk.offering=Supprimer cette offre de disque ?
-message.action.delete.domain=\u00cates-vous s\u00fbr que vous voulez supprimer ce domaine.
-message.action.delete.external.firewall=Supprimer ce pare-feu externe ? Attention \: Si vous pr\u00e9voyez de rajouter le m\u00eame pare-feu externe de nouveau, vous devez r\u00e9-initialiser les donn\u00e9es d\\'utilisation sur l\\'appareil.
-message.action.delete.external.load.balancer=Supprimer ce r\u00e9partiteur de charge externe ? Attention \: Si vous pensez ajouter le m\u00eame r\u00e9partiteur de charge plus tard, vous devez remettre \u00e0 z\u00e9ro les statistiques d\\'utilisation de cet \u00e9quipement.
-message.action.delete.ingress.rule=Supprimer cette r\u00e8gle de flux entrant ?
-message.action.delete.ISO.for.all.zones=L\\'ISO est utilis\u00e9 par toutes les zones. S\\'il vous pla\u00eet confirmer que vous voulez le supprimer de toutes les zones.
-message.action.delete.ISO=Supprimer cet ISO ?
-message.action.delete.network=\u00cates-vous s\u00fbr que vous voulez supprimer ce r\u00e9seau.
-message.action.delete.nexusVswitch=Confirmer la suppession de ce Nexus 1000v
-message.action.delete.nic=Veuillez confirmer que vous souhaitez supprimer cette carte NIC, ce qui supprimera \u00e9galement le r\u00e9seau associ\u00e9 sur la machine virtuelle.
-message.action.delete.physical.network=Confirmer la suppression du r\u00e9seau physique
-message.action.delete.pod=Supprimer ce pod ?
-message.action.delete.primary.storage=\u00cates-vous s\u00fbr que vous voulez supprimer ce stockage primaire.
-message.action.delete.secondary.storage=Supprimer ce stockage secondaire ?
-message.action.delete.security.group=Supprimer ce groupe de s\u00e9curit\u00e9 ?
-message.action.delete.service.offering=Supprimer cette offre de service ?
-message.action.delete.snapshot=Supprimer cet instantan\u00e9 ?
-message.action.delete.system.service.offering=\u00cates-vous s\u00fbr que vous voulez supprimer l\\'offre syst\u00e8me.
-message.action.delete.template.for.all.zones=Ce mod\u00e8le est utilis\u00e9 par toutes les zones. Supprimer de toutes les zones ?
-message.action.delete.template=Supprimer ce mod\u00e8le ?
-message.action.delete.volume=Supprimer ce volume ?
-message.action.delete.zone=Supprimer cette zone ?
-message.action.destroy.instance=Supprimer cette instance ?
-message.action.destroy.systemvm=Supprimer cette VM Syst\u00e8me ?
-message.action.disable.cluster=D\u00e9sactiver ce cluster ?
-message.action.disable.nexusVswitch=Confirmer la d\u00e9sactivation de ce Nexus 1000v
-message.action.disable.physical.network=Confirmer l\\'activation de ce r\u00e9seau physique.
-message.action.disable.pod=D\u00e9sactiver ce pod ?
-message.action.disable.static.NAT=D\u00e9sactiver le NAT statique ?
-message.action.disable.zone=D\u00e9sactiver cette zone ?
-message.action.downloading.template=T\u00e9l\u00e9chargement mod\u00e8le.
-message.action.download.iso=Confirmer le t\u00e9l\u00e9chargement de cet ISO
-message.action.download.template=Confirmer le t\u00e9l\u00e9chargement de ce mod\u00e8le
-message.action.enable.cluster=Activer ce cluster ?
-message.action.enable.maintenance=Votre h\u00f4te a \u00e9t\u00e9 mis en mode maintenance avec succ\u00e8s. Ce processus peut durer plusieurs minutes ou plus, suivant le nombre de VMs actives sur cet h\u00f4te.
-message.action.enable.nexusVswitch=Confirmer l\\'activation de ce Nexus 1000v
-message.action.enable.physical.network=Confirmer l\\'activation de ce r\u00e9seau physique.
-message.action.enable.pod=Activer ce pod ?
-message.action.enable.zone=Activer cette zone ?
-message.action.expunge.instance=Confirmez que vous souhaitez effacer cette instance.
-message.action.force.reconnect=Votre h\u00f4te a \u00e9t\u00e9 forc\u00e9e \u00e0 se reconnecter avec succ\u00e8s. Ce processus peut prendre jusqu\\'\u00e0 plusieurs minutes.
-message.action.host.enable.maintenance.mode=Activer le mode maintenance va causer la migration \u00e0 chaud de l\\'ensemble des instances de cet h\u00f4te sur les autres h\u00f4tes disponibles.
-message.action.instance.reset.password=Confirmer le changement du mot de passe ROOT pour cette machine virtuelle.
-message.action.manage.cluster=G\u00e9rer le cluster ?
-message.action.primarystorage.enable.maintenance.mode=Attention \: placer ce stockage primaire en mode maintenance va provoquer l\\'arr\u00eat de l\\'ensemble des VMs utilisant des volumes sur ce stockage. Souhaitez-vous continuer ?
-message.action.reboot.instance=Red\u00e9marrer cette instance ?
-message.action.reboot.router=Tous les services fournit par ce routeur virtuel vont \u00eatre interrompus. Confirmer le r\u00e9-amor\u00e7age de ce routeur.
-message.action.reboot.systemvm=Red\u00e9marrer cette VM Syst\u00e8me ?
-message.action.release.ip=Lib\u00e9rer cette adresse IP ?
-message.action.remove.host=\u00cates-vous s\u00fbr que vous voulez supprimer cet h\u00f4te.
-message.action.reset.password.off=Votre instance ne supporte pas pour le moment cette fonctionnalit\u00e9.
-message.action.reset.password.warning=Votre instance doit \u00eatre arr\u00eat\u00e9e avant d\\'essayer de changer son mot de passe.
-message.action.restore.instance=Restaurer cette instance ?
-message.action.revert.snapshot=Confirmez que vous souhaitez r\u00e9tablir ce volume pour cet instantan\u00e9
-message.action.start.instance=D\u00e9marrer cette instance ?
-message.action.start.router=D\u00e9marrer ce routeur ?
-message.action.start.systemvm=Red\u00e9marrer cette VM syst\u00e8me ?
-message.action.stop.instance=Arr\u00eater cette instance ?
-message.action.stop.router=Tous les services fournit par ce routeur virtuel vont \u00eatre interrompus. Confirmer l\\'arr\u00eat de ce routeur.
-message.action.stop.systemvm=Arr\u00eater cette VM ?
-message.action.take.snapshot=Confirmer la prise d\\'un instantan\u00e9 pour ce volume.
-message.action.unmanage.cluster=Confirmez que vous ne voulez plus g\u00e9rer le cluster
-message.action.vmsnapshot.delete=Confirmez que vous souhaitez supprimer cet instantan\u00e9 VM.
-message.action.vmsnapshot.revert=R\u00e9tablir l\\'instantan\u00e9 VM
-message.activate.project=Voulez-vous activer ce projet ?
-message.add.cluster=Ajouter un cluster d\\'hyperviseurs g\u00e9r\u00e9 pour cette zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.cluster.zone=Ajouter un cluster d\\'hyperviseurs g\u00e9r\u00e9 pour cette zone <b><span id\="zone_name"></span></b>
-message.add.disk.offering=Renseignez les param\u00e8tres suivants pour ajouter un offre de service de disques
-message.add.domain=Sp\u00e9cifier le sous domaine que vous souhaitez cr\u00e9er sous ce domaine
-message.added.new.nuage.vsp.controller=Ajout d\\'un nouveau contr\u00f4leur Nuage Vsp
-message.added.vpc.offering=Offre de VPC ajout\u00e9e
-message.add.firewall=Ajouter un pare-feu \u00e0 cette zone
-message.add.guest.network=Confirmer l\\'ajout du r\u00e9seau invit\u00e9
-message.add.host=Renseignez les param\u00e8tres suivants pour ajouter une h\u00f4te
-message.adding.host=Ajout un h\u00f4te
-message.adding.Netscaler.device=Ajouter un Netscaler
-message.adding.Netscaler.provider=Ajouter un fournisseur Netscaler
-message.add.ip.range=Ajouter une plage IP pour le r\u00e9seau publique dans la zone
-message.add.ip.range.direct.network=Ajouter une plage IP au r\u00e9seau direct <b><span id\="directnetwork_name"></span></b> dans la zone <b><span id\="zone_name"></span></b>
-message.add.ip.range.to.pod=<p>Ajouter une plage IP pour le pod\: <b><span id\="pod_name_label"></span></b></p>
-message.additional.networks.desc=S\u00e9lectionnez le(s) r\u00e9seau(x) additionnel(s) au(x)quel(s) sera connect\u00e9e votre instance.
-message.add.load.balancer=Ajouter un r\u00e9partiteur de charge \u00e0 la zone
-message.add.load.balancer.under.ip=La r\u00e8gle de r\u00e9partition de charge \u00e9t\u00e9 ajout\u00e9e sous l\\'adresse IP \:
-message.add.network=Ajouter un nouveau r\u00e9seau \u00e0 la zone\: <b><span id\="zone_name"></span></b>
-message.add.new.gateway.to.vpc=Renseigner les informations suivantes pour ajouter une nouvelle passerelle pour ce VPC
-message.add.pod=Ajouter un nouveau pod \u00e0 la zone <b><span id\="add_pod_zone_name"></span></b>
-message.add.pod.during.zone.creation=Chaque zone doit contenir un ou plusieurs pods, et le premier pod sera ajout\u00e9 maintenant. Une pod contient les h\u00f4tes et les serveurs de stockage primaire, qui seront ajout\u00e9s dans une \u00e9tape ult\u00e9rieure. Configurer une plage d\\'adresses IP r\u00e9serv\u00e9es pour le trafic de gestion interne de CloudStack. La plage d\\'IP r\u00e9serv\u00e9e doit \u00eatre unique pour chaque zone dans le nuage.
-message.add.primary=Renseignez les param\u00e8tres suivants pour ajouter un stockage primaire
-message.add.primary.storage=Ajouter un nouveau stockage primaire \u00e0 la zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.region=Renseigner les informations suivantes pour ajouter une nouvelle r\u00e9gion.
-message.add.secondary.storage=Ajouter un nouveau stockage pour la zone <b><span id\="zone_name"></span></b>
-message.add.service.offering=Renseigner les informations suivantes pour ajouter une nouvelle offre de service de calcul.
-message.add.system.service.offering=Ajouter les informations suivantes pour cr\u00e9er une nouvelle offre de syst\u00e8me.
-message.add.template=Renseignez les informations suivantes pour cr\u00e9er votre nouveau mod\u00e8le
-message.add.volume=Renseignez les informations suivantes pour ajouter un nouveau volume
-message.add.VPN.gateway=Confirmer l\\'ajout d\\'une passerelle VPN
-message.admin.guide.read=Pour les VMs VMware, veuillez lire le paragraphe "dynamic scaling" dans le guide d\\'administration avant d\\'op\u00e9rer un dimensionnement. Voulez-vous continuer ?\\,
-message.advanced.mode.desc=Choisissez ce mod\u00e8le de r\u00e9seau si vous souhaitez b\u00e9n\u00e9ficier du support des VLANs. Ce mode de r\u00e9seau donne le plus de flexibilit\u00e9 aux administrateurs pour fournir des offres de service r\u00e9seau personnalis\u00e9es comme fournir des pare-feux, VPN, r\u00e9partiteurs de charge ou \u00e9galement activer des r\u00e9seaux virtuels ou directs.
-message.advanced.security.group=Choisissez ceci si vous souhaitez utiliser les groupes de s\u00e9curit\u00e9 pour fournir l\\'isolation des VMs invit\u00e9es.
-message.advanced.virtual=Choisissez ceci si vous souhaitez utiliser des VLANs pour fournir l\\'isolation des VMs invit\u00e9es.
-message.after.enable.s3=Le stockage secondaire S3 est configur\u00e9. Note \: Quand vous quitterez cette page, vous ne pourrez plus re-configurer le support S3.
-message.after.enable.swift=Swift configur\u00e9. Remarque \: une fois que vous quitterez cette page, il ne sera plus possible de re-configurer Swift \u00e0 nouveau.
-message.alert.state.detected=\u00c9tat d\\'alerte d\u00e9tect\u00e9
-message.allow.vpn.access=Entrez un identifiant et un mot de passe pour l\\'utilisateur que vous souhaitez autoriser \u00e0 utiliser l\\'acc\u00e8s VPN.
-message.apply.snapshot.policy=Vous avez mis \u00e0 jour votre politique d\\'instantan\u00e9s avec succ\u00e8s.
-message.attach.iso.confirm=Attacher l\\'image ISO \u00e0 cette instance ?
-message.attach.volume=Renseignez les donn\u00e9es suivantes pour attacher un nouveau volume. Si vous attachez un volume disque \u00e0 une machine virtuelle sous Windows, vous aurez besoin de red\u00e9marrer l\\'instance pour voir le nouveau disque.
-message.basic.mode.desc=Choisissez ce mod\u00e8le de r\u00e9seau si vous  <b>*<u>ne voulez pas</u>*</b> activer le support des VLANs. Toutes les instances cr\u00e9\u00e9es avec ce mod\u00e8le de r\u00e9seau se verront assigner une adresse IP et les groupes de s\u00e9curit\u00e9 seront utilis\u00e9s pour fournir l\\'isolation entre les VMs.
-message.change.ipaddress=Confirmer que vous souhaitez changer l\\'adresse IP pour cette NIC sur la VM.
-message.change.offering.confirm=Changer l\\'offre de service de cette instance ?
-message.change.password=Merci de modifier votre mot de passe.
-message.cluster.dedicated=Cluster d\u00e9di\u00e9e
-message.cluster.dedication.released=Lib\u00e9ration de cluster d\u00e9di\u00e9
-message.configure.all.traffic.types=Vous avez de multiples r\u00e9seaux physiques ; veuillez configurer les libell\u00e9s pour chaque type de trafic en cliquant sur le bouton Modifier.
-message.configure.firewall.rules.allow.traffic=Configurer les r\u00e8gles autorisant le trafic
-message.configure.firewall.rules.block.traffic=Configurer les r\u00e8gles bloquant le trafic
-message.configure.ldap=Confirmer la configuration LDAP
-message.configuring.guest.traffic=Configuration du r\u00e9seau VM
-message.configuring.physical.networks=Configuration des r\u00e9seaux physiques
-message.configuring.public.traffic=Configuration du r\u00e9seau public
-message.configuring.storage.traffic=Configuration du r\u00e9seau de stockage
-message.confirm.action.force.reconnect=Confirmer la re-connexion forc\u00e9e de cet h\u00f4te.
-message.confirm.add.vnmc.provider=Confirmer l\\'ajout du fournisseur VNMC.
-message.confirm.archive.alert=Confirmer la suppression de cette alerte.
-message.confirm.archive.event=Confirmer l\\'archivage de cet \u00e9v\u00e9nement.
-message.confirm.archive.selected.alerts=Confirmer l\\'archivage des alertes s\u00e9lectionn\u00e9es
-message.confirm.archive.selected.events=Confirmez l\\'archivage des \u00e9v\u00e9nements s\u00e9lectionn\u00e9s
-message.confirm.attach.disk=Confirmer le rattachement de ce disque ?
-message.confirm.create.volume=Confirmer la cr\u00e9ation de ce volume ?
-message.confirm.current.guest.CIDR.unchanged=Voulez-vous garder l\\'actuel r\u00e9seau d\\'invit\u00e9 CIDR inchang\u00e9 ?
-message.confirm.dedicate.cluster.domain.account=D\u00e9dier ce cluster \u00e0 un domaine/compte ?
-message.confirm.dedicate.host.domain.account=D\u00e9dier cet h\u00f4te \u00e0 un domaine/compte ?
-message.confirm.dedicate.pod.domain.account=D\u00e9dier ce pod \u00e0 un domaine/compte ?
-message.confirm.dedicate.zone=\u00cates-vous s\u00fbr de d\u00e9dier cette zone \u00e0 un domaine/compte ?
-message.confirm.delete.acl.list=Confirmer la suppression de cette liste ACL ?
-message.confirm.delete.alert=Confirmer la suppression de cette alerte ?
-message.confirm.delete.baremetal.rack.configuration=Confirmer que vous voulez supprimer cette configuration Rack Baremetal
-message.confirm.delete.BigSwitchBcf=Confirmer que vous voulez supprimer ce contr\u00f4leur BigSwitch BCF
-message.confirm.delete.BrocadeVcs=Confirmer la suppression du switch Brocade Vcs
-message.confirm.delete.ciscoASA1000v=Confirmez la suppression du CiscoASA1000v
-message.confirm.delete.ciscovnmc.resource=Confirmer la suppression de la ressource CiscoVNMC
-message.confirm.delete.F5=Confirmer la suppression du F5
-message.confirm.delete.internal.lb=Confirmer la suppression de ce LB interne.
-message.confirm.delete.NetScaler=Confirmer la suppression du Netscaler
-message.confirm.delete.NuageVsp=Confirmer la suppression du Nuage Virtualized Services Directory
-message.confirm.delete.PA=Confirmer la suppression du Palo Alto
-message.confirm.delete.secondary.staging.store=Confirmer que vous voulez supprimer le Stockage Secondaire Interm\u00e9diaire.
-message.confirm.delete.SRX=Confirmer la suppression du SRX
-message.confirm.delete.ucs.manager=Confirmez que vous voulez supprimer le gestionnaire UCS
-message.confirm.destroy.router=\u00cates-vous s\u00fbr que vous voulez supprimer ce routeur
-message.confirm.disable.host=Confirmer la d\u00e9s-activation de cet h\u00f4te.
-message.confirm.disable.network.offering=Voulez-vous d\u00e9sactiver cette offre r\u00e9seau ?
-message.confirm.disable.provider=Confirmer la d\u00e9sactivation de ce fournisseur
-message.confirm.disable.vnmc.provider=Confirmer la d\u00e9sactivation du fournisseur VNMC.
-message.confirm.disable.vpc.offering=Voulez-vous d\u00e9sactiver cette offre VPC ?
-message.confirm.enable.host=Confirmer l\\'activation de cet h\u00f4te.
-message.confirm.enable.network.offering=Voulez-vous activer cette offre r\u00e9seau ?
-message.confirm.enable.provider=Confirmer l\\'activation de ce fournisseur
-message.confirm.enable.vnmc.provider=Confirmer l\\'activation du fournisseur VNMC.
-message.confirm.enable.vpc.offering=Voulez-vous activer cette offre VPC ?
-message.confirm.join.project=Rejoindre ce projet ?
-message.confirm.migrate.volume=Confirmer la migration de ce volume ?
-message.confirm.refresh.blades=Confirmer que vous voulez rafra\u00eechr les lames.
-message.confirm.release.dedicated.cluster=Lib\u00e9rer ce cluster d\u00e9di\u00e9 ?
-message.confirm.release.dedicated.host=Lib\u00e9rer cet h\u00f4te d\u00e9di\u00e9e ?
-message.confirm.release.dedicated.pod=Lib\u00e9rer ce pod d\u00e9di\u00e9 ?
-message.confirm.release.dedicated.zone=Lib\u00e9rer cette zone d\u00e9di\u00e9e ?
-message.confirm.release.dedicate.vlan.range=Confirmez que vous souhaitez lib\u00e9rer cette plage VLAN d\u00e9di\u00e9e.
-message.confirm.remove.event=Voulez-vous supprimer cet \u00e9v\u00e9nement ?
-message.confirm.remove.IP.range=\u00cates-vous s\u00fbr que vous voulez supprimer cette plage d\\'adresses IP
-message.confirm.remove.load.balancer=Confirmer la suppression de cette VM du r\u00e9partiteur de charge ?
-message.confirm.remove.network.offering=Voulez-vous supprimer cette offre r\u00e9seau ?
-message.confirm.remove.selected.alerts=Confirmer la suppression des alertes s\u00e9lectionn\u00e9es
-message.confirm.remove.selected.events=Confirmez la suppression des \u00e9v\u00e9nements s\u00e9lectionn\u00e9s
-message.confirm.remove.vmware.datacenter=Veuillez confirmer que vous voulez supprimer le datacenter VMware
-message.confirm.remove.vpc.offering=Voulez-vous supprimer cette offre VPC ?
-message.confirm.replace.acl.new.one=Voulez-vous remplacer l\\'ACL par cette nouvelle ?
-message.confirm.scale.up.router.vm=Agrandir la VM Routeur ?
-message.confirm.scale.up.system.vm=Agrandir la VM Syst\u00e8me ?
-message.confirm.shutdown.provider=Confirmer l\\'arr\u00eat de ce fournisseur
-message.confirm.start.lb.vm=Confirmez que vous souhaitez d\u00e9marrer ce LB VM.
-message.confirm.stop.lb.vm=Confirmez que vous souhaitez arr\u00eater ce LB VM.
-message.confirm.upgrade.router.newer.template=Confirmez que vous souhaitez mettre \u00e0 jour le routeur avec un mod\u00e8le plus r\u00e9cent.
-message.confirm.upgrade.routers.account.newtemplate=Confirmez que vous souhaitez mettre \u00e0 jour tous les routeurs dans ce compte avec un mod\u00e8le plus r\u00e9cent.
-message.confirm.upgrade.routers.cluster.newtemplate=Confirmez que vous souhaitez mettre \u00e0 jour tous les routeurs dans ce cluster avec un mod\u00e8le plus r\u00e9cent.
-message.confirm.upgrade.routers.newtemplate=Confirmez que vous souhaitez mettre \u00e0 jour tous les routeurs dans cette zone avec un mod\u00e8le plus r\u00e9cent.
-message.confirm.upgrade.routers.pod.newtemplate=Confirmez que vous souhaitez mettre \u00e0 jour tous les routeurs dans ce pod avec un mod\u00e8le plus r\u00e9cent.
-message.copy.iso.confirm=Copier votre image ISO vers
-message.copy.template.confirm=Voulez-vous copier le mod\u00e8le ?
-message.copy.template=Copier le mod\u00e8le <b id\="copy_template_name_text">XXX</b> de la zone <b id\="copy_template_source_zone_text"></b> vers
-message.create.template.vm=Cr\u00e9er la VM depuis le mod\u00e8le <b id\="p_name"></b>
-message.create.template.volume=Renseignez les informations suivantes avec de cr\u00e9er un mod\u00e8le \u00e0 partir de votre volume de disque\:<b><span id\="volume_name"></span></b>. La cr\u00e9ation du mod\u00e8le peut prendre plusieurs minutes suivant la taille du volume.
-message.create.template=Voulez-vous cr\u00e9er un mod\u00e8le ?
-message.creating.cluster=Cr\u00e9ation du cluster
-message.creating.guest.network=Cr\u00e9ation du r\u00e9seau pour les invit\u00e9s
-message.creating.physical.networks=Cr\u00e9ation des r\u00e9seaux physiques
-message.creating.pod=Cr\u00e9ation d\\'un pod
-message.creating.primary.storage=Cr\u00e9ation du stockage primaire
-message.creating.secondary.storage=Cr\u00e9ation du stockage secondaire
-message.creating.systemVM=Cr\u00e9ation des VMs Syst\u00e8mes (peut prendre du temps)...
-message.creating.zone=Cr\u00e9ation de la zone
-message.decline.invitation=Voulez-vous refuser cette invitation au projet ?
-message.dedicated.zone.released=Lib\u00e9ration de zone d\u00e9di\u00e9e
-message.dedicate.zone=Zone d\u00e9di\u00e9e
-message.delete.account=Supprimer ce compte ?
-message.delete.affinity.group=Confirmer la supression de ce groupe d\\'affinit\u00e9.
-message.delete.gateway=\u00cates-vous s\u00fbr que vous voulez supprimer cette passerelle
-message.delete.project=Voulez-vous supprimer ce projet ?
-message.delete.user=\u00cates-vous s\u00fbr que vous voulez supprimer cet utilisateur.
-message.delete.VPN.connection=\u00cates-vous s\u00fbr que vous voulez supprimer la connexion VPN
-message.delete.VPN.customer.gateway=\u00cates-vous s\u00fbr que vous voulez supprimer cette passerelle VPN client
-message.delete.VPN.gateway=\u00cates-vous s\u00fbr que vous voulez supprimer cette passerelle VPN
-message.desc.add.new.lb.sticky.rule=Ajouter nouvelle r\u00e8gle LB sticky
-message.desc.advanced.zone=Pour des topologies de r\u00e9seau plus sophistiqu\u00e9es. Ce mod\u00e8le de r\u00e9seau permet plus de flexibilit\u00e9 dans la d\u00e9finition des r\u00e9seaux d\\'invit\u00e9s et propose des offres personnalis\u00e9es telles que le support de pare-feu, VPN ou d\\'\u00e9quilibrage de charge.
-message.desc.basic.zone=Fournit un r\u00e9seau unique o\u00f9 chaque instance de machine virtuelle se voit attribuer une adresse IP directement depuis le r\u00e9seau. L\\'isolation des invit\u00e9s peut \u00eatre assur\u00e9 au niveau de la couche r\u00e9seau-3 tels que les groupes de s\u00e9curit\u00e9 (filtrage d\\'adresse IP source).
-message.desc.cluster=Chaque pod doit contenir un ou plusieurs clusters, et le premier cluster sera ajout\u00e9 tout de suite. Un cluster est un regroupement pour h\u00f4tes. Les h\u00f4tes d\\'un cluster ont tous un mat\u00e9riel identique, ex\u00e9cutent le m\u00eame hyperviseur, sont dans le m\u00eame sous-r\u00e9seau, et acc\u00e8dent au m\u00eame stockage partag\u00e9. Chaque cluster comprend une ou plusieurs h\u00f4tes et un ou plusieurs serveurs de stockage primaire.
-message.desc.created.ssh.key.pair=Bi-cl\u00e9 SSH cr\u00e9\u00e9e
-message.desc.create.ssh.key.pair=Veuillez remplir les champs suivants pour cr\u00e9er ou enregistrer une bi-cl\u00e9 SSH.<br><br>(1) Si la cl\u00e9 publique est d\u00e9finie, CloudStack va enregistrer cette cl\u00e9. Vous pouvez ensuite l\\'utiliser avec sa cl\u00e9 priv\u00e9e.<br><br>(2) Si la cl\u00e9 publique n\\'est pas d\u00e9finie, CloudStack va cr\u00e9er une nouvelle bi-cl\u00e9 SSH. Dans ce cas, veuillez copier et sauvegarder la cl\u00e9 priv\u00e9e. CloudStack ne va pas la conserver.<br>
-message.desc.host=Chaque cluster doit contenir au moins un h\u00f4te (machine) pour ex\u00e9ctuer des machines virtuelles invit\u00e9es, et le premier h\u00f4te sera ajout\u00e9e maintenant. Pour un h\u00f4te fonctionnant dans CloudStack, vous devez installer un logiciel hyperviseur sur l\\'h\u00f4te, attribuer une adresse IP \u00e0 l\\'h\u00f4te, et s\\'assurer que l\\'h\u00f4te est connect\u00e9 au serveur d\\'administration CloudStack.<br/><br/>Indiquer le nom de l\\'h\u00f4te ou son adresse IP, l\\'identifiant de connexion (g\u00e9n\u00e9ralement root) et le mot de passe ainsi que toutes les \u00e9tiquettes permettant de classer les h\u00f4tes.
-message.desc.primary.storage=Chaque cluster doit contenir un ou plusieurs serveurs de stockage primaire, et le premier sera ajout\u00e9 tout de suite. Le stockage principal contient les volumes de disque pour les machines virtuelles s\\'ex\u00e9cutant sur les h\u00f4tes dans le cluster. Utiliser les protocoles standards pris en charge par l\\'hyperviseur sous-jacent.
-message.desc.reset.ssh.key.pair=Veuillez sp\u00e9cifier une bi-cl\u00e9 SSH que vous souhaitez ajouter \u00e0 cette VM. Noter que le mot de passe root sera chang\u00e9 durant cette op\u00e9ration si l\\'option mot de passe est activ\u00e9e.
-message.desc.secondary.storage=Chaque zone doit avoir au moins un serveur NFS ou un serveur de stockage secondaire, et sera ajout\u00e9 en premier tout de suite. Le stockage secondaire entrepose les mod\u00e8les de machines virtuelles, les images ISO et les images disques des volumes des machines virtuelles. Ce serveur doit \u00eatre accessible pour toutes les machines h\u00f4tes dans la zone.<br/><br/>Saisir l\\'adresse IP et le chemin d\\'export.
-message.desc.zone=Une zone est la plus grande unit\u00e9 organisationnelle dans CloudStack, et correspond typiquement \u00e0 un centre de donn\u00e9es. Les zones fournissent un isolement physique et de la redondance. Une zone est constitu\u00e9e d\\'un ou plusieurs pods (dont chacun contient les h\u00f4tes et les serveurs de stockage primaire) et un serveur de stockage secondaire qui est partag\u00e9e par tous les pods dans la zone.
-message.detach.disk=Voulez-vous d\u00e9tacher ce disque ?
-message.detach.iso.confirm=D\u00e9tacher l\\'image ISO de cette instance ?
-message.disable.account=Veuillez confirmer que vous voulez d\u00e9sactiver ce compte. En d\u00e9sactivant le compte, tous les utilisateurs pour ce compte n\\'auront plus acc\u00e8s \u00e0 leurs ressources sur le cloud. Toutes les machines virtuelles vont \u00eatre arr\u00eat\u00e9es imm\u00e9diatement.
-message.disable.snapshot.policy=Vous avez d\u00e9sactiv\u00e9 votre politique d\\'instantan\u00e9 avec succ\u00e8s.
-message.disable.user=Confirmer la d\u00e9sactivation de cet utilisateur.
-message.disable.vpn.access=D\u00e9sactiver l\\'acc\u00e8s VPN ?
-message.disable.vpn=Voulez-vous d\u00e9sactiver le VPN ?
-message.disabling.network.offering=D\u00e9sactivation de l\\'offre r\u00e9seau
-message.disabling.vpc.offering=D\u00e9sactivation de l\\'offre VPC
-message.disallowed.characters=Caract\u00e8res non autoris\u00e9s \: \\<\\,\\>
-message.download.ISO=Cliquer <a href\="\#">00000</a> pour t\u00e9l\u00e9charger une image ISO
-message.download.template=Cliquer sur <a href\="\#">00000</a> pour t\u00e9l\u00e9charger le mod\u00e8le
-message.download.volume=Cliquer sur <a href\="\#">00000</a> pour t\u00e9l\u00e9charger le volume
-message.download.volume.confirm=Veuillez confirmer que vous voulez t\u00e9l\u00e9charger ce volume.
-message.edit.account=Modifier ("-1" signifie pas de limite de ressources)
-message.edit.confirm=V\u00e9rifier vos changements avant de cliquer sur "Enregistrer".
-message.edit.limits=Renseignez les limites pour les ressources suivantes. "-1" indique qu\\'il n\\'y a pas de limites pour la cr\u00e9ation de ressources.
-message.edit.traffic.type=Sp\u00e9cifier le libell\u00e9 de trafic associ\u00e9 avec ce type de trafic.
-message.enable.account=Activer ce compte ?
-message.enabled.vpn.ip.sec=Votre cl\u00e9 partag\u00e9e IPSec est
-message.enabled.vpn=Votre acc\u00e8s VPN est activ\u00e9 et peut \u00eatre acc\u00e9d\u00e9 par l\\'IP
-message.enable.user=Confirmer l\\'activation de cet utilisateur.
-message.enable.vpn.access=Le VPN est d\u00e9sactiv\u00e9 pour cette adresse IP. Voulez vous activer l\\'acc\u00e8s VPN ?
-message.enable.vpn=Confirmer l\\'activation de l\\'acc\u00e8s VPN pour cette adresse IP.
-message.enabling.network.offering=Activation de l\\'offre r\u00e9seau
-message.enabling.security.group.provider=Activation du fournisseur de groupe de s\u00e9curit\u00e9
-message.enabling.vpc.offering=Activation de l\\'offre VPC
-message.enabling.zone=Activation de la zone
-message.enabling.zone.dots=Activation de la zone...
-message.enter.seperated.list.multiple.cidrs=Veuillez entrer une liste de CIDRs s\u00e9par\u00e9s par des virgules si plusieurs
-message.enter.token=Entrer le jeton unique re\u00e7u dans le message d\\'invitation.
-message.generate.keys=Confirmer la g\u00e9n\u00e9ration de nouvelles clefs pour cet utilisateur.
-message.gslb.delete.confirm=Confirmer la suppression de ce GSLB
-message.gslb.lb.remove.confirm=Enlever la r\u00e9partition de charge du GSLB ?
-message.guest.traffic.in.advanced.zone=Le trafic r\u00e9seau d\\'invit\u00e9 est la communication entre les machines virtuelles utilisateur. Sp\u00e9cifier une plage d\\'identifiant VLAN pour le trafic des invit\u00e9s pour chaque r\u00e9seau physique.
-message.guest.traffic.in.basic.zone=Le trafic r\u00e9seau d\\'invit\u00e9 est la communication entre les machines virtuelles utilisateur. Sp\u00e9cifier une plage d\\'adresses IP que CloudStack peut assigner aux machines virtuelles Invit\u00e9. S\\'assurer que cette plage n\\'empi\u00e8te pas sur la plage r\u00e9serv\u00e9e aux adresses IP Syst\u00e8me.
-message.host.dedicated=H\u00f4te d\u00e9di\u00e9e
-message.host.dedication.released=Lib\u00e9ration de l\\'h\u00f4te d\u00e9di\u00e9
-message.installWizard.click.retry=Appuyer sur le bouton pour essayer \u00e0 nouveau le d\u00e9marrage.
-message.installWizard.copy.whatIsACluster=Un cluster permet de grouper les h\u00f4tes. Les h\u00f4tes d\\'un cluster ont un mat\u00e9riel identique, ex\u00e9cutent le m\u00eame hyperviseur, sont sur le m\u00eame sous-r\u00e9seau, et acc\u00e8dent au m\u00eame stockage partag\u00e9. Les instances de machines virtuelles (VM) peuvent \u00eatre migr\u00e9es \u00e0 chaud d\\'un h\u00f4te \u00e0 un autre au sein du m\u00eame groupe, sans interrompre les services utilisateur. Un cluster est la trois \u00e8me plus large unit\u00e9 organisationnelle dans un d\u00e9ploiement CloudStack&\#8482;. Les clusters sont contenus dans les pods et les pods sont contenus dans les zones.<br/><br/>CloudStack&\#8482; permet d\\'avoir plusieurs clusters dans un d\u00e9ploiement en nuage, mais pour une installation basique, il n\\'y a qu\\'un seul cluster.
-message.installWizard.copy.whatIsAHost=Un h\u00f4te est une machine. Les h\u00f4tes fournissent les ressources informatiques qui ex\u00e9cutent les machines virtuelles invit\u00e9es. Chaque h\u00f4te a un logiciel hyperviseur install\u00e9 pour g\u00e9rer les machines virtuelles invit\u00e9es (sauf pour les h\u00f4tes de type \\'bare-metal\\', qui sont un cas particulier d\u00e9taill\u00e9 dans le Guide d\\'installation avanc\u00e9e). Par exemple, un serveur Linux avec KVM, un serveur Citrix XenServer, et un serveur ESXi sont des h\u00f4tes. Dans une installation basique, un seul h\u00f4te ex\u00e9cutant XenServer ou KVM est utilis\u00e9.<br/><br/>L\\'h\u00f4te est la plus petite unit\u00e9 organisation au sein d\\'un d\u00e9ploiement CloudStack&\#8482;. Les h\u00f4tes sont contenus dans les clusters, les clusters sont contenus dans les pods et les pods sont contenus dans les zones.
-message.installWizard.copy.whatIsAPod=Un pod repr\u00e9sente souvent un seul rack. Les h\u00f4tes dans le m\u00eame pod sont dans le m\u00eame sous-r\u00e9seau.<br/>Un pod est la deuxi\u00e8me plus grande unit\u00e9 organisationnelle au sein d\\'un d\u00e9ploiement CloudStack&\#8482;. Les pods sont contenus dans les zones. Chaque zone peut contenir un ou plusieurs pods ; dans l\\'Installation Basique, vous aurez juste un pod dans votre zone.
-message.installWizard.copy.whatIsAZone=Une zone est la plus grande unit\u00e9 organisationnelle au sein d\\'un d\u00e9ploiement CloudStack&\#8482;. Une zone correspond typiquement \u00e0 un centre de donn\u00e9es, mais il est permis d\\'avoir plusieurs zones dans un centre de donn\u00e9es. L\\'avantage d\\'organiser une infrastructure en zones est de fournir une isolation physique et de la redondance. Par exemple, chaque zone peut avoir sa propre alimentation et de liaison avec le r\u00e9seau, et les zones peuvent \u00eatre tr\u00e8s \u00e9loign\u00e9es g\u00e9ographiquement (m\u00eame si ce n\\'est pas une obligation).
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482; est une plate-forme logicielle de pools de ressources informatiques pour construire des infrastructures publiques, priv\u00e9es et hybrides en tant que services (IaaS) dans les nuages. CloudStack&\#8482; g\u00e8re le r\u00e9seau, le stockage et les noeuds de calcul qui composent une infrastructure dans les nuages. Utilisez CloudStack&\#8482; pour d\u00e9ployer, g\u00e9rer et configurer les environnements d\\'informatiques dans les nuages.<br/><br/>S\\'\u00e9tendant au-del\u00e0 des machines virtuelles individuelles fonctionnant sur du mat\u00e9riel standard, CloudStack&\#8482; offre une solution d\\'informatique en nuage cl\u00e9 en main pour fournir des centres de donn\u00e9es virtuels comme service - fournissant tous les composants essentiels pour construire, d\u00e9ployer et g\u00e9rer des applications \\'cloud\\' multi-niveaux et multi-locataire. Les versions libre et Premium sont disponibles, la version Libre offrant des caract\u00e9ristiques presque identiques.
-message.installWizard.copy.whatIsPrimaryStorage=Une infrastructure CloudStack&\#8482; utilise deux types de stockage \: stockage primaire et stockage secondaire. Les deux peuvent \u00eatre des serveurs iSCSI ou NFS, ou sur disque local.<br/><br/><strong>Le stockage principal</strong> est associ\u00e9 \u00e0 un cluster, et stocke les volumes disques de chaque machine virtuelle pour toutes les VMs s\\'ex\u00e9cutant sur les h\u00f4tes dans le cluster. Le serveur de stockage primaire est typiquement proche des h\u00f4tes.
-message.installWizard.copy.whatIsSecondaryStorage=Le stockage secondaire est associ\u00e9 \u00e0 une zone, et il stocke les \u00e9l\u00e9ments suivants\:<ul><li>Mod\u00e8les - images de syst\u00e8mes d\\'exploitation qui peuvent \u00eatre utilis\u00e9es pour d\u00e9marrer les machines virtuelles et peuvent inclure des informations de configuration suppl\u00e9mentaires, telles que les applications pr\u00e9-install\u00e9es</li><li>Images ISO - images de syst\u00e8me d\\'exploitation ou d\\'installation d\\'OS qui peuvent \u00eatre amor\u00e7able ou non-amor\u00e7able</li><li>Images de volume disque - capture des donn\u00e9es de machines virtuelles qui peuvent \u00eatre utilis\u00e9es pour la r\u00e9cup\u00e9ration des donn\u00e9es ou cr\u00e9er des mod\u00e8les</ul>
-message.installWizard.now.building=Construction de votre Cloud en cours
-message.installWizard.tooltip.addCluster.name=Un nom pour le cluster. Ce choix est libre et n\\'est pas utilis\u00e9 par CloudStack.
-message.installWizard.tooltip.addHost.hostname=Le nom DNS ou adresse IP du serveur.
-message.installWizard.tooltip.addHost.password=Le mot de passe pour l\\'utilisateur indiqu\u00e9 pr\u00e9c\u00e9demment (issu de l\\'installation XenServer).
-message.installWizard.tooltip.addHost.username=Habituellement root.
-message.installWizard.tooltip.addPod.name=Nom pour le pod
-message.installWizard.tooltip.addPod.reservedSystemEndIp=Ceci est la plage d\\'adresses IP dans le r\u00e9seau priv\u00e9 que CloudStack utilise la gestion des VMs du stockage secondaire et les VMs Console Proxy. Ces adresses IP sont prises dans le m\u00eame sous-r\u00e9seau que les serveurs h\u00f4tes.
-message.installWizard.tooltip.addPod.reservedSystemGateway=Passerelle pour les serveurs dans ce pod
-message.installWizard.tooltip.addPod.reservedSystemNetmask=Le masque r\u00e9seau que les instances utiliseront sur le r\u00e9seau
-message.installWizard.tooltip.addPod.reservedSystemStartIp=Ceci est la plage d\\'adresses IP dans le r\u00e9seau priv\u00e9 que CloudStack utilise la gestion des VMs du stockage secondaire et les VMs Console Proxy. Ces adresses IP sont prises dans le m\u00eame sous-r\u00e9seau que les serveurs h\u00f4tes.
-message.installWizard.tooltip.addPrimaryStorage.name=Nom pour ce stockage
-message.installWizard.tooltip.addPrimaryStorage.path=(pour NFS) Dans NFS, c\\'est le chemin d\\'export depuis le serveur. Le chemin (pour SharedMountPoint). Avec KVM, c\\'est le chemin sur chaque h\u00f4te o\u00f9 ce stockage primaire est mont\u00e9. Par exemple, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(pour NFS, iSCSI ou PreSetup) Adresse IP ou nom DNS du stockage
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=Adresse IP du serveur NFS supportant le stockage secondaire
-message.installWizard.tooltip.addSecondaryStorage.path=Le chemin export\u00e9, situ\u00e9 sur le serveur sp\u00e9cifi\u00e9 pr\u00e9c\u00e9demment
-message.installWizard.tooltip.addZone.dns1=Ces serveurs DNS sont utilis\u00e9s par les machines virtuelles Invit\u00e9es dans la zone. Ces serveurs DNS seront accessibles par le r\u00e9seau public, ce dernier sera ajout\u00e9 plus tard. Les adresses IP publiques pour la zone doivent avoir une route vers les serveurs DNS indiqu\u00e9s ici.
-message.installWizard.tooltip.addZone.dns2=Ces serveurs DNS sont utilis\u00e9s par les machines virtuelles Invit\u00e9es dans la zone. Ces serveurs DNS seront accessibles par le r\u00e9seau public, ce dernier sera ajout\u00e9 plus tard. Les adresses IP publiques pour la zone doivent avoir une route vers les serveurs DNS indiqu\u00e9s ici.
-message.installWizard.tooltip.addZone.internaldns1=Ces serveurs DNS sont utilis\u00e9s par les machines virtuelles Invit\u00e9es dans la zone. Ces serveurs DNS seront accessibles par le r\u00e9seau public, ce dernier sera ajout\u00e9 plus tard. Les adresses IP publiques pour la zone doivent avoir une route vers les serveurs DNS indiqu\u00e9s ici.
-message.installWizard.tooltip.addZone.internaldns2=Ces serveurs DNS sont utilis\u00e9s par les machines virtuelles Invit\u00e9es dans la zone. Ces serveurs DNS seront accessibles par le r\u00e9seau public, ce dernier sera ajout\u00e9 plus tard. Les adresses IP publiques pour la zone doivent avoir une route vers les serveurs DNS indiqu\u00e9s ici.
-message.installWizard.tooltip.addZone.name=Nom pour la zone
-message.installWizard.tooltip.configureGuestTraffic.description=Description pour ce r\u00e9seau
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=La plage d\\'adresses IP qui sera disponible en allocation pour les machines invit\u00e9es dans cette zone. Si une carte r\u00e9seau est utilis\u00e9e, ces adresses IP peuvent \u00eatre dans le m\u00eame CIDR que le CIDR du pod.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=La passerelle que les instances invit\u00e9es doivent utiliser
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=Le masque r\u00e9seau que les instances devrait utiliser sur le r\u00e9seau
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=La plage d\\'adresses IP qui sera disponible en allocation pour les machines invit\u00e9es dans cette zone. Si une carte r\u00e9seau est utilis\u00e9e, ces adresses IP peuvent \u00eatre dans le m\u00eame CIDR que le CIDR du pod.
-message.installWizard.tooltip.configureGuestTraffic.name=Nom pour ce r\u00e9seau
-message.instance.scaled.up.confirm=\u00cates-vous s\u00fbr de vouloir agrandir votre instance ?
-message.instanceWizard.noTemplates=Vous n\\'avez pas de image disponible ; Ajouter un mod\u00e8le compatible puis relancer l\\'assistant de cr\u00e9ation d\\'instance.
-message.ip.address.changed=Vos adresses IP ont peut \u00eatre chang\u00e9es ; Voulez vous rafra\u00eechir la liste ? Dans ce cas, le panneau de d\u00e9tail se fermera.
-message.iso.desc=Image disque contenant des donn\u00e9es ou un support amor\u00e7able pour OS
-message.join.project=Vous avez rejoint un projet. S\u00e9lectionnez la vue Projet pour le voir.
-message.launch.vm.on.private.network=Souhaitez vous d\u00e9marrer cette instance sur votre propre r\u00e9seau priv\u00e9 ?
-message.launch.zone=La zone est pr\u00eate \u00e0 d\u00e9marrer ; passer \u00e0 l\\'\u00e9tape suivante.
-message.ldap.group.import=Tous les utilisateurs du groupe indiqu\u00e9 seront import\u00e9s
-message.link.domain.to.ldap=Activer autosync pour ce domaine dans le LDAP
-message.listView.subselect.multi=(Ctrl/Cmd-clic)
-message.lock.account=Verrouiller ce compte ? En le verrouillant, les utilisateurs de ce compte ne seront plus capables de g\u00e9rer leurs ressources. Les ressources existantes resteront toutefois accessibles.
-message.migrate.instance.confirm=Confirmez l\\'h\u00f4te vers lequel vous souhaitez migrer cette instance
-message.migrate.instance.to.host=Confirmer la migration de l\\'instance vers un autre h\u00f4te
-message.migrate.instance.to.ps=Confirmer la migration de l\\'instance vers un autre stockage primaire
-message.migrate.router.confirm=Confirmer la migration du routeur vers \:
-message.migrate.systemvm.confirm=Confirmer la migration de la VM syst\u00e8me vers \:
-message.migrate.volume=Confirmer la migration du volume vers un autre stockage primaire.
-message.network.addVM.desc=Veuillez sp\u00e9cifier le r\u00e9seau que vous souhaitez ajouter \u00e0 cette VM. Une nouvelle interface NIC sera ajout\u00e9e pour ce r\u00e9seau.
-message.network.addVMNIC=Confirmer l\\'ajout d\\'une nouvelle NIC VM pour ce r\u00e9seau.
-message.network.remote.access.vpn.configuration=La configuration VPN Acc\u00e9s Distant a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9e mais elle n\\'a pas pu \u00eatre appliqu\u00e9e. Veuillez v\u00e9rifier la connectivit\u00e9 des \u00e9l\u00e9ments r\u00e9seau, et r\u00e9-essayez.
-message.new.user=Renseigner les informations suivantes pour ajouter un nouveau compte utilisateur
-message.no.affinity.groups=Vous n\\'avez pas de groupes d\\'affinit\u00e9. Continuer vers la prochaine \u00e9tape.
-message.no.host.available=Aucun h\u00f4te n\\'est disponible pour la migration
-message.no.network.support.configuration.not.true=Il n\\'y a pas de zone avec la fonction groupe de s\u00e9curit\u00e9 active. D\u00e8s lors, pas de fonction r\u00e9seau suppl\u00e9mentaires disponibles. Continuer \u00e0 l\\'\u00e9tape 5.
-message.no.network.support=S\u00e9lectionnez l\\'hyperviseur. vSphere, n\\'a pas de fonctionnalit\u00e9s suppl\u00e9mentaires pour le r\u00e9seau. Continuez \u00e0 l\\'\u00e9tape 5.
-message.no.projects.adminOnly=Vous n\\'avez pas de projet.<br/>Contacter votre administrateur pour ajouter un projet.
-message.no.projects=Vous n\\'avez pas de projet.<br/>Vous pouvez en cr\u00e9er un depuis la section projets.
-message.number.clusters=<h2><span> \# de </span> Clusters</h2>
-message.number.hosts=<h2><span> \# d\\' </span> H\u00f4tes</h2>
-message.number.pods=<h2><span> \# de </span> Pods</h2>
-message.number.storage=<h2><span> \# de </span> Volumes de Stockage Primaire</h2>
-message.number.zones=<h2><span> \# de </span> Zones</h2>
-message.outofbandmanagement.action.maintenance=L\\'h\u00f4te en avertissement est en mode maintenance
-message.outofbandmanagement.changepassword=Modifier le mot de passe du flux d\\'administration
-message.outofbandmanagement.configure=Configurer la gestion du flux d\\'administration
-message.outofbandmanagement.disable=D\u00e9sactiver la gestion du flux d\\'administration
-message.outofbandmanagement.enable=Activer la gestion du flux d\\'administration
-message.outofbandmanagement.issue=Probl\u00e8me dans l\\'allumage via la gestion du flux administration.
-message.password.has.been.reset.to=Le mot de passe a \u00e9t\u00e9 r\u00e9-initialiser en
-message.password.of.the.vm.has.been.reset.to=Le mot de passe de la VM a \u00e9t\u00e9 r\u00e9-initialis\u00e9 en
-message.pending.projects.1=Vous avez des invitations projet en attente \:
-message.pending.projects.2=Pour les visualiser, aller dans la section projets, puis s\u00e9lectionner invitation dans la liste d\u00e9roulante.
-message.please.add.at.lease.one.traffic.range=Ajouter au moins une plage r\u00e9seau
-message.please.confirm.remove.ssh.key.pair=Confirmer la suppression de cette bi-cl\u00e9 SSH
-message.please.proceed=Continuer vers la prochaine \u00e9tape.
-message.please.select.a.configuration.for.your.zone=S\u00e9lectionner une configuration pour la zone.
-message.please.select.a.different.public.and.management.network.before.removing=S\u00e9lectionner un r\u00e9seau public et d\\'administration diff\u00e9rent avant de supprimer
-message.please.select.networks=S\u00e9lectionner les r\u00e9seaux pour votre machine virtuelle.
-message.please.select.ssh.key.pair.use.with.this.vm=Veuillez s\u00e9lectionner la bi-cl\u00e9 SSH que vous souhaitez utiliser avec cette VM \:
-message.please.wait.while.zone.is.being.created=Patienter pendant la cr\u00e9ation de la zone, cela peut prendre du temps...
-message.pod.dedication.released=Lib\u00e9ration du pod d\u00e9di\u00e9
-message.portable.ip.delete.confirm=Supprimer la plage IP portable ?
-message.project.invite.sent=Invitation envoy\u00e9e ; les utilisateurs seront ajout\u00e9s apr\u00e8s acceptation de l\\'invitation
-message.public.traffic.in.advanced.zone=Le trafic public est g\u00e9n\u00e9r\u00e9 lorsque les machines virtuelles dans le nuage acc\u00e8dent \u00e0 Internet. Des adresses IP publiquement accessibles doivent \u00eatre pr\u00e9vues \u00e0 cet effet. Les utilisateurs peuvent utiliser l\\'interface d\\'administration de CloudStack pour acqu\u00e9rir ces adresses IP qui impl\u00e9menteront une translation d\\'adresse NAT entre le r\u00e9seau d\\'invit\u00e9 et le r\u00e9seau public.<br/><br/>Fournir au moins une plage d\\'adresses IP pour le trafic Internet.
-message.public.traffic.in.basic.zone=Le trafic public est g\u00e9n\u00e9r\u00e9 lorsque les machines virtuelles dans le nuage acc\u00e8dent \u00e0 Internet ou fournissent des services \u00e0 des utilisateurs sur Internet. Des adresses IP publiquement accessibles doivent \u00eatre pr\u00e9vus \u00e0 cet effet. Quand une instance est cr\u00e9\u00e9e, une adresse IP publique depuis un ensemble d\\'adresses IP publiques sera allou\u00e9e \u00e0 l\\'instance, en plus de l\\'adresse IP de l\\'invit\u00e9. La translation d\\'adresses statique NAT 1-1 sera mises en place automatiquement entre l\\'adresse IP publique et l\\'adresse IP de l\\'invit\u00e9. Les utilisateurs peuvent \u00e9galement utiliser l\\'interface d\\'administration CloudStack pour acqu\u00e9rir des adresses IP suppl\u00e9mentaires pour ajouter une translation d\\'adresse statique NAT entre leurs instances et le r\u00e9seau d\\'adresses IP publiques.
-message.question.are.you.sure.you.want.to.add=\u00cates-vous certain de vouloir ajouter
-message.read.admin.guide.scaling.up=Veuillez lire le paragraphe "dynamic scaling" dans le guide d\\'administration avant d\\'op\u00e9rer un dimensionnement dynamique.
-message.recover.vm=Confirmer la restauration de cette VM.
-message.redirecting.region=Redirection vers r\u00e9gion...
-message.reinstall.vm=NOTE\: Proc\u00e9dez avec prudence. Cela entra\u00eenera la r\u00e9-installation de la VM \u00e0 partir du mod\u00e8le; les donn\u00e9es sur le disque ROOT seront perdues. Les volumes de donn\u00e9es suppl\u00e9mentaires, le cas \u00e9ch\u00e9ant, ne seront pas touch\u00e9s.
-message.removed.ssh.key.pair=Bi-cl\u00e9 SSH supprim\u00e9e
-message.remove.ldap=Voulez-vous supprimer la configuration LDAP ?
-message.remove.region=Voulez-vous supprimer cette r\u00e9gion depuis ce serveur d\\'administration ?
-message.remove.vpc=Confirmer la suppression du VPC
-message.remove.vpn.access=Supprimer l\\'acc\u00e8s VPN de cet utilisateur ?
-message.reset.password.warning.notPasswordEnabled=Le mod\u00e8le de cette instance a \u00e9t\u00e9 cr\u00e9\u00e9 sans la gestion de mot de passe
-message.reset.password.warning.notStopped=Votre instance doit \u00eatre arr\u00eat\u00e9e avant de changer son mot de passe
-message.reset.VPN.connection=Confirmer le r\u00e9-initialisation de la connexion VPN
-message.restart.mgmt.server=Red\u00e9marrez votre(vos) serveur(s) de management pour appliquer les nouveaux param\u00e8tres.
-message.restart.mgmt.usage.server=Red\u00e9marrer le ou les serveur(s) de gestion et le ou les serveur(s) de consommation pour que les nouveaux param\u00e8tres soient pris en compte.
-message.restart.network=Tous les services fournit par ce routeur virtuel vont \u00eatre interrompus. Confirmer le red\u00e9marrage de ce routeur.
-message.restart.vpc=Confirmer le red\u00e9marrage du VPC
-message.restart.vpc.remark=Veuillez confirmer que vous voulez red\u00e9marrer le VPC <p><small><i>Note \: transformer un VPC non-redondant en VPC redondant va forcer un nettoyage du routeur. Le r\u00e9seau associ\u00e9 ne sera pas disponible durant quelques minutes</i>.</small></p>
-message.restoreVM=Voulez-vous restaurer la VM ?
-message.role.ordering.fail=La r\u00e9organisation des r\u00e8gles d\\'autorisations a \u00e9t\u00e9 abandonn\u00e9e car la liste a chang\u00e9 pendant que vous apportez des modifications. Veuillez r\u00e9essayer.
-message.security.group.usage=(Utilisez <strong>Ctrl-clic</strong> pour s\u00e9lectionner les groupes de s\u00e9curit\u00e9 vis\u00e9s)
-message.select.affinity.groups=S\u00e9lectionner les groupes d\\'affinit\u00e9 qui appartiendront \u00e0 cette machine virtuelle \:
-message.select.a.zone=Une zone correspond typiquement \u00e0 un seul centre de donn\u00e9es. Des zones multiples peuvent permettre de rendre votre cloud plus fiable en apportant une isolation physique et de la redondance.
-message.select.instance=S\u00e9lectionner une instance.
-message.select.iso=S\u00e9lectionner un ISO pour votre nouvelle instance virtuelle.
-message.select.item=Merci de s\u00e9lectionner un \u00e9l\u00e9ment.
-message.select.security.groups=Merci de s\u00e9lectionner un(des) groupe(s) de s\u00e9curit\u00e9 pour la nouvelle VM
-message.select.template=S\u00e9lectionner un mod\u00e8le pour votre nouvelle instance virtuelle.
-message.select.tier=Veuillez selectionner un tiers
-message.set.default.NIC=Confirmer la mise par d\u00e9faut de cette NIC pour cette VM.
-message.set.default.NIC.manual=Veuillez mettre \u00e0 jour manuellement la NIC par d\u00e9faut sur la VM maintenant.
-message.setup.physical.network.during.zone.creation.basic=Quand vous ajoutez une zone basique, vous pouvez param\u00e9trer un seul r\u00e9seau physique, correspondant \u00e0 une carte r\u00e9seau sur l\\'hyperviseur. Ce r\u00e9seau comportera plusieurs types de trafic.<br/><br/>Vous pouvez \u00e9galement <strong>glisser et d\u00e9poser</strong> d\\'autres types de trafic sur le r\u00e9seau physique.
-message.setup.physical.network.during.zone.creation=Lorsque vous ajoutez une zone avanc\u00e9e, vous avez besoin de d\u00e9finir un ou plusieurs r\u00e9seaux physiques. Chaque r\u00e9seau correspond \u00e0 une carte r\u00e9seau sur l\\'hyperviseur. Chaque r\u00e9seau physique peut supporter un ou plusieurs types de trafic, avec certaines restrictions sur la fa\u00e7on dont ils peuvent \u00eatre combin\u00e9s.<br/><br/><strong>Glisser et d\u00e9poser un ou plusieurs types de trafic</strong> sur chaque r\u00e9seau physique.
-message.setup.successful=Installation du Cloud r\u00e9ussie \!
-message.snapshot.schedule=Vous pouvez configurer des plannings d\\'instantan\u00e9s r\u00e9currents en s\u00e9lectionnant les options disponibles ci-dessous et en appliquant votre politique pr\u00e9f\u00e9r\u00e9e.
-message.specifiy.tag.key.value=Sp\u00e9cifier une cl\u00e9 et valeur de tag
-message.specify.url=Renseigner l\\'URL
-message.step.1.continue=S\u00e9lectionnez un mod\u00e8le ou une image ISO pour continuer
-message.step.1.desc=S\u00e9lectionnez un mod\u00e8le pour votre nouvelle instance virtuelle. Vous pouvez \u00e9galement choisir un mod\u00e8le vierge sur lequel une image ISO pourra \u00eatre install\u00e9e.
-message.step.2.continue=S\u00e9lectionnez une offre de service pour continuer
-message.step.3.continue=S\u00e9lectionnez un offre de service de disque pour continuer
-message.step.4.continue=S\u00e9lectionnez au moins un r\u00e9seau pour continuer
-message.step.4.desc=S\u00e9lectionnez le r\u00e9seau principal auquel votre instance va \u00eatre connect\u00e9.
-message.storage.traffic=Trafic entre les ressources internes de CloudStack, incluant tous les composants qui communiquent avec le serveur d\\'administration, tels que les h\u00f4tes et les machines virtuelles Syst\u00e8mes CloudStack. Veuillez configurer le trafic de stockage ici.
-message.suspend.project=Voulez-vous suspendre ce projet ?
-message.systems.vms.ready=VMs Syst\u00e8mes pr\u00eats.
-message.template.copying=Le mod\u00e8le est copi\u00e9.
-message.template.desc=Image OS pouvant \u00eatre utilis\u00e9e pour d\u00e9marrer une VM
-message.tier.required=Le tiers est obligatoire
-message.tooltip.dns.1=Nom d\\'un serveur DNS utilis\u00e9 par les VM de la zone. Les adresses IP publiques de cette zone doivent avoir une route vers ce serveur.
-message.tooltip.dns.2=Nom d\\'un serveur DNS secondaire utilis\u00e9 par les VM de la zone. Les adresses IP publiques de cette zone doivent avoir une route vers ce serveur.
-message.tooltip.internal.dns.1=Nom d\\'un serveur DNS que CloudStack peut utiliser pour les VM syst\u00e8me dans cette zone. Les adresses IP priv\u00e9es des pods doivent avoir une route vers ce serveur.
-message.tooltip.internal.dns.2=Nom d\\'un serveur DNS que CloudStack peut utiliser pour les VM syst\u00e8me dans cette zone. Les adresses IP priv\u00e9es des pods doivent avoir une route vers ce serveur.
-message.tooltip.network.domain=Suffixe DNS qui cr\u00e9era un nom de domaine personnalis\u00e9 pour les r\u00e9seau accessible par les VM invit\u00e9es.
-message.tooltip.pod.name=Nom pour ce pod.
-message.tooltip.reserved.system.gateway=La passerelle pour les h\u00f4tes du pod.
-message.tooltip.reserved.system.netmask=Le pr\u00e9fixe r\u00e9seau utilis\u00e9 par le sous-r\u00e9seau du pod. Au format CIDR.
-message.tooltip.zone.name=Nom pour cette zone.
-message.update.os.preference=Choisissez votre OS pr\u00e9f\u00e9r\u00e9 pour cet h\u00f4te. Toutes les instances avec des pr\u00e9f\u00e9rences similaires seront d\\'abord allou\u00e9es \u00e0 cet h\u00f4te avant d\\'en choisir un autre.
-message.update.resource.count=Confirmer la mise \u00e0 jour des ressources pour ce compte.
-message.update.ssl.failed=\u00c9chec dans la mise \u00e0 jour du certificat SSL
-message.update.ssl=Soumettez un nouveau certificat SSL compatible X.509 qui sera mis \u00e0 jour sur chaque VM console proxy et VM sockage secondaire \:
-message.update.ssl.succeeded=Mise \u00e0 jour r\u00e9ussie des certificats SSL
-message.validate.accept=Veuillez entrer une valeur avec une extension valide.
-message.validate.creditcard=Veuillez entrer un num\u00e9ro de carte de cr\u00e9dit valide.
-message.validate.date.ISO=Veuillez entrer une date (ISO) valide.
-message.validate.date=Veuillez entrer une date valide.
-message.validate.digits=Veuillez entrer uniquement des chiffres.
-message.validate.email.address=Veuillez entrer une adresse email valide.
-message.validate.equalto=Veuillez entrer de nouveau la m\u00eame valeur.
-message.validate.fieldrequired=Ce champ est obligatoire.
-message.validate.fixfield=Veuillez corriger ce champ.
-message.validate.instance.name=Le nom de l\\'instance ne peut d\u00e9passer 63 caract\u00e8res. Seuls les lettres de a \u00e0 z, les chiffres de 0 \u00e0 9 et les tirets sont accept\u00e9s. Le nom doit commencer par une lettre et se terminer par une lettre ou un chiffre.
-message.validate.invalid.characters=Caract\u00e8res invalides trouv\u00e9s ; veuillez corriger.
-message.validate.maxlength=Veuillez entrer uniquement {0} caract\u00e8res.
-message.validate.max=Veuillez entrer une valeur inf\u00e9rieure ou \u00e9gale \u00e0 {0}.
-message.validate.minlength=Veuillez entrer au moins {0} caract\u00e8res.
-message.validate.number=Veuillez entrer un nombre valide.
-message.validate.range.length=Veuillez entrer une valeur de {0} \u00e0 {1} caract\u00e8res.
-message.validate.range=Veuillez entrer une valeur de {0} \u00e0 {1}.
-message.validate.URL=Veuillez entrer une URL valide.
-message.virtual.network.desc=Un r\u00e9seau virtuel d\u00e9di\u00e9 pour votre compte. Ce domaine de multi-diffusion est contenu dans un VLAN et l\\'ensemble des r\u00e9seaux d\\'acc\u00e8s publique sont rout\u00e9s par un routeur virtuel.
-message.vm.create.template.confirm=Cr\u00e9er un mod\u00e8le va red\u00e9marrer la VM automatiquement
-message.vm.review.launch=Merci de v\u00e9rifier les informations suivantes et de confirmer que votre instance virtuelle est correcte avant de la d\u00e9marrer.
-message.vnmc.available.list=VNMC n\\'est pas disponible dans la liste des fournisseurs.
-message.vnmc.not.available.list=VNMC n\\'est pas disponible dans la liste des fournisseurs.
-message.volume.create.template.confirm=Cr\u00e9er un mod\u00e8le pour ce disque ? La cr\u00e9ation peut prendre plusieurs minutes, voir plus, selon la taille du volume.
-message.waiting.for.builtin.templates.to.load=Attendre le chargement des mod\u00e8les pr\u00e9-construit...
-message.XSTools61plus.update.failed=\u00c9chec de mise \u00e0 jour champ XenServer Tools Version 6.1\\+. Erreur \:
-message.you.must.have.at.least.one.physical.network=Vous devez avoir au moins un r\u00e9seau physique
-message.your.cloudstack.is.ready=Votre CloudStack est pr\u00eat \!
-message.Zone.creation.complete=Cr\u00e9ation de la zone termin\u00e9e
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Cr\u00e9ation de la zone termin\u00e9e. Voulez-vous l\\'activer ?
-message.zone.no.network.selection=La zone s\u00e9lectionn\u00e9e ne propose pas le r\u00e9seau choisi
-message.zone.step.1.desc=S\u00e9lectionnez un mod\u00e8le de r\u00e9seau pour votre zone.
-message.zone.step.2.desc=Renseigner les informations suivantes pour ajouter une nouvelle zone
-message.zone.step.3.desc=Renseigner les informations suivantes pour ajouter un nouveau pod
-message.zoneWizard.enable.local.storage=ATTENTION \: si vous activez le stockage local pour cette zone, vous devez effectuer les op\u00e9rations suivantes, selon l\\'endroit o\u00f9 vous souhaitez lancer vos machines virtuelles Syst\u00e8mes \:<br/><br/>1. Si les machines virtuelles Syst\u00e8mes doivent \u00eatre lanc\u00e9es depuis le stockage primaire, ce dernier doit \u00eatre ajout\u00e9 \u00e0 la zone apr\u00e8s la cr\u00e9ation. Vous devez \u00e9galement d\u00e9marrer la zone dans un \u00e9tat d\u00e9sactiv\u00e9.<br/><br/>2. Si les machines virtuelles Syst\u00e8mes doivent \u00eatre lanc\u00e9es depuis le stockage local, le param\u00e8tre system.vm.use.local.storage doit \u00eatre d\u00e9fini \u00e0 \\'true\\' avant d\\'activer la zone.<br/><br/><br/>Voulez-vous continuer ?
-messgae.validate.min=Veuillez entrer une valeur sup\u00e9rieure ou \u00e9gale \u00e0 {0}.
-mode=Mode
-network.rate=D\u00e9bit R\u00e9seau
-notification.reboot.instance=Red\u00e9marrer l\\'instance
-notification.start.instance=D\u00e9marrer l\\'instance
-notification.stop.instance=Stopper l\\'instance
-side.by.side=C\u00f4te \u00e0 c\u00f4te
-state.Accepted=Accept\u00e9
-state.Active=Actif
-state.Allocated=Allou\u00e9
-state.Allocating=Allocation en cours
-state.BackedUp=Sauvegard\u00e9
-state.BackingUp=Sauvegarde en cours
-state.Completed=Termin\u00e9
-state.Creating=Cr\u00e9ation en cours
-state.Declined=Refus\u00e9
-state.Destroyed=Supprim\u00e9e
-state.detached=D\u00e9tach\u00e9
-state.Disabled=D\u00e9sactiv\u00e9
-state.Enabled=Actifs
-state.Error=Erreur
-state.Expunging=Purge en cours
-state.Migrating=Migration en cours
-state.Pending=En attente
-state.Ready=Pr\u00eat
-state.Running=D\u00e9marr\u00e9e
-state.Starting=D\u00e9marrage en cours
-state.Stopped=Arr\u00eat\u00e9e
-state.Stopping=Arr\u00eat en cours
-state.Suspended=Suspendu
-title.upload.volume=T\u00e9l\u00e9verser Volume
-ui.listView.filters.all=Tous
-ui.listView.filters.mine=Les miennes
diff --git a/client/WEB-INF/classes/resources/messages_hu.properties b/client/WEB-INF/classes/resources/messages_hu.properties
deleted file mode 100644
index 7497b8f..0000000
--- a/client/WEB-INF/classes/resources/messages_hu.properties
+++ /dev/null
@@ -1,2193 +0,0 @@
-# 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.
-
-changed.item.properties=Az elem tulajdons\u00e1gai megv\u00e1ltoztak
-confirm.enable.s3=T\u00f6ltsd ki a k\u00f6vetkez\u0151 inform\u00e1ci\u00f3kat az S3 m\u00e1sodlagos t\u00e1r bekapcsol\u00e1s\u00e1hoz\!
-confirm.enable.swift=T\u00f6ltsd ki a k\u00f6vetkez\u0151 inform\u00e1ci\u00f3kat a Swift t\u00e1mogat\u00e1s bekapcsol\u00e1s\u00e1hoz\!
-error.could.not.change.your.password.because.ldap.is.enabled=Nem siker\u00fclt megv\u00e1ltoztatni a jelszavadat, mert az LDAP be van kapcsolva.
-error.could.not.enable.zone=A z\u00f3na enged\u00e9lyez\u00e9se sikertelen
-error.installWizard.message=Valami nem siker\u00fclt, visszamehetsz kijav\u00edtani a hib\u00e1kat.
-error.invalid.username.password=\u00c9rv\u00e9nytelen felhaszn\u00e1l\u00f3n\u00e9v vagy jelsz\u00f3
-error.login=A felhaszn\u00e1l\u00f3n\u00e9v/jelsz\u00f3 p\u00e1r nem \u00e9rv\u00e9nyes.
-error.menu.select=A m\u0171velet nem hajthat\u00f3 v\u00e9gre, mert nincsenek kiv\u00e1lasztott elemek.
-error.mgmt.server.inaccessible=A vez\u00e9rl\u0151 szerver nem \u00e9rhet\u0151 el. Pr\u00f3b\u00e1ld \u00fajra k\u00e9s\u0151bb\!
-error.password.not.match=A jelszavak nem egyeznek.
-error.please.specify.physical.network.tags=A h\u00e1l\u00f3zati aj\u00e1nlatok nem \u00e9rhet\u0151ek el addig, am\u00edg meg nem adsz c\u00edmk\u00e9ket a fizikai h\u00e1l\u00f3tathoz.
-error.session.expired=A munkamenet lej\u00e1rt.
-error.something.went.wrong.please.correct.the.following=Valami nem j\u00f3\! Jav\u00edtsd a k\u00f6vetkez\u0151ket\:
-error.unable.to.reach.management.server=A vez\u00e9rl\u0151 szerver nem el\u00e9rhet\u0151
-error.unresolved.internet.name=Az internet neved nem oldhat\u00f3 fel.
-force.delete.domain.warning=Figyelmeztet\u00e9s\: Ha ezt v\u00e1lasztod, t\u00f6rl\u0151dni fog minden al\u00e1rendelt dom\u00e9n \u00e9s minden kapcsol\u00f3d\u00f3 sz\u00e1mla \u00e9s a hozz\u00e1juk tartoz\u00f3 er\u0151forr\u00e1sok.
-force.delete=T\u00f6rl\u00e9s kik\u00e9nyszer\u00edt\u00e9se
-force.remove=Elt\u00e1vol\u00edt\u00e1s kik\u00e9nyszer\u00edt\u00e9se
-force.remove.host.warning=Figyelmeztet\u00e9s\: Ha ezt az opci\u00f3t v\u00e1lasztod, a CloudStack minden virtu\u00e1lis g\u00e9pet le\u00e1ll\u00edt miel\u0151tt elt\u00e1vol\u00edtja a kiszolg\u00e1l\u00f3t a f\u00fcrtb\u0151l.
-force.stop.instance.warning=Figyelmeztet\u00e9s\: A p\u00e9ld\u00e1ny er\u0151szakos le\u00e1ll\u00edt\u00e1sa az utols\u00f3 lehet\u0151s\u00e9g. Ez adatveszt\u00e9shez \u00e9s a virtu\u00e1lis g\u00e9p inkonzisztens viselked\u00e9s\u00e9hez vezethet.
-force.stop=Le\u00e1ll\u00e1s kik\u00e9nyszer\u00edt\u00e9se
-hint.no.host.tags=Nincsenek kiszolg\u00e1l\u00f3 c\u00edmk\u00e9k
-hint.no.storage.tags=Nincsenek t\u00e1r c\u00edmk\u00e9k
-hint.type.part.host.tag=\u00cdrd be egy kiszolg\u00e1l\u00f3 c\u00edmke r\u00e9sz\u00e9t
-hint.type.part.storage.tag=\u00cdrd be egy t\u00e1r c\u00edmke r\u00e9sz\u00e9t
-ICMP.code=ICMP k\u00f3d
-ICMP.type=ICMP t\u00edpus
-image.directory=Image K\u00f6nyvt\u00e1r
-inline=Inline
-instances.actions.reboot.label=P\u00e9ld\u00e1ny \u00fajraind\u00edt\u00e1sa
-label.about.app=A CloudStack-r\u0151l
-label.about=N\u00e9vjegy
-label.accept.project.invitation=Project-megh\u00edv\u00f3 elfogad\u00e1sa
-label.account.and.security.group=Sz\u00e1mla, biztons\u00e1gi csoport
-label.account.details=Sz\u00e1mla r\u00e9szletei
-label.account.id=Sz\u00e1mla azonos\u00edt\u00f3
-label.account.lower=sz\u00e1mla
-label.account.name=Sz\u00e1mla n\u00e9v
-label.account.specific=Sz\u00e1mla-specifikus
-label.accounts=Sz\u00e1ml\u00e1k
-label.account=Sz\u00e1mla
-label.account.type=Sz\u00e1mla t\u00edpus
-label.acl=ACL
-label.acl.id=ACL ID
-label.acl.name=ACL n\u00e9v
-label.acl.replaced=ACL lehelyettes\u00edtve
-label.acquire.new.ip=\u00daj IP c\u00edm beszerz\u00e9se
-label.acquire.new.secondary.ip=\u00daj m\u00e1sodlagos IP c\u00edm beszerz\u00e9se
-label.action.attach.disk=Merevlemez csatlakoztat\u00e1sa
-label.action.attach.disk.processing=Merevlemez csatlakoztat\u00e1sa...
-label.action.attach.iso=ISO csatlakoztat\u00e1sa
-label.action.attach.iso.processing=ISO csatlakoztat\u00e1sa...
-label.action.cancel.maintenance.mode=Karbantart\u00e1si m\u00f3d megszak\u00edt\u00e1sa
-label.action.cancel.maintenance.mode.processing=Karbantart\u00e1si m\u00f3d megszak\u00edt\u00e1sa...
-label.action.change.password=Jelsz\u00f3 csere
-label.action.change.service.processing=Szolg\u00e1ltat\u00e1s v\u00e1ltoztat\u00e1sa...
-label.action.change.service=Szolg\u00e1ltat\u00e1s v\u00e1ltoztat\u00e1sa
-label.action.copy.ISO=ISO m\u00e1sol\u00e1sa
-label.action.copy.ISO.processing=ISO m\u00e1sol\u00e1sa...
-label.action.copy.template.processing=Sablon m\u00e1sol\u00e1sa...
-label.action.copy.template=Sablon m\u00e1sol\u00e1sa
-label.action.create.template.from.vm=Sablon l\u00e9trehoz\u00e1sa VM-b\u0151l
-label.action.create.template.from.volume=Sablon l\u00e9trehoz\u00e1sa k\u00f6tetb\u0151l
-label.action.create.template.processing=Sablon l\u00e9trehoz\u00e1sa...
-label.action.create.template=Sablon l\u00e9trehoz\u00e1sa
-label.action.create.vm.processing=VM l\u00e9trehoz\u00e1sa...
-label.action.create.vm=VM l\u00e9trehoz\u00e1sa
-label.action.create.volume=K\u00f6tet l\u00e9trehoz\u00e1sa
-label.action.create.volume.processing=K\u00f6tet l\u00e9trehoz\u00e1sa....
-label.action.delete.account.processing=Sz\u00e1mla t\u00f6rl\u00e9se...
-label.action.delete.account=Sz\u00e1mla t\u00f6rl\u00e9se
-label.action.delete.cluster=F\u00fcrt t\u00f6rl\u00e9se
-label.action.delete.cluster.processing=F\u00fcrt t\u00f6rl\u00e9se...
-label.action.delete.disk.offering.processing=T\u00e1r aj\u00e1nlat t\u00f6rl\u00e9se...
-label.action.delete.disk.offering=T\u00e1r aj\u00e1nlat t\u00f6rl\u00e9se
-label.action.delete.domain=Dom\u00e9n t\u00f6rl\u00e9se
-label.action.delete.domain.processing=Dom\u00e9n t\u00f6rl\u00e9se...
-label.action.delete.firewall.processing=T\u0171zfal t\u00f6rl\u00e9se...
-label.action.delete.firewall=T\u0171zfal szab\u00e1ly t\u00f6rl\u00e9se
-label.action.delete.ingress.rule=Ingress szab\u00e1ly t\u00f6rl\u00e9se
-label.action.delete.ingress.rule.processing=Ingress szab\u00e1ly t\u00f6rl\u00e9se...
-label.action.delete.IP.range=IP c\u00edmtartom\u00e1ny t\u00f6rl\u00e9se
-label.action.delete.IP.range.processing=IP c\u00edmtartom\u00e1ny t\u00f6rl\u00e9se...
-label.action.delete.ISO=ISO t\u00f6rl\u00e9se
-label.action.delete.ISO.processing=ISO t\u00f6rl\u00e9se...
-label.action.delete.load.balancer.processing=Terhel\u00e9seloszt\u00f3 t\u00f6rl\u00e9se...
-label.action.delete.load.balancer=Terhel\u00e9seloszt\u00f3 szab\u00e1ly t\u00f6rl\u00e9se
-label.action.delete.network=H\u00e1l\u00f3zat t\u00f6rl\u00e9se
-label.action.delete.network.processing=H\u00e1l\u00f3zat t\u00f6rl\u00e9se...
-label.action.delete.nexusVswitch=Nexus 1000v t\u00f6rl\u00e9se
-label.action.delete.nic=NIC elt\u00e1vol\u00edt\u00e1sa
-label.action.delete.physical.network=Fizikai h\u00e1l\u00f3zat t\u00f6rl\u00e9se
-label.action.delete.pod=Pod t\u00f6rl\u00e9se
-label.action.delete.pod.processing=Pod t\u00f6rl\u00e9se...
-label.action.delete.primary.storage=Els\u0151dleges t\u00e1r t\u00f6rl\u00e9se
-label.action.delete.primary.storage.processing=Els\u0151dleges t\u00e1r t\u00f6rl\u00e9se...
-label.action.delete.secondary.storage=M\u00e1sodlagos t\u00e1r t\u00f6rl\u00e9se
-label.action.delete.secondary.storage.processing=M\u00e1sodlagos t\u00e1r t\u00f6rl\u00e9se...
-label.action.delete.security.group=Biztons\u00e1gi csoport t\u00f6rl\u00e9se
-label.action.delete.security.group.processing=Biztons\u00e1gi csoport t\u00f6rl\u00e9se...
-label.action.delete.service.offering.processing=Szolg\u00e1ltat\u00e1s aj\u00e1nlat t\u00f6rl\u00e9se...
-label.action.delete.service.offering=Szolg\u00e1ltat\u00e1s aj\u00e1nlat t\u00f6rl\u00e9se
-label.action.delete.snapshot=Pillanatfelv\u00e9tel t\u00f6rl\u00e9se
-label.action.delete.snapshot.processing=Pillanatfelv\u00e9tel t\u00f6rl\u00e9se...
-label.action.delete.system.service.offering=Rendszer szolg\u00e1ltat\u00e1s aj\u00e1nlat t\u00f6rl\u00e9se
-label.action.delete.template.processing=Sablon t\u00f6rl\u00e9se...
-label.action.delete.template=Sablon t\u00f6rl\u00e9se
-label.action.delete.user=Felhaszn\u00e1l\u00f3 t\u00f6rl\u00e9se
-label.action.delete.user.processing=Felhaszn\u00e1l\u00f3 t\u00f6rl\u00e9se...
-label.action.delete.volume=K\u00f6tet t\u00f6rl\u00e9se
-label.action.delete.volume.processing=K\u00f6tet t\u00f6rl\u00e9se...
-label.action.delete.zone.processing=Z\u00f3na t\u00f6rl\u00e9se...
-label.action.delete.zone=Z\u00f3na t\u00f6rl\u00e9se
-label.action.destroy.instance.processing=P\u00e9ld\u00e1ny elpuszt\u00edt\u00e1sa...
-label.action.destroy.instance=P\u00e9ld\u00e1ny elpuszt\u00edt\u00e1sa
-label.action.destroy.systemvm.processing=Rendszer VM elpuszt\u00edt\u00e1sa...
-label.action.destroy.systemvm=Rendszer VM elpuszt\u00edt\u00e1sa
-label.action.detach.disk=Merevlemez lev\u00e1laszt\u00e1sa
-label.action.detach.disk.processing=Merevlemez lev\u00e1laszt\u00e1sa...
-label.action.detach.iso=ISO lev\u00e1laszt\u00e1sa
-label.action.detach.iso.processing=ISO lev\u00e1laszt\u00e1sa...
-label.action.disable.account.processing=Sz\u00e1mla kikapcsol\u00e1sa...
-label.action.disable.account=Sz\u00e1mla kikapcsol\u00e1sa
-label.action.disable.cluster=F\u00fcrt kikapcsol\u00e1sa
-label.action.disable.cluster.processing=F\u00fcrt kikapcsol\u00e1sa...
-label.action.disable.nexusVswitch=Nexus 1000v kikapcsol\u00e1sa
-label.action.disable.physical.network=Fizikikai h\u00e1l\u00f3zat kikapcsol\u00e1sa
-label.action.disable.pod=Pod kikapcsol\u00e1sa
-label.action.disable.pod.processing=Pod kikapcsol\u00e1sa...
-label.action.disable.static.NAT.processing=Statikus NAT kikapcsol\u00e1sa...
-label.action.disable.static.NAT=Statikus NAT kikapcsol\u00e1sa
-label.action.disable.user=Felhaszn\u00e1l\u00f3 kikapcsol\u00e1sa
-label.action.disable.user.processing=Felhaszn\u00e1l\u00f3 kikapcsol\u00e1sa...
-label.action.disable.zone.processing=Z\u00f3na kikapcsol\u00e1sa...
-label.action.disable.zone=Z\u00f3na kikapcsol\u00e1sa
-label.action.download.ISO=ISO let\u00f6lt\u00e9se
-label.action.download.template=Sablon let\u00f6lt\u00e9se
-label.action.download.volume=K\u00f6tet let\u00f6lt\u00e9se
-label.action.download.volume.processing=K\u00f6tet let\u00f6lt\u00e9se...
-label.action.edit.account=Sz\u00e1mla enged\u00e9lyez\u00e9se
-label.action.edit.disk.offering=Merevlemez aj\u00e1nlat szerkeszt\u00e9se
-label.action.edit.domain=Dom\u00e9n szerkeszt\u00e9se
-label.action.edit.global.setting=Glob\u00e1lis be\u00e1ll\u00edt\u00e1s szerkeszt\u00e9se
-label.action.edit.host=Kiszolg\u00e1l\u00f3 szerkeszt\u00e9se
-label.action.edit.instance=P\u00e9ld\u00e1ny szerkeszt\u00e9se
-label.action.edit.ISO=ISO szerkeszt\u00e9se
-label.action.edit.network=H\u00e1l\u00f3zat szerkeszt\u00e9se
-label.action.edit.network.offering=H\u00e1l\u00f3zat aj\u00e1nlat szerkeszt\u00e9se
-label.action.edit.network.processing=H\u00e1l\u00f3zat szerkeszt\u00e9se...
-label.action.edit.pod=Pod szerkeszt\u00e9se
-label.action.edit.primary.storage=Els\u0151dleges t\u00e1r szerkeszt\u00e9se
-label.action.edit.resource.limits=Er\u0151forr\u00e1s korl\u00e1tok szerkeszt\u00e9se
-label.action.edit.service.offering=Szolg\u00e1ltat\u00e1s aj\u00e1nlat szerkeszt\u00e9se
-label.action.edit.template=Sablon szerkeszt\u00e9se
-label.action.edit.user=Felhaszn\u00e1l\u00f3 szerkeszt\u00e9se
-label.action.edit.zone=Z\u00f3na szerkeszt\u00e9se
-label.action.enable.account.processing=Sz\u00e1mla szerkeszt\u00e9se...
-label.action.enable.account=Sz\u00e1mla enged\u00e9lyez\u00e9se
-label.action.enable.cluster=F\u00fcrt enged\u00e9lyez\u00e9se
-label.action.enable.cluster.processing=F\u00fcrt enged\u00e9lyez\u00e9se...
-label.action.enable.maintenance.mode=Karbantart\u00e1si \u00fczemm\u00f3d enged\u00e9lyez\u00e9se
-label.action.enable.maintenance.mode.processing=Karbantart\u00e1si \u00fczemm\u00f3d enged\u00e9lyez\u00e9se...
-label.action.enable.nexusVswitch=Nexus 1000v bekapcsol\u00e1sa
-label.action.enable.physical.network=Fizikai h\u00e1l\u00f3zat bekapcsol\u00e1sa
-label.action.enable.pod=Pod bekapcsol\u00e1sa
-label.action.enable.pod.processing=Pod bekapcsol\u00e1sa...
-label.action.enable.static.NAT.processing=Statikus NAT bekapcsol\u00e1sa...
-label.action.enable.static.NAT=Statikus NAT bekapcsol\u00e1sa
-label.action.enable.user=Felhaszn\u00e1l\u00f3 bekapcsol\u00e1sa
-label.action.enable.user.processing=Felhaszn\u00e1l\u00f3 bekapcsol\u00e1sa...
-label.action.enable.zone.processing=Z\u00f3na bekapcsol\u00e1sa....
-label.action.enable.zone=Z\u00f3na bekapcsol\u00e1sa
-label.action.expunge.instance.processing=P\u00e9ld\u00e1ny t\u00f6rl\u00e9se...
-label.action.expunge.instance=P\u00e9ld\u00e1ny t\u00f6rl\u00e9se
-label.action.force.reconnect.processing=\u00dajrakapcsol\u00f3d\u00e1s...
-label.action.force.reconnect=\u00dajracsatlakoz\u00e1s kik\u00e9nyszer\u00edt\u00e9se
-label.action.generate.keys=Kulcsgener\u00e1l\u00e1s
-label.action.generate.keys.processing=Kulcsgener\u00e1l\u00e1s....
-label.action.list.nexusVswitch=Nexus 1000v lista
-label.action.lock.account.processing=Sz\u00e1mla z\u00e1r\u00e1sa...
-label.action.lock.account=Sz\u00e1mla z\u00e1r\u00e1sa
-label.action.manage.cluster=F\u00fcrt vez\u00e9rl\u00e9se
-label.action.manage.cluster.processing=F\u00fcrt vez\u00e9rl\u00e9se...
-label.action.migrate.instance.processing=P\u00e9ld\u00e1ny mozgat\u00e1sa...
-label.action.migrate.instance=P\u00e9ld\u00e1ny k\u00f6lt\u00f6ztet\u00e9se
-label.action.migrate.router.processing=Router mozgat\u00e1sa...
-label.action.migrate.router=Router k\u00f6lt\u00f6ztet\u00e9se
-label.action.migrate.systemvm.processing=Rendszer VM mozgat\u00e1sa...
-label.action.migrate.systemvm=Rendszer VM k\u00f6lt\u00f6ztet\u00e9se
-label.action=M\u0171velet
-label.action.reboot.instance.processing=P\u00e9ld\u00e1ny \u00fajraind\u00edt\u00e1sa
-label.action.reboot.instance=P\u00e9ld\u00e1ny \u00fajraind\u00edt\u00e1sa
-label.action.reboot.router.processing=Router \u00fajraind\u00edt\u00e1sa...
-label.action.reboot.router=Router \u00fajraind\u00edt\u00e1sa
-label.action.reboot.systemvm.processing=Rendszer VM \u00fajraind\u00edt\u00e1sa
-label.action.reboot.systemvm=Rendszer VM \u00fajraind\u00edt\u00e1sa
-label.action.recurring.snapshot=Ism\u00e9tl\u0151d\u0151 pillanatfelv\u00e9telek
-label.action.register.iso=ISO regisztr\u00e1ci\u00f3ja
-label.action.register.template=Sablon regisztr\u00e1ci\u00f3ja URL-r\u0151l
-label.action.release.ip=IP c\u00edm elenged\u00e9se
-label.action.release.ip.processing=IP c\u00edm elenged\u00e9se
-label.action.remove.host=Kiszolg\u00e1l\u00f3 elt\u00e1vol\u00edt\u00e1sa
-label.action.remove.host.processing=Kiszolg\u00e1l\u00f3 elt\u00e1vol\u00edt\u00e1sa...
-label.action.reset.password=Jelsz\u00f3 \u00fajrabe\u00e1ll\u00edt\u00e1sa
-label.action.reset.password.processing=Jelsz\u00f3 \u00fajrabe\u00e1ll\u00edt\u00e1sa...
-label.action.resize.volume=K\u00f6tet \u00e1tm\u00e9retez\u00e9se
-label.action.resize.volume.processing=K\u00f6tet \u00e1tm\u00e9retez\u00e9se
-label.action.resource.limits=Er\u0151forr\u00e1s korl\u00e1tok
-label.action.restore.instance.processing=P\u00e9ld\u00e1ny helyre\u00e1ll\u00edt\u00e1sa...
-label.action.restore.instance=P\u00e9ld\u00e1ny helyre\u00e1ll\u00edt\u00e1sa
-label.action.revert.snapshot.processing=Vissza\u00e1ll\u00e1s pillanatfelv\u00e9telre...
-label.action.revert.snapshot=Vissza\u00e1ll\u00e1s pillanatfelv\u00e9telre
-label.actions=M\u0171veletek
-label.action.start.instance.processing=P\u00e9ld\u00e1ny ind\u00edt\u00e1sa...
-label.action.start.instance=P\u00e9ld\u00e1ny ind\u00edt\u00e1sa
-label.action.start.router.processing=Router le\u00e1ll\u00edt\u00e1sa...
-label.action.start.router=Router ind\u00edt\u00e1sa
-label.action.start.systemvm.processing=Rendszer VM ind\u00edt\u00e1sa
-label.action.start.systemvm=Rendszer VM ind\u00edt\u00e1sa
-label.action.stop.instance.processing=P\u00e9ld\u00e1ny le\u00e1ll\u00edt\u00e1sa...
-label.action.stop.instance=P\u00e9ld\u00e1ny le\u00e1ll\u00edt\u00e1sa
-label.action.stop.router.processing=Router le\u00e1ll\u00edt\u00e1sa...
-label.action.stop.router=Router le\u00e1ll\u00edt\u00e1sa
-label.action.stop.systemvm.processing=Rendszer VM le\u00e1ll\u00edt\u00e1sa...
-label.action.stop.systemvm=Rendszer VM le\u00e1ll\u00edt\u00e1sa
-label.action.take.snapshot=Pillanatfelv\u00e9tel k\u00e9sz\u00edt\u00e9se
-label.action.take.snapshot.processing=Pillanatfelv\u00e9tel k\u00e9sz\u00edt\u00e9se...
-label.action.unmanage.cluster=F\u00fcrt vez\u00e9rl\u00e9s le\u00e1ll\u00edt\u00e1sa
-label.action.unmanage.cluster.processing=F\u00fcrt vez\u00e9rl\u00e9s le\u00e1ll\u00edt\u00e1sa...
-label.action.update.OS.preference=OS preferencia m\u00f3dos\u00edt\u00e1sa
-label.action.update.OS.preference.processing=OS preferencia m\u00f3dos\u00edt\u00e1sa...
-label.action.update.resource.count=Er\u0151forr\u00e1s sz\u00e1m m\u00f3dos\u00edt\u00e1sa
-label.action.update.resource.count.processing=Er\u0151forr\u00e1s sz\u00e1m m\u00f3dos\u00edt\u00e1sa...
-label.action.vmsnapshot.create=VM pillanatfelv\u00e9tel k\u00e9sz\u00edt\u00e9se
-label.action.vmsnapshot.delete=VM pillanatfelv\u00e9tel k\u00e9sz\u00edt\u00e9se
-label.action.vmsnapshot.revert=Vissza\u00e1ll\u00e1s VM pillanatfelv\u00e9telre
-label.activate.project=Projekt aktiv\u00e1l\u00e1sa
-label.active.sessions=Akt\u00edv munkamenetek
-label.add.accounts=Sz\u00e1ml\u00e1k felv\u00e9tele
-label.add.accounts.to=Sz\u00e1mla felv\u00e9tele\:
-label.add.account=Sz\u00e1mla felv\u00e9tele
-label.add.account.to.project=Sz\u00e1mla felv\u00e9tele a projekthez
-label.add.ACL=ACL felv\u00e9tele
-label.add.acl.list=ACL lista felv\u00e9tele
-label.add.affinity.group=\u00daj affin\u00edt\u00e1si csoport felv\u00e9tele
-label.add.baremetal.dhcp.device=Baremetal DHCP eszk\u00f6z felv\u00e9tele
-label.add.baremetal.rack.configuration=Baremetal rack konfigur\u00e1ci\u00f3 felv\u00e9tele
-label.add.BigSwitchBcf.device=BigSwitch BCF vez\u00e9rl\u0151 felv\u00e9tele
-label.add.BrocadeVcs.device=Brocade Vcs Switch felv\u00e9tele
-label.add.by=Add by
-label.add.by.cidr=Add By CIDR
-label.add.by.group=Add By Group
-label.add.ciscoASA1000v=CiscoASA1000v er\u0151forr\u00e1s felv\u00e9tele
-label.add.cluster=F\u00fcrt felv\u00e9tele
-label.add.compute.offering=CPU aj\u00e1nlat felv\u00e9tele
-label.add.direct.iprange=IP tartom\u00e1ny felv\u00e9tele
-label.add.disk.offering=Merevlemez aj\u00e1nlat felv\u00e9tele
-label.add.domain=Dom\u00e9n felv\u00e9tele
-label.added.brocade.vcs.switch=Added new Brocade Vcs Switch
-label.added.network.offering=H\u00e1l\u00f3zat aj\u00e1nlat felv\u00e9ve
-label.added.new.bigswitch.bcf.controller=BigSwitch BCF vez\u00e9rl\u0151 felv\u00e9ve
-label.added.nicira.nvp.controller=Added new Nicira NVP Controller
-label.add.egress.rule=Kimen\u0151 szab\u00e1ly felv\u00e9tele
-label.addes.new.f5=\u00daj F5 felv\u00e9tele
-label.add.F5.device=F5 eszk\u00f6z felv\u00e9tele
-label.add=Felv\u00e9tel
-label.add.firewall=T\u0171zfal szab\u00e1ly felv\u00e9tele
-label.add.globo.dns=GloboDNS felv\u00e9tele
-label.add.gslb=GSLB felv\u00e9tele
-label.add.guest.network=Vend\u00e9g h\u00e1l\u00f3zat felv\u00e9tele
-label.add.host=Kiszolg\u00e1l\u00f3 felv\u00e9tele
-label.adding.cluster=F\u00fcrt felv\u00e9tele
-label.adding.failed=Hiba a felv\u00e9tel sor\u00e1n
-label.adding=Felv\u00e9tel
-label.adding.pod=Pod felv\u00e9tele
-label.adding.processing=Felv\u00e9tel...
-label.add.ingress.rule=Ingress szab\u00e1ly felv\u00e9tele
-label.adding.succeeded=Sikeres felv\u00e9tel
-label.adding.user=Felhaszn\u00e1l\u00f3 felv\u00e9tele
-label.adding.zone=Z\u00f3na felv\u00e9tele
-label.add.intermediate.certificate=K\u00f6zb\u00fcls\u0151 tan\u00fas\u00edtv\u00e1ny felv\u00e9tele
-label.add.internal.lb=Bels\u0151 LB felv\u00e9tele
-label.add.ip.range=IP c\u00edmtartom\u00e1ny felv\u00e9tele
-label.add.isolated.guest.network=Izol\u00e1lt vend\u00e9g h\u00e1l\u00f3zat felv\u00e9tele
-label.add.isolated.network=Izol\u00e1lt h\u00e1l\u00f3zat felv\u00e9tele
-label.additional.networks=Tov\u00e1bbi h\u00e1l\u00f3zatok
-label.add.ldap.account=LDAP hozz\u00e1f\u00e9r\u00e9s felv\u00e9tele
-label.add.LDAP.account=LDAP sz\u00e1mla felv\u00e9tele
-label.add.list.name=ACL lista n\u00e9v
-label.add.load.balancer=Terhel\u00e9seloszt\u00f3 felv\u00e9tele
-label.add.more=Tov\u00e1bbi felv\u00e9tele
-label.add.netScaler.device=Netscaler eszk\u00f6z felv\u00e9tele
-label.add.network.ACL=H\u00e1l\u00f3zati ACL felv\u00e9tele
-label.add.network.acl.list=H\u00e1l\u00f3zati ACL lista felv\u00e9tele
-label.add.network.device=Add Network Device
-label.add.network=H\u00e1l\u00f3zat felv\u00e9tele
-label.add.network.offering=H\u00e1l\u00f3zati aj\u00e1nlat felv\u00e9tele
-label.add.new.F5=\u00daj F5 felv\u00e9tele
-label.add.new.gateway=\u00daj \u00e1tj\u00e1r\u00f3 felv\u00e9tele
-label.add.new.NetScaler=\u00daj NetScaler felv\u00e9tele
-label.add.new.PA=\u00daj Palo Alto felv\u00e9tele
-label.add.new.SRX=\u00daj SRX felv\u00e9tele
-label.add.new.tier=\u00daj r\u00e9teg felv\u00e9tele
-label.add.nfs.secondary.staging.store=Add NFS Secondary Staging Store
-label.add.NiciraNvp.device=Nvp Controller felv\u00e9tele
-label.add.NuageVsp.device=Nuage Virtualized Services Directory (VSD) felv\u00e9tele
-label.add.OpenDaylight.device=OpenDaylight Controller hozz\u00e1ad\u00e1sa
-label.add.PA.device=Palo Alto eszk\u00f6z felv\u00e9tele
-label.add.physical.network=Fizikai h\u00e1l\u00f3zat felv\u00e9tele
-label.add.pod=Pod felv\u00e9tele
-label.add.portable.ip.range=Portolhat\u00f3 IP tartom\u00e1ny felv\u00e9tele
-label.add.port.forwarding.rule=Port tov\u00e1bb\u00edt\u00f3 szab\u00e1ly felv\u00e9tele
-label.add.primary.storage=Els\u0151dleges t\u00e1r felv\u00e9tele
-label.add.private.gateway=Priv\u00e1t \u00e1tj\u00e1r\u00f3 felv\u00e9tele
-label.add.region=R\u00e9gi\u00f3 felv\u00e9tele
-label.add.resources=Er\u0151forr\u00e1sok felv\u00e9tele
-label.add.route=\u00datvonal felv\u00e9tele
-label.add.rule=Szab\u00e1ly felv\u00e9tele
-label.add.secondary.storage=M\u00e1sodlagos t\u00e1r felv\u00e9tele
-label.add.security.group=Biztons\u00e1gi csoport felv\u00e9tele
-label.add.service.offering=Szolg\u00e1ltat\u00e1s aj\u00e1nlat felv\u00e9tele
-label.add.SRX.device=SRX szk\u00f6z felv\u00e9tele
-label.add.static.nat.rule=Statikus NAT szab\u00e1ly felv\u00e9tele
-label.add.static.route=Statikus \u00fatvonal felv\u00e9tele
-label.add.system.service.offering=Add System Service Offering
-label.add.template=Sablon felv\u00e9tele
-label.add.to.group=Felv\u00e9tel a csoportba
-label.add.ucs.manager=UCS Manager felv\u00e9tele
-label.add.userdata=Felhaszn\u00e1l\u00f3 adat
-label.add.user=Felhaszn\u00e1l\u00f3 felv\u00e9tele
-label.add.vlan=VLAN felv\u00e9tele
-label.add.vms.to.lb=VM(ek) felv\u00e9tele a terhel\u00e9seloszt\u00f3 szab\u00e1lyba
-label.add.vms=VM-ek felv\u00e9tele
-label.add.VM.to.tier=VM felv\u00e9tele r\u00e9tegbe
-label.add.vm=VM felv\u00e9tele
-label.add.vmware.datacenter=VMware adatk\u00f6zpont felv\u00e9tele
-label.add.vnmc.device=VNMC eszk\u00f6z felv\u00e9tele
-label.add.vnmc.provider=VNMC szolg\u00e1ltat\u00f3 felv\u00e9tele
-label.add.volume=K\u00f6tet felv\u00e9tele
-label.add.vpc.offering=VPC aj\u00e1nlat felv\u00e9tele
-label.add.vpc=VPC felv\u00e9tele
-label.add.vpn.customer.gateway=VPN \u00fcgyf\u00e9lkapu felv\u00e9tele
-label.add.VPN.gateway=VPN \u00e1tj\u00e1r\u00f3 felv\u00e9tele
-label.add.vpn.user=VPN felhaszn\u00e1l\u00f3 felv\u00e9tele
-label.add.vxlan=VXLAN felv\u00e9tele
-label.add.zone=Z\u00f3na felv\u00e9tele
-label.admin.accounts=Adminisztr\u00e1tor hozz\u00e1f\u00e9r\u00e9sek
-label.admin=Adminisztr\u00e1tor
-label.advanced=Halad\u00f3
-label.advanced.mode=Halad\u00f3 m\u00f3d
-label.advanced.search=Halad\u00f3 keres\u00e9s
-label.affinity=Affin\u00edt\u00e1s
-label.affinity.group=Affin\u00edt\u00e1si csoport
-label.affinity.groups=Affin\u00edt\u00e1si csoportok
-label.agent.password=\u00dcgyn\u00f6k jelsz\u00f3
-label.agent.port=\u00dcgyn\u00f6k port
-label.agent.state=\u00dcgyn\u00f6k \u00e1llapot
-label.agent.username=\u00dcgyn\u00f6k felhaszn\u00e1l\u00f3n\u00e9v
-label.agree=Elfogadom
-label.alert.archived=Riaszt\u00e1s archiv\u00e1lva
-label.alert.deleted=Riaszt\u00e1s t\u00f6r\u00f6lve
-label.alert.details=Riaszt\u00e1s r\u00e9szletei
-label.alert=Riaszt\u00e1s
-label.algorithm=Algoritmus
-label.allocated=Lek\u00f6t\u00f6ve
-label.allocation.state=Lefoglal\u00e1s \u00e1llapota
-label.allow=Enged\u00e9lyez
-label.anti.affinity=Anti-affin\u00edt\u00e1s
-label.anti.affinity.group=Anti-affin\u00edt\u00e1s csoport
-label.anti.affinity.groups=Anti-affin\u00edt\u00e1s csoportok
-label.api.key=API kulcs
-label.api.version=API verzi\u00f3
-label.apply=Alkalmaz
-label.app.name=CloudStack
-label.archive.alerts=Riaszt\u00e1sok archiv\u00e1l\u00e1sa
-label.archive=Archive
-label.archive.events=Esem\u00e9nyek archiv\u00e1l\u00e1sa
-label.assigned.vms=Hozz\u00e1rendelt VM-ek
-label.assign=Hozz\u00e1rendel\u00e9s
-label.assign.instance.another=P\u00e9ld\u00e1ny hozz\u00e1rendel\u00e9se m\u00e1sik sz\u00e1ml\u00e1hoz
-label.assign.to.load.balancer=P\u00e9ld\u00e1ny hozz\u00e1rendel\u00e9se terhel\u00e9seloszt\u00f3hoz
-label.assign.vms=VM-ek hozz\u00e1rendel\u00e9se
-label.associated.network.id=Kapcsolt h\u00e1l\u00f3zat ID
-label.associated.network=Kapcsolt h\u00e1l\u00f3zat
-label.associated.profile=Kapacsolt profil
-label.associate.public.ip=Publikus IP c\u00edm hozz\u00e1rendel\u00e9se
-label.attached.iso=Kapcsolt ISO
-label.author.email=Szerz\u0151 e-mail
-label.author.name=Szerz\u0151 n\u00e9v
-label.autoscale=AutoScale
-label.autoscale.configuration.wizard=AutoScale konfigur\u00e1ci\u00f3 var\u00e1zsl\u00f3
-label.availability=El\u00e9rhet\u0151s\u00e9g
-label.availability.zone=El\u00e9rhet\u0151s\u00e9gi z\u00f3na
-label.availabilityZone=El\u00e9rhet\u0151s\u00e9gi z\u00f3na
-label.available=El\u00e9rhet\u0151
-label.available.public.ips=El\u00e9rhet\u0151 publikus PI c\u00edmek
-label.back=Vissza
-label.bandwidth=S\u00e1vsz\u00e9less\u00e9g
-label.baremetal.dhcp.devices=Baremetal DHCP eszk\u00f6z\u00f6k
-label.baremetal.dhcp.provider=Baremetal DHCP szolg\u00e1ltat\u00f3
-label.baremetal.pxe.device=Baremetal PXE eszk\u00f6z felv\u00e9tele
-label.baremetal.pxe.devices=Baremetal PXE eszk\u00f6z\u00f6k
-label.baremetal.pxe.provider=Baremetal PXE szolg\u00e1ltat\u00f3
-label.baremetal.rack.configuration=Baremetal rack konfigur\u00e1ci\u00f3
-label.basic=Alap
-label.basic.mode=Alap m\u00f3d
-label.bigswitch.bcf.details=BigSwitch BCF r\u00e9szletek
-label.bigswitch.bcf.nat=BigSwitch BCF NAT bekapcsolva
-label.bigswitch.controller.address=BigSwitch BCF vez\u00e9rl\u0151 c\u00edm
-label.blade.id=Blade ID
-label.blades=Blade-k
-label.bootable=Ind\u00edthat\u00f3
-label.broadcast.domain.range=Broadcast domain range
-label.broadcast.domain.type=Broadcast Domain Type
-label.broadcast.uri=Broadcast URI
-label.broadcasturi=broadcasturi
-label.broadcat.uri=Broadcast URI
-label.brocade.vcs.address=Vcs Switch c\u00edm
-label.brocade.vcs.details=Brocade Vcs Switch r\u00e9szletek
-label.by.account=By Account
-label.by.alert.type=Riaszt\u00e1s t\u00edpus szerint
-label.by.availability=By Availability
-label.by.date.end=D\u00e1tum szerint (v\u00e9g)
-label.by.date.start=D\u00e1tum szerint (kezd\u0151)
-label.by.domain=By Domain
-label.by.end.date=By End Date
-label.by.event.type=Esem\u00e9ny t\u00edpus szerint
-label.by.level=By Level
-label.by.pod=By Pod
-label.by.role=By Role
-label.by.start.date=By Start Date
-label.by.state=By State
-label.bytes.received=Fogadott byte-ok
-label.bytes.sent=K\u00fcld\u00f6tt byte-ok
-label.by.traffic.type=By Traffic Type
-label.by.type=By Type
-label.by.type.id=By Type ID
-label.by.zone=By Zone
-label.cache.mode=Write-cache Type
-label.cancel=Megszak\u00edt\u00e1s
-label.capacity.bytes=Byte kapac\u00edt\u00e1s
-label.capacity.iops=IOPS kapac\u00edt\u00e1s
-label.capacity=Kapac\u00edt\u00e1s
-label.certificate=Server certificate
-label.change.affinity=Affin\u00edt\u00e1s v\u00e1ltoztat\u00e1sa
-label.change.service.offering=Change service offering
-label.change.value=\u00c9rt\u00e9k v\u00e1ltoztat\u00e1sa
-label.character=Karakter
-label.chassis=H\u00e1z
-label.checksum=ellen\u00f6rz\u0151 \u00f6sszeg
-label.cidr.account=CIDR vagy sz\u00e1mla/biztons\u00e1gi csoport
-label.cidr=CIDR
-label.CIDR.list=CIDR lista
-label.cidr.list=Forr\u00e1s CIDR
-label.CIDR.of.destination.network=A c\u00e9l h\u00e1l\u00f3zat CIDR
-label.cisco.nexus1000v.ip.address=Nexus 1000v IP c\u00edm
-label.cisco.nexus1000v.password=Nexus 1000v jelsz\u00f3
-label.cisco.nexus1000v.username=Nexus 1000v felhaszn\u00e1l\u00f3n\u00e9v
-label.ciscovnmc.resource.details=CiscoVNMC er\u0151forr\u00e1s r\u00e9szletek
-label.clean.up=Takar\u00edt\u00e1s
-label.clear.list=Lista t\u00f6rl\u00e9se
-label.close=Bez\u00e1r\u00e1s
-label.cloud.console=Cloud Management Console
-label.cloud.managed=Cloud.com Managed
-label.cluster=F\u00fcrt
-label.cluster.name=F\u00fcrt n\u00e9v
-label.clusters=F\u00fcrt
-label.cluster.type=F\u00fcrt t\u00edpus
-label.clvm=CLVM
-label.code=K\u00f3d
-label.community=K\u00f6z\u00f6ss\u00e9g
-label.compute.and.storage=Sz\u00e1m\u00edt\u00e1s \u00e9s t\u00e1r
-label.compute.offering=CPU aj\u00e1nlat
-label.compute.offerings=Sz\u00e1m\u00edt\u00e1si aj\u00e1nlatok
-label.compute=Sz\u00e1m\u00edt\u00e1s
-label.configuration=Konfigur\u00e1ci\u00f3
-label.configure=Konfigur\u00e1ci\u00f3
-label.configure.ldap=LDAP konfigur\u00e1ci\u00f3ja
-label.configure.network.ACLs=H\u00e1l\u00f3zati ACL-ek konfigur\u00e1ci\u00f3ja
-label.configure.vpc=VPC konfigur\u00e1ci\u00f3ja
-label.confirmation=Meger\u0151s\u00edt\u00e9s
-label.confirm.password=Jelsz\u00f3 meger\u0151s\u00edt\u00e9s
-label.congratulations=Gratul\u00e1ci\u00f3\!
-label.conserve.mode=Conserve mode
-label.console.proxy=Konzol proxy
-label.console.proxy.vm=Konzol Proxy VM
-label.continue.basic.install=Folytat\u00e1s alaptelep\u00edt\u00e9ssel
-label.continue=Tov\u00e1bb
-label.copying.iso=ISO m\u00e1sol\u00e1sa
-label.corrections.saved=Jav\u00edt\u00e1sok mentve
-label.counter=Sz\u00e1ml\u00e1l\u00f3
-label.cpu.allocated=CPU allok\u00e1lva
-label.cpu.allocated.for.VMs=CPU lefoglalva a VM-ek r\u00e9sz\u00e9re
-label.CPU.cap=CPU Cap
-label.cpu=CPU
-label.cpu.limits=CPU korl\u00e1tok
-label.cpu.mhz=CPU (MHz)
-label.cpu.utilized=CPU haszn\u00e1lat
-label.created.by.system=Created by system
-label.created=L\u00e9trehoz\u00e1s d\u00e1tuma
-label.create.nfs.secondary.staging.storage=Create NFS Secondary Staging Store
-label.create.nfs.secondary.staging.store=NFS m\u00e1sodlagos t\u00e1r l\u00e9trehoz\u00e1sa
-label.create.project=Projekt l\u00e9trehoz\u00e1sa
-label.create.ssh.key.pair=SSH kulcsp\u00e1r l\u00e9trehoz\u00e1sa
-label.create.template=Sablon l\u00e9trehoz\u00e1sa
-label.create.VPN.connection=VPN kapcsolat l\u00e9trehoz\u00e1sa
-label.cross.zones=Cross Zones
-label.custom.disk.iops=Egyedi IOPS
-label.custom.disk.offering=Egyedi t\u00e1r aj\u00e1nlat
-label.custom.disk.size=Egyedi merevlemez m\u00e9ret
-label.custom=Egyedi
-label.daily=Napi
-label.data.disk.offering=Adat merevlemez aj\u00e1nlat
-label.date=D\u00e1tum
-label.day=Nap
-label.day.of.month=H\u00f3nap napja
-label.day.of.week=H\u00e9t napja
-label.dc.name=DC n\u00e9v
-label.dead.peer.detection=Dead Peer Detection
-label.decline.invitation=Megh\u00edv\u00f3 elutas\u00edt\u00e1sa
-label.dedicate.cluster=F\u00fcrt dedik\u00e1l\u00e1sa
-label.dedicated=Dedik\u00e1lt
-label.dedicate=Dedik\u00e1l\u00e1s
-label.dedicated.vlan.vni.ranges=Dedik\u00e1lt VLAN/VNI tartom\u00e1nyok
-label.dedicate.host=Kiszolg\u00e1l\u00f3 dedik\u00e1l\u00e1sa
-label.dedicate.pod=Pod dedik\u00e1l\u00e1sa
-label.dedicate.vlan.vni.range=Dedik\u00e1lt VLAN/VNI tartom\u00e1ny
-label.dedicate.zone=Dedik\u00e1lt z\u00f3na
-label.default=Alap\u00e9rtelmezett
-label.default.egress.policy=Default egress policy
-label.default.use=Alap\u00e9rtelmezett haszn\u00e1lat
-label.default.view=Alap\u00e9rtelmezett n\u00e9zet
-label.delete.acl.list=ACL lista t\u00f6rl\u00e9se
-label.delete.affinity.group=Affin\u00edt\u00e1si csoport t\u00f6rl\u00e9se
-label.delete.alerts=T\u00f6rl\u00e9s riaszt\u00e1sok
-label.delete.baremetal.rack.configuration=Baremetal rack konfigur\u00e1ci\u00f3 t\u00f6rl\u00e9se
-label.delete.BigSwitchBcf=BigSwitch BCF vez\u00e9rl\u0151 elt\u00e1vol\u00edt\u00e1sa
-label.delete.BrocadeVcs=Brocade Vcs Switch t\u00f6rl\u00e9se
-label.delete.ciscoASA1000v=CiscoASA1000v t\u00f6rl\u00e9se
-label.delete.ciscovnmc.resource=CiscoVNMC er\u0151forr\u00e1s t\u00f6rl\u00e9se
-label.delete.events=T\u00f6rl\u00e9s esem\u00e9nyek
-label.delete.F5=F5 t\u00f6rl\u00e9se
-label.delete.gateway=\u00c1tj\u00e1r\u00f3 t\u00f6rl\u00e9se
-label.delete.internal.lb=Bels\u0151 LB t\u00f6rl\u00e9se
-label.delete.NetScaler=NetScaler t\u00f6rl\u00e9se
-label.delete.NiciraNvp=Nvp vez\u00e9rl\u0151 t\u00f6rl\u00e9se
-label.delete.NuageVsp=Nuage VSD t\u00f6rl\u00e9se
-label.delete.OpenDaylight.device=OpenDaylight Controller t\u00f6rl\u00e9se
-label.delete.PA=Palo Alto t\u00f6rl\u00e9se
-label.delete.portable.ip.range=Hordozhat\u00f3 IP tartom\u00e1ny t\u00f6rl\u00e9se
-label.delete.profile=Profil t\u00f6rl\u00e9se
-label.delete.project=Projekt t\u00f6rl\u00e9se
-label.delete.secondary.staging.store=Delete Secondary Staging Store
-label.delete.SRX=SRX t\u00f6rl\u00e9se
-label.delete=T\u00f6rl\u00e9s
-label.delete.ucs.manager=UCS Manager t\u00f6rl\u00e9se
-label.delete.VPN.connection=VPN kapcsolat t\u00f6rl\u00e9se
-label.delete.VPN.customer.gateway=VPN \u00fcgyf\u00e9l kapu t\u00f6rl\u00e9se
-label.delete.VPN.gateway=VPN kapu t\u00f6rl\u00e9se
-label.delete.vpn.user=VPN felhaszn\u00e1l\u00f3 t\u00f6rl\u00e9se
-label.deleting.failed=T\u00f6rl\u00e9s sikertelen
-label.deleting.processing=T\u00f6rl\u00e9s...
-label.deny=Megtilt
-label.deployment.planner=Felhaszn\u00e1l\u00e1s tervez\u0151
-label.description=Le\u00edr\u00e1s
-label.destination.physical.network.id=C\u00e9l fizikai h\u00e1l\u00f3zat ID
-label.destination.zone=C\u00e9l z\u00f3na
-label.destroy=Elpuszt\u00edt
-label.destroy.router=Router elpuszt\u00edt\u00e1sa
-label.destroy.vm.graceperiod=VM elpuszt\u00edt\u00e1s t\u00fcrelmi id\u0151
-label.detaching.disk=Merevlemez lev\u00e1laszt\u00e1sa
-label.details=R\u00e9szletek
-label.device.id=Eszk\u00f6z ID
-label.devices=Eszk\u00f6z\u00f6k
-label.dhcp=DHCP
-label.DHCP.server.type=DHCP kiszolg\u00e1l\u00f3 t\u00edpus
-label.direct.attached.public.ip=Direct Attached Public IP
-label.direct.ips=Osztott h\u00e1l\u00f3zati IP c\u00edmek
-label.disable.autoscale=Automatikus sk\u00e1l\u00e1z\u00e1s kikapcsol\u00e1sa
-label.disabled=Kikapcsolt
-label.disable.host=Kiszolg\u00e1l\u00f3 kikapcsol\u00e1sa
-label.disable.network.offering=H\u00e1l\u00f3zati aj\u00e1nlat kikapcsol\u00e1sa
-label.disable.provider=Szolg\u00e1ltat\u00f3 kikapcsol\u00e1sa
-label.disable.vnmc.provider=VNMC szolg\u00e1ltat\u00f3 kikapcsol\u00e1sa
-label.disable.vpc.offering=VPC aj\u00e1nlat kikapcsol\u00e1sa
-label.disable.vpn=T\u00e1voli VPN hozz\u00e1f\u00e9r\u00e9s kikapcsol\u00e1sa
-label.disabling.vpn.access=VPN hozz\u00e1f\u00e9r\u00e9s kikapcsol\u00e1sa
-label.disassociate.profile.blade=Profil elv\u00e1laszt\u00e1sa a blade-t\u0151l
-label.disbale.vnmc.device=VNMC eszk\u00f6sz kikapcsol\u00e1sa
-label.disk.allocated=Merevlemez lefoglalva
-label.disk.bytes.read.rate=Olvas\u00e1si r\u00e1ta (BPS)
-label.disk.bytes.write.rate=\u00cdr\u00e1si r\u00e1ta (BPS)
-label.disk.iops.max=IOPS maximum
-label.disk.iops.min=IOPS minimum
-label.disk.iops.read.rate=Olvas\u00e1si r\u00e1ta (IOPS)
-label.disk.iops.total=IOPS \u00f6sszesen
-label.disk.iops.write.rate=\u00cdr\u00e1si r\u00e1ta (IOPS)
-label.disk.offering.details=Merevlemez aj\u00e1nlat r\u00e9szletei
-label.disk.offering=Merevlemez aj\u00e1nlat
-label.disk.provisioningtype=L\u00e9trehoz\u00e1s t\u00edpusa
-label.disk.read.bytes=Merevlemez olvas\u00e1s (Byte)
-label.disk.read.io=Merevlemez \u00edr\u00e1s (IO)
-label.disk.size.gb=Merevlemez m\u00e9ret (GB)
-label.disk.size=Merevlemez m\u00e9ret
-label.disk.total=Merevlemez \u00f6sszes
-label.disk.volume=Merevlemez k\u00f6tet
-label.disk.write.bytes=Merevlemez \u00edr\u00e1s (byte)
-label.disk.write.io=Merevlemez \u00edr\u00e1s (IO)
-label.display.name=Megjelen\u00edtend\u0151 n\u00e9v
-label.display.text=Megjelen\u00edtend\u0151 sz\u00f6veg
-label.distributedrouter=Elosztott router
-label.dns.1=1. DNS
-label.dns.2=2. DNS
-label.dns=DNS
-label.DNS.domain.for.guest.networks=Vend\u00e9g h\u00e1l\u00f3zatok DNS tartom\u00e1nya
-label.domain.admin=Tartom\u00e1ny adminisztr\u00e1tor
-label.domain=Dom\u00e9n
-label.domain.id=Tartom\u00e1ny ID
-label.domain.lower=domain
-label.domain.name=Tartom\u00e1ny n\u00e9v
-label.domain.router=Domain router
-label.domain.suffix=DNS dom\u00e9n v\u00e9gz\u0151d\u00e9s (pl. xyz.com)
-label.done=K\u00e9sz
-label.double.quotes.are.not.allowed=A kett\u0151s id\u00e9z\u0151jel nem enged\u00e9lyezett
-label.download.progress=Let\u00f6lt\u00e9s folyamat
-label.drag.new.position=\u00daj helyre h\u00faz\u00e1s
-label.duration.in.sec=Id\u0151tartam (mp)
-label.dynamically.scalable=Dinakikusan sk\u00e1l\u00e1zhat\u00f3
-label.edit.acl.rule=ACL szab\u00e1ly szerkeszt\u00e9se
-label.edit.affinity.group=Affin\u00edt\u00e1si csoport szerkeszt\u00e9se
-label.edit.lb.rule=LB szab\u00e1ly m\u00f3dos\u00edt\u00e1sa
-label.edit.network.details=H\u00e1l\u00f3zat r\u00e9szleteinek szerkeszt\u00e9se
-label.edit.project.details=Projekt r\u00e9szletek szerkeszt\u00e9se
-label.edit.region=R\u00e9gi\u00f3 szerkeszt\u00e9se
-label.edit.rule=Szab\u00e1ly m\u00f3dos\u00edt\u00e1sa
-label.edit.secondary.ips=M\u00e1sodlagos IP c\u00edmek m\u00f3dos\u00edt\u00e1sa
-label.edit=Szerkeszt\u00e9s
-label.edit.tags=Cimk\u00e9k szerkeszt\u00e9se
-label.edit.traffic.type=Forgalom t\u00edpus szerkeszt\u00e9se
-label.edit.vpc=VPC szerkeszt\u00e9se
-label.egress.default.policy=Alap\u00e9rtelmezett egress szab\u00e1lyzat
-label.egress.rule=Egress szab\u00e1ly
-label.egress.rules=Egress szab\u00e1lyok
-label.elastic=Elasztikus
-label.elastic.IP=Elasztikus IP
-label.elastic.LB=Elasztikus LB
-label.email=Email
-label.email.lower=email
-label.enable.autoscale=Automatikus sk\u00e1l\u00e1z\u00e1s bekapcsol\u00e1sa
-label.enable.host=Kiszolg\u00e1l\u00f3 bekapcsol\u00e1sa
-label.enable.network.offering=H\u00e1l\u00f3zati aj\u00e1nlat bekapcsol\u00e1sa
-label.enable.provider=Szolg\u00e1ltat\u00f3 bekapcsol\u00e1sa
-label.enable.s3=S3-alap\u00fa m\u00e1sodlagos t\u00e1r bekapcsol\u00e1sa
-label.enable.swift=Swift enged\u00e9lyez\u00e9se
-label.enable.vnmc.device=VNMC eszk\u00f6z bekapcsol\u00e1sa
-label.enable.vnmc.provider=VNMC szolg\u00e1ltat\u00f3 bekapcsol\u00e1sa
-label.enable.vpc.offering=VPC aj\u00e1nlat bekapcsol\u00e1sa
-label.enable.vpn=Enable Remote Access VPN
-label.enabling.vpn.access=VPN hozz\u00e1f\u00e9r\u00e9s enged\u00e9lyez\u00e9se
-label.enabling.vpn=VPN enged\u00e9lyez\u00e9se
-label.end.IP=Utols\u00f3 IP
-label.endpoint.or.operation=V\u00e9gpont vagy m\u0171velet
-label.endpoint=V\u00e9gpont
-label.end.port=Utols\u00f3 Port
-label.end.reserved.system.IP=Utols\u00f3 elk\u00fcl\u00f6n\u00edtett rendszer IP
-label.end.vlan=Utols\u00f3 VLAN
-label.end.vxlan=Utols\u00f3 VXLAN
-label.enter.token=Add meg a token-t\!
-label.error.code=Hibak\u00f3d
-label.error=Hiba
-label.error.upper=ERROR
-label.ESP.encryption=ESP titkos\u00edt\u00e1s
-label.ESP.hash=ESP Hash
-label.ESP.lifetime=ESP \u00e9lettartam (mp)
-label.ESP.policy=ESP szab\u00e1lyzat
-label.esx.host=ESX/ESXi kiszolg\u00e1l\u00f3
-label.event.archived=Esem\u00e9ny archiv\u00e1lva
-label.event.deleted=Esem\u00e9ny t\u00f6r\u00f6lve
-label.event=Esem\u00e9ny
-label.every=Minden
-label.example=P\u00e9lda
-label.expunge=T\u00f6rl\u00e9s
-label.external.link=K\u00fcls\u0151 hivatkoz\u00e1s
-label.extractable=Kicsomagolhat\u00f3
-label.extractable.lower=kicsomagolhat\u00f3
-label.f5.details=F5 r\u00e9szletek
-label.f5=F5
-label.failed=Hiba
-label.featured=Kiemelt
-label.fetch.latest=Legfrissebb let\u00f6lt\u00e9se
-label.filterBy=Sz\u0171r\u00e9s
-label.fingerprint=\u00dajlenyomat
-label.firewall=T\u0171zfal
-label.first.name=Keresztn\u00e9v
-label.firstname.lower=keresztn\u00e9v
-label.format=Form\u00e1tum
-label.format.lower=form\u00e1tum
-label.friday=P\u00e9ntek
-label.full.path=Teljes el\u00e9r\u00e9si \u00fatvonal
-label.full=Teljes
-label.gateway=\u00c1tj\u00e1r\u00f3
-label.general.alerts=\u00c1ltal\u00e1nos riaszt\u00e1sok
-label.generating.url=URL gener\u00e1l\u00e1sa
-label.globo.dns.configuration=GloboDNS konfigur\u00e1ci\u00f3
-label.globo.dns=GloboDNS
-label.gluster.volume=K\u00f6tet
-label.go.step.2=2. l\u00e9p\u00e9sre
-label.go.step.3=3. l\u00e9p\u00e9sre
-label.go.step.4=4. l\u00e9p\u00e9sre
-label.go.step.5=5. l\u00e9psre
-label.gpu=CPU
-label.group.by.account=Sz\u00e1ml\u00e1nk\u00e9nt csoportos\u00edtva
-label.group.by.cluster=F\u00fcrt\u00f6nk\u00e9nt csoportos\u00edtva
-label.group.by.pod=Pod-onk\u00e9nt csoportos\u00edtva
-label.group.by.zone=Z\u00f3n\u00e1nk\u00e9nt csoportos\u00edtva
-label.group=Csoport
-label.group.optional=Csoport (opcion\u00e1lis)
-label.gslb.assigned.lb=Hozz\u00e1rendelt terhel\u00e9seloszt\u00e1s
-label.gslb.assigned.lb.more=T\u00f6bb terhel\u00e9seloszt\u00e1s hozz\u00e1rendel\u00e9se
-label.gslb.delete=GSLB t\u00f6rl\u00e9se
-label.gslb.details=GSLB r\u00e9szletek
-label.gslb.domain.name=GSLB dom\u00e9n n\u00e9v
-label.gslb=GSLB
-label.gslb.lb.details=Terhel\u00e9seloszt\u00f3 r\u00e9szletek
-label.gslb.lb.remove=Terhel\u00e9seloszt\u00e1s t\u00f6rl\u00e9se ebb\u0151l a GSLB-b\u0151l
-label.gslb.lb.rule=Terhel\u00e9seloszt\u00f3 szab\u00e1ly
-label.gslb.service=GSLB szolg\u00e1ltat\u00e1s
-label.gslb.service.private.ip=GSLB szolg\u00e1ltat\u00e1s priv\u00e1t IP
-label.gslb.service.public.ip=GSLB szolg\u00e1ltat\u00e1s publikus IP
-label.gslb.servicetype=Szolg\u00e1ltat\u00e1s t\u00edpus
-label.guest.cidr=Vend\u00e9g CIDR
-label.guest.end.ip=Utols\u00f3 veng\u00e9g IP
-label.guest.gateway=Vend\u00e9g \u00e1tj\u00e1r\u00f3
-label.guest.ip.range=Vend\u00e9g IP tartom\u00e1ny
-label.guest.ip=Vend\u00e9g IP c\u00edm
-label.guest.netmask=Vend\u00e9g h\u00e1l\u00f3zati maszk
-label.guest.network.details=Vend\u00e9g h\u00e1l\u00f3zat r\u00e9szletek
-label.guest.networks=Vend\u00e9g h\u00e1l\u00f3zatok
-label.guest.start.ip=Kezd\u0151 vend\u00e9g IP
-label.guest.traffic=Vend\u00e9g forgalom
-label.guest.traffic.vswitch.name=Vend\u00e9g forgalom vSwitch n\u00e9v
-label.guest.traffic.vswitch.type=Vend\u00e9g forgalom vSwitch t\u00edpus
-label.guest.type=Vend\u00e9g t\u00edpus
-label.guest=Vend\u00e9g
-label.ha.enabled=HA bekapcsolva
-label.health.check.advanced.options=Halad\u00f3 be\u00e1ll\u00edt\u00e1sok\:
-label.health.check.configurations.options=Beall\u00edt\u00e1sok\:
-label.health.check=Ellen\u0151rz\u00e9s
-label.health.check.interval.in.sec=Ellen\u0151rz\u00e9s id\u0151k\u00f6z (mp)
-label.health.check.message.desc=A terhel\u00e9seloszt\u00f3d aut\u00f3matikusan fog elen\u0151rz\u00e9seket v\u00e9grehajtani a cloudstack p\u00e9ld\u00e1nyokon \u00e9s a forgalmat a m\u0171k\u00f6d\u0151 p\u00e9ld\u00e1nyokhoz \u00edr\u00e1ny\u00edtja
-label.healthy.threshold=Eg\u00e9szs\u00e9ges k\u00fcsz\u00f6b
-label.help=Seg\u00edts\u00e9g
-label.hide.ingress.rule=Ingress szab\u00e1ly rejt\u00e9se
-label.hints=Tippek
-label.home=Kezd\u0151lap
-label.host=Kiszolg\u00e1l\u00f3
-label.host.MAC=Kiszolg\u00e1l\u00f3 MAC
-label.host.name=Kiszolg\u00e1l\u00f3 n\u00e9v
-label.hosts=Kiszolg\u00e1l\u00f3k
-label.host.tag=Kiszolg\u00e1l\u00f3 c\u00edmke
-label.host.tags=Kiszolg\u00e1l\u00f3 c\u00edmk\u00e9k
-label.hourly=\u00d3r\u00e1nk\u00e9nt
-label.hvm=HVM
-label.hypervisor.capabilities=Hipervizor k\u00e9pess\u00e9gek
-label.hypervisor=Hipervizor
-label.hypervisors=Hipervizorok
-label.hypervisor.snapshot.reserve=Hipervizor Snapshot Reserve
-label.hypervisor.type=Hipervizor t\u00edpus
-label.hypervisor.version=Hipervizor verzi\u00f3
-label.hyperv.traffic.label=HyperV Traffic Label
-label.id=ID
-label.IKE.DH=IKE DH
-label.IKE.encryption=IKE titkos\u00edt\u00e1s
-label.IKE.hash=IKE Hash
-label.IKE.lifetime=IKE \u00e9lettartam (mp)
-label.IKE.policy=IKE szab\u00e1lyzat
-label.info=Inf\u00f3
-label.info.upper=INFO
-label.ingress.rule=Ingress szab\u00e1ly
-label.initiated.by=Kezdem\u00e9nyez\u0151
-label.inside.port.profile=Inside Port Profile
-label.installWizard.addClusterIntro.subtitle=Mi a f\u00fcrt?
-label.installWizard.addClusterIntro.title=Csin\u00e1ljunk egy f\u00fcrt\u00f6t\!
-label.installWizard.addHostIntro.subtitle=Mi a kiszolg\u00e1l\u00f3?
-label.installWizard.addHostIntro.title=Regisztr\u00e1ljunk egy kiszolg\u00e1l\u00f3t\!
-label.installWizard.addPodIntro.subtitle=Mi a pod?
-label.installWizard.addPodIntro.title=Csin\u00e1ljunk egy pod-ot\!
-label.installWizard.addPrimaryStorageIntro.subtitle=Mi az els\u0151dleges t\u00e1r?
-label.installWizard.addPrimaryStorageIntro.title=Hozzuk l\u00e9tre az els\u0151dleges t\u00e1rol\u00f3t\!
-label.installWizard.addSecondaryStorageIntro.subtitle=Mi a m\u00e1sodlagos t\u00e1r?
-label.installWizard.addSecondaryStorageIntro.title=Hozzuk l\u00e9tre a m\u00e1sodlagos t\u00e1rol\u00f3t\!
-label.installWizard.addZoneIntro.subtitle=Mi a z\u00f3na?
-label.installWizard.addZoneIntro.title=Hozzunk l\u00e9tre egy z\u00f3n\u00e1t\!
-label.installWizard.addZone.title=Z\u00f3na l\u00e9troz\u00e1sa
-label.installWizard.click.launch=Kattints az ind\u00edt\u00e1s gombra\!
-label.installWizard.subtitle=Ez a p\u00e1rbesz\u00e9dablak seg\u00edt konfigur\u00e1lni a CloudStack&\#8482 rendszered
-label.installWizard.title=\u00dcdv\u00f6z\u00f6l a CloudStack&\#8482
-label.instance.limits=P\u00e9ld\u00e1ny korl\u00e1tok
-label.instance.name=P\u00e9ld\u00e1ny n\u00e9v
-label.instance.port=P\u00e9ld\u00e1ny port
-label.instance=P\u00e9ld\u00e1ny
-label.instance.scaled.up=P\u00e9ld\u00e1ny \u00e1tm\u00e9retezve a k\u00e9rt aj\u00e1nlathoz
-label.instances=P\u00e9ld\u00e1nyok
-label.instanciate.template.associate.profile.blade=Instanciate Template and Associate Profile to Blade
-label.intermediate.certificate=K\u00f6zb\u00fcls\u0151 tan\u00fas\u00edtv\u00e1ny {0}
-label.internal.dns.1=1. bels\u0151 DNS
-label.internal.dns.2=2. bels\u0151 DNS
-label.internal.lb=Bels\u0151 LB
-label.internal.lb.details=Bels\u0151 LB r\u00e9szletek
-label.internallbvm=InternalLbVm
-label.internal.name=Bels\u0151 n\u00e9v
-label.interval.type=Id\u0151k\u00f6z t\u00edpus
-label.introduction.to.cloudstack=Bemutatkozik a CloudStack&\#8482
-label.invalid.integer=\u00c9rv\u00e9nytelen eg\u00e9sz sz\u00e1m
-label.invalid.number=\u00c9rv\u00e9nytelen sz\u00e1m
-label.invitations=Megh\u00edv\u00f3k
-label.invited.accounts=Megh\u00edvottak
-label.invite=Meghiv\u00e1s
-label.invite.to=Megh\u00edv\u00e1s\:
-label.ip.address=IP c\u00edm
-label.ipaddress=IP c\u00edm
-label.ip.allocations=IP c\u00edmfoglal\u00e1sok
-label.ip=IP
-label.ip.limits=Publikus IP korl\u00e1tok
-label.ip.or.fqdn=IP vagy FQDN
-label.ip.range=IP tartom\u00e1ny
-label.ip.ranges=IP tartom\u00e1nyok
-label.IPsec.preshared.key=IPsec Preshared-Key
-label.ips=IP c\u00edmek
-label.ipv4.cidr=IPv4 CIDR
-label.ipv4.dns1=IPv4 1. DNS
-label.ipv4.dns2=IPv4 2. DNS
-label.ipv4.end.ip=IPv4 utols\u00f3 IP
-label.ipv4.gateway=IPv4 \u00e1tj\u00e1r\u00f3
-label.ipv4.netmask=IPv4 h\u00e1l\u00f3zati maszk
-label.ipv4.start.ip=IPv4 kezd\u0151 IP
-label.ipv6.address=IPv6 IP c\u00edm
-label.ipv6.CIDR=IPv6 CIDR
-label.ipv6.dns1=IPv6 1. DNS
-label.ipv6.dns2=IPv6 2. DNS
-label.ipv6.end.ip=IPv6 utols\u00f3 IP
-label.ipv6.gateway=IPv6 \u00e1tj\u00e1r\u00f3
-label.ipv6.start.ip=IPv6 kezd\u0151 IP
-label.iscsi=iSCSI
-label.is.default=Alap\u00e9rtelmezett
-label.iso.boot=ISO Boot
-label.iso=ISO
-label.isolated.networks=Izol\u00e1lt h\u00e1l\u00f3zatok
-label.isolation.method=Izol\u00e1ci\u00f3 m\u00f3dszer
-label.isolation.mode=Izol\u00e1ci\u00f3 m\u00f3d
-label.isolation.uri=Izol\u00e1ci\u00f3 URI
-label.is.redundant.router=Redund\u00e1ns
-label.is.shared=Osztott
-label.is.system=Rendszer
-label.item.listing=Lista
-label.japanese.keyboard=Jap\u00e1n billenty\u0171zet
-label.keep.colon=Megtart\:
-label.keep=Megtart\u00e1s
-label.keyboard.language=Billenty\u0171zet kioszt\u00e1s
-label.keyboard.type=Billenty\u0171zet t\u00edpus
-label.key=Kulcs
-label.kvm.traffic.label=KVM traffic label
-label.label=C\u00edmke
-label.lang.arabic=Arab
-label.lang.brportugese=Brazil-portug\u00e1l
-label.lang.catalan=Katal\u00e1n
-label.lang.chinese=K\u00ednai (egyszer\u0171s\u00edtett)
-label.lang.dutch=Holland (Hollandia)
-label.lang.english=Angol
-label.lang.french=Francia
-label.lang.german=N\u00e9met
-label.lang.hungarian=Magyar
-label.lang.italian=Olasz
-label.lang.japanese=Jap\u00e1n
-label.lang.korean=K\u00f3reai
-label.lang.norwegian=Norv\u00e9g
-label.lang.polish=Lengyel
-label.lang.russian=Orosz
-label.lang.spanish=Spanyol
-label.last.disconnected=Utolj\u00e1ra lecsatlakozott
-label.last.name=Csal\u00e1dn\u00e9v
-label.lastname.lower=csal\u00e1dn\u00e9v
-label.latest.events=Utols\u00f3 esem\u00e9nyek
-label.launch=Ind\u00edt\u00e1s
-label.launch.vm=VM ind\u00edt\u00e1sa
-label.launch.zone=Z\u00f3na ind\u00edt\u00e1sa
-label.lb.algorithm.leastconn=Legkevesebb kapcsolat
-label.lb.algorithm.roundrobin=K\u00f6rbe forg\u00f3
-label.lb.algorithm.source=Forr\u00e1s
-label.LB.isolation=Terhel\u00e9seloszt\u00f3 izol\u00e1ci\u00f3
-label.ldap.configuration=LDAP konfigur\u00e1ci\u00f3
-label.ldap.group.name=LDAP csoport
-label.ldap.link.type=T\u00edpus
-label.ldap.port=LDAP port
-label.level=Szint
-label.linklocal.ip=Link Local IP Address
-label.load.balancer=Terhel\u00e9seloszt\u00f3
-label.load.balancer.type=Terhel\u00e9seloszt\u00f3 t\u00edpus
-label.load.balancing.policies=Terhel\u00e9seloszt\u00f3 szab\u00e1lyok
-label.load.balancing=Terhel\u00e9seloszt\u00e1s
-label.loading=Bet\u00f6lt\u00e9s
-label.local.file=Helyi file
-label.local=Helyi
-label.local.storage.enabled=Helyi t\u00e1r bekapcsol\u00e1sa felhaszn\u00e1l\u00f3i VM-ek r\u00e9sz\u00e9re
-label.local.storage.enabled.system.vms=Helyi t\u00e1r bekapcsol\u00e1sa a rendszer VM sz\u00e1m\u00e1ra
-label.local.storage=Helyi t\u00e1r
-label.login=Bejelentkez\u00e9s
-label.logout=Kijelentkez\u00e9s
-label.lun=LUN
-label.LUN.number=LUN \#
-label.lxc.traffic.label=LXC Traffic Label
-label.make.project.owner=Sz\u00e1mla projekt-tulajdonoss\u00e1 t\u00e9tele
-label.make.redundant=Redund\u00e1nss\u00e1 t\u00e9tel
-label.managed=Vez\u00e9relt
-label.management.ips=Vez\u00e9rl\u0151 IP c\u00edm
-label.management.server=Vez\u00e9rl\u0151 szerver
-label.management=Vez\u00e9rl\u00e9s
-label.manage.resources=Er\u0151forr\u00e1sok vez\u00e9rl\u00e9se
-label.manage=Vez\u00e9rl\u00e9s
-label.max.cpus=CPU magok max.
-label.max.guest.limit=Max guest limit
-label.maximum=Maximum
-label.max.instances=P\u00e9ld\u00e1nyok maxim\u00e1lis sz\u00e1ma
-label.max.memory=Max. mem\u00f3ria (MB)
-label.max.networks=Max. h\u00e1l\u00f3zatok
-label.max.primary.storage=Max. els\u0151dleges (GiB)
-label.max.public.ips=Publikus IP c\u00edmek max.
-label.max.secondary.storage=Max. m\u00e1sodlagos (GiB)
-label.max.snapshots=Pillanatfelv\u00e9telek max.
-label.max.templates=Sablonok max.
-label.max.vms=Felhaszn\u00e1l\u00f3i VMek max.
-label.max.volumes=K\u00f6tetek max.
-label.max.vpcs=VPC-k max.
-label.may.continue=Most folytathatod
-label.md5.checksum=MD5 ellen\u00f6rz\u0151\u00f6sszeg
-label.memory.allocated=Allok\u00e1lt mem\u00f3ria
-label.memory.limits=Mem\u00f3ria korl\u00e1tok (MiB)
-label.memory.mb=Mem\u00f3ria (MB)
-label.memory=Mem\u00f3ria
-label.memory.total=Tejes mem\u00f3ria
-label.memory.used=Haszn\u00e1lt mem\u00f3ria
-label.menu.accounts=Sz\u00e1ml\u00e1k
-label.menu.alerts=Riaszt\u00e1sok
-label.menu.all.accounts=Minden sz\u00e1mla
-label.menu.all.instances=Minden p\u00e9ld\u00e1ny
-label.menu.community.isos=K\u00f6z\u00f6ss\u00e9gi ISO-k
-label.menu.community.templates=K\u00f6z\u00f6ss\u00e9gi sablonok
-label.menu.configuration=Konfigur\u00e1ci\u00f3
-label.menu.dashboard=M\u0171szert\u00e1bla
-label.menu.destroyed.instances=Elpuszt\u00edtott p\u00e9ld\u00e1nyok
-label.menu.disk.offerings=Merevlemez aj\u00e1nlatok
-label.menu.domains=Dom\u00e9nek
-label.menu.events=Esem\u00e9nyek
-label.menu.featured.isos=Kiemelt ISO-k
-label.menu.featured.templates=Kiemelt sablonok
-label.menu.global.settings=Glob\u00e1lis be\u00e1ll\u00edt\u00e1sok
-label.menu.infrastructure=Infrastrukt\u00fara
-label.menu.instances=P\u00e9ld\u00e1nyok
-label.menu.ipaddresses=IP c\u00edm
-label.menu.isos=ISO-k
-label.menu.my.accounts=Saj\u00e1t sz\u00e1ml\u00e1k
-label.menu.my.instances=Saj\u00e1t p\u00e9ld\u00e1nyok
-label.menu.my.isos=Saj\u00e1t ISO-k
-label.menu.my.templates=Saj\u00e1t sablonok
-label.menu.network=H\u00e1l\u00f3zatok
-label.menu.network.offerings=H\u00e1l\u00f3zati aj\u00e1nlatok
-label.menu.physical.resources=Fizikai er\u0151forr\u00e1sok
-label.menu.regions=R\u00e9gi\u00f3k
-label.menu.running.instances=Fut\u00f3 p\u00e9ld\u00e1nyok
-label.menu.security.groups=Biztons\u00e1gi csoportok
-label.menu.service.offerings=Szolg\u00e1ltat\u00e1s aj\u00e1nlatok
-label.menu.snapshots=Pillanatfelv\u00e9telek
-label.menu.sshkeypair=SSH kulcsp\u00e1r
-label.menu.stopped.instances=Le\u00e1ll\u00edtott p\u00e9ld\u00e1nyok
-label.menu.storage=T\u00e1r
-label.menu.system=Rendszer
-label.menu.system.service.offerings=Rendszer aj\u00e1nlatok
-label.menu.system.vms=Rendszer VM-ek
-label.menu.templates=Sablonok
-label.menu.virtual.appliances=Virtu\u00e1lis k\u00e9sz\u00fcl\u00e9kek
-label.menu.virtual.resources=Virtu\u00e1lis er\u0151forr\u00e1sok
-label.menu.volumes=K\u00f6tetek
-label.menu.vpc.offerings=VPC aj\u00e1nlatok
-label.metrics.allocated=Lek\u00f6t\u00f6ve
-label.metrics.clusters=F\u00fcrt
-label.metrics.cpu.allocated=CPU foglal\u00e1s
-label.metrics.cpu.total=\u00d6sszes
-label.metrics.cpu.usage=CPU haszn\u00e1lat
-label.metrics.cpu.used.avg=Haszn\u00e1lt
-label.metrics.disk.allocated=Lek\u00f6t\u00f6ve
-label.metrics.disk.iops.total=IOPS
-label.metrics.disk=Merevlemez
-label.metrics.disk.read=Olvas\u00e1s
-label.metrics.disk.size=M\u00e9ret
-label.metrics.disk.storagetype=T\u00edpus
-label.metrics.disk.total=\u00d6sszes
-label.metrics.disk.unallocated=Lefoglalatlan
-label.metrics.disk.used=Haszn\u00e1lt
-label.metrics.disk.write=\u00cdr\u00e1s
-label.metrics.hosts=Kiszolg\u00e1l\u00f3k
-label.metrics.memory.allocated=Mem\u00f3ria foglal\u00e1s
-label.metrics.memory.total=\u00d6sszes
-label.metrics.memory.usage=Mem\u00f3ria haszn\u00e1lat
-label.metrics.memory.used.avg=Haszn\u00e1lt
-label.metrics.name=N\u00e9v
-label.metrics.network.read=Olvas\u00e1s
-label.metrics.network.usage=H\u00e1l\u00f3zat haszn\u00e1lat
-label.metrics.network.write=\u00cdr\u00e1s
-label.metrics.scope=Hat\u00e1ly
-label.metrics.state=\u00c1llapot
-label.metrics.storagepool=Storage Pool
-label.metrics.vm.name=VM n\u00e9v
-label.migrate.instance.to.host=P\u00e9ld\u00e1ny mozgat\u00e1sa m\u00e1sik kiszolg\u00e1l\u00f3ra
-label.migrate.instance.to.ps=P\u00e9ld\u00e1ny mozgat\u00e1sa m\u00e1sik els\u0151dleges t\u00e1rra
-label.migrate.instance.to=P\u00e9ld\u00e1ny mozgat\u00e1sa\:
-label.migrate.lb.vm=Terhel\u00e9seloszt\u00f3 VM mozgat\u00e1sa
-label.migrate.router.to=Router mozgat\u00e1sa\:
-label.migrate.systemvm.to=Rendszer Vm mozgat\u00e1sa\:
-label.migrate.to.host=Mozgat\u00e1s kiszolg\u00e1l\u00f3ra
-label.migrate.to.storage=Mozgat\u00e1s t\u00e1rra
-label.migrate.volume=K\u00f6tet mozgat\u00e1sa
-label.migrate.volume.to.primary.storage=K\u00f6tet mozgat\u00e1sa m\u00e1sik els\u0151dleges t\u00e1rra
-label.minimum=Minimum
-label.min.instances=P\u00e9ld\u00e1nyok minim\u00e1lis sz\u00e1ma
-label.min.past.the.hr=percben
-label.minute.past.hour=Perc
-label.minutes.past.hour=percben az eg\u00e9sz \u00f3ra ut\u00e1n
-label.mode=M\u00f3d
-label.monday=H\u00e9tf\u0151
-label.monthly=Havi
-label.more.templates=Tov\u00e1bbi sablonok
-label.move.down.row=Egy sorral lejjebb
-label.move.to.bottom=Alj\u00e1ra
-label.move.to.top=Tetej\u00e9re
-label.move.up.row=Egy sorral feljebb
-label.my.account=Saj\u00e1t sz\u00e1ml\u00e1m
-label.my.network=Saj\u00e1t h\u00e1l\u00f3zat
-label.my.templates=Saj\u00e1t sablonok
-label.name.lower=N\u00e9v
-label.name=N\u00e9v
-label.name.optional=N\u00e9v (opcion\u00e1lis)
-label.na=Nem \u00e9rtelmezett
-label.nat.port.range=NAT port tartom\u00e1ny
-label.netmask=H\u00e1l\u00f3zati maszk
-label.netscaler.details=NetScaler r\u00e9szletek
-label.netScaler=NetScaler
-label.network.ACL=H\u00e1l\u00f3zati ACL
-label.network.ACLs=H\u00e1l\u00f3zati ACL-ek
-label.network.ACL.total=H\u00e1l\u00f3zati ACL \u00f6sszesen
-label.network.addVM=H\u00e1l\u00f3zat felv\u00e9tele a VM-hez
-label.network.cidr=H\u00e1l\u00f3zat CIDR
-label.network.desc=H\u00e1l\u00f3zat le\u00edr\u00e1s
-label.network.details=H\u00e1l\u00f3zat r\u00e9szletei
-label.network.device=H\u00e1l\u00f3zati eszk\u00f6z
-label.network.device.type=H\u00e1l\u00f3zati eszk\u00f6z t\u00edpus
-label.network.domain=Network Domain
-label.network.domain.text=Network domain
-label.network=H\u00e1l\u00f3zatok
-label.network.id=H\u00e1l\u00f3zat ID
-label.networking.and.security=H\u00e1l\u00f3zat \u00e9s biztons\u00e1g
-label.network.label.display.for.blank.value=Alap\u00e9rtelmezett \u00e1tj\u00e1r\u00f3 haszn\u00e1lata
-label.network.limits=H\u00e1l\u00f3zat korl\u00e1tok
-label.network.name=H\u00e1l\u00f3zat n\u00e9v
-label.network.offering.details=H\u00e1l\u00f3zat aj\u00e1nlat r\u00e9szletei
-label.network.offering.display.text=H\u00e1l\u00f3zat aj\u00e1nlat megjelen\u00edtend\u0151 sz\u00f6veg
-label.network.offering=H\u00e1l\u00f3zat aj\u00e1nlat
-label.network.offering.id=H\u00e1l\u00f3zat aj\u00e1nlat ID
-label.network.offering.name=H\u00e1l\u00f3zat aj\u00e1nlat neve
-label.network.rate=H\u00e1l\u00f3zati r\u00e1ta (Mb/mp)
-label.network.rate.megabytes=H\u00e1l\u00f3zati r\u00e1ta (MB/mp)
-label.network.read=H\u00e1l\u00f3zat olvas\u00e1s
-label.network.service.providers=H\u00e1l\u00f3zat szolg\u00e1ltat\u00f3k
-label.networks=H\u00e1l\u00f3zatok
-label.network.type=H\u00e1l\u00f3zat t\u00edpus
-label.network.write=H\u00e1l\u00f3zat \u00edr\u00e1s
-label.new.password=\u00daj jelsz\u00f3
-label.new.project=\u00daj projekt
-label.new.ssh.key.pair=\u00daj SSH kulcsp\u00e1r
-label.new=\u00daj
-label.new.vm=\u00daj VM
-label.next=K\u00f6vetkez\u0151
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nfs.server=NFS kiszolg\u00e1l\u00f3
-label.nfs.storage=NFS t\u00e1r
-label.nic.adapter.type=NIC adapter t\u00edpus
-label.nicira.controller.address=Vez\u00e9rl\u0151 c\u00edm
-label.nicira.l3gatewayserviceuuid=L3 Gateway Service Uuid
-label.nicira.nvp.details=Nicira NVP r\u00e9szletek
-label.nicira.transportzoneuuid=Transport Zone Uuid
-label.nics=NIC-ek
-label.no.actions=Nincs el\u00e9rhet\u0151 m\u0171velet
-label.no.alerts=Nem voltak riaszt\u00e1sok a k\u00f6zelm\u00faltban
-label.no.data=Nincs megjelen\u00edtend\u0151 adat
-label.no.errors=Nem voltak hib\u00e1k a k\u00f6zelm\u00faltban
-label.no.grouping=(nincs csoportos\u00edt\u00e1s)
-label.no.isos=Nincsenek el\u00e9rhet\u0151 ISO-k
-label.no.items=Nincsenek el\u00e9rhet\u0151 elemek
-label.no=Nem
-label.none=Nincs
-label.no.security.groups=Nincs el\u00e9rhet\u0151 biztons\u00e1gi csoport
-label.not.found=Nem tal\u00e1lhat\u00f3
-label.no.thanks=Nem, k\u00f6szi\!
-label.notifications=\u00c9rtes\u00edt\u00e9sek
-label.number.of.clusters=F\u00fcrt\u00f6k sz\u00e1ma
-label.number.of.cpu.sockets=CPU-aljzatok sz\u00e1ma
-label.number.of.hosts=Kiszolg\u00e1l\u00f3k sz\u00e1ma
-label.number.of.pods=Pod-ok sz\u00e1ma\:
-label.number.of.system.vms=Rendszer VM-ek sz\u00e1ma
-label.number.of.virtual.routers=Virtu\u00e1lis routerek sz\u00e1ma
-label.number.of.zones=Z\u00f3n\u00e1k sz\u00e1ma
-label.num.cpu.cores=CPU magok sz\u00e1ma
-label.numretries=\u00dajrapr\u00f3b\u00e1lkoz\u00e1sok sz\u00e1ma
-label.ocfs2=OCFS2
-label.offer.ha=Offer HA
-label.of.month=h\u00f3nap
-label.ok=Rendben
-label.opendaylight.controllerdetail=OpenDaylight vez\u00e9rl\u0151 r\u00e9szletek
-label.opendaylight.controller=OpenDaylight vez\u00e9rl\u0151
-label.opendaylight.controllers=OpenDaylight vez\u00e9rl\u0151k
-label.openDaylight=OpenDaylight
-label.operator=Oper\u00e1tor
-label.optional=Opcion\u00e1lis
-label.order=Sorrend
-label.os.preference=OS preferencia
-label.os.type=OS t\u00edpus
-label.other=M\u00e1s
-label.outofbandmanagement.action=M\u0171velet
-label.outofbandmanagement.password=Jelsz\u00f3
-label.outofbandmanagement.port=Port
-label.outofbandmanagement.username=Felhaszn\u00e1l\u00f3n\u00e9v
-label.override.guest.traffic=Vend\u00e9g forgalom fel\u00fclb\u00edr\u00e1l\u00e1sa
-label.override.public.traffic=Publikus forgalom fel\u00fclb\u00edr\u00e1l\u00e1sa
-label.ovm3.cluster=Nat\u00edv f\u00fcrt\u00f6z\u00e9s
-label.ovm.traffic.label=OVM traffic label
-label.ovs=OVS
-label.owned.public.ips=Birtokolt publikus IP c\u00edmek
-label.owner.account=Tulajdonos sz\u00e1mla
-label.owner.domain=Owner Domain
-label.palo.alto.details=Palo Alto r\u00e9szletek
-label.PA.log.profile=Palo Alto log profil
-label.PA=Palo Alto
-label.parent.domain=Sz\u00fcl\u0151 dom\u00e9n
-label.passive=Passz\u00edv
-label.password.enabled=Jelsz\u00f3 bekapcsolva
-label.password=Jelsz\u00f3
-label.password.lower=jelsz\u00f3
-label.password.reset.confirm=A jelsz\u00f3 \u00fajrabe\u00e1ll\u00edtva\:
-label.PA.threat.profile=Palo Alto fenyeget\u00e9s profil
-label.path=\u00datvonal
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.persistent=Perzisztens
-label.physical.network=Fizikai h\u00e1l\u00f3zat
-label.physical.network.ID=Fizikai h\u00e1l\u00f3zat ID
-label.physical.network.name=A fizikai h\u00e1l\u00f3zat neve
-label.PING.CIFS.password=PING CIFS jelsz\u00f3
-label.PING.CIFS.username=PING CIFS felhaszn\u00e1l\u00f3
-label.PING.dir=PING Directory
-label.ping.path=Ping \u00fatvonal
-label.PING.storage.IP=PING t\u00e1r IP
-label.planner.mode=Tervez\u0151 m\u00f3d
-label.please.complete.the.following.fields=K\u00e9rlek t\u00f6ltsd ki ki a k\u00f6vetkez\u0151 mez\u0151ket
-label.please.specify.netscaler.info=Please specify Netscaler info
-label.please.wait=K\u00e9rlek v\u00e1rj\!
-label.plugin.details=Plugin r\u00e9szletek
-label.plugins=Plugin-ek
-label.pod.dedicated=Pod dedik\u00e1lva
-label.pod.name=Pod n\u00e9v
-label.pod=Pod
-label.pods=Pod-ok
-label.polling.interval.sec=Lek\u00e9rdez\u00e9s id\u0151k\u00f6ze (mp)
-label.portable.ip=Mozgathat\u00f3 IP
-label.portable.ip.range.details=Hordozhat\u00f3 IP tartom\u00e1ny r\u00e9szletek
-label.portable.ip.ranges=Hordozhat\u00f3 IP tartom\u00e1nyok
-label.portable.ips=Hordozhat\u00f3 IP c\u00edmek
-label.port.forwarding.policies=Port forwarding policies
-label.port.forwarding=Port tov\u00e1bb\u00edt\u00e1s
-label.port=Port
-label.port.range=Port tartom\u00e1ny
-label.PreSetup=PreSetup
-label.prev=El\u0151z\u0151
-label.previous=El\u0151z\u0151
-label.primary.allocated=Els\u0151dleges t\u00e1r elk\u00fcl\u00f6n\u00edtve
-label.primary.network=Els\u0151dleges h\u00e1l\u00f3zat
-label.primary.storage.count=Primary Storage Pools
-label.primary.storage=Els\u0151dleges t\u00e1r
-label.primary.storage.limits=Els\u0151dleges t\u00e1r korl\u00e1tok (GiB)
-label.primary.used=Haszn\u00e1lt els\u0151dleges t\u00e1r
-label.private.Gateway=Priv\u00e1t \u00e1tj\u00e1r\u00f3
-label.private.interface=Private Interface
-label.private.ip=Priv\u00e1t IP c\u00edm
-label.private.ip.range=Priv\u00e1t IP tartom\u00e1ny
-label.private.ips=Priv\u00e1t IP c\u00edmek
-label.privatekey=PKCS\#8 priv\u00e1t kulcs
-label.private.key=Priv\u00e1t kulcs
-label.private.network=Priv\u00e1t h\u00e1l\u00f3zat
-label.private.port=Priv\u00e1t port
-label.private.zone=Priv\u00e1t z\u00f3na
-label.profile=Profil
-label.project.dashboard=Projekt m\u0171szerfal
-label.project.id=Projekt ID
-label.project.invite=Megh\u00edv\u00e1s a projektbe
-label.project.name=Projekt n\u00e9v
-label.project=Projekt
-label.projects=Projektek
-label.project.view=Projekt n\u00e9zet
-label.protocol.number=Protokoll sz\u00e1m
-label.protocol=Protokol
-label.providers=Szolg\u00e1ltat\u00f3k
-label.provider=Szolg\u00e1ltat\u00f3
-label.public.interface=Public Interface
-label.public.ip=Publikus IP c\u00edm
-label.public.ips=Publikus IP c\u00edmek
-label.public.key=Publikus kulcs
-label.public.lb=Publikus LB
-label.public.load.balancer.provider=Publikus terhel\u00e9seloszt\u00f3 szolg\u00e1ltat\u00f3
-label.public.network=Publikus h\u00e1l\u00f3zat
-label.public.port=Publikus port
-label.public=Publikus
-label.public.traffic=Publikus forgalom
-label.public.traffic.vswitch.name=Publikus forgalom vSwitch n\u00e9v
-label.public.traffic.vswitch.type=Publikus forgalom vSwitch t\u00edpus
-label.public.zone=Publikus z\u00f3na
-label.purpose=Rendeltet\u00e9s
-label.Pxe.server.type=Pxe szerver t\u00edpus
-label.qos.type=QoS t\u00edpus
-label.quickview=Gyorsn\u00e9zet
-label.quiesce.vm=VM felf\u00fcggeszt\u00e9se
-label.quiet.time.sec=V\u00e1rakoz\u00e1s (mp)
-label.quota.date=D\u00e1tum
-label.quota.enddate=V\u00e9g d\u00e1tum
-label.quota.fullsummary=Minden sz\u00e1mla
-label.quota.startdate=Kezd\u0151 d\u00e1tum
-label.quota.state=\u00c1llapot
-label.quota.total=\u00d6sszes
-label.rbd.id=Cephx felhaszn\u00e1l\u00f3
-label.rbd.monitor=Ceph monitor
-label.rbd.pool=Ceph pool
-label.rbd=RBD
-label.rbd.secret=Cephx secret
-label.reboot=\u00dajraind\u00edt\u00e1s
-label.recent.errors=Legut\u00f3bbi hib\u00e1k
-label.recover.vm=VM helyre\u00e1ll\u00edt\u00e1sa
-label.redundant.router.capability=Redund\u00e1ns router k\u00e9pess\u00e9g
-label.redundant.router=Redund\u00e1ns router
-label.redundant.state=Redund\u00e1ns \u00e1llapot
-label.redundant.vpc=Redund\u00e1ns VPC
-label.refresh.blades=Blade-k friss\u00edt\u00e9se
-label.refresh=Frissit\u00e9s
-label.region.details=R\u00e9gi\u00f3 r\u00e9szletek
-label.regionlevelvpc=R\u00e9gi\u00f3 szint\u0171 VPC
-label.region=R\u00e9gi\u00f3
-label.reinstall.vm=VM \u00fajratelep\u00edt\u00e9se
-label.related=Kapcsol\u00f3d\u00f3
-label.release.account.lowercase=Release from account
-label.release.account=Release from Account
-label.release.dedicated.cluster=Dedik\u00e1lt f\u00fcrt elenged\u00e9se
-label.release.dedicated.host=Dedik\u00e1lt kiszolg\u00e1l\u00f3 elenged\u00e9se
-label.release.dedicated.pod=Dedik\u00e1lt pod elenged\u00e9se
-label.release.dedicated.vlan.range=Dedik\u00e1lt VLAN tartom\u00e1ny elenged\u00e9se
-label.release.dedicated.zone=Dedik\u00e1lt z\u00f3na elenged\u00e9se
-label.remind.later=Eml\u00e9keztess k\u00e9s\u0151bb\!
-label.remove.ACL=ACL elt\u00e1vol\u00edt\u00e1sa
-label.remove.egress.rule=Egress szab\u00e1ly t\u00f6rl\u00e9se
-label.remove.from.load.balancer=P\u00e9ld\u00e1ny elt\u00e1vol\u00edt\u00e1sa terhel\u00e9seloszt\u00f3b\u00f3l
-label.remove.ingress.rule=Ingress szab\u00e1ly t\u00f6rl\u00e9se
-label.remove.ip.range=IP tartom\u00e1ny elt\u00e1vol\u00edt\u00e1sa
-label.remove.ldap=LDAP elt\u00e1vol\u00edt\u00e1sa
-label.remove.network.offering=H\u00e1l\u00f3zati aj\u00e1nlat elt\u00e1vol\u00edt\u00e1sa
-label.remove.pf=Port tov\u00e1bb\u00edt\u00f3 szab\u00e1ly elt\u00e1vol\u00edt\u00e1sa
-label.remove.project.account=Sz\u00e1mla elt\u00e1vol\u00edt\u00e1sa a projektb\u0151l
-label.remove.region=R\u00e9gi\u00f3 elt\u00e1vol\u00edt\u00e1sa
-label.remove.rule=Szab\u00e1ly elt\u00e1vol\u00edt\u00e1sa
-label.remove.ssh.key.pair=SSH kulcsp\u00e1r elt\u00e1vol\u00edt\u00e1sa
-label.remove.static.nat.rule=Statikus NAT szab\u00e1ly elt\u00e1vol\u00edt\u00e1sa
-label.remove.static.route=Remove static route
-label.remove.this.physical.network=A fizikai h\u00e1l\u00f3zat elt\u00e1vol\u00edt\u00e1sa
-label.remove.tier=R\u00e9teg elt\u00e1vol\u00edt\u00e1sa
-label.remove.vm.from.lb=VM elt\u00e1vol\u00edt\u00e1sa terhel\u00e9seloszt\u00f3 szab\u00e1lyb\u00f3l
-label.remove.vm.load.balancer=VM elt\u00e1vol\u00edt\u00e1sa a terhel\u00e9seloszt\u00f3b\u00f3l
-label.remove.vmware.datacenter=VMware adatk\u00f6zpont elt\u00e1vol\u00edt\u00e1sa
-label.remove.vpc.offering=VPC aj\u00e1nlat t\u00f6rl\u00e9se
-label.remove.vpc=VPC elt\u00e1vol\u00edt\u00e1sa
-label.removing=T\u00f6rl\u00e9s
-label.removing.user=Felhaszn\u00e1l\u00f3 elt\u00e1vol\u00edt\u00e1sa
-label.reource.id=Er\u0151forr\u00e1s ID
-label.replace.acl=ACL csere
-label.replace.acl.list=ACL lista cser\u00e9je
-label.required=Sz\u00fcks\u00e9ges
-label.requires.upgrade=Friss\u00edt\u00e9st ig\u00e9nyel
-label.reserved.ip.range=Elk\u00fcl\u00f6n\u00edtett IP c\u00edmtartom\u00e1ny
-label.reserved.system.gateway=Reserved system gateway
-label.reserved.system.ip=Elk\u00fcl\u00f6n\u00edtett rendszer IP
-label.reserved.system.netmask=Elk\u00fcl\u00f6n\u00edtett rendszer h\u00e1l\u00f3zati maszk
-label.reset.ssh.key.pair.on.vm=SSH kulcsp\u00e1r \u00fajrabe\u00e1ll\u00edt\u00e1sa a VM-en
-label.reset.ssh.key.pair=SSH kulcsp\u00e1r \u00fajrabe\u00e1ll\u00edt\u00e1sa
-label.resetVM=VM \u00fajraind\u00edt\u00e1sa
-label.reset.VPN.connection=VPN kapcsolat \u00fajraind\u00edt\u00e1sa
-label.resize.new.offering.id=\u00daj aj\u00e1nlat
-label.resize.new.size=\u00daj m\u00e9ret (GB)
-label.resize.shrink.ok=Cs\u00f6kkent\u00e9s OK
-label.resource=Er\u0151forr\u00e1s
-label.resource.limit.exceeded=Er\u0151forr\u00e1s-korl\u00e1t t\u00fall\u00e9p\u00e9s
-label.resource.limits=Er\u0151forr\u00e1s korl\u00e1tok
-label.resource.name=Er\u0151forr\u00e1s n\u00e9v
-label.resources=Er\u0151forr\u00e1sok
-label.resource.state=Er\u0151forr\u00e1s \u00e1llapot
-label.response.timeout.in.sec=V\u00e1lasz id\u0151t\u00fall\u00e9p\u00e9s (mp)
-label.restart.network=H\u00e1l\u00f3zat \u00fajraind\u00edt\u00e1sa
-label.restart.required=\u00dajraind\u00edt\u00e1s sz\u00fcks\u00e9ges
-label.restart.vpc=VPC \u00fajraind\u00edt\u00e1sa
-label.restore=Helyre\u00e1ll\u00edt\u00e1s
-label.retry.interval=\u00dajraprob\u00e1lkoz\u00e1s id\u0151k\u00f6z
-label.review=Ellen\u0151rz\u00e9s
-label.revoke.project.invite=Megh\u00edv\u00f3 visszavon\u00e1sa
-label.role=Szerep
-label.root.certificate=F\u0151tan\u00fas\u00edtv\u00e1ny
-label.root.disk.controller=Root disk controller
-label.root.disk.offering=Root Disk Offering
-label.router.vm.scaled.up=Router VM Scaled Up
-label.routing.host=Routing kiszolg\u00e1l\u00f3
-label.routing=\u00datvonalv\u00e1laszt\u00e1s
-label.rule.number=Szab\u00e1ly sz\u00e1m
-label.rules=Szab\u00e1lyok
-label.running.vms=Fut\u00f3 VM-ek
-label.s3.access_key=Hozz\u00e1f\u00e9r\u00e9si kulcs
-label.s3.bucket=Kos\u00e1r
-label.s3.connection_timeout=Kapcsol\u00f3d\u00e1si id\u0151t\u00fall\u00e9p\u00e9s
-label.s3.endpoint=V\u00e9gpont
-label.s3.max_error_retry=\u00dajrapr\u00f3b\u00e1lkoz\u00e1s max.
-label.s3.nfs.path=S3 NFS \u00fatvonal
-label.s3.nfs.server=S3 NFS kiszolg\u00e1l\u00f3
-label.s3.secret_key=Titkos kulcs
-label.s3.socket_timeout=Kapcsolat id\u0151t\u00fall\u00e9p\u00e9s
-label.s3.use_https=HTTPS haszn\u00e1lata
-label.saturday=Szombat
-label.save.and.continue=Ment\u00e9s \u00e9s folytat\u00e1s
-label.save.changes=V\u00e1ltoz\u00e1sok ment\u00e9se
-label.save=Ment\u00e9s
-label.saving.processing=Ment\u00e9s...
-label.scaledown.policy=ScaleDown szab\u00e1lyzat
-label.scale.up.policy=SCALE UP POLICY
-label.scaleup.policy=ScaleUp szab\u00e1lyzat
-label.scope=Hat\u00e1ly
-label.search=Keres\u00e9s
-label.secondary.ips=M\u00e1sodlagos IP c\u00edmek
-label.secondary.isolated.vlan.id=M\u00e1sodlagos izol\u00e1lt VLAN ID
-label.secondary.staging.store.details=Secondary Staging Store details
-label.secondary.staging.store=Secondary Staging Store
-label.secondary.storage.count=Secondary Storage Pools
-label.secondary.storage.details=M\u00e1sodlagos t\u00e1r r\u00e9szletek
-label.secondary.storage.limits=Secondary Storage limits (GiB)
-label.secondary.storage=M\u00e1sodlagos t\u00e1r
-label.secondary.storage.vm=Secondary storage VM
-label.secondary.used=Haszn\u00e1lt m\u00e1sodlagos t\u00e1r
-label.secret.key=Titkos kulcs
-label.security.group=Biztons\u00e1gi csoport
-label.security.group.name=Biztons\u00e1gi csoport n\u00e9v
-label.security.groups=Biztons\u00e1gi csoportok
-label.security.groups.enabled=Biztons\u00e1gi csoportok bekapcsolva
-label.select.a.template=V\u00e1lassz egy sablont\!
-label.select.a.zone=V\u00e1lassz egy z\u00f3n\u00e1t\!
-label.select.instance.to.attach.volume.to=V\u00e1laszd ki a p\u00e9ld\u00e1nyt, amelyikhez a k\u00f6tetet csatlakoztatni szeretn\u00e9d\!
-label.select.instance=V\u00e1laszd ki a p\u00e9d\u00e1nyt\!
-label.select.iso.or.template=V\u00e1lassz ISO-t vagy sablont\!
-label.select=Kiv\u00e1laszt\u00e1s
-label.select.offering=V\u00e1lassz aj\u00e1nlatot\!
-label.select.project=V\u00e1lassz projektet\!
-label.select.region=R\u00e9gi\u00f3 kiv\u00e1laszt\u00e1sa
-label.select.template=Sablon kiv\u00e1laszt\u00e1sa
-label.select.tier=V\u00e1lassz r\u00e9teget\!
-label.select-view=N\u00e9zet
-label.select.vm.for.static.nat=V\u00e1lassz VM-et a statikus NAT-hoz
-label.sent=Elk\u00fcld\u00f6tt
-label.server=Szerver
-label.service.capabilities=Szolg\u00e1ltat\u00e1s k\u00e9pess\u00e9gek
-label.service.offering.details=Szolg\u00e1ltat\u00e1s aj\u00e1nlat r\u00e9szletei
-label.service.offering=Szolg\u00e1ltat\u00e1s aj\u00e1nlat
-label.services=Szolg\u00e1ltat\u00e1sok
-label.service.state=Szolg\u00e1ltat\u00e1s \u00e1llapot
-label.session.expired=A munkamenet lej\u00e1rt
-label.set.default.NIC=Alap\u00e9rtelmezett NIC be\u00e1ll\u00edt\u00e1sa
-label.settings=Be\u00e1ll\u00edt\u00e1sok
-label.setup=Be\u00e1ll\u00edt\u00e1sok
-label.setup.network=H\u00e1l\u00f3zat be\u00e1ll\u00edt\u00e1sa
-label.set.up.zone.type=Z\u00f3na-t\u00edpus be\u00e1ll\u00edt\u00e1sa
-label.setup.zone=Z\u00f3na be\u00e1ll\u00edt\u00e1sa
-label.SharedMountPoint=SharedMountPoint
-label.shared=Osztott
-label.show.advanced.settings=Halad\u00f3 szint\u0171 be\u00e1ll\u00edt\u00e1sok
-label.show.ingress.rule=Ingress szab\u00e1ly megjelen\u00edt\u00e9se
-label.shutdown.provider=Szolg\u00e1ltat\u00f3 le\u00e1ll\u00edt\u00e1sa
-label.simplified.chinese.keyboard=Egyszer\u0171s\u00edtett k\u00ednai billenty\u0171zet
-label.site.to.site.VPN=Site-to-site VPN
-label.size=M\u00e9ret
-label.skip.guide=Haszn\u00e1ltam m\u00e1r a CloudStack-et, kihagyom ezt az \u00fatmutat\u00f3t
-label.smb.domain=SMB dom\u00e9n
-label.smb.password=SMB jelsz\u00f3
-label.smb.username=SMB felhaszn\u00e1l\u00f3n\u00e9v
-label.snapshot.limits=Pillanatfelv\u00e9tel korl\u00e1tok
-label.snapshot.name=Pillanatfelv\u00e9tel n\u00e9v
-label.snapshot=Pillanatfelv\u00e9tel
-label.snapshot.schedule=Ism\u00e9tl\u0151d\u0151 pillanatfelv\u00e9tel be\u00e1ll\u00edt\u00e1sa
-label.snapshot.s=Pillanatfelv\u00e9telek
-label.snapshots=Pillanatfelv\u00e9telek
-label.SNMP.community=SNMP Community
-label.SNMP.port=SNMP Port
-label.sockets=CPU aljzatok
-label.source.ip.address=Forr\u00e1s IP c\u00edm
-label.source.nat=Forr\u00e1s NAT
-label.source.nat.supported=SourceNAT Supported
-label.source.port=Forr\u00e1s port
-label.specify.IP.ranges=Add meg az IP tartom\u00e1nyokat\!
-label.specify.vlan=VLAN megad\u00e1sa
-label.specify.vxlan=VXLAN megad\u00e1sa
-label.SR.name=SR Name-Label
-label.srx.details=SRX r\u00e9szletek
-label.srx=SRX
-label.ssh.key.pair.details=SSH kucsp\u00e1r r\u00e9szletei
-label.ssh.key.pair=SSH kulcsp\u00e1r
-label.ssh.key.pairs=SSH kulcsp\u00e1rok
-label.standard.us.keyboard=Amerikai (USA) szabv\u00e1nyos billenty\u0171zet
-label.start.IP=Kezd\u0151 IP
-label.start.lb.vm=Terhel\u00e9seloszt\u00f3 VM ind\u00edt\u00e1sa
-label.start.port=Kezd\u0151 port
-label.start.reserved.system.IP=Kezd\u0151 elk\u00fcl\u00f6n\u00edtett rendszer IP
-label.start.vlan=Els\u0151 VLAN
-label.start.vxlan=Els\u0151 VXLAN
-label.state=\u00c1llapot
-label.static.nat.enabled=Statikus NAT bekapcsolva
-label.static.nat=Statikus NAT
-label.static.nat.to=Statikus NAT c\u00e9lpont
-label.static.nat.vm.details=Static NAT VM Details
-label.static.routes=Statikus \u00fatvonalak
-label.statistics=Statisztika
-label.status=\u00c1llapot
-label.step.1=1. l\u00e9p\u00e9s
-label.step.1.title=1. l\u00e9p\u00e9s\: <strong>Sablon kiv\u00e1laszt\u00e1sa</strong>
-label.step.2=2. l\u00e9p\u00e9s
-label.step.2.title=2. l\u00e9p\u00e9s\: <strong>Szolg\u00e1ltat\u00e1s aj\u00e1nlat</strong>
-label.step.3=3. l\u00e9p\u00e9s
-label.step.3.title=3. l\u00e9p\u00e9s\: <strong id\="step3_label">Merevlemez aj\u00e1nlat v\u00e1laszt\u00e1sa</strong>
-label.step.4=4. l\u00e9p\u00e9s
-label.step.4.title=4. l\u00e9p\u00e9s\: <strong>H\u00e1l\u00f3zat</strong>
-label.step.5=5. l\u00e9p\u00e9s
-label.step.5.title=5. l\u00e9p\u00e9s\: <strong>Ellen\u0151rz\u00e9s</strong>
-label.stickiness.method=Stickiness method
-label.stickiness=Stickiness
-label.sticky.cookie-name=Cookie n\u00e9v
-label.sticky.domain=Dom\u00e9n
-label.sticky.expire=Lej\u00e1rat
-label.sticky.holdtime=Hold time
-label.sticky.indirect=Indirekt
-label.sticky.length=Hossz
-label.sticky.mode=M\u00f3d
-label.sticky.name=Sticky Name
-label.sticky.nocache=Nincs gyors\u00edt\u00f3t\u00e1r
-label.sticky.postonly=Post only
-label.sticky.prefix=El\u0151tag
-label.sticky.request-learn=Request learn
-label.sticky.tablesize=T\u00e1bla m\u00e9ret
-label.stop.lb.vm=Terhel\u00e9seloszt\u00f3 VM le\u00e1ll\u00edt\u00e1sa
-label.stopped.vms=Le\u00e1ll\u00edtott VM-ek
-label.stop=\u00c1lj
-label.storage.pool=Storage Pool
-label.storage.tags=T\u00e1r c\u00edmk\u00e9k
-label.storage.traffic=T\u00e1r forgalom
-label.storage=T\u00e1r
-label.storage.type=T\u00e1r t\u00edpus
-label.subdomain.access=Subdomain Access
-label.submit=Elk\u00fcld\u00e9s
-label.submitted.by=[Bek\u00fcld\u0151\: <span id\="submitted_by"></span>]
-label.succeeded=Siker\u00fclt
-label.sunday=Vas\u00e1rnap
-label.super.cidr.for.guest.networks=Super CIDR for Guest Networks
-label.supported.services=T\u00e1mogatott szolg\u00e1ltat\u00e1sok
-label.supported.source.NAT.type=T\u00e1mogatott forr\u00e1s NAT t\u00edpus
-label.supportsstrechedl2subnet=Supports Streched L2 Subnet
-label.suspend.project=Projekt felf\u00fcggeszt\u00e9se
-label.switch.type=Switch t\u00edpus
-label.system.capacity=Rendszer kapac\u00edt\u00e1s
-label.system.offering.for.router=Rendszer aj\u00e1nlat router-re
-label.system.offering=Rendszer aj\u00e1nlat
-label.system.service.offering.details=Rendszer szolg\u00e1ltat\u00e1s aj\u00e1nlat r\u00e9szletei
-label.system.service.offering=Rendszer szolg\u00e1ltat\u00e1s aj\u00e1nlat
-label.system.vm.details=Rendszer VM r\u00e9szletek
-label.system.vm=Rendszer VM
-label.system.vm.scaled.up=Rendszer VM felm\u00e9retezve
-label.system.vms=Rendszer VM-ek
-label.system.vm.type=Rendszer VM t\u00edpus
-label.system.wide.capacity=Rendszer-szint\u0171 kapac\u00edt\u00e1s
-label.tagged=Cimk\u00e9zve
-label.tag.key=C\u00edmke kulcs
-label.tags=Cimk\u00e9k
-label.tag.value=C\u00edmke \u00e9rt\u00e9k
-label.target.iqn=C\u00e9l IQN
-label.task.completed=Feladat v\u00e9grehajtva
-label.template.limits=Sablon korl\u00e1tok
-label.template=Sablon
-label.TFTP.dir=TFTP k\u00f6nyvt\u00e1r
-label.tftp.root.directory=Tftp root directory
-label.theme.default=Alap\u00e9rtelmezett t\u00e9ma
-label.theme.grey=Egyedi - sz\u00fcrke
-label.theme.lightblue=Egyedi - vil\u00e1gosk\u00e9k
-label.threshold=K\u00fcsz\u00f6b\u00e9rt\u00e9k
-label.thursday=Cs\u00fct\u00f6rt\u00f6k
-label.tier.details=R\u00e9teg r\u00e9szletei
-label.tier=R\u00e9teg
-label.time.colon=Id\u0151\:
-label.time=Id\u0151
-label.timeout=Id\u0151t\u00fall\u00e9p\u00e9s
-label.timeout.in.second = Id\u0151t\u00fall\u00e9p\u00e9s (mp)
-label.timezone.colon=Id\u0151z\u00f3na
-label.time.zone=Id\u0151z\u00f3na
-label.timezone=Id\u0151z\u00f3na
-label.token=Token
-label.total.cpu=\u00d6sszes CPU
-label.total.CPU=\u00d6sszes CPU
-label.total.hosts=\u00d6sszes kiszolg\u00e1l\u00f3
-label.total.memory=Mem\u00f3ria \u00f6sszesen
-label.total.of.ip=IP c\u00edmek \u00f6sszesen
-label.total.of.vm=\u00d6sszes VM
-label.total.storage=\u00d6sszes t\u00e1r
-label.total.virtual.routers=Total of Virtual Routers
-label.total.virtual.routers.upgrade=Total of Virtual Routers that require upgrade
-label.total.vms=\u00d6sszes VM
-label.traffic.label=Forgalom c\u00edmke
-label.traffic.type=Forgalom t\u00edpus
-label.traffic.types=Forgalom t\u00edpusok
-label.tuesday=Kedd
-label.type.id=T\u00edpus ID
-label.type.lower=t\u00edpus
-label.type=T\u00edpus
-label.ucs=UCS
-label.uk.keyboard=UK billenty\u0171zet
-label.unavailable=Nem el\u00e9rhet\u0151
-label.unhealthy.threshold=Nem eg\u00e9szs\u00e9ges k\u00fcsz\u00f6b
-label.unlimited=Korl\u00e1tlan
-label.untagged=Cimk\u00e9zetlen
-label.update.project.resources=Update project resources
-label.update.ssl.cert= SSL tan\u00fastv\u00e1ny
-label.update.ssl= SSL tan\u00fastv\u00e1ny
-label.updating=Updating
-label.upgrade.required=Frissit\u00e9sre van sz\u00fcks\u00e9g
-label.upgrade.router.newer.template=Upgrade Router to Use Newer Template
-label.upload=Felt\u00f6lt\u00e9s
-label.upload.from.local=Felt\u00f6lt\u00e9s
-label.upload.template.from.local=Sablon felt\u00f6lt\u00e9se
-label.upload.volume.from.local=K\u00f6tet felt\u00f6lt\u00e9se
-label.upload.volume.from.url=K\u00f6tet felt\u00f6lt\u00e9se URL-r\u0151l
-label.upload.volume=K\u00f6tet felt\u00f6lt\u00e9se
-label.url=URL
-label.usage.interface=Usage Interface
-label.usage.sanity.result=Usage Sanity Result
-label.usage.server=Usage Server
-label.used=Haszn\u00e1lt
-label.user.data=Felhaszn\u00e1l\u00f3i adat
-label.user.details=Felhaszn\u00e1l\u00f3 adatai
-label.user=Felhaszn\u00e1l\u00f3
-label.username=Felhaszn\u00e1l\u00f3n\u00e9v
-label.username.lower=felhaszn\u00e1l\u00f3n\u00e9v
-label.users=Felhaszn\u00e1l\u00f3k
-label.user.vm=Felhaszn\u00e1l\u00f3i VM
-label.use.vm.ips=VM IP c\u00edmek haszn\u00e1lata
-label.use.vm.ip=VM IP c\u00edm haszn\u00e1lata\:
-label.value=\u00c9rt\u00e9k
-label.vcdcname=vCenter DC n\u00e9v
-label.vcenter.cluster=vCenter f\u00fcrt
-label.vcenter.datacenter=vCenter adatk\u00f6zpont
-label.vcenter.datastore=vCenter t\u00e1r
-label.vcenter.host=vCenter kiszolg\u00e1l\u00f3k
-label.vcenter.password=vCenter jelsz\u00f3
-label.vcenter.username=vCenter felhaszn\u00e1l\u00f3n\u00e9v
-label.vcenter=vcenter
-label.vcipaddress=vCenter IP c\u00edm
-label.version=Verzi\u00f3
-label.vgpu.max.resolution=Max k\u00e9pm\u00e9ret
-label.vgpu.max.vgpu.per.gpu=vGPU-k GPU-nk\u00e9nt
-label.vgpu.remaining.capacity=Megmarad\u00f3 kapac\u00edt\u00e1s
-label.vgpu.type=vGPU t\u00edpus
-label.vgpu=VGPU
-label.vgpu.video.ram=Video RAM
-label.view.all=\u00d6sszes megtekint\u00e9se
-label.view.console=Konzol megtekint\u00e9se
-label.viewing=Megtekint\u00e9s
-label.view.more=Tov\u00e1bbiak megtekint\u00e9se
-label.view=N\u00e9zet
-label.view.secondary.ips=M\u00e1sodlagos IP c\u00edmek megtekint\u00e9se
-label.virtual.appliance.details=Virtu\u00e1lis k\u00e9sz\u00fcl\u00e9k r\u00e9szletei
-label.virtual.appliances=Virtu\u00e1lis k\u00e9sz\u00fcl\u00e9kek
-label.virtual.appliance=Virtu\u00e1lis k\u00e9sz\u00fcl\u00e9k
-label.virtual.machines=Virtu\u00e1lis g\u00e9pek
-label.virtual.machine=Virtu\u00e1lis g\u00e9p
-label.virtual.networking=Virtu\u00e1lis h\u00e1l\u00f3zat
-label.virtual.network=Virtu\u00e1lis h\u00e1l\u00f3zat
-label.virtual.routers.group.account=Virtu\u00e1lis routerek sz\u00e1ml\u00e1nk\u00e9nt
-label.virtual.routers.group.cluster=Virtual Routers group by cluster
-label.virtual.routers.group.pod=Virtual Routers group by pod
-label.virtual.routers.group.zone=Virtu\u00e1lis routerek z\u00f3n\u00e1nk\u00e9nt csoportos\u00edtva
-label.virtual.routers=Virtu\u00e1lis routerek
-label.virtual.router=Virtu\u00e1lis router
-label.vlan.id=VLAN/VNI ID
-label.vlan.only=VLAN
-label.vlan.range.details=VLAN tartom\u00e1ny r\u00e9szletei
-label.vlan.ranges=VLAN tartom\u00e1ny(ok)
-label.vlan.range=VLAN/VNI tartom\u00e1ny
-label.vlan=VLAN/VNI
-label.vlan.vni.ranges=VLAN/VNI tartom\u00e1ny(ok)
-label.vlan.vni.range=VLAN/VNI tartom\u00e1ny
-label.vm.add=P\u00e9ld\u00e1ny felv\u00e9tele
-label.vm.destroy=Elpuszt\u00edt
-label.vm.display.name=VM megjelen\u00edtend\u0151 n\u00e9v
-label.VMFS.datastore=VMFS adatt\u00e1r
-label.vmfs=VMFS
-label.vm.id=VM ID
-label.vm.ip=VM IP c\u00edm
-label.vm.name=VM n\u00e9v
-label.vm.password=A VM jelszava
-label.vm.reboot=\u00dajraind\u00edt\u00e1s
-label.VMs.in.tier=R\u00e9teg VM-ei
-label.vmsnapshot.current=Jelnlegi
-label.vmsnapshot.memory=Pillanatfelv\u00e9tel mem\u00f3ria
-label.vmsnapshot.parentname=Sz\u00fcl\u0151
-label.vmsnapshot.type=T\u00edpus
-label.vmsnapshot=VM pillanatfelv\u00e9telek
-label.vm.start=Ind\u00edt\u00e1s
-label.vm.state=VM \u00e1llapot
-label.vm.stop=\u00c1lj
-label.vms=VM-ek
-label.vmware.datacenter.id=VMware adatk\u00f6zpont ID
-label.vmware.datacenter.name=VMware adatk\u00f6zpont n\u00e9v
-label.vmware.datacenter.vcenter=VMware datacenter vcenter
-label.vmware.traffic.label=VMware traffic label
-label.vnet.id=VLAN/VNI ID
-label.vnet=VLAN/VNI
-label.vnmc.devices=VNMC eszk\u00f6z\u00f6k
-label.vnmc=VNMC
-label.volatile=Ill\u00e9kony
-label.volgroup=K\u00f6tet csoport
-label.volume.details=K\u00f6tet r\u00e9szletek
-label.volume=K\u00f6tet
-label.volume.limits=K\u00f6teg korl\u00e1tok
-label.volume.migrated=K\u00f6tet \u00e1tk\u00f6lt\u00f6ztetve
-label.volume.name=K\u00f6tet n\u00e9v
-label.volumes=K\u00f6tetek
-label.vpc.distributedvpcrouter=Elosztott VPC Router
-label.vpc.id=VPC ID
-label.VPC.limits=VPC korl\u00e1tok
-label.vpc.offering.details=VPC aj\u00e1nlat r\u00e9szletei
-label.vpc.offering=VPC aj\u00e1nlat
-label.VPC.router.details=VPC router r\u00e9szletek
-label.vpc.supportsregionlevelvpc=R\u00e9gi\u00f3-szint\u0171 VPC-t t\u00e1mogat
-label.vpc.virtual.router=VPC virtu\u00e1lis router
-label.vpc=VPC
-label.VPN.connection=VPN kapcsolat
-label.vpn.customer.gateway=VPN \u00fcgyf\u00e9lkapu
-label.VPN.customer.gateway=VPN \u00fcgyf\u00e9lkapu
-label.VPN.gateway=VPN \u00e1tj\u00e1r\u00f3
-label.vpn=VPN
-label.vsmctrlvlanid=Vez\u00e9rl\u0151 VLAN ID
-label.vsmpktvlanid=Csomag VLAN ID
-label.vsmstoragevlanid=T\u00e1r VLAN ID
-label.vsphere.managed=vSphere Managed
-label.vswitch.name=vSwitch n\u00e9v
-label.vSwitch.type=vSwitch t\u00edpus
-label.vxlan.id=VXLAN ID
-label.vxlan.range=VXLAN tartom\u00e1ny
-label.vxlan=VXLAN
-label.waiting=V\u00e1rakoz\u00e1s
-label.warn=Figyelmeztet\u00e9s
-label.warning=Figyelmeztet\u00e9s
-label.warn.upper=WARN
-label.wednesday=Szerda
-label.weekly=Heti
-label.welcome.cloud.console=\u00dcdv\u00f6z\u00f6l a vez\u00e9rl\u0151konzol\!
-label.welcome=\u00dcdv\u00f6z\u00f6llek\!
-label.what.is.cloudstack=Mi a CloudStack&\#8482?
-label.xenserver.tools.version.61.plus=Original XS Version is 6.1\\+
-label.Xenserver.Tools.Version61plus=Original XS Version is 6.1\\+
-label.xenserver.traffic.label=XenServer traffic label
-label.yes=Igen
-label.zone.dedicated=A z\u00f3na dedik\u00e1lva
-label.zone.details=Z\u00f3na r\u00e9szletei
-label.zone.id=Z\u00f3na ID
-label.zone.lower=z\u00f3na
-label.zone.name=Z\u00f3na n\u00e9v
-label.zone.step.1.title=1. l\u00e9p\u00e9s\: <strong>H\u00e1l\u00f3zat kiv\u00e1laszt\u00e1sa</strong>
-label.zone.step.2.title=2. l\u00e9p\u00e9s\: <strong>Z\u00f3na felv\u00e9tele</strong>
-label.zone.step.3.title=3. l\u00e9p\u00e9s\: <strong>Pod felv\u00e9tele</strong>
-label.zone.step.4.title=4. l\u00e9p\u00e9s\: <strong>IP c\u00edmtartom\u00e1ny felv\u00e9tele</strong>
-label.zones=Z\u00f3n\u00e1k
-label.zone.type=Z\u00f3na t\u00edpus
-label.zone.wide=Eg\u00e9sz z\u00f3n\u00e1ra kiterjed\u0151
-label.zoneWizard.trafficType.guest=Vend\u00e9g\: forgalom v\u00e9gfelhaszn\u00e1l\u00f3i virtu\u00e1lis g\u00e9pek k\u00f6z\u00f6tt
-label.zoneWizard.trafficType.management=Vez\u00e9rl\u00e9s\: forgalom a CloudStack felh\u0151 er\u0151forr\u00e1sai k\u00f6z\u00f6tt, bele\u00e9rtve azokat a komponenseket, amelyek a vez\u00e9rl\u0151 szerverrel kommunik\u00e1lnak, mint a kiszolg\u00e1l\u00f3k \u00e9s a rendszer VM-ek
-label.zoneWizard.trafficType.public=Publikus\: forgalom az internet \u00e9s a felh\u0151 virtu\u00e1lis g\u00e9pei k\u00f6z\u00f6tt
-label.zoneWizard.trafficType.storage=T\u00e1r\: forgalom az els\u0151dleges \u00e9s m\u00e1sodlagos t\u00e1r szerverek k\u00f6z\u00f6tt, p\u00e9ld\u00e1ul VM sablonok \u00e9s pillanatfelv\u00e9telek
-label.zone=Z\u00f3na
-managed.state=Managed State
-message.acquire.ip.nic=Er\u0151s\u00edtsd meg, hogy \u00faj m\u00e1sodlagos IP c\u00edmet k\u00e9rsz ehhez a NIC-hez\!<br/>Megjegyz\u00e9s\: manu\u00e1lisan kell be\u00e1ll\u00edtanod a frissen beszerzett m\u00e1sodlagos IP c\u00edmet a virtu\u00e1lis g\u00e9pben.
-message.acquire.new.ip=Er\u0151s\u00edtsd meg, hogy \u00faj IP c\u00edmet k\u00e9rsz ennek a h\u00e1l\u00f3zatnak\!
-message.acquire.new.ip.vpc=Er\u0151s\u00edtsd meg, hogy \u00faj IP c\u00edmet k\u00e9rsz ennek a VPC-nek\!
-message.acquire.public.ip=V\u00e1lassz ki egy z\u00f3n\u00e1t, amelyikb\u0151l az \u00faj IP c\u00edmet k\u00e9rni akarod\!
-message.action.cancel.maintenance=A kiszolg\u00e1l\u00f3 karbantart\u00e1s\u00e1t sikeresen megszak\u00edtottad. Ez a folyamat t\u00f6bb percet vehet ig\u00e9nybe.
-message.action.cancel.maintenance.mode=Er\u0151s\u00edtsd meg, hogy meg akarod szak\u00edtani ezt a karbantart\u00e1st\!
-message.action.change.service.warning.for.instance=A p\u00e9ld\u00e1nyt le kell \u00e1ll\u00edtani, miel\u0151tt a jelenlegi szolg\u00e1ltat\u00e1si aj\u00e1nlatait megpr\u00f3b\u00e1lod megv\u00e1ltoztatni.
-message.action.change.service.warning.for.router=A routert le kell \u00e1ll\u00edtani miel\u00f6tt a jelenlegi szolg\u00e1ltat\u00e1si aj\u00e1nlatait megpr\u00f3b\u00e1lod megv\u00e1ltoztatni.
-message.action.delete.cluster=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a f\u00fcrt\u00f6t\!
-message.action.delete.disk.offering=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a merevlemez aj\u00e1nlatot\!
-message.action.delete.domain=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a dom\u00e9nt\!
-message.action.delete.external.firewall=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a k\u00fcls\u0151 t\u0171zfalat\! Figyelmeztet\u00e9s\: Ha azt tervezed, hogy ugyanazt a k\u00fcls\u0151 t\u0171zfalat regisztr\u00e1lod \u00fajra, az eszk\u00f6z\u00f6n t\u00f6r\u00f6ln\u00f6d kell a haszn\u00e1lati adatokat.
-message.action.delete.external.load.balancer=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a k\u00fcls\u0151 terhel\u00e9seloszt\u00f3t\! Figyelmeztet\u00e9s\: Ha azt tervezed, hogy ugyanazt a k\u00fcls\u0151 terhel\u00e9seloszt\u00f3t regisztr\u00e1lod \u00fajra, az eszk\u00f6z\u00f6n t\u00f6r\u00f6ln\u00f6d kell a haszn\u00e1lati adatokat.
-message.action.delete.ingress.rule=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt az ingress szab\u00e1lyt\!
-message.action.delete.ISO=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt az ISO-t\!
-message.action.delete.ISO.for.all.zones=Az ISO-t minden z\u00f3na haszn\u00e1lja. Er\u0151s\u00edtsd meg, hogy minden z\u00f3n\u00e1b\u00f3l t\u00f6r\u00f6lni akarod\!
-message.action.delete.network=Er\u0151s\u00edtsd meg, hogy le akarod t\u00f6r\u00f6lni ezt a h\u00e1l\u00f3zatot\!
-message.action.delete.nexusVswitch=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a nexus 1000v-t\!
-message.action.delete.nic=Er\u0151s\u00edtsd meg, hogy el akarod t\u00e1vol\u00edtani a NIC-t\! A hozz\u00e1 kapcsolt h\u00e1l\u00f3zat is t\u00f6rl\u0151dik a VM-b\u0151l.
-message.action.delete.physical.network=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a fizikai h\u00e1l\u00f3zatot\!
-message.action.delete.pod=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a pod-ot\!
-message.action.delete.primary.storage=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt az els\u0151dleges t\u00e1rat\!
-message.action.delete.secondary.storage=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a m\u00e1sodlagos t\u00e1rat\!
-message.action.delete.security.group=K\u00e9rlek er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a biztons\u00e1gi csoportot\!
-message.action.delete.service.offering=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a szolg\u00e1ltat\u00e1s aj\u00e1nlatot\!
-message.action.delete.snapshot=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a pillanatfelv\u00e9telt\!
-message.action.delete.system.service.offering=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a rendszer szolg\u00e1ltat\u00e1s aj\u00e1nlatot\!
-message.action.delete.template=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a sablont\!
-message.action.delete.template.for.all.zones=Ezt a sablont minden z\u00f3na haszn\u00e1lja. Er\u0151s\u00edtsd meg, hogy minden z\u00f3n\u00e1b\u00f3l t\u00f6r\u00f6lni szeretn\u00e9d\!
-message.action.delete.volume=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a k\u00f6tetet\!
-message.action.delete.zone=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a z\u00f3n\u00e1t\!
-message.action.destroy.instance=Er\u0151s\u00edtsd meg, hogy el akarod puszt\u00edtani ezt a p\u00e9ld\u00e1nyt\!
-message.action.destroy.systemvm=Er\u0151s\u00edtsd meg, hogy el akarod puszt\u00edtani ezt a rendszer VM-et\!
-message.action.disable.cluster=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni ezt a f\u00fcrt\u00f6t\!
-message.action.disable.nexusVswitch=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni ezt a nexus 1000v-t\!
-message.action.disable.physical.network=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni ezt a fizikai h\u00e1l\u00f3zatot\!
-message.action.disable.pod=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni ezt a pod-ot\!
-message.action.disable.static.NAT=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni a statikus NAT-ot\!
-message.action.disable.zone=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni ezt a z\u00f3n\u00e1t\!
-message.action.downloading.template=Sablon let\u00f6lt\u00e9se
-message.action.download.iso=Er\u0151s\u00edtsd meg, hogy le akarod t\u00f6lteni ezt az ISO-t\!
-message.action.download.template=Er\u0151s\u00edtsd meg, hogy le akarod t\u00f6lteni ezt a sablont\!
-message.action.enable.cluster=Er\u0151s\u00edtsd meg, hogy be akarod kapcsolni ezt a f\u00fcrt\u00f6t\!
-message.action.enable.maintenance=A kiszolg\u00e1l\u00f3 sikeresen felk\u00e9sz\u00fclt a karbantart\u00e1sra. Ez a m\u0171velet t\u00f6bb percet is ig\u00e9nybe vehet att\u00f3l f\u00fcgg\u0151en, mennyi VM fut rajta jelenleg.
-message.action.enable.nexusVswitch=Er\u0151s\u00edtsd meg, hogy be akarod kapcsolni ezt a nexus 1000v-t\!
-message.action.enable.physical.network=Er\u0151s\u00edtsd meg, hogy be akarod kapcsolni ezt a fizikai h\u00e1l\u00f3zatot.
-message.action.enable.pod=Er\u0151s\u00edtsd meg, hogy be akarod kapcsolni ezt a pod-ot\!
-message.action.enable.zone=Er\u0151s\u00edtsd meg, hogy be akarod kapcsolni ezt a z\u00f3n\u00e1t\!
-message.action.expunge.instance=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a p\u00e9ld\u00e1nyt\!
-message.action.force.reconnect=A kiszolg\u00e1l\u00f3 \u00fajrakapcsol\u00f3d\u00e1s\u00e1t siker\u00fclt kik\u00e9nyszer\u00edteni. Ez a folyamat t\u00f6bb percet veet ig\u00e9nybe.
-message.action.host.enable.maintenance.mode=A karbantart\u00e1s elind\u00edt\u00e1sa az \u00f6sszes a kiszolg\u00e1l\u00f3n fut\u00f3 p\u00e9ld\u00e1ny m\u00e1s kiszolg\u00e1l\u00f3ra k\u00f6lt\u00f6ztet\u00e9s\u00e9t ind\u00edtja el.
-message.action.instance.reset.password=Er\u0151s\u00edtsd meg, hogy meg akarod v\u00e1ltoztatni a virtu\u00e1lis g\u00e9p ROOT jelszav\u00e1t\!
-message.action.manage.cluster=Er\u0151s\u00edtsd meg, hogy vez\u00e9relni akarod ezt a f\u00fcrt\u00f6t\!
-message.action.primarystorage.enable.maintenance.mode=Figyelmeztet\u00e9s\: az els\u0151dleges t\u00e1r karbantart\u00e1si m\u00f3dba helyez\u00e9se minden azt haszn\u00e1l\u00f3 VM-et le\u00e1ll\u00edt. Akarod folytatni?
-message.action.reboot.instance=Er\u0151s\u00edtsd meg, hogy \u00fajra akarod ind\u00edtani ezt a p\u00e9ld\u00e1nyt\!
-message.action.reboot.router=Minden a router \u00e1ltal ny\u00fajtott szolg\u00e1ltat\u00e1s megszakad. Er\u0151s\u00edtsd meg, hogy \u00fajra akarod ind\u00edtani a routert\!
-message.action.reboot.systemvm=Er\u0151s\u00edtsd meg, hogy \u00fajra akarod ind\u00edtani ezt a rendszer VM-et\!
-message.action.release.ip=Er\u0151s\u00edtsd meg, hogy el akarod engedni ezt az IP c\u00edmet\!
-message.action.remove.host=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a kiszolg\u00e1l\u00f3t\!
-message.action.reset.password.off=A p\u00e9ld\u00e1ny nem t\u00e1mogatja ezt a lehet\u0151s\u00e9get.
-message.action.reset.password.warning=A p\u00e9ld\u00e1nyt le kell \u00e1ll\u00edtanod, miel\u00f6tt megpr\u00f3b\u00e1ln\u00e1d lecser\u00e9lni a jelszav\u00e1t.
-message.action.restore.instance=Er\u0151s\u00edtsd meg, hogy helyre akarod \u00e1ll\u00edtani ezt a p\u00e9ld\u00e1nyt\!
-message.action.revert.snapshot=Er\u0151s\u00edtsd meg, hogy vissza akarod \u00e1ll\u00edtani a k\u00f6tetet erre a pillanatfelv\u00e9tlere\!
-message.action.start.instance=Er\u0151s\u00edtsd meg, hogy el akarod ind\u00edtani ezt a p\u00e9ld\u00e1nyt\!
-message.action.start.router=Er\u0151s\u00edtsd meg, hogy el akarod ind\u00edtani ezt a routert\!
-message.action.start.systemvm=Er\u0151s\u00edtsd meg, hogy el akarod ind\u00edtani ezt a rendszer VM-et\!
-message.action.stop.instance=Er\u0151s\u00edtsd meg, hogy le akarod \u00e1ll\u00edtani ezt a p\u00e9ld\u00e1nyt\!
-message.action.stop.router=Minden ezzel a routerrel kapcsolatos szolg\u00e1ltat\u00e1s megszakad. Er\u0151s\u00edtsd meg, hogy le akarod \u00e1ll\u00edtani ezt a routert\!
-message.action.stop.systemvm=Er\u0151s\u00edtsd meg, hogy le akarod \u00e1ll\u00edtani ezt a rendszer VM-et\!
-message.action.take.snapshot=Er\u0151s\u00edtsd meg, hogy pillanatfelv\u00e9telt k\u00e9rsz err\u0151l a k\u00f6tetr\u0151l\!
-message.action.unmanage.cluster=Er\u0151s\u00edtsd meg, hogy megszak\u00edtod a f\u00fcrt vez\u00e9rl\u00e9s\u00e9t\!
-message.action.vmsnapshot.delete=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a VM pillanatfelv\u00e9telt\!
-message.action.vmsnapshot.revert=Revert VM snapshot
-message.activate.project=Biztosan aktiv\u00e1lni szeretn\u00e9d ezt a projektet?
-message.add.cluster=Add a hypervisor managed cluster for zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.cluster.zone=Add a hypervisor managed cluster for zone <b><span id\="zone_name"></span></b>
-message.add.disk.offering=Add meg a k\u00f6vetkez\u0151 param\u00e9tereket az \u00faj merevlemez aj\u00e1nlat felv\u00e9tel\u00e9hez
-message.add.domain=Please specify the subdomain you want to create under this domain
-message.added.new.nuage.vsp.controller=\u00daj Nicira Vsp vez\u00e9rl\u0151 felv\u00e9ve
-message.added.vpc.offering=VPC aj\u00e1nlat felv\u00e9ve
-message.add.firewall=T\u0171zfal felv\u00e9tele a z\u00f3n\u00e1ba
-message.add.guest.network=Er\u0151s\u00edtsd meg, hogy vend\u00e9g h\u00e1l\u00f3zatot szeretn\u00e9l felvenni\!
-message.add.host=Add meg a k\u00f6vetkez\u0151 adatokat az \u00faj kiszolg\u00e1l\u00f3 felv\u00e9tel\u00e9hez
-message.adding.host=Kiszolg\u00e1l\u00f3 felv\u00e9tele
-message.adding.Netscaler.device=Netscaler eszk\u00f6z felv\u00e9tele
-message.adding.Netscaler.provider=Netscaler szolg\u00e1ltat\u00f3 felv\u00e9tele
-message.add.ip.range.direct.network=Add an IP range to direct network <b><span id\="directnetwork_name"></span></b> in zone <b><span id\="zone_name"></span></b>
-message.add.ip.range=IP tartom\u00e1ny felv\u00e9tele a z\u00f3na publikus h\u00e1l\u00f3zat\u00e1hoz
-message.add.ip.range.to.pod=<p>IP tartom\u00e1ny felv\u00e9tele a <b><span id\="pod_name_label"></span></b> pod-hoz</p>
-message.additional.networks.desc=V\u00e1laszd ki a tov\u00e1bbi h\u00e1l\u00f3zatokat, amelyhez a p\u00e9ld\u00e1ny csatlakozni fog\!
-message.add.load.balancer=Terhel\u00e9seloszt\u00f3 felv\u00e9tele a z\u00f3n\u00e1ba
-message.add.load.balancer.under.ip=The load balancer rule has been added under IP\:
-message.add.network=H\u00e1l\u00f3zat felv\u00e9tele a <b><span id\="zone_name"></span></b> z\u00f3n\u00e1ban
-message.add.new.gateway.to.vpc=Please specify the information to add a new gateway to this VPC.
-message.add.pod.during.zone.creation=Minden z\u00f3n\u00e1nak egy vagy t\u00f6bb pod-ot kell tartalmaznia. Vegy\u00fck fel az els\u0151 pod-ot\! A pod tartalmaz kiszolg\u00e1l\u00f3kat \u00e9s els\u0151dleges t\u00e1r szervereket, amelyeket a k\u00f6vetkez\u0151 l\u00e9p\u00e9sekben vesz\u00fcnk majd fel. El\u0151sz\u00f6r \u00e1ll\u00edts be egy elk\u00fcl\u00f6n\u00edtett IP c\u00edmtartom\u00e1nyt a CloudStack bels\u0151 forgalm\u00e1nak. A c\u00edmtartom\u00e1nynak egyedinek kell lennie a felh\u0151ben.
-message.add.pod=\u00daj pod felv\u00e9tele a <b><span id\="add_pod_zone_name"></span></b> z\u00f3n\u00e1ban
-message.add.primary=Please specify the following parameters to add a new primary storage
-message.add.primary.storage=\u00daj els\u0151dleges t\u00e1r felv\u00e9tele a <b><span id\="zone_name"></span></b> z\u00f3n\u00e1ban a <b><span id\="pod_name"></span> pod-hoz</b>
-message.add.region=Add meg az inform\u00e1ci\u00f3kat az \u00faj r\u00e9gi\u00f3 felv\u00e9tel\u00e9hez\!
-message.add.secondary.storage=\u00daj t\u00e1r felv\u00e9tele a <b><span id\="zone_name"></span> z\u00f3n\u00e1hoz</b>
-message.add.service.offering=T\u00f6ltsd ki a k\u00f6vetkez\u0151 adatokat \u00faj sz\u00e1m\u00edt\u00e1si aj\u00e1nlat felv\u00e9tel\u00e9hez
-message.add.system.service.offering=T\u00f6ltsd ki a k\u00f6vetkez\u0151 adatokat \u00faj rendszer szolg\u00e1ltat\u00e1s aj\u00e1nlat felv\u00e9tel\u00e9hez
-message.add.template=Add meg a k\u00f6vetkez\u0151 adatokat \u00faj sablon l\u00e9trehoz\u00e1s\u00e1hoz
-message.add.volume=T\u00f6ltsd ki a k\u00f6vetkez\u0151 adatokat \u00faj k\u00f6tet l\u00e9trehoz\u00e1s\u00e1hoz
-message.add.VPN.gateway=Er\u0151s\u00edtsd meg, hogy \u00faj VPN \u00e1tj\u00e1r\u00f3t akarsz felvenni\!
-message.admin.guide.read=VMware-alap\u00fa VM-ek eset\u00e9ben k\u00e9rlek olvasd el a dinakikus sk\u00e1l\u00e1z\u00e1sr\u00f3l sz\u00f3l\u00f3 fejezetet\! Szeretn\u00e9d folytatni?\\,
-message.advanced.mode.desc=Akkor v\u00e1laszd ezt a h\u00e1l\u00f3zat modellt, ha szeretn\u00e9d haszn\u00e1lni a VLAN t\u00e1mogat\u00e1st. Ez a h\u00e1l\u00f3zat modell biztos\u00edtja a legnagyobb rugalmass\u00e1got \u00e9s lehet\u0151v\u00e9 teszi, hogy a rendszergazd\u00e1k olyan aj\u00e1nlatokat biztos\u00edtsanak, mint a t\u0171zfalak, VPN vagy terhel\u00e9seloszt\u00f3k valamint a direkt \u00e9s virtu\u00e1lis h\u00e1l\u00f3zatok.
-message.advanced.security.group=V\u00e1laszd ezt, ha biztons\u00e1gi csoportokat akarsz haszn\u00e1lni a vend\u00e9g VM izol\u00e1ci\u00f3hoz\!
-message.advanced.virtual=V\u00e1laszd ezt, ha z\u00f3na-szint\u0171 VLAN-okat szeretn\u00e9l haszn\u00e1lni a vend\u00e9g VM-ek izol\u00e1ci\u00f3j\u00e1ra\!
-message.after.enable.s3=Az S3-alap\u00fa m\u00e1sodlagos t\u00e1r konfigur\u00e1ci\u00f3ja k\u00e9sz. Megjegyz\u00e9s\: miut\u00e1n elhagytad ezt az oldalt, nem tudod majd az S3-at ism\u00e9t konfigur\u00e1lni.
-message.after.enable.swift=A Swift konfigur\u00e1ci\u00f3ja k\u00e9sz. Megjegyz\u00e9s\: miut\u00e1n elhagytad ezt az oldalt, nem tudod majd \u00fajrakonfigur\u00e1lni a Swift-et\!
-message.alert.state.detected=Alert state detected
-message.allow.vpn.access=Add meg a VPN felhaszn\u00e1l\u00f3 nev\u00e9t \u00e9s jelszav\u00e1t
-message.apply.snapshot.policy=Sikeresen m\u00f3dos\u00edtottad a jelenlegi pillanatfelv\u00e9tel szab\u00e1lyzatodat\!
-message.attach.iso.confirm=Er\u0151s\u00edtsd meg, hogy az ISO-t ehhez a virtu\u00e1lis g\u00e9phez akarod csatolni\!
-message.attach.volume=T\u00f6ltsd ki a k\u00f6vetkez\u0151 adatokat a k\u00f6tet csatlakoztat\u00e1s\u00e1hoz\! Ha Windows-alap\u00fa virtu\u00e1lis g\u00e9phez csatlakoztatsz merevlemezt, akkor \u00fajra kell ind\u00edtanod a p\u00e9ld\u00e1nyt ahhoz, hogy l\u00e1sd a merevlemezt.
-message.basic.mode.desc=Akkor v\u00e1laszd ezt a h\u00e1l\u00f3zati modellt, ha <b>*<u>nem</u>*</b> akarsz VLAN t\u00e1mogat\u00e1st bekapcsolni.  Ezen a h\u00e1l\u00f3zaton minden p\u00e9ld\u00e1ny k\u00f6zvetlen\u00fcl a h\u00e1l\u00f3zatt\u00f3l kap IP c\u00edmet \u00e9s a biztons\u00e1gi csoportok szolg\u00e1ltatnak biztons\u00e1got \u00e9s szegreg\u00e1ci\u00f3t.
-message.change.offering.confirm=Please confirm that you wish to change the service offering of this virtual instance.
-message.change.password=V\u00e1ltoztass jelsz\u00f3t\!
-message.cluster.dedicated=F\u00fcrt dedik\u00e1lva
-message.cluster.dedication.released=F\u00fcrt dedik\u00e1l\u00e1s elengedve
-message.configure.all.traffic.types=T\u00f6bb fizikai h\u00e1l\u00f3zatod van. Kattints a \\'Szerkeszt\u00e9s\\' gombra \u00e9s \u00e1ll\u00edts be c\u00edmk\u00e9ket minden egyes forgalom t\u00edpushoz\!
-message.configure.firewall.rules.allow.traffic=Hat\u00e1rozz meg szab\u00e1lyokat forgalom enged\u00e9lyez\u00e9s\u00e9hez
-message.configure.firewall.rules.block.traffic=Hat\u00e1rozz meg szab\u00e1lyokat forgalom sz\u0171r\u00e9s\u00e9hez
-message.configure.ldap=Er\u0151s\u00edtsd meg, hogy szeretn\u00e9l LDAP-t konfigur\u00e1lni\!
-message.configuring.guest.traffic=Vend\u00e9g forgalom konfigur\u00e1l\u00e1sa
-message.configuring.physical.networks=Fizikai h\u00e1l\u00f3zatok konfigur\u00e1l\u00e1sa
-message.configuring.public.traffic=Publikus forgalom konfigur\u00e1l\u00e1sa
-message.configuring.storage.traffic=T\u00e1r forgalom konfigur\u00e1l\u00e1sa
-message.confirm.action.force.reconnect=Er\u0151s\u00edtsd meg, hogy \u00fajrakapcsol\u00f3dni akarsz a kiszolg\u00e1l\u00f3hoz\!
-message.confirm.add.vnmc.provider=Er\u0151s\u00edtsd meg, hogy fel szeretn\u00e9d venni a VNMC szolg\u00e1ltat\u00f3t.
-message.confirm.archive.alert=Er\u0151s\u00edtsd meg, hogy archiv\u00e1lni akarod ezt a riaszt\u00e1st\!
-message.confirm.archive.event=Er\u0151s\u00edtsd meg, hogy archiv\u00e1lni szeretn\u00e9d az esem\u00e9nyt\!
-message.confirm.archive.selected.alerts=Er\u0151s\u00edtsd meg, hogy le akarod archiv\u00e1lni a kiv\u00e1lasztott riaszt\u00e1sokat\!
-message.confirm.archive.selected.events=Er\u0151s\u00edtsd meg, hogy archiv\u00e1lni szeretn\u00e9d a kiv\u00e1lasztott esem\u00e9nyeket\!
-message.confirm.attach.disk=Biztosan csatolni szeretn\u00e9d a merevlemezt?
-message.confirm.create.volume=Biztosan szeretn\u00e9l k\u00f6tetet l\u00e9trehozni?
-message.confirm.current.guest.CIDR.unchanged=V\u00e1ltozatlanul akarod hagyni a vend\u00e9g h\u00e1l\u00f3zat CIDR-j\u00e9t?
-message.confirm.dedicate.cluster.domain.account=T\u00e9nyleg dedik\u00e1lni akarod  ezt a f\u00fcrt\u00f6t egy dom\u00e9nnek/sz\u00e1ml\u00e1nak?
-message.confirm.dedicate.host.domain.account=T\u00e9nyleg dedik\u00e1lni akarod ezt a kiszolg\u00e1l\u00f3t egy dom\u00e9nnek vagy sz\u00e1ml\u00e1nak?
-message.confirm.dedicate.pod.domain.account=T\u00e9nyleg dedik\u00e1lni szeretn\u00e9d ezt a pod-ot egy dom\u00e9nnek/sz\u00e1ml\u00e1nak?
-message.confirm.dedicate.zone=Biztosan dedik\u00e1lni akarod ezt a z\u00f3n\u00e1t egy dom\u00e9nhoz/sz\u00e1ml\u00e1hoz?
-message.confirm.delete.acl.list=Biztosan t\u00f6r\u00f6lni akarod ezt a ACL list\u00e1t?
-message.confirm.delete.alert=Biztosan t\u00f6r\u00f6lni akarod ezt a riaszt\u00e1st?
-message.confirm.delete.baremetal.rack.configuration=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a Baremetal rack konfigur\u00e1ci\u00f3t\!
-message.confirm.delete.BigSwitchBcf=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d ezt a BigSwitch BCF vez\u00e9rl\u0151t\!
-message.confirm.delete.BrocadeVcs=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d a Brocade Vcs Switch-et
-message.confirm.delete.ciscoASA1000v=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a CiscoASA1000v-t
-message.confirm.delete.ciscovnmc.resource=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a CiscoVNMC er\u0151forr\u00e1st\!
-message.confirm.delete.F5=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d az F5-\u00f6t
-message.confirm.delete.internal.lb=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a bels\u0151 LB-t\!
-message.confirm.delete.NetScaler=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d a NetScaler-t
-message.confirm.delete.NuageVsp=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d a Muage Virtualized Services Directory-t
-message.confirm.delete.PA=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d a Palo Alto-t
-message.confirm.delete.secondary.staging.store=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a m\u00e1sodlagos t\u00e1rat\!
-message.confirm.delete.SRX=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d a SRX-et
-message.confirm.delete.ucs.manager=Please confirm that you want to delete UCS Manager
-message.confirm.destroy.router=Er\u0151s\u00edtsd meg, hogy el akarod puszt\u00edtani ezt a routert
-message.confirm.disable.host=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni a kiszolg\u00e1l\u00f3t
-message.confirm.disable.network.offering=Biztos vagy abban, hogy ki akarod kapcsolni ezt a h\u00e1l\u00f3zat aj\u00e1nlatot?
-message.confirm.disable.provider=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni ezt a szolg\u00e1ltat\u00f3t
-message.confirm.disable.vnmc.provider=Er\u0151s\u00edtsd meg, hogy ki szeretn\u00e9d kapcsolni a VNMC szolg\u00e1ltat\u00f3t\!
-message.confirm.disable.vpc.offering=Biztos vagy abban, hogy ki akarod kapcsolni ezt a VPC aj\u00e1nlatot?
-message.confirm.enable.host=Er\u0151s\u00edtsd meg, hogy be akarod kapcsolni a kiszolg\u00e1l\u00f3t
-message.confirm.enable.network.offering=Biztos vagy abban, hogy be akarod kapcsolni ezt a h\u00e1l\u00f3zati aj\u00e1nlatot?
-message.confirm.enable.provider=Er\u0151s\u00edtsd meg, hogy be szeretn\u00e9d kapcsolni ezt a szolg\u00e1ltat\u00f3t
-message.confirm.enable.vnmc.provider=Er\u0151s\u00edtsd meg, hogy be szeretn\u00e9d kapcsolni a VNMC szolg\u00e1ltat\u00f3t\!
-message.confirm.enable.vpc.offering=Biztos vagy abban, hogy be akarod kapcsolni ezt a VPC aj\u00e1nlatot?
-message.confirm.join.project=Er\u0151s\u00edtsd meg, hogy csatlakozni szeretn\u00e9l a projekthez
-message.confirm.migrate.volume=El akarod k\u00f6lt\u00f6ztetni ezt a k\u00f6tetet?
-message.confirm.refresh.blades=Please confirm that you want to refresh blades.
-message.confirm.release.dedicated.cluster=El akarod engedni ezt a dedik\u00e1lt f\u00fcrt\u00f6t?
-message.confirm.release.dedicated.host=El akarod engedni ezt a dedik\u00e1lt kiszolg\u00e1l\u00f3t?
-message.confirm.release.dedicated.pod=El akarod engedni ezt a dedik\u00e1lt pod-ot?
-message.confirm.release.dedicated.zone=El akarod engedni ezt a dedik\u00e1lt z\u00f3n\u00e1t?
-message.confirm.release.dedicate.vlan.range=Er\u0151s\u00edtsd meg, hogy elengeded a dedik\u00e1lt VLAN tartom\u00e1nyt\!
-message.confirm.remove.event=Biztosan t\u00f6r\u00f6lni szeretn\u00e9d ezt az esem\u00e9nyt?
-message.confirm.remove.IP.range=Er\u0151s\u00edtsd meg, hogy el akarod t\u00e1vol\u00edtani ezt az IP tartom\u00e1nyt
-message.confirm.remove.load.balancer=Er\u0151s\u00edtsd meg, hogy el akarod t\u00e1vol\u00edtani a VM-et a terhel\u00e9seloszt\u00f3r\u00f3l\!
-message.confirm.remove.network.offering=Biztos vagy abban, hogy t\u00f6r\u00f6lni akarod ezt a h\u00e1l\u00f3zati aj\u00e1nlatot?
-message.confirm.remove.selected.alerts=Er\u0151s\u00edtsd meg, hogy el akarod t\u00e1vol\u00edtani a kiv\u00e1lasztott riaszt\u00e1sokat\!
-message.confirm.remove.selected.events=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d a kiv\u00e1lasztott esem\u00e9nyeket
-message.confirm.remove.vmware.datacenter=Er\u0151s\u00edtsd meg, hogy el akarod t\u00e1vol\u00edtani a VMware adatk\u00f6zpontot\!
-message.confirm.remove.vpc.offering=Biztos vagy abban, hogy t\u00f6r\u00f6lni akarod ezt a VPC aj\u00e1nlatot?
-message.confirm.replace.acl.new.one=Le akarod cser\u00e9lni ez ACL list\u00e1t egy \u00fajjal?
-message.confirm.scale.up.router.vm=Biztosan fel akarod m\u00e9retezni a router VM-et?
-message.confirm.scale.up.system.vm=Biztosan fel akarod m\u00e9retezni a rendszer VM-et?
-message.confirm.shutdown.provider=Er\u0151s\u00edtsd meg, hogy le akarod \u00e1ll\u00edtani ezt a szolg\u00e1ltat\u00f3t
-message.confirm.start.lb.vm=Er\u0151s\u00edtsd meg, hogy el akarod ind\u00edtani az LB VM-et\!
-message.confirm.stop.lb.vm=Er\u0151s\u00edtsd meg, hogy le akarod \u00e1ll\u00edtani az LB VM-et\!
-message.confirm.upgrade.router.newer.template=Er\u0151s\u00edtsd meg, hogy a routert \u00faj sablonnal akarod friss\u00edteni\!
-message.confirm.upgrade.routers.account.newtemplate=Er\u0151s\u00edtsd meg, hogy minden a sz\u00e1mla minden router\u00e9t friss\u00edteni akarod az \u00faj sablonnal\!
-message.confirm.upgrade.routers.cluster.newtemplate=Er\u0151s\u00edtsd meg, hogy minden a f\u00fcrt minden router\u00e9t friss\u00edteni akarod az \u00faj sablonnal\!
-message.confirm.upgrade.routers.newtemplate=Er\u0151s\u00edtsd meg, hogy a z\u00f3na minden router\u00e9t friss\u00edteni akarod \u00faj sablonnal\!
-message.confirm.upgrade.routers.pod.newtemplate=Er\u0151s\u00edtsd meg, hogy a pod minden router\u00e9t friss\u00edteni akarod \u00faj sablonnal\!
-message.copy.iso.confirm=Er\u0151s\u00edtsd meg, hogy az ISO-t m\u00e1solni akarod\:
-message.copy.template=A <b id\="copy_template_name_text">XXX</b> sablon m\u00e1sol\u00e1sa a <b id\="copy_template_source_zone_text"></b> z\u00f3n\u00e1b\u00f3l a
-message.copy.template.confirm=Biztos vagy benne, hogy le akarod m\u00e1solni a sablont?
-message.create.template=Biztosan szeretn\u00e9l sablont l\u00e9trehozni?
-message.create.template.vm=VM l\u00e9rehoz\u00e1sa <b id\="p_name"></b> sablonb\u00f3l
-message.create.template.volume=Please specify the following information before creating a template of your disk volume\: <b><span id\="volume_name"></span></b>. Creation of the template can range from several minutes to longer depending on the size of the volume.
-message.creating.cluster=F\u00fcrt l\u00e9trehoz\u00e1sa
-message.creating.guest.network=Vend\u00e9g h\u00e1l\u00f3zat l\u00e9trehoz\u00e1sa
-message.creating.physical.networks=Fizikai h\u00e1l\u00f3zat l\u00e9trehoz\u00e1sa
-message.creating.pod=Pod l\u00e9trehoz\u00e1sa
-message.creating.primary.storage=Els\u0151dleges t\u00e1r l\u00e9trehoz\u00e1sa
-message.creating.secondary.storage=M\u00e1sodlagos t\u00e1r l\u00e9trehoz\u00e1sa
-message.creating.systemVM=A rendszer VM-ek l\u00e9trehoz\u00e1sa folyamatban (ez eltarthat egy darabig)
-message.creating.zone=Z\u00f3na l\u00e9trehoz\u00e1sa
-message.decline.invitation=Biztosan el akarod utas\u00edtani ezt a projekt megh\u00edv\u00e1st?
-message.dedicated.zone.released=Z\u00f3na elengedve
-message.dedicate.zone=Z\u00f3na dedik\u00e1l\u00e1sa
-message.delete.account=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d ezt a sz\u00e1ml\u00e1t\!
-message.delete.affinity.group=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d ezt az affin\u00edt\u00e1s csoportot
-message.delete.gateway=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt az \u00e1tj\u00e1r\u00f3t
-message.delete.project=Biztosan t\u00f6r\u00f6lni akarod ezt a projektet?
-message.delete.user=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni szeretn\u00e9d ezt a felhaszn\u00e1l\u00f3t\!
-message.delete.VPN.connection=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a VPN kapcsolatot
-message.delete.VPN.customer.gateway=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a VPN \u00fcgyf\u00e9lkaput\!
-message.delete.VPN.gateway=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt a VPN \u00e1tj\u00e1r\u00f3t\!
-message.desc.advanced.zone=\u00d6sszetettebb h\u00e1l\u00f3zati topol\u00f3gi\u00e1khoz. Ez a h\u00e1l\u00f3zat modell biztos\u00edtja a legnagyobb rugalmass\u00e1got a vend\u00e9g h\u00e1l\u00f3zatok fel\u00e9p\u00edt\u00e9s\u00e9ben \u00e9s olyan h\u00e1l\u00f3zati aj\u00e1nlatokat tesz lehet\u0151v\u00e9, mint a t\u0171zfalak, VPN vagy terhel\u00e9seloszt\u00f3k.
-message.desc.basic.zone=Adj meg egy h\u00e1l\u00f3zatot, amelyen minden egyes VM p\u00e9ld\u00e1ny k\u00f6zvetlen\u00fcl a h\u00e1l\u00f3zatt\u00f3l kap IP c\u00edmet. A vend\u00e9g rendszerek izol\u00e1ci\u00f3j\u00e1t 3. r\u00e9teg-b\u00e9li megold\u00e1sokkal, mint p\u00e9ld\u00e1ul biztons\u00e1gi csoportokkal (IP c\u00edm filterez\u00e9s) oldhat\u00f3 meg.
-message.desc.cluster=Minden pod-nak tartalmaznia kell egy vagy t\u00f6bb f\u00fcrt\u00f6t \u00e9s most l\u00e9trehozzuk az els\u0151 f\u00fcrt\u00f6t. A f\u00fcrt csoportos\u00edtja a kiszolg\u00e1l\u00f3kat. Egy f\u00fcrtben tal\u00e1lhat\u00f3 kiszolg\u00e1l\u00f3k ugyanolyan hardverrel rendelkeznek, ugyanolyan hipervizort futtatnak \u00e9s ugyanahhoz az els\u0151dleges t\u00e1rol\u00f3hoz f\u00e9rnek hozz\u00e1. Minden f\u00fcrt egy vagy t\u00f6bb kiszolg\u00e1l\u00f3t \u00e9s els\u0151dleges t\u00e1r szervert tartalmaz.
-message.desc.created.ssh.key.pair=Az SSH kulcsp\u00e1r l\u00e9trej\u00f6tt.
-message.desc.create.ssh.key.pair=Add meg a k\u00f6vetkez\u0151 adatokat az ssh kulcs bejegyz\u00e9s\u00e9hez\!<br><br> (1) Ha publikus kulcsot adsz meg, a CloudStack elt\u00e1rolja \u00e9s a priv\u00e1t kulcsoddal haszn\u00e1lhatod. <br><br> (2) Ha nem adsz meg publikus kulcsot, a CloudStack k\u00e9sz\u00edt neked egyet. M\u00e1sold le \u00e9s mentsd el a priv\u00e1t kulcsot, a CloudStack nem tartja meg.<br>
-message.desc.host=Minden f\u00fcrtnek legal\u00e1bb egy kiszolg\u00e1l\u00f3t kell tartalmaznia, amelyen a VM-ek futhatnak. Most vegy\u00fck fel az els\u0151 kiszolg\u00e1l\u00f3t\! Hogy a kiszolg\u00e1l\u00f3 m\u0171k\u00f6dhessen, hipervizor szoftvert kell r\u00e1 telep\u00edteni, IP c\u00edmet rendelni hozz\u00e1 \u00e9s biztos\u00edtani a kapcsolatot a CloudStack vez\u00e9rl\u0151 szerverrel. <br/><br/> Add meg a kiszolg\u00e1l\u00f3 DNS vagy IP c\u00edm\u00e9t, a felhaszn\u00e1l\u00f3 nev\u00e9t (\u00e1ltal\u00e1ban root) \u00e9s jelszav\u00e1t, valamint a kiszolg\u00e1l\u00f3 kategoriz\u00e1l\u00e1s\u00e1ra szolg\u00e1l\u00f3 c\u00edmk\u00e9ket.
-message.desc.primary.storage=Minden f\u00fcrt tartalmaz egy vagy t\u00f6bb els\u0151dleges t\u00e1r szervert  \u00e9s most l\u00e9trehozzuk az els\u0151t. Az els\u0151dleges t\u00e1r tartalmazza a f\u00fcrt kiszolg\u00e1l\u00f3in fut\u00f3 \u00f6sszes VM virtu\u00e1lis merevlemezeit.
-message.desc.reset.ssh.key.pair=Adj meg egy ssh kulcsp\u00e1rt, amelyet fel szeretn\u00e9l venni ehhez a VM-hez\! A root jelsz\u00f3 megv\u00e1ltozik, ha a jelsz\u00f3 enged\u00e9lyezett.
-message.desc.secondary.storage=Minden z\u00f3n\u00e1nak rendelkeznie kell legal\u00e1bb egy NFS vagy m\u00e1sodlagos t\u00e1r szervert \u00e9s most l\u00e9trehozzuk az els\u0151t. A m\u00e1sodlagos t\u00e1r t\u00e1rolja a VM sablonok, ISO f\u00e1jlok \u00e9s pillanatfelv\u00e9telek adatait. Ennek a szervernek minden kiszolg\u00e1l\u00f3 sz\u00e1m\u00e1ra hozz\u00e1f\u00e9rhet\u0151nek kell lennie.<br/><br/> Add meg az IP c\u00edmet \u00e9s az \u00fatvonalat\!
-message.desc.zone=A z\u00f3na a CloudStack legnagyobb egys\u00e9ge \u00e9s \u00e1ltal\u00e1ban egy adatk\u00f6zpontnak felel meg. A z\u00f3n\u00e1k fizikai izol\u00e1ci\u00f3t adnak. Egy z\u00f3na egy vagy t\u00f6bb pod-b\u00f3l \u00e1ll (amelyek kiszolg\u00e1l\u00f3kat \u00e9s els\u0151dleges t\u00e1rol\u00f3kat tartalmaznak) \u00e9s egy m\u00e1sodlagos t\u00e1rb\u00f3l, amelyet az \u00f6sszes pod haszn\u00e1l.
-message.detach.disk=Biztosan la akarod v\u00e1lasztani a merevlemezt?
-message.detach.iso.confirm=Er\u0151s\u00edtsd meg, hogy le akarod v\u00e1lasztani az ISO-t a virtu\u00e1lis g\u00e9pr\u0151l\!
-message.disable.account=Er\u0151s\u00edtsd meg, hogy ki szeretn\u00e9d kapcsolni ezt a sz\u00e1ml\u00e1t. A sz\u00e1mla kikapcsol\u00e1s\u00e1val a sz\u00e1mla felhaszn\u00e1l\u00f3inak hozz\u00e1f\u00e9r\u00e9se az er\u0151forr\u00e1sokhoz megsz\u00fcnik. Minden fut\u00f3 virtu\u00e1lis g\u00e9p azonnal le lesz \u00e1ll\u00edtva.
-message.disable.snapshot.policy=Sikeresen kikapcsoltad a jelenlegi pillanatfelv\u00e9tel szab\u00e1lyt.
-message.disable.user=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni a felhaszn\u00e1l\u00f3t\!
-message.disable.vpn.access=Er\u0151s\u00edtsd meg, hogy ki akarod kapcsolni a t\u00e1voli VPN hozz\u00e1f\u00e9r\u00e9st\!
-message.disable.vpn=Biztosan ki akarod kapcsolni a VPN-t?
-message.disabling.network.offering=H\u00e1l\u00f3zat aj\u00e1nlat kikapcsol\u00e1sa
-message.disabling.vpc.offering=VPC aj\u00e1nlat kikapcsol\u00e1sa
-message.disallowed.characters=Nem enged\u00e9lyezett karakterek\: \\<\\,\\>
-message.download.ISO=Az ISO let\u00f6lt\u00e9s\u00e9hez kattints <a href\="\#">00000</a>
-message.download.template=A sablon let\u00f6lt\u00e9s\u00e9hez kattints <a href\="\#">00000</a>
-message.download.volume=A k\u00f6tet let\u00f6lt\u00e9s\u00e9hez kattints href\="\#">00000</a>
-message.download.volume.confirm=Er\u0151s\u00edtsd meg, hogy le akarod t\u00f6lteni ezt a k\u00f6tetet\!
-message.edit.account=Szerkeszt\u00e9s ("-1" jelzi az er\u0151forr\u00e1s haszn\u00e1lat\u00e1nak korl\u00e1tlans\u00e1g\u00e1t)
-message.edit.confirm=K\u00e9rlek er\u0151s\u00edtsd meg a v\u00e1ltoztat\u00e1sokat miel\u00f6tt elmented\!
-message.edit.limits=Hat\u00e1rozz meg korl\u00e1tokat a k\u00f6vetkez\u0151 er\u0151forr\u00e1sokhoz\! A "-1" jelzi a korl\u00e1tlanan felhaszn\u00e1l\u00e1st.
-message.edit.traffic.type=Please specify the traffic label you want associated with this traffic type.
-message.enable.account=Er\u0151s\u00edtsd meg, hogy be akarod kapcsolni ezt a sz\u00e1ml\u00e1t\!
-message.enabled.vpn=A t\u00e1voli hozz\u00e1f\u00e9r\u00e9s\u0171 VPN jelenleg be van kapcsolva \u00e9s hozz\u00e1f\u00e9rhet\u0151 az IP c\u00edmmel
-message.enabled.vpn.ip.sec=Your IPSec pre-shared key is
-message.enable.user=Er\u0151s\u00edtsd meg, hogy be akarod kapcsolni ezt a felhaszn\u00e1l\u00f3t\!
-message.enable.vpn.access=A VPN jelenleg ki van kapcsolva erre az IP c\u00edmre. Szeretn\u00e9d bekapcsolni a VPN hozz\u00e1f\u00e9r\u00e9st?
-message.enable.vpn=Er\u0151s\u00edtsd meg, hogy be szeretn\u00e9d kapcsolni a t\u00e1voli hozz\u00e1f\u00e9r\u00e9s\u0171 VPN-t ehhez az IP c\u00edmhez\!
-message.enabling.network.offering=H\u00e1l\u00f3zat aj\u00e1nlat bekapcsol\u00e1sa
-message.enabling.security.group.provider=Biztons\u00e1gi csoport szolg\u00e1ltat\u00f3 bekapcsol\u00e1sa
-message.enabling.vpc.offering=VPC aj\u00e1nlat bekapcsol\u00e1sa
-message.enabling.zone.dots=Z\u00f3na enged\u00e9lyez\u00e9se...
-message.enabling.zone=Z\u00f3na bekapcsol\u00e1sa
-message.enter.seperated.list.multiple.cidrs=Add meg a CIDR list\u00e1t vessz\u0151kkel elv\u00e1laszva, ha egyn\u00e9l t\u00f6b van\!
-message.enter.token=Add meg a token-t, amit a megh\u00edv\u00f3ban kapt\u00e1l\!
-message.generate.keys=Er\u0151s\u00edtsd meg, hogy \u00faj kulcsokat szeretn\u00e9l gener\u00e1lni a felhaszn\u00e1l\u00f3nak\!
-message.gslb.delete.confirm=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a GSLB-t\!
-message.gslb.lb.remove.confirm=Please confirm you want to remove load balancing from GSLB
-message.guest.traffic.in.advanced.zone=A vend\u00e9g h\u00e1l\u00f3zat forgalom kommunik\u00e1ci\u00f3 v\u00e9gfelhaszn\u00e1l\u00f3i virtu\u00e1lis g\u00e9pek k\u00f6z\u00f6tt. Hat\u00e1rozz meg egy VLAN ID tartom\u00e1nyt a vend\u00e9g h\u00e1l\u00f3zatok forgalm\u00e1nak minden fizikai h\u00e1l\u00f3zathoz\!
-message.guest.traffic.in.basic.zone=A vend\u00e9g h\u00e1l\u00f3zat forgalma kommunik\u00f3ci\u00f3 v\u00e9gfelhaszn\u00e1l\u00f3i virtu\u00e1lis g\u00e9pek k\u00f6z\u00f6tt. Hat\u00e1rozz meg egy IP c\u00edmtartom\u00e1nyt, amelyb\u0151l a CloudStack a virtu\u00e1lis g\u00e9pekhez rendelhet c\u00edmet. Gy\u0151z\u0151dj meg r\u00f3la, hogy ez a tartom\u00e1ny nincs \u00e1tfed\u00e9sben az elk\u00fcl\u00f6n\u00edtett rendszer IP tartom\u00e1nnyal\!
-message.host.dedicated=Dedik\u00e1lt kiszolg\u00e1l\u00f3
-message.host.dedication.released=Kiszolg\u00e1l\u00f3 elengedve
-message.installWizard.click.retry=Kattints az ind\u00edt\u00e1s gombra az ism\u00e9tl\u00e9shez.
-message.installWizard.copy.whatIsACluster=A f\u00fcrt kiszolg\u00e1l\u00f3k csoportja. A f\u00fcrt kiszolg\u00e1l\u00f3i egyforma hardverrel rendelkeznek, ugyanazt a hi\u0151erv\u00edzort haszn\u00e1lj\u00e1k, ugyanazon az alh\u00e1l\u00f3zaton tal\u00e1lhat\u00f3ak \u00e9s hozz\u00e1f\u00e9rnek ugyanahhoz az osztott t\u00e1rhoz. A virtu\u00e1lis g\u00e9pek egy f\u00fcrt\u00f6n bel\u00fcl \u00e1tk\u00f6lt\u00f6ztethet\u0151 m\u00e1sik kiszolg\u00e1l\u00f3ra ann\u00e9lk\u00fcl, hogy annak m\u0171k\u00f6d\u00e9s\u00e9t megszak\u00edtan\u00e1nk. A f\u00fcrt a CloudStack&\#8482; harmadik legnagyobb egys\u00e9ge. A f\u00fcrt\u00f6k pod-okba, a pod-ok z\u00f3n\u00e1kba rendez\u0151dnek. <br/><br/>A CloudStack&\#8482; lehet\u0151v\u00e9 teszi, hogy t\u00f6bb f\u00fcrt\u00f6t haszn\u00e1lj, de egy alap telep\u00edt\u00e9sben csak egy f\u00fcrtre van sz\u00fcks\u00e9g.
-message.installWizard.copy.whatIsAHost=A kiszolg\u00e1l\u00f3 egy sz\u00e1m\u00edt\u00f3g\u00e9p. A kiszolg\u00e1l\u00f3k biztos\u00edtj\u00e1k a sz\u00e1m\u00edt\u00e1si er\u0151forr\u00e1sokat, amelyeket a virtu\u00e1lis g\u00e9pek felhaszn\u00e1lnak. Minden kiszolg\u00e1l\u00f3 rendelkezik hipervizor szoftverrel, amely a vend\u00e9g VM-eket futtatja (kiv\u00e9tel a bare-metal kiszolg\u00e1l\u00f3k). P\u00e9ld\u00e1ul egy Linux KVM szerver, Citrix XenServer vagy egy ESXi szerver. Az alaptelep\u00edt\u00e9sben csak egy KVM-et vagy XenServer-t futtat\u00f3 kiszolg\u00e1l\u00f3t haszn\u00e1lunk.<br/><br/>A kiszolg\u00e1l\u00f3 a CloudStack&\#8482; telep\u00edt\u00e9s legkissebb egys\u00e9ge. A kiszolg\u00e1l\u00f3k f\u00fcrt\u00f6kbe, a f\u00fcrt\u00f6k pod-okba, a pod-ok z\u00f3n\u00e1kba rendez\u0151dnek.
-message.installWizard.copy.whatIsAPod=A pod-ra gyakran egy rack-szekr\u00e9nyt jelent. Az egy pod-ban tal\u00e1lhat\u00f3 kiszolg\u00e1l\u00f3k egy alh\u00e1l\u00f3zaton vannak.<br/><br/>A pod a CloudStack&\#8482; telep\u00edt\u00e9s m\u00e1sodik legnagyobb egys\u00e9ge. A pod-ok z\u00f3n\u00e1kat alkotnak. Minden z\u00f3na tartalmazhat egy vagy t\u00f6bb pod-ot. Az alaptelep\u00edt\u00e9sben csak egy pod-ra van sz\u00fcks\u00e9g\u00fcnk.
-message.installWizard.copy.whatIsAZone=A z\u00f3na a CloudStack&\#8482; telep\u00edt\u00e9s legnagyobb egys\u00e9ge. Egy z\u00f3na \u00e1ltal\u00e1ban egy adatk\u00f6zpontnak felel meg, b\u00e1r megengedhet\u0151 egy adatk\u00f6zponton bel\u00fcl t\u00f6bb z\u00f3na l\u00e9trehoz\u00e1sa. Az er\u0151forr\u00e1sok z\u00f3n\u00e1kra val\u00f3 oszt\u00e1s\u00e1nak c\u00e9lja a redundancia \u00e9s a fizikai izol\u00e1ci\u00f3. P\u00e9ld\u00e1ul minden z\u00f3n\u00e1nak lehet saj\u00e1t \u00e1ramell\u00e1t\u00e1sa \u00e9s h\u00e1l\u00f3zati kapcsolata, valamint a z\u00f3n\u00e1k f\u00f6ldrajzilag egym\u00e1st\u00f3l t\u00e1vol helyezkedhetnek el (b\u00e1r ez nem felt\u00e9tlen\u00fcl sz\u00fcks\u00e9ges).
-message.installWizard.copy.whatIsCloudStack=A CloudStack&\#8482 egy szoftver, amely sz\u00e1m\u00edt\u00e1si er\u0151forr\u00e1sokat fel\u00fcgyel \u00e9s alkalmas publikus, priv\u00e1t, vagy hibrid infrastrukt\u00fara szolg\u00e1ltat\u00e1s (IaaS) felh\u0151k \u00e9p\u00edt\u00e9s\u00e9re. A CloudStack&\#8482 ir\u00e1ny\u00edtja a h\u00e1l\u00f3zatokat, az adatt\u00e1rol\u00f3kat \u00e9s kiszolg\u00e1l\u00f3kat, amelyek a felh\u0151 infrastrukt\u00far\u00e1t alkotj\u00e1k.<br/><br/> A k\u00fcl\u00f6n\u00e1ll\u00f3 virtu\u00e1lis g\u00e9peken t\u00fal a CloudStack&\#8482 teljes felh\u0151 insfrastrukt\u00far\u00e1t szolg\u00e1ltat. Ny\u00edlt forr\u00e1sk\u00f3d\u00fa \u00e9s pr\u00e9mium verzi\u00f3k egyar\u00e1nt el\u00e9rhet\u0151ek, a ny\u00edlt forr\u00e1sk\u00f3d\u00fa verzi\u00f3k k\u00f6zel azonos k\u00e9pess\u00e9gekkel rendelkeznek.
-message.installWizard.copy.whatIsPrimaryStorage=A CloudStack&\#8482; infrastrukt\u00fara k\u00e9t f\u00e9le afatt\u00e1rol\u00f3t haszn\u00e1l\: els\u0151dleges \u00e9s m\u00e1sodlagos t\u00e1rat. Mindkett\u0151 lehet ezek k\u00f6z\u00fcl iSCIS, NFS vagy helyi merevlemez.<br/><br/>Az <strong>els\u0151dleges t\u00e1r</strong> egy f\u00fcrth\u00f6z kapcsol\u00f3dik \u00e9s a f\u00fcrt\u00f6n fut\u00f3 virtu\u00e1lis g\u00e9pek virtu\u00e1lis merevlemezeit t\u00e1rolja. Az els\u0151dleges t\u00e1r tipikusan a kiszolg\u00e1l\u00f3khoz k\u00f6zel tal\u00e1lhat\u00f3.
-message.installWizard.copy.whatIsSecondaryStorage=A m\u00e1sodlagos t\u00e1r egyz\u00f3n\u00e1hoz tartozik \u00e9s a k\u00f6vetkez\u0151ket tartalmazza\:<ul><li>Sablonok - Telep\u00edtett oper\u00e1ci\u00f3s rendszerek, amelyek a VM-ek l\u00e9trehoz\u00e1s\u00e1ra haszn\u00e1lhat\u00f3 \u00e9s tartalmazhat egy\u00e9b konfigur\u00e1ci\u00f3s inform\u00e1ci\u00f3kat, mint pl telep\u00edtett alkalmaz\u00e1sok.</li><li>ISO f\u00e1jlok - OS images that can be bootable or non-bootable</li><li>Disk volume snapshots - saved copies of VM data which can be used for data recovery or to create new templates</ul>
-message.installWizard.now.building=A felh\u0151d most \u00e9p\u00fcl...
-message.installWizard.tooltip.addCluster.name=A f\u00fcrt neve. Ez tetsz\u0151leges \u00e1ltalad v\u00e1lasztott sz\u00f6veg lehet.
-message.installWizard.tooltip.addHost.hostname=A kiszolg\u00e1l\u00f3 IP c\u00edme vagy DNS neve.
-message.installWizard.tooltip.addHost.password=A fenti felhaszn\u00e1l\u00f3 jelszava.
-message.installWizard.tooltip.addHost.username=\u00c1ltal\u00e1ban root.
-message.installWizard.tooltip.addPod.name=A pod neve
-message.installWizard.tooltip.addPod.reservedSystemEndIp=This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.
-message.installWizard.tooltip.addPod.reservedSystemGateway=\u00c1tj\u00e1r\u00f3 a pod kiszolg\u00e1l\u00f3inak.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=A h\u00e1l\u00f3zati maszk, amit a vend\u00e9g oper\u00e1ci\u00f3s rendszerek haszn\u00e1lnak majd.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.
-message.installWizard.tooltip.addPrimaryStorage.name=A t\u00e1r eszk\u00f6z neve.
-message.installWizard.tooltip.addPrimaryStorage.path=(NFS eset\u00e9ben) In NFS this is the exported path from the server. Path (for SharedMountPoint).  With KVM this is the path on each host that is where this primary storage is mounted.  For example, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(NFS, iSCSI vagy PreSetup eset\u00e9ben) A t\u00e1reszk\u00f6z IP vagy DNS c\u00edme.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=A m\u00e1sodlagos t\u00e1rat kiszolg\u00e1l\u00f3 NFS szerver IP c\u00edme
-message.installWizard.tooltip.addSecondaryStorage.path=A fenti szerveren kiexport\u00e1lt \u00fatvonal
-message.installWizard.tooltip.addZone.dns1=Ezeket a DNS szervereket a z\u00f3na vend\u00e9g VM-ei haszn\u00e1lj\u00e1k. A DNS szervereket publikus h\u00e1l\u00f3zaton fogj\u00e1k el\u00e9rni, amelyet k\u00e9s\u0151bb veszel fel. A z\u00f3na publikus IP c\u00edmeinek hozz\u00e1 kell tudni f\u00e9rnie az itt megnevezett DNS szerverhez.
-message.installWizard.tooltip.addZone.dns2=Ezeket a DNS szervereket a z\u00f3na vend\u00e9g VM-ei haszn\u00e1lj\u00e1k. A DNS szervereket publikus h\u00e1l\u00f3zaton fogj\u00e1k el\u00e9rni, amelyet k\u00e9s\u0151bb veszel fel. A z\u00f3na publikus IP c\u00edmeinek hozz\u00e1 kell tudni f\u00e9rnie az itt megnevezett DNS szerverhez.
-message.installWizard.tooltip.addZone.internaldns1=Ezeket a DNS szervereket a z\u00f3na rendszer VM-ei haszn\u00e1lj\u00e1k. A DNS szervereket priv\u00e1t h\u00e1l\u00f3zaton fogj\u00e1k el\u00e9rni. A z\u00f3na priv\u00e1t IP c\u00edmeinek hozz\u00e1 kell tudni f\u00e9rnie az itt megnevezett DNS szerverhez.
-message.installWizard.tooltip.addZone.internaldns2=Ezeket a DNS szervereket a z\u00f3na rendszer VM-ei haszn\u00e1lj\u00e1k. A DNS szervereket priv\u00e1t h\u00e1l\u00f3zaton fogj\u00e1k el\u00e9rni. A z\u00f3na priv\u00e1t IP c\u00edmeinek hozz\u00e1 kell tudni f\u00e9rnie az itt megnevezett DNS szerverhez.
-message.installWizard.tooltip.addZone.name=A z\u00f3na neve
-message.installWizard.tooltip.configureGuestTraffic.description=A h\u00e1l\u00f3zat le\u00edr\u00e1sa
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=A h\u00e1l\u00f3zati \u00e1tj\u00e1r\u00f3, amelyet a vend\u00e9g rendszerek haszn\u00e1lhatnak
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=A veng\u00e9g rendszerek h\u00e1l\u00f3zat\u00e1nak maszkja
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.
-message.installWizard.tooltip.configureGuestTraffic.name=A h\u00e1l\u00f3zat neve
-message.instance.scaled.up.confirm=T\u00e9nyleg nagyobbra akarod m\u00e9retezni a p\u00e9ld\u00e1nyt?
-message.instanceWizard.noTemplates=You do not have any templates available; please add a compatible template, and re-launch the instance wizard.
-message.ip.address.changed=Az IP c\u00edmid megv\u00e1ltzhattak, szeretn\u00e9d friss\u00edteni a list\u00e1t? Ebben az esetben a r\u00e9szletek f\u00fcl be fog z\u00e1rulni.
-message.iso.desc=A merevlemez k\u00e9p, amely az ind\u00edthat\u00f3 oper\u00e1ci\u00f3s rendszert tartalmazza
-message.join.project=Csatlakozt\u00e1l egy projekthez. V\u00e1lts a projekt n\u00e9zetre\!
-message.launch.vm.on.private.network=Szeretn\u00e9d a saj\u00e1t dedik\u00e1lt h\u00e1l\u00f3zatodon ind\u00edtani a p\u00e9ld\u00e1nyt?
-message.launch.zone=A z\u00f3na k\u00e9szen \u00e1ll az ind\u00edt\u00e1sra, folytasd a k\u00f6vetkez\u0151 l\u00e9p\u00e9ssel
-message.listView.subselect.multi=(Ctrl/Cmd-kattint\u00e1s)
-message.lock.account=Er\u0151s\u00edtsd meg, hogy z\u00e1rolni akarod ezt a sz\u00e1ml\u00e1t. A sz\u00e1mla z\u00e1rol\u00e1s\u00e1val a sz\u00e1mla felhaszn\u00e1l\u00f3i nem lesznek k\u00e9pesek a felh\u0151 er\u0151forr\u00e1saikat vez\u00e9relni. A l\u00e9tez\u0151 er\u0151forr\u00e1sok tov\u00e1bbra is hozz\u00e1f\u00e9rhet\u0151ek lesznek.
-message.migrate.instance.confirm=Er\u0151s\u00edtsd meg a kiszolg\u00e1l\u00f3 v\u00e1laszt\u00e1st, ahova a virtu\u00e1lis g\u00e9pet mozgatn\u00e1d\!
-message.migrate.instance.to.host=Er\u0151s\u00edtsd meg, hogy m\u00e1sik kiszolg\u00e1l\u00f3ra akarod mozgatni a p\u00e9ld\u00e1nyt\!
-message.migrate.instance.to.ps=Er\u0151s\u00edtsd meg, hogy a p\u00e9ld\u00e1nyt m\u00e1sik els\u0151dleges t\u00e1rra szeretn\u00e9d mozgatni\!
-message.migrate.router.confirm=Er\u0151s\u00edtsd meg, hogy a routert mozgatni szeretn\u00e9d a k\u00f6vetkez\u0151 c\u00e9lpontra\:
-message.migrate.systemvm.confirm=Er\u0151s\u00edtsd meg, hogy a rendszer VM-et a k\u00f6vetkez\u0151 c\u00e9lpontra szeretn\u00e9d mozgatni\:
-message.migrate.volume=Er\u0151s\u00edtsd meg, hogy m\u00e1sik els\u0151dleges t\u00e1rra akarod mozgatni a k\u00f6tetet
-message.network.addVM.desc=Please specify the network that you would like to add this VM to. A new NIC will be added for this network.
-message.network.addVMNIC=Er\u0151s\u00edtsd meg, hogy szeretn\u00e9l egy \u00faj VM NIC-et ehhez a h\u00e1l\u00f3zathoz\!
-message.new.user=A k\u00f6vetkez\u0151ket adja meg \u00faj sz\u00e1mla l\u00e9trehoz\u00e1s\u00e1hoz
-message.no.affinity.groups=Nincsenek affin\u00edt\u00e1si csoportaid. K\u00e9rlek folytasd a k\u00f6vetkez\u0151 l\u00e9p\u00e9ssel\!
-message.no.host.available=Nincs el\u00e9rhet\u0151 kiszolg\u00e1l\u00f3 az \u00e1tk\u00f6lt\u00f6ztet\u00e9shez
-message.no.network.support=A kiv\u00e1lasztott hipervizor, a vSphere nem t\u00e1mogat semmilyen tov\u00e1bbi h\u00e1l\u00f3zat be\u00e1ll\u00edt\u00e1st.  Folytasd az 5. l\u00e9p\u00e9ssel\!
-message.no.network.support.configuration.not.true=Nincs olyan z\u00f3n\u00e1d, amelyben a biztons\u00e1gi csoportok be lenne kapcsolva, \u00edgy a tov\u00e1bbi h\u00e1l\u00f3zati lehet\u0151s\u00e9gek nem \u00e9rhet\u0151ek el. Folytasd az 5. l\u00e9p\u00e9ssel\!
-message.no.projects.adminOnly=Nincsenek projekteid.<br/>K\u00e9rd meg az adminisztr\u00e1tort, hogy hozzon l\u00e9tre neked egyet\!
-message.no.projects=Nincsenek projekteid.<br/>A Projektek szekci\u00f3ban tudsz \u00fajat csin\u00e1lni.
-message.number.clusters=<h2>F\u00fcrt\u00f6k <span>sz\u00e1ma</span></h2>
-message.number.hosts=<h2>Kiszolg\u00e1l\u00f3k <span>sz\u00e1ma</span></h2>
-message.number.pods=<h2>Pods-ok <span>sz\u00e1ma</span></h2>
-message.number.storage=<h2>Els\u0151dleges t\u00e1r k\u00f6tetek<span>sz\u00e1ma</span></h2>
-message.number.zones=<h2>Z\u00f3n\u00e1k <span>sz\u00e1ma</span></h2>
-message.password.has.been.reset.to=A jelsz\u00f3 \u00fajrabe\u00e1ll\u00edtva\:
-message.password.of.the.vm.has.been.reset.to=A VM jelszava \u00fajrabe\u00e1ll\u00edtva\:
-message.pending.projects.1=Projekt megh\u00edv\u00f3k v\u00e1rnak r\u00e1d\:
-message.pending.projects.2=A megtekint\u00e9shez menj a projektek szekci\u00f3hoz \u00e9s v\u00e1laszd a megh\u00edv\u00f3kat a leg\u00f6rd\u00fcl\u0151 men\u00fcb\u0151l\!
-message.please.add.at.lease.one.traffic.range=Adj meg legal\u00e1bb egy forgalom tartom\u00e1nyt\!
-message.please.confirm.remove.ssh.key.pair=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod ezt az SSH kulcsp\u00e1rt\!
-message.please.proceed=Menj tov\u00e1bb a k\u00f6vetkez\u0151 l\u00e9p\u00e9shez\!
-message.please.select.a.configuration.for.your.zone=V\u00e1lassz konfigur\u00e1ci\u00f3t a z\u00f3n\u00e1dnak\!
-message.please.select.a.different.public.and.management.network.before.removing=Please select a different public and management network before removing
-message.please.select.networks=V\u00e1lassz h\u00e1l\u00f3zatokat a virtu\u00e1lis g\u00e9pedhez\!
-message.please.select.ssh.key.pair.use.with.this.vm=V\u00e1lassz ki egy SSH kulcsp\u00e1rt, amelyet ezzel a VM-mel haszn\u00e1lni szeretn\u00e9l\!
-message.please.wait.while.zone.is.being.created=K\u00e9rlek v\u00e1rj, am\u00edg a z\u00f3n\u00e1d l\u00e9trej\u00f6n. Ez eltarthat egy ideig...
-message.pod.dedication.released=Pod dedik\u00e1ci\u00f3 elengedve
-message.portable.ip.delete.confirm=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a hordozhat\u00f3 IP tartom\u00e1nyt\!
-message.project.invite.sent=Megh\u00edv\u00f3 elk\u00fcldve a felhaszn\u00e1l\u00f3nak. A felhaszn\u00e1l\u00f3 akkor ker\u00fcl a projektbe, amikor elfogadja a megh\u00edv\u00f3t.
-message.public.traffic.in.advanced.zone=Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.
-message.public.traffic.in.basic.zone=A publikus forgalom akkor keletkezik, amikor a felh\u0151 virtu\u00e1lis g\u00e9pei hozz\u00e1f\u00e9rnek az internethez vagy az interneten szolg\u00e1ltat\u00e1sokat biztos\u00edtanak. Publikusan el\u00e9rhet\u0151 IP c\u00edmeket kell erre a c\u00e9lra elk\u00fcl\u00f6n\u00edteni. Amikor l\u00e9trej\u00f6n egy p\u00e9ld\u00e1ny, ezekb\u0151l a publikus IP c\u00edmekb\u0151l kap egyet a p\u00e9ld\u00e1ny a vend\u00e9g IP c\u00edmen k\u00edv\u00fcl. Statikus 1-1 NAT lesz be\u00e1ll\u0167va a publikus \u00e9s a vend\u00e9g IP c\u00edmek k\u00f6z\u00f6tt. V\u00e9gfelhaszn\u00e1l\u00f3k haszn\u00e1lhatj\u00e1k a CloudStack fel\u00fcletet is \u00faj IP c\u00edmek beszerz\u00e9s\u00e9hez \u00e9s statikus NAT be\u00e1ll\u00edt\u00e1s\u00e1hoz.
-message.read.admin.guide.scaling.up=Olvasd el az adminisztr\u00e1torok \u00fatmutat\u00f3j\u00e1ban a dinamikus m\u00e9retez\u00e9sre vonatkoz\u00f3 r\u00e9szt miel\u0151tt folytatod\!
-message.recover.vm=Er\u0151s\u00edtsd meg, hogy helyre akarod \u00e1ll\u00edtani a VM-et.
-message.redirecting.region=\u00c1tir\u00e1ny\u00edt\u00e1s r\u00e9gi\u00f3ba...
-message.reinstall.vm=Figyelmeztet\u00e9s\: \u00d3vatosan\! Ha folytatod, a VM \u00fajra lesz telep\u00edtve a sablon alapj\u00e1n, a f\u0151 lemez\u00e9n tal\u00e1lhat\u00f3 adat elveszik. Amennyiben vannak tov\u00e1bbi merevlemezek, azok \u00e9rintetlenek maradnak.
-message.removed.ssh.key.pair=SSH kulcsp\u00e1r elt\u00e1vol\u00edtva
-message.remove.ldap=Biztosan t\u00f6r\u00f6lni akarod az LDAP konfigur\u00e1ci\u00f3t?
-message.remove.region=Biztosan t\u00f6r\u00f6lni akarod ezt a r\u00e9gi\u00f3t err\u0151l a vez\u00e9rl\u0151 szerverr\u0151l?
-message.remove.vpc=Er\u0151s\u00edtsd meg, hoy el akarod t\u00e1vol\u00edtani ezt a VPC-t\!
-message.remove.vpn.access=Er\u0151s\u00edtsd meg, hogy t\u00f6r\u00f6lni akarod a k\u00f6vetkez\u0151 felhaszn\u00e1l\u00f3 VPN hozz\u00e1f\u00e9r\u00e9s\u00e9t\!
-message.reset.password.warning.notPasswordEnabled=A p\u00e9ld\u00e1ny sablonja jelsz\u00f3 bekapcsol\u00e1sa n\u00e9lk\u00fcl lett l\u00e9trehozva
-message.reset.password.warning.notStopped=A p\u00e9ld\u00e1nyt le kell \u00e1ll\u00edtanod, miel\u0151tt megpr\u00f3b\u00e1ln\u00e1l jelsz\u00f3t be\u00e1ll\u00edtani.
-message.reset.VPN.connection=Er\u0151s\u00edtsd meg, hogy alaphelyzetbe akarod \u00e1ll\u00edtani a VPN kapcsolatot\!
-message.restart.mgmt.server=Ind\u00edtsd \u00fajra a vez\u00e9rl\u0151 szervert (szervereket) ahhoz, hogy az \u00faj be\u00e1ll\u00edt\u00e1s hat\u00e1lyba l\u00e9pjen\!
-message.restart.mgmt.usage.server=Please restart your management server(s) and usage server(s) for your new settings to take effect.
-message.restart.network=Megszakad minden szolg\u00e1ltat\u00e1s, amit a h\u00e1l\u00f3zat biztos\u00edt. Er\u0151s\u00edtsd meg, hogy \u00fajra akarod ind\u00edtani a h\u00e1l\u00f3zatot\!
-message.restart.vpc=Er\u0151s\u00edtsd meg, hogy \u00fajra akarod ind\u00edtani a VPC-t\!
-message.restart.vpc.remark=Er\u0151s\u00edtsd meg, hogy \u00fajra akarod ind\u00edtani a VPC-t\! <p><small><i>Megjegyz\u00e9s\: egy nem redund\u00e1ns VPC redund\u00e1nss\u00e1 t\u00e9tele takar\u00edt\u00e1st tesz sz\u00fcks\u00e9gess\u00e9. A h\u00e1l\u00f3zatok nem lesznek el\u00e9rhet\u0151ek egy p\u00e1r percig.</i>.</small></p>
-message.restoreVM=Helyre akarod \u00e1ll\u00edtani a VM-et?
-message.security.group.usage=(A <strong>Ctrl-kattint\u00e1s</strong> haszn\u00e1lat\u00e1val tudod az \u00f6sszes alkalmazhat\u00f3 biztons\u00e1gi csoportot kiv\u00e1lasztani)
-message.select.affinity.groups=V\u00e1lasszd ki azokat az affinit\u00e1si csoportokat, amelyekhez a VM tartozzon\:
-message.select.a.zone=Egy z\u00f3na tipikusan egy adatk\u00f6zpontnak felel meg. T\u00f6bb z\u00f3na seg\u00edthet a felh\u0151t megb\u00edzhat\u00f3bb\u00e1 tenni fizikai izol\u00e1ci\u00f3val \u00e9s redundanci\u00e1val.
-message.select.instance=V\u00e1lassz egy p\u00e9ld\u00e1nyt\!
-message.select.iso=V\u00e1lassz egy ISO-t az \u00faj virtu\u00e1lis p\u00e9ld\u00e1nynak\!
-message.select.item=V\u00e1lassz egy elemet\!
-message.select.security.groups=V\u00e1lassz biztons\u00e1gi csoportokat az \u00faj VM-hez\!
-message.select.template=V\u00e1lassz egy sablont az \u00faj virtu\u00e1lis p\u00e9ld\u00e1nynak\!
-message.select.tier=V\u00e1lassz egy r\u00e9teget\!
-message.set.default.NIC=Er\u0151s\u00edtsd meg, hogy alap\u00e9rtelmezett\u00e9 szeretn\u00e9d tenni ezt a NIC-et a VM-ben\!
-message.set.default.NIC.manual=Most manu\u00e1lisan m\u00f3dos\u00edtsd apal\u00e9rtelmezett NIC-et a VM-ben\!
-message.setup.physical.network.during.zone.creation.basic=Alap z\u00f3na l\u00e9trehoz\u00e1sakor egy fizikai h\u00e1l\u00f3zatot hozhatsz l\u00e9tre amely hiperv\u00edzor h\u00e1l\u00f3zati k\u00e1rty\u00e1j\u00e1nak felel meg.<br/><br/>M\u00e1s forgalom-t\u00edpusokat is <strong>r\u00e1h\u00fazhatsz</strong> a fizikai h\u00e1l\u00f3zatra.
-message.setup.physical.network.during.zone.creation=Halad\u00f3 z\u00f3na l\u00e9trehoz\u00e1sakor egy vagy t\u00f6bb fizikai h\u00e1l\u00f3zatot kell konfigur\u00e1lnod. Minden h\u00e1l\u00f3zat egy h\u00e1l\u00f3zati k\u00e1rty\u00e1nak felel meg a hiperv\u00edzoron. Minden fizikai h\u00e1l\u00f3zat egy vagy t\u00f6bb t\u00edpus\u00fa forgalmat bonyol\u00edthat, bizonyos megk\u00f6t\u00e9sekkel arra, hogy azokat hogyan lehet kombin\u00e1lni. <br/><br/><strong>H\u00fazz egy vagy t\u00f6bb forgalom t\u00edpust</strong> minden fizikai h\u00e1l\u00f3zatra.
-message.setup.successful=A felh\u0151 be\u00e1ll\u00edt\u00e1sa sikeres\!
-message.specifiy.tag.key.value=Please specify a tag key and value
-message.specify.url=K\u00e9rlek adj meg egy URL-t\!
-message.step.1.continue=V\u00e1lassz egy sablont vagy ISO-t a folytat\u00e1shoz
-message.step.1.desc=Please select a template for your new virtual instance. You can also choose to select a blank template from which an ISO image can be installed onto.
-message.step.2.continue=V\u00e1lassz egy aj\u00e1nlatot a folytat\u00e1shoz\!
-message.step.3.continue=V\u00e1lassz egy merevlemez aj\u00e1nlatot a folytat\u00e1shoz\!
-message.step.4.continue=V\u00e1lassz legal\u00e1bb egy h\u00e1l\u00f3zatot a folytat\u00e1shoz\!
-message.step.4.desc=Please select the primary network that your virtual instance will be connected to.
-message.storage.traffic=Forgalom a CloudStack felh\u0151 er\u0151forr\u00e1sai k\u00f6z\u00f6tt, bele\u00e9rtve azokat a komponenseket, amelyek a vez\u00e9rl\u0151 szerverrel kommunik\u00e1lnak, mint a kiszolg\u00e1l\u00f3k \u00e9s a rendszer VM-ek. \u00c1ll\u00edtsd be a t\u00e1r forgalmat itt\!
-message.suspend.project=Biztosan fel akarod f\u00fcggeszteni ezt a projektet?
-message.systems.vms.ready=A rendszer VM-ek elk\u00e9sz\u00fcltek.
-message.template.copying=A sablon m\u00e1sol\u00e1s alatt \u00e1ll.
-message.template.desc=Oper\u00e1ci\u00f3s rendszer k\u00e9p, amelyet a virtu\u00e1lis g\u00e9pek el tudnak ind\u00edtani
-message.tier.required=A r\u00e9teg k\u00f6telez\u0151.
-message.tooltip.dns.1=Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
-message.tooltip.dns.2=A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
-message.tooltip.internal.dns.1=Egy DNS szerver neve, a z\u00f3na bels\u0151 rendszer VM-einek kiszolg\u00e1l\u00e1s\u00e1ra. A pod-ok priv\u00e1t IP c\u00edmeinek sz\u00fcks\u00e9ge van egy \u00fatvonalhoz ehhez a c\u00edmhez.
-message.tooltip.internal.dns.2=Egy DNS szerver neve, a z\u00f3na bels\u0151 rendszer VM-einek kiszolg\u00e1l\u00e1s\u00e1ra. A pod-ok priv\u00e1t IP c\u00edmeinek sz\u00fcks\u00e9ge van egy \u00fatvonalhoz ehhez a c\u00edmhez.
-message.tooltip.network.domain=A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.
-message.tooltip.pod.name=N\u00e9v a pod-nak
-message.tooltip.reserved.system.gateway=Az \u00e1tj\u00e1r\u00f3 a pod kiszolg\u00e1l\u00f3i sz\u00e1m\u00e1ra
-message.tooltip.reserved.system.netmask=The network prefix that defines the pod subnet. Uses CIDR notation.
-message.tooltip.zone.name=N\u00e9v a z\u00f3n\u00e1nak.
-message.update.os.preference=Hat\u00e1rozz meg egy OS preferenci\u00e1t a kiszolg\u00e1l\u00f3hoz. Minden p\u00e9ld\u00e1ny, aminek hasonl\u00f3 preferenci\u00e1i vannak el\u0151sz\u00f6r ezen a kiszolg\u00e1l\u00f3n indul el.
-message.update.resource.count=Er\u0151s\u00edtsd meg, hogy m\u00f3dos\u00edtani akarod a sz\u00e1mla er\u0151forr\u00e1sainak sz\u00e1m\u00e1t\!
-message.update.ssl.failed=Nem siker\u00fclt az SSL tan\u00fas\u00edtv\u00e1nyt m\u00f3dos\u00edtani
-message.update.ssl=Please submit a new X.509 compliant SSL certificate chain to be updated to each console proxy and secondary storage virtual instance\:
-message.update.ssl.succeeded=Az SSL tan\u00fas\u00edtv\u00e1nyok m\u00f3dos\u00edt\u00e1sa sikeres
-message.validate.accept=Please enter a value with a valid extension.
-message.validate.creditcard=Adj meg egy \u00e9rv\u00e9nyes bankk\u00e1rtyasz\u00e1mot\!
-message.validate.date=Adj meg egy \u00e9rv\u00e9nyes d\u00e1tumot\!
-message.validate.date.ISO=Adj meg egy \u00e9rv\u00e9nyes (ISO) d\u00e1tumot\!
-message.validate.digits=Csak sz\u00e1mjegyeket \u00edrj\!
-message.validate.email.address=Adj meg egy \u00e9rv\u00e9nyes e-mail c\u00edmet\!
-message.validate.equalto=\u00cdrd be ugyanazt az \u00e9rt\u00e9ket \u00fajra\!
-message.validate.fieldrequired=Ez a mez\u0151 k\u00f6telez\u0151.
-message.validate.fixfield=Jav\u00edtsd ki ez a mez\u0151t\!
-message.validate.instance.name=A p\u00e9ld\u00e1ny neve nem lehet hosszabb 63 karaktern\u00e9l. Csak ASCII karakterek a-z \u00e9s A-Z, sz\u00e1mok 0-9 \u00e9s k\u00f6t\u0151jelek enged\u00e9lyezettek. Bet\u0171vel kell kezd\u0151dnie \u00e9s bet\u0171vel vagy sz\u00e1mmal kell v\u00e9gz\u0151dnie[
-message.validate.invalid.characters=\u00c9rv\u00e9nytelen karakter; k\u00e9rlek jav\u00edtsd\!
-message.validate.max=Adj meg egy \u00e9rt\u00e9ket, ami legfeljebb {0}\!
-message.validate.maxlength=Legfeljebb {0} karaktert adj meg\!
-message.validate.minlength=Legal\u00e1bb {0} karaktert adj meg\!
-message.validate.number=Adj meg egy \u00e9rv\u00e9nyes sz\u00e1mot\!
-message.validate.range=Adj meg egy \u00e9rt\u00e9ket {0} \u00e9s {1} k\u00f6z\u00f6tt\!
-message.validate.range.length=Adj meg egy {0} \u00e9s {1} k\u00f6z\u00f6tti hossz\u00fas\u00e1g\u00fa \u00e9rt\u00e9ket\!
-message.validate.URL=Adj meg egy \u00e9rv\u00e9nyes URL-t\!
-message.virtual.network.desc=A dedicated virtualized network for your account.  The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.
-message.vm.create.template.confirm=Sablon l\u00e9trehoz\u00e1sa automatikusan \u00fajraind\u00edtja a VM-et\!
-message.vm.review.launch=Please review the following information and confirm that your virtual instance is correct before launch.
-message.vnmc.available.list=VNMC nem el\u00e9rhet\u0151 a szolg\u00e1ltat\u00f3 list\u00e1r\u00f3l.
-message.vnmc.not.available.list=VNMC nem el\u00e9rhet\u0151 a szolg\u00e1ltat\u00f3 list\u00e1r\u00f3l.
-message.volume.create.template.confirm=Please confirm that you wish to create a template for this disk volume.  Creation of the template can range from several minutes to longer depending on the size of the volume.
-message.waiting.for.builtin.templates.to.load=V\u00e1rakoz\u00e1s a be\u00e9p\u00edtett sablonk bet\u00f6lt\u00e9s\u00e9re...
-message.XSTools61plus.update.failed=Failed to update Original XS Version is 6.1\\+ field. Error\:
-message.you.must.have.at.least.one.physical.network=Sz\u00fcks\u00e9ged van legal\u00e1bb egy fizikai h\u00e1l\u00f3zatra.
-message.your.cloudstack.is.ready=A CloudStack k\u00e9szen \u00e1ll\!
-message.Zone.creation.complete=A z\u00f3na l\u00e9trehoz\u00e1sa befejez\u0151d\u00f6tt
-message.zone.creation.complete.would.you.like.to.enable.this.zone=A z\u00f3na l\u00e9trehoz\u00e1sa befejez\u0151d\u00f6tt. Szeretn\u00e9d bekapcsolni a z\u00f3n\u00e1t?
-message.zone.no.network.selection=A kiv\u00e1lasztott z\u00f3n\u00e1ban nem v\u00e1laszthat\u00f3 ki h\u00e1l\u00f3zat.
-message.zone.step.1.desc=V\u00e1lassz h\u00e1l\u00f3zat modellt a z\u00f3n\u00e1dnak\!
-message.zone.step.2.desc=Add meg a k\u00f6vetkez\u0151 inform\u00e1ci\u00f3kat az \u00faj z\u00f3n\u00e1hoz
-message.zone.step.3.desc=Add meg a k\u00f6vetkez\u0151 inform\u00e1ci\u00f3kat az \u00faj pod-hoz
-message.zoneWizard.enable.local.storage=Figyelmeztet\u00e9s\: Ha bekapcsolod a helyi t\u00e1rat ebben a z\u00f3n\u00e1ban, akkor a k\u00f6vetkez\u0151t kell tenned att\u00f3l f\u00fcgg\u0151en, hogy hol szeretn\u00e9d elind\u00edtani a rendszer VM-eket\: <br/><br/>1. Ha a rendszer VM-eknek osztott els\u0151dleges t\u00e1ron kell futnia, akkor egy elosztott t\u00e1rat kell l\u00e9trehoznod a z\u00f3na l\u00e9trej\u00f6tte ut\u00e1n. A z\u00f3n\u00e1t kikapcsolt \u00e1llapotban kell elind\u00edtanod.<br/><br/>2. Ha a rendszer VM-eknek helyi els\u0151dleges t\u00e1ron kell futni, akkor a system.vm.use.local.storage \u00e9rt\u00e9k\u00e9t true-ra kell \u00e1ll\u00edtani miel\u00f6tt a z\u00f3n\u00e1t bekapcsolod.<br/><br/><br/>Szeretn\u00e9d folytatni?
-messgae.validate.min=Adj meg egy \u00e9rt\u00e9ket, ami legal\u00e1bb {0}\!
-mode=M\u00f3d
-network.rate=H\u00e1l\u00f3zati r\u00e1ta
-notification.reboot.instance=P\u00e9ld\u00e1ny \u00fajraind\u00edt\u00e1sa
-notification.start.instance=P\u00e9ld\u00e1ny ind\u00edt\u00e1sa
-notification.stop.instance=P\u00e9ld\u00e1ny le\u00e1ll\u00edt\u00e1sa
-side.by.side=Egym\u00e1s mellett
-state.Accepted=Elfogadva
-state.Active=Akt\u00edv
-state.Allocated=Lek\u00f6t\u00f6ve
-state.Allocating=Lek\u00f6t\u00e9s folyamatban
-state.BackedUp=Lementve
-state.BackingUp=Ment\u00e9s folyamatban
-state.Completed=K\u00e9sz
-state.Creating=K\u00e9sz\u00fcl
-state.Declined=Elromlott
-state.Destroyed=T\u00f6r\u00f6lt
-state.detached=Lecsatolt
-state.Disabled=Kikapcsolt
-state.Enabled=Enged\u00e9lyezett
-state.Error=Hiba
-state.Expunging=T\u00f6rl\u00e9s alatt
-state.Migrating=\u00c1thelyez\u00e9s alatt
-state.Pending=F\u00fcgg
-state.Ready=K\u00e9szen \u00e1ll
-state.Running=Fut
-state.Starting=Indul
-state.Stopped=Le\u00e1ll\u00edtva
-state.Stopping=Le\u00e1ll\u00e1s folyamatban
-state.Suspended=Felf\u00fcggesztett
-title.upload.volume=K\u00f6tet felt\u00f6lt\u00e9se
-ui.listView.filters.all=Mind
-ui.listView.filters.mine=Saj\u00e1t
diff --git a/client/WEB-INF/classes/resources/messages_it_IT.properties b/client/WEB-INF/classes/resources/messages_it_IT.properties
deleted file mode 100644
index 6fd390f..0000000
--- a/client/WEB-INF/classes/resources/messages_it_IT.properties
+++ /dev/null
@@ -1,1002 +0,0 @@
-# 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.
-
-changed.item.properties=Elementi delle propriet\u00e0 modificati
-confirm.enable.s3=Si prega di inserire i valori richiesti per abilitare il supporto per il Secondary Storage di tipo S3
-confirm.enable.swift=Si prega di inserire i valori richiesti per abilitare il supporto per Swift
-error.could.not.change.your.password.because.ldap.is.enabled=Errore non \u00e8 possibile cambiare la tua password perch\u00e8 LDAP \u00e8 abilitato.
-error.could.not.enable.zone=Impossibile abilitare la zona
-error.installWizard.message=E\\' stato rilevato un errore\: tornare agli step precedenti e correggere gli errori
-error.invalid.username.password=Username o Password non valida
-error.login=Le credenziali fornite per username/password non corrispondono a quelle nei nostri sistemi.
-error.menu.select=Impossibile effettuare operazioni senza aver selezionato alcun elemento.
-error.mgmt.server.inaccessible=Impossibile accedere al Management Server. Si prega di riprovare pi\u00f9 tardi.
-error.password.not.match=I campi password non corrispondono
-error.please.specify.physical.network.tags=Le offerte di rete non sono disponibili se non si specificano tag per questa rete fisica.
-error.session.expired=La sessione \u00e8 scaduta.
-error.something.went.wrong.please.correct.the.following=E\\' stato rilevato un errore; si prega di correggere quanto indicato di seguito
-error.unable.to.reach.management.server=Impossibile raggiungere il Management Server
-error.unresolved.internet.name=Il tuo nome internet non pu\u00f2 essere risolto.
-force.delete.domain.warning=Attenzione\: La scelta di questa opzione provocher\u00e0 la rimozione di tutti i sotto domini e agli account associati e alle loro risorse.
-force.delete=Forza la Cancellazione
-force.remove=Forza la Rimozione
-force.remove.host.warning=Attenzione\: La scelta di questa opzione provocher\u00e0 l\\'arresto forzato di tutte le virtual machine da parte di CloudStack prima di rimuovere questo host dal cluster.
-force.stop=Forza l\\'Arresto
-force.stop.instance.warning=Attenzione\: Forzare un arresto su questa instanza dovrebbe essere l\\'ultima opzione. C\\'\u00e8 il rischio di perdita di dati e di un comportamento inconsistente dello stato della virtual machine.
-ICMP.code=Codice ICMP
-ICMP.type=Tipo ICMP
-image.directory=Directory Immagine
-inline=Inline
-instances.actions.reboot.label=Riavviare una instanza
-label.about=About
-label.about.app=About CloudStack
-label.accept.project.invitation=Accettare un invito ad un progetto
-label.account=Account
-label.account.and.security.group=Account, Security group
-label.account.id=ID dell\\'Account
-label.account.name=Nome Account
-label.account.specific=Specifico dell\\'Account
-label.accounts=Utenti
-label.acquire.new.ip=Acquisizione nuovo indirizzo IP
-label.acquire.new.secondary.ip=Acquisizione nuovo IP secondario
-label.action.attach.disk=Collegamento di un Disco
-label.action.attach.disk.processing=Collegamento Disco in corso...
-label.action.attach.iso=Collegamento di una immagine ISO
-label.action.attach.iso.processing=Collegamento immagine ISO in corso...
-label.action.cancel.maintenance.mode=Annullamento dello stato di Maintenance Mode
-label.action.cancel.maintenance.mode.processing=Cancellazione dello stato Maintenance Mode in corso...
-label.action.change.password=Modifica della Password
-label.action.change.service=Modificare Servizio
-label.action.change.service.processing=Modifica del Servizio in corso...
-label.action.copy.ISO=Copia della immagine ISO
-label.action.copy.ISO.processing=Copia immagine ISO in corso...
-label.action.copy.template=Copia di un Template
-label.action.copy.template.processing=Copia di un Template in corso...
-label.action.create.template=Creazione Template
-label.action.create.template.from.vm=Creazione Template da una VM
-label.action.create.template.from.volume=Creazione Template da un Volume
-label.action.create.template.processing=Creazione Template in corso...
-label.action.create.vm=Creazione VM
-label.action.create.vm.processing=Creazione VM in corso...
-label.action.create.volume=Creazione Volume
-label.action.create.volume.processing=Creazione Volume in corso...
-label.action.delete.account=Cancellazione account
-label.action.delete.account.processing=Cancellazione account in corso....
-label.action.delete.cluster=Cancellazione Cluster
-label.action.delete.cluster.processing=Cancellazione Cluster in corso....
-label.action.delete.disk.offering=Cancellazione Offerta Disco
-label.action.delete.disk.offering.processing=Cancellazione Offerta Disco in corso....
-label.action.delete.domain=Cancellazione Dominio
-label.action.delete.domain.processing=Cancellazione Dominio in corso....
-label.action.delete.firewall=Cancellazione regola firewall
-label.action.delete.firewall.processing=Cancellazione Firewall in corso....
-label.action.delete.ingress.rule=Cancella Regola in Ingresso
-label.action.delete.ingress.rule.processing=Cancellazione della Regola in Ingresso in corso...
-label.action.delete.IP.range=Cancellazione intervallo indirizzi IP
-label.action.delete.IP.range.processing=Cancellazione intervallo indirizzi IP in corso....
-label.action.delete.ISO=Cancellazione immagine ISO
-label.action.delete.ISO.processing=Cancellazione immagine ISO in corso....
-label.action.delete.load.balancer=Cancellazione regola load balancer
-label.action.delete.load.balancer.processing=Cancellazione Load Balancer in corso....
-label.action.delete.network=Cancellazione Rete
-label.action.delete.network.processing=Cancellazione Rete in corso....
-label.action.delete.nexusVswitch=Cancellare Nexus 1000v
-label.action.delete.nic=Rimuovi NIC
-label.action.delete.physical.network=Cancellazione di una rete fisica
-label.action.delete.pod=Cancellazione Pod
-label.action.delete.pod.processing=Cancellazione Pod in corso....
-label.action.delete.primary.storage=Cancellazione Storage Primario
-label.action.delete.primary.storage.processing=Cancellazione Storage Primario in corso....
-label.action.delete.secondary.storage=Cancellazione Storage Secondario
-label.action.delete.secondary.storage.processing=Cancellazione Storage Secondario in corso....
-label.action.delete.security.group=Cancellazione Security Group
-label.action.delete.security.group.processing=Cancellazione Security Group in corso....
-label.action.delete.service.offering=Cancellazione Offerta di Servizio
-label.action.delete.service.offering.processing=Cancellazione Offerta di Servizio in corso....
-label.action.delete.snapshot=Cancellazione Snapshot
-label.action.delete.snapshot.processing=Cancellazione Snapshot in corso....
-label.action.delete.system.service.offering=Cancellare Offerta di Servizio di Sistema
-label.action.delete.template=Cancellazione Template
-label.action.delete.template.processing=Cancellazione Template in corso....
-label.action.delete.user=Cancellazione Utente
-label.action.delete.user.processing=Cancellazione Utente in corso....
-label.action.delete.volume=Cancellazione Volume
-label.action.delete.volume.processing=Cancellazione Volume in corso....
-label.action.delete.zone=Cancellazione Zona
-label.action.delete.zone.processing=Cancellazione Zona in corso....
-label.action.destroy.instance.processing=Rimozione Instanza in corso....
-label.action.destroy.instance=Rimozione instanza
-label.action.destroy.systemvm.processing=Rimozione VM di Sistema in corso....
-label.action.destroy.systemvm=Rimozione VM di sistema
-label.action.detach.disk.processing=Scollegamento Disco in corso....
-label.action.detach.disk=Scollegamento di un Disco
-label.action.detach.iso.processing=Scollegamento immagine ISO in corso....
-label.action.detach.iso=Scollegamento immagine ISO
-label.action.disable.account=Disabilitazione account
-label.action.disable.account.processing=Disabilitazione account in corso....
-label.action.disable.cluster=Disabilitazione Cluster
-label.action.disable.cluster.processing=Disabilitazione Cluster in corso....
-label.action.disable.nexusVswitch=Disabilitare Nexus 1000v
-label.action.disable.physical.network=Disabilitare la rete fisica
-label.action.disable.pod=Disabilitazione Pod
-label.action.disable.pod.processing=Disabilitazione Pod in corso....
-label.action.disable.static.NAT=Disabilitazione NAT Statico
-label.action.disable.static.NAT.processing=Disabilitazione NAT Statico in corso....
-label.action.disable.user=Disabilitazione Utente
-label.action.disable.user.processing=Disabilitazione Utente in corso....
-label.action.disable.zone=Disabilitazione Zona
-label.action.disable.zone.processing=Disabilitazione Zona in corso....
-label.action.download.ISO=Download immagine ISO
-label.action.download.template=Download Template
-label.action.download.volume=Download Volume
-label.action.download.volume.processing=Download Volume in corso....
-label.action.edit.account=Modifica account
-label.action.edit.disk.offering=Modifica Offerta Disco
-label.action.edit.domain=Modifica Dominio
-label.action.edit.global.setting=Modifica Impostazioni Globali
-label.action.edit.host=Modifica Host
-label.action.edit.instance=Modifica Instanza
-label.action.edit.ISO=Modifica immagine ISO
-label.action.edit.network=Modifica Rete
-label.action.edit.network.offering=Modifica Offerta di Rete
-label.action.edit.network.processing=Modifica Rete in corso....
-label.action.edit.pod=Modifica Pod
-label.action.edit.primary.storage=Modifica Storage Primario
-label.action.edit.resource.limits=Modifica Limiti delle Risorse
-label.action.edit.service.offering=Modifica Offerta di Servizio
-label.action.edit.template=Modifica Template
-label.action.edit.user=Modifica Utente
-label.action.edit.zone=Modifica Zona
-label.action.enable.account=Abilitazione account
-label.action.enable.account.processing=Abilitazione account in corso....
-label.action.enable.cluster=Abilitazione Cluster
-label.action.enable.cluster.processing=Abilitazione Cluster in corso....
-label.action.enable.maintenance.mode=Abilitazione dello stato Maintenance Mode
-label.action.enable.maintenance.mode.processing=Abilitazione dello stato Maintenance Mode in corso....
-label.action.enable.nexusVswitch=Abilitare Nexus 1000v
-label.action.enable.physical.network=Abilitare la rete fisica
-label.action.enable.pod=Abilitazione Pod
-label.action.enable.pod.processing=Abilitazione Pod in corso....
-label.action.enable.static.NAT=Abilitazione NAT Statico
-label.action.enable.static.NAT.processing=Abilitazione NAT Statico in corso....
-label.action.enable.user=Abilitazione Utente
-label.action.enable.user.processing=Abilitazione Utente in corso....
-label.action.enable.zone=Abilitazione Zona
-label.action.enable.zone.processing=Abilitazione Zona in corso....
-label.action.expunge.instance=Cancellare l\\'Istanza
-label.action.expunge.instance.processing=Cancellazione dell\\'Istanza in corso...
-label.action.force.reconnect=Forza la Riconnessione
-label.action.force.reconnect.processing=Riconnessione in corso....
-label.action.generate.keys=Generazione Chiavi
-label.action.generate.keys.processing=Generazione Chiavi in corso....
-label.action.list.nexusVswitch=Elencare Nexus 1000v
-label.action.lock.account=Blocco di un account
-label.action.lock.account.processing=Blocco account in corso....
-label.action.manage.cluster=Gestione Cluster
-label.action.manage.cluster.processing=Gestione Cluster in corso....
-label.action.migrate.instance=Migrazione Instanza
-label.action.migrate.instance.processing=Migrazione Instanza in corso....
-label.action.migrate.router=Migrazione Router
-label.action.migrate.router.processing=Migrazione Router...
-label.action.migrate.systemvm=Migrazione VM di Systema
-label.action.migrate.systemvm.processing=Migrazione VM di Sistema in corso....
-label.action.reboot.instance.processing=Riavvio Instanza in corso....
-label.action.reboot.instance=Riavvio Instanza
-label.action.reboot.router.processing=Riavvio Router in corso....
-label.action.reboot.router=Riavvio Router
-label.action.reboot.systemvm.processing=Riavvio VM di Sistema in corso....
-label.action.reboot.systemvm=Riavvio VM di Sistema
-label.action.recurring.snapshot=Snapshot Ricorrenti
-label.action.register.iso=Registrare una ISO
-label.action.register.template=Registra un Template da URL
-label.action.release.ip.processing=Rilascio indirizzo IP in corso....
-label.action.release.ip=Rilascio indirizzo IP
-label.action.remove.host.processing=Rimozione Host in corso....
-label.action.remove.host=Rimozione Host
-label.action.reset.password.processing=Reset della Password in corso....
-label.action.reset.password=Reset Password
-label.action.resize.volume.processing=Ridimensionamento Volume in corso....
-label.action.resize.volume=Ridimensionamento Volume
-label.action.resource.limits=Limiti delle Risorse
-label.action.restore.instance.processing=Restore dell\\'Instanza in corso....
-label.action.restore.instance=Restore Instanza
-label.action.revert.snapshot.processing=Ripristino dello Snapshot in corso...
-label.action.revert.snapshot=Ripristinare lo Snapshot
-label.actions=Azioni
-label.action.start.instance=Avvio Instanza
-label.action.start.instance.processing=Avvio Instanza in corso....
-label.action.start.router=Avvio Router
-label.action.start.router.processing=Avvio Router in corso....
-label.action.start.systemvm=Avvio VM di Sistema
-label.action.start.systemvm.processing=Avvio VM di Sistema in corso....
-label.action.stop.instance=Arresto Instanza
-label.action.stop.instance.processing=Arresto Instanza in corso....
-label.action.stop.router=Arresto Router
-label.action.stop.router.processing=Arresto Router in corso....
-label.action.stop.systemvm=Arresto VM di Sistema
-label.action.stop.systemvm.processing=Arresto VM di Sistema in corso....
-label.action.take.snapshot=Cattura uno Snapshot
-label.action.take.snapshot.processing=Esecuzione di Snapshot in corso....
-label.action.update.OS.preference=Aggiornamento Preferenze OS
-label.action.update.OS.preference.processing=Aggiornamento preferenze OS in corso....
-label.action.update.resource.count=Aggiornare il conteggio delle Risorse
-label.action.update.resource.count.processing=Aggiornamento del conteggio delle Risorse in corso...
-label.action.vmsnapshot.create=Cattura uno Snapshot della VM
-label.action.vmsnapshot.delete=Cancella lo Snapshot della VM
-label.action.vmsnapshot.revert=Ripristinare lo snapshot della VM
-label.activate.project=Attivare il Progetto
-label.active.sessions=Sessioni Attive
-label.add.account=Aggiungi un Account
-label.add.accounts=Aggiungere utenti
-label.add.accounts.to=Aggiungere utenti a
-label.add.account.to.project=Aggiungere account al progetto
-label.add.ACL=Aggiungere ACL
-label.add.affinity.group=Aggiungere un nuovo gruppo di affinit\u00e0
-label.add.BigSwitchBcf.device=Aggiungere Controller BigSwitch BCF
-label.add.BrocadeVcs.device=Aggiungere Switch Brocade Vcs
-label.add.by.cidr=Aggiungere da CIDR
-label.add.cluster=Aggiunta Cluster
-label.add.compute.offering=Aggiungere una offerta computazionale
-label.add.disk.offering=Aggiungere Offerta Disco
-label.add.domain=Aggiunta Dominio
-label.add.egress.rule=Aggiungere una regola d\\'uscita
-label.add.F5.device=Aggiungere device F5
-label.add.firewall=Aggiunta regola firewall
-label.add.guest.network=Aggiungere una rete guest
-label.add.host=Aggiunta Host
-label.adding=Aggiunta
-label.adding.cluster=Aggiunta del Cluster
-label.adding.failed=Aggiunta Fallita
-label.adding.pod=Aggiuta del Pod
-label.adding.processing=Aggiunta in corso...
-label.adding.succeeded=Aggiunta avvenuta
-label.adding.user=Aggiunta dell\\'Utente
-label.adding.zone=Aggiunta della Zona
-label.add.intermediate.certificate=Aggiungere un certificato intermedio
-label.add.ip.range=Aggiungere un IP Range
-label.additional.networks=Network Aggiuntivi
-label.add.ldap.account=Aggiungi un account LDAP
-label.add.load.balancer=Aggiungere un Load Balancer
-label.add.netScaler.device=Aggiungere device Netscaler
-label.add.network.ACL=Aggiungere le ACL di rete
-label.add.network=Aggiungere una Rete
-label.add.network.device=Aggiungere un Dispositivo di Rete
-label.add.network.offering=Aggiungere offerta di rete
-label.add.new.F5=Aggiungere nuovo F5
-label.add.new.gateway=Aggiungere un nuovo gateway
-label.add.new.NetScaler=Aggiungere nuovo NetScaler
-label.add.new.PA=Aggiungere un nuovo Palo Alto
-label.add.new.SRX=Aggiungere nuovo SRX
-label.add.new.tier=Aggiungere un nuovo livello
-label.add.NiciraNvp.device=Aggiungere Controller Nvp
-label.add.PA.device=Aggiungere un device Palo Alto
-label.add.physical.network=Aggiungere rete fisica
-label.add.pod=Aggiungere un Pod
-label.add.port.forwarding.rule=Aggiungere una regola di port forwarding
-label.add.primary.storage=Aggiungere uno Storage Primario
-label.add.region=Aggiungere una Regione
-label.add.resources=Aggiungere Risorse
-label.add.route=Aggiungere una rotta
-label.add.rule=Aggiungere regola
-label.add.secondary.storage=Aggiungere uno Storage Secondario
-label.add.security.group=Aggiungere un Gruppo di Sicurezza
-label.add.service.offering=Aggiungere un\\'Offerta di Servizio
-label.add.SRX.device=Aggiungere device SRX
-label.add.static.nat.rule=Aggiungere regola di NAT statico
-label.add.static.route=Aggiungere una rotta statica
-label.add.system.service.offering=Aggiungere Offerte di Servizio di Sistema
-label.add.template=Aggiungere un Template
-label.add.to.group=Aggiungere al gruppo
-label.add.user=Aggiungere un Utente
-label.add.vlan=Aggiungere una VLAN
-label.add.vm=Aggiungere VM
-label.add.vms=Aggiunvere VM
-label.add.vms.to.lb=Aggiungere VM a regola di bilanciamento di carico
-label.add.VM.to.tier=Aggiungere una VM al livello
-label.add.volume=Aggiungere un Volume
-label.add.vpc=Aggiungere VPC
-label.add.vpn.customer.gateway=Aggiungere Gateway VPN del Cliente
-label.add.VPN.gateway=Aggiungere un Gateway VPN
-label.add.vpn.user=Aggiungere utente VPN
-label.add.vxlan=Aggiungere una VXLAN
-label.add.zone=Aggiungere una Zona
-label.admin.accounts=Account Amministrativi
-label.admin=Amministratore
-label.advanced=Avanzato
-label.advanced.mode=Modalit\u00e0 Avanzata
-label.advanced.search=Ricerca Avanzata
-label.affinity=Affinit\u00e0
-label.affinity.group=Gruppo di Affinit\u00e0
-label.affinity.groups=Gruppi di Affinit\u00e0
-label.agent.password=Password per l\\'Agent
-label.agent.username=Username per l\\'Agent
-label.alert=Allarme
-label.algorithm=Algoritmo
-label.allocated=Allocato
-label.anti.affinity=Anti-affinit\u00e0
-label.api.key=Chiave API
-label.api.version=Versione API
-label.apply=Applicare
-label.app.name=CloudStack
-label.archive.alerts=Archivia allarmi
-label.archive.events=Archivia eventi
-label.associated.network=Rete Associata
-label.attached.iso=ISO Collegata
-label.available=Disponibile
-label.available.public.ips=Indirizzi IP Pubblici Disponibili
-label.back=Indietro
-label.bandwidth=Capacit\u00e0 della banda (Bandwidth)
-label.basic=Basic
-label.basic.mode=Modalit\u00e0 Base
-label.bigswitch.controller.address=Indirizzo Controller BigSwitch BCF
-label.bootable=Avviabile
-label.broadcast.uri=URI di Broadcast
-label.broadcat.uri=URI di Broadcast
-label.by.alert.type=Per tipo di allarme
-label.by.date.end=Per data (fino a)
-label.by.date.start=Per data (da)
-label.by.event.type=Per tipo di evento
-label.bytes.received=Byte Ricevuti
-label.bytes.sent=Byte Inviati
-label.cancel=Annulla
-label.capacity.bytes=Capacit\u00e0 Byte
-label.capacity=Capacit\u00e0
-label.capacity.iops=Capacit\u00e0 IOPS
-label.certificate=Certificato
-label.change.service.offering=Modificare offerta di servizio
-label.change.value=Modifica il valore
-label.character=Carattere
-label.cidr=CIDR
-label.CIDR.list=Lista CIDR
-label.CIDR.of.destination.network=Valore CIDR della rete di destinazione
-label.clear.list=Pulizia dell\\'elenco
-label.close=Chiudi
-label.cloud.console=Console di Gestione Cloud
-label.cluster=Cluster
-label.cluster.name=Nome del Cluster
-label.clusters=Cluster
-label.cluster.type=Tipo di Cluster
-label.clvm=CLVM
-label.code=Codice
-label.community=Community
-label.compute.and.storage=Computazione e Storage
-label.compute=Computazionale
-label.compute.offering=Offerta computazionale
-label.configuration=Configurazione
-label.configure=Configurare
-label.configure.ldap=Configura LDAP
-label.configure.network.ACLs=Configurare le ACL di rete
-label.configure.vpc=Configurare VPC
-label.confirmation=Conferma
-label.confirm.password=Confermare la password
-label.congratulations=Congratulazioni\!
-label.console.proxy=Proxy di Console
-label.continue.basic.install=Proseguire con l\\'installazione di base
-label.continue=Continuare
-label.corrections.saved=Salvataggio correzioni effettuato
-label.cpu.allocated=CPU Allocate
-label.cpu.allocated.for.VMs=CPU Allocate per VM
-label.CPU.cap=Limite CPU
-label.cpu=CPU
-label.cpu.limits=Limiti CPU
-label.cpu.mhz=CPU (in MHz)
-label.cpu.utilized=CPU Utilizzata
-label.created.by.system=Creato dal sistema
-label.created=Creato
-label.create.project=Creare un progetto
-label.create.template=Creare un template
-label.create.VPN.connection=Creare una Connessione VPN
-label.custom.disk.size=Dimensione Disco Personalizzata
-label.daily=Quotidiano
-label.date=Data
-label.day.of.month=Giorno del Mese
-label.day.of.week=Giorno della Settimana
-label.decline.invitation=Declinare un invito
-label.dedicated=Dedicato
-label.default=Default
-label.default.view=Vista di default
-label.delete.affinity.group=Cancellare Gruppo di Affinit\u00e0
-label.delete.alerts=Cancella allarmi
-label.delete.BigSwitchBcf=Rimuovere Controller BigSwitch BCF
-label.delete=Cancellare
-label.delete.events=Cancella eventi
-label.delete.F5=Rimozione F5
-label.delete.gateway=Rimuovere il gateway
-label.delete.NetScaler=Rimozione NetScaler
-label.delete.NiciraNvp=Rimuovere Controller Nvp
-label.delete.PA=Cancellare Palo Alto
-label.delete.project=Cancellare progetto
-label.delete.SRX=Rimozione SRX
-label.delete.VPN.connection=cancellare la connessione VPN
-label.delete.VPN.customer.gateway=cancellare il Gateway VPN del Cliente
-label.delete.VPN.gateway=cancellare un Gateway VPN
-label.delete.vpn.user=Cancellare utente VPN
-label.deleting.failed=Cancellazione Fallita
-label.deleting.processing=Cancellazione in corso...
-label.description=Descrizione
-label.destination.physical.network.id=ID della rete fisica di destinazione
-label.destination.zone=Zona di destinazione
-label.destroy=Distruggere
-label.destroy.router=Distruggere il router
-label.detaching.disk=Scollegamento Disco
-label.details=Dettagli
-label.device.id=ID Dispositivo
-label.devices=Device
-label.dhcp=DHCP
-label.DHCP.server.type=Tipo di DHCP Server
-label.direct.ips=Indirizzi IP di Rete condivisi
-label.disabled=Disabilitato
-label.disable.provider=Disabilitare il provider
-label.disable.vpn=Disabilitare VPN
-label.disabling.vpn.access=Disabilitare VPN
-label.disk.iops.max=Max IOPS
-label.disk.iops.min=Min IOPS
-label.disk.iops.total=IOPS Totali
-label.disk.offering=Offerta Disco
-label.disk.provisioningtype=Tipo di Provisioning
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=Dominio DNS per Reti Guest
-label.domain.admin=Amministratore di Dominio
-label.domain=Dominio
-label.domain.id=ID del Dominio
-label.domain.name=Nome del Dominio
-label.domain.router=Router di Dominio
-label.domain.suffix=Suffisso DNS (es. xyz.com)
-label.done=Fatto
-label.double.quotes.are.not.allowed=Doppi apici non consentiti
-label.download.progress=Avanzamento del Download
-label.drag.new.position=Trascina nella nuova posizione
-label.edit.lb.rule=Modifica regola LB
-label.edit=Modifica
-label.edit.network.details=Modificare le impostazioni di rete
-label.edit.project.details=Modificare i dettagli del progetto
-label.edit.secondary.ips=Modifica IP Secondari
-label.edit.tags=Modifica dei tag
-label.edit.traffic.type=Modifica del tipo di traffico
-label.edit.vpc=Modificare VPC
-label.egress.default.policy=Egress Default Policy
-label.egress.rule=Regola d\\'uscita
-label.egress.rules=Regole d\\'uscita
-label.email=Email
-label.enable.provider=Abilitare il provider
-label.enable.s3=Abilitare il Secondary Storage di tipo S3
-label.enable.swift=Abilitare Swift
-label.enable.vpn=Abilitare VPN
-label.enabling.vpn=Abilitazione della VPN
-label.enabling.vpn.access=Abilitazione dell\\'Accesso VPN
-label.end.IP=Indirizzo IP finale
-label.endpoint=Dispositivo
-label.end.reserved.system.IP=Indirizzo IP finale riservato di sistema
-label.enter.token=Inserire il token
-label.error=Errore
-label.ESP.encryption=Encryption di ESP
-label.ESP.hash=Hash di ESP
-label.ESP.policy=Policy di ESP
-label.example=Esempio
-label.external.link=Link Esterno
-label.extractable=Estraibile
-label.f5=F5
-label.failed=Errore
-label.firewall=Firewall
-label.first.name=Nome
-label.format=Formato
-label.friday=Venerd\u00ec
-label.full=Completo
-label.full.path=Path completo
-label.gpu=CPU
-label.guest.end.ip=Indirizzo IP guest finale
-label.guest=Guest
-label.guest.networks=Reti guest
-label.guest.start.ip=Indirizzo IP guest iniziale
-label.guest.traffic=Traffico della rete Guest
-label.guest.type=Tipo di Guest
-label.hints=Suggerimenti
-label.home=Home
-label.host.MAC=MAC del sistema host
-label.hvm=HVM
-label.hypervisor.capabilities=Funzionalit\u00e0 del Hypervisor
-label.hypervisor=Hypervisor
-label.hypervisors=Hypervisor
-label.hypervisor.version=Versione hypervisor
-label.id=ID
-label.IKE.DH=DH di IKE
-label.IKE.encryption=Encryption di IKE
-label.IKE.hash=Hash di IKE
-label.IKE.policy=Policy di IKE
-label.installWizard.addClusterIntro.subtitle=Che cosa \u00e8 un cluster?
-label.installWizard.addClusterIntro.title=Let&rsquo;s aggiungere un cluster
-label.installWizard.addHostIntro.subtitle=Che cosa \u00e8 un host?
-label.installWizard.addHostIntro.title=Let&rsquo;s aggiungere un host
-label.installWizard.addPodIntro.subtitle=Che cosa \u00e8 un pod?
-label.installWizard.addPodIntro.title=Let&rsquo;s aggiungere un pod
-label.installWizard.addPrimaryStorageIntro.subtitle=Che cosa \u00e8 un primary storage?
-label.installWizard.addPrimaryStorageIntro.title=Let&rsquo;s aggiungere primary storage
-label.installWizard.addSecondaryStorageIntro.subtitle=Che cosa \u00e8 un secondary storage?
-label.installWizard.addSecondaryStorageIntro.title=Let&rsquo;s aggiungere secondary storage
-label.installWizard.addZoneIntro.subtitle=Che cosa \u00e8 una zona?
-label.installWizard.addZoneIntro.title=Let&rsquo;s aggiungere una zone
-label.installWizard.addZone.title=Aggiungere una zona
-label.installWizard.click.launch=Fare click sul pulsante di avvio.
-label.installWizard.subtitle=Questa guida fornisce supporto nelle attivit\u00e0 di configurazione di una installazione CloudStack&\#8482
-label.installWizard.title=Ciao e Benvenuti nel mondo di CloudStack&\#8482
-label.instance=Istanza
-label.instance.limits=Limiti dell\\'Istanza
-label.instance.name=Nome dell\\'Istanza
-label.instances=Istanze
-label.internal.dns.1=DNS 1 Interno
-label.internal.dns.2=DNS2 Interno
-label.internal.name=Nome Interno
-label.introduction.to.cloudstack=Introduzione a CloudStack&\#8482
-label.invitations=Inviti
-label.invited.accounts=Utenti invitati
-label.invite=Invito
-label.invite.to=Invito a
-label.ip.address=Indirizzo IP
-label.ipaddress=Indirizzo IP
-label.ip=Indirizzo IP
-label.ip.or.fqdn=IP o FQDN
-label.ip.ranges=Intervalli di indirizzi IP
-label.IPsec.preshared.key=Preshared-Key di IPsec
-label.ips=Indirizzi IP
-label.is.default=E\\' Default
-label.isolated.networks=Reti isolate
-label.isolation.method=Metodo di isolamento
-label.isolation.mode=Modalit\u00e0 di Isolamento
-label.isolation.uri=URI di isolamento
-label.is.shared=E\\' Condiviso
-label.keyboard.type=Tipo di tastiera
-label.key=Key
-label.kvm.traffic.label=Etichetta del traffico via KVM
-label.label=Label
-label.lang.arabic=Arabo
-label.lang.english=Inglese
-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.ldap.configuration=Configurazione LDAP
-label.ldap.port=Porta LDAP
-label.level=Livello
-label.load.balancing=Bilanciamento di Carico
-label.load.balancing.policies=Politiche di Bilanciamento di Carico
-label.local.storage=Storage locale
-label.LUN.number=LUN \#
-label.make.redundant=Rendi ridondante
-label.management=Gestione
-label.management.ips=Indirizzo IP di Management
-label.manage.resources=Gestione Risorse
-label.max.guest.limit=Limite max di guest
-label.max.networks=Numero Max di reti
-label.max.public.ips=Numero max di indirizzi IP pubblici
-label.max.snapshots=Numero max di snapshot
-label.max.templates=Numero max di template
-label.max.vms=Numero max di VM utente
-label.max.volumes=Numero max di volumi
-label.max.vpcs=Numero max di VPC
-label.may.continue=E\\' ora possibile continuare.
-label.md5.checksum=Checksum MD5
-label.memory.mb=Memoria (in MB)
-label.menu.accounts=Utenti
-label.menu.configuration=Configurazione
-label.menu.infrastructure=Infrastruttura
-label.menu.instances=Istanze
-label.menu.system.service.offerings=Offerte di Sistema
-label.menu.templates=Template
-label.metrics.allocated=Allocato
-label.metrics.clusters=Cluster
-label.metrics.disk.allocated=Allocato
-label.migrate.instance.to.host=Migrare instance verso un altro host
-label.migrate.instance.to.ps=Migrare instance verso un altro primary storage
-label.migrate.to.host=Migrare verso un host
-label.migrate.to.storage=Migrare verso uno storage
-label.migrate.volume.to.primary.storage=Migrare un volume verso un altro primary storage
-label.mode=Modalit\u00e0
-label.move.down.row=Sposta gi\u00f9 di una riga
-label.move.to.bottom=Sposta gi\u00f9 alla fine
-label.move.to.top=Sposta in su all\\'inizio
-label.move.up.row=Sposta su di una riga
-label.my.network=La mia rete
-label.my.templates=I miei template
-label.nat.port.range=Intervallo di porte NAT
-label.netScaler=NetScaler
-label.network.ACL=ACL di rete
-label.network.ACLs=ACL di rete
-label.network.ACL.total=Totale ACL di rete
-label.network.domain.text=Dominio di Rete
-label.networking.and.security=Networking e sicurezza
-label.network.label.display.for.blank.value=Utilizzare il default gateway
-label.network.service.providers=Service Provider di Rete
-label.networks=Reti
-label.new=Nuovo
-label.new.project=Nuovo Progetto
-label.new.vm=Nuova VM
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nic.adapter.type=Tipo di scheda NIC
-label.no.data=Nessun dato da mostrare
-label.no=No
-label.no.thanks=No grazie
-label.notifications=Notifiche
-label.number.of.clusters=Numero di Cluster
-label.number.of.hosts=Numero di Host
-label.number.of.pods=Numero di Pod
-label.number.of.system.vms=Numero delle VM di Sistema
-label.number.of.virtual.routers=Numero dei Router Virtuali
-label.number.of.zones=Numero di Zone
-label.ok=OK
-label.order=Ordine
-label.outofbandmanagement.port=Porta
-label.perfect.forward.secrecy=Segretezza di Forward perfetta
-label.physical.network.ID=ID della rete fisica
-label.please.specify.netscaler.info=Si prega di specificare le informazioni per Netscaler
-label.pod.name=Nome del Pod
-label.pods=Pod
-label.port.forwarding.policies=Politiche di Port Forwarding
-label.port=Porta
-label.previous=Precedente
-label.primary.storage.count=Pool del Primary Storage
-label.primary.storage=Storage Primario
-label.private.Gateway=Gateway Privato
-label.private.network=Rete privata
-label.project.dashboard=Dashboard di progetto
-label.project.id=Project ID
-label.project.invite=Invitare ad un progetto
-label.project.name=Nome del progetto
-label.project=Project
-label.projects=Progetti
-label.project.view=Vista Progetto
-label.providers=Fornitori
-label.public.network=Rete pubblica
-label.purpose=Scopo
-label.quickview=Panoramica rapida
-label.quota.date=Data
-label.rbd.monitor=Ceph monitor
-label.rbd.pool=Ceph pool
-label.rbd=RBD
-label.reboot=Reboot
-label.recover.vm=Recupera la VM
-label.redundant.router.capability=Capacit\u00e0 di ridondanza del router
-label.reinstall.vm=Reinstalla la VM
-label.remind.later=Ricordami in seguito
-label.remove.ACL=Rimuovere ACL
-label.remove.egress.rule=Rimuovere una regola d\\'uscita
-label.remove.ip.range=Rimuovere intervallo di indirizzi IP
-label.remove.ldap=Rimuovi LDAP
-label.remove.pf=Rimuovere regola di port forwarding
-label.remove.rule=Rimuovere regola
-label.remove.static.nat.rule=Rimuovere regola di NAT statico
-label.remove.static.route=Rimuovere una rotta statica
-label.remove.tier=Rimuovere un livello
-label.remove.vm.from.lb=Rimuovere una VM da regola di bilanciamento di carico
-label.remove.vpc=Rimuovere VPC
-label.removing=Rimozione
-label.reserved.system.gateway=Gateway di sistema riservato
-label.reserved.system.netmask=Netmask di sistema riservata
-label.reset.VPN.connection=Reset della connessione VPN
-label.resource.state=Stato della risorsa
-label.restart.network=Riavviare il servizio di rete
-label.restart.required=E\\' necessario un riavvio
-label.restart.vpc=Riavviare VPC
-label.restore=Restore
-label.review=Riesaminare
-label.revoke.project.invite=Revocare un invit
-label.roles=Ruoli
-label.root.disk.controller=Controller del disco root
-label.routing=Routing
-label.rules=Regole
-label.s3.access_key=Access Key
-label.s3.connection_timeout=Tempo di scadenza connessione
-label.s3.endpoint=Dispositivo
-label.s3.max_error_retry=Numero massimo di tentativi a seguito di errore
-label.s3.nfs.path=Percorso S3 NFS
-label.s3.nfs.server=S3 NFS Server
-label.s3.secret_key=Secret Key
-label.s3.socket_timeout=Tempo di scadenza del Socket
-label.s3.use_https=Utilizzare HTTPS
-label.save.and.continue=Salvare e proseguire
-label.secondary.ips=IP Secondari
-label.secondary.storage.count=Pool del Secondary Storage
-label.secondary.storage=Storage Secondario
-label.secondary.storage.vm=VM di Secondary Storage
-label.secret.key=Secret Key
-label.select.a.template=Selezionare un template
-label.select.a.zone=Selezionare una zone
-label.select.instance=Selezionare una instanza
-label.select.instance.to.attach.volume.to=Selezionare l\\'instanza da collegare al volume
-label.select.iso.or.template=Selezionare immagine ISO o template
-label.select.offering=Seleziona l\\'offerta
-label.select.project=Selezionare un Progetto
-label.select=Selezionare
-label.select.tier=Selezionare il Livello
-label.select-view=Selezionare la vista
-label.select.vm.for.static.nat=Selezionare una VM per il NAT statico
-label.service.capabilities=Capacit\u00e0 di Servizio
-label.service.state=Stato del Servizio
-label.setup=Installazione
-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.smb.domain=Dominio SMB
-label.smb.password=Password SMB
-label.smb.username=Username SMB
-label.sockets=CPU Socket
-label.specify.IP.ranges=Specificare intervallo di indirizzi IP
-label.srx=SRX
-label.start.IP=Indirizzo IP iniziale
-label.start.reserved.system.IP=Indirizzo IP iniziale riservato di sistema
-label.static.nat.enabled=NAT Statico Abilitato
-label.static.nat.vm.details=Dettagli di NAT Statico della VM
-label.sticky.cookie-name=Nome del cookie
-label.sticky.domain=Dominio
-label.sticky.expire=Scadenza
-label.sticky.length=Lunghezza
-label.sticky.mode=Modalit\u00e0
-label.sticky.nocache=Senza cache
-label.sticky.prefix=Prefisso
-label.sticky.tablesize=Dimensione della tabella
-label.stop=Stop
-label.storage.traffic=Traffico della rete Storage
-label.super.cidr.for.guest.networks=Super CIDR per Reti Guest
-label.supported.services=Servizi Supportati
-label.supported.source.NAT.type=Tipo di Source NAT supportato
-label.suspend.project=Sospendere il Progett
-label.system.offering=Offerta del sistema
-label.system.wide.capacity=Capacit\u00e0 del Sistema
-label.task.completed=Attivit\u00e0 completata
-label.tier.details=Dettagli del livello
-label.tier=Livello
-label.timeout=Timeout
-label.token=Token
-label.total.cpu=CPU Totali
-label.total.CPU=CPU Totali
-label.total.hosts=Host Totali
-label.total.memory=Memoria Totale
-label.total.storage=Storage Totale
-label.traffic.label=Etichetta del traffico
-label.traffic.types=Tipi di Traffico
-label.update.project.resources=Aggiornare le risorse di progetto
-label.upload=Upload
-label.upload.volume=Volume di upload
-label.use.vm.ips=Usa Indirizzo IP della VM
-label.vcdcname=Nome DC del vCenter
-label.vcipaddress=Indirizzo IP del vCenter
-label.viewing=Visualizzazione
-label.view.secondary.ips=Vedi IP Secondari
-label.view=Vista
-label.virtual.routers=Router Virtuali
-label.virtual.router=Virtual Router
-label.vlan.only=VLAN
-label.vlan=VLAN
-label.vm.destroy=Destroy
-label.vm.display.name=Nome visualizzato della VM
-label.vm.ip=Indirizzo IP della VM
-label.vm.name=Nome VM
-label.vm.reboot=Reboot
-label.VMs.in.tier=VM nei livelli
-label.vm.state=Stato VM
-label.vm.stop=Stop
-label.vmware.traffic.label=Etichetta del traffico via VMware
-label.vnet=VLAN
-label.vpc.id=ID del VPC
-label.VPC.router.details=Dettagli del router VPC
-label.vpc=VPC
-label.VPN.connection=Connessione VPN
-label.vpn.customer.gateway=Gateway VPN del Cliente
-label.VPN.customer.gateway=Gateway VPN del Cliente
-label.VPN.gateway=Gateway VPN
-label.vpn=VPN
-label.vsmctrlvlanid=VLAN ID di Controllo
-label.vsmpktvlanid=VLAN ID del Pacchetto
-label.vsmstoragevlanid=VLAN ID di Storage
-label.what.is.cloudstack=Che cosa \u00e8 CloudStack&\#8482?
-label.xenserver.traffic.label=Etichetta del traffico via XenServer
-label.yes=S\u00ec
-label.zone.details=Dettagli della Zona
-label.zones=Zone
-label.zone.type=Tipo di Zona
-label.zoneWizard.trafficType.guest=Guest\: Traffico di rete tra le virtual machine dell\\'utente finale
-label.zoneWizard.trafficType.management=Management\: Traffico di rete tra le risorse interne di CloudStack, incluso qualsiasi componente che comunichi con il Management Server, come ad esempio gli host e le VM di Sistema di CloudStack
-label.zoneWizard.trafficType.public=Public\: Traffico di rete tra la rete internet e le virtual machine nell\\'infrastruttura cloud.
-label.zoneWizard.trafficType.storage=Storage\: Traffico di rete tra i server di primary e secondary storage, come ad esempio i template delle VM e le operazioni di snapshot
-message.acquire.ip.nic=Prego confermare che si vuole acquisire un nuovo IP secondario per questa NIC.<br/>NOTA\: Deve essere configurato manualmente il nuovo IP secondario acquisito all\\'interno della virtual machine.
-message.acquire.new.ip=Si prega di confermare di voler acquisire un nuovo indirizzo IP per questa rete.
-message.acquire.new.ip.vpc=Si prega di confermare di voler acquisire un nuovo indirizzo IP per questo VPC.
-message.action.delete.nexusVswitch=Si prega di confermare di voler cancellare questo nexus 1000v
-message.action.delete.nic=Prego conferma che si vuole rimuovere questa NIC, questo rimuover\u00e0 anche le reti associate dalla VM.
-message.action.delete.physical.network=Si prega di confermare di voler cancellare questa rete fisica
-message.action.delete.system.service.offering=Si prega di confermare di voler cancellare questa offerta di servizio di sistema.
-message.action.disable.nexusVswitch=Si prega di confermare di voler disabilitare questo nexus 1000v
-message.action.disable.physical.network=Si prega di confermare di voler disabilitare questa rete fisica.
-message.action.download.iso=Si prega di confermare di voler scaricare questa immagine ISO.
-message.action.download.template=Si prega di confermare di voler scaricare questo template.
-message.action.enable.nexusVswitch=Si prega di confermare di voler abilitare questo nexus 1000v
-message.action.enable.physical.network=Si prega di confermare l\\'intenzione di abilitare questa rete fisica.
-message.action.reboot.router=Tutti i servizi forniti da questo router virtuale saranno interrotti. Si prega di confermare di voler riavviare questo router.
-message.action.remove.host=Si prega di confermare di voler rimuovere questo host.
-message.action.stop.router=Tutti i servizi forniti da questo router virtuale saranno interrotti. Si prega di confermare di voler arrestare questo router.
-message.activate.project=Si \u00e8 sicuri di voler attivare questo progetto?
-message.add.domain=Si prega di specificare il sottodominio che si vuole creare in questo dominio
-message.add.guest.network=Si prega di confermare di voler aggiungere una rete guest
-message.adding.host=Aggiunta host
-message.adding.Netscaler.device=Aggiunta di dispositivo Netscaler
-message.adding.Netscaler.provider=Aggiunta di un provider Netscaler
-message.add.load.balancer.under.ip=La regola di bilanciamento di carico \u00e8 stata aggiunta all\\'indirizzo IP\:
-message.add.new.gateway.to.vpc=Si prega di specificare le informazioni per aggiungere un nuovo gateway a questo VPC.
-message.add.system.service.offering=Si prega di inserire le seguenti informazioni per aggiungere una nuova offerta di servizio di sistema.
-message.add.VPN.gateway=Si prega di confermare di voler aggiungere un Gateway VPN
-message.after.enable.s3=Il Secondary Storage S3 \u00e8 configurato. NOTA\: Una volta chiusa questa pagina, non sar\u00e0 pi\u00f9 possibile ri-configurare S3.
-message.after.enable.swift=Configurazione Swift completata. NOTA\: Una volta che questa pagina viene chiusa, non sar\u00e0 possibile ri-configurare nuovamente Swift.
-message.alert.state.detected=Rilevato uno stato di Alert
-message.change.password=Si prega di modificare la propria password.
-message.configure.all.traffic.types=Si dispone di pi\u00f9 reti fisiche; si prega di configurare le label per ogni tipo di traffico facendo click sul tasto \\'Edit\\'.
-message.configuring.guest.traffic=Configurazione del traffico guest
-message.configuring.physical.networks=Configurazione di reti fisiche
-message.configuring.public.traffic=Configurazione del traffico pubblico
-message.configuring.storage.traffic=Configurazione del traffico storage
-message.confirm.action.force.reconnect=Si prega di confermare di voler forzare la riconnessione a questo host.
-message.confirm.delete.F5=Si prega di confermare di voler rimuovere F5
-message.confirm.delete.NetScaler=Si prega di confermare di voler rimuovere NetScaler
-message.confirm.delete.SRX=Si prega di confermare di voler rimuovere SRX
-message.confirm.destroy.router=Si prega di confermare di voler rimuovere questo router
-message.confirm.disable.provider=Si prega di confermare di voler disabilitare questo provider
-message.confirm.enable.provider=Si prega di confermare di voler abilitare questo provider
-message.confirm.join.project=Si prega di confermare di volersi unire a questo progetto.
-message.confirm.remove.IP.range=Si prega di confermare di voler rimuovere questo intervallo di indirizzi IP.
-message.confirm.shutdown.provider=Si prega di confermare di voler arrestare questo provider
-message.create.template=Si \u00e8 sicuri di voler creare il template?
-message.creating.cluster=Creazione cluster
-message.creating.guest.network=Creazione di una rete guest
-message.creating.physical.networks=Creazione di reti fisiche
-message.creating.pod=Creazione pod
-message.creating.primary.storage=Creazione storage primario
-message.creating.secondary.storage=Creazione storage secondario
-message.creating.zone=Creazione della zona in corso
-message.decline.invitation=Si \u00e8 sicuri di voler declinare l\\'invito a questo progetto?
-message.delete.gateway=Si prega di confermare di voler cancellare il gateway
-message.delete.project=Si \u00e8 sicuri di voler cancellare questo progetto?
-message.delete.user=Si prega di confermare di voler cancellare questo utente.
-message.delete.VPN.connection=Si prega di confermare di voler cancellare la connessione VPN
-message.delete.VPN.customer.gateway=Si prega di confermare di voler cancellare questo Gateway VPN del Cliente
-message.delete.VPN.gateway=Si prega di confermare di voler cancellare questo Gateway VPN
-message.desc.advanced.zone=Per topologie di rete pi\u00f9 sofisticate. Queto modello di rete fornisce la maggior flessibilit\u00e0 nel definire reti guest e offrendo funzionalit\u00e0 di rete personalizzate come per esempio firewall, VPN, o supporto per bilanciamento di carico.
-message.desc.basic.zone=Indicare una rete singola in cui ogni instanza VM ricever\u00e0 un indirizzo IP assegnato. L\\'isolamento di istanze guest viene effettuato attraverso funzioni di tipo layer-3 come ad esempio i security group (filtraggio dell\\'indirizzo IP sorgente).
-message.desc.zone=Una zona \u00e8 l\\'unit\u00e0 organizzativa pi\u00f9 grandi in CloudStack, e corrisponde tipicamente ad un datacenter singolo. Le zono offrono isolamento fisico e ridondanza. Una zona \u00e8 costituita da uno o pi\u00f9 pod (ognuno dei quali contiene pi\u00f9 host e server di storage primario) ed un server di storage secondario condiviso da tutti i pod appartenenti alla zona.
-message.detach.disk=Si \u00e8 sicuri di voler sganciare questo disco?
-message.disable.user=Si prega di confermare di voler disabilitare questo utente.
-message.disable.vpn=Si \u00e8 sicuri di voler disabilitare la VPN?
-message.edit.traffic.type=Si prega si specificare la label del traffico che si vuole associare a questo tipo di traffico.
-message.enable.user=Si prega di confermare di voler abilitare questo utente.
-message.enable.vpn=Si prega di confermare di voler abilitare l\\'accesso VPN per questo indirizzo IP.
-message.enabling.security.group.provider=Abilitazione di un provider di Security Group
-message.enabling.zone=Abilitazione zona
-message.enter.token=Si prega di inserire il token ricevuto nella e-mail di invito.
-message.generate.keys=Si prega di confermare di voler generare nuove chiavi per questo utente.
-message.installWizard.click.retry=Fare click sul pulsante per riprovare l\\'avvio.
-message.installWizard.copy.whatIsAPod=Un pod pu\u00f2 essere utilizzato ad esempio per identificare un singolo rack. Gli host appartenenti al pod sono nella stessa subnet.<br/><br/>Un pod \u00e8 il secondo componente organizzativo pi\u00f9 grande in una installazione CloudStack&\#8482;. I pod sono contenuti in zone. Ogni zona pu\u00f2 contenere uno o pi\u00f9 pod; in una Installazione di Base, si configura un solo pod nella zona.
-message.installWizard.copy.whatIsAZone=Una zona \u00e8 il componente organizzativo pi\u00f9 grande in una installazione CloudStack&\#8482;. Una zona corrisponde solitamente ad un singolo datacenter, sebbene sia consentito avere pi\u00f9 zone in un datacenter. Il beneficio di organizzare l\\'infrastruttura in zone deriva dalla possibilit\u00e0 di creare isolamento e ridondanza. Per esempio, ogni zona pu\u00f2 avere la propria configurazione di alimentazione elettrica e collegamenti di rete, e le zone possono essere anche separate geograficamente (anche se non \u00e8 un requisito).
-message.installWizard.copy.whatIsSecondaryStorage=Un Secondary storage \u00e8 associato ad una zona, ed \u00e8 utilizzato per la memorizzazione di\:<ul><li>Template - Immagini SO che possono essere usate per eseguire il boot delle VM e che possono includere informazioni di configurazioni aggiuntive, come ad esempio applicazioni installate</li><li>Immagini ISO - Immagini OS utilizzabili che possono anche essere non-bootable</li><li>Snapshot di volumi disco - copie salvate di dati delle VM utilizzabili per il recupero di dati o per la creazione di nuovi template</ul>
-message.installWizard.tooltip.addCluster.name=Un nome per il cluster. Questo pu\u00f2 essere assegnato utilizzando testo a scelta e non \u00e8 utilizzato da CloudStack.
-message.installWizard.tooltip.addHost.hostname=Il nome DNS o l\\'indirizzo IP del sistema host.
-message.installWizard.tooltip.addHost.password=Questa \u00e8 la password per l\\'utente identificato precedentemente (dall\\'installazione XenServer).
-message.installWizard.tooltip.addHost.username=Tipicamente root.
-message.installWizard.tooltip.addPod.name=Un nome per il pod
-message.installWizard.tooltip.addPod.reservedSystemEndIp=Questo \u00e8 l\\'intervallo di indirizzi IP nella rete privata che CloudStack utilizza per la gestione delle VM del Secondary Storage e le VM della Console Proxy. Questi indirizzi IP sono ricavati dalla stessa subnet dei server computazionali.
-message.installWizard.tooltip.addPod.reservedSystemGateway=Il gateway per gli host appartenenti al pod.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=La netmask in uso nella subnet utilizzata dalle VM guest.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=Questo \u00e8 l\\'intervallo di indirizzi IP nella rete privata che CloudStack utilizza per la gestione delle VM del Secondary Storage e le VM della Console Proxy. Questi indirizzi IP sono ricavati dalla stessa subnet dei server computazionali.
-message.installWizard.tooltip.addPrimaryStorage.name=Il nome del dispositivo storage.
-message.installWizard.tooltip.addPrimaryStorage.path=(per NFS) In NFS questo corrisponde al path condiviso dal server. Path (per SharedMountPoint). Con KVM questo \u00e8 il path su ogni host su cui viene effettuato il mount di questo primary storage. Per esempio, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(per NFS, iSCSI, o PreSetup) L\\'indirizzo IP o il nome DNS del dispositivo di storage.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=L\\'indirizzo IP del server NFS su cui \u00e8 condiviso il secondary storage
-message.installWizard.tooltip.addSecondaryStorage.path=Il percorso esportato, posizionato sul server precedentemente specificato
-message.installWizard.tooltip.addZone.dns1=Questi sono i server DNS da usare per le VM guest nella zona. Questi server DNS saranno raggiunti attraverso la rete pubblica che si configurer\u00e0 nel seguito. Gli indirizzi IP pubblici per la zona devono disporre di una rotta per raggiungere i server DNS indicati qui.
-message.installWizard.tooltip.addZone.dns2=Questi sono i server DNS da usare per le VM guest nella zona. Questi server DNS saranno raggiunti attraverso la rete pubblica che si configurer\u00e0 nel seguito. Gli indirizzi IP pubblici per la zona devono disporre di una rotta per raggiungere i server DNS indicati qui.
-message.installWizard.tooltip.addZone.internaldns1=Questi sono i server DNS da utilizzare per le VM di sistema nella zona. Questi server DNS saranno raggiunti attraverso l\\'interfaccia di rete configurata nella rete privata delle VM di Sistema. L\\'indirizzo IP privato fornito ai pod devono disporre di una rotta per raggiungere il server DNS indicato qui.
-message.installWizard.tooltip.addZone.internaldns2=Questi sono i server DNS da utilizzare per le VM di sistema nella zona. Questi server DNS saranno raggiunti attraverso l\\'interfaccia di rete configurata nella rete privata delle VM di Sistema. L\\'indirizzo IP privato fornito ai pod devono disporre di una rotta per raggiungere il server DNS indicato qui.
-message.installWizard.tooltip.addZone.name=Un nome per la zona
-message.installWizard.tooltip.configureGuestTraffic.description=Una descrizione per identificare la rete
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=L\\'intervallo degli indirizzi IP che saranno disponibili per l\\'allocazione alle VM guest in questa zona. Se viene usata una NIC, questi indirizzi IP dovrebbero appartenere allo stesso CIDR a cui appartiene il pod.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=Il gateway da assegnare alle VM guest
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=La netmask in uso nella subnet utilizzata dalle VM guest
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=L\\'intervallo degli indirizzi IP che saranno disponibili per l\\'allocazione alle VM guest in questa zona. Se viene usata una NIC, questi indirizzi IP dovrebbero appartenere allo stesso CIDR a cui appartiene il pod.
-message.installWizard.tooltip.configureGuestTraffic.name=Un nome da assegnare alla rete
-message.instanceWizard.noTemplates=Non ci sono template disponibili\: si prega di aggiungere un template compatibile, e ri-avviare il wizard per la instanza.
-message.ip.address.changed=Il tuo indirizzo IP potrebbe essere cambiato; si desidera aggiornare l\\'elenco? Notare che in tal caso verr\u00e0 chiusa la finestra dettagli.
-message.iso.desc=Immagine disco contenente dati o supporto avviabile di boot per il SO
-message.join.project=Ora appartieni al progetto. Si prega di passare alla vista Progetto per accedere.
-message.launch.zone=La Zona \u00e8 pronta per l\\'avvio; si prega di procedere al passo successivo.
-message.listView.subselect.multi=(Ctrl/Cmd-click)
-message.migrate.instance.to.host=Si prega di confermare di voler migrare instance verso un altro host.
-message.migrate.instance.to.ps=Si prega di confermare di voler migrare instance verso un altro primary storage.
-message.migrate.router.confirm=Si prega di confermare l\\'host a cui si intende migrare il router\:
-message.migrate.volume=Si prega di confermare di voler migrare il volume verso un altro primary storage.
-message.no.affinity.groups=Non \u00e8 presente alcun gruppo di affinit\u00e0. Prego proseguire al prossimo passaggio.
-message.no.projects.adminOnly=Non si dispone di alcun progetto.<br/>Si prega di chiedere la creazione di un nuovo progetto al proprio amministratore.
-message.no.projects=Non si possiedono progetti.<br/>Si prega di creare un nuovo progetto dalla sezione progetti.
-message.pending.projects.1=Ci sono inviti a progetti in attesa di risposta\:
-message.please.add.at.lease.one.traffic.range=Si prega di aggiungere almeno un intervallo relativo al traffico.
-message.please.proceed=Si prega di procedere al passo successivo.
-message.please.select.a.configuration.for.your.zone=Si prega di selezionare una configurazione per la zona.
-message.please.select.a.different.public.and.management.network.before.removing=Si prega di selezionare una diversa rete pubblica e di management prima della rimozione
-message.please.select.networks=Si prega di selezionare le reti per la virtual machine.
-message.please.wait.while.zone.is.being.created=Si prega di attendere la creazione della zona; pu\u00f2 richiedere tempo...
-message.project.invite.sent=L\\'invito \u00e8 stato spedito all\\'utente; l\\'utente sar\u00e0 aggiunto al progetto solo dopo aver accettato l\\'invito
-message.recover.vm=Prego confermare che si vuole recuperare questa VM.
-message.reinstall.vm=NOTA\: Attenzione. Questo causer\u00e0 la reinstallazione della VM partendo dal template; i dati nel disco principale verranno persi. I dati nei volumi aggiuntivi, se esistenti, non verranno toccati.
-message.remove.vpc=Si prega di confermare di voler rimuovere VPC
-message.reset.password.warning.notPasswordEnabled=L\\'immagine template di questa instanza \u00e8 stata creata senza l\\'abilitazione della password
-message.reset.password.warning.notStopped=L\\'instanza deve essere arrestata prima di poter modificare la password
-message.reset.VPN.connection=Si prega di confermare di voler effettuare il reset della connessione VPN
-message.restart.network=Tutti i servizi forniti da questa rete saranno interrotti. Si prega di confermare di voler riavviare questa rete.
-message.restart.vpc=Si prega di confermare di voler riavviare VPC
-message.select.affinity.groups=Prego selezionare un gruppo di affinit\u00e0 a cui si vuole far appartenere questa VM\:
-message.select.a.zone=Una zona corrisponde tipicamente ad un singolo datacenter. Zone multiple consentono di aumentare l\\'affidabilit\u00e0 creando isolamento fisico e ridondanza.
-message.select.instance=Si prega di selezionare una instanza.
-message.select.iso=Si prega di selezionare una immagine ISO per la nuova instanza virtuale.
-message.select.item=Si prega di selezionare un elemento.
-message.select.security.groups=Si prega di selezionare i security group per la nuova VM
-message.select.template=Si prega di selezionare un template per la nuova instanza virtuale.
-message.setup.physical.network.during.zone.creation.basic=Quando si aggiunge una zona di base, si pu\u00f2 configurare una rete fisica, che corrisponde ad una NIC sul sistema host di virtualizzazione. La rete consente il trasporto di vari tipi di traffico di comunicazione.<br/><br/>E\\' possibile anche spostare altri tipi di traffico sulla rete fisica in modalit\u00e0 <strong>drag and drop</strong>.
-message.setup.successful=L\\'installazione del cloud \u00e8 completata con successo\!
-message.specify.url=Si prega di specificare la URL
-message.suspend.project=Si \u00e8 sicuri di voler sospendere questo progetto?
-message.template.desc=Immagine SO utilizzabile per eseguire il boot delle VM
-message.tooltip.dns.1=Nome di un server DNS per l\\'uso da parte delle VM in questa zona. Gli indirizzi IP pubblici per la zona devono avere un percorso di instradamento verso questo server.
-message.tooltip.dns.2=Un nome di un server DNS aggiuntivo per l\\'uso da parte delle VM in questa zona. Gli indirizzi IP pubblici per la zona devono avere un percorso di instradamento verso questo server.
-message.tooltip.internal.dns.1=Nome di un server DNS per l\\'uso da parte delle VM interne di CloudStack di sistema nella zona. Gli indirizzi IP privati per i pod devono avere un percorso di instradamento verso questo server.
-message.tooltip.internal.dns.2=Nome di un server DNS per l\\'uso da parte delle VM interne di CloudStack di sistema nella zona. Gli indirizzi IP privati per i pod devono avere un percorso di instradamento verso questo server.
-message.tooltip.network.domain=Un suffisso DNS che consentir\u00e0 la creazione di un nome di dominio personalizzato per la rete a cui accedono le VM ospiti.
-message.tooltip.pod.name=Un nome per questo pod
-message.tooltip.reserved.system.gateway=Il gateway per gli host appartenenti al pod.
-message.tooltip.reserved.system.netmask=Il prefisso di rete che definisce la subnet del pod. Utilizza la notazione CIDR.
-message.tooltip.zone.name=Un nome per la zona.
-message.update.resource.count=Si prega di confermare di voler aggiornare il valore delle risorse per questo account.
-message.validate.instance.name=Il nome dell\\'instanza non pu\u00f2 avere lunghezza superiore a 63 caratteri. Sono consentite solo lettere ASCII a-z, A-Z, numeri 0-9, segni \\'-\\'. Il primo carattere deve essere una lettera, e l\\'ultimo una lettera o un numero.
-message.validate.invalid.characters=Rilevati caratteri non validi; prego correggere.
-message.vm.review.launch=Si prega di riesaminare le informazioni e confermare l\\'instance virtuale scelta sia corretta prima di avviarla.
-message.you.must.have.at.least.one.physical.network=E\\' necessario disporre di almeno una rete fisica
-message.Zone.creation.complete=Creazione zona completata
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Creazione zona completata. Si desidera abilitare questa zona?
-message.zone.no.network.selection=La zona selezionata non contiene opzioni per la selezione della rete.
-mode=Modalit\u00e0
-notification.reboot.instance=Riavviare una instanza
-notification.start.instance=Avviare una instanza
-notification.stop.instance=Arrestare una instanza
-state.Accepted=Accettato
-state.Active=Attivo
-state.Allocated=Allocato
-state.Allocating=Allocazione in corso
-state.BackedUp=Salvataggio eseguito
-state.BackingUp=Salvataggio in esecuzione
-state.Completed=Completato
-state.Creating=Creazione in corso
-state.Declined=Declinato
-state.Disabled=Disabilitato
-state.Enabled=Abilitato
-state.Error=Errore
-state.Migrating=Migrazione in corso
-state.Ready=Pronto
-state.Running=In esecuzione
-state.Starting=Avvio in corso
-state.Stopped=Arrestato
-state.Stopping=Arresto in corso
-state.Suspended=Sospeso
diff --git a/client/WEB-INF/classes/resources/messages_ja_JP.properties b/client/WEB-INF/classes/resources/messages_ja_JP.properties
deleted file mode 100644
index 89766e8..0000000
--- a/client/WEB-INF/classes/resources/messages_ja_JP.properties
+++ /dev/null
@@ -1,2195 +0,0 @@
-# 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.
-
-changed.item.properties=\u9805\u76ee\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u5909\u66f4
-confirm.enable.s3=S3 \u30d9\u30fc\u30b9\u306e\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u30b5\u30dd\u30fc\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u60c5\u5831\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-confirm.enable.swift=Swift \u306e\u30b5\u30dd\u30fc\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u60c5\u5831\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-error.could.not.change.your.password.because.ldap.is.enabled=\u30a8\u30e9\u30fc\u3002LDAP \u304c\u6709\u52b9\u306a\u305f\u3081\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3067\u304d\u307e\u305b\u3093\u3002
-error.could.not.enable.zone=\u30be\u30fc\u30f3\u3092\u6709\u52b9\u306b\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
-error.installWizard.message=\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u623b\u3063\u3066\u30a8\u30e9\u30fc\u3092\u4fee\u6b63\u3067\u304d\u307e\u3059\u3002
-error.invalid.username.password=\u7121\u52b9\u306a\u30e6\u30fc\u30b6\u30fc\u540d\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u3059\u3002
-error.login=\u30e6\u30fc\u30b6\u30fc\u540d/\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u8a18\u9332\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002
-error.menu.select=\u9805\u76ee\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u64cd\u4f5c\u3092\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093\u3002
-error.mgmt.server.inaccessible=\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002\u5f8c\u3067\u518d\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-error.password.not.match=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093
-error.please.specify.physical.network.tags=\u3053\u306e\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30bf\u30b0\u3092\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002
-error.session.expired=\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u6709\u52b9\u671f\u9650\u304c\u5207\u308c\u307e\u3057\u305f\u3002
-error.something.went.wrong.please.correct.the.following=\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u6b21\u306e\u5185\u5bb9\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
-error.unable.to.reach.management.server=\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u3068\u901a\u4fe1\u3067\u304d\u307e\u305b\u3093
-error.unresolved.internet.name=\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u540d\u3092\u89e3\u6c7a\u3067\u304d\u307e\u305b\u3093\u3002
-force.delete.domain.warning=\u8b66\u544a\: \u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3059\u308b\u3068\u3001\u3059\u3079\u3066\u306e\u5b50\u30c9\u30e1\u30a4\u30f3\u304a\u3088\u3073\u95a2\u9023\u3059\u308b\u3059\u3079\u3066\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3068\u305d\u306e\u30ea\u30bd\u30fc\u30b9\u304c\u524a\u9664\u3055\u308c\u307e\u3059\u3002
-force.delete=\u5f37\u5236\u7684\u306b\u524a\u9664\u3059\u308b
-force.remove.host.warning=\u8b66\u544a\: \u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3059\u308b\u3068\u3001\u5b9f\u884c\u4e2d\u306e\u3059\u3079\u3066\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u304c\u5f37\u5236\u7684\u306b\u505c\u6b62\u3055\u308c\u3001\u30af\u30e9\u30b9\u30bf\u30fc\u304b\u3089\u3053\u306e\u30db\u30b9\u30c8\u304c\u5f37\u5236\u7684\u306b\u89e3\u9664\u3055\u308c\u307e\u3059\u3002
-force.remove=\u5f37\u5236\u7684\u306b\u89e3\u9664\u3059\u308b
-force.stop.instance.warning=\u8b66\u544a\: \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u5f37\u5236\u505c\u6b62\u306f\u3001\u6700\u7d42\u624b\u6bb5\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30c7\u30fc\u30bf\u3092\u640d\u5931\u3059\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u52d5\u4f5c\u304c\u4e00\u8cab\u3057\u306a\u304f\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-force.stop=\u5f37\u5236\u7684\u306b\u505c\u6b62\u3059\u308b
-hint.no.host.tags=\u30db\u30b9\u30c8\u30bf\u30b0\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-hint.no.storage.tags=\u30b9\u30c8\u30ec\u30fc\u30b8\u30bf\u30b0\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-hint.type.part.host.tag=\u30db\u30b9\u30c8\u30bf\u30b0\u306e\u7a2e\u985e
-hint.type.part.storage.tag=\u30b9\u30c8\u30ec\u30fc\u30b8\u30bf\u30b0\u306e\u7a2e\u985e
-ICMP.code=ICMP \u30b3\u30fc\u30c9
-ICMP.type=ICMP \u306e\u7a2e\u985e
-image.directory=\u753b\u50cf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea
-inline=\u76f4\u5217
-instances.actions.reboot.label=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u518d\u8d77\u52d5
-label.about.app=CloudStack \u306b\u3064\u3044\u3066
-label.about=\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831
-label.accept.project.invitation=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u306e\u62db\u5f85\u306e\u627f\u8afe
-label.account.and.security.group=\u30a2\u30ab\u30a6\u30f3\u30c8\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.account.details=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8a73\u7d30
-label.account.id=\u30a2\u30ab\u30a6\u30f3\u30c8 ID
-label.account.lower=\u30a2\u30ab\u30a6\u30f3\u30c8
-label.account.name=\u30a2\u30ab\u30a6\u30f3\u30c8\u540d
-label.account.specific=\u30a2\u30ab\u30a6\u30f3\u30c8\u56fa\u6709
-label.accounts=\u30a2\u30ab\u30a6\u30f3\u30c8
-label.account.type=\u30a2\u30ab\u30a6\u30f3\u30c8\u30bf\u30a4\u30d7
-label.account=\u30a2\u30ab\u30a6\u30f3\u30c8
-label.acl=ACL
-label.acl.id=ACL ID
-label.acl.list.rules=ACL \u30eb\u30fc\u30eb\u306e\u30ea\u30b9\u30c8
-label.acl.name=ACL \u540d
-label.acl.replaced=ACL \u304c\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3057\u305f
-label.acquire.new.ip=\u65b0\u3057\u3044 IP \u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97
-label.acquire.new.secondary.ip=\u30bb\u30ab\u30f3\u30c0\u30ea IP \u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97
-label.action.attach.disk.processing=\u30c7\u30a3\u30b9\u30af\u3092\u30a2\u30bf\u30c3\u30c1\u3057\u3066\u3044\u307e\u3059...
-label.action.attach.disk=\u30c7\u30a3\u30b9\u30af\u306e\u30a2\u30bf\u30c3\u30c1
-label.action.attach.iso=ISO \u306e\u30a2\u30bf\u30c3\u30c1
-label.action.attach.iso.processing=ISO \u3092\u30a2\u30bf\u30c3\u30c1\u3057\u3066\u3044\u307e\u3059...
-label.action.cancel.maintenance.mode.processing=\u4fdd\u5b88\u30e2\u30fc\u30c9\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u3066\u3044\u307e\u3059...
-label.action.cancel.maintenance.mode=\u4fdd\u5b88\u30e2\u30fc\u30c9\u306e\u30ad\u30e3\u30f3\u30bb\u30eb
-label.action.change.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5909\u66f4
-label.action.change.service.processing=\u30b5\u30fc\u30d3\u30b9\u3092\u5909\u66f4\u3057\u3066\u3044\u307e\u3059...
-label.action.change.service=\u30b5\u30fc\u30d3\u30b9\u306e\u5909\u66f4
-label.action.configure.samlauthorization=SAML SSO \u8a8d\u8a3c\u3092\u8a2d\u5b9a\u3059\u308b
-label.action.copy.ISO=ISO \u306e\u30b3\u30d4\u30fc
-label.action.copy.ISO.processing=ISO \u3092\u30b3\u30d4\u30fc\u3057\u3066\u3044\u307e\u3059....
-label.action.copy.template.processing=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30b3\u30d4\u30fc\u3057\u3066\u3044\u307e\u3059....
-label.action.copy.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30b3\u30d4\u30fc
-label.action.create.template.from.vm=VM \u304b\u3089\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u4f5c\u6210
-label.action.create.template.from.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u304b\u3089\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u4f5c\u6210
-label.action.create.template.processing=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059...
-label.action.create.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u4f5c\u6210
-label.action.create.vm.processing=VM \u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059...
-label.action.create.vm=VM \u306e\u4f5c\u6210
-label.action.create.volume.processing=\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059...
-label.action.create.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u4f5c\u6210
-label.action.delete.account.processing=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u524a\u9664
-label.action.delete.cluster.processing=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u524a\u9664
-label.action.delete.disk.offering.processing=\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.disk.offering=\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u524a\u9664
-label.action.delete.domain.processing=\u30c9\u30e1\u30a4\u30f3\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.domain=\u30c9\u30e1\u30a4\u30f3\u306e\u524a\u9664
-label.action.delete.firewall.processing=\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.firewall=\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u898f\u5247\u306e\u524a\u9664
-label.action.delete.ingress.rule.processing=\u53d7\u4fe1\u898f\u5247\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.ingress.rule=\u53d7\u4fe1\u898f\u5247\u306e\u524a\u9664
-label.action.delete.IP.range=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u524a\u9664
-label.action.delete.IP.range.processing=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.ISO=ISO \u306e\u524a\u9664
-label.action.delete.ISO.processing=ISO \u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.load.balancer.processing=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.load.balancer=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u898f\u5247\u306e\u524a\u9664
-label.action.delete.network.processing=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u524a\u9664
-label.action.delete.nexusVswitch=Nexus 1000V \u306e\u524a\u9664
-label.action.delete.nic=NIC \u306e\u524a\u9664
-label.action.delete.physical.network=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u524a\u9664
-label.action.delete.pod.processing=\u30dd\u30c3\u30c9\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.pod=\u30dd\u30c3\u30c9\u306e\u524a\u9664
-label.action.delete.primary.storage.processing=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.primary.storage=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u524a\u9664
-label.action.delete.secondary.storage.processing=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.secondary.storage=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u524a\u9664
-label.action.delete.security.group.processing=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.security.group=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u524a\u9664
-label.action.delete.service.offering.processing=\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.service.offering=\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u524a\u9664
-label.action.delete.snapshot.processing=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.snapshot=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u524a\u9664
-label.action.delete.system.service.offering=\u30b7\u30b9\u30c6\u30e0 \u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u524a\u9664
-label.action.delete.template.processing=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u524a\u9664
-label.action.delete.user.processing=\u30e6\u30fc\u30b6\u30fc\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.user=\u30e6\u30fc\u30b6\u30fc\u306e\u524a\u9664
-label.action.delete.volume.processing=\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u524a\u9664
-label.action.delete.zone.processing=\u30be\u30fc\u30f3\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.delete.zone=\u30be\u30fc\u30f3\u306e\u524a\u9664
-label.action.destroy.instance.processing=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u7834\u68c4\u3057\u3066\u3044\u307e\u3059...
-label.action.destroy.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u7834\u68c4
-label.action.destroy.systemvm.processing=\u30b7\u30b9\u30c6\u30e0 VM \u3092\u7834\u68c4\u3057\u3066\u3044\u307e\u3059...
-label.action.destroy.systemvm=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u7834\u68c4
-label.action.detach.disk.processing=\u30c7\u30a3\u30b9\u30af\u3092\u30c7\u30bf\u30c3\u30c1\u3057\u3066\u3044\u307e\u3059...
-label.action.detach.disk=\u30c7\u30a3\u30b9\u30af\u306e\u30c7\u30bf\u30c3\u30c1
-label.action.detach.iso=ISO \u306e\u30c7\u30bf\u30c3\u30c1
-label.action.detach.iso.processing=ISO \u3092\u30c7\u30bf\u30c3\u30c1\u3057\u3066\u3044\u307e\u3059...
-label.action.disable.account.processing=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.disable.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u7121\u52b9\u5316
-label.action.disable.cluster.processing=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.disable.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u7121\u52b9\u5316
-label.action.disable.nexusVswitch=Nexus 1000V \u306e\u7121\u52b9\u5316
-label.action.disable.physical.network=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u7121\u52b9\u5316
-label.action.disable.pod.processing=\u30dd\u30c3\u30c9\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.disable.pod=\u30dd\u30c3\u30c9\u306e\u7121\u52b9\u5316
-label.action.disable.static.NAT.processing=\u9759\u7684 NAT \u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.disable.static.NAT=\u9759\u7684 NAT \u306e\u7121\u52b9\u5316
-label.action.disable.user.processing=\u30e6\u30fc\u30b6\u30fc\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.disable.user=\u30e6\u30fc\u30b6\u30fc\u306e\u7121\u52b9\u5316
-label.action.disable.zone.processing=\u30be\u30fc\u30f3\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.disable.zone=\u30be\u30fc\u30f3\u306e\u7121\u52b9\u5316
-label.action.download.ISO=ISO \u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
-label.action.download.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
-label.action.download.volume.processing=\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u3044\u307e\u3059...
-label.action.download.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
-label.action.edit.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u7de8\u96c6
-label.action.edit.disk.offering=\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u7de8\u96c6
-label.action.edit.domain=\u30c9\u30e1\u30a4\u30f3\u306e\u7de8\u96c6
-label.action.edit.global.setting=\u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\u306e\u7de8\u96c6
-label.action.edit.host=\u30db\u30b9\u30c8\u306e\u7de8\u96c6
-label.action.edit.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u7de8\u96c6
-label.action.edit.ISO=ISO \u306e\u7de8\u96c6
-label.action.edit.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u7de8\u96c6
-label.action.edit.network.processing=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u7de8\u96c6\u3057\u3066\u3044\u307e\u3059...
-label.action.edit.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u7de8\u96c6
-label.action.edit.pod=\u30dd\u30c3\u30c9\u306e\u7de8\u96c6
-label.action.edit.primary.storage=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u7de8\u96c6
-label.action.edit.resource.limits=\u30ea\u30bd\u30fc\u30b9\u5236\u9650\u306e\u7de8\u96c6
-label.action.edit.service.offering=\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u7de8\u96c6
-label.action.edit.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u7de8\u96c6
-label.action.edit.user=\u30e6\u30fc\u30b6\u30fc\u306e\u7de8\u96c6
-label.action.edit.zone=\u30be\u30fc\u30f3\u306e\u7de8\u96c6
-label.action.enable.account.processing=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.enable.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u6709\u52b9\u5316
-label.action.enable.cluster.processing=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.enable.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u6709\u52b9\u5316
-label.action.enable.maintenance.mode.processing=\u4fdd\u5b88\u30e2\u30fc\u30c9\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.enable.maintenance.mode=\u4fdd\u5b88\u30e2\u30fc\u30c9\u306e\u6709\u52b9\u5316
-label.action.enable.nexusVswitch=Nexus 1000V \u306e\u6709\u52b9\u5316
-label.action.enable.physical.network=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u6709\u52b9\u5316
-label.action.enable.pod.processing=\u30dd\u30c3\u30c9\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.enable.pod=\u30dd\u30c3\u30c9\u306e\u6709\u52b9\u5316
-label.action.enable.static.NAT.processing=\u9759\u7684 NAT \u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.enable.static.NAT=\u9759\u7684 NAT \u306e\u6709\u52b9\u5316
-label.action.enable.user.processing=\u30e6\u30fc\u30b6\u30fc\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.enable.user=\u30e6\u30fc\u30b6\u30fc\u306e\u6709\u52b9\u5316
-label.action.enable.zone.processing=\u30be\u30fc\u30f3\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.enable.zone=\u30be\u30fc\u30f3\u306e\u6709\u52b9\u5316
-label.action.expunge.instance.processing=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u62b9\u6d88\u3057\u3066\u3044\u307e\u3059...
-label.action.expunge.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u62b9\u6d88
-label.action.force.reconnect.processing=\u518d\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059...
-label.action.force.reconnect=\u5f37\u5236\u518d\u63a5\u7d9a
-label.action.generate.keys.processing=\u30ad\u30fc\u3092\u751f\u6210\u3057\u3066\u3044\u307e\u3059...
-label.action.generate.keys=\u30ad\u30fc\u306e\u751f\u6210
-label.action.list.nexusVswitch=Nexus 1000V \u306e\u4e00\u89a7\u8868\u793a
-label.action.lock.account.processing=\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u30ed\u30c3\u30af\u3057\u3066\u3044\u307e\u3059...
-label.action.lock.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30ed\u30c3\u30af
-label.action.manage.cluster.processing=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u7ba1\u7406\u5bfe\u8c61\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.manage.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u7ba1\u7406\u5bfe\u8c61\u5316
-label.action.migrate.instance.processing=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u79fb\u884c\u3057\u3066\u3044\u307e\u3059...
-label.action.migrate.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u79fb\u884c
-label.action.migrate.router.processing=\u30eb\u30fc\u30bf\u30fc\u3092\u79fb\u884c\u3057\u3066\u3044\u307e\u3059...
-label.action.migrate.router=\u30eb\u30fc\u30bf\u30fc\u306e\u79fb\u884c
-label.action.migrate.systemvm.processing=\u30b7\u30b9\u30c6\u30e0 VM \u3092\u79fb\u884c\u3057\u3066\u3044\u307e\u3059...
-label.action.migrate.systemvm=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u79fb\u884c
-label.action.reboot.instance.processing=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u518d\u8d77\u52d5\u3057\u3066\u3044\u307e\u3059...
-label.action.reboot.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u518d\u8d77\u52d5
-label.action.reboot.router.processing=\u30eb\u30fc\u30bf\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3066\u3044\u307e\u3059...
-label.action.reboot.router=\u30eb\u30fc\u30bf\u30fc\u306e\u518d\u8d77\u52d5
-label.action.reboot.systemvm.processing=\u30b7\u30b9\u30c6\u30e0 VM \u3092\u518d\u8d77\u52d5\u3057\u3066\u3044\u307e\u3059...
-label.action.reboot.systemvm=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u518d\u8d77\u52d5
-label.action.recurring.snapshot=\u5b9a\u671f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
-label.action.register.iso=ISO \u306e\u767b\u9332
-label.action.register.template=URL \u304b\u3089\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u767b\u9332
-label.action.release.ip=IP \u30a2\u30c9\u30ec\u30b9\u306e\u89e3\u653e
-label.action.release.ip.processing=IP \u30a2\u30c9\u30ec\u30b9\u3092\u89e3\u653e\u3057\u3066\u3044\u307e\u3059...
-label.action.remove.host.processing=\u30db\u30b9\u30c8\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.action.remove.host=\u30db\u30b9\u30c8\u306e\u524a\u9664
-label.action.reset.password.processing=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u3044\u307e\u3059...
-label.action.reset.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8
-label.action.resize.volume.processing=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30b5\u30a4\u30ba\u3092\u5909\u66f4\u3057\u3066\u3044\u307e\u3059...
-label.action.resize.volume=\u30dc\u30ea\u30e5\u30fc\u30e0 \u30b5\u30a4\u30ba\u306e\u5909\u66f4
-label.action.resource.limits=\u30ea\u30bd\u30fc\u30b9\u5236\u9650
-label.action.restore.instance.processing=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u5fa9\u5143\u3057\u3066\u3044\u307e\u3059...
-label.action.restore.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u5fa9\u5143
-label.action.revert.snapshot.processing=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306b\u623b\u3057\u3066\u3044\u307e\u3059...
-label.action.revert.snapshot=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306b\u623b\u3059
-label.action.start.instance.processing=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u8d77\u52d5\u3057\u3066\u3044\u307e\u3059...
-label.action.start.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u8d77\u52d5
-label.action.start.router.processing=\u30eb\u30fc\u30bf\u30fc\u3092\u8d77\u52d5\u3057\u3066\u3044\u307e\u3059...
-label.action.start.router=\u30eb\u30fc\u30bf\u30fc\u306e\u8d77\u52d5
-label.action.start.systemvm.processing=\u30b7\u30b9\u30c6\u30e0 VM \u3092\u8d77\u52d5\u3057\u3066\u3044\u307e\u3059...
-label.action.start.systemvm=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u8d77\u52d5
-label.action.stop.instance.processing=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u505c\u6b62\u3057\u3066\u3044\u307e\u3059...
-label.action.stop.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u505c\u6b62
-label.action.stop.router.processing=\u30eb\u30fc\u30bf\u30fc\u3092\u505c\u6b62\u3057\u3066\u3044\u307e\u3059...
-label.action.stop.router=\u30eb\u30fc\u30bf\u30fc\u306e\u505c\u6b62
-label.action.stop.systemvm.processing=\u30b7\u30b9\u30c6\u30e0 VM \u3092\u505c\u6b62\u3057\u3066\u3044\u307e\u3059...
-label.action.stop.systemvm=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u505c\u6b62
-label.actions=\u64cd\u4f5c
-label.action.take.snapshot.processing=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059....
-label.action.take.snapshot=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u4f5c\u6210
-label.action=\u64cd\u4f5c
-label.action.unmanage.cluster.processing=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u975e\u7ba1\u7406\u5bfe\u8c61\u306b\u3057\u3066\u3044\u307e\u3059...
-label.action.unmanage.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u975e\u7ba1\u7406\u5bfe\u8c61\u5316
-label.action.update.OS.preference=OS \u57fa\u672c\u8a2d\u5b9a\u306e\u66f4\u65b0
-label.action.update.OS.preference.processing=OS \u57fa\u672c\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u3066\u3044\u307e\u3059...
-label.action.update.resource.count.processing=\u30ea\u30bd\u30fc\u30b9\u6570\u3092\u66f4\u65b0\u3057\u3066\u3044\u307e\u3059...
-label.action.update.resource.count=\u30ea\u30bd\u30fc\u30b9\u6570\u306e\u66f4\u65b0
-label.action.vmsnapshot.create=VM \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u4f5c\u6210
-label.action.vmsnapshot.delete=VM \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u524a\u9664
-label.action.vmsnapshot.revert=VM \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306b\u623b\u3059
-label.activate.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u5316
-label.active.sessions=\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30bb\u30c3\u30b7\u30e7\u30f3
-label.add.accounts.to=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0\u5148\:
-label.add.accounts=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0
-label.add.account.to.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0
-label.add.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0
-label.add.ACL=ACL \u306e\u8ffd\u52a0
-label.add.acl.list=ACL \u4e00\u89a7\u306e\u8ffd\u52a0
-label.add.affinity.group=\u65b0\u3057\u3044\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u8ffd\u52a0
-label.add.baremetal.dhcp.device=\u30d9\u30a2\u30e1\u30bf\u30eb DHCP \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
-label.add.baremetal.rack.configuration=\u30d9\u30a2\u30e1\u30bf\u30eb\u30e9\u30c3\u30af\u8a2d\u5b9a\u306e\u8ffd\u52a0
-label.add.BigSwitchBcf.device=BigSwitch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u306e\u8ffd\u52a0
-label.add.BrocadeVcs.device=Brocade VCS \u30b9\u30a4\u30c3\u30c1\u306e\u8ffd\u52a0
-label.add.by.cidr=CIDR \u3067\u8ffd\u52a0
-label.add.by.group=\u30b0\u30eb\u30fc\u30d7\u3067\u8ffd\u52a0
-label.add.by=\u8ffd\u52a0\u5358\u4f4d
-label.add.ciscoASA1000v=Cisco ASA 1000V \u30ea\u30bd\u30fc\u30b9\u306e\u8ffd\u52a0
-label.add.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u8ffd\u52a0
-label.add.compute.offering=\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8ffd\u52a0
-label.add.direct.iprange=\u76f4\u63a5 IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u8ffd\u52a0
-label.add.disk.offering=\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8ffd\u52a0
-label.add.domain=\u30c9\u30e1\u30a4\u30f3\u306e\u8ffd\u52a0
-label.added.brocade.vcs.switch=\u65b0\u3057\u3044 Brocade VCS \u30b9\u30a4\u30c3\u30c1\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
-label.added.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
-label.added.new.bigswitch.bcf.controller=\u65b0\u3057\u3044 BigSwitch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
-label.added.nicira.nvp.controller=\u65b0\u3057\u3044 Nicira NVP Controller \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
-label.add.egress.rule=\u9001\u4fe1\u898f\u5247\u306e\u8ffd\u52a0
-label.addes.new.f5=\u65b0\u3057\u3044 F5 \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
-label.add.F5.device=F5 \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
-label.add.firewall=\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u898f\u5247\u306e\u8ffd\u52a0
-label.add.globo.dns=GloboDNS \u306e\u8ffd\u52a0
-label.add.gslb=GSLB \u306e\u8ffd\u52a0
-label.add.guest.network=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8ffd\u52a0
-label.add.host=\u30db\u30b9\u30c8\u306e\u8ffd\u52a0
-label.adding.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-label.adding.failed=\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
-label.adding.pod=\u30dd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-label.adding.processing=\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059...
-label.add.ingress.rule=\u53d7\u4fe1\u898f\u5247\u306e\u8ffd\u52a0
-label.adding.succeeded=\u8ffd\u52a0\u3057\u307e\u3057\u305f
-label.adding=\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-label.adding.user=\u30e6\u30fc\u30b6\u30fc\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-label.adding.zone=\u30be\u30fc\u30f3\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-label.add.intermediate.certificate=\u4e2d\u9593\u8a3c\u660e\u66f8\u306e\u8ffd\u52a0
-label.add.internal.lb=\u5185\u90e8 LB \u306e\u8ffd\u52a0
-label.add.ip.range=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u8ffd\u52a0
-label.add.isolated.guest.network=\u5206\u96e2\u30b2\u30b9\u30c8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8ffd\u52a0
-label.add.isolated.guest.network.with.sourcenat=\u5206\u96e2\u30b2\u30b9\u30c8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af(\u9001\u4fe1\u5143NAT)\u306e\u8ffd\u52a0
-label.add.isolated.network=\u5206\u96e2\u3055\u308c\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8ffd\u52a0
-label.additional.networks=\u8ffd\u52a0\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.add.ldap.account=LDAP \u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0
-label.add.LDAP.account=LDAP \u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0
-label.add.list.name=ACL \u4e00\u89a7\u540d
-label.add.load.balancer=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u306e\u8ffd\u52a0
-label.add.more=\u305d\u306e\u307b\u304b\u306e\u9805\u76ee\u306e\u8ffd\u52a0
-label.add.netScaler.device=NetScaler \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
-label.add.network.acl.list=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ACL \u4e00\u89a7\u306e\u8ffd\u52a0
-label.add.network.ACL=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ACL \u306e\u8ffd\u52a0
-label.add.network.device=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
-label.add.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8ffd\u52a0
-label.add.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8ffd\u52a0
-label.add.new.F5=\u65b0\u3057\u3044 F5 \u306e\u8ffd\u52a0
-label.add.new.gateway=\u65b0\u3057\u3044\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u8ffd\u52a0
-label.add.new.NetScaler=\u65b0\u3057\u3044 NetScaler \u306e\u8ffd\u52a0
-label.add.new.PA=\u65b0\u3057\u3044 Palo Alto \u306e\u8ffd\u52a0
-label.add.new.SRX=\u65b0\u3057\u3044 SRX \u306e\u8ffd\u52a0
-label.add.new.tier=\u65b0\u3057\u3044\u968e\u5c64\u306e\u8ffd\u52a0
-label.add.nfs.secondary.staging.store=NFS \u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c6\u30fc\u30b8\u30f3\u30b0 \u30b9\u30c8\u30a2\u306e\u8ffd\u52a0
-label.add.NiciraNvp.device=NVP Controller \u306e\u8ffd\u52a0
-label.add.NuageVsp.device=Nuage Virtualized Services Directory (VSD) \u306e\u8ffd\u52a0
-label.add.OpenDaylight.device=OpenDaylight \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u8ffd\u52a0
-label.add.PA.device=Palo Alto \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
-label.add.physical.network=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8ffd\u52a0
-label.add.pod=\u30dd\u30c3\u30c9\u306e\u8ffd\u52a0
-label.add.portable.ip.range=\u30dd\u30fc\u30bf\u30d6\u30eb IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u8ffd\u52a0
-label.add.port.forwarding.rule=\u30dd\u30fc\u30c8\u8ee2\u9001\u898f\u5247\u306e\u8ffd\u52a0
-label.add.primary.storage=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u8ffd\u52a0
-label.add.private.gateway=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u8ffd\u52a0
-label.add.region=\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u8ffd\u52a0
-label.add.resources=\u30ea\u30bd\u30fc\u30b9\u306e\u8ffd\u52a0
-label.add.route=\u30eb\u30fc\u30c8\u306e\u8ffd\u52a0
-label.add.rule=\u898f\u5247\u306e\u8ffd\u52a0
-label.add.secondary.storage=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u8ffd\u52a0
-label.add.security.group=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u8ffd\u52a0
-label.add.service.offering=\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8ffd\u52a0
-label.add.SRX.device=SRX \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
-label.add.static.nat.rule=\u9759\u7684 NAT \u898f\u5247\u306e\u8ffd\u52a0
-label.add.static.route=\u9759\u7684\u30eb\u30fc\u30c8\u306e\u8ffd\u52a0
-label.add.system.service.offering=\u30b7\u30b9\u30c6\u30e0 \u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8ffd\u52a0
-label.add.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u8ffd\u52a0
-label.add.to.group=\u8ffd\u52a0\u5148\u30b0\u30eb\u30fc\u30d7
-label.add=\u8ffd\u52a0
-label.add.ucs.manager=UCS Manager \u306e\u8ffd\u52a0
-label.add.userdata=\u30e6\u30fc\u30b6\u30fc\u30c7\u30fc\u30bf
-label.add.user=\u30e6\u30fc\u30b6\u30fc\u306e\u8ffd\u52a0
-label.add.vlan=VLAN \u306e\u8ffd\u52a0
-label.add.vms.to.lb=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u898f\u5247\u3078\u306e VM \u306e\u8ffd\u52a0
-label.add.vms=VM \u306e\u8ffd\u52a0
-label.add.VM.to.tier=\u968e\u5c64\u3078\u306e VM \u306e\u8ffd\u52a0
-label.add.vm=VM \u306e\u8ffd\u52a0
-label.add.vmware.datacenter=VMware \u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u306e\u8ffd\u52a0
-label.add.vnmc.device=VNMC \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
-label.add.vnmc.provider=VNMC \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u8ffd\u52a0
-label.add.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u8ffd\u52a0
-label.add.vpc.offering=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8ffd\u52a0
-label.add.vpc=VPC \u306e\u8ffd\u52a0
-label.add.vpn.customer.gateway=VPN \u30ab\u30b9\u30bf\u30de\u30fc \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u8ffd\u52a0
-label.add.VPN.gateway=VPN \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u8ffd\u52a0
-label.add.vpn.user=VPN \u30e6\u30fc\u30b6\u30fc\u306e\u8ffd\u52a0
-label.add.vxlan=VXLAN \u306e\u8ffd\u52a0
-label.add.zone=\u30be\u30fc\u30f3\u306e\u8ffd\u52a0
-label.admin.accounts=\u7ba1\u7406\u8005\u30a2\u30ab\u30a6\u30f3\u30c8
-label.admin=\u7ba1\u7406\u8005
-label.advanced.mode=\u62e1\u5f35\u30e2\u30fc\u30c9
-label.advanced.search=\u9ad8\u5ea6\u306a\u691c\u7d22
-label.advanced=\u62e1\u5f35
-label.affinity.groups=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.affinity.group=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.affinity=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3
-label.agent.password=\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8 \u30d1\u30b9\u30ef\u30fc\u30c9
-label.agent.port=\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30dd\u30fc\u30c8
-label.agent.state=\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u72b6\u614b
-label.agent.username=\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8 \u30e6\u30fc\u30b6\u30fc\u540d
-label.agree=\u540c\u610f\u3059\u308b
-label.alert.archived=\u30a2\u30e9\u30fc\u30c8\u304c\u30a2\u30fc\u30ab\u30a4\u30d6\u3055\u308c\u307e\u3057\u305f
-label.alert.deleted=\u30a2\u30e9\u30fc\u30c8\u304c\u524a\u9664\u3055\u308c\u307e\u3057\u305f
-label.alert.details=\u30a2\u30e9\u30fc\u30c8\u306e\u8a73\u7d30
-label.alert=\u30a2\u30e9\u30fc\u30c8
-label.algorithm=\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0
-label.allocated=\u5272\u308a\u5f53\u3066\u6e08\u307f
-label.allocation.state=\u5272\u308a\u5f53\u3066\u72b6\u614b
-label.allow=\u8a31\u53ef
-label.anti.affinity.groups=\u30a2\u30f3\u30c1\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.anti.affinity.group=\u30a2\u30f3\u30c1\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.anti.affinity=\u30a2\u30f3\u30c1\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3
-label.api.key=API \u30ad\u30fc
-label.api.version=API \u30d0\u30fc\u30b8\u30e7\u30f3
-label.apply=\u9069\u7528
-label.app.name=CloudStack
-label.archive.alerts=\u30a2\u30e9\u30fc\u30c8\u306e\u30a2\u30fc\u30ab\u30a4\u30d6
-label.archive.events=\u30a4\u30d9\u30f3\u30c8\u306e\u30a2\u30fc\u30ab\u30a4\u30d6
-label.archive=\u30a2\u30fc\u30ab\u30a4\u30d6
-label.assigned.vms=\u5272\u308a\u5f53\u3066\u6e08\u307f VM
-label.assign.instance.another=\u307b\u304b\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3078\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u5272\u308a\u5f53\u3066
-label.assign.to.load.balancer=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u5272\u308a\u5f53\u3066\u3066\u3044\u307e\u3059
-label.assign=\u5272\u308a\u5f53\u3066
-label.assign.vms=\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u5272\u308a\u5f53\u3066
-label.associated.network.id=\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ID
-label.associated.network=\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.associated.profile=\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
-label.associate.public.ip=\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u306e\u95a2\u9023\u4ed8\u3051
-label.attached.iso=\u30a2\u30bf\u30c3\u30c1\u3055\u308c\u305f ISO
-label.author.email=\u4f5c\u6210\u8005\u306e\u96fb\u5b50\u30e1\u30fc\u30eb
-label.author.name=\u4f5c\u6210\u8005\u306e\u540d\u524d
-label.autoscale.configuration.wizard=\u30aa\u30fc\u30c8\u30b9\u30b1\u30fc\u30eb\u8a2d\u5b9a\u30a6\u30a3\u30b6\u30fc\u30c9
-label.autoscale=\u81ea\u52d5\u30b5\u30a4\u30ba\u8a2d\u5b9a
-label.availability=\u53ef\u7528\u6027
-label.availability.zone=\u30a2\u30d9\u30a4\u30e9\u30d3\u30ea\u30c6\u30a3 \u30be\u30fc\u30f3
-label.availabilityZone=\u30a2\u30d9\u30a4\u30e9\u30d3\u30ea\u30c6\u30a3\u30be\u30fc\u30f3
-label.available.public.ips=\u4f7f\u7528\u3067\u304d\u308b\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9
-label.available=\u4f7f\u7528\u53ef\u80fd
-label.back=\u623b\u308b
-label.bandwidth=\u5e2f\u57df\u5e45
-label.baremetal.dhcp.devices=\u30d9\u30a2\u30e1\u30bf\u30eb DHCP \u30c7\u30d0\u30a4\u30b9
-label.baremetal.dhcp.provider=\u30d9\u30a2\u30e1\u30bf\u30eb DHCP \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc
-label.baremetal.pxe.devices=\u30d9\u30a2\u30e1\u30bf\u30eb PXE \u30c7\u30d0\u30a4\u30b9
-label.baremetal.pxe.device=\u30d9\u30a2\u30e1\u30bf\u30eb PXE \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
-label.baremetal.pxe.provider=\u30d9\u30a2\u30e1\u30bf\u30eb PXE \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc
-label.baremetal.rack.configuration=\u30d9\u30a2\u30e1\u30bf\u30eb\u30e9\u30c3\u30af\u8a2d\u5b9a
-label.basic.mode=\u57fa\u672c\u30e2\u30fc\u30c9
-label.basic=\u57fa\u672c
-label.bigswitch.bcf.details=BigSwitch BCF \u306e\u8a73\u7d30
-label.bigswitch.bcf.nat=BigSwitch BCF \u306e NAT \u3092\u6709\u52b9\u5316\u3057\u307e\u3057\u305f
-label.bigswitch.controller.address=BigSwitch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u306e\u30a2\u30c9\u30ec\u30b9
-label.blade.id=\u30d6\u30ec\u30fc\u30c9 ID
-label.blades=\u30d6\u30ec\u30fc\u30c9
-label.bootable=\u8d77\u52d5\u53ef\u80fd
-label.broadcast.domain.range=\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8 \u30c9\u30e1\u30a4\u30f3\u306e\u7bc4\u56f2
-label.broadcast.domain.type=\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8 \u30c9\u30e1\u30a4\u30f3\u306e\u7a2e\u985e
-label.broadcast.uri=\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8 URI
-label.broadcasturi=\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8 URI
-label.broadcat.uri=\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8 URI
-label.brocade.vcs.address=VCS \u30b9\u30a4\u30c3\u30c1 \u30a2\u30c9\u30ec\u30b9
-label.brocade.vcs.details=Brocade VCS \u30b9\u30a4\u30c3\u30c1\u306e\u8a73\u7d30
-label.by.account=\u30a2\u30ab\u30a6\u30f3\u30c8
-label.by.alert.type=\u30a2\u30e9\u30fc\u30c8\u306e\u7a2e\u985e
-label.by.availability=\u53ef\u7528\u6027
-label.by.date.end=\u65e5\u4ed8 (\u7d42\u4e86)
-label.by.date.start=\u65e5\u4ed8 (\u958b\u59cb)
-label.by.domain=\u30c9\u30e1\u30a4\u30f3
-label.by.end.date=\u7d42\u4e86\u65e5
-label.by.event.type=\u30a4\u30d9\u30f3\u30c8\u306e\u7a2e\u985e
-label.by.level=\u30ec\u30d9\u30eb
-label.by.pod=\u30dd\u30c3\u30c9
-label.by.role=\u5f79\u5272
-label.by.start.date=\u958b\u59cb\u65e5
-label.by.state=\u72b6\u614b
-label.bytes.received=\u53d7\u4fe1\u30d0\u30a4\u30c8
-label.bytes.sent=\u9001\u4fe1\u30d0\u30a4\u30c8
-label.by.traffic.type=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e
-label.by.type.id=\u7a2e\u985e ID
-label.by.type=\u7a2e\u985e
-label.by.zone=\u30be\u30fc\u30f3
-label.cache.mode=\u66f8\u304d\u8fbc\u307f\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u7a2e\u985e
-label.cancel=\u30ad\u30e3\u30f3\u30bb\u30eb
-label.capacity.bytes=\u51e6\u7406\u80fd\u529b (\u30d0\u30a4\u30c8)
-label.capacity.iops=\u51e6\u7406\u80fd\u529b (IOPS)
-label.capacity=\u51e6\u7406\u80fd\u529b
-label.certificate=\u30b5\u30fc\u30d0\u30fc\u8a3c\u660e\u66f8
-label.change.affinity=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3\u306e\u5909\u66f4
-label.change.ipaddress=NIC \u306e IP \u30a2\u30c9\u30ec\u30b9\u3092\u5909\u66f4
-label.change.service.offering=\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u5909\u66f4
-label.change.value=\u5024\u306e\u5909\u66f4
-label.character=\u6587\u5b57
-label.chassis=\u30b7\u30e3\u30fc\u30b7
-label.checksum=\u30c1\u30a7\u30c3\u30af\u30b5\u30e0
-label.cidr.account=CIDR \u307e\u305f\u306f\u30a2\u30ab\u30a6\u30f3\u30c8/\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.cidr=CIDR
-label.CIDR.list=CIDR \u4e00\u89a7
-label.cidr.list=\u9001\u4fe1\u5143 CIDR
-label.CIDR.of.destination.network=\u5b9b\u5148\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e CIDR
-label.cisco.nexus1000v.ip.address=Nexus 1000V \u306e IP \u30a2\u30c9\u30ec\u30b9
-label.cisco.nexus1000v.password=Nexus 1000V \u306e\u30d1\u30b9\u30ef\u30fc\u30c9
-label.cisco.nexus1000v.username=Nexus 1000V \u306e\u30e6\u30fc\u30b6\u30fc\u540d
-label.ciscovnmc.resource.details=Cisco VNMC \u30ea\u30bd\u30fc\u30b9\u306e\u8a73\u7d30
-label.clean.up=\u30af\u30ea\u30fc\u30f3 \u30a2\u30c3\u30d7\u3059\u308b
-label.clear.list=\u4e00\u89a7\u306e\u6d88\u53bb
-label.close=\u9589\u3058\u308b
-label.cloud.console=\u30af\u30e9\u30a6\u30c9\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb
-label.cloud.managed=Cloud.com \u306b\u3088\u308b\u7ba1\u7406
-label.cluster.name=\u30af\u30e9\u30b9\u30bf\u30fc\u540d
-label.clusters=\u30af\u30e9\u30b9\u30bf\u30fc
-label.cluster.type=\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u7a2e\u985e
-label.cluster=\u30af\u30e9\u30b9\u30bf\u30fc
-label.clvm=CLVM
-label.code=\u30b3\u30fc\u30c9
-label.community=\u30b3\u30df\u30e5\u30cb\u30c6\u30a3
-label.compute.and.storage=\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u3068\u30b9\u30c8\u30ec\u30fc\u30b8
-label.compute.offerings=\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.compute.offering=\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.compute=\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0
-label.configuration=\u69cb\u6210
-label.configure.ldap=LDAP \u306e\u69cb\u6210
-label.configure.network.ACLs=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ACL \u306e\u69cb\u6210
-label.configure.sticky.policy=\u30b9\u30c6\u30a3\u30c3\u30ad\u30fc\u30dd\u30ea\u30b7\u30fc\u306e\u8a2d\u5b9a
-label.configure=\u69cb\u6210
-label.configure.vpc=VPC \u306e\u69cb\u6210
-label.confirmation=\u78ba\u8a8d
-label.confirm.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u78ba\u8a8d\u5165\u529b
-label.congratulations=\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u306f\u3053\u308c\u3067\u5b8c\u4e86\u3067\u3059\u3002
-label.conserve.mode=\u7bc0\u7d04\u30e2\u30fc\u30c9
-label.console.proxy=\u30b3\u30f3\u30bd\u30fc\u30eb \u30d7\u30ed\u30ad\u30b7
-label.console.proxy.vm=\u30b3\u30f3\u30bd\u30fc\u30eb \u30d7\u30ed\u30ad\u30b7 VM
-label.continue.basic.install=\u57fa\u672c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u7d9a\u884c\u3059\u308b
-label.continue=\u7d9a\u884c
-label.copying.iso=ISO \u3092\u30b3\u30d4\u30fc\u3057\u3066\u3044\u307e\u3059
-label.corrections.saved=\u63a5\u7d9a\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3057\u305f
-label.counter=\u30ab\u30a6\u30f3\u30bf\u30fc
-label.cpu.allocated.for.VMs=VM \u306b\u5272\u308a\u5f53\u3066\u6e08\u307f\u306e CPU
-label.cpu.allocated=\u5272\u308a\u5f53\u3066\u6e08\u307f\u306e CPU
-label.CPU.cap=CPU \u30ad\u30e3\u30c3\u30d7
-label.cpu=CPU
-label.cpu.limits=CPU \u5236\u9650
-label.cpu.mhz=CPU (MHz)
-label.cpu.utilized=CPU \u4f7f\u7528\u7387
-label.created.by.system=\u30b7\u30b9\u30c6\u30e0\u4f5c\u6210
-label.created=\u4f5c\u6210\u65e5\u6642
-label.create.nfs.secondary.staging.storage=NFS \u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c6\u30fc\u30b8\u30f3\u30b0 \u30b9\u30c8\u30a2\u3092\u4f5c\u6210\u3059\u308b
-label.create.nfs.secondary.staging.store=NFS \u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c6\u30fc\u30b8\u30f3\u30b0 \u30b9\u30c8\u30a2\u3092\u4f5c\u6210\u3059\u308b
-label.create.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210
-label.create.ssh.key.pair=SSH \u306e\u30ad\u30fc\u30da\u30a2\u3092\u4f5c\u6210
-label.create.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u4f5c\u6210
-label.create.VPN.connection=VPN \u63a5\u7d9a\u306e\u4f5c\u6210
-label.cross.zones=\u30af\u30ed\u30b9 \u30be\u30fc\u30f3
-label.custom.disk.iops=\u30ab\u30b9\u30bf\u30e0 IOPS
-label.custom.disk.offering=\u30ab\u30b9\u30bf\u30e0\u30c7\u30a3\u30b9\u30af\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.custom.disk.size=\u30ab\u30b9\u30bf\u30e0 \u30c7\u30a3\u30b9\u30af \u30b5\u30a4\u30ba
-label.custom=\u30ab\u30b9\u30bf\u30e0
-label.daily=\u6bce\u65e5
-label.data.disk.offering=\u30c7\u30fc\u30bf \u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.date=\u65e5\u6642
-label.day.of.month=\u6bce\u6708\u6307\u5b9a\u65e5
-label.day.of.week=\u6bce\u9031\u6307\u5b9a\u65e5
-label.day=\u65e5
-label.dc.name=DC \u540d
-label.dead.peer.detection=\u505c\u6b62\u30d4\u30a2\u3092\u691c\u51fa\u3059\u308b
-label.decline.invitation=\u62db\u5f85\u306e\u8f9e\u9000
-label.dedicate.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u5c02\u7528\u306b\u8a2d\u5b9a
-label.dedicated=\u5c02\u7528
-label.dedicated.vlan.vni.ranges=\u5c02\u7528 VLAN/VNI \u306e\u7bc4\u56f2
-label.dedicate.host=\u30db\u30b9\u30c8\u3092\u5c02\u7528\u306b\u8a2d\u5b9a
-label.dedicate.pod=\u30dd\u30c3\u30c9\u3092\u5c02\u7528\u306b\u8a2d\u5b9a
-label.dedicate=\u5c02\u7528\u306b\u8a2d\u5b9a
-label.dedicate.vlan.vni.range=VLAN/VNI \u306e\u7bc4\u56f2\u3092\u5c02\u7528\u306b\u8a2d\u5b9a
-label.dedicate.zone=\u30be\u30fc\u30f3\u3092\u5c02\u7528\u306b\u8a2d\u5b9a
-label.default.egress.policy=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u9001\u4fe1\u30dd\u30ea\u30b7\u30fc
-label.default=\u30c7\u30d5\u30a9\u30eb\u30c8
-label.default.use=\u30c7\u30d5\u30a9\u30eb\u30c8\u4f7f\u7528
-label.default.view=\u30c7\u30d5\u30a9\u30eb\u30c8 \u30d3\u30e5\u30fc
-label.delete.acl.list=ACL \u4e00\u89a7\u306e\u524a\u9664
-label.delete.affinity.group=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u524a\u9664
-label.delete.alerts=\u30a2\u30e9\u30fc\u30c8\u306e\u524a\u9664
-label.delete.baremetal.rack.configuration=\u30d9\u30a2\u30e1\u30bf\u30eb\u30e9\u30c3\u30af\u8a2d\u5b9a\u306e\u524a\u9664
-label.delete.BigSwitchBcf=BigSwitch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u306e\u524a\u9664
-label.delete.BrocadeVcs=Brocade VCS \u30b9\u30a4\u30c3\u30c1\u306e\u524a\u9664
-label.delete.ciscoASA1000v=Cisco ASA 1000V \u30ea\u30bd\u30fc\u30b9\u306e\u524a\u9664
-label.delete.ciscovnmc.resource=Cisco VNMC \u30ea\u30bd\u30fc\u30b9\u306e\u524a\u9664
-label.delete.events=\u30a4\u30d9\u30f3\u30c8\u306e\u524a\u9664
-label.delete.F5=F5 \u306e\u524a\u9664
-label.delete.gateway=\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u524a\u9664
-label.delete.internal.lb=\u5185\u90e8 LB \u306e\u524a\u9664
-label.delete.NetScaler=NetScaler \u306e\u524a\u9664
-label.delete.NiciraNvp=NVP Controller \u306e\u524a\u9664
-label.delete.NuageVsp=Nuage VSD \u306e\u524a\u9664
-label.delete.OpenDaylight.device=OpenDaylight \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u524a\u9664
-label.delete.PA=Palo Alto \u306e\u524a\u9664
-label.delete.portable.ip.range=\u30dd\u30fc\u30bf\u30d6\u30eb IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u524a\u9664
-label.delete.profile=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u524a\u9664
-label.delete.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u524a\u9664
-label.delete.secondary.staging.store=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c6\u30fc\u30b8\u30f3\u30b0 \u30b9\u30c8\u30a2\u306e\u524a\u9664
-label.delete.SRX=SRX \u306e\u524a\u9664
-label.delete=\u524a\u9664
-label.delete.ucs.manager=UCS Manager \u306e\u524a\u9664
-label.delete.VPN.connection=VPN \u63a5\u7d9a\u306e\u524a\u9664
-label.delete.VPN.customer.gateway=VPN \u30ab\u30b9\u30bf\u30de\u30fc \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u524a\u9664
-label.delete.VPN.gateway=VPN \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u524a\u9664
-label.delete.vpn.user=VPN \u30e6\u30fc\u30b6\u30fc\u306e\u524a\u9664
-label.deleting.failed=\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
-label.deleting.processing=\u524a\u9664\u3057\u3066\u3044\u307e\u3059...
-label.deny=\u62d2\u5426
-label.deployment.planner=\u5c55\u958b\u30d7\u30e9\u30f3\u30ca\u30fc
-label.description=\u8aac\u660e
-label.destination.physical.network.id=\u30d6\u30ea\u30c3\u30b8\u5148\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ID
-label.destination.zone=\u30b3\u30d4\u30fc\u5148\u30be\u30fc\u30f3
-label.destroy.router=\u30eb\u30fc\u30bf\u30fc\u306e\u7834\u68c4
-label.destroy=\u7834\u68c4
-label.destroy.vm.graceperiod=VM \u7834\u68c4\u306e\u7336\u4e88\u671f\u9593
-label.detaching.disk=\u30c7\u30a3\u30b9\u30af\u3092\u30c7\u30bf\u30c3\u30c1\u3057\u3066\u3044\u307e\u3059
-label.details=\u8a73\u7d30
-label.device.id=\u30c7\u30d0\u30a4\u30b9 ID
-label.devices=\u30c7\u30d0\u30a4\u30b9
-label.dhcp=DHCP
-label.DHCP.server.type=DHCP \u30b5\u30fc\u30d0\u30fc\u306e\u7a2e\u985e
-label.direct.attached.public.ip=\u76f4\u63a5\u30a2\u30bf\u30c3\u30c1\u3055\u308c\u3066\u3044\u308b\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9
-label.direct.ips=\u5171\u6709\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e IP \u30a2\u30c9\u30ec\u30b9
-label.disable.autoscale=\u81ea\u52d5\u30b5\u30a4\u30ba\u8a2d\u5b9a\u306e\u7121\u52b9\u5316
-label.disabled=\u7121\u52b9
-label.disable.host=\u30db\u30b9\u30c8\u306e\u7121\u52b9\u5316
-label.disable.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u7121\u52b9\u5316
-label.disable.provider=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u7121\u52b9\u5316
-label.disable.vnmc.provider=VNMC \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u7121\u52b9\u5316
-label.disable.vpc.offering=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u7121\u52b9\u5316
-label.disable.vpn=\u30ea\u30e2\u30fc\u30c8 \u30a2\u30af\u30bb\u30b9 VPN \u306e\u7121\u52b9\u5316
-label.disabling.vpn.access=VPN \u30a2\u30af\u30bb\u30b9\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-label.disassociate.profile.blade=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068\u30d6\u30ec\u30fc\u30c9\u306e\u95a2\u9023\u4ed8\u3051\u306e\u89e3\u9664
-label.disbale.vnmc.device=VNMC \u30c7\u30d0\u30a4\u30b9\u306e\u7121\u52b9\u5316
-label.disk.allocated=\u5272\u308a\u5f53\u3066\u6e08\u307f\u306e\u30c7\u30a3\u30b9\u30af
-label.disk.bytes.read.rate=\u30c7\u30a3\u30b9\u30af\u8aad\u307f\u53d6\u308a\u901f\u5ea6 (BPS)
-label.disk.bytes.write.rate=\u30c7\u30a3\u30b9\u30af\u66f8\u304d\u8fbc\u307f\u901f\u5ea6 (BPS)
-label.disk.iops.max=\u6700\u5927 IOPS
-label.disk.iops.min=\u6700\u5c0f IOPS
-label.disk.iops.read.rate=\u30c7\u30a3\u30b9\u30af\u8aad\u307f\u53d6\u308a\u901f\u5ea6 (IOPS)
-label.disk.iops.total=IOPS \u5408\u8a08
-label.disk.iops.write.rate=\u30c7\u30a3\u30b9\u30af\u66f8\u304d\u8fbc\u307f\u901f\u5ea6 (IOPS)
-label.disk.offering.details=\u30c7\u30a3\u30b9\u30af\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8a73\u7d30
-label.disk.offering=\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.diskoffering=\u30c7\u30a3\u30b9\u30af\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.disk.provisioningtype=\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0\u306e\u7a2e\u985e
-label.disk.read.bytes=\u30c7\u30a3\u30b9\u30af\u8aad\u307f\u53d6\u308a (\u30d0\u30a4\u30c8)
-label.disk.read.io=\u30c7\u30a3\u30b9\u30af\u8aad\u307f\u53d6\u308a (IO)
-label.disk.size.gb=\u30c7\u30a3\u30b9\u30af \u30b5\u30a4\u30ba (GB)
-label.disk.size=\u30c7\u30a3\u30b9\u30af \u30b5\u30a4\u30ba
-label.disk.total=\u30c7\u30a3\u30b9\u30af\u5408\u8a08
-label.disk.volume=\u30c7\u30a3\u30b9\u30af \u30dc\u30ea\u30e5\u30fc\u30e0
-label.disk.write.bytes=\u30c7\u30a3\u30b9\u30af\u66f8\u304d\u8fbc\u307f (\u30d0\u30a4\u30c8)
-label.disk.write.io=\u30c7\u30a3\u30b9\u30af\u66f8\u304d\u8fbc\u307f (IO)
-label.display.name=\u8868\u793a\u540d
-label.display.text=\u8868\u793a\u30c6\u30ad\u30b9\u30c8
-label.distributedrouter=\u5206\u6563\u30eb\u30fc\u30bf\u30fc
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e DNS \u30c9\u30e1\u30a4\u30f3
-label.domain.admin=\u30c9\u30e1\u30a4\u30f3\u7ba1\u7406\u8005
-label.domain.details=\u30c9\u30e1\u30a4\u30f3\u306e\u8a73\u7d30
-label.domain.id=\u30c9\u30e1\u30a4\u30f3 ID
-label.domain.lower=\u30c9\u30e1\u30a4\u30f3
-label.domain.name=\u30c9\u30e1\u30a4\u30f3\u540d
-label.domain.router=\u30c9\u30e1\u30a4\u30f3 \u30eb\u30fc\u30bf\u30fc
-label.domain.suffix=DNS \u30c9\u30e1\u30a4\u30f3 \u30b5\u30d5\u30a3\u30c3\u30af\u30b9 (\u4f8b\: xyz.com)
-label.domain=\u30c9\u30e1\u30a4\u30f3
-label.done=\u5b8c\u4e86
-label.double.quotes.are.not.allowed=\u4e8c\u91cd\u5f15\u7528\u7b26\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
-label.download.progress=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306e\u9032\u6357\u72b6\u6cc1
-label.drag.new.position=\u65b0\u3057\u3044\u4f4d\u7f6e\u306b\u30c9\u30e9\u30c3\u30b0
-label.duration.in.sec=\u6301\u7d9a\u6642\u9593(\u79d2)
-label.dynamically.scalable=\u52d5\u7684\u306b\u30b5\u30a4\u30ba\u8a2d\u5b9a\u3059\u308b
-label.edit.acl.rule=ACL \u898f\u5247\u306e\u7de8\u96c6
-label.edit.affinity.group=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u7de8\u96c6
-label.edit.lb.rule=LB \u898f\u5247\u306e\u7de8\u96c6
-label.edit.network.details=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8a73\u7d30\u306e\u7de8\u96c6
-label.edit.project.details=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8a73\u7d30\u306e\u7de8\u96c6
-label.edit.region=\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u7de8\u96c6
-label.edit.rule=\u30eb\u30fc\u30eb\u306e\u7de8\u96c6
-label.edit.secondary.ips=\u30bb\u30ab\u30f3\u30c0\u30ea IP \u306e\u7de8\u96c6
-label.edit.tags=\u30bf\u30b0\u306e\u7de8\u96c6
-label.edit.traffic.type=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e\u306e\u7de8\u96c6
-label.edit=\u7de8\u96c6
-label.edit.vpc=VPC \u306e\u7de8\u96c6
-label.egress.default.policy=\u9001\u4fe1\u306e\u30c7\u30d5\u30a9\u30eb\u30c8 \u30dd\u30ea\u30b7\u30fc
-label.egress.rules=\u9001\u4fe1\u898f\u5247
-label.egress.rule=\u9001\u4fe1\u898f\u5247
-label.elastic.IP=\u30a8\u30e9\u30b9\u30c6\u30a3\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9
-label.elastic.LB=\u30a8\u30e9\u30b9\u30c6\u30a3\u30c3\u30af LB
-label.elastic=\u30a8\u30e9\u30b9\u30c6\u30a3\u30c3\u30af
-label.email.lower=\u96fb\u5b50\u30e1\u30fc\u30eb
-label.email=\u96fb\u5b50\u30e1\u30fc\u30eb
-label.enable.autoscale=\u81ea\u52d5\u30b5\u30a4\u30ba\u8a2d\u5b9a\u306e\u6709\u52b9\u5316
-label.enable.host=\u30db\u30b9\u30c8\u306e\u6709\u52b9\u5316
-label.enable.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u6709\u52b9\u5316
-label.enable.provider=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u6709\u52b9\u5316
-label.enable.s3=S3 \u30d9\u30fc\u30b9\u306e\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u6709\u52b9\u5316
-label.enable.swift=Swift \u306e\u6709\u52b9\u5316
-label.enable.vnmc.device=VNMC \u30c7\u30d0\u30a4\u30b9\u306e\u6709\u52b9\u5316
-label.enable.vnmc.provider=VNMC \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u6709\u52b9\u5316
-label.enable.vpc.offering=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u6709\u52b9\u5316
-label.enable.vpn=\u30ea\u30e2\u30fc\u30c8 \u30a2\u30af\u30bb\u30b9 VPN \u306e\u6709\u52b9\u5316
-label.enabling.vpn.access=VPN \u30a2\u30af\u30bb\u30b9\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-label.enabling.vpn=VPN \u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-label.end.IP=\u7d42\u4e86 IP \u30a2\u30c9\u30ec\u30b9
-label.endpoint.or.operation=\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u307e\u305f\u306f\u64cd\u4f5c
-label.endpoint=\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8
-label.end.port=\u7d42\u4e86\u30dd\u30fc\u30c8
-label.end.reserved.system.IP=\u4e88\u7d04\u6e08\u307f\u7d42\u4e86\u30b7\u30b9\u30c6\u30e0 IP \u30a2\u30c9\u30ec\u30b9
-label.end.vlan=\u7d42\u4e86 VLAN
-label.end.vxlan=\u7d42\u4e86 VXLAN
-label.enter.token=\u30c8\u30fc\u30af\u30f3\u306e\u5165\u529b
-label.error.code=\u30a8\u30e9\u30fc \u30b3\u30fc\u30c9
-label.error=\u30a8\u30e9\u30fc
-label.error.upper=\u30a8\u30e9\u30fc
-label.ESP.encryption=ESP \u6697\u53f7\u5316
-label.ESP.hash=ESP \u30cf\u30c3\u30b7\u30e5
-label.ESP.lifetime=ESP \u6709\u52b9\u671f\u9593 (\u79d2)
-label.ESP.policy=ESP \u30dd\u30ea\u30b7\u30fc
-label.esx.host=ESX/ESXi \u30db\u30b9\u30c8
-label.event.archived=\u30a4\u30d9\u30f3\u30c8\u304c\u30a2\u30fc\u30ab\u30a4\u30d6\u3055\u308c\u307e\u3057\u305f
-label.event.deleted=\u30a4\u30d9\u30f3\u30c8\u304c\u524a\u9664\u3055\u308c\u307e\u3057\u305f
-label.event=\u30a4\u30d9\u30f3\u30c8
-label.every=\u6bce
-label.example=\u4f8b
-label.expunge=\u62b9\u6d88
-label.external.link=\u5916\u90e8\u30ea\u30f3\u30af
-label.extractable.lower=\u5c55\u958b
-label.extractable=\u62bd\u51fa\u53ef\u80fd
-label.f5.details=F5 \u306e\u8a73\u7d30
-label.f5=F5
-label.failed=\u5931\u6557
-label.featured=\u304a\u3059\u3059\u3081
-label.fetch.latest=\u6700\u65b0\u60c5\u5831\u306e\u53d6\u5f97
-label.filterBy=\u30d5\u30a3\u30eb\u30bf\u30fc
-label.fingerprint=\u30d5\u30a3\u30f3\u30ac\u30fc\u30d7\u30ea\u30f3\u30c8
-label.firewall=\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb
-label.firstname.lower=\u540d
-label.first.name=\u540d
-label.format.lower=\u30d5\u30a9\u30fc\u30de\u30c3\u30c8
-label.format=\u5f62\u5f0f
-label.friday=\u91d1\u66dc\u65e5
-label.full.path=\u30d5\u30eb \u30d1\u30b9
-label.full=\u5b8c\u5168
-label.gateway=\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.general.alerts=\u4e00\u822c\u30a2\u30e9\u30fc\u30c8
-label.generating.url=URL \u3092\u751f\u6210\u3057\u3066\u3044\u307e\u3059
-label.globo.dns.configuration=GloboDNS \u306e\u8a2d\u5b9a
-label.globo.dns=GloboDNS
-label.gluster.volume=\u30dc\u30ea\u30e5\u30fc\u30e0
-label.go.step.2=\u624b\u9806 2 \u306b\u9032\u3080
-label.go.step.3=\u624b\u9806 3 \u306b\u9032\u3080
-label.go.step.4=\u624b\u9806 4 \u306b\u9032\u3080
-label.go.step.5=\u624b\u9806 5 \u306b\u9032\u3080
-label.gpu=GPU
-label.group.by.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u5225\u30b0\u30eb\u30fc\u30d7
-label.group.by.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u5225\u30b0\u30eb\u30fc\u30d7
-label.group.by.pod=\u30dd\u30c3\u30c9\u5225\u30b0\u30eb\u30fc\u30d7
-label.group.by.zone=\u30be\u30fc\u30f3\u5225\u30b0\u30eb\u30fc\u30d7
-label.group.optional=\u30b0\u30eb\u30fc\u30d7 (\u30aa\u30d7\u30b7\u30e7\u30f3)
-label.group=\u30b0\u30eb\u30fc\u30d7
-label.gslb.assigned.lb.more=\u8ca0\u8377\u5206\u6563\u306e\u8ffd\u52a0\u5272\u308a\u5f53\u3066
-label.gslb.assigned.lb=\u5272\u308a\u5f53\u3066\u6e08\u307f\u8ca0\u8377\u5206\u6563
-label.gslb.delete=GSLB \u306e\u524a\u9664
-label.gslb.details=GSLB \u306e\u8a73\u7d30
-label.gslb.domain.name=GSLB \u30c9\u30e1\u30a4\u30f3\u540d
-label.gslb=GSLB
-label.gslb.lb.details=\u8ca0\u8377\u5206\u6563\u306e\u8a73\u7d30
-label.gslb.lb.remove=\u3053\u306e GSLB \u304b\u3089\u8ca0\u8377\u5206\u6563\u3092\u524a\u9664
-label.gslb.lb.rule=\u8ca0\u8377\u5206\u6563\u898f\u5247
-label.gslb.service=GSLB \u30b5\u30fc\u30d3\u30b9
-label.gslb.service.private.ip=GSLB \u30b5\u30fc\u30d3\u30b9\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9
-label.gslb.service.public.ip=GSLB \u30b5\u30fc\u30d3\u30b9\u306e\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9
-label.gslb.servicetype=\u30b5\u30fc\u30d3\u30b9\u306e\u7a2e\u985e
-label.guest.cidr=\u30b2\u30b9\u30c8 CIDR
-label.guest.end.ip=\u30b2\u30b9\u30c8\u306e\u7d42\u4e86 IP \u30a2\u30c9\u30ec\u30b9
-label.guest.gateway=\u30b2\u30b9\u30c8 \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.guest.ip.range=\u30b2\u30b9\u30c8 IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2
-label.guest.ip=\u30b2\u30b9\u30c8 IP \u30a2\u30c9\u30ec\u30b9
-label.guest.netmask=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30de\u30b9\u30af
-label.guest.network.details=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8a73\u7d30
-label.guest.networks=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.guest.start.ip=\u30b2\u30b9\u30c8\u306e\u958b\u59cb IP \u30a2\u30c9\u30ec\u30b9
-label.guest.traffic=\u30b2\u30b9\u30c8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af
-label.guest.traffic.vswitch.name=\u30b2\u30b9\u30c8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e vSwitch \u540d
-label.guest.traffic.vswitch.type=\u30b2\u30b9\u30c8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e vSwitch \u306e\u7a2e\u985e
-label.guest.type=\u30b2\u30b9\u30c8\u306e\u7a2e\u985e
-label.guest=\u30b2\u30b9\u30c8
-label.ha.enabled=\u9ad8\u53ef\u7528\u6027\u6709\u52b9
-label.health.check.advanced.options=\u62e1\u5f35\u30aa\u30d7\u30b7\u30e7\u30f3\:
-label.health.check.configurations.options=\u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\:
-label.health.check.interval.in.sec=\u30d8\u30eb\u30b9 \u30c1\u30a7\u30c3\u30af\u9593\u9694 (\u79d2)
-label.health.check.message.desc=\u30ed\u30fc\u30c9\u30d0\u30e9\u30f3\u30b5\u30fc\u306f\u81ea\u52d5\u7684\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u3092\u884c\u3044\u3001\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3078\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306f\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u304c\u3055\u308c\u307e\u305b\u3093
-label.health.check=\u30d8\u30eb\u30b9 \u30c1\u30a7\u30c3\u30af
-label.health.check.wizard=\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af \u30a6\u30a3\u30b6\u30fc\u30c9
-label.healthy.threshold=\u6b63\u5e38\u3057\u304d\u3044\u5024
-label.help=\u30d8\u30eb\u30d7
-label.hide.ingress.rule=\u53d7\u4fe1\u898f\u5247\u3092\u96a0\u3059
-label.hints=\u30d2\u30f3\u30c8
-label.home=\u30db\u30fc\u30e0
-label.host.MAC=\u30db\u30b9\u30c8\u306e MAC
-label.host.name=\u30db\u30b9\u30c8\u540d
-label.hosts=\u30db\u30b9\u30c8
-label.host.tags=\u30db\u30b9\u30c8 \u30bf\u30b0
-label.host.tag=\u30db\u30b9\u30c8\u30bf\u30b0
-label.host=\u30db\u30b9\u30c8
-label.hourly=\u6bce\u6642
-label.hvm=HVM
-label.hypervisor.capabilities=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u306e\u6a5f\u80fd
-label.hypervisor.snapshot.reserve=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u4e88\u7d04
-label.hypervisors=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc
-label.hypervisor.type=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u306e\u7a2e\u985e
-label.hypervisor=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc
-label.hypervisor.version=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3
-label.hyperv.traffic.label=Hyper-V \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
-label.id=ID
-label.IKE.DH=IKE DH
-label.IKE.encryption=IKE \u6697\u53f7\u5316
-label.IKE.hash=IKE \u30cf\u30c3\u30b7\u30e5
-label.IKE.lifetime=IKE \u6709\u52b9\u671f\u9593 (\u79d2)
-label.IKE.policy=IKE \u30dd\u30ea\u30b7\u30fc
-label.info=\u60c5\u5831
-label.info.upper=\u60c5\u5831
-label.ingress.rule=\u53d7\u4fe1\u898f\u5247
-label.initiated.by=\u958b\u59cb\u30e6\u30fc\u30b6\u30fc
-label.inside.port.profile=\u5185\u90e8\u30dd\u30fc\u30c8 \u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
-label.installWizard.addClusterIntro.subtitle=\u30af\u30e9\u30b9\u30bf\u30fc\u306b\u3064\u3044\u3066
-label.installWizard.addClusterIntro.title=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046
-label.installWizard.addHostIntro.subtitle=\u30db\u30b9\u30c8\u306b\u3064\u3044\u3066
-label.installWizard.addHostIntro.title=\u30db\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046
-label.installWizard.addPodIntro.subtitle=\u30dd\u30c3\u30c9\u306b\u3064\u3044\u3066
-label.installWizard.addPodIntro.title=\u30dd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046
-label.installWizard.addPrimaryStorageIntro.subtitle=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u3064\u3044\u3066
-label.installWizard.addPrimaryStorageIntro.title=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046
-label.installWizard.addSecondaryStorageIntro.subtitle=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u3064\u3044\u3066
-label.installWizard.addSecondaryStorageIntro.title=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046
-label.installWizard.addZoneIntro.subtitle=\u30be\u30fc\u30f3\u306b\u3064\u3044\u3066
-label.installWizard.addZoneIntro.title=\u30be\u30fc\u30f3\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046
-label.installWizard.addZone.title=\u30be\u30fc\u30f3\u306e\u8ffd\u52a0
-label.installWizard.click.launch=[\u8d77\u52d5] \u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-label.installWizard.subtitle=\u3053\u306e\u30ac\u30a4\u30c9 \u30c4\u30a2\u30fc\u306f CloudStack&\#8482; \u74b0\u5883\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u306b\u5f79\u7acb\u3061\u307e\u3059
-label.installWizard.title=CloudStack&\#8482; \u3078\u3088\u3046\u3053\u305d
-label.instance.limits=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5236\u9650
-label.instance.name=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u540d
-label.instance.port=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9 \u30dd\u30fc\u30c8
-label.instance.scaled.up=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u9078\u629e\u3057\u305f\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306b\u30b9\u30b1\u30fc\u30eb\u3059\u308b
-label.instances=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
-label.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
-label.instanciate.template.associate.profile.blade=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u4f5c\u6210\u304a\u3088\u3073\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068\u30d6\u30ec\u30fc\u30c9\u306e\u95a2\u9023\u4ed8\u3051
-label.intermediate.certificate=\u4e2d\u9593\u8a3c\u660e\u66f8 {0}
-label.internal.dns.1=\u5185\u90e8 DNS 1
-label.internal.dns.2=\u5185\u90e8 DNS 2
-label.internal.lb.details=\u5185\u90e8 LB \u306e\u8a73\u7d30
-label.internal.lb=\u5185\u90e8 LB
-label.internallbvm=InternalLbVm
-label.internal.name=\u5185\u90e8\u540d
-label.interval.type=\u9593\u9694\u306e\u7a2e\u985e
-label.introduction.to.cloudstack=CloudStack&\#8482; \u306e\u7d39\u4ecb
-label.invalid.integer=\u7121\u52b9\u306a\u6574\u6570
-label.invalid.number=\u7121\u52b9\u306a\u6570
-label.invitations=\u62db\u5f85\u72b6
-label.invited.accounts=\u62db\u5f85\u6e08\u307f\u30a2\u30ab\u30a6\u30f3\u30c8
-label.invite.to=\u62db\u5f85\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\:
-label.invite=\u62db\u5f85
-label.ip.address=IP \u30a2\u30c9\u30ec\u30b9
-label.ipaddress=IP \u30a2\u30c9\u30ec\u30b9
-label.ip.allocations=IP \u30a2\u30c9\u30ec\u30b9\u306e\u5272\u308a\u5f53\u3066
-label.ip=IP
-label.ip.limits=\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u306e\u5236\u9650
-label.ip.or.fqdn=IP \u30a2\u30c9\u30ec\u30b9\u307e\u305f\u306f FQDN
-label.ip.range=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2
-label.ip.ranges=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2
-label.IPsec.preshared.key=IPsec \u4e8b\u524d\u5171\u6709\u30ad\u30fc
-label.ips=IP \u30a2\u30c9\u30ec\u30b9
-label.ipv4.cidr=IPv4 CIDR
-label.ipv4.dns1=IPv4 DNS1
-label.ipv4.dns2=IPv4 DNS2
-label.ipv4.end.ip=IPv4 \u7d42\u4e86 IP \u30a2\u30c9\u30ec\u30b9
-label.ipv4.gateway=IPv4 \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.ipv4.netmask=IPv4 \u30cd\u30c3\u30c8\u30de\u30b9\u30af
-label.ipv4.start.ip=IPv4 \u958b\u59cb IP \u30a2\u30c9\u30ec\u30b9
-label.ipv6.address=IPv6 IP \u30a2\u30c9\u30ec\u30b9
-label.ipv6.CIDR=IPv6 CIDR
-label.ipv6.dns1=IPv6 DNS 1
-label.ipv6.dns2=IPv6 DNS 2
-label.ipv6.end.ip=IPv6 \u7d42\u4e86 IP \u30a2\u30c9\u30ec\u30b9
-label.ipv6.gateway=IPv6 \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.ipv6.start.ip=IPv6 \u958b\u59cb IP \u30a2\u30c9\u30ec\u30b9
-label.iscsi=iSCSI
-label.is.default=\u30c7\u30d5\u30a9\u30eb\u30c8
-label.iso.boot=ISO \u8d77\u52d5
-label.iso=ISO
-label.isolated.networks=\u5206\u96e2\u3055\u308c\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.isolation.method=\u5206\u96e2\u65b9\u6cd5
-label.isolation.mode=\u5206\u96e2\u30e2\u30fc\u30c9
-label.isolation.uri=\u5206\u96e2 URI
-label.is.redundant.router=\u5197\u9577
-label.is.shared=\u5171\u6709
-label.is.system=\u30b7\u30b9\u30c6\u30e0
-label.item.listing=\u9805\u76ee\u4e00\u89a7
-label.japanese.keyboard=\u65e5\u672c\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9
-label.keep.colon=\u4fdd\u6301\:
-label.keep=\u4fdd\u6301
-label.keyboard.language=\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u8a00\u8a9e
-label.keyboard.type=\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u7a2e\u985e
-label.key=\u30ad\u30fc
-label.kvm.traffic.label=KVM \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
-label.label=\u30e9\u30d9\u30eb
-label.lang.arabic=\u30a2\u30e9\u30d3\u30a2\u8a9e
-label.lang.brportugese=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e (\u30d6\u30e9\u30b8\u30eb)
-label.lang.catalan=\u30ab\u30bf\u30eb\u30cb\u30a2\u8a9e
-label.lang.chinese=\u7c21\u4f53\u5b57\u4e2d\u56fd\u8a9e
-label.lang.dutch=\u30aa\u30e9\u30f3\u30c0\u8a9e (\u30aa\u30e9\u30f3\u30c0)
-label.lang.english=\u82f1\u8a9e
-label.lang.french=\u30d5\u30e9\u30f3\u30b9\u8a9e
-label.lang.german=\u30c9\u30a4\u30c4\u8a9e
-label.lang.hungarian=\u30cf\u30f3\u30ac\u30ea\u30fc\u8a9e
-label.lang.italian=\u30a4\u30bf\u30ea\u30a2\u8a9e
-label.lang.japanese=\u65e5\u672c\u8a9e
-label.lang.korean=\u97d3\u56fd\u8a9e
-label.lang.norwegian=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e
-label.lang.polish=\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e
-label.lang.russian=\u30ed\u30b7\u30a2\u8a9e
-label.lang.spanish=\u30b9\u30da\u30a4\u30f3\u8a9e
-label.last.disconnected=\u6700\u7d42\u5207\u65ad\u65e5\u6642
-label.lastname.lower=\u59d3
-label.last.name=\u59d3
-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.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.link.type=\u7a2e\u985e
-label.ldap.port=LDAP \u30dd\u30fc\u30c8
-label.level=\u30ec\u30d9\u30eb
-label.link.domain.to.ldap=\u30c9\u30e1\u30a4\u30f3\u3092 LDAP \u306b\u30ea\u30f3\u30af\u3059\u308b
-label.linklocal.ip=\u30ea\u30f3\u30af \u30ed\u30fc\u30ab\u30eb IP \u30a2\u30c9\u30ec\u30b9
-label.load.balancer.type=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u306e\u7a2e\u985e
-label.load.balancer=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc
-label.load.balancing.policies=\u8ca0\u8377\u5206\u6563\u30dd\u30ea\u30b7\u30fc
-label.load.balancing=\u8ca0\u8377\u5206\u6563
-label.loading=\u30ed\u30fc\u30c9\u3057\u3066\u3044\u307e\u3059
-label.local.file=\u30ed\u30fc\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb
-label.local.storage.enabled.system.vms=\u30b7\u30b9\u30c6\u30e0 VM \u306b\u5bfe\u3057\u30ed\u30fc\u30ab\u30eb\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u6709\u52b9\u5316\u3059\u308b
-label.local.storage.enabled=\u30e6\u30fc\u30b6\u30fc VM \u306b\u5bfe\u3057\u30ed\u30fc\u30ab\u30eb\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u6709\u52b9\u5316\u3059\u308b
-label.local.storage=\u30ed\u30fc\u30ab\u30eb \u30b9\u30c8\u30ec\u30fc\u30b8
-label.local=\u30ed\u30fc\u30ab\u30eb
-label.login=\u30ed\u30b0\u30aa\u30f3
-label.logout=\u30ed\u30b0\u30aa\u30d5
-label.lun=LUN
-label.LUN.number=LUN \u756a\u53f7
-label.lxc.traffic.label=LXC \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
-label.make.project.owner=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u6240\u6709\u8005\u5316
-label.make.redundant=\u5197\u9577\u5316\u69cb\u6210\u3092\u3068\u308b
-label.managed=\u7ba1\u7406\u5bfe\u8c61
-label.management.ips=\u7ba1\u7406 IP \u30a2\u30c9\u30ec\u30b9
-label.management.server=\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc
-label.management=\u7ba1\u7406
-label.manage.resources=\u30ea\u30bd\u30fc\u30b9\u306e\u7ba1\u7406
-label.manage=\u7ba1\u7406
-label.max.cpus=\u6700\u5927 CPU \u30b3\u30a2\u6570
-label.max.guest.limit=\u6700\u5927\u30b2\u30b9\u30c8\u5236\u9650
-label.maximum=\u6700\u5927
-label.max.instances=\u6700\u5927\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u6570
-label.max.memory=\u6700\u5927\u30e1\u30e2\u30ea (MiB)
-label.max.networks=\u6700\u5927\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6570
-label.max.primary.storage=\u6700\u5927\u30d7\u30e9\u30a4\u30de\u30ea (GiB)
-label.max.public.ips=\u6700\u5927\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u6570
-label.max.secondary.storage=\u6700\u5927\u30bb\u30ab\u30f3\u30c0\u30ea (GiB)
-label.max.snapshots=\u6700\u5927\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u6570
-label.max.templates=\u6700\u5927\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u6570
-label.max.vms=\u6700\u5927\u30e6\u30fc\u30b6\u30fc VM \u6570
-label.max.volumes=\u6700\u5927\u30dc\u30ea\u30e5\u30fc\u30e0\u6570
-label.max.vpcs=\u6700\u5927 VPC \u6570
-label.may.continue=\u7d9a\u884c\u3067\u304d\u307e\u3059\u3002
-label.md5.checksum=MD5 \u30c1\u30a7\u30c3\u30af\u30b5\u30e0
-label.memory.allocated=\u5272\u308a\u5f53\u3066\u6e08\u307f\u306e\u30e1\u30e2\u30ea
-label.memory.limits=\u30e1\u30e2\u30ea\u5236\u9650 (MiB)
-label.memory.mb=\u30e1\u30e2\u30ea (MB)
-label.memory.total=\u30e1\u30e2\u30ea\u5408\u8a08
-label.memory=\u30e1\u30e2\u30ea
-label.memory.used=\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf
-label.menu.accounts=\u30a2\u30ab\u30a6\u30f3\u30c8
-label.menu.alerts=\u30a2\u30e9\u30fc\u30c8
-label.menu.all.accounts=\u3059\u3079\u3066\u306e\u30a2\u30ab\u30a6\u30f3\u30c8
-label.menu.all.instances=\u3059\u3079\u3066\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
-label.menu.community.isos=\u30b3\u30df\u30e5\u30cb\u30c6\u30a3 ISO
-label.menu.community.templates=\u30b3\u30df\u30e5\u30cb\u30c6\u30a3 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8
-label.menu.configuration=\u69cb\u6210
-label.menu.dashboard=\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9
-label.menu.destroyed.instances=\u7834\u68c4\u3055\u308c\u305f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
-label.menu.disk.offerings=\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.menu.domains=\u30c9\u30e1\u30a4\u30f3
-label.menu.events=\u30a4\u30d9\u30f3\u30c8
-label.menu.featured.isos=\u304a\u3059\u3059\u3081\u306e ISO
-label.menu.featured.templates=\u304a\u3059\u3059\u3081\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8
-label.menu.global.settings=\u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a
-label.menu.infrastructure=\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3
-label.menu.instances=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
-label.menu.ipaddresses=IP \u30a2\u30c9\u30ec\u30b9
-label.menu.isos=ISO
-label.menu.my.accounts=\u30de\u30a4 \u30a2\u30ab\u30a6\u30f3\u30c8
-label.menu.my.instances=\u30de\u30a4 \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
-label.menu.my.isos=\u30de\u30a4 ISO
-label.menu.my.templates=\u30de\u30a4 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8
-label.menu.network.offerings=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.menu.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.menu.physical.resources=\u7269\u7406\u30ea\u30bd\u30fc\u30b9
-label.menu.regions=\u30ea\u30fc\u30b8\u30e7\u30f3
-label.menu.running.instances=\u5b9f\u884c\u4e2d\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
-label.menu.security.groups=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.menu.service.offerings=\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.menu.snapshots=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
-label.menu.sshkeypair=SSH \u30ad\u30fc\u30da\u30a2
-label.menu.stopped.instances=\u505c\u6b62\u3055\u308c\u305f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9
-label.menu.storage=\u30b9\u30c8\u30ec\u30fc\u30b8
-label.menu.system.service.offerings=\u30b7\u30b9\u30c6\u30e0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.menu.system=\u30b7\u30b9\u30c6\u30e0
-label.menu.system.vms=\u30b7\u30b9\u30c6\u30e0 VM
-label.menu.templates=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8
-label.menu.virtual.appliances=\u4eee\u60f3\u30a2\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9
-label.menu.virtual.resources=\u4eee\u60f3\u30ea\u30bd\u30fc\u30b9
-label.menu.volumes=\u30dc\u30ea\u30e5\u30fc\u30e0
-label.menu.vpc.offerings=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.metrics.allocated=\u5272\u308a\u5f53\u3066\u6e08\u307f
-label.metrics.clusters=\u30af\u30e9\u30b9\u30bf\u30fc
-label.metrics.cpu.used.avg=\u4f7f\u7528\u4e2d
-label.metrics.disk.allocated=\u5272\u308a\u5f53\u3066\u6e08\u307f
-label.metrics.disk.size=\u30b5\u30a4\u30ba
-label.metrics.disk.storagetype=\u7a2e\u985e
-label.metrics.disk.used=\u4f7f\u7528\u4e2d
-label.metrics.hosts=\u30db\u30b9\u30c8
-label.metrics.memory.used.avg=\u4f7f\u7528\u4e2d
-label.metrics.name=\u540d\u524d
-label.metrics.scope=\u30b9\u30b3\u30fc\u30d7
-label.metrics.state=\u72b6\u614b
-label.metrics.storagepool=\u30b9\u30c8\u30ec\u30fc\u30b8 \u30d7\u30fc\u30eb
-label.metrics=\u30e1\u30c8\u30ea\u30c3\u30af\u30b9
-label.migrate.instance.to.host=\u5225\u306e\u30db\u30b9\u30c8\u3078\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u79fb\u884c
-label.migrate.instance.to.ps=\u5225\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3078\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u79fb\u884c
-label.migrate.instance.to=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u79fb\u884c\u5148\:
-label.migrate.lb.vm=LB VM \u306e\u79fb\u884c
-label.migrate.router.to=\u30eb\u30fc\u30bf\u30fc\u306e\u79fb\u884c\u5148\:
-label.migrate.systemvm.to=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u79fb\u884c\u5148\:
-label.migrate.to.host=\u30db\u30b9\u30c8\u3078\u79fb\u884c
-label.migrate.to.storage=\u30b9\u30c8\u30ec\u30fc\u30b8\u3078\u79fb\u884c
-label.migrate.volume.to.primary.storage=\u5225\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3078\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u79fb\u884c
-label.migrate.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u79fb\u884c
-label.minimum=\u6700\u5c0f
-label.min.instances=\u6700\u5c0f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u6570
-label.min.past.the.hr=\u5206(\u6bce\u6642)
-label.minute.past.hour=\u5206(\u6bce\u6642)
-label.minutes.past.hour=\u5206(\u6bce\u6642)
-label.mode=\u30e2\u30fc\u30c9
-label.monday=\u6708\u66dc\u65e5
-label.monthly=\u6bce\u6708
-label.more.templates=\u305d\u306e\u307b\u304b\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8
-label.move.down.row=1 \u884c\u4e0b\u306b\u79fb\u52d5
-label.move.to.bottom=\u6700\u4e0b\u4f4d\u306b\u79fb\u52d5
-label.move.to.top=\u6700\u4e0a\u4f4d\u306b\u79fb\u52d5
-label.move.up.row=1 \u884c\u4e0a\u306b\u79fb\u52d5
-label.my.account=\u30de\u30a4 \u30a2\u30ab\u30a6\u30f3\u30c8
-label.my.network=\u30de\u30a4 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.my.templates=\u30de\u30a4 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8
-label.name.lower=\u540d\u524d
-label.name.optional=\u540d\u524d (\u30aa\u30d7\u30b7\u30e7\u30f3)
-label.name=\u540d\u524d
-label.nat.port.range=NAT \u30dd\u30fc\u30c8\u306e\u7bc4\u56f2
-label.na=\u5229\u7528\u4e0d\u53ef
-label.netmask=\u30cd\u30c3\u30c8\u30de\u30b9\u30af
-label.netscaler.details=NetScaler \u306e\u8a73\u7d30
-label.netScaler=NetScaler
-label.network.ACLs=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ACL
-label.network.ACL.total=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ACL \u5408\u8a08
-label.network.ACL=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ACL
-label.network.addVM=VM \u3078\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8ffd\u52a0
-label.network.cidr=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af CIDR
-label.network.desc=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8aac\u660e
-label.network.details=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8a73\u7d30
-label.network.device.type=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30c7\u30d0\u30a4\u30b9\u306e\u7a2e\u985e
-label.network.device=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30c7\u30d0\u30a4\u30b9
-label.network.domain.text=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30c9\u30e1\u30a4\u30f3
-label.network.domain=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30c9\u30e1\u30a4\u30f3
-label.network.id=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ID
-label.networking.and.security=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3
-label.network.label.display.for.blank.value=\u30c7\u30d5\u30a9\u30eb\u30c8 \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3092\u4f7f\u7528
-label.network.limits=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5236\u9650
-label.network.name=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u540d
-label.network.offering.details=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8a73\u7d30
-label.network.offering.display.text=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u8868\u793a\u30c6\u30ad\u30b9\u30c8
-label.network.offering.id=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0 ID
-label.network.offering.name=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u540d
-label.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.network.rate.megabytes=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u901f\u5ea6 (MB/\u79d2)
-label.network.rate=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u901f\u5ea6 (MB/\u79d2)
-label.network.read=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u8aad\u307f\u53d6\u308a
-label.network.service.providers=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30b5\u30fc\u30d3\u30b9 \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc
-label.networks=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.network.type=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u7a2e\u985e
-label.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.network.write=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u66f8\u304d\u8fbc\u307f
-label.new.password=\u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9
-label.new.project=\u65b0\u3057\u3044\u30d7\u30ed\u30b8\u30a7\u30af\u30c8
-label.new.ssh.key.pair=\u65b0\u3057\u3044 SSH \u30ad\u30fc\u30da\u30a2
-label.new=\u65b0\u898f
-label.new.vm=\u65b0\u3057\u3044 VM
-label.next=\u6b21\u3078
-label.nexusVswitch=Nexus 1000V
-label.nfs=NFS
-label.nfs.server=NFS \u30b5\u30fc\u30d0\u30fc
-label.nfs.storage=NFS \u30b9\u30c8\u30ec\u30fc\u30b8
-label.nic.adapter.type=NIC \u30a2\u30c0\u30d7\u30bf\u30fc\u306e\u7a2e\u985e
-label.nicira.controller.address=\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc \u30a2\u30c9\u30ec\u30b9
-label.nicira.l3gatewayserviceuuid=L3 \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4 \u30b5\u30fc\u30d3\u30b9\u306e UUID
-label.nicira.nvp.details=Nicira NVP \u306e\u8a73\u7d30
-label.nicira.transportzoneuuid=\u30c8\u30e9\u30f3\u30b9\u30dd\u30fc\u30c8 \u30be\u30fc\u30f3\u306e UUID
-label.nics=NIC
-label.no.actions=\u5b9f\u884c\u3067\u304d\u308b\u64cd\u4f5c\u306f\u3042\u308a\u307e\u305b\u3093
-label.no.alerts=\u6700\u8fd1\u306e\u30a2\u30e9\u30fc\u30c8\u306f\u3042\u308a\u307e\u305b\u3093
-label.no.data=\u8868\u793a\u3059\u308b\u30c7\u30fc\u30bf\u304c\u3042\u308a\u307e\u305b\u3093
-label.no.errors=\u6700\u8fd1\u306e\u30a8\u30e9\u30fc\u306f\u3042\u308a\u307e\u305b\u3093
-label.no.grouping=(\u30b0\u30eb\u30fc\u30d7\u306a\u3057)
-label.no.isos=\u4f7f\u7528\u3067\u304d\u308b ISO \u306f\u3042\u308a\u307e\u305b\u3093
-label.no.items=\u4f7f\u7528\u3067\u304d\u308b\u9805\u76ee\u306f\u3042\u308a\u307e\u305b\u3093
-label.none=\u306a\u3057
-label.no.security.groups=\u4f7f\u7528\u3067\u304d\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306f\u3042\u308a\u307e\u305b\u3093
-label.not.found=\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-label.no.thanks=\u8a2d\u5b9a\u3057\u306a\u3044
-label.notifications=\u901a\u77e5
-label.no=\u3044\u3044\u3048
-label.number.of.clusters=\u30af\u30e9\u30b9\u30bf\u30fc\u6570
-label.number.of.cpu.sockets=CPU \u30bd\u30b1\u30c3\u30c8\u6570
-label.number.of.hosts=\u30db\u30b9\u30c8\u6570
-label.number.of.pods=\u30dd\u30c3\u30c9\u6570
-label.number.of.system.vms=\u30b7\u30b9\u30c6\u30e0 VM \u6570
-label.number.of.virtual.routers=\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc\u6570
-label.number.of.zones=\u30be\u30fc\u30f3\u6570
-label.num.cpu.cores=CPU \u30b3\u30a2\u6570
-label.numretries=\u518d\u8a66\u884c\u56de\u6570
-label.ocfs2=OCFS2
-label.offer.ha=\u9ad8\u53ef\u7528\u6027\u3092\u63d0\u4f9b\u3059\u308b
-label.of.month=\u6708\u6bce
-label.ok=OK
-label.opendaylight.controllerdetail=OpenDaylight \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u8a73\u7d30
-label.opendaylight.controller=OpenDaylight \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc
-label.opendaylight.controllers=OpenDaylight \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc
-label.openDaylight=OpenDaylight
-label.operator=\u6f14\u7b97\u5b50
-label.optional=\u30aa\u30d7\u30b7\u30e7\u30f3
-label.order=\u9806\u5e8f
-label.os.preference=OS \u57fa\u672c\u8a2d\u5b9a
-label.os.type=OS \u306e\u7a2e\u985e
-label.other=\u305d\u306e\u307b\u304b
-label.outofbandmanagement.action=\u64cd\u4f5c
-label.outofbandmanagement.password=\u30d1\u30b9\u30ef\u30fc\u30c9
-label.outofbandmanagement.port=\u30dd\u30fc\u30c8
-label.outofbandmanagement.username=\u30e6\u30fc\u30b6\u30fc\u540d
-label.override.guest.traffic=\u30b2\u30b9\u30c8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b
-label.override.public.traffic=\u30d1\u30d6\u30ea\u30c3\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b
-label.ovm3.cluster=\u30cd\u30a4\u30c6\u30a3\u30d6\u30af\u30e9\u30b9\u30bf\u30fc
-label.ovm3.pool=\u30cd\u30a4\u30c6\u30a3\u30d6\u30d7\u30fc\u30eb
-label.ovm3.vip=\u30de\u30b9\u30bf\u30fc VIP IP
-label.ovm.traffic.label=OVM \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
-label.ovs=OVS
-label.owned.public.ips=\u6240\u6709\u3059\u308b\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9
-label.owner.account=\u6240\u6709\u8005\u30a2\u30ab\u30a6\u30f3\u30c8
-label.owner.domain=\u6240\u6709\u8005\u30c9\u30e1\u30a4\u30f3
-label.palo.alto.details=Palo Alto \u306e\u8a73\u7d30
-label.PA.log.profile=Palo Alto \u30ed\u30b0 \u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
-label.PA=Palo Alto
-label.parent.domain=\u89aa\u30c9\u30e1\u30a4\u30f3
-label.passive=\u30d1\u30c3\u30b7\u30d6
-label.password.enabled=\u30d1\u30b9\u30ef\u30fc\u30c9\u7ba1\u7406\u6709\u52b9
-label.password.lower=\u30d1\u30b9\u30ef\u30fc\u30c9
-label.password.reset.confirm=\u6b21\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u306b\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f\:
-label.password=\u30d1\u30b9\u30ef\u30fc\u30c9
-label.PA.threat.profile=Palo Alto \u8105\u5a01\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
-label.path=\u30d1\u30b9
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.persistent=\u6c38\u7d9a
-label.physical.network.ID=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af ID
-label.physical.network.name=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u540d
-label.physical.network=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.PING.CIFS.password=PING CIFS \u30d1\u30b9\u30ef\u30fc\u30c9
-label.PING.CIFS.username=PING CIFS \u30e6\u30fc\u30b6\u30fc\u540d
-label.PING.dir=PING \u30c7\u30a3\u30ec\u30af\u30c8\u30ea
-label.ping.path=Ping \u30d1\u30b9
-label.PING.storage.IP=PING \u5bfe\u8c61\u306e\u30b9\u30c8\u30ec\u30fc\u30b8 IP \u30a2\u30c9\u30ec\u30b9
-label.planner.mode=\u30d7\u30e9\u30f3\u30ca\u30fc \u30e2\u30fc\u30c9
-label.please.complete.the.following.fields=\u4e0b\u8a18\u9805\u76ee\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044
-label.please.specify.netscaler.info=NetScaler \u60c5\u5831\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044
-label.please.wait=\u304a\u5f85\u3061\u304f\u3060\u3055\u3044
-label.plugin.details=\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u8a73\u7d30
-label.plugins=\u30d7\u30e9\u30b0\u30a4\u30f3
-label.pod.dedicated=\u30dd\u30c3\u30c9\u3092\u5c02\u7528\u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f
-label.pod.name=\u30dd\u30c3\u30c9\u540d
-label.pods=\u30dd\u30c3\u30c9
-label.pod=\u30dd\u30c3\u30c9
-label.polling.interval.sec=\u30dd\u30fc\u30ea\u30f3\u30b0\u9593\u9694 (\u79d2)
-label.portable.ip.range.details=\u30dd\u30fc\u30bf\u30d6\u30eb IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u8a73\u7d30
-label.portable.ip.ranges=\u30dd\u30fc\u30bf\u30d6\u30eb IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2
-label.portable.ips=\u30dd\u30fc\u30bf\u30d6\u30eb IP \u30a2\u30c9\u30ec\u30b9
-label.portable.ip=\u30dd\u30fc\u30bf\u30d6\u30eb IP \u30a2\u30c9\u30ec\u30b9
-label.port.forwarding.policies=\u30dd\u30fc\u30c8\u8ee2\u9001\u30dd\u30ea\u30b7\u30fc
-label.port.forwarding=\u30dd\u30fc\u30c8\u8ee2\u9001
-label.port.range=\u30dd\u30fc\u30c8\u306e\u7bc4\u56f2
-label.port=\u30dd\u30fc\u30c8
-label.PreSetup=PreSetup
-label.previous=\u623b\u308b
-label.prev=\u623b\u308b
-label.primary.allocated=\u5272\u308a\u5f53\u3066\u6e08\u307f\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8
-label.primary.network=\u30d7\u30e9\u30a4\u30de\u30ea \u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.primary.storage.count=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30d7\u30fc\u30eb
-label.primary.storage.limits=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u5236\u9650 (GiB)
-label.primary.storage=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8
-label.primary.used=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u4f7f\u7528\u91cf
-label.private.Gateway=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.private.interface=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9
-label.private.ip.range=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2
-label.private.ips=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9
-label.private.ip=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9
-label.privatekey=PKCS\#8 \u79d8\u5bc6\u30ad\u30fc
-label.private.key=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30ad\u30fc
-label.private.network=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.private.port=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30dd\u30fc\u30c8
-label.private.zone=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30be\u30fc\u30f3
-label.profile=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
-label.project.dashboard=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9
-label.project.id=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 ID
-label.project.invite=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u306e\u62db\u5f85
-label.project.name=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d
-label.projects=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8
-label.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8
-label.project.view=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30d3\u30e5\u30fc
-label.protocol.number=\u30d7\u30ed\u30c8\u30b3\u30eb\u756a\u53f7
-label.protocol=\u30d7\u30ed\u30c8\u30b3\u30eb
-label.providers=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc
-label.provider=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc
-label.public.interface=\u30d1\u30d6\u30ea\u30c3\u30af \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9
-label.public.ips=\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9
-label.public.ip=\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9
-label.public.key=\u516c\u958b\u9375
-label.public.lb=\u30d1\u30d6\u30ea\u30c3\u30af LB
-label.public.load.balancer.provider=\u30d1\u30d6\u30ea\u30c3\u30af \u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc
-label.public.network=\u30d1\u30d6\u30ea\u30c3\u30af \u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.public.port=\u30d1\u30d6\u30ea\u30c3\u30af \u30dd\u30fc\u30c8
-label.public.traffic=\u30d1\u30d6\u30ea\u30c3\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af
-label.public.traffic.vswitch.name=\u30d1\u30d6\u30ea\u30c3\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e vSwitch \u540d
-label.public.traffic.vswitch.type=\u30d1\u30d6\u30ea\u30c3\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e vSwitch \u306e\u7a2e\u985e
-label.public=\u30d1\u30d6\u30ea\u30c3\u30af
-label.public.zone=\u30d1\u30d6\u30ea\u30c3\u30af \u30be\u30fc\u30f3
-label.purpose=\u76ee\u7684
-label.Pxe.server.type=PXE \u30b5\u30fc\u30d0\u30fc\u306e\u7a2e\u985e
-label.qos.type=QoS \u306e\u7a2e\u985e
-label.quickview=\u30af\u30a4\u30c3\u30af\u30d3\u30e5\u30fc
-label.quiesce.vm=VM \u3092\u4f11\u6b62\u3059\u308b
-label.quiet.time.sec=\u5f85\u3061\u6642\u9593 (\u79d2)
-label.quota.date=\u65e5\u6642
-label.quota.fullsummary=\u3059\u3079\u3066\u306e\u30a2\u30ab\u30a6\u30f3\u30c8
-label.quota.state=\u72b6\u614b
-label.rbd.id=Cephx \u30e6\u30fc\u30b6\u30fc
-label.rbd.monitor=Ceph \u30e2\u30cb\u30bf\u30fc
-label.rbd.pool=Ceph \u30d7\u30fc\u30eb
-label.rbd=RBD
-label.rbd.secret=Cephx \u30b7\u30fc\u30af\u30ec\u30c3\u30c8
-label.reboot=\u518d\u8d77\u52d5
-label.recent.errors=\u6700\u8fd1\u306e\u30a8\u30e9\u30fc
-label.recover.vm=VM \u306e\u5fa9\u5143
-label.redundant.router.capability=\u5197\u9577\u30eb\u30fc\u30bf\u30fc\u6a5f\u80fd
-label.redundant.router=\u5197\u9577\u30eb\u30fc\u30bf\u30fc
-label.redundant.state=\u5197\u9577\u72b6\u614b
-label.redundant.vpc=\u5197\u9577 VPC
-label.refresh.blades=\u30d6\u30ec\u30fc\u30c9\u306e\u66f4\u65b0
-label.refresh=\u66f4\u65b0
-label.region.details=\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u8a73\u7d30
-label.regionlevelvpc=\u30ea\u30fc\u30b8\u30e7\u30f3\u30ec\u30d9\u30eb\u306e VPC
-label.region=\u30ea\u30fc\u30b8\u30e7\u30f3
-label.reinstall.vm=VM \u306e\u518d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb
-label.related=\u95a2\u9023
-label.release.account.lowercase=\u30a2\u30ab\u30a6\u30f3\u30c8\u304b\u3089\u89e3\u653e
-label.release.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u304b\u3089\u89e3\u653e
-label.release.dedicated.cluster=\u5c02\u7528\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u89e3\u653e
-label.release.dedicated.host=\u5c02\u7528\u30db\u30b9\u30c8\u306e\u89e3\u653e
-label.release.dedicated.pod=\u5c02\u7528\u30dd\u30c3\u30c9\u306e\u89e3\u653e
-label.release.dedicated.vlan.range=\u5c02\u7528 VLAN \u306e\u7bc4\u56f2\u306e\u89e3\u653e
-label.release.dedicated.zone=\u5c02\u7528\u30be\u30fc\u30f3\u306e\u89e3\u653e
-label.remind.later=\u30a2\u30e9\u30fc\u30e0\u3092\u8868\u793a\u3059\u308b
-label.remove.ACL=ACL \u306e\u524a\u9664
-label.remove.egress.rule=\u9001\u4fe1\u898f\u5247\u306e\u524a\u9664
-label.remove.from.load.balancer=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u304b\u3089\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059
-label.remove.ingress.rule=\u53d7\u4fe1\u898f\u5247\u306e\u524a\u9664
-label.remove.ip.range=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u524a\u9664
-label.remove.ldap=LDAP \u306e\u524a\u9664
-label.remove.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u524a\u9664
-label.remove.pf=\u30dd\u30fc\u30c8\u8ee2\u9001\u898f\u5247\u306e\u524a\u9664
-label.remove.project.account=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304b\u3089\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u524a\u9664
-label.remove.region=\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u524a\u9664
-label.remove.rule=\u898f\u5247\u306e\u524a\u9664
-label.remove.ssh.key.pair=SSH \u30ad\u30fc\u30da\u30a2\u306e\u524a\u9664
-label.remove.static.nat.rule=\u9759\u7684 NAT \u898f\u5247\u306e\u524a\u9664
-label.remove.static.route=\u9759\u7684\u30eb\u30fc\u30c8\u306e\u524a\u9664
-label.remove.this.physical.network=\u3053\u306e\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u524a\u9664\u3059\u308b
-label.remove.tier=\u968e\u5c64\u306e\u524a\u9664
-label.remove.vm.from.lb=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u898f\u5247\u304b\u3089\u306e VM \u306e\u524a\u9664
-label.remove.vm.load.balancer=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u304b\u3089\u306e VM \u306e\u524a\u9664
-label.remove.vmware.datacenter=VMware \u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u306e\u524a\u9664
-label.remove.vpc.offering=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u524a\u9664
-label.remove.vpc=VPC \u306e\u524a\u9664
-label.removing=\u524a\u9664\u3057\u3066\u3044\u307e\u3059
-label.removing.user=\u30e6\u30fc\u30b6\u30fc\u3092\u524a\u9664\u3057\u3066\u3044\u307e\u3059
-label.reource.id=\u30ea\u30bd\u30fc\u30b9 ID
-label.replace.acl=ACL \u306e\u7f6e\u304d\u63db\u3048
-label.replace.acl.list=ACL \u4e00\u89a7\u306e\u7f6e\u304d\u63db\u3048
-label.required=\u5fc5\u9808\u3067\u3059
-label.requires.upgrade=\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u304c\u5fc5\u8981
-label.reserved.ip.range=\u4e88\u7d04\u6e08\u307f IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2
-label.reserved.system.gateway=\u4e88\u7d04\u6e08\u307f\u30b7\u30b9\u30c6\u30e0 \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.reserved.system.ip=\u4e88\u7d04\u6e08\u307f\u30b7\u30b9\u30c6\u30e0 IP \u30a2\u30c9\u30ec\u30b9
-label.reserved.system.netmask=\u4e88\u7d04\u6e08\u307f\u30b7\u30b9\u30c6\u30e0 \u30cd\u30c3\u30c8\u30de\u30b9\u30af
-label.reset.ssh.key.pair.on.vm=VM \u4e0a\u306e SSH \u30ad\u30fc\u30da\u30a2\u3092\u30ea\u30bb\u30c3\u30c8
-label.reset.ssh.key.pair=SSH \u30ad\u30fc\u30da\u30a2\u306e\u30ea\u30bb\u30c3\u30c8
-label.resetVM=VM \u306e\u30ea\u30bb\u30c3\u30c8
-label.reset.VPN.connection=VPN \u63a5\u7d9a\u306e\u30ea\u30bb\u30c3\u30c8
-label.resize.new.offering.id=\u65b0\u3057\u3044\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.resize.new.size=\u65b0\u3057\u3044\u30b5\u30a4\u30ba(GB)
-label.resize.shrink.ok=\u7e2e\u5c0f\u53ef\u80fd\u306b\u3059\u308b
-label.resource.limit.exceeded=\u30ea\u30bd\u30fc\u30b9\u5236\u9650\u3092\u8d85\u904e\u3057\u307e\u3057\u305f
-label.resource.limits=\u30ea\u30bd\u30fc\u30b9\u5236\u9650
-label.resource.name=\u30ea\u30bd\u30fc\u30b9\u540d
-label.resource.state=\u30ea\u30bd\u30fc\u30b9\u306e\u72b6\u614b
-label.resources=\u30ea\u30bd\u30fc\u30b9
-label.resource=\u30ea\u30bd\u30fc\u30b9
-label.response.timeout.in.sec=\u5fdc\u7b54\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8 (\u79d2)
-label.restart.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u518d\u8d77\u52d5
-label.restart.required=\u518d\u8d77\u52d5\u304c\u5fc5\u8981
-label.restart.vpc=VPC \u306e\u518d\u8d77\u52d5
-label.restore=\u5fa9\u5143
-label.retry.interval=\u518d\u8a66\u884c\u9593\u9694
-label.review=\u78ba\u8a8d
-label.revoke.project.invite=\u62db\u5f85\u306e\u53d6\u308a\u6d88\u3057
-label.roles=\u30ed\u30fc\u30eb
-label.role=\u5f79\u5272
-label.root.certificate=\u30eb\u30fc\u30c8\u8a3c\u660e\u66f8
-label.root.disk.controller=\u30eb\u30fc\u30c8 \u30c7\u30a3\u30b9\u30af \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc
-label.root.disk.offering=\u30eb\u30fc\u30c8 \u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-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.rule.number=\u898f\u5247\u756a\u53f7
-label.rules=\u898f\u5247
-label.running.vms=\u5b9f\u884c\u4e2d\u306e VM
-label.s3.access_key=\u30a2\u30af\u30bb\u30b9 \u30ad\u30fc
-label.s3.bucket=\u30d0\u30b1\u30c3\u30c8
-label.s3.connection_timeout=\u63a5\u7d9a\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8
-label.s3.endpoint=\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8
-label.s3.max_error_retry=\u6700\u5927\u30a8\u30e9\u30fc\u518d\u8a66\u884c\u6570
-label.s3.nfs.path=S3 NFS \u30d1\u30b9
-label.s3.nfs.server=S3 NFS \u30b5\u30fc\u30d0\u30fc
-label.s3.secret_key=\u79d8\u5bc6\u30ad\u30fc
-label.s3.socket_timeout=\u30bd\u30b1\u30c3\u30c8 \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8
-label.s3.use_https=HTTPS \u3092\u4f7f\u7528\u3059\u308b
-label.saml.enable=SAML SSO \u8a8d\u8a3c
-label.saml.entity=\u8a8d\u8a3c\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc
-label.saturday=\u571f\u66dc\u65e5
-label.save.and.continue=\u4fdd\u5b58\u3057\u3066\u7d9a\u884c
-label.save.changes=\u5909\u66f4\u3092\u4fdd\u5b58\u3059\u308b
-label.save=\u4fdd\u5b58
-label.saving.processing=\u4fdd\u5b58\u3057\u3066\u3044\u307e\u3059...
-label.scaledown.policy=\u30b9\u30b1\u30fc\u30eb\u30c0\u30a6\u30f3 \u30dd\u30ea\u30b7\u30fc
-label.scale.up.policy=\u30b5\u30a4\u30ba\u62e1\u5927\u30dd\u30ea\u30b7\u30fc
-label.scaleup.policy=\u30b9\u30b1\u30fc\u30eb\u30a2\u30c3\u30d7 \u30dd\u30ea\u30b7\u30fc
-label.scope=\u30b9\u30b3\u30fc\u30d7
-label.search=\u691c\u7d22
-label.secondary.ips=\u30bb\u30ab\u30f3\u30c0\u30ea IP
-label.secondary.isolated.vlan.id=\u5206\u96e2\u3055\u308c\u305f\u30bb\u30ab\u30f3\u30c0\u30ea VLAN ID
-label.secondary.staging.store.details=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c6\u30fc\u30b8\u30f3\u30b0 \u30b9\u30c8\u30a2\u306e\u8a73\u7d30
-label.secondary.staging.store=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c6\u30fc\u30b8\u30f3\u30b0 \u30b9\u30c8\u30a2
-label.secondary.storage.count=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30d7\u30fc\u30eb
-label.secondary.storage.details=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u8a73\u7d30
-label.secondary.storage.limits=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u5236\u9650 (GiB)
-label.secondary.storage=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8
-label.secondary.storage.vm=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 VM
-label.secondary.used=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u4f7f\u7528\u91cf
-label.secret.key=\u79d8\u5bc6\u30ad\u30fc
-label.security.group.name=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u540d
-label.security.groups.enabled=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u6709\u52b9
-label.security.groups=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.security.group=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7
-label.select.a.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u9078\u629e
-label.select.a.zone=\u30be\u30fc\u30f3\u306e\u9078\u629e
-label.select.instance.to.attach.volume.to=\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u30a2\u30bf\u30c3\u30c1\u3059\u308b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
-label.select.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u9078\u629e
-label.select.iso.or.template=ISO \u307e\u305f\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u9078\u629e
-label.select.offering=\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u9078\u629e
-label.select.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u9078\u629e
-label.select.region=\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u9078\u629e
-label.select.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u9078\u629e
-label.select.tier=\u968e\u5c64\u306e\u9078\u629e
-label.select=\u9078\u629e
-label.select-view=\u30d3\u30e5\u30fc\u306e\u9078\u629e
-label.select.vm.for.static.nat=\u9759\u7684 NAT \u7528 VM \u306e\u9078\u629e
-label.sent=\u9001\u4fe1\u6e08\u307f
-label.server=\u30b5\u30fc\u30d0\u30fc
-label.service.capabilities=\u30b5\u30fc\u30d3\u30b9\u306e\u6a5f\u80fd
-label.service.offering.details=\u30b5\u30fc\u30d3\u30b9\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8a73\u7d30
-label.service.offering=\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.service.state=\u30b5\u30fc\u30d3\u30b9\u306e\u72b6\u614b
-label.services=\u30b5\u30fc\u30d3\u30b9
-label.session.expired=\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u6709\u52b9\u671f\u9650\u304c\u5207\u308c\u307e\u3057\u305f
-label.set.default.NIC=\u30c7\u30d5\u30a9\u30eb\u30c8 NIC \u306e\u8a2d\u5b9a
-label.settings=\u8a2d\u5b9a
-label.setup.network=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u8a2d\u5b9a\u3059\u308b
-label.setup=\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
-label.set.up.zone.type=\u30be\u30fc\u30f3\u306e\u7a2e\u985e\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7
-label.setup.zone=\u30be\u30fc\u30f3\u3092\u8a2d\u5b9a\u3059\u308b
-label.SharedMountPoint=SharedMountPoint
-label.shared=\u5171\u6709
-label.show.advanced.settings=\u8a73\u7d30\u8a2d\u5b9a\u306e\u8868\u793a
-label.show.ingress.rule=\u53d7\u4fe1\u898f\u5247\u306e\u8868\u793a
-label.shutdown.provider=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u30b7\u30e3\u30c3\u30c8\u30c0\u30a6\u30f3
-label.simplified.chinese.keyboard=\u7c21\u6613\u4e2d\u56fd\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9
-label.site.to.site.VPN=\u30b5\u30a4\u30c8\u9593 VPN
-label.size=\u30b5\u30a4\u30ba
-label.skip.guide=CloudStack \u3092\u4f7f\u7528\u3057\u305f\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u3001\u3053\u306e\u30ac\u30a4\u30c9\u3092\u30b9\u30ad\u30c3\u30d7\u3059\u308b
-label.smb.domain=SMB \u30c9\u30e1\u30a4\u30f3
-label.smb.password=SMB \u30d1\u30b9\u30ef\u30fc\u30c9
-label.smb.username=SMB \u30e6\u30fc\u30b6\u30fc\u540d
-label.snapshot.limits=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u5236\u9650
-label.snapshot.name=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u540d
-label.snapshot.schedule=\u9023\u7d9a\u3057\u305f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u8a2d\u5b9a\u3059\u308b
-label.snapshot.s=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
-label.snapshots=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
-label.snapshot=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
-label.SNMP.community=SNMP \u30b3\u30df\u30e5\u30cb\u30c6\u30a3
-label.SNMP.port=SNMP \u30dd\u30fc\u30c8
-label.sockets=CPU \u30bd\u30b1\u30c3\u30c8
-label.source.ip.address=\u9001\u4fe1\u5143 IP \u30a2\u30c9\u30ec\u30b9
-label.source.nat.supported=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u308b\u9001\u4fe1\u5143 NAT
-label.source.nat=\u9001\u4fe1\u5143 NAT
-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
-label.SR.name=SR \u540d\u30e9\u30d9\u30eb
-label.srx.details=SRX \u306e\u8a73\u7d30
-label.srx=SRX
-label.ssh.key.pair.details=SSH \u30ad\u30fc\u30da\u30a2\u306e\u8a73\u7d30
-label.ssh.key.pair=SSH \u30ad\u30fc\u30da\u30a2
-label.ssh.key.pairs=SSH \u30ad\u30fc\u30da\u30a2
-label.standard.us.keyboard=\u6a19\u6e96(US) \u30ad\u30fc\u30dc\u30fc\u30c9
-label.start.IP=\u958b\u59cb IP \u30a2\u30c9\u30ec\u30b9
-label.start.lb.vm=LB VM \u306e\u8d77\u52d5
-label.start.port=\u958b\u59cb\u30dd\u30fc\u30c8
-label.start.reserved.system.IP=\u4e88\u7d04\u6e08\u307f\u958b\u59cb\u30b7\u30b9\u30c6\u30e0 IP \u30a2\u30c9\u30ec\u30b9
-label.start.vlan=\u958b\u59cb VLAN
-label.start.vxlan=\u958b\u59cb VXLAN
-label.state=\u72b6\u614b
-label.static.nat.enabled=\u9759\u7684 NAT \u6709\u52b9
-label.static.nat.to=\u9759\u7684 NAT \u306e\u8a2d\u5b9a\u5148\:
-label.static.nat=\u9759\u7684 NAT
-label.static.nat.vm.details=\u9759\u7684 NAT VM \u306e\u8a73\u7d30
-label.static.routes=\u9759\u7684\u30eb\u30fc\u30c8
-label.statistics=\u7d71\u8a08
-label.status=\u72b6\u6cc1
-label.step.1.title=\u624b\u9806 1\: <strong>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u9078\u629e</strong>
-label.step.1=\u624b\u9806 1
-label.step.2.title=\u624b\u9806 2\: <strong>\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0</strong>
-label.step.2=\u624b\u9806 2
-label.step.3.title=\u624b\u9806 3\: <strong id\="step3_label">\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u9078\u629e</strong>
-label.step.3=\u624b\u9806 3
-label.step.4.title=\u624b\u9806 4\: <strong>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af</strong>
-label.step.4=\u624b\u9806 4
-label.step.5.title=\u624b\u9806 5\: <strong>\u78ba\u8a8d</strong>
-label.step.5=\u624b\u9806 5
-label.stickiness.method=\u6301\u7d9a\u6027\u65b9\u6cd5
-label.stickiness=\u6301\u7d9a\u6027
-label.sticky.cookie-name=Cookie \u540d
-label.sticky.domain=\u30c9\u30e1\u30a4\u30f3
-label.sticky.expire=\u5931\u52b9
-label.sticky.holdtime=\u4fdd\u6301\u6642\u9593
-label.sticky.indirect=\u9593\u63a5
-label.sticky.length=\u9577\u3055
-label.sticky.mode=\u30e2\u30fc\u30c9
-label.sticky.name=\u30b9\u30c6\u30a3\u30c3\u30ad\u30fc\u540d
-label.sticky.nocache=\u30ad\u30e3\u30c3\u30b7\u30e5\u306a\u3057
-label.sticky.postonly=\u30dd\u30b9\u30c8\u306e\u307f
-label.sticky.prefix=\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9
-label.sticky.request-learn=\u30e9\u30fc\u30cb\u30f3\u30b0\u306e\u8981\u6c42
-label.sticky.tablesize=\u30c6\u30fc\u30d6\u30eb \u30b5\u30a4\u30ba
-label.stop.lb.vm=LB VM \u306e\u505c\u6b62
-label.stopped.vms=\u505c\u6b62\u4e2d\u306e VM
-label.stop=\u505c\u6b62
-label.storage.pool=\u30b9\u30c8\u30ec\u30fc\u30b8 \u30d7\u30fc\u30eb
-label.storage.tags=\u30b9\u30c8\u30ec\u30fc\u30b8 \u30bf\u30b0
-label.storage.traffic=\u30b9\u30c8\u30ec\u30fc\u30b8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af
-label.storage.type=\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u7a2e\u985e
-label.storage=\u30b9\u30c8\u30ec\u30fc\u30b8
-label.subdomain.access=\u30b5\u30d6\u30c9\u30e1\u30a4\u30f3 \u30a2\u30af\u30bb\u30b9
-label.submitted.by=[\u9001\u4fe1\u30e6\u30fc\u30b6\u30fc\: <span id\="submitted_by"></span>]
-label.submit=\u9001\u4fe1
-label.succeeded=\u6210\u529f
-label.sunday=\u65e5\u66dc\u65e5
-label.super.cidr.for.guest.networks=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30b9\u30fc\u30d1\u30fc CIDR
-label.supported.services=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u308b\u30b5\u30fc\u30d3\u30b9
-label.supported.source.NAT.type=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u308b\u9001\u4fe1\u5143 NAT \u306e\u7a2e\u985e
-label.supportsstrechedl2subnet=\u30b9\u30c8\u30ec\u30c3\u30c1 L2 \u30b5\u30d6\u30cd\u30c3\u30c8\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b
-label.suspend.project=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e00\u6642\u505c\u6b62
-label.switch.type=\u30b9\u30a4\u30c3\u30c1\u306e\u7a2e\u985e
-label.system.capacity=\u30b7\u30b9\u30c6\u30e0\u306e\u51e6\u7406\u80fd\u529b
-label.system.offering.for.router=\u30eb\u30fc\u30bf\u30fc\u7528\u30b7\u30b9\u30c6\u30e0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.system.offering=\u30b7\u30b9\u30c6\u30e0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.system.service.offering.details=\u30b7\u30b9\u30c6\u30e0\u30b5\u30fc\u30d3\u30b9\u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8a73\u7d30
-label.system.service.offering=\u30b7\u30b9\u30c6\u30e0 \u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.system.vm.details=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u8a73\u7d30
-label.system.vm.scaled.up=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u30b5\u30a4\u30ba\u304c\u62e1\u5927\u3055\u308c\u307e\u3057\u305f
-label.system.vms=\u30b7\u30b9\u30c6\u30e0 VM
-label.system.vm.type=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u7a2e\u985e
-label.system.vm=\u30b7\u30b9\u30c6\u30e0 VM
-label.system.wide.capacity=\u30b7\u30b9\u30c6\u30e0\u5168\u4f53\u306e\u51e6\u7406\u80fd\u529b
-label.tagged=\u30bf\u30b0\u3042\u308a
-label.tag.key=\u30bf\u30b0 \u30ad\u30fc
-label.tags=\u30bf\u30b0
-label.tag.value=\u30bf\u30b0\u5024
-label.target.iqn=\u30bf\u30fc\u30b2\u30c3\u30c8 IQN
-label.task.completed=\u30bf\u30b9\u30af\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f
-label.template.limits=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5236\u9650
-label.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8
-label.TFTP.dir=TFTP \u30c7\u30a3\u30ec\u30af\u30c8\u30ea
-label.tftp.root.directory=TFTP \u30eb\u30fc\u30c8 \u30c7\u30a3\u30ec\u30af\u30c8\u30ea
-label.theme.default=\u30c7\u30d5\u30a9\u30eb\u30c8 \u30c6\u30fc\u30de
-label.theme.grey=\u30ab\u30b9\u30bf\u30e0 - \u30b0\u30ec\u30fc
-label.theme.lightblue=\u30ab\u30b9\u30bf\u30e0 - \u30e9\u30a4\u30c8 \u30d6\u30eb\u30fc
-label.threshold=\u3057\u304d\u3044\u5024
-label.thursday=\u6728\u66dc\u65e5
-label.tier.details=\u968e\u5c64\u306e\u8a73\u7d30
-label.tier=\u968e\u5c64
-label.time.colon=\u6642\u9593\:
-label.timeout.in.second = \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u5024(\u79d2)
-label.timeout=\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8
-label.time=\u6642\u9593
-label.timezone.colon=\u30bf\u30a4\u30e0\u30be\u30fc\u30f3\:
-label.time.zone=\u30bf\u30a4\u30e0\u30be\u30fc\u30f3
-label.timezone=\u30bf\u30a4\u30e0\u30be\u30fc\u30f3
-label.token=\u30c8\u30fc\u30af\u30f3
-label.total.cpu=CPU \u5408\u8a08
-label.total.CPU=CPU \u5408\u8a08
-label.total.hosts=\u30db\u30b9\u30c8\u5408\u8a08
-label.total.memory=\u30e1\u30e2\u30ea\u5408\u8a08
-label.total.of.ip=\u5168 IP \u30a2\u30c9\u30ec\u30b9\u6570
-label.total.of.vm=VM \u5408\u8a08
-label.total.storage=\u30b9\u30c8\u30ec\u30fc\u30b8\u5408\u8a08
-label.total.virtual.routers=\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc\u5408\u8a08
-label.total.virtual.routers.upgrade=\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u304c\u5fc5\u8981\u306a\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc\u5408\u8a08
-label.total.vms=VM \u5408\u8a08
-label.traffic.label=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
-label.traffic.types=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e
-label.traffic.type=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e
-label.tuesday=\u706b\u66dc\u65e5
-label.type.id=\u7a2e\u985e ID
-label.type.lower=\u7a2e\u985e
-label.type=\u7a2e\u985e
-label.ucs=UCS
-label.uk.keyboard=UK \u30ad\u30fc\u30dc\u30fc\u30c9
-label.unavailable=\u4f7f\u7528\u4e0d\u80fd
-label.unhealthy.threshold=\u7570\u5e38\u3057\u304d\u3044\u5024
-label.unlimited=\u7121\u5236\u9650
-label.untagged=\u30bf\u30b0\u306a\u3057
-label.update.project.resources=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30ea\u30bd\u30fc\u30b9\u306e\u66f4\u65b0
-label.update.ssl.cert= SSL \u8a3c\u660e\u66f8
-label.update.ssl= SSL \u8a3c\u660e\u66f8
-label.updating=\u66f4\u65b0\u3057\u3066\u3044\u307e\u3059
-label.upgrade.required=\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u304c\u5fc5\u8981\u3067\u3059
-label.upgrade.router.newer.template=\u30eb\u30fc\u30bf\u30fc\u3092\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u3066\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u7528\u3059\u308b
-label.upload.from.local=\u30ed\u30fc\u30ab\u30eb\u304b\u3089\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-label.upload.template.from.local=\u30ed\u30fc\u30ab\u30eb\u304b\u3089\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-label.upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-label.upload.volume.from.local=\u30ed\u30fc\u30ab\u30eb\u304b\u3089\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-label.upload.volume.from.url=URL \u304b\u3089\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-label.upload.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-label.url=URL
-label.usage.interface=\u4f7f\u7528\u72b6\u6cc1\u6e2c\u5b9a\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9
-label.usage.sanity.result=\u4f7f\u7528\u72b6\u6cc1\u30b5\u30cb\u30c6\u30a3\u7d50\u679c
-label.usage.server=\u4f7f\u7528\u72b6\u6cc1\u6e2c\u5b9a\u30b5\u30fc\u30d0\u30fc
-label.used=\u4f7f\u7528\u4e2d
-label.user.data=\u30e6\u30fc\u30b6\u30fc \u30c7\u30fc\u30bf
-label.user.details=\u30e6\u30fc\u30b6\u30fc\u306e\u8a73\u7d30
-label.username.lower=\u30e6\u30fc\u30b6\u30fc\u540d
-label.username=\u30e6\u30fc\u30b6\u30fc\u540d
-label.users=\u30e6\u30fc\u30b6\u30fc
-label.user=\u30e6\u30fc\u30b6\u30fc
-label.user.vm=\u30e6\u30fc\u30b6\u30fc VM
-label.use.vm.ips=\u6b21\u306e VM IP \u30a2\u30c9\u30ec\u30b9\u3092\u4f7f\u7528
-label.use.vm.ip=\u6b21\u306e VM IP \u30a2\u30c9\u30ec\u30b9\u3092\u4f7f\u7528\:
-label.value=\u5024
-label.vcdcname=vCenter DC \u540d
-label.vcenter.cluster=vCenter \u30af\u30e9\u30b9\u30bf\u30fc
-label.vcenter.datacenter=vCenter \u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc
-label.vcenter.datastore=vCenter \u30c7\u30fc\u30bf\u30b9\u30c8\u30a2
-label.vcenter.host=vCenter \u30db\u30b9\u30c8
-label.vcenter.password=vCenter \u30d1\u30b9\u30ef\u30fc\u30c9
-label.vcenter.username=vCenter \u30e6\u30fc\u30b6\u30fc\u540d
-label.vcenter=vCenter
-label.vcipaddress=vCenter IP \u30a2\u30c9\u30ec\u30b9
-label.version=\u30d0\u30fc\u30b8\u30e7\u30f3
-label.vgpu.max.resolution=\u6700\u5927\u89e3\u50cf\u5ea6
-label.vgpu.max.vgpu.per.gpu=GPU \u3042\u305f\u308a\u306e vGPU \u6570
-label.vgpu.remaining.capacity=\u6b8b\u5b58\u51e6\u7406\u80fd\u529b
-label.vgpu.type=vGPU \u306e\u7a2e\u985e
-label.vgpu=VGPU
-label.vgpu.video.ram=\u30d3\u30c7\u30aa RAM
-label.view.all=\u3059\u3079\u3066\u8868\u793a
-label.view.console=\u30b3\u30f3\u30bd\u30fc\u30eb\u306e\u8868\u793a
-label.viewing=\u8868\u793a\u9805\u76ee\:
-label.view.more=\u8a73\u7d30\u8868\u793a
-label.view.secondary.ips=\u30bb\u30ab\u30f3\u30c0\u30ea IP \u30a2\u30c9\u30ec\u30b9\u306e\u8868\u793a
-label.view=\u8868\u793a -
-label.virtual.appliance.details=\u4eee\u60f3\u30a2\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u306e\u8a73\u7d30
-label.virtual.appliances=\u4eee\u60f3\u30a2\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9
-label.virtual.appliance=\u4eee\u60f3\u30a2\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9
-label.virtual.machines=\u4eee\u60f3\u30de\u30b7\u30f3
-label.virtual.machine=\u4eee\u60f3\u30de\u30b7\u30f3
-label.virtual.networking=\u4eee\u60f3\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.virtual.network=\u4eee\u60f3\u30cd\u30c3\u30c8\u30ef\u30fc\u30af
-label.virtual.routers.group.account=\u30a2\u30ab\u30a6\u30f3\u30c8\u5225\u306e\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc \u30b0\u30eb\u30fc\u30d7
-label.virtual.routers.group.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u5225\u306e\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc \u30b0\u30eb\u30fc\u30d7
-label.virtual.routers.group.pod=\u30dd\u30c3\u30c9\u5225\u306e\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc \u30b0\u30eb\u30fc\u30d7
-label.virtual.routers.group.zone=\u30be\u30fc\u30f3\u5225\u306e\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc \u30b0\u30eb\u30fc\u30d7
-label.virtual.routers=\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc
-label.virtual.router=\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc
-label.vlan.id=VLAN/VNI ID
-label.vlan.only=VLAN
-label.vlan.range.details=VLAN \u306e\u7bc4\u56f2\u306e\u8a73\u7d30
-label.vlan.ranges=VLAN \u306e\u7bc4\u56f2
-label.vlan.range=VLAN/VNI \u306e\u7bc4\u56f2
-label.vlan=VLAN
-label.vlan.vni.ranges=VLAN/VNI \u306e\u7bc4\u56f2
-label.vlan.vni.range=VLAN/VNI \u306e\u7bc4\u56f2
-label.vm.add=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u8ffd\u52a0
-label.vm.destroy=\u7834\u68c4
-label.vm.display.name=VM \u8868\u793a\u540d
-label.VMFS.datastore=VMFS \u30c7\u30fc\u30bf\u30b9\u30c8\u30a2
-label.vmfs=VMFS
-label.vm.id=VM ID
-label.vm.ip=VM IP \u30a2\u30c9\u30ec\u30b9
-label.vm.name=VM \u540d
-label.vm.password=VM \u306e\u30d1\u30b9\u30ef\u30fc\u30c9\:
-label.vm.reboot=\u518d\u8d77\u52d5
-label.VMs.in.tier=\u968e\u5c64\u5185\u306e VM
-label.vmsnapshot.current=\u4f7f\u7528\u4e2d
-label.vmsnapshot.memory=\u30e1\u30e2\u30ea\u3082\u542b\u3081\u308b
-label.vmsnapshot.parentname=\u89aa
-label.vmsnapshot.type=\u7a2e\u985e
-label.vmsnapshot=VM \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
-label.vm.start=\u8d77\u52d5
-label.vm.state=VM \u306e\u72b6\u614b
-label.vm.stop=\u505c\u6b62
-label.vms=VM
-label.vmware.datacenter.id=VMware \u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc ID
-label.vmware.datacenter.name=VMware \u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u540d
-label.vmware.datacenter.vcenter=VMware \u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u306e vCenter
-label.vmware.traffic.label=VMware \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
-label.vnet.id=VLAN/VNI ID
-label.vnet=VLAN/VNI
-label.vnmc.devices=VNMC \u30c7\u30d0\u30a4\u30b9
-label.vnmc=VNMC
-label.volatile=\u63ee\u767a\u6027
-label.volgroup=\u30dc\u30ea\u30e5\u30fc\u30e0 \u30b0\u30eb\u30fc\u30d7
-label.volume.details=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u8a73\u7d30
-label.volume.limits=\u30dc\u30ea\u30e5\u30fc\u30e0\u5236\u9650
-label.volume.migrated=\u30dc\u30ea\u30e5\u30fc\u30e0\u304c\u79fb\u884c\u3055\u308c\u307e\u3057\u305f
-label.volume.name=\u30dc\u30ea\u30e5\u30fc\u30e0\u540d
-label.volumes=\u30dc\u30ea\u30e5\u30fc\u30e0
-label.volume=\u30dc\u30ea\u30e5\u30fc\u30e0
-label.vpc.distributedvpcrouter=\u5206\u6563 VPC \u30eb\u30fc\u30bf\u30fc
-label.vpc.id=VPC ID
-label.VPC.limits=VPC \u5236\u9650
-label.vpc.offering.details=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8a73\u7d30
-label.vpc.offering=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
-label.vpc.router.details=VPC \u30eb\u30fc\u30bf\u30fc\u306e\u8a73\u7d30
-label.VPC.router.details=VPC \u30eb\u30fc\u30bf\u30fc\u306e\u8a73\u7d30
-label.vpc.supportsregionlevelvpc=\u30ea\u30fc\u30b8\u30e7\u30f3\u30ec\u30d9\u30eb\u306e VPC \u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b
-label.vpc.virtual.router=VPC \u4eee\u60f3\u30eb\u30fc\u30bf\u30fc
-label.vpc=VPC
-label.VPN.connection=VPN \u63a5\u7d9a
-label.vpn.customer.gateway=VPN \u30ab\u30b9\u30bf\u30de\u30fc \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.VPN.customer.gateway=VPN \u30ab\u30b9\u30bf\u30de\u30fc \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.VPN.gateway=VPN \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4
-label.vpn=VPN
-label.vsmctrlvlanid=\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb VLAN ID
-label.vsmpktvlanid=\u30d1\u30b1\u30c3\u30c8 VLAN ID
-label.vsmstoragevlanid=\u30b9\u30c8\u30ec\u30fc\u30b8 VLAN ID
-label.vsphere.managed=vSphere \u306b\u3088\u308b\u7ba1\u7406
-label.vswitch.name=vSwitch \u540d
-label.vSwitch.type=vSwitch \u306e\u7a2e\u985e
-label.vxlan.id=VXLAN ID
-label.vxlan.range=VXLAN \u306e\u7bc4\u56f2
-label.vxlan=VXLAN
-label.waiting=\u5f85\u6a5f\u3057\u3066\u3044\u307e\u3059
-label.warning=\u6ce8\u610f
-label.warn=\u8b66\u544a
-label.warn.upper=\u8b66\u544a
-label.wednesday=\u6c34\u66dc\u65e5
-label.weekly=\u6bce\u9031
-label.welcome.cloud.console=\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\u3078\u3088\u3046\u3053\u305d
-label.welcome=\u3088\u3046\u3053\u305d
-label.what.is.cloudstack=CloudStack&\#8482; \u306b\u3064\u3044\u3066
-label.xenserver.tools.version.61.plus=\u5143\u306e XS \u30d0\u30fc\u30b8\u30e7\u30f3\u306f 6.1 \u4ee5\u964d
-label.Xenserver.Tools.Version61plus=\u5143\u306e XS \u30d0\u30fc\u30b8\u30e7\u30f3\u306f 6.1 \u4ee5\u964d
-label.xenserver.traffic.label=XenServer \u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb
-label.yes=\u306f\u3044
-label.zone.dedicated=\u5c02\u7528\u30be\u30fc\u30f3
-label.zone.details=\u30be\u30fc\u30f3\u306e\u8a73\u7d30
-label.zone.id=\u30be\u30fc\u30f3 ID
-label.zone.lower=\u30be\u30fc\u30f3
-label.zone.name=\u30be\u30fc\u30f3\u540d
-label.zone.step.1.title=\u624b\u9806 1\: <strong>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u9078\u629e</strong>
-label.zone.step.2.title=\u624b\u9806 2\: <strong>\u30be\u30fc\u30f3\u306e\u8ffd\u52a0</strong>
-label.zone.step.3.title=\u624b\u9806 3\: <strong>\u30dd\u30c3\u30c9\u306e\u8ffd\u52a0</strong>
-label.zone.step.4.title=\u624b\u9806 4\: <strong>IP \u30a2\u30c9\u30ec\u30b9\u7bc4\u56f2\u306e\u8ffd\u52a0</strong>
-label.zones=\u30be\u30fc\u30f3
-label.zone.type=\u30be\u30fc\u30f3\u306e\u7a2e\u985e
-label.zone=\u30be\u30fc\u30f3
-label.zone.wide=\u30be\u30fc\u30f3\u5168\u4f53
-label.zoneWizard.trafficType.guest=\u30b2\u30b9\u30c8\: \u30a8\u30f3\u30c9 \u30e6\u30fc\u30b6\u30fc\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u9593\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3067\u3059\u3002
-label.zoneWizard.trafficType.management=\u7ba1\u7406\: \u30db\u30b9\u30c8\u3084 CloudStack \u30b7\u30b9\u30c6\u30e0 VM  \u306a\u3069\u3001\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u3068\u901a\u4fe1\u3059\u308b CloudStack \u306e\u5185\u90e8\u30ea\u30bd\u30fc\u30b9\u9593\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3067\u3059\u3002
-label.zoneWizard.trafficType.public=\u30d1\u30d6\u30ea\u30c3\u30af\: \u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u3068\u30af\u30e9\u30a6\u30c9\u5185\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u9593\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3067\u3059\u3002
-label.zoneWizard.trafficType.storage=\u30b9\u30c8\u30ec\u30fc\u30b8\: VM \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3084\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306a\u3069\u3001\u30d7\u30e9\u30a4\u30de\u30ea\u304a\u3088\u3073\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30b5\u30fc\u30d0\u30fc\u9593\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3067\u3059\u3002
-managed.state=\u7ba1\u7406\u5bfe\u8c61\u72b6\u614b
-message.acquire.ip.nic=\u3053\u306e NIC \u306e\u305f\u3081\u306b\u65b0\u3057\u3044\u30bb\u30ab\u30f3\u30c0\u30ea IP \u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?<br/>\u6ce8\: \u65b0\u3057\u304f\u53d6\u5f97\u3057\u305f\u30bb\u30ab\u30f3\u30c0\u30ea IP \u30a2\u30c9\u30ec\u30b9\u306f\u4eee\u60f3\u30de\u30b7\u30f3\u5185\u3067\u624b\u52d5\u3067\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.acquire.new.ip=\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u65b0\u3057\u3044 IP \u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.acquire.new.ip.vpc=\u3053\u306e VPC \u306e\u65b0\u3057\u3044 IP \u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.acquire.public.ip=\u65b0\u3057\u3044 IP \u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u30be\u30fc\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.action.cancel.maintenance.mode=\u3053\u306e\u4fdd\u5b88\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.cancel.maintenance=\u30db\u30b9\u30c8\u306e\u4fdd\u5b88\u306f\u6b63\u5e38\u306b\u30ad\u30e3\u30f3\u30bb\u30eb\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u306e\u51e6\u7406\u306b\u306f\u6570\u5206\u304b\u304b\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-message.action.change.service.warning.for.instance=\u73fe\u5728\u306e\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u5909\u66f4\u3059\u308b\u524d\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u505c\u6b62\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.action.change.service.warning.for.router=\u73fe\u5728\u306e\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u5909\u66f4\u3059\u308b\u524d\u306b\u30eb\u30fc\u30bf\u30fc\u3092\u505c\u6b62\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.action.delete.cluster=\u3053\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.disk.offering=\u3053\u306e\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.domain=\u3053\u306e\u30c9\u30e1\u30a4\u30f3\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.external.firewall=\u3053\u306e\u5916\u90e8\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b? \u8b66\u544a\: \u540c\u3058\u5916\u90e8\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3092\u518d\u5ea6\u8ffd\u52a0\u3059\u308b\u4e88\u5b9a\u3067\u3042\u308b\u5834\u5408\u306f\u3001\u30c7\u30d0\u30a4\u30b9\u306e\u4f7f\u7528\u72b6\u6cc1\u30c7\u30fc\u30bf\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.action.delete.external.load.balancer=\u3053\u306e\u5916\u90e8\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b? \u8b66\u544a\: \u540c\u3058\u5916\u90e8\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u3092\u518d\u5ea6\u8ffd\u52a0\u3059\u308b\u4e88\u5b9a\u3067\u3042\u308b\u5834\u5408\u306f\u3001\u30c7\u30d0\u30a4\u30b9\u306e\u4f7f\u7528\u72b6\u6cc1\u30c7\u30fc\u30bf\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.action.delete.ingress.rule=\u3053\u306e\u53d7\u4fe1\u898f\u5247\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.ISO.for.all.zones=\u305d\u306e ISO \u306f\u3059\u3079\u3066\u306e\u30be\u30fc\u30f3\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3059\u3079\u3066\u306e\u30be\u30fc\u30f3\u304b\u3089\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.ISO=\u3053\u306e ISO \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.network=\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.nexusVswitch=\u3053\u306e Nexus 1000V \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.nic=\u3053\u306e NIC \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b? \u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3082 VM \u304b\u3089\u524a\u9664\u3055\u308c\u307e\u3059\u3002
-message.action.delete.physical.network=\u3053\u306e\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.pod=\u3053\u306e\u30dd\u30c3\u30c9\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.primary.storage=\u3053\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.secondary.storage=\u3053\u306e\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.security.group=\u3053\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.service.offering=\u3053\u306e\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.snapshot=\u3053\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.system.service.offering=\u3053\u306e\u30b7\u30b9\u30c6\u30e0 \u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.template.for.all.zones=\u305d\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u3059\u3079\u3066\u306e\u30be\u30fc\u30f3\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3059\u3079\u3066\u306e\u30be\u30fc\u30f3\u304b\u3089\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.template=\u3053\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.volume=\u3053\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.delete.zone=\u3053\u306e\u30be\u30fc\u30f3\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.destroy.instance=\u3053\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u7834\u68c4\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.destroy.systemvm=\u3053\u306e\u30b7\u30b9\u30c6\u30e0 VM \u3092\u7834\u68c4\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.disable.cluster=\u3053\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.disable.nexusVswitch=\u3053\u306e Nexus 1000V \u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.disable.physical.network=\u3053\u306e\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.disable.pod=\u3053\u306e\u30dd\u30c3\u30c9\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.disable.static.NAT=\u9759\u7684 NAT \u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.disable.zone=\u3053\u306e\u30be\u30fc\u30f3\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.downloading.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u3044\u307e\u3059\u3002
-message.action.download.iso=\u3053\u306e ISO \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.download.template=\u3053\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.enable.cluster=\u3053\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.enable.maintenance=\u30db\u30b9\u30c8\u3092\u4fdd\u5b88\u3059\u308b\u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u3053\u306e\u30db\u30b9\u30c8\u4e0a\u306e VM \u6570\u306b\u3088\u3063\u3066\u306f\u3001\u3053\u306e\u51e6\u7406\u306b\u306f\u6570\u5206\u4ee5\u4e0a\u304b\u304b\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-message.action.enable.nexusVswitch=\u3053\u306e Nexus 1000V \u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.enable.physical.network=\u3053\u306e\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.enable.pod=\u3053\u306e\u30dd\u30c3\u30c9\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.enable.zone=\u3053\u306e\u30be\u30fc\u30f3\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.expunge.instance=\u3053\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u62b9\u6d88\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.force.reconnect=\u30db\u30b9\u30c8\u306f\u5f37\u5236\u7684\u306b\u518d\u63a5\u7d9a\u3057\u307e\u3057\u305f\u3002\u3053\u306e\u51e6\u7406\u306b\u306f\u6570\u5206\u304b\u304b\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-message.action.host.enable.maintenance.mode=\u4fdd\u5b88\u30e2\u30fc\u30c9\u3092\u6709\u52b9\u306b\u3059\u308b\u3068\u3001\u3053\u306e\u30db\u30b9\u30c8\u3067\u5b9f\u884c\u4e2d\u306e\u3059\u3079\u3066\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u307b\u304b\u306e\u4f7f\u7528\u3067\u304d\u308b\u30db\u30b9\u30c8\u306b\u30e9\u30a4\u30d6 \u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3055\u308c\u307e\u3059\u3002
-message.action.instance.reset.password=\u3053\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u30eb\u30fc\u30c8 \u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.manage.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u7ba1\u7406\u5bfe\u8c61\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.primarystorage.enable.maintenance.mode=\u8b66\u544a\: \u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u4fdd\u5b88\u30e2\u30fc\u30c9\u306b\u3059\u308b\u3068\u3001\u305d\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u4e0a\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u4f7f\u7528\u3059\u308b\u3059\u3079\u3066\u306e VM \u304c\u505c\u6b62\u3057\u307e\u3059\u3002\u7d9a\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.reboot.instance=\u3053\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.reboot.router=\u3053\u306e\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc\u3067\u63d0\u4f9b\u3059\u308b\u3059\u3079\u3066\u306e\u30b5\u30fc\u30d3\u30b9\u304c\u4e2d\u65ad\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30eb\u30fc\u30bf\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.reboot.systemvm=\u3053\u306e\u30b7\u30b9\u30c6\u30e0 VM \u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.release.ip=\u3053\u306e IP \u30a2\u30c9\u30ec\u30b9\u3092\u89e3\u653e\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.remove.host=\u3053\u306e\u30db\u30b9\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.reset.password.off=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306f\u73fe\u5728\u3053\u306e\u6a5f\u80fd\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002
-message.action.reset.password.warning=\u73fe\u5728\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3059\u308b\u524d\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u505c\u6b62\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.action.restore.instance=\u3053\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u5fa9\u5143\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.revert.snapshot=\u6240\u6709\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u3053\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306b\u623b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.start.instance=\u3053\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.start.router=\u3053\u306e\u30eb\u30fc\u30bf\u30fc\u3092\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.start.systemvm=\u3053\u306e\u30b7\u30b9\u30c6\u30e0 VM \u3092\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.stop.instance=\u3053\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.stop.router=\u3053\u306e\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc\u3067\u63d0\u4f9b\u3059\u308b\u3059\u3079\u3066\u306e\u30b5\u30fc\u30d3\u30b9\u304c\u4e2d\u65ad\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30eb\u30fc\u30bf\u30fc\u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.stop.systemvm=\u3053\u306e\u30b7\u30b9\u30c6\u30e0 VM \u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.take.snapshot=\u3053\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.unmanage.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u975e\u7ba1\u7406\u5bfe\u8c61\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.vmsnapshot.delete=\u3053\u306e VM \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.action.vmsnapshot.revert=VM \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u5143\u306b\u623b\u3059
-message.activate.project=\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30a2\u30af\u30c6\u30a3\u30d6\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.add.cluster=\u30be\u30fc\u30f3 <b><span id\="zone_name"></span></b> \u306e\u30dd\u30c3\u30c9 <b><span id\="pod_name"></span></b> \u306b\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u3067\u7ba1\u7406\u3055\u308c\u308b\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.cluster.zone=\u30be\u30fc\u30f3 <b><span id\="zone_name"></span></b> \u306b\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u3067\u7ba1\u7406\u3055\u308c\u308b\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.disk.offering=\u65b0\u3057\u3044\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.domain=\u3053\u306e\u30c9\u30e1\u30a4\u30f3\u306b\u4f5c\u6210\u3059\u308b\u30b5\u30d6\u30c9\u30e1\u30a4\u30f3\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.added.new.nuage.vsp.controller=\u65b0\u3057\u3044 Nuage VSP \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
-message.added.vpc.offering=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
-message.add.firewall=\u30be\u30fc\u30f3\u306b\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.guest.network=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u8ffd\u52a0\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.add.host=\u65b0\u3057\u3044\u30db\u30b9\u30c8\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.adding.host=\u30db\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-message.adding.Netscaler.device=NetScaler \u30c7\u30d0\u30a4\u30b9\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-message.adding.Netscaler.provider=NetScaler \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059
-message.add.ip.range.direct.network=\u30be\u30fc\u30f3 <b><span id\="zone_name"></span></b> \u306e\u76f4\u63a5\u30cd\u30c3\u30c8\u30ef\u30fc\u30af <b><span id\="directnetwork_name"></span></b> \u306b IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.ip.range.to.pod=<p>\u30dd\u30c3\u30c9 <b><span id\="pod_name_label"></span></b> \u306b IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u8ffd\u52a0\u3057\u307e\u3059</p>
-message.add.ip.range=\u30be\u30fc\u30f3\u306e\u30d1\u30d6\u30ea\u30c3\u30af \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.additional.networks.desc=\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u63a5\u7d9a\u3059\u308b\u8ffd\u52a0\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.load.balancer=\u30be\u30fc\u30f3\u306b\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.load.balancer.under.ip=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u898f\u5247\u304c\u6b21\u306e IP \u30a2\u30c9\u30ec\u30b9\u306b\u5bfe\u3057\u3066\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\:
-message.add.network=\u30be\u30fc\u30f3 <b><span id\="zone_name"></span></b> \u306b\u65b0\u3057\u3044\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.new.gateway.to.vpc=\u3053\u306e VPC \u306b\u65b0\u3057\u3044\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306e\u60c5\u5831\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.pod.during.zone.creation=\u5404\u30be\u30fc\u30f3\u306b\u306f 1 \u3064\u4ee5\u4e0a\u306e\u30dd\u30c3\u30c9\u304c\u5fc5\u8981\u3067\u3059\u3002\u4eca\u3053\u3053\u3067\u6700\u521d\u306e\u30dd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u30dd\u30c3\u30c9\u306f\u30db\u30b9\u30c8\u3068\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u69cb\u6210\u3055\u308c\u307e\u3059\u304c\u3001\u3053\u308c\u3089\u306f\u5f8c\u306e\u624b\u9806\u3067\u8ffd\u52a0\u3057\u307e\u3059\u3002\u6700\u521d\u306b\u3001CloudStack \u306e\u5185\u90e8\u7ba1\u7406\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u305f\u3081\u306b IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u4e88\u7d04\u3057\u307e\u3059\u3002IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306f\u3001\u30af\u30e9\u30a6\u30c9\u5185\u306e\u5404\u30be\u30fc\u30f3\u3067\u91cd\u8907\u3057\u306a\u3044\u3088\u3046\u306b\u4e88\u7d04\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.add.pod=\u30be\u30fc\u30f3 <b><span id\="add_pod_zone_name"></span></b> \u306b\u65b0\u3057\u3044\u30dd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.primary.storage=\u30be\u30fc\u30f3 <b><span id\="zone_name"></span></b> \u306e\u30dd\u30c3\u30c9 <b><span id\="pod_name"></span></b> \u306b\u65b0\u3057\u3044\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.primary=\u65b0\u3057\u3044\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.region=\u65b0\u3057\u3044\u30ea\u30fc\u30b8\u30e7\u30f3\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u60c5\u5831\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.secondary.storage=\u30be\u30fc\u30f3 <b><span id\="zone_name"></span></b> \u306b\u65b0\u3057\u3044\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u307e\u3059
-message.add.service.offering=\u65b0\u3057\u3044\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.system.service.offering=\u65b0\u3057\u3044\u30b7\u30b9\u30c6\u30e0 \u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.template=\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.volume=\u65b0\u3057\u3044\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.add.VPN.gateway=VPN \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3092\u8ffd\u52a0\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.admin.guide.read=VMware \u30d9\u30fc\u30b9\u306e VM \u306b\u3064\u3044\u3066\u306f\u3001\u30b5\u30a4\u30ba\u5909\u66f4\u306e\u524d\u306b\u7ba1\u7406\u8005\u30ac\u30a4\u30c9\u306e\u52d5\u7684\u306a\u30b5\u30a4\u30ba\u5909\u66f4\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u304a\u8aad\u307f\u304f\u3060\u3055\u3044\u3002\u7d9a\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?\\,
-message.advanced.mode.desc=VLAN \u30b5\u30dd\u30fc\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u5834\u5408\u306f\u3001\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30e2\u30c7\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u306e\u30e2\u30c7\u30eb\u3067\u306f\u6700\u3082\u67d4\u8edf\u306b\u30ab\u30b9\u30bf\u30e0 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u63d0\u4f9b\u3067\u304d\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3001VPN\u3001\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u306e\u30b5\u30dd\u30fc\u30c8\u306e\u307b\u304b\u306b\u3001\u76f4\u63a5\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u4eee\u60f3\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3082\u6709\u52b9\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
-message.advanced.security.group=\u30b2\u30b9\u30c8 VM \u3092\u5206\u96e2\u3059\u308b\u305f\u3081\u306b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.advanced.virtual=\u30b2\u30b9\u30c8 VM \u3092\u5206\u96e2\u3059\u308b\u305f\u3081\u306b\u30be\u30fc\u30f3\u5168\u4f53\u306e VLAN \u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.after.enable.s3=S3 \u30d9\u30fc\u30b9\u306e\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u304c\u69cb\u6210\u3055\u308c\u307e\u3057\u305f\u3002\u6ce8\: \u3053\u306e\u30da\u30fc\u30b8\u3092\u9589\u3058\u308b\u3068\u3001S3 \u3092\u518d\u69cb\u6210\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002
-message.after.enable.swift=Swift \u304c\u69cb\u6210\u3055\u308c\u307e\u3057\u305f\u3002\u6ce8\: \u3053\u306e\u30da\u30fc\u30b8\u3092\u9589\u3058\u308b\u3068\u3001Swift \u3092\u518d\u69cb\u6210\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002
-message.alert.state.detected=\u30a2\u30e9\u30fc\u30c8\u72b6\u614b\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f
-message.allow.vpn.access=VPN \u30a2\u30af\u30bb\u30b9\u3092\u8a31\u53ef\u3059\u308b\u30e6\u30fc\u30b6\u30fc\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.apply.snapshot.policy=\u73fe\u5728\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8 \u30dd\u30ea\u30b7\u30fc\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002
-message.attach.iso.confirm=\u3053\u306e\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b ISO \u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30bf\u30c3\u30c1\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.attach.volume=\u65b0\u3057\u3044\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u30a2\u30bf\u30c3\u30c1\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002Windows \u30d9\u30fc\u30b9\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u306b\u30c7\u30a3\u30b9\u30af \u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u30a2\u30bf\u30c3\u30c1\u3059\u308b\u5834\u5408\u306f\u3001\u30a2\u30bf\u30c3\u30c1\u3057\u305f\u30c7\u30a3\u30b9\u30af\u3092\u8a8d\u8b58\u3059\u308b\u305f\u3081\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u518d\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.basic.mode.desc=VLAN \u30b5\u30dd\u30fc\u30c8\u304c<b><u>\u4e0d\u8981\u3067\u3042\u308b</u></b>\u5834\u5408\u306f\u3001\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30e2\u30c7\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30e2\u30c7\u30eb\u3067\u4f5c\u6210\u3055\u308c\u308b\u3059\u3079\u3066\u306e\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304b\u3089\u76f4\u63a5 IP \u30a2\u30c9\u30ec\u30b9\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u3092\u4f7f\u7528\u3057\u3066\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u5206\u96e2\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002
-message.change.offering.confirm=\u3053\u306e\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u5909\u66f4\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.change.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.cluster.dedicated=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u5c02\u7528\u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f
-message.cluster.dedication.released=\u5c02\u7528\u30af\u30e9\u30b9\u30bf\u30fc\u304c\u89e3\u653e\u3055\u308c\u307e\u3057\u305f
-message.configure.all.traffic.types=\u8907\u6570\u306e\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304c\u3042\u308a\u307e\u3059\u3002[\u7de8\u96c6] \u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e\u3054\u3068\u306b\u30e9\u30d9\u30eb\u3092\u69cb\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.configure.firewall.rules.allow.traffic=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u8a31\u53ef\u3059\u308b\u3088\u3046\u30eb\u30fc\u30eb\u3092\u8a2d\u5b9a\u3059\u308b
-message.configure.firewall.rules.block.traffic=\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u30d6\u30ed\u30c3\u30af\u3059\u308b\u3088\u3046\u30eb\u30fc\u30eb\u3092\u8a2d\u5b9a\u3059\u308b
-message.configure.ldap=LDAP \u3092\u69cb\u6210\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.configuring.guest.traffic=\u30b2\u30b9\u30c8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u69cb\u6210\u3057\u3066\u3044\u307e\u3059
-message.configuring.physical.networks=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u69cb\u6210\u3057\u3066\u3044\u307e\u3059
-message.configuring.public.traffic=\u30d1\u30d6\u30ea\u30c3\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u69cb\u6210\u3057\u3066\u3044\u307e\u3059
-message.configuring.storage.traffic=\u30b9\u30c8\u30ec\u30fc\u30b8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u69cb\u6210\u3057\u3066\u3044\u307e\u3059
-message.confirm.action.force.reconnect=\u3053\u306e\u30db\u30b9\u30c8\u3092\u5f37\u5236\u518d\u63a5\u7d9a\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.add.vnmc.provider=VNMC \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u8ffd\u52a0\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.archive.alert=\u3053\u306e\u30a2\u30e9\u30fc\u30c8\u3092\u30a2\u30fc\u30ab\u30a4\u30d6\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.archive.event=\u3053\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u30a2\u30fc\u30ab\u30a4\u30d6\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.archive.selected.alerts=\u9078\u629e\u3057\u305f\u30a2\u30e9\u30fc\u30c8\u3092\u30a2\u30fc\u30ab\u30a4\u30d6\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.archive.selected.events=\u9078\u629e\u3057\u305f\u30a4\u30d9\u30f3\u30c8\u3092\u30a2\u30fc\u30ab\u30a4\u30d6\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.attach.disk=\u30c7\u30a3\u30b9\u30af\u3092\u30a2\u30bf\u30c3\u30c1\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.create.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.current.guest.CIDR.unchanged=\u73fe\u5728\u306e\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e CIDR \u3092\u5909\u66f4\u305b\u305a\u306b\u7dad\u6301\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.dedicate.cluster.domain.account=\u3053\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u30c9\u30e1\u30a4\u30f3/\u30a2\u30ab\u30a6\u30f3\u30c8\u5c02\u7528\u306b\u8a2d\u5b9a\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.dedicate.host.domain.account=\u3053\u306e\u30db\u30b9\u30c8\u3092\u30c9\u30e1\u30a4\u30f3/\u30a2\u30ab\u30a6\u30f3\u30c8\u5c02\u7528\u306b\u8a2d\u5b9a\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.dedicate.pod.domain.account=\u3053\u306e\u30dd\u30c3\u30c9\u3092\u30c9\u30e1\u30a4\u30f3/\u30a2\u30ab\u30a6\u30f3\u30c8\u5c02\u7528\u306b\u8a2d\u5b9a\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.dedicate.zone=\u3053\u306e\u30be\u30fc\u30f3\u3092\u30c9\u30e1\u30a4\u30f3/\u30a2\u30ab\u30a6\u30f3\u30c8\u5c02\u7528\u306b\u8a2d\u5b9a\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.acl.list=\u3053\u306e ACL \u4e00\u89a7\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.alert=\u3053\u306e\u30a2\u30e9\u30fc\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.baremetal.rack.configuration=\u30d9\u30a2\u30e1\u30bf\u30eb\u30e9\u30c3\u30af\u8a2d\u5b9a\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.BigSwitchBcf=\u3053\u306e BigSwitch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.BrocadeVcs=Brocade VCS \u30b9\u30a4\u30c3\u30c1\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.ciscoASA1000v=Cisco ASA 1000V \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.ciscovnmc.resource=Cisco VNMC \u30ea\u30bd\u30fc\u30b9\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.F5=F5 \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.internal.lb=\u5185\u90e8 LB \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.NetScaler=NetScaler \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.NuageVsp=Nuage Virtualized Services Directory \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.PA=Palo Alto \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.secondary.staging.store=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c6\u30fc\u30b8\u30f3\u30b0 \u30b9\u30c8\u30a2\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.SRX=SRX \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.delete.ucs.manager=UCS Manager \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.destroy.router=\u3053\u306e\u30eb\u30fc\u30bf\u30fc\u3092\u7834\u68c4\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.disable.host=\u30db\u30b9\u30c8\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.disable.network.offering=\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.disable.provider=\u3053\u306e\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.disable.vnmc.provider=VNMC \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.disable.vpc.offering=\u3053\u306e VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.enable.host=\u30db\u30b9\u30c8\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.enable.network.offering=\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.enable.provider=\u3053\u306e\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.enable.vnmc.provider=VNMC \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.enable.vpc.offering=\u3053\u306e VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.join.project=\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u53c2\u52a0\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.migrate.volume=\u3053\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u79fb\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.refresh.blades=\u30d6\u30ec\u30fc\u30c9\u3092\u66f4\u65b0\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.release.dedicated.cluster=\u3053\u306e\u5c02\u7528\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u89e3\u653e\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.release.dedicated.host=\u3053\u306e\u5c02\u7528\u30db\u30b9\u30c8\u3092\u89e3\u653e\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.release.dedicated.pod=\u3053\u306e\u5c02\u7528\u30dd\u30c3\u30c9\u3092\u89e3\u653e\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.release.dedicated.zone=\u3053\u306e\u5c02\u7528\u30be\u30fc\u30f3\u3092\u89e3\u653e\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.release.dedicate.vlan.range=\u5c02\u7528 VLAN \u306e\u7bc4\u56f2\u3092\u89e3\u653e\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.remove.event=\u3053\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.remove.IP.range=\u3053\u306e IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.remove.load.balancer=\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u304b\u3089 VM \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.remove.network.offering=\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.remove.selected.alerts=\u9078\u629e\u3057\u305f\u30a2\u30e9\u30fc\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.remove.selected.events=\u9078\u629e\u3057\u305f\u30a4\u30d9\u30f3\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.remove.vmware.datacenter=VMware \u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.remove.vpc.offering=\u3053\u306e VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.replace.acl.new.one=ACL \u3092\u65b0\u3057\u3044\u3082\u306e\u3068\u7f6e\u304d\u63db\u3048\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.scale.up.router.vm=\u30eb\u30fc\u30bf\u30fc VM \u306e\u30b5\u30a4\u30ba\u3092\u62e1\u5927\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.scale.up.system.vm=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u30b5\u30a4\u30ba\u3092\u62e1\u5927\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.shutdown.provider=\u3053\u306e\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u30b7\u30e3\u30c3\u30c8\u30c0\u30a6\u30f3\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.start.lb.vm=LB VM \u3092\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.stop.lb.vm=LB VM \u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.upgrade.router.newer.template=\u30eb\u30fc\u30bf\u30fc\u3092\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u3066\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.upgrade.routers.account.newtemplate=\u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u3059\u3079\u3066\u306e\u30eb\u30fc\u30bf\u30fc\u3092\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u3066\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.upgrade.routers.cluster.newtemplate=\u3053\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u3059\u3079\u3066\u306e\u30eb\u30fc\u30bf\u30fc\u3092\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u3066\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.upgrade.routers.newtemplate=\u3053\u306e\u30be\u30fc\u30f3\u306e\u3059\u3079\u3066\u306e\u30eb\u30fc\u30bf\u30fc\u3092\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u3066\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.confirm.upgrade.routers.pod.newtemplate=\u3053\u306e\u30dd\u30c3\u30c9\u306e\u3059\u3079\u3066\u306e\u30eb\u30fc\u30bf\u30fc\u3092\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u3066\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.copy.iso.confirm=ISO \u3092\u6b21\u306e\u5834\u6240\u306b\u30b3\u30d4\u30fc\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.copy.template.confirm=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30b3\u30d4\u30fc\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.copy.template=\u30be\u30fc\u30f3 <b id\="copy_template_source_zone_text"></b> \u304b\u3089\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 <b id\="copy_template_name_text">XXX</b> \u3092\u6b21\u306e\u5834\u6240\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3059\:
-message.create.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.create.template.vm=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 <b id\="p_name"></b> \u304b\u3089 VM \u3092\u4f5c\u6210\u3057\u307e\u3059
-message.create.template.volume=\u30c7\u30a3\u30b9\u30af \u30dc\u30ea\u30e5\u30fc\u30e0 <b><span id\="volume_name"></span></b> \u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3059\u308b\u524d\u306b\u3001\u6b21\u306e\u60c5\u5831\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30dc\u30ea\u30e5\u30fc\u30e0 \u30b5\u30a4\u30ba\u306b\u3088\u3063\u3066\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u4f5c\u6210\u306b\u306f\u6570\u5206\u4ee5\u4e0a\u304b\u304b\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-message.creating.cluster=\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059
-message.creating.guest.network=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059
-message.creating.physical.networks=\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059
-message.creating.pod=\u30dd\u30c3\u30c9\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059
-message.creating.primary.storage=\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059
-message.creating.secondary.storage=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059
-message.creating.systemVM=\u30b7\u30b9\u30c6\u30e0 VM \u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059 (\u3057\u3070\u3089\u304f\u304a\u5f85\u3061\u304f\u3060\u3055\u3044)
-message.creating.zone=\u30be\u30fc\u30f3\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059
-message.decline.invitation=\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u306e\u62db\u5f85\u3092\u8f9e\u9000\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.dedicated.zone.released=\u5c02\u7528\u30be\u30fc\u30f3\u304c\u89e3\u653e\u3055\u308c\u307e\u3057\u305f
-message.dedicate.zone=\u30be\u30fc\u30f3\u3092\u5c02\u7528\u306b\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059
-message.delete.account=\u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.delete.affinity.group=\u3053\u306e\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.delete.gateway=\u3053\u306e\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.delete.project=\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.delete.user=\u3053\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.delete.VPN.connection=VPN \u63a5\u7d9a\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.delete.VPN.customer.gateway=\u3053\u306e VPN \u30ab\u30b9\u30bf\u30de\u30fc \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.delete.VPN.gateway=\u3053\u306e VPN \u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.desc.add.new.lb.sticky.rule=\u65b0\u3057\u3044 LB \u30b9\u30c6\u30a3\u30c3\u30ad\u30fc\u30eb\u30fc\u30eb\u3092\u8ffd\u52a0
-message.desc.advanced.zone=\u3088\u308a\u6d17\u7df4\u3055\u308c\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6280\u8853\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30e2\u30c7\u30eb\u3092\u9078\u629e\u3059\u308b\u3068\u3001\u3088\u308a\u67d4\u8edf\u306b\u30b2\u30b9\u30c8\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u5b9a\u7fa9\u3057\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3001VPN\u3001\u30ed\u30fc\u30c9 \u30d0\u30e9\u30f3\u30b5\u30fc\u306e\u30b5\u30dd\u30fc\u30c8\u306e\u3088\u3046\u306a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3057\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u63d0\u4f9b\u3067\u304d\u307e\u3059\u3002
-message.desc.basic.zone=\u5404 VM \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b IP \u30a2\u30c9\u30ec\u30b9\u304c\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304b\u3089\u76f4\u63a5\u5272\u308a\u5f53\u3066\u3089\u308c\u308b\u3001\u5358\u4e00\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7 (\u9001\u4fe1\u5143 IP \u30a2\u30c9\u30ec\u30b9\u306e\u30d5\u30a3\u30eb\u30bf\u30fc) \u306e\u3088\u3046\u306a\u30ec\u30a4\u30e4\u30fc 3 \u30ec\u30d9\u30eb\u306e\u65b9\u6cd5\u3067\u30b2\u30b9\u30c8\u3092\u5206\u96e2\u3067\u304d\u307e\u3059\u3002
-message.desc.cluster=\u5404\u30dd\u30c3\u30c9\u306b\u306f 1 \u3064\u4ee5\u4e0a\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u304c\u5fc5\u8981\u3067\u3059\u3002\u4eca\u3053\u3053\u3067\u6700\u521d\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u30af\u30e9\u30b9\u30bf\u30fc\u306f\u30db\u30b9\u30c8\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3059\u308b\u65b9\u6cd5\u3067\u3059\u30021 \u3064\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u5185\u306e\u30db\u30b9\u30c8\u306f\u3059\u3079\u3066\u540c\u4e00\u306e\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u304b\u3089\u69cb\u6210\u3055\u308c\u3001\u540c\u3058\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u3092\u5b9f\u884c\u3057\u3001\u540c\u3058\u30b5\u30d6\u30cd\u30c3\u30c8\u4e0a\u306b\u3042\u308a\u3001\u540c\u3058\u5171\u6709\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002\u5404\u30af\u30e9\u30b9\u30bf\u30fc\u306f 1 \u3064\u4ee5\u4e0a\u306e\u30db\u30b9\u30c8\u3068 1 \u3064\u4ee5\u4e0a\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u69cb\u6210\u3055\u308c\u307e\u3059\u3002
-message.desc.created.ssh.key.pair=\u4f5c\u6210\u3055\u308c\u305f SSH \u30ad\u30fc\u30da\u30a2
-message.desc.create.ssh.key.pair=SSH \u30ad\u30fc\u30da\u30a2\u306e\u751f\u6210\u304a\u3088\u3073\u767b\u9332\u306e\u305f\u3081\u306b\u4ee5\u4e0b\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044<br><br>(1) \u516c\u958b\u9375\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3001CloudStack \u3067\u306f\u305d\u306e\u516c\u958b\u9375\u3092\u767b\u9332\u3057\u3001\u5bfe\u5fdc\u3059\u308b\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30ad\u30fc\u3092\u4f7f\u3063\u3066\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059<br><br>(2) \u516c\u958b\u9375\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u3001CloudStack \u3067\u306f\u65b0\u3057\u3044 SSH \u30ad\u30fc\u30da\u30a2 \u3092\u751f\u6210\u3057\u307e\u3059\u3001\u305d\u306e\u6642 CloudStack \u3067\u306f\u79d8\u5bc6\u9375\u3092\u4fdd\u6301\u3057\u306a\u3044\u305f\u3081\u30e6\u30fc\u30b6\u30fc\u3067\u30b3\u30d4\u30fc\u304a\u3088\u3073\u4fdd\u5b58\u3057\u3066\u304f\u3060\u3055\u3044<br>
-message.desc.host=\u5404\u30af\u30e9\u30b9\u30bf\u30fc\u306b\u306f\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u3001\u30b2\u30b9\u30c8 VM \u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u30db\u30b9\u30c8 (\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc) \u304c\u5fc5\u8981\u3067\u3059\u3002\u4eca\u3053\u3053\u3067\u6700\u521d\u306e\u30db\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002CloudStack \u3067\u30db\u30b9\u30c8\u3092\u6a5f\u80fd\u3055\u305b\u308b\u306b\u306f\u3001\u30db\u30b9\u30c8\u306b\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066 IP \u30a2\u30c9\u30ec\u30b9\u3092\u5272\u308a\u5f53\u3066\u3001\u30db\u30b9\u30c8\u304c CloudStack \u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<br/><br/>\u30db\u30b9\u30c8\u306e DNS \u540d\u307e\u305f\u306f IP \u30a2\u30c9\u30ec\u30b9\u3001\u30e6\u30fc\u30b6\u30fc\u540d (\u901a\u5e38\u306f root) \u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3001\u304a\u3088\u3073\u30db\u30b9\u30c8\u306e\u5206\u985e\u306b\u4f7f\u7528\u3059\u308b\u30e9\u30d9\u30eb\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.desc.primary.storage=\u5404\u30af\u30e9\u30b9\u30bf\u30fc\u306b\u306f\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u3001\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30b5\u30fc\u30d0\u30fc\u304c\u5fc5\u8981\u3067\u3059\u3002\u4eca\u3053\u3053\u3067\u6700\u521d\u306e\u30b5\u30fc\u30d0\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306f\u3001\u30af\u30e9\u30b9\u30bf\u30fc\u5185\u306e\u30db\u30b9\u30c8\u4e0a\u3067\u52d5\u4f5c\u3059\u308b\u3059\u3079\u3066\u306e VM \u306e\u30c7\u30a3\u30b9\u30af \u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u57fa\u790e\u3068\u306a\u308b\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u308b\u3001\u6a19\u6e96\u306b\u6e96\u62e0\u3057\u305f\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.desc.reset.ssh.key.pair=\u3053\u306e VM \u306b\u8ffd\u52a0\u3059\u308b SSH \u30ad\u30fc\u30da\u30a2\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308b\u5834\u5408 root \u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5909\u66f4\u3055\u308c\u308b\u70b9\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044
-message.desc.secondary.storage=\u5404\u30be\u30fc\u30f3\u306b\u306f\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u3001NFS \u3064\u307e\u308a\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30b5\u30fc\u30d0\u30fc\u304c\u5fc5\u8981\u3067\u3059\u3002\u4eca\u3053\u3053\u3067\u6700\u521d\u306e\u30b5\u30fc\u30d0\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306f VM \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3001ISO \u30a4\u30e1\u30fc\u30b8\u3001\u304a\u3088\u3073VM \u30c7\u30a3\u30b9\u30af \u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u3053\u306e\u30b5\u30fc\u30d0\u30fc\u306f\u30be\u30fc\u30f3\u5185\u306e\u3059\u3079\u3066\u306e\u30db\u30b9\u30c8\u3067\u4f7f\u7528\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<br/><br/>IP \u30a2\u30c9\u30ec\u30b9\u3068\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3055\u308c\u305f\u30d1\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.desc.zone=\u30be\u30fc\u30f3\u306f CloudStack \u74b0\u5883\u5185\u306e\u6700\u5927\u306e\u7d44\u7e54\u5358\u4f4d\u3067\u3001\u901a\u5e38\u3001\u5358\u4e00\u306e\u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u306b\u76f8\u5f53\u3057\u307e\u3059\u3002\u30be\u30fc\u30f3\u306b\u3088\u3063\u3066\u7269\u7406\u7684\u306a\u5206\u96e2\u3068\u5197\u9577\u6027\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002\u30be\u30fc\u30f3\u306f 1 \u3064\u4ee5\u4e0a\u306e\u30dd\u30c3\u30c9 (\u5404\u30dd\u30c3\u30c9\u306f\u30db\u30b9\u30c8\u3068\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u69cb\u6210\u3055\u308c\u307e\u3059) \u3068\u3001\u30be\u30fc\u30f3\u5185\u306e\u3059\u3079\u3066\u306e\u30dd\u30c3\u30c9\u3067\u5171\u6709\u3055\u308c\u308b\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u69cb\u6210\u3055\u308c\u307e\u3059\u3002
-message.detach.disk=\u3053\u306e\u30c7\u30a3\u30b9\u30af\u3092\u30c7\u30bf\u30c3\u30c1\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.detach.iso.confirm=\u3053\u306e\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304b\u3089 ISO \u30d5\u30a1\u30a4\u30eb\u3092\u30c7\u30bf\u30c3\u30c1\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.disable.account=\u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b? \u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u3059\u3079\u3066\u306e\u30e6\u30fc\u30b6\u30fc\u304c\u30af\u30e9\u30a6\u30c9 \u30ea\u30bd\u30fc\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002\u5b9f\u884c\u4e2d\u306e\u3059\u3079\u3066\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u304c\u4eca\u3059\u3050\u306b\u30b7\u30e3\u30c3\u30c8\u30c0\u30a6\u30f3\u3055\u308c\u307e\u3059\u3002
-message.disable.snapshot.policy=\u73fe\u5728\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8 \u30dd\u30ea\u30b7\u30fc\u3092\u7121\u52b9\u306b\u3057\u307e\u3057\u305f\u3002
-message.disable.user=\u3053\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.disable.vpn.access=\u30ea\u30e2\u30fc\u30c8 \u30a2\u30af\u30bb\u30b9 VPN \u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.disable.vpn=VPN \u3092\u7121\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.disabling.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-message.disabling.vpc.offering=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-message.disallowed.characters=\u8a31\u53ef\u3055\u308c\u306a\u3044\u6587\u5b57\: <,>
-message.download.ISO=ISO \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u306b\u306f <a href\="\#">00000</a> \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059
-message.download.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u306b\u306f <a href\="\#">00000</a> \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059
-message.download.volume.confirm=\u3053\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.download.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u306b\u306f <a href\="\#">00000</a> \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059
-message.edit.account=\u7de8\u96c6 (\u300c-1\u300d\u306f\u3001\u30ea\u30bd\u30fc\u30b9\u4f5c\u6210\u306e\u91cf\u306b\u5236\u9650\u304c\u306a\u3044\u3053\u3068\u3092\u793a\u3057\u307e\u3059)
-message.edit.confirm=\u4fdd\u5b58\u3059\u308b\u524d\u306b\u5909\u66f4\u5185\u5bb9\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044
-message.edit.limits=\u6b21\u306e\u30ea\u30bd\u30fc\u30b9\u306b\u5236\u9650\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u300c-1\u300d\u306f\u3001\u30ea\u30bd\u30fc\u30b9\u4f5c\u6210\u306b\u5236\u9650\u304c\u306a\u3044\u3053\u3068\u3092\u793a\u3057\u307e\u3059\u3002
-message.edit.traffic.type=\u3053\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e\u306b\u95a2\u9023\u4ed8\u3051\u308b\u30c8\u30e9\u30d5\u30a3\u30c3\u30af \u30e9\u30d9\u30eb\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.enable.account=\u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.enabled.vpn.ip.sec=IPSec \u4e8b\u524d\u5171\u6709\u30ad\u30fc\:
-message.enabled.vpn=\u73fe\u5728\u3001\u30ea\u30e2\u30fc\u30c8 \u30a2\u30af\u30bb\u30b9 VPN \u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u6b21\u306e IP \u30a2\u30c9\u30ec\u30b9\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002
-message.enable.user=\u3053\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.enable.vpn.access=\u73fe\u5728\u3053\u306e IP \u30a2\u30c9\u30ec\u30b9\u306b\u5bfe\u3059\u308b VPN \u306f\u7121\u52b9\u3067\u3059\u3002VPN \u30a2\u30af\u30bb\u30b9\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.enable.vpn=\u3053\u306e IP \u30a2\u30c9\u30ec\u30b9\u306b\u5bfe\u3059\u308b\u30ea\u30e2\u30fc\u30c8 \u30a2\u30af\u30bb\u30b9 VPN \u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.enabling.network.offering=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-message.enabling.security.group.provider=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7 \u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-message.enabling.vpc.offering=VPC \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-message.enabling.zone.dots=\u30be\u30fc\u30f3\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059...
-message.enabling.zone=\u30be\u30fc\u30f3\u3092\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059
-message.enter.seperated.list.multiple.cidrs=CIDR \u304c\u8907\u6570\u3042\u308b\u5834\u5408\u306f\u3001\u30b3\u30f3\u30de\u533a\u5207\u308a\u306e\u4e00\u89a7\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044
-message.enter.token=\u96fb\u5b50\u30e1\u30fc\u30eb\u306e\u62db\u5f85\u72b6\u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u30c8\u30fc\u30af\u30f3\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.generate.keys=\u3053\u306e\u30e6\u30fc\u30b6\u30fc\u306b\u65b0\u3057\u3044\u30ad\u30fc\u3092\u751f\u6210\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.gslb.delete.confirm=\u3053\u306e GSLB \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.gslb.lb.remove.confirm=GSLB \u304b\u3089\u8ca0\u8377\u5206\u6563\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.guest.traffic.in.advanced.zone=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306f\u3001\u30a8\u30f3\u30c9 \u30e6\u30fc\u30b6\u30fc\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u9593\u306e\u901a\u4fe1\u3067\u3059\u3002\u5404\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30b2\u30b9\u30c8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u901a\u4fe1\u3059\u308b\u305f\u3081\u306e VLAN ID \u306e\u7bc4\u56f2\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.guest.traffic.in.basic.zone=\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306f\u3001\u30a8\u30f3\u30c9 \u30e6\u30fc\u30b6\u30fc\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u9593\u306e\u901a\u4fe1\u3067\u3059\u3002CloudStack \u3067\u30b2\u30b9\u30c8 VM \u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u308b IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u306e\u7bc4\u56f2\u304c\u4e88\u7d04\u6e08\u307f\u306e\u30b7\u30b9\u30c6\u30e0 IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3068\u91cd\u8907\u3057\u306a\u3044\u3088\u3046\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.host.dedicated=\u30db\u30b9\u30c8\u3092\u5c02\u7528\u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f
-message.host.dedication.released=\u5c02\u7528\u30db\u30b9\u30c8\u304c\u89e3\u653e\u3055\u308c\u307e\u3057\u305f
-message.installWizard.click.retry=\u8d77\u52d5\u3092\u518d\u8a66\u884c\u3059\u308b\u306b\u306f\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.installWizard.copy.whatIsACluster=\u30af\u30e9\u30b9\u30bf\u30fc\u306f\u30db\u30b9\u30c8\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3059\u308b\u65b9\u6cd5\u3067\u3059\u30021 \u3064\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u5185\u306e\u30db\u30b9\u30c8\u306f\u3059\u3079\u3066\u540c\u4e00\u306e\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u304b\u3089\u69cb\u6210\u3055\u308c\u3001\u540c\u3058\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u3092\u5b9f\u884c\u3057\u3001\u540c\u3058\u30b5\u30d6\u30cd\u30c3\u30c8\u4e0a\u306b\u3042\u308a\u3001\u540c\u3058\u5171\u6709\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002\u540c\u3058\u30af\u30e9\u30b9\u30bf\u30fc\u5185\u306e\u30db\u30b9\u30c8\u9593\u3067\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u3078\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u4e2d\u65ad\u305b\u305a\u306b\u3001\u4eee\u60f3\u30de\u30b7\u30f3 \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u30e9\u30a4\u30d6 \u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30af\u30e9\u30b9\u30bf\u30fc\u306f CloudStack&\#8482; \u74b0\u5883\u5185\u306e 3 \u756a\u76ee\u306b\u5927\u304d\u306a\u7d44\u7e54\u5358\u4f4d\u3067\u3059\u3002\u30af\u30e9\u30b9\u30bf\u30fc\u306f\u30dd\u30c3\u30c9\u306b\u542b\u307e\u308c\u3001\u30dd\u30c3\u30c9\u306f\u30be\u30fc\u30f3\u306b\u542b\u307e\u308c\u307e\u3059\u3002 <br/><br/>CloudStack&\#8482; \u3067\u306f 1 \u3064\u306e\u30af\u30e9\u30a6\u30c9\u74b0\u5883\u306b\u8907\u6570\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u304c\u3001\u57fa\u672c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u306f\u30af\u30e9\u30b9\u30bf\u30fc\u306f 1 \u3064\u3067\u3059\u3002
-message.installWizard.copy.whatIsAHost=\u30db\u30b9\u30c8\u306f\u5358\u4e00\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u3067\u3001\u30b2\u30b9\u30c8\u4eee\u60f3\u30de\u30b7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30ea\u30bd\u30fc\u30b9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u30d9\u30a2 \u30e1\u30bf\u30eb \u30db\u30b9\u30c8\u3092\u9664\u3044\u3066\u3001\u5404\u30db\u30b9\u30c8\u306b\u306f\u30b2\u30b9\u30c8\u4eee\u60f3\u30de\u30b7\u30f3\u3092\u7ba1\u7406\u3059\u308b\u305f\u3081\u306e\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc \u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002\u30d9\u30a2 \u30e1\u30bf\u30eb \u30db\u30b9\u30c8\u306b\u3064\u3044\u3066\u306f\u3001\u300e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30ac\u30a4\u30c9\u4e0a\u7d1a\u7de8\u300f\u3067\u7279\u6b8a\u4f8b\u3068\u3057\u3066\u8aac\u660e\u3057\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001KVM \u304c\u6709\u52b9\u306a Linux \u30b5\u30fc\u30d0\u30fc\u3001Citrix XenServer \u304c\u52d5\u4f5c\u3059\u308b\u30b5\u30fc\u30d0\u30fc\u3001\u304a\u3088\u3073 ESXi \u30b5\u30fc\u30d0\u30fc\u304c\u30db\u30b9\u30c8\u3067\u3059\u3002\u57fa\u672c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u306f\u3001XenServer \u307e\u305f\u306f KVM \u3092\u5b9f\u884c\u3059\u308b\u5358\u4e00\u306e\u30db\u30b9\u30c8\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<br/><br/>\u30db\u30b9\u30c8\u306f CloudStack&\#8482; \u74b0\u5883\u5185\u306e\u6700\u5c0f\u306e\u7d44\u7e54\u5358\u4f4d\u3067\u3059\u3002\u30db\u30b9\u30c8\u306f\u30af\u30e9\u30b9\u30bf\u30fc\u306b\u542b\u307e\u308c\u3001\u30af\u30e9\u30b9\u30bf\u30fc\u306f\u30dd\u30c3\u30c9\u306b\u542b\u307e\u308c\u3001\u30dd\u30c3\u30c9\u306f\u30be\u30fc\u30f3\u306b\u542b\u307e\u308c\u307e\u3059\u3002
-message.installWizard.copy.whatIsAPod=\u901a\u5e38\u30011 \u3064\u306e\u30dd\u30c3\u30c9\u306f\u5358\u4e00\u306e\u30e9\u30c3\u30af\u3092\u8868\u3057\u307e\u3059\u3002\u540c\u3058\u30dd\u30c3\u30c9\u5185\u306e\u30db\u30b9\u30c8\u306f\u540c\u3058\u30b5\u30d6\u30cd\u30c3\u30c8\u306b\u542b\u307e\u308c\u307e\u3059\u3002 <br/><br/>\u30dd\u30c3\u30c9\u306f CloudStack&\#8482; \u74b0\u5883\u5185\u306e 2 \u756a\u76ee\u306b\u5927\u304d\u306a\u7d44\u7e54\u5358\u4f4d\u3067\u3059\u3002\u30dd\u30c3\u30c9\u306f\u30be\u30fc\u30f3\u306b\u542b\u307e\u308c\u307e\u3059\u3002\u5404\u30be\u30fc\u30f3\u306f 1 \u3064\u4ee5\u4e0a\u306e\u30dd\u30c3\u30c9\u3092\u542b\u3080\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u57fa\u672c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u306f\u3001\u30be\u30fc\u30f3\u5185\u306e\u30dd\u30c3\u30c9\u306f 1 \u3064\u3067\u3059\u3002
-message.installWizard.copy.whatIsAZone=\u30be\u30fc\u30f3\u306f CloudStack&\#8482; \u74b0\u5883\u5185\u306e\u6700\u5927\u306e\u7d44\u7e54\u5358\u4f4d\u3067\u3059\u30021 \u3064\u306e\u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u5185\u306b\u8907\u6570\u306e\u30be\u30fc\u30f3\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u304c\u3001\u901a\u5e38\u3001\u30be\u30fc\u30f3\u306f\u5358\u4e00\u306e\u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u306b\u76f8\u5f53\u3057\u307e\u3059\u3002\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u3092\u30be\u30fc\u30f3\u306b\u7d44\u7e54\u5316\u3059\u308b\u3068\u3001\u30be\u30fc\u30f3\u3092\u7269\u7406\u7684\u306b\u5206\u96e2\u3057\u3066\u5197\u9577\u5316\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u5404\u30be\u30fc\u30f3\u306b\u96fb\u6e90\u3068\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30a2\u30c3\u30d7\u30ea\u30f3\u30af\u3092\u914d\u5099\u3057\u307e\u3059\u3002\u5fc5\u9808\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u30be\u30fc\u30f3\u306f\u9060\u9694\u5730\u306b\u5206\u6563\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482; \u306f\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30ea\u30bd\u30fc\u30b9\u3092\u30d7\u30fc\u30eb\u3059\u308b\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2 \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3001\u30d1\u30d6\u30ea\u30c3\u30af\u3001\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u3001\u304a\u3088\u3073\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u306e Infrastructure as a Service (IaaS) \u30af\u30e9\u30a6\u30c9\u3092\u69cb\u7bc9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002CloudStack&\#8482; \u3092\u4f7f\u7528\u3057\u3066\u3001\u30af\u30e9\u30a6\u30c9 \u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u3092\u69cb\u6210\u3059\u308b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3001\u30b9\u30c8\u30ec\u30fc\u30b8\u3001\u304a\u3088\u3073\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30ce\u30fc\u30c9\u3092\u7ba1\u7406\u3057\u3001\u30af\u30e9\u30a6\u30c9 \u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u74b0\u5883\u3092\u5c55\u958b\u3001\u7ba1\u7406\u3001\u304a\u3088\u3073\u69cb\u6210\u3057\u307e\u3059\u3002<br/><br/>CloudStack&\#8482; \u306f\u30b3\u30e2\u30c7\u30a3\u30c6\u30a3\u5316\u3057\u305f\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u4e0a\u3067\u52d5\u4f5c\u3059\u308b\u500b\u5225\u306e\u4eee\u60f3\u30de\u30b7\u30f3 \u30a4\u30e1\u30fc\u30b8\u3092\u8d85\u3048\u3066\u62e1\u5f35\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u7c21\u5358\u306a\u8a2d\u5b9a\u3067\u52d5\u4f5c\u3059\u308b\u30af\u30e9\u30a6\u30c9 \u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2 \u30b9\u30bf\u30c3\u30af\u306b\u3088\u3063\u3066\u3001\u4eee\u60f3\u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u3064\u307e\u308a\u591a\u5c64\u578b\u306e\u30de\u30eb\u30c1\u30c6\u30ca\u30f3\u30c8 \u30af\u30e9\u30a6\u30c9 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30b5\u30fc\u30d3\u30b9\u3068\u3057\u3066\u69cb\u7bc9\u3057\u3001\u5c55\u958b\u3057\u3001\u7ba1\u7406\u3059\u308b\u305f\u3081\u306b\u4e0d\u53ef\u6b20\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304c\u3059\u3079\u3066\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002\u30aa\u30fc\u30d7\u30f3 \u30bd\u30fc\u30b9 \u30d0\u30fc\u30b8\u30e7\u30f3\u3068\u30d7\u30ec\u30df\u30a2\u30e0 \u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u4e21\u65b9\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u304c\u3001\u30aa\u30fc\u30d7\u30f3 \u30bd\u30fc\u30b9 \u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3082\u307b\u3068\u3093\u3069\u306e\u6a5f\u80fd\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002
-message.installWizard.copy.whatIsPrimaryStorage=CloudStack&\#8482; \u306e\u30af\u30e9\u30a6\u30c9 \u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u3067\u306f\u3001\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3068\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e 2 \u7a2e\u985e\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u3069\u3061\u3089\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u3082\u3001iSCSI\u3001NFS \u30b5\u30fc\u30d0\u30fc\u3001\u307e\u305f\u306f\u30ed\u30fc\u30ab\u30eb \u30c7\u30a3\u30b9\u30af\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<br/><br/><strong>\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8</strong>\u306f\u30af\u30e9\u30b9\u30bf\u30fc\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3001\u305d\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u5185\u306e\u30db\u30b9\u30c8\u3067\u52d5\u4f5c\u3059\u308b\u3059\u3079\u3066\u306e VM \u306e\u5404\u30b2\u30b9\u30c8 VM \u306e\u30c7\u30a3\u30b9\u30af \u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002\u901a\u5e38\u3001\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30b5\u30fc\u30d0\u30fc\u306f\u30db\u30b9\u30c8\u306e\u8fd1\u304f\u306b\u8a2d\u7f6e\u3057\u307e\u3059\u3002
-message.installWizard.copy.whatIsSecondaryStorage=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306f\u30be\u30fc\u30f3\u3068\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3001\u6b21\u306e\u9805\u76ee\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002<ul><li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8 - VM \u306e\u8d77\u52d5\u306b\u4f7f\u7528\u3067\u304d\u308b OS \u30a4\u30e1\u30fc\u30b8\u3067\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306a\u3069\u8ffd\u52a0\u306e\u69cb\u6210\u3092\u542b\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002</li><li>ISO \u30a4\u30e1\u30fc\u30b8 - \u8d77\u52d5\u53ef\u80fd\u307e\u305f\u306f\u8d77\u52d5\u4e0d\u53ef\u306e OS \u30a4\u30e1\u30fc\u30b8\u3067\u3059\u3002</li><li>\u30c7\u30a3\u30b9\u30af \u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8 - VM \u30c7\u30fc\u30bf\u306e\u4fdd\u5b58\u30b3\u30d4\u30fc\u3067\u3059\u3002\u30c7\u30fc\u30bf\u306e\u5fa9\u5143\u307e\u305f\u306f\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u4f5c\u6210\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002</ul>
-message.installWizard.now.building=\u30af\u30e9\u30a6\u30c9\u3092\u69cb\u7bc9\u3057\u3066\u3044\u307e\u3059...
-message.installWizard.tooltip.addCluster.name=\u30af\u30e9\u30b9\u30bf\u30fc\u306e\u540d\u524d\u3067\u3059\u3002CloudStack \u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u306a\u3044\u3001\u4efb\u610f\u306e\u30c6\u30ad\u30b9\u30c8\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002
-message.installWizard.tooltip.addHost.hostname=\u30db\u30b9\u30c8\u306e DNS \u540d\u307e\u305f\u306f IP \u30a2\u30c9\u30ec\u30b9\u3067\u3059\u3002
-message.installWizard.tooltip.addHost.password=XenServer \u5074\u3067\u6307\u5b9a\u3057\u305f\u3001\u4e0a\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u306b\u5bfe\u3059\u308b\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u3059\u3002
-message.installWizard.tooltip.addHost.username=\u901a\u5e38\u306f root \u3067\u3059\u3002
-message.installWizard.tooltip.addPod.name=\u30dd\u30c3\u30c9\u306e\u540d\u524d\u3067\u3059\u3002
-message.installWizard.tooltip.addPod.reservedSystemEndIp=\u3053\u308c\u306f\u3001\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 VM \u304a\u3088\u3073\u30b3\u30f3\u30bd\u30fc\u30eb \u30d7\u30ed\u30ad\u30b7 VM \u3092\u7ba1\u7406\u3059\u308b\u305f\u3081\u306b CloudStack \u3067\u4f7f\u7528\u3059\u308b\u3001\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u306e IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3067\u3059\u3002\u3053\u308c\u3089\u306e IP \u30a2\u30c9\u30ec\u30b9\u306f\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30b5\u30fc\u30d0\u30fc\u3068\u540c\u3058\u30b5\u30d6\u30cd\u30c3\u30c8\u304b\u3089\u5272\u308a\u5f53\u3066\u307e\u3059\u3002
-message.installWizard.tooltip.addPod.reservedSystemGateway=\u3053\u306e\u30dd\u30c3\u30c9\u5185\u306e\u30db\u30b9\u30c8\u306e\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3067\u3059\u3002
-message.installWizard.tooltip.addPod.reservedSystemNetmask=\u30b2\u30b9\u30c8\u306e\u4f7f\u7528\u3059\u308b\u30b5\u30d6\u30cd\u30c3\u30c8\u4e0a\u3067\u4f7f\u7528\u3055\u308c\u308b\u30cd\u30c3\u30c8\u30de\u30b9\u30af\u3067\u3059\u3002
-message.installWizard.tooltip.addPod.reservedSystemStartIp=\u3053\u308c\u306f\u3001\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 VM \u304a\u3088\u3073\u30b3\u30f3\u30bd\u30fc\u30eb \u30d7\u30ed\u30ad\u30b7 VM \u3092\u7ba1\u7406\u3059\u308b\u305f\u3081\u306b CloudStack \u3067\u4f7f\u7528\u3059\u308b\u3001\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u306e IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3067\u3059\u3002\u3053\u308c\u3089\u306e IP \u30a2\u30c9\u30ec\u30b9\u306f\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0 \u30b5\u30fc\u30d0\u30fc\u3068\u540c\u3058\u30b5\u30d6\u30cd\u30c3\u30c8\u304b\u3089\u5272\u308a\u5f53\u3066\u307e\u3059\u3002
-message.installWizard.tooltip.addPrimaryStorage.name=\u30b9\u30c8\u30ec\u30fc\u30b8 \u30c7\u30d0\u30a4\u30b9\u306e\u540d\u524d\u3067\u3059\u3002
-message.installWizard.tooltip.addPrimaryStorage.path=(NFS \u306e\u5834\u5408) \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3055\u308c\u305f\u30d1\u30b9\u3067\u3059\u3002(SharedMountPoint \u306e\u5834\u5408) \u30d1\u30b9\u3067\u3059\u3002KVM \u3067\u306f\u3053\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u304c\u30de\u30a6\u30f3\u30c8\u3055\u308c\u308b\u5404\u30db\u30b9\u30c8\u4e0a\u306e\u30d1\u30b9\u3067\u3059\u3002\u305f\u3068\u3048\u3070\u3001/mnt/primary \u3067\u3059\u3002
-message.installWizard.tooltip.addPrimaryStorage.server=(NFS\u3001iSCSI\u3001\u307e\u305f\u306f PreSetup \u306e\u5834\u5408) \u30b9\u30c8\u30ec\u30fc\u30b8 \u30c7\u30d0\u30a4\u30b9\u306e IP \u30a2\u30c9\u30ec\u30b9\u307e\u305f\u306f DNS \u540d\u3067\u3059\u3002
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u30db\u30b9\u30c8\u3059\u308b NFS \u30b5\u30fc\u30d0\u30fc\u306e IP \u30a2\u30c9\u30ec\u30b9\u3067\u3059\u3002
-message.installWizard.tooltip.addSecondaryStorage.path=\u4e0a\u306b\u6307\u5b9a\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306b\u5b58\u5728\u3059\u308b\u3001\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3055\u308c\u305f\u30d1\u30b9\u3067\u3059\u3002
-message.installWizard.tooltip.addZone.dns1=\u30be\u30fc\u30f3\u5185\u306e\u30b2\u30b9\u30c8 VM \u3067\u4f7f\u7528\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002\u3053\u308c\u3089\u306e DNS \u30b5\u30fc\u30d0\u30fc\u306b\u306f\u3001\u5f8c\u3067\u8ffd\u52a0\u3059\u308b\u30d1\u30d6\u30ea\u30c3\u30af \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002\u30be\u30fc\u30f3\u306e\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u304b\u3089\u3001\u3053\u3053\u3067\u6307\u5b9a\u3059\u308b\u30d1\u30d6\u30ea\u30c3\u30af DNS \u30b5\u30fc\u30d0\u30fc\u306b\u901a\u4fe1\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.installWizard.tooltip.addZone.dns2=\u30be\u30fc\u30f3\u5185\u306e\u30b2\u30b9\u30c8 VM \u3067\u4f7f\u7528\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002\u3053\u308c\u3089\u306e DNS \u30b5\u30fc\u30d0\u30fc\u306b\u306f\u3001\u5f8c\u3067\u8ffd\u52a0\u3059\u308b\u30d1\u30d6\u30ea\u30c3\u30af \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002\u30be\u30fc\u30f3\u306e\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u304b\u3089\u3001\u3053\u3053\u3067\u6307\u5b9a\u3059\u308b\u30d1\u30d6\u30ea\u30c3\u30af DNS \u30b5\u30fc\u30d0\u30fc\u306b\u901a\u4fe1\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.installWizard.tooltip.addZone.internaldns1=\u30be\u30fc\u30f3\u5185\u306e\u30b7\u30b9\u30c6\u30e0 VM \u3067\u4f7f\u7528\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002\u3053\u308c\u3089\u306e DNS \u30b5\u30fc\u30d0\u30fc\u306f\u3001\u30b7\u30b9\u30c6\u30e0 VM \u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u4ecb\u3057\u3066\u30a2\u30af\u30bb\u30b9\u3055\u308c\u307e\u3059\u3002\u30dd\u30c3\u30c9\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9\u304b\u3089\u3001\u3053\u3053\u3067\u6307\u5b9a\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u306b\u901a\u4fe1\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.installWizard.tooltip.addZone.internaldns2=\u30be\u30fc\u30f3\u5185\u306e\u30b7\u30b9\u30c6\u30e0 VM \u3067\u4f7f\u7528\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002\u3053\u308c\u3089\u306e DNS \u30b5\u30fc\u30d0\u30fc\u306f\u3001\u30b7\u30b9\u30c6\u30e0 VM \u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u4ecb\u3057\u3066\u30a2\u30af\u30bb\u30b9\u3055\u308c\u307e\u3059\u3002\u30dd\u30c3\u30c9\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9\u304b\u3089\u3001\u3053\u3053\u3067\u6307\u5b9a\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u306b\u901a\u4fe1\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.installWizard.tooltip.addZone.name=\u30be\u30fc\u30f3\u306e\u540d\u524d\u3067\u3059\u3002
-message.installWizard.tooltip.configureGuestTraffic.description=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8aac\u660e\u3067\u3059\u3002
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=\u3053\u306e\u30be\u30fc\u30f3\u306e\u30b2\u30b9\u30c8\u306b\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u304c\u3067\u304d\u308b IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3067\u3059\u3002\u4f7f\u7528\u3059\u308b NIC \u304c 1 \u3064\u306e\u5834\u5408\u306f\u3001\u3053\u308c\u3089\u306e IP \u30a2\u30c9\u30ec\u30b9\u306f\u30dd\u30c3\u30c9\u306e CIDR \u3068\u540c\u3058 CIDR \u306b\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=\u30b2\u30b9\u30c8\u306e\u4f7f\u7528\u3059\u308b\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3067\u3059\u3002
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=\u30b2\u30b9\u30c8\u306e\u4f7f\u7528\u3059\u308b\u30b5\u30d6\u30cd\u30c3\u30c8\u4e0a\u3067\u4f7f\u7528\u3055\u308c\u308b\u30cd\u30c3\u30c8\u30de\u30b9\u30af\u3067\u3059\u3002
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=\u3053\u306e\u30be\u30fc\u30f3\u306e\u30b2\u30b9\u30c8\u306b\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u304c\u3067\u304d\u308b IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3067\u3059\u3002\u4f7f\u7528\u3059\u308b NIC \u304c 1 \u3064\u306e\u5834\u5408\u306f\u3001\u3053\u308c\u3089\u306e IP \u30a2\u30c9\u30ec\u30b9\u306f\u30dd\u30c3\u30c9\u306e CIDR \u3068\u540c\u3058 CIDR \u306b\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.installWizard.tooltip.configureGuestTraffic.name=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u540d\u524d\u3067\u3059\u3002
-message.instance.scaled.up.confirm=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u30b5\u30a4\u30ba\u3092\u62e1\u5927\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.instanceWizard.noTemplates=\u4f7f\u7528\u53ef\u80fd\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u4e92\u63db\u6027\u306e\u3042\u308b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u3001\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9 \u30a6\u30a3\u30b6\u30fc\u30c9\u3092\u518d\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.ip.address.changed=\u304a\u4f7f\u3044\u306e IP \u30a2\u30c9\u30ec\u30b9\u304c\u5909\u66f4\u3055\u308c\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u4e00\u89a7\u3092\u66f4\u65b0\u3057\u307e\u3059\u304b? \u305d\u306e\u5834\u5408\u306f\u3001\u8a73\u7d30\u30da\u30a4\u30f3\u304c\u9589\u3058\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.iso.desc=\u30c7\u30fc\u30bf\u307e\u305f\u306f OS \u8d77\u52d5\u53ef\u80fd\u30e1\u30c7\u30a3\u30a2\u3092\u542b\u3080\u30c7\u30a3\u30b9\u30af \u30a4\u30e1\u30fc\u30b8
-message.join.project=\u3053\u308c\u3067\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u53c2\u52a0\u3057\u307e\u3057\u305f\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u53c2\u7167\u3059\u308b\u306b\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30d3\u30e5\u30fc\u306b\u5207\u308a\u66ff\u3048\u3066\u304f\u3060\u3055\u3044\u3002
-message.launch.vm.on.private.network=\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u306a\u5c02\u7528\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u8d77\u52d5\u3057\u307e\u3059\u304b?
-message.launch.zone=\u30be\u30fc\u30f3\u3092\u8d77\u52d5\u3059\u308b\u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u6b21\u306e\u624b\u9806\u306b\u9032\u3093\u3067\u304f\u3060\u3055\u3044\u3002
-message.link.domain.to.ldap=\u3053\u306e\u30c9\u30e1\u30a4\u30f3\u3068 LDAP \u306e\u81ea\u52d5\u540c\u671f\u3092\u6709\u52b9\u5316\u3059\u308b
-message.listView.subselect.multi=(Ctrl/Cmd \u30ad\u30fc\u3092\u62bc\u3057\u306a\u304c\u3089\u30af\u30ea\u30c3\u30af)
-message.lock.account=\u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u30ed\u30c3\u30af\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b? \u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u3059\u3079\u3066\u306e\u30e6\u30fc\u30b6\u30fc\u304c\u30af\u30e9\u30a6\u30c9 \u30ea\u30bd\u30fc\u30b9\u3092\u7ba1\u7406\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002\u305d\u306e\u5f8c\u3082\u65e2\u5b58\u306e\u30ea\u30bd\u30fc\u30b9\u306b\u306f\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002
-message.migrate.instance.confirm=\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u79fb\u884c\u5148\u306f\u6b21\u306e\u30db\u30b9\u30c8\u3067\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.migrate.instance.to.host=\u5225\u306e\u30db\u30b9\u30c8\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u79fb\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.migrate.instance.to.ps=\u5225\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u79fb\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.migrate.router.confirm=\u30eb\u30fc\u30bf\u30fc\u306e\u79fb\u884c\u5148\u306f\u6b21\u306e\u30db\u30b9\u30c8\u3067\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.migrate.systemvm.confirm=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u79fb\u884c\u5148\u306f\u6b21\u306e\u30db\u30b9\u30c8\u3067\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.migrate.volume=\u5225\u306e\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u79fb\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.network.addVM.desc=\u3053\u306e VM \u3092\u8ffd\u52a0\u3059\u308b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u305f\u3081\u306e\u65b0\u3057\u3044 NIC \u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
-message.network.addVMNIC=\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u65b0\u3057\u3044 VM NIC \u3092\u8ffd\u52a0\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.network.remote.access.vpn.configuration=\u30ea\u30e2\u30fc\u30c8\u30a2\u30af\u30bb\u30b9 VPN \u306e\u8a2d\u5b9a\u306f\u751f\u6210\u3055\u308c\u307e\u3057\u305f\u304c\u9069\u7528\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u63a5\u7d9a\u6027\u3092\u78ba\u8a8d\u3057\u3082\u3046\u4e00\u5ea6\u8a66\u3057\u3066\u304f\u3060\u3055\u3044
-message.new.user=\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u65b0\u3057\u3044\u30e6\u30fc\u30b6\u30fc\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u60c5\u5831\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.no.affinity.groups=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u6b21\u306e\u624b\u9806\u306b\u9032\u3093\u3067\u304f\u3060\u3055\u3044\u3002
-message.no.host.available=\u79fb\u884c\u306b\u4f7f\u7528\u3067\u304d\u308b\u30db\u30b9\u30c8\u306f\u3042\u308a\u307e\u305b\u3093
-message.no.network.support.configuration.not.true=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u304c\u6709\u52b9\u306a\u30be\u30fc\u30f3\u304c\u7121\u3044\u305f\u3081\u3001\u8ffd\u52a0\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u624b\u9806 5. \u306b\u9032\u3093\u3067\u304f\u3060\u3055\u3044\u3002
-message.no.network.support=\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u3068\u3057\u3066 vSphere \u3092\u9078\u629e\u3057\u307e\u3057\u305f\u304c\u3001\u3053\u306e\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u306b\u8ffd\u52a0\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u80fd\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u624b\u9806 5. \u306b\u9032\u3093\u3067\u304f\u3060\u3055\u3044\u3002
-message.no.projects.adminOnly=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u3042\u308a\u307e\u305b\u3093\u3002<br/>\u7ba1\u7406\u8005\u306b\u65b0\u3057\u3044\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u3092\u4f9d\u983c\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.no.projects=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u3042\u308a\u307e\u305b\u3093\u3002<br/>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30bb\u30af\u30b7\u30e7\u30f3\u304b\u3089\u65b0\u3057\u3044\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.number.clusters=<h2>\u30af\u30e9\u30b9\u30bf\u30fc<span>\u6570</span></h2>
-message.number.hosts=<h2>\u30db\u30b9\u30c8<span>\u6570</span></h2>
-message.number.pods=<h2>\u30dd\u30c3\u30c9<span>\u6570</span></h2>
-message.number.storage=<h2>\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8 \u30dc\u30ea\u30e5\u30fc\u30e0<span>\u6570</span></h2>
-message.number.zones=<h2>\u30be\u30fc\u30f3<span>\u6570</span></h2>
-message.password.has.been.reset.to=\u6b21\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u306b\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f\:
-message.password.of.the.vm.has.been.reset.to=VM \u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u6b21\u306e\u3088\u3046\u306b\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f\:
-message.pending.projects.1=\u4fdd\u7559\u4e2d\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u62db\u5f85\u72b6\u304c\u3042\u308a\u307e\u3059\u3002
-message.pending.projects.2=\u8868\u793a\u3059\u308b\u306b\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u79fb\u52d5\u3057\u3066\u3001\u4e00\u89a7\u304b\u3089\u62db\u5f85\u72b6\u3092\u9078\u629e\u3057\u307e\u3059\u3002
-message.please.add.at.lease.one.traffic.range=\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7bc4\u56f2\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.please.confirm.remove.ssh.key.pair=\u3053\u306e SSH \u30ad\u30fc\u30da\u30a2\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.please.proceed=\u6b21\u306e\u624b\u9806\u306b\u9032\u3093\u3067\u304f\u3060\u3055\u3044\u3002
-message.please.select.a.configuration.for.your.zone=\u30be\u30fc\u30f3\u306e\u69cb\u6210\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.please.select.a.different.public.and.management.network.before.removing=\u524a\u9664\u306e\u524d\u306b\u7570\u306a\u308b\u30d1\u30d6\u30ea\u30c3\u30af\u304a\u3088\u3073\u7ba1\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.please.select.networks=\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.please.select.ssh.key.pair.use.with.this.vm=\u3053\u306e VM \u306b\u4f7f\u7528\u3059\u308b SSH \u30ad\u30fc\u30da\u30a2\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
-message.please.wait.while.zone.is.being.created=\u30be\u30fc\u30f3\u304c\u4f5c\u6210\u3055\u308c\u308b\u307e\u3067\u3057\u3070\u3089\u304f\u304a\u5f85\u3061\u304f\u3060\u3055\u3044...
-message.pod.dedication.released=\u5c02\u7528\u30dd\u30c3\u30c9\u304c\u89e3\u653e\u3055\u308c\u307e\u3057\u305f
-message.portable.ip.delete.confirm=\u3053\u306e\u30dd\u30fc\u30bf\u30d6\u30eb IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.project.invite.sent=\u30e6\u30fc\u30b6\u30fc\u306b\u62db\u5f85\u72b6\u304c\u9001\u4fe1\u3055\u308c\u307e\u3057\u305f\u3002\u30e6\u30fc\u30b6\u30fc\u304c\u62db\u5f85\u3092\u627f\u8afe\u3059\u308b\u3068\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002
-message.public.traffic.in.advanced.zone=\u30af\u30e9\u30a6\u30c9\u5185\u306e VM \u304c\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u3001\u30d1\u30d6\u30ea\u30c3\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u305f\u3081\u306b\u3001\u4e00\u822c\u306b\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a IP \u30a2\u30c9\u30ec\u30b9\u3092\u5272\u308a\u5f53\u3066\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30a8\u30f3\u30c9 \u30e6\u30fc\u30b6\u30fc\u306f CloudStack \u306e\u30e6\u30fc\u30b6\u30fc \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u4f7f\u7528\u3057\u3066\u3053\u308c\u3089\u306e IP \u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3057\u3001\u30b2\u30b9\u30c8 \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u30d1\u30d6\u30ea\u30c3\u30af \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u9593\u306b NAT \u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br/><br/>\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u305f\u3081\u306b\u3001\u5c11\u306a\u304f\u3068\u3082 1 \u3064 IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.public.traffic.in.basic.zone=\u30af\u30e9\u30a6\u30c9\u5185\u306e VM \u304c\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u304b\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u7d4c\u7531\u3067\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u30b5\u30fc\u30d3\u30b9\u3092\u63d0\u4f9b\u3059\u308b\u3068\u3001\u30d1\u30d6\u30ea\u30c3\u30af \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u305f\u3081\u306b\u3001\u4e00\u822c\u306b\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a IP \u30a2\u30c9\u30ec\u30b9\u3092\u5272\u308a\u5f53\u3066\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210\u3059\u308b\u3068\u3001\u30b2\u30b9\u30c8 IP \u30a2\u30c9\u30ec\u30b9\u306e\u307b\u304b\u306b\u3053\u306e\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u304b\u3089\u30a2\u30c9\u30ec\u30b9\u304c 1 \u3064\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3059\u3002\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u3068\u30b2\u30b9\u30c8 IP \u30a2\u30c9\u30ec\u30b9\u306e\u9593\u306b\u3001\u9759\u7684\u306a 1 \u5bfe 1 \u306e NAT \u304c\u81ea\u52d5\u7684\u306b\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3055\u308c\u307e\u3059\u3002\u30a8\u30f3\u30c9 \u30e6\u30fc\u30b6\u30fc\u306f CloudStack \u306e\u30e6\u30fc\u30b6\u30fc \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u4f7f\u7528\u3057\u3066\u8ffd\u52a0\u306e IP \u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3057\u3001\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3068\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u306e\u9593\u306b\u9759\u7684 NAT \u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002
-message.question.are.you.sure.you.want.to.add=\u8ffd\u52a0\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.read.admin.guide.scaling.up=\u30b5\u30a4\u30ba\u3092\u62e1\u5927\u3059\u308b\u524d\u306b\u7ba1\u7406\u8005\u30ac\u30a4\u30c9\u306e\u52d5\u7684\u306a\u30b5\u30a4\u30ba\u5909\u66f4\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u304a\u8aad\u307f\u304f\u3060\u3055\u3044\u3002
-message.recover.vm=\u3053\u306e VM \u3092\u5fa9\u5143\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.redirecting.region=\u30ea\u30fc\u30b8\u30e7\u30f3\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3057\u3066\u3044\u307e\u3059...
-message.reinstall.vm=\u6ce8\: \u6ce8\u610f\u3057\u3066\u7d9a\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u308c\u306b\u3088\u308a VM \u304c\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304b\u3089\u518d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059\u3002\u30eb\u30fc\u30c8 \u30c7\u30a3\u30b9\u30af\u4e0a\u306e\u30c7\u30fc\u30bf\u306f\u5931\u308f\u308c\u307e\u3059\u3002\u8ffd\u52a0\u306e\u30c7\u30fc\u30bf \u30dc\u30ea\u30e5\u30fc\u30e0\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u305d\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u306b\u5f71\u97ff\u306f\u3042\u308a\u307e\u305b\u3093\u3002
-message.removed.ssh.key.pair=\u524a\u9664\u3055\u308c\u305f SSH \u30ad\u30fc\u30da\u30a2
-message.remove.ldap=LDAP \u69cb\u6210\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.remove.region=\u3053\u306e\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u3053\u306e\u30ea\u30fc\u30b8\u30e7\u30f3\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.remove.vpc=VPC \u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.remove.vpn.access=\u6b21\u306e\u30e6\u30fc\u30b6\u30fc\u304b\u3089 VPN \u30a2\u30af\u30bb\u30b9\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.reset.password.warning.notPasswordEnabled=\u3053\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306f\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u7ba1\u7406\u3092\u6709\u52b9\u306b\u305b\u305a\u306b\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f\u3002
-message.reset.password.warning.notStopped=\u73fe\u5728\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3059\u308b\u524d\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u505c\u6b62\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.reset.VPN.connection=VPN \u63a5\u7d9a\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.restart.mgmt.server=\u65b0\u3057\u3044\u8a2d\u5b9a\u3092\u6709\u52b9\u306b\u3059\u308b\u305f\u3081\u306b\u3001\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.restart.mgmt.usage.server=\u65b0\u3057\u3044\u8a2d\u5b9a\u3092\u6709\u52b9\u306b\u3059\u308b\u305f\u3081\u306b\u3001\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u3068\u4f7f\u7528\u72b6\u6cc1\u6e2c\u5b9a\u30b5\u30fc\u30d0\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.restart.network=\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u63d0\u4f9b\u3059\u308b\u3059\u3079\u3066\u306e\u30b5\u30fc\u30d3\u30b9\u304c\u4e2d\u65ad\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.restart.vpc.remark=VPC \u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b? <p><small><i>\u6ce8\u610f\: \u975e\u5197\u9577 VPC \u306e\u5197\u9577\u5316\u306f\u5f37\u5236\u7684\u306b\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\u3055\u308c\u307e\u3059.  \u307e\u305f\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306f\u6570\u5206\u9593\u5229\u7528\u51fa\u6765\u306a\u304f\u306a\u308a\u307e\u3059</i>.</small></p>
-message.restart.vpc=VPC \u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.restoreVM=VM \u3092\u5fa9\u5143\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.security.group.usage=(\u8a72\u5f53\u3059\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u3092\u3059\u3079\u3066\u9078\u629e\u3059\u308b\u306b\u306f\u3001<strong>Ctrl \u30ad\u30fc\u3092\u62bc\u3057\u306a\u304c\u3089\u30af\u30ea\u30c3\u30af</strong>\u3057\u3066\u304f\u3060\u3055\u3044)
-message.select.affinity.groups=\u3053\u306e VM \u3092\u8ffd\u52a0\u3059\u308b\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.select.a.zone=\u30be\u30fc\u30f3\u306f\u901a\u5e38\u3001\u5358\u4e00\u306e\u30c7\u30fc\u30bf\u30bb\u30f3\u30bf\u30fc\u306b\u76f8\u5f53\u3057\u307e\u3059\u3002\u8907\u6570\u306e\u30be\u30fc\u30f3\u3092\u8a2d\u5b9a\u3057\u3001\u7269\u7406\u7684\u306b\u5206\u96e2\u3057\u3066\u5197\u9577\u6027\u3092\u6301\u305f\u305b\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u30af\u30e9\u30a6\u30c9\u306e\u4fe1\u983c\u6027\u3092\u9ad8\u3081\u307e\u3059\u3002
-message.select.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.select.iso=\u65b0\u3057\u3044\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e ISO \u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.select.item=\u9805\u76ee\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.select.security.groups=\u65b0\u3057\u3044\u4eee\u60f3\u30de\u30b7\u30f3\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.select.template=\u65b0\u3057\u3044\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.select.tier=\u968e\u5c64\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.set.default.NIC.manual=\u4eca\u3059\u3050\u306b\u3053\u306e VM \u306e\u30c7\u30d5\u30a9\u30eb\u30c8 NIC \u3092\u624b\u52d5\u3067\u66f4\u65b0\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.set.default.NIC=\u3053\u306e NIC \u3092\u3053\u306e VM \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u8a2d\u5b9a\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.setup.physical.network.during.zone.creation.basic=\u57fa\u672c\u30be\u30fc\u30f3\u3092\u8ffd\u52a0\u3059\u308b\u3068\u304d\u306f\u3001\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u4e0a\u306e NIC \u306b\u5bfe\u5fdc\u3059\u308b 1 \u3064\u306e\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3067\u304d\u307e\u3059\u3002\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306f\u3044\u304f\u3064\u304b\u306e\u7a2e\u985e\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u4f1d\u9001\u3057\u307e\u3059\u3002<br/><br/>\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u307b\u304b\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e\u3092<strong>\u30c9\u30e9\u30c3\u30b0 \u30a2\u30f3\u30c9 \u30c9\u30ed\u30c3\u30d7</strong>\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002
-message.setup.physical.network.during.zone.creation=\u62e1\u5f35\u30be\u30fc\u30f3\u3092\u8ffd\u52a0\u3059\u308b\u3068\u304d\u306f\u30011 \u3064\u4ee5\u4e0a\u306e\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u5404\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306f\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u30fc\u4e0a\u306e 1 \u3064\u306e NIC \u306b\u5bfe\u5fdc\u3057\u307e\u3059\u3002\u5404\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u306f\u3001\u7d44\u307f\u5408\u308f\u305b\u306b\u5236\u9650\u304c\u3042\u308a\u307e\u3059\u304c\u30011 \u3064\u4ee5\u4e0a\u306e\u7a2e\u985e\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u901a\u4fe1\u3067\u304d\u307e\u3059\u3002<br/><br/>\u5404\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u5bfe\u3057\u3066<strong>\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u7a2e\u985e\u3092\u30c9\u30e9\u30c3\u30b0 \u30a2\u30f3\u30c9 \u30c9\u30ed\u30c3\u30d7</strong>\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.setup.successful=\u30af\u30e9\u30a6\u30c9\u304c\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3055\u308c\u307e\u3057\u305f\u3002
-message.snapshot.schedule=\u4ee5\u4e0b\u306e\u5229\u7528\u53ef\u80fd\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u30dd\u30ea\u30b7\u30fc\u53c2\u7167\u3092\u9069\u7528\u3059\u308b\u3053\u3068\u3067\u30b9\u30b1\u30b8\u30e5\u30fc\u30ea\u30f3\u30b0\u306b\u3088\u308b\u9023\u7d9a\u3057\u305f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059
-message.specifiy.tag.key.value=\u30bf\u30b0 \u30ad\u30fc\u304a\u3088\u3073\u5024\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044
-message.specify.url=URL \u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044
-message.step.1.continue=\u7d9a\u884c\u3059\u308b\u306b\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u307e\u305f\u306f ISO \u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
-message.step.1.desc=\u65b0\u3057\u3044\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u7528\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002ISO \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u308b\u7a7a\u767d\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002
-message.step.2.continue=\u7d9a\u884c\u3059\u308b\u306b\u306f\u30b5\u30fc\u30d3\u30b9 \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
-message.step.3.continue=\u7d9a\u884c\u3059\u308b\u306b\u306f\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
-message.step.4.continue=\u7d9a\u884c\u3059\u308b\u306b\u306f\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044
-message.step.4.desc=\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u304c\u63a5\u7d9a\u3059\u308b\u30d7\u30e9\u30a4\u30de\u30ea \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.storage.traffic=\u30db\u30b9\u30c8\u3084 CloudStack \u30b7\u30b9\u30c6\u30e0 VM  \u306a\u3069\u3001\u7ba1\u7406\u30b5\u30fc\u30d0\u30fc\u3068\u901a\u4fe1\u3059\u308b CloudStack \u306e\u5185\u90e8\u30ea\u30bd\u30fc\u30b9\u9593\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3067\u3059\u3002\u3053\u3053\u3067\u30b9\u30c8\u30ec\u30fc\u30b8 \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u69cb\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.suspend.project=\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4e00\u6642\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.systems.vms.ready=\u30b7\u30b9\u30c6\u30e0 VM \u306e\u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f\u3002
-message.template.copying=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30b3\u30d4\u30fc\u3057\u3066\u3044\u307e\u3059\u3002
-message.template.desc=VM \u306e\u8d77\u52d5\u306b\u4f7f\u7528\u3067\u304d\u308b OS \u30a4\u30e1\u30fc\u30b8
-message.tier.required=\u968e\u5c64\u306f\u5fc5\u9808\u3067\u3059
-message.tooltip.dns.1=\u30be\u30fc\u30f3\u5185\u306e VM \u3067\u4f7f\u7528\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u306e\u540d\u524d\u3067\u3059\u3002\u30be\u30fc\u30f3\u306e\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u304b\u3089\u3001\u3053\u306e\u30b5\u30fc\u30d0\u30fc\u306b\u901a\u4fe1\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.tooltip.dns.2=\u30be\u30fc\u30f3\u5185\u306e VM \u3067\u4f7f\u7528\u3059\u308b 2 \u756a\u76ee\u306e DNS \u30b5\u30fc\u30d0\u30fc\u306e\u540d\u524d\u3067\u3059\u3002\u30be\u30fc\u30f3\u306e\u30d1\u30d6\u30ea\u30c3\u30af IP \u30a2\u30c9\u30ec\u30b9\u304b\u3089\u3001\u3053\u306e\u30b5\u30fc\u30d0\u30fc\u306b\u901a\u4fe1\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.tooltip.internal.dns.1=\u30be\u30fc\u30f3\u5185\u306e CloudStack \u5185\u90e8\u30b7\u30b9\u30c6\u30e0 VM \u3067\u4f7f\u7528\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u306e\u540d\u524d\u3067\u3059\u3002\u30dd\u30c3\u30c9\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9\u304b\u3089\u3001\u3053\u306e\u30b5\u30fc\u30d0\u30fc\u306b\u901a\u4fe1\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.tooltip.internal.dns.2=\u30be\u30fc\u30f3\u5185\u306e CloudStack \u5185\u90e8\u30b7\u30b9\u30c6\u30e0 VM \u3067\u4f7f\u7528\u3059\u308b DNS \u30b5\u30fc\u30d0\u30fc\u306e\u540d\u524d\u3067\u3059\u3002\u30dd\u30c3\u30c9\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8 IP \u30a2\u30c9\u30ec\u30b9\u304b\u3089\u3001\u3053\u306e\u30b5\u30fc\u30d0\u30fc\u306b\u901a\u4fe1\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.tooltip.network.domain=DNS \u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u3067\u3059\u3002\u3053\u306e\u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u304b\u3089\u30b2\u30b9\u30c8 VM \u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30ab\u30b9\u30bf\u30e0 \u30c9\u30e1\u30a4\u30f3\u540d\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002
-message.tooltip.pod.name=\u3053\u306e\u30dd\u30c3\u30c9\u306e\u540d\u524d\u3067\u3059\u3002
-message.tooltip.reserved.system.gateway=\u30dd\u30c3\u30c9\u5185\u306e\u30db\u30b9\u30c8\u306e\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u3067\u3059\u3002
-message.tooltip.reserved.system.netmask=\u30dd\u30c3\u30c9\u306e\u30b5\u30d6\u30cd\u30c3\u30c8\u3092\u5b9a\u7fa9\u3059\u308b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3067\u3059\u3002CIDR \u8868\u8a18\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002
-message.tooltip.zone.name=\u30be\u30fc\u30f3\u306e\u540d\u524d\u3067\u3059\u3002
-message.update.os.preference=\u3053\u306e\u30db\u30b9\u30c8\u306e OS \u57fa\u672c\u8a2d\u5b9a\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u540c\u69d8\u306e\u57fa\u672c\u8a2d\u5b9a\u3092\u6301\u3064\u3059\u3079\u3066\u306e\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306f\u3001\u5225\u306e\u30db\u30b9\u30c8\u3092\u9078\u629e\u3059\u308b\u524d\u306b\u307e\u305a\u3053\u306e\u30db\u30b9\u30c8\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3059\u3002
-message.update.resource.count=\u3053\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30ea\u30bd\u30fc\u30b9\u6570\u3092\u66f4\u65b0\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.update.ssl.failed=SSL \u8a3c\u660e\u66f8\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
-message.update.ssl.succeeded=SSL \u8a3c\u660e\u66f8\u306e\u66f4\u65b0\u306b\u6210\u529f\u3057\u307e\u3057\u305f
-message.update.ssl=\u5404\u30b3\u30f3\u30bd\u30fc\u30eb \u30d7\u30ed\u30ad\u30b7\u304a\u3088\u3073\u30bb\u30ab\u30f3\u30c0\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3067\u66f4\u65b0\u3059\u308b\u3001X.509 \u6e96\u62e0\u306e\u65b0\u3057\u3044 SSL \u8a3c\u660e\u66f8\u3092\u9001\u4fe1\u3057\u3066\u304f\u3060\u3055\u3044\:
-message.validate.accept=\u6709\u52b9\u306a\u62e1\u5f35\u5b50\u3092\u6301\u3064\u5024\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.creditcard=\u30af\u30ec\u30b8\u30c3\u30c8 \u30ab\u30fc\u30c9\u756a\u53f7\u3092\u6b63\u3057\u304f\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.date.ISO=\u65e5\u4ed8\u3092\u6b63\u3057\u304f\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044 (ISO)\u3002
-message.validate.date=\u65e5\u4ed8\u3092\u6b63\u3057\u304f\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.digits=\u6570\u5b57\u306e\u307f\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.email.address=\u30e1\u30fc\u30eb \u30a2\u30c9\u30ec\u30b9\u3092\u6b63\u3057\u304f\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.equalto=\u540c\u3058\u5024\u3092\u518d\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.fieldrequired=\u3053\u308c\u306f\u5fc5\u9808\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u3059\u3002
-message.validate.fixfield=\u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.instance.name=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u540d\u306f 63 \u6587\u5b57\u4ee5\u5185\u3067\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002ASCII \u6587\u5b57\u306e a\uff5ez\u3001A\uff5eZ\u3001\u6570\u5b57\u306e 0\uff5e9\u3001\u304a\u3088\u3073\u30cf\u30a4\u30d5\u30f3\u306e\u307f\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u6587\u5b57\u3067\u59cb\u307e\u308a\u3001\u6587\u5b57\u307e\u305f\u306f\u6570\u5b57\u3067\u7d42\u308f\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-message.validate.invalid.characters=\u7121\u52b9\u306a\u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002\u4fee\u6574\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.max={0} \u4ee5\u4e0b\u306e\u5024\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.maxlength={0} \u6587\u5b57\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.minlength={0} \u6587\u5b57\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.number=\u6570\u5024\u3092\u6b63\u3057\u304f\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.range={0} \uff5e {1} \u306e\u5024\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.range.length={0} \uff5e {1} \u6587\u5b57\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.validate.URL=URL \u3092\u6b63\u3057\u304f\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.virtual.network.desc=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u5c02\u7528\u4eee\u60f3\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u3059\u3002\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8 \u30c9\u30e1\u30a4\u30f3\u306f VLAN \u5185\u306b\u914d\u7f6e\u3055\u308c\u3001\u30d1\u30d6\u30ea\u30c3\u30af \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306f\u3059\u3079\u3066\u4eee\u60f3\u30eb\u30fc\u30bf\u30fc\u306b\u3088\u3063\u3066\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3055\u308c\u307e\u3059\u3002
-message.vm.create.template.confirm=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3059\u308b\u3068 VM \u304c\u81ea\u52d5\u7684\u306b\u518d\u8d77\u52d5\u3055\u308c\u307e\u3059\u3002
-message.vm.review.launch=\u6b21\u306e\u60c5\u5831\u3092\u53c2\u7167\u3057\u3066\u3001\u4eee\u60f3\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u6b63\u3057\u304f\u8a2d\u5b9a\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.vnmc.available.list=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u4e00\u89a7\u3067 VNMC \u3092\u5229\u7528\u3067\u304d\u307e\u305b\u3093\u3002
-message.vnmc.not.available.list=\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u4e00\u89a7\u3067 VNMC \u3092\u5229\u7528\u3067\u304d\u307e\u305b\u3093\u3002
-message.volume.create.template.confirm=\u3053\u306e\u30c7\u30a3\u30b9\u30af \u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b? \u30dc\u30ea\u30e5\u30fc\u30e0 \u30b5\u30a4\u30ba\u306b\u3088\u3063\u3066\u306f\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u4f5c\u6210\u306b\u306f\u6570\u5206\u4ee5\u4e0a\u304b\u304b\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-message.waiting.for.builtin.templates.to.load=\u7d44\u307f\u8fbc\u307f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u30ed\u30fc\u30c9\u3092\u5f85\u6a5f\u3057\u3066\u3044\u307e\u3059...
-message.XSTools61plus.update.failed=[\u5143\u306e XS \u30d0\u30fc\u30b8\u30e7\u30f3\u306f 6.1 \u4ee5\u964d] \u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u66f4\u65b0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30a8\u30e9\u30fc\:
-message.you.must.have.at.least.one.physical.network=\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u7269\u7406\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304c\u5fc5\u8981\u3067\u3059
-message.your.cloudstack.is.ready=CloudStack \u306e\u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f\!
-message.Zone.creation.complete=\u30be\u30fc\u30f3\u304c\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f
-message.zone.creation.complete.would.you.like.to.enable.this.zone=\u30be\u30fc\u30f3\u304c\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u306e\u30be\u30fc\u30f3\u3092\u6709\u52b9\u306b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-message.zone.no.network.selection=\u9078\u629e\u3057\u305f\u30be\u30fc\u30f3\u3067\u306f\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u9078\u629e\u3067\u304d\u307e\u305b\u3093\u3002
-message.zone.step.1.desc=\u30be\u30fc\u30f3\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30e2\u30c7\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.zone.step.2.desc=\u65b0\u3057\u3044\u30be\u30fc\u30f3\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u60c5\u5831\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.zone.step.3.desc=\u65b0\u3057\u3044\u30dd\u30c3\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u60c5\u5831\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-message.zoneWizard.enable.local.storage=\u8b66\u544a\: \u3053\u306e\u30be\u30fc\u30f3\u306e\u30ed\u30fc\u30ab\u30eb \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u6709\u52b9\u306b\u3059\u308b\u5834\u5408\u306f\u3001\u30b7\u30b9\u30c6\u30e0 VM \u306e\u8d77\u52d5\u5834\u6240\u306b\u5fdc\u3058\u3066\u6b21\u306e\u64cd\u4f5c\u304c\u5fc5\u8981\u3067\u3059\u3002<br/><br/>1. \u30b7\u30b9\u30c6\u30e0 VM \u3092\u5171\u6709\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3067\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u5171\u6709\u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u305f\u5f8c\u3067\u30be\u30fc\u30f3\u306b\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30be\u30fc\u30f3\u3092\u7121\u52b9\u72b6\u614b\u304b\u3089\u958b\u59cb\u3059\u308b\u5fc5\u8981\u3082\u3042\u308a\u307e\u3059\u3002<br/><br/>2. \u30b7\u30b9\u30c6\u30e0 VM \u3092\u30ed\u30fc\u30ab\u30eb \u30d7\u30e9\u30a4\u30de\u30ea \u30b9\u30c8\u30ec\u30fc\u30b8\u3067\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u30be\u30fc\u30f3\u3092\u6709\u52b9\u306b\u3059\u308b\u524d\u306b system.vm.use.local.storage \u3092 true \u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<br/><br/><br/>\u7d9a\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
-messgae.validate.min={0} \u4ee5\u4e0a\u306e\u5024\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-mode=\u30e2\u30fc\u30c9
-network.rate=\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u901f\u5ea6
-notification.reboot.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u518d\u8d77\u52d5
-notification.start.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u8d77\u52d5
-notification.stop.instance=\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u505c\u6b62
-side.by.side=\u4e26\u5217
-state.Accepted=\u627f\u8afe\u6e08\u307f
-state.Active=\u30a2\u30af\u30c6\u30a3\u30d6
-state.Allocated=\u5272\u308a\u5f53\u3066\u6e08\u307f
-state.Allocating=\u5272\u308a\u5f53\u3066\u4e2d
-state.BackedUp=\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u6e08\u307f
-state.BackingUp=\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u4e2d
-state.Completed=\u5b8c\u4e86
-state.Creating=\u4f5c\u6210\u4e2d
-state.Declined=\u8f9e\u9000
-state.Destroyed=\u7834\u68c4\u6e08\u307f
-state.detached=\u30c7\u30bf\u30c3\u30c1\u6e08\u307f
-state.Disabled=\u7121\u52b9
-state.Enabled=\u6709\u52b9
-state.Error=\u30a8\u30e9\u30fc
-state.Expunging=\u62b9\u6d88\u4e2d
-state.Migrating=\u79fb\u884c\u4e2d
-state.Pending=\u4fdd\u7559
-state.Ready=\u6e96\u5099\u5b8c\u4e86
-state.Running=\u5b9f\u884c\u4e2d
-state.Starting=\u958b\u59cb\u4e2d
-state.Stopped=\u505c\u6b62\u6e08\u307f
-state.Stopping=\u505c\u6b62\u3057\u3066\u3044\u307e\u3059
-state.Suspended=\u4e00\u6642\u505c\u6b62
-title.upload.volume=\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-ui.listView.filters.all=\u3059\u3079\u3066
-ui.listView.filters.mine=\u81ea\u5206\u306e\u3082\u306e
diff --git a/client/WEB-INF/classes/resources/messages_ko_KR.properties b/client/WEB-INF/classes/resources/messages_ko_KR.properties
deleted file mode 100644
index 28d1ecb..0000000
--- a/client/WEB-INF/classes/resources/messages_ko_KR.properties
+++ /dev/null
@@ -1,1478 +0,0 @@
-# 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.
-
-changed.item.properties=\ud56d\ubaa9 \uc18d\uc131 \ubcc0\uacbd
-confirm.enable.s3=S3 \uae30\ubc18 2\ucc28 \uc800\uc7a5\uc18c \uc9c0\uc6d0\uc744 \ud558\ub824\uba74 \uc544\ub798 \uc815\ubcf4\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-confirm.enable.swift=Swift \uae30\uc220 \uc9c0\uc6d0\ub97c \uc0ac\uc6a9 \ud558\ub824\uba74 \ub2e4\uc74c \uc815\ubcf4\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-error.could.not.change.your.password.because.ldap.is.enabled=LDAP \uae30\ub2a5\uc774 \ud65c\uc131\ud654 \ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \ud328\uc2a4\uc6cc\ub4dc \ubcc0\uacbd\uc744 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4.
-error.could.not.enable.zone=Zone\uc744 \uc0ac\uc6a9 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-error.installWizard.message=\ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc624\ub958\ub97c \uc218\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-error.invalid.username.password=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc0ac\uc6a9\uc790\uba85 \ub610\ub294 \uc554\ud638
-error.login=\uc0ac\uc6a9\uc790\uba85/\uc554\ud638\uac00 \uae30\ub85d\uacfc \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
-error.menu.select=\ud56d\ubaa9\uc774 \uc120\ud0dd\ub418\uc5b4 \uc788\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc791\uc5c5\uc744 \uc2e4\ud589\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-error.mgmt.server.inaccessible=\uad00\ub9ac \uc11c\ubc84\uc5d0 \uc811\uadfc \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc5d0 \uc7ac\uc2e4\ud589\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-error.password.not.match=\uc554\ud638\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc74c
-error.please.specify.physical.network.tags=\ud604\uc7ac \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c \ud0dc\uadf8\ub97c \uc9c0\uc815\ud558\uc9c0 \uc54a\uc73c\uba74, \ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5\uc740 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-error.session.expired=\uc138\uc158 \uc720\ud6a8\uae30\uac04\uc774 \ub04a\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.
-error.something.went.wrong.please.correct.the.following=\ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c \ub0b4\uc6a9\uc744 \uc218\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624
-error.unable.to.reach.management.server=\uad00\ub9ac \uc11c\ubc84\uc640 \ud1b5\uc2e0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-error.unresolved.internet.name=\uc778\ud130\ub137 \uc8fc\uc18c\ub97c \uc54c\uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-force.delete.domain.warning=\uacbd\uace0\:\uc774 \uc635\uc158\uc744 \uc120\ud0dd\ud558\uba74, \ubaa8\ub4e0 \ub0b4\ubd80 \ub3c4\uba54\uc778 \ubc0f \uad00\ub828\ud558\ub294 \ubaa8\ub4e0 \uacc4\uc815 \uc815\ubcf4\uc640 \uadf8 \uc790\uc6d0\uc774 \uc0ad\uc81c\ub429\ub2c8\ub2e4.
-force.delete=\uac15\uc81c \uc0ad\uc81c
-force.remove.host.warning=\uacbd\uace0\:\uc774 \uc635\uc158\uc744 \uc120\ud0dd\ud558\uba74, \uc2e4\ud589\uc911 \ubaa8\ub4e0 \uac00\uc0c1 \uba38\uc2e0\uc774 \uac15\uc81c\uc801\uc73c\ub85c \uc815\uc9c0\ub418\uc5b4 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \ud638\uc2a4\ud2b8\uac00 \uac15\uc81c\uc801\uc73c\ub85c \ud574\uc81c\ub429\ub2c8\ub2e4.
-force.remove=\uac15\uc81c \ud574\uc81c
-force.stop.instance.warning=\uacbd\uace0\: \uc778\uc2a4\ud134\uc2a4 \uac15\uc81c \uc815\uc9c0\ub294 \ucd5c\uc885 \uc218\ub2e8\uc73c\ub85c \ud574 \uc8fc\uc2ed\uc2dc\uc624. \ub370\uc774\ud130\uac00 \uc190\uc2e4\ub420 \ubfd0\ub9cc \uc544\ub2c8\ub77c \uac00\uc0c1 \uba38\uc2e0 \ub3d9\uc791\uc774 \uc77c\uad00\ud558\uc9c0 \uc54a\uac8c \ub420 \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4.
-force.stop=\uac15\uc81c \uc815\uc9c0
-ICMP.code=ICMP \ucf54\ub4dc
-ICMP.type=ICMP \uc885\ub958
-image.directory=\uc774\ubbf8\uc9c0 \ub514\ub809\ud1a0\ub9ac
-inline=\uc9c1\ub82c
-instances.actions.reboot.label=\uc778\uc2a4\ud134\uc2a4 \uc7ac\uc2dc\uc791
-label.about.app=CloudStack \uc18c\uac1c
-label.about=\uc18c\uac1c
-label.accept.project.invitation=\ud504\ub85c\uc81d\ud2b8 \ucd08\ub300 \uc2b9\uc778
-label.account.and.security.group=\uacc4\uc815 \uc815\ubcf4, \ubcf4\uc548 \uadf8\ub8f9
-label.account.id=\uacc4\uc815 \uc815\ubcf4 ID
-label.account.name=\uacc4\uc815 \uc815\ubcf4\uba85
-label.account.specific=\uacc4\uc815 \uc815\ubcf4 \uace0\uc720
-label.accounts=\uacc4\uc815 \uc815\ubcf4
-label.account=\uacc4\uc815 \uc815\ubcf4
-label.acquire.new.ip=\uc0c8\ub85c\uc6b4 IP \uc8fc\uc18c \ucde8\ub4dd
-label.acquire.new.secondary.ip=\uc0c8\ub85c\uc6b4 \ub450\ubc88\uc9f8 IP \uc8fc\uc18c \ucde8\ub4dd
-label.action.attach.disk.processing=\ub514\uc2a4\ud06c\ub97c \uc5f0\uacb0\ud558\ub294 \uc911...
-label.action.attach.disk=\ub514\uc2a4\ud06c \uc5f0\uacb0
-label.action.attach.iso=ISO \uc5f0\uacb0
-label.action.attach.iso.processing=ISO\ub97c \uc5f0\uacb0\ud558\ub294 \uc911...
-label.action.cancel.maintenance.mode.processing=\uc720\uc9c0 \ubcf4\uc218 \ubaa8\ub4dc\ub97c \ucde8\uc18c\ud558\ub294 \uc911...
-label.action.cancel.maintenance.mode=\uc720\uc9c0 \ubcf4\uc218 \ubaa8\ub4dc \ucde8\uc18c
-label.action.change.password=\uc554\ud638 \ubcc0\uacbd
-label.action.change.service.processing=\uc11c\ube44\uc2a4\ub97c \ubcc0\uacbd\ud558\ub294 \uc911...
-label.action.change.service=\uc11c\ube44\uc2a4 \ubcc0\uacbd
-label.action.copy.ISO=ISO \ubcf5\uc0ac
-label.action.copy.template=\ud15c\ud50c\ub9bf \ubcf5\uc0ac
-label.action.create.template.from.vm=VM\uc5d0\uc11c \ud15c\ud50c\ub9bf \ub9cc\ub4e4\uae30
-label.action.create.template.from.volume=\ubcfc\ub968\uc5d0\uc11c \ud15c\ud50c\ub9bf \ub9cc\ub4e4\uae30
-label.action.create.template.processing=\ud15c\ud50c\ub9bf\uc744 \ub9cc\ub4dc\ub294 \uc911...
-label.action.create.template=\ud15c\ud50c\ub9bf \ub9cc\ub4e4\uae30
-label.action.create.vm.processing=VM\ub97c \ub9cc\ub4dc\ub294 \uc911...
-label.action.create.vm=VM \ub9cc\ub4e4\uae30
-label.action.create.volume.processing=\ubcfc\ub968\uc744 \ub9cc\ub4dc\ub294 \uc911...
-label.action.create.volume=\ubcfc\ub968 \ub9cc\ub4e4\uae30
-label.action.delete.account.processing=\uacc4\uc815 \uc815\ubcf4\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.account=\uacc4\uc815 \uc815\ubcf4 \uc0ad\uc81c
-label.action.delete.cluster.processing=\ud074\ub7ec\uc2a4\ud130\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.cluster=\ud074\ub7ec\uc2a4\ud130 \uc0ad\uc81c
-label.action.delete.disk.offering.processing=\ub514\uc2a4\ud06c \uc81c\uacf5\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.disk.offering=\ub514\uc2a4\ud06c \uc81c\uacf5 \uc0ad\uc81c
-label.action.delete.domain.processing=\ub3c4\uba54\uc778\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.domain=\ub3c4\uba54\uc778 \uc0ad\uc81c
-label.action.delete.firewall.processing=\ubc29\ud654\ubcbd(fire wall)\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.firewall=\ubc29\ud654\ubcbd(fire wall) \uaddc\uce59 \uc0ad\uc81c
-label.action.delete.ingress.rule.processing=\uc218\uc2e0 \uaddc\uce59\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.ingress.rule=\uc218\uc2e0 \uaddc\uce59 \uc0ad\uc81c
-label.action.delete.IP.range=IP \uc8fc\uc18c \ubc94\uc704 \uc0ad\uc81c
-label.action.delete.IP.range.processing=IP \uc8fc\uc18c \ubc94\uc704\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.ISO=ISO \uc0ad\uc81c
-label.action.delete.ISO.processing=ISO\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.load.balancer.processing=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.load.balancer=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uaddc\uce59 \uc0ad\uc81c
-label.action.delete.network.processing=\ub124\ud2b8\uc6cc\ud06c\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.network=\ub124\ud2b8\uc6cc\ud06c \uc0ad\uc81c
-label.action.delete.nexusVswitch=Nexus 1000V \uc0ad\uc81c
-label.action.delete.physical.network=\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c \uc0ad\uc81c
-label.action.delete.pod=Pod \uc0ad\uc81c
-label.action.delete.pod.processing=Pod\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.primary.storage.processing=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.primary.storage=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \uc0ad\uc81c
-label.action.delete.secondary.storage=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 \uc0ad\uc81c
-label.action.delete.secondary.storage.processing=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.security.group.processing=\ubcf4\uc548 \uadf8\ub8f9\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.security.group=\ubcf4\uc548 \uadf8\ub8f9 \uc0ad\uc81c
-label.action.delete.service.offering.processing=\uc11c\ube44\uc2a4\uc81c\uacf5\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.service.offering=\uc11c\ube44\uc2a4\uc81c\uacf5 \uc0ad\uc81c
-label.action.delete.snapshot.processing=\uc2a4\ub0c5\uc0f7\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.snapshot=\uc2a4\ub0c5\uc0f7 \uc0ad\uc81c
-label.action.delete.system.service.offering=\uc2dc\uc2a4\ud15c \uc11c\ube44\uc2a4 \uc81c\uacf5 \uc0ad\uc81c
-label.action.delete.template.processing=\ud15c\ud50c\ub9bf\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.template=\ud15c\ud50c\ub9bf \uc0ad\uc81c
-label.action.delete.user.processing=\uc0ac\uc6a9\uc790\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.user=\uc0ac\uc6a9\uc790 \uc0ad\uc81c
-label.action.delete.volume.processing=\ubcfc\ub968\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.volume=\ubcfc\ub968 \uc0ad\uc81c
-label.action.delete.zone.processing=Zone\uc744 \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.delete.zone=Zone \uc0ad\uc81c
-label.action.destroy.instance.processing=\uc778\uc2a4\ud134\uc2a4\ub97c \ud30c\uae30\ud558\ub294 \uc911...
-label.action.destroy.instance=\uc778\uc2a4\ud134\uc2a4 \ud30c\uae30
-label.action.destroy.systemvm.processing=\uc2dc\uc2a4\ud15c VM\ub97c \ud30c\uae30\ud558\ub294 \uc911...
-label.action.destroy.systemvm=\uc2dc\uc2a4\ud15c VM \ud30c\uae30
-label.action.detach.disk.processing=\ub514\uc2a4\ud06c\ub97c \ubd84\ub9ac \ud558\ub294 \uc911...
-label.action.detach.disk=\ub514\uc2a4\ud06c \ubd84\ub9ac
-label.action.detach.iso=ISO \ubd84\ub9ac
-label.action.detach.iso.processing=ISO\ub97c \ubd84\ub9ac \ud558\ub294 \uc911...
-label.action.disable.account.processing=\uacc4\uc815 \uc815\ubcf4\ub97c \uc911\uc9c0\ud558\ub294 \uc911...
-label.action.disable.account=\uacc4\uc815 \uc815\ubcf4 \uc911\uc9c0
-label.action.disable.cluster.processing=\ud074\ub7ec\uc2a4\ud130\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \uc124\uc815 \uc911...
-label.action.disable.cluster=\ud074\ub7ec\uc2a4\ud130 \uc0ac\uc6a9 \uc548 \ud568
-label.action.disable.nexusVswitch=Nexus 1000V \uc0ac\uc6a9 \uc548 \ud568
-label.action.disable.physical.network=\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c \uc0ac\uc6a9 \uc548 \ud568
-label.action.disable.pod=Pod \uc0ac\uc6a9 \uc548 \ud568
-label.action.disable.pod.processing=Pod\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \uc124\uc815 \uc911...
-label.action.disable.static.NAT.processing=\uc815\uc801 NAT\ub97c \uc911\uc9c0\ud558\ub294 \uc911...
-label.action.disable.static.NAT=\uc815\uc801 NAT \uc0ac\uc6a9 \uc548 \ud568
-label.action.disable.user.processing=\uc0ac\uc6a9\uc790\ub97c \uc911\uc9c0\ud558\ub294 \uc911...
-label.action.disable.user=\uc0ac\uc6a9\uc790 \uc911\uc9c0
-label.action.disable.zone.processing=Zone\uc744 \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \uc124\uc815 \uc911...
-label.action.disable.zone=Zone \uc0ac\uc6a9 \uc548 \ud568
-label.action.download.ISO=ISO \ub2e4\uc6b4\ub85c\ub4dc
-label.action.download.template=\ud15c\ud50c\ub9bf \ub2e4\uc6b4\ub85c\ub4dc
-label.action.download.volume.processing=\ubcfc\ub968\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\ub294 \uc911...
-label.action.download.volume=\ubcfc\ub968 \ub2e4\uc6b4\ub85c\ub4dc
-label.action.edit.account=\uacc4\uc815 \uc815\ubcf4 \ud3b8\uc9d1
-label.action.edit.disk.offering=\ub514\uc2a4\ud06c \uc81c\uacf5 \ud3b8\uc9d1
-label.action.edit.domain=\ub3c4\uba54\uc778 \ud3b8\uc9d1
-label.action.edit.global.setting=\uae00\ub85c\ubc8c \uc124\uc815 \ud3b8\uc9d1
-label.action.edit.host=\ud638\uc2a4\ud2b8 \ud3b8\uc9d1
-label.action.edit.instance=\uc778\uc2a4\ud134\uc2a4 \ud3b8\uc9d1
-label.action.edit.ISO=ISO \ud3b8\uc9d1
-label.action.edit.network.offering=\ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5 \ud3b8\uc9d1
-label.action.edit.network.processing=\ub124\ud2b8\uc6cc\ud06c\ub97c \ud3b8\uc9d1\ud558\ub294 \uc911...
-label.action.edit.network=\ub124\ud2b8\uc6cc\ud06c \ud3b8\uc9d1
-label.action.edit.pod=Pod \ud3b8\uc9d1
-label.action.edit.primary.storage=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \ud3b8\uc9d1
-label.action.edit.resource.limits=\uc790\uc6d0 \uc81c\ud55c \ud3b8\uc9d1
-label.action.edit.service.offering=\uc11c\ube44\uc2a4 \uc81c\uacf5 \ud3b8\uc9d1
-label.action.edit.template=\ud15c\ud50c\ub9bf \ud3b8\uc9d1
-label.action.edit.user=\uc0ac\uc6a9\uc790 \ud3b8\uc9d1
-label.action.edit.zone=Zone \ud3b8\uc9d1
-label.action.enable.account.processing=\uacc4\uc815 \uc815\ubcf4\ub97c \uc0ac\uc6a9 \uc124\uc815 \uc911...
-label.action.enable.account=\uacc4\uc815 \uc815\ubcf4 \uc0ac\uc6a9\ud568
-label.action.enable.cluster.processing=\ud074\ub7ec\uc2a4\ud130\ub97c \uc0ac\uc6a9 \uc124\uc815 \uc911...
-label.action.enable.cluster=\ud074\ub7ec\uc2a4\ud130 \uc0ac\uc6a9\ud568
-label.action.enable.maintenance.mode.processing=\uc720\uc9c0 \ubcf4\uc218 \ubaa8\ub4dc\ub97c \uc0ac\uc6a9 \uc124\uc815 \uc911...
-label.action.enable.maintenance.mode=\uc720\uc9c0 \ubcf4\uc218 \ubaa8\ub4dc \uc0ac\uc6a9\ud568
-label.action.enable.nexusVswitch=Nexus 1000V \uc0ac\uc6a9\ud568
-label.action.enable.physical.network=\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c \uc0ac\uc6a9\ud568
-label.action.enable.pod=Pod \uc0ac\uc6a9\ud568
-label.action.enable.pod.processing=Pod\ub97c \uc0ac\uc6a9 \uc124\uc815 \uc911...
-label.action.enable.static.NAT.processing=\uc815\uc801 NAT\ub97c \uc0ac\uc6a9 \uc124\uc815 \uc911...
-label.action.enable.static.NAT=\uc815\uc801 NAT \uc0ac\uc6a9\ud568
-label.action.enable.user.processing=\uc0ac\uc6a9\uc790\ub97c \uc0ac\uc6a9 \uc124\uc815 \uc911...
-label.action.enable.user=\uc0ac\uc6a9\uc790 \uc0ac\uc6a9\ud568
-label.action.enable.zone.processing=Zone\uc744 \uc0ac\uc6a9 \uc124\uc815 \uc911...
-label.action.enable.zone=Zone \uc0ac\uc6a9\ud568
-label.action.force.reconnect.processing=\uc7ac\uc811\uc18d\ud558\ub294 \uc911...
-label.action.force.reconnect=\uac15\uc81c\uc7ac\uc811\uc18d
-label.action.generate.keys.processing=\ud0a4\ub97c \uc0dd\uc131\ud558\ub294 \uc911...
-label.action.generate.keys=\ud0a4 \uc0dd\uc131
-label.action.list.nexusVswitch=Nexus 1000V \ubaa9\ub85d \ud45c\uc2dc
-label.action.lock.account.processing=\uacc4\uc815 \uc815\ubcf4\ub97c \uc7a0\uadf8\ub294 \uc911...
-label.action.lock.account=\uacc4\uc815 \uc815\ubcf4 \uc7a0\uae08
-label.action.manage.cluster.processing=\ud074\ub7ec\uc2a4\ud130\ub97c \uad00\ub9ac \ub300\uc0c1\uc73c\ub85c \ud558\ub294 \uc911...
-label.action.manage.cluster=\ud074\ub7ec\uc2a4\ud130 \uad00\ub9ac \ub3d9\uc791
-label.action.migrate.instance.processing=\uc778\uc2a4\ud134\uc2a4\ub97c \uc774\uc804\ud558\ub294 \uc911...
-label.action.migrate.instance=\uc778\uc2a4\ud134\uc2a4 \uc774\uc804
-label.action.migrate.router.processing=\ub77c\uc6b0\ud130\ub97c \uc774\uc804\ud558\ub294 \uc911...
-label.action.migrate.router=\ub77c\uc6b0\ud130 \uc774\uc804
-label.action.migrate.systemvm.processing=\uc2dc\uc2a4\ud15c VM\ub97c \uc774\uc804\ud558\ub294 \uc911
-label.action.migrate.systemvm=\uc2dc\uc2a4\ud15c VM \uc774\uc804
-label.action.reboot.instance.processing=\uc778\uc2a4\ud134\uc2a4\ub97c \uc7ac\uc2dc\uc791\ud558\ub294 \uc911...
-label.action.reboot.instance=\uc778\uc2a4\ud134\uc2a4 \uc7ac\uc2dc\uc791
-label.action.reboot.router.processing=\ub77c\uc6b0\ud130\ub97c \uc7ac\uc2dc\uc791\ud558\ub294 \uc911...
-label.action.reboot.router=\ub77c\uc6b0\ud130 \uc7ac\uc2dc\uc791
-label.action.reboot.systemvm.processing=\uc2dc\uc2a4\ud15c VM\ub97c \uc7ac\uc2dc\uc791\ud558\ub294 \uc911...
-label.action.reboot.systemvm=\uc2dc\uc2a4\ud15c VM \uc7ac\uc2dc\uc791
-label.action.recurring.snapshot=\uc815\uae30 \uc2a4\ub0c5\uc0f7
-label.action.register.iso=ISO \ub4f1\ub85d
-label.action.release.ip=IP \uc8fc\uc18c \ud574\uc81c
-label.action.release.ip.processing=IP \uc8fc\uc18c\ub97c \ud574\uc81c\ud558\ub294 \uc911...
-label.action.remove.host.processing=\ud638\uc2a4\ud2b8\ub97c \uc0ad\uc81c\ud558\ub294 \uc911...
-label.action.remove.host=\ud638\uc2a4\ud2b8 \uc0ad\uc81c
-label.action.reset.password.processing=\uc554\ud638\ub97c \uc7ac\uc124\uc815 \ud558\ub294 \uc911...
-label.action.reset.password=\uc554\ud638 \uc7ac\uc124\uc815
-label.action.resize.volume.processing=\ubcfc\ub968 \ud06c\uae30 \ubcc0\uacbd \uc911...
-label.action.resize.volume=\ubcfc\ub968 \ud06c\uae30 \ubcc0\uacbd
-label.action.resource.limits=\uc790\uc6d0 \uc81c\ud55c
-label.action.restore.instance.processing=\uc778\uc2a4\ud134\uc2a4\ub97c \ubcf5\uc6d0\ud558\ub294 \uc911...
-label.action.restore.instance=\uc778\uc2a4\ud134\uc2a4 \ubcf5\uc6d0
-label.action.start.instance.processing=\uc778\uc2a4\ud134\uc2a4\ub97c \uc2dc\uc791\ud558\ub294 \uc911...
-label.action.start.instance=\uc778\uc2a4\ud134\uc2a4 \uc2dc\uc791
-label.action.start.router.processing=\ub77c\uc6b0\ud130\ub97c \uc2dc\uc791\ud558\ub294 \uc911...
-label.action.start.router=\ub77c\uc6b0\ud130 \uc2dc\uc791
-label.action.start.systemvm.processing=\uc2dc\uc2a4\ud15c VM\ub97c \uc2dc\uc791\ud558\ub294 \uc911...
-label.action.start.systemvm=\uc2dc\uc2a4\ud15c VM \uc2dc\uc791
-label.action.stop.instance.processing=\uc778\uc2a4\ud134\uc2a4\ub97c \uc815\uc9c0\ud558\ub294 \uc911...
-label.action.stop.instance=\uc778\uc2a4\ud134\uc2a4 \uc815\uc9c0
-label.action.stop.router.processing=\ub77c\uc6b0\ud130\ub97c \uc815\uc9c0\ud558\ub294 \uc911...
-label.action.stop.router=\ub77c\uc6b0\ud130 \uc815\uc9c0
-label.action.stop.systemvm.processing=\uc2dc\uc2a4\ud15c VM\ub97c \uc815\uc9c0\ud558\ub294 \uc911...
-label.action.stop.systemvm=\uc2dc\uc2a4\ud15c VM \uc815\uc9c0
-label.actions=\uc791\uc5c5
-label.action.take.snapshot.processing=\uc2a4\ub0c5\uc0f7\uc744 \ub9cc\ub4dc\ub294 \uc911....
-label.action.take.snapshot=\uc2a4\ub0c5\uc0f7 \ub9cc\ub4e4\uae30
-label.action.unmanage.cluster.processing=\ud074\ub7ec\uc2a4\ud130\ub97c \ube44\uad00\ub9ac \ub300\uc0c1\uc73c\ub85c \ud558\ub294 \uc911...
-label.action.unmanage.cluster=\ud074\ub7ec\uc2a4\ud130 \ube44\uad00\ub9ac \ub3d9\uc791
-label.action.update.OS.preference=OS \uae30\ubcf8 \uc124\uc815 \uc5c5\ub370\uc774\ud2b8
-label.action.update.OS.preference.processing=OS \uae30\ubcf8 \uc124\uc815\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \uc911...
-label.action.update.resource.count.processing=\uc790\uc6d0 \uc218\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \uc911...
-label.action.update.resource.count=\uc790\uc6d0 \uc218 \uc5c5\ub370\uc774\ud2b8
-label.action.vmsnapshot.create=VM \uc2a4
-label.action.vmsnapshot.delete=VM
-label.action.vmsnapshot.revert=VM \uc2a4\ub0c5\uc0f7
-label.activate.project=\ud504\ub85c\uc81d\ud2b8 \ud65c\uc131\ud654
-label.active.sessions=\ud65c\uc131 \uc138\uc158
-label.add.accounts.to=\uacc4\uc815 \uc815\ubcf4 \ucd94\uac00\:
-label.add.accounts=\uacc4\uc815 \uc815\ubcf4 \ucd94\uac00
-label.add.account.to.project=\uacc4\uc815 \uc815\ubcf4 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd94\uac00
-label.add.account=\uacc4\uc815 \uc815\ubcf4 \ucd94\uac00
-label.add.ACL=\uad8c\ud55c \uad00\ub9ac(ACL) \ucd94\uac00
-label.add.by.cidr=CIDR \ub85c \ucd94\uac00
-label.add.by.group=\uadf8\ub8f9\uc5d0\uc11c \ucd94\uac00
-label.add.by=\ucd94\uac00 \ub2e8\uc704
-label.add.cluster=\ud074\ub7ec\uc2a4\ud130 \ucd94\uac00
-label.add.compute.offering=\ucef4\ud4e8\ud305 \uc790\uc6d0 \ucd94\uac00
-label.add.direct.iprange=\uc9c1\uc811 IP \uc8fc\uc18c \ubc94\uc704 \ucd94\uac00
-label.add.disk.offering=\ub514\uc2a4\ud06c \uc81c\uacf5 \ucd94\uac00
-label.add.domain=\ub3c4\uba54\uc778 \ucd94\uac00
-label.add.egress.rule=\uc804\uc1a1 \uaddc\uce59 \ucd94\uac00
-label.add.F5.device=F5 \uae30\uae30 \ucd94\uac00
-label.add.firewall=\ubc29\ud654\ubcbd(fire wall) \uaddc\uce59 \ucd94\uac00
-label.add.guest.network=\uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c \ucd94\uac00
-label.add.host=\ud638\uc2a4\ud2b8 \ucd94\uac00
-label.adding.cluster=\ud074\ub7ec\uc2a4\ud130\ub97c \ucd94\uac00\uc911...
-label.adding.failed=\ucd94\uac00\ud560 \uc218 \uc5c6\uc74c
-label.adding.pod=Pod\ub97c \ucd94\uac00 \uac00\ub2a5
-label.adding.processing=\ucd94\uac00\ud558\ub294 \uc911...
-label.add.ingress.rule=\uc218\uc2e0 \uaddc\uce59 \ucd94\uac00
-label.adding.succeeded=\ucd94\uac00 \uc644\ub8cc
-label.adding=\uc815\ubcf4 \ucd94\uac00
-label.adding.user=\uc0ac\uc6a9\uc790 \ucd94\uac00
-label.adding.zone=Zone \ucd94\uac00
-label.add.ip.range=IP \uc8fc\uc18c \ubc94\uc704 \ucd94\uac00
-label.additional.networks=\ucd94\uac00 \ub124\ud2b8\uc6cc\ud06c
-label.add.load.balancer=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58 \ucd94\uac00
-label.add.more=\ub2e4\ub978 \ud56d\ubaa9 \ucd94\uac00
-label.add.netScaler.device=Netscaler \uae30\uae30 \ucd94\uac00
-label.add.network.ACL=\ub124\ud2b8\uc6cc\ud06c \uad8c\ud55c \uad00\ub9ac(ACL) \ucd94\uac00
-label.add.network.device=\ub124\ud2b8\uc6cc\ud06c \uae30\uae30 \ucd94\uac00
-label.add.network.offering=\ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5 \ucd94\uac00
-label.add.network=\ub124\ud2b8\uc6cc\ud06c \ucd94\uac00
-label.add.new.F5=\uc0c8\ub85c\uc6b4 F5 \ucd94\uac00
-label.add.new.gateway=\uc0c8 \uac8c\uc774\ud2b8\uc6e8\uc774 \ucd94\uac00\ud558\uae30
-label.add.new.NetScaler=\uc0c8\ub85c\uc6b4 NetScaler \ucd94\uac00
-label.add.new.SRX=\uc0c8\ub85c\uc6b4 SRX \ucd94\uac00
-label.add.new.tier=\uc0c8 \uacc4\uce35 \ucd94\uac00
-label.add.NiciraNvp.device=Nvp \ucf58\ud2b8\ub864\ub7ec
-label.add.physical.network=\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c \ucd94\uac00
-label.add.pod=Pod \ucd94\uac00
-label.add.port.forwarding.rule=\ud3ec\ud1a0 \uc804\uc1a1 \uaddc\uce59\uc758 \ucd94\uac00
-label.add.primary.storage=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \ucd94\uac00
-label.add.region=\uc9c0\uc5ed
-label.add.resources=\uc790\uc6d0 \ucd94\uac00
-label.add.route=\ub77c\uc6b0\ud2b8 \ucd94\uac00
-label.add.rule=\uaddc\uce59 \ucd94\uac00
-label.add.secondary.storage=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 \ucd94\uac00
-label.add.security.group=\ubcf4\uc548 \uadf8\ub8f9 \ucd94\uac00
-label.add.service.offering=\uc11c\ube44\uc2a4\uc81c\uacf5 \ucd94\uac00
-label.add.SRX.device=SRX \uae30\uae30 \ucd94\uac00
-label.add.static.nat.rule=\uc815\uc801 NAT \uaddc\uce59 \ucd94\uac00
-label.add.static.route=\uc815\uc801 \ub77c\uc6b0\ud2b8 \ucd94\uac00
-label.add.system.service.offering=\uc2dc\uc2a4\ud15c \uc11c\ube44\uc2a4 \uc81c\uacf5 \ucd94\uac00
-label.add.template=\ud15c\ud50c\ub9bf \ucd94\uac00
-label.add.to.group=\uadf8\ub8f9\uc5d0 \ucd94\uac00
-label.add=\ucd94\uac00
-label.add.user=\uc0ac\uc6a9\uc790 \ucd94\uac00
-label.add.vlan=VLAN \ucd94\uac00
-label.add.vms.to.lb=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uaddc\uce59\uc5d0 VM \ucd94\uac00
-label.add.vms=VM \ucd94\uac00
-label.add.VM.to.tier=\uacc4\uce35\uc5d0 VM \ucd94\uac00
-label.add.vm=VM \ucd94\uac00
-label.add.volume=\ubcfc\ub968 \ucd94\uac00
-label.add.vpc=VPC \ucd94\uac00
-label.add.vpn.customer.gateway=VPN \uace0\uac1d \uac8c\uc774\ud2b8\uc6e8\uc774 \ucd94\uac00
-label.add.VPN.gateway=VPN \uac8c\uc774\ud2b8\uc6e8\uc774 \ucd94\uac00
-label.add.vpn.user=VPN \uc0ac\uc6a9\uc790 \ucd94\uac00
-label.add.vxlan=VXLAN \ucd94\uac00
-label.add.zone=Zone \ucd94\uac00
-label.admin.accounts=\uad00\ub9ac\uc790 \uacc4\uc815 \uc815\ubcf4
-label.admin=\uad00\ub9ac\uc790
-label.advanced.mode=\ud655\uc7a5 \ubaa8\ub4dc
-label.advanced.search=\uace0\ub3c4 \uac80\uc0c9
-label.advanced=\ud655\uc7a5
-label.agent.password=\uc5d0\uc774\uc804\ud2b8 \uc554\ud638
-label.agent.username=\uc5d0\uc774\uc804\ud2b8 \uc0ac\uc6a9\uc790\uba85
-label.agree=\ub3d9\uc758
-label.alert=\uc54c\ub9bc \uccb4\uc81c
-label.algorithm=\uc54c\uace0\ub9ac\uc998
-label.allocated=\ud560\ub2f9 \uc644\ub8cc \uc0c1\ud0dc
-label.allocation.state=\ud560\ub2f9 \uc0c1\ud0dc
-label.api.key=API \ud0a4
-label.apply=\uc801\uc6a9
-label.app.name=CloudStack
-label.archive.alerts=\uc54c\ub9bc
-label.archive.events=\uc774\ubca4\ud2b8
-label.assign.to.load.balancer=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58\uc5d0 \uc778\uc2a4\ud134\uc2a4\ub97c \ud560\ub2f9
-label.assign=\ud560\ub2f9
-label.associated.network.id=\uad00\ub828 \ub124\ud2b8\uc6cc\ud06c ID
-label.associated.network=\uad00\ub828 \ub124\ud2b8\uc6cc\ud06c
-label.attached.iso=\uc5f0\uacb0 ISO
-label.author.email=\uc81c\uc791\uc790
-label.availability=\uac00\uc6a9\uc131
-label.availability.zone=\uc774\uc6a9 \uac00\ub2a5 Zone
-label.available.public.ips=\uc0ac\uc6a9 \uac00\ub2a5 \uacf5\uac1c IP \uc8fc\uc18c
-label.available=\uc0ac\uc6a9 \uac00\ub2a5
-label.back=\ub4a4\ub85c
-label.bandwidth=\ub300\uc5ed\ud3ed
-label.basic.mode=\uae30\ubcf8 \ubaa8\ub4dc
-label.basic=\uae30\ubcf8
-label.bootable=\ubd80\ud305 \uac00\ub2a5
-label.broadcast.domain.range=\ube0c\ub85c\ub4dc\uce90\uc2a4\ud2b8 \ub3c4\uba54\uc778 \ubc94\uc704
-label.broadcast.domain.type=\ube0c\ub85c\ub4dc\uce90\uc2a4\ud2b8 \ub3c4\uba54\uc778 \uc885\ub958
-label.by.account=\uacc4\uc815 \uc815\ubcf4
-label.by.alert.type=\uc54c\ub9bc
-label.by.availability=\uac00\uc6a9\uc131
-label.by.date.end=\ub0a0\uc9dc(\uc885\ub8cc\uc77c)
-label.by.date.start=\ub0a0\uc9dc(\uc2dc\uc791\uc77c)
-label.by.domain=\ub3c4\uba54\uc778
-label.by.end.date=\uc885\ub8cc\uc77c
-label.by.event.type=\uc774\ubca4\ud2b8
-label.by.level=\ub808\ubca8
-label.by.pod=Pod
-label.by.role=\uc5ed\ud560
-label.by.start.date=\uc2dc\uc791\uc77c
-label.by.state=\uc0c1\ud0dc
-label.bytes.received=\uc218\uc2e0 \ubc14\uc774\ud2b8
-label.bytes.sent=\uc804\uc1a1 \ubc14\uc774\ud2b8
-label.by.traffic.type=\ud2b8\ub798\ud53d \uc885\ub958
-label.by.type.id=\uc885\ub958 ID
-label.by.type=\uc885\ub958
-label.by.zone=Zone
-label.cancel=\ucde8\uc18c
-label.capacity=\ucc98\ub9ac \ub2a5\ub825
-label.certificate=\uc778\uc99d\uc11c
-label.change.service.offering=\uc11c\ube44\uc2a4 \uc81c\uacf5 \ubcc0\uacbd
-label.change.value=\uac12 \ubcc0\uacbd
-label.character=\ubb38\uc790
-label.cidr.account=CIDR \ub610\ub294 \uacc4\uc815 \uc815\ubcf4/\ubcf4\uc548 \uadf8\ub8f9
-label.cidr=CIDR
-label.CIDR.list=CIDR \ubaa9\ub85d
-label.cidr.list=\uc804\uc1a1\uc6d0 CIDR
-label.CIDR.of.destination.network=\ub300\uc0c1 \ub124\ud2b8\uc6cc\ud06c CIDR
-label.clean.up=\uc0ad\uc81c\ud558\uae30
-label.clear.list=\ubaa9\ub85d \uc0ad\uc81c
-label.close=\ub2eb\uae30
-label.cloud.console=\ud074\ub77c\uc6b0\ub4dc \uad00\ub9ac \ucf58\uc194
-label.cloud.managed=Cloud.com \uad00\ub9ac
-label.cluster.name=\ud074\ub7ec\uc2a4\ud130\uba85
-label.clusters=\ud074\ub7ec\uc2a4\ud130
-label.cluster.type=\ud074\ub7ec\uc2a4\ud130 \uc885\ub958
-label.cluster=\ud074\ub7ec\uc2a4\ud130
-label.clvm=CLVM
-label.code=\ucf54\ub4dc
-label.community=\ucee4\ubba4\ub2c8\ud2f0
-label.compute.and.storage=\ucef4\ud4e8\ud305\uacfc \uc2a4\ud1a0\ub9ac\uc9c0
-label.compute.offering=\ucef4\ud4e8\ud305 \uc790\uc6d0 \uc81c\uacf5
-label.compute=\ucef4\ud4e8\ud305
-label.configuration=\uad6c\uc131
-label.configure.network.ACLs=\ub124\ud2b8\uc6cc\ud06c \uad8c\ud55c \uad00\ub9ac(ACL) \uad6c\uc131
-label.configure=\uad6c\uc131
-label.configure.vpc=VPC \uad6c\uc131
-label.confirmation=\ud655\uc778
-label.confirm.password=\uc554\ud638 \ud655\uc778 \uc785\ub825
-label.congratulations=\uc124\uc815\uc774 \uace7 \uc644\ub8cc\uc785\ub2c8\ub2e4.
-label.conserve.mode=\uc808\uc57d \ubaa8\ub4dc
-label.console.proxy=\ucf58\uc194 \ud504\ub85d\uc2dc
-label.continue.basic.install=\uae30\ubcf8 \uc124\uce58 \uc2e4\ud589
-label.continue=\uc2e4\ud589
-label.corrections.saved=\uc811\uc18d \uc815\ubcf4 \uc800\uc7a5
-label.cpu.allocated.for.VMs=VM\uc5d0 \ud560\ub2f9 \uc644\ub8cc CPU
-label.cpu.allocated=\ud560\ub2f9 \uc644\ub8cc CPU
-label.CPU.cap=CPU \uc81c\ud55c
-label.cpu=CPU
-label.cpu.mhz=CPU (MHz)
-label.cpu.utilized=CPU \uc0ac\uc6a9\uc728
-label.created.by.system=\uc2dc\uc2a4\ud15c \ub9cc\ub4e4\uae30
-label.created=\uc77c\uc2dc \ub9cc\ub4e4\uae30
-label.create.project=\ud504\ub85c\uc81d\ud2b8 \ub9cc\ub4e4\uae30
-label.create.template=\ud15c\ud50c\ub9bf \ub9cc\ub4e4\uae30
-label.create.VPN.connection=VPN \uc811\uc18d \ub9cc\ub4e4\uae30
-label.cross.zones=\ud06c\ub85c\uc2a4 \uc874
-label.custom.disk.size=\ub9de\ucda4 \ub514\uc2a4\ud06c \ud06c\uae30
-label.daily=\ub9e4\uc77c
-label.data.disk.offering=\ub370\uc774\ud0c0 \ub514\uc2a4\ud06c \uc81c\uacf5
-label.date=\ub0a0\uc9dc
-label.day.of.month=\ub9e4\uc6d4 \uc9c0\uc815\uc77c
-label.day.of.week=\ub9e4\uc8fc \uc9c0\uc815\uc77c
-label.dead.peer.detection=\uc815\uc9c0 \ud53c\uc5b4 \uac10\uc9c0
-label.decline.invitation=\ucd08\ub300 \uac70\uc808
-label.dedicated=\uc804\uc6a9
-label.default=\uae30\ubcf8
-label.default.use=\uae30\ubcf8 \uc0ac\uc6a9
-label.default.view=\uae30\ubcf8 \ubcf4\uae30
-label.delete.alerts=\uc54c\ub9bc
-label.delete.events=\uc774\ubca4\ud2b8
-label.delete.F5=F5 \uc0ad\uc81c
-label.delete.gateway=\uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ad\uc81c
-label.delete.NetScaler=NetScaler \uc0ad\uc81c
-label.delete.project=\ud504\ub85c\uc81d\ud2b8 \uc0ad\uc81c
-label.delete.SRX=SRX \uc0ad\uc81c
-label.delete=\uc0ad\uc81c
-label.delete.VPN.connection=VPN \uc811\uc18d \uc0ad\uc81c
-label.delete.VPN.customer.gateway=VPN \uace0\uac1d \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ad\uc81c
-label.delete.VPN.gateway=VPN \uac8c\uc774\ud2b8\uc6e8\uc774\uc0ad\uc81c
-label.delete.vpn.user=VPN \uc0ac\uc6a9\uc790 \uc0ad\uc81c
-label.deleting.failed=\uc0ad\uc81c\ud560 \uc218 \uc5c6\uc74c
-label.deleting.processing=\uc0ad\uc81c\ud558\ub294 \uc911...
-label.description=\uc124\uba85
-label.destination.physical.network.id=\ubaa9\uc801 \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c ID
-label.destination.zone=\ubcf5\uc0ac\ud560 Zone
-label.destroy.router=\ub77c\uc6b0\ud130 \ud30c\uae30
-label.destroy=\ud30c\uae30
-label.detaching.disk=\ub514\uc2a4\ud06c\ub97c \ubd84\ub9ac\ud568
-label.details=\uc0c1\uc138
-label.device.id=\uae30\uae30 ID
-label.devices=\uae30\uae30
-label.dhcp=DHCP
-label.DHCP.server.type=DHCP \uc11c\ubc84 \uc885\ub958
-label.direct.ips=\uc9c1\uc811 IP \uc8fc\uc18c
-label.disabled=\uc0ac\uc6a9 \uc548\ud568
-label.disable.provider=\uc81c\uacf5\uc790 \uc0ac\uc6a9 \uc548 \ud568
-label.disable.vpn=VPN \uc0ac\uc6a9 \uc548 \ud568
-label.disabling.vpn.access=VPN \uc811\uadfc\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \uc124\uc815 \uc911
-label.disk.allocated=\ud560\ub2f9 \uc644\ub8cc \ub514\uc2a4\ud06c
-label.disk.offering=\ub514\uc2a4\ud06c \uc81c\uacf5
-label.disk.size.gb=\ub514\uc2a4\ud06c \ud06c\uae30(GB \ub2e8\uc704)
-label.disk.size=\ub514\uc2a4\ud06c \ud06c\uae30
-label.disk.total=\ub514\uc2a4\ud06c \ud569\uacc4
-label.disk.volume=\ub514\uc2a4\ud06c \ubcfc\ub968
-label.display.text=\ud45c\uc2dc \ud14d\uc2a4\ud2b8
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=\uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c DNS \ub3c4\uba54\uc778
-label.domain.admin=\ub3c4\uba54\uc778 \uad00\ub9ac\uc790
-label.domain.id=\ub3c4\uba54\uc778 ID
-label.domain.name=\ub3c4\uba54\uc778\uba85
-label.domain.router=\ub3c4\uba54\uc778 \ub77c\uc6b0\ud130
-label.domain.suffix=DNS \ub3c4\uba54\uc778 (\uc608\: xyz.com)
-label.domain=\ub3c4\uba54\uc778
-label.done=\uc644\ub8cc
-label.double.quotes.are.not.allowed=\ud070 \ub530\uc634\ud45c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c
-label.download.progress=\ub2e4\uc6b4\ub85c\ub4dc \uc9c4\ud589 \uc0ac\ud56d
-label.drag.new.position=\uc0c8\ub85c\uc6b4 \uc704\uce58\uc5d0 \ub04c\uc5b4\uc624\uae30
-label.edit.lb.rule=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uaddc\uce59 \ud3b8\uc9d1
-label.edit.network.details=\ub124\ud2b8\uc6cc\ud06c \uc0c1\uc138\ud55c \ud3b8\uc9d1
-label.edit.project.details=\ud504\ub85c\uc81d\ud2b8 \uc0c1\uc138 \ud3b8\uc9d1
-label.edit.tags=\ud0dc\uadf8 \ud3b8\uc9d1
-label.edit.traffic.type=\ud2b8\ub798\ud53d \uc885\ub958 \ud3b8\uc9d1
-label.edit=\ud3b8\uc9d1
-label.edit.vpc=VPC \ud3b8\uc9d1
-label.egress.default.policy=Egress \uae30\ubcf8
-label.egress.rule=\uc804\uc1a1 \uaddc\uce59
-label.elastic.IP=\ud0c4\ub825\uc801 IP \uc8fc\uc18c
-label.elastic.LB=\ud0c4\ub825\uc801 \ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720
-label.elastic=\uc624\ub958 \uc2a4\ud2f1
-label.email=\uc804\uc790 \uba54\uc77c
-label.enable.provider=\uc81c\uacf5\uc790 \uc0ac\uc6a9\ud568
-label.enable.swift=Swift \uc0ac\uc6a9\ud568
-label.enable.vpn=VPN \uc0ac\uc6a9\ud568
-label.enabling.vpn.access=VPN \uc811\uadfc\ub97c \uc0ac\uc6a9 \ud558\uace0 \uc788\uc74c
-label.enabling.vpn=VPN\ub97c \uc0ac\uc6a9 \ud558\uace0 \uc788\uc74c
-label.end.IP=\uc885\ub8cc IP \uc8fc\uc18c
-label.endpoint.or.operation=\uc5d4\ub4dc \ud3ec\uc778\ud2b8 \ub610\ub294 \uc791\uc5c5
-label.end.port=\uc885\ub8cc \ud3ec\ud1a0
-label.end.reserved.system.IP=\uc608\uc57d\ub41c \uc885\ub8cc \uc2dc\uc2a4\ud15c IP \uc8fc\uc18c
-label.enter.token=\ud1a0\ud070 \uc785\ub825
-label.error.code=\uc624\ub958 \ucf54\ub4dc
-label.error=\uc624\ub958
-label.ESP.encryption=ESP \uc554\ud638\ud654
-label.ESP.hash=ESP \ud574\uc2dc
-label.ESP.lifetime=ESP \uc720\ud6a8\uae30\uac04(\ucd08)
-label.ESP.policy=ESP \uc815\ucc45
-label.esx.host=ESX/ESXi \ud638\uc2a4\ud2b8
-label.example=\uc608
-label.extractable=\ucd94\ucd9c \uac00\ub2a5
-label.f5=F5
-label.failed=\uc2e4\ud328
-label.featured=\ucd94\ucc9c
-label.fetch.latest=\ucd5c\uc2e0 \uc815\ubcf4 \ucde8\ub4dd
-label.filterBy=\ud544\ud130
-label.firewall=\ubc29\ud654\ubcbd(fire wall)
-label.first.name=\uc774\ub984
-label.format=\ud615\uc2dd
-label.friday=\uae08\uc694\uc77c
-label.full.path=\uc804\uccb4 \uacbd\ub85c
-label.full=\uc804\uccb4
-label.gateway=\uac8c\uc774\ud2b8\uc6e8\uc774
-label.general.alerts=\uc77c\ubc18 \uc54c\ub9bc \uccb4\uc81c
-label.generating.url=URL\ub97c \uc0dd\uc131\ud558\uace0 \uc788\uc74c
-label.gluster.volume=\ubcfc\ub968
-label.go.step.2=\ub2e8\uacc4 2\uc73c\ub85c
-label.go.step.3=\ub2e8\uacc4 3\uc73c\ub85c
-label.go.step.4=\ub2e8\uacc4 4\uc73c\ub85c
-label.go.step.5=\ub2e8\uacc4 5\uc73c\ub85c
-label.gpu=CPU
-label.group.optional=\uadf8\ub8f9(\uc635\uc158)
-label.group=\uadf8\ub8f9
-label.guest.cidr=\uac8c\uc2a4\ud2b8 CIDR
-label.guest.end.ip=\uac8c\uc2a4\ud2b8 \uc885\ub8cc IP \uc8fc\uc18c
-label.guest.gateway=\uac8c\uc2a4\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774
-label.guest.ip.range=\uac8c\uc2a4\ud2b8 IP \uc8fc\uc18c \ubc94\uc704
-label.guest.ip=\uac8c\uc2a4\ud2b8 IP \uc8fc\uc18c
-label.guest.netmask=\uac8c\uc2a4\ud2b8 \ub137 \ub9c8\uc2a4\ud06c
-label.guest.networks=\uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c
-label.guest.start.ip=\uac8c\uc2a4\ud2b8 \uc2dc\uc791 IP \uc8fc\uc18c
-label.guest.traffic=\uac8c\uc2a4\ud2b8 \ud2b8\ub798\ud53d
-label.guest.type=\uac8c\uc2a4\ud2b8 \uc885\ub958
-label.guest=\uac8c\uc2a4\ud2b8
-label.ha.enabled=\uace0\uac00\uc6a9\uc131 \uc0ac\uc6a9\ud568
-label.help=\ub3c4\uc6c0\ub9d0
-label.hide.ingress.rule=\uc218\uc2e0 \uaddc\uce59\uc744 \uc228\uae30\uae30
-label.hints=\uc815\ubcf4
-label.host.MAC=\ud638\uc2a4\ud2b8 MAC
-label.host.name=\ud638\uc2a4\ud2b8\uba85
-label.hosts=\ud638\uc2a4\ud2b8
-label.host.tags=\ud638\uc2a4\ud2b8 \ud0dc\uadf8
-label.host=\ud638\uc2a4\ud2b8
-label.hourly=\ub9e4\uc2dc\uac04
-label.hypervisor.capabilities=\ud558\uc774\ud37c \ubc14\uc774\uc800 \uae30\ub2a5
-label.hypervisors=\ud558\uc774\ud37c\ubc14\uc774\uc800
-label.hypervisor.type=\ud558\uc774\ud37c \ubc14\uc774\uc800 \uc885\ub958
-label.hypervisor=\ud558\uc774\ud37c \ubc14\uc774\uc800
-label.hypervisor.version=\ud558\uc774\ud37c \ubc14\uc774\uc800 \ubc84\uc804
-label.id=ID
-label.IKE.DH=IKE DH
-label.IKE.encryption=IKE \uc554\ud638\ud654
-label.IKE.hash=IKE \ud574\uc2dc
-label.IKE.lifetime=IKE \uc720\ud6a8\uae30\uac04(\ucd08)
-label.IKE.policy=IKE \uc815\ucc45
-label.info=\uc815\ubcf4
-label.ingress.rule=\uc218\uc2e0 \uaddc\uce59
-label.initiated.by=\uc2dc\uc791 \uc0ac\uc6a9\uc790
-label.installWizard.addClusterIntro.subtitle=\ud074\ub7ec\uc2a4\ud130 \ub300\ud55c \uc815\ubcf4
-label.installWizard.addClusterIntro.title=\ud074\ub7ec\uc2a4\ud130 \ucd94\uac00
-label.installWizard.addHostIntro.subtitle=\ud638\uc2a4\ud2b8\uc5d0 \ub300\ud574
-label.installWizard.addHostIntro.title=\ud638\uc2a4\ud2b8 \ucd94\uac00
-label.installWizard.addPodIntro.subtitle=Pod\uc5d0 \ub300\ud55c \uc815\ubcf4
-label.installWizard.addPodIntro.title=Pod \ucd94\uac00
-label.installWizard.addPrimaryStorageIntro.subtitle=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \ub300\ud574
-label.installWizard.addPrimaryStorageIntro.title=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \ucd94\uac00
-label.installWizard.addSecondaryStorageIntro.subtitle=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \ub300\ud574
-label.installWizard.addSecondaryStorageIntro.title=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 \ucd94\uac00
-label.installWizard.addZoneIntro.subtitle=Zone\uc5d0 \ub300\ud55c \uc815\ubcf4
-label.installWizard.addZoneIntro.title=Zone \ucd94\uac00
-label.installWizard.addZone.title=Zone \ucd94\uac00
-label.installWizard.click.launch=[\uc2dc\uc791]\uc744 \ud074\ub9ad\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-label.installWizard.subtitle=\ud604\uc7ac \uac00\uc774\ub4dc \ud22c\uc5b4\ub294 CloudStack\u2122 \ud658\uacbd \uc124\uc815\uc5d0 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4
-label.installWizard.title=CloudStack\u2122 \ub9c8\ubc95\uc0ac
-label.instance.limits=\uc778\uc2a4\ud134\uc2a4 \uc81c\ud55c
-label.instance.name=\uc778\uc2a4\ud134\uc2a4\uba85
-label.instances=\uc778\uc2a4\ud134\uc2a4
-label.instance=\uc778\uc2a4\ud134\uc2a4
-label.internal.dns.1=\ub0b4\ubd80 DNS 1
-label.internal.dns.2=\ub0b4\ubd80 DNS 2
-label.internal.name=\ub0b4\ubd80\uba85
-label.interval.type=\uac04\uaca9 \uc885\ub958
-label.introduction.to.cloudstack=CloudStack\u2122 \uc18c\uac1c
-label.invalid.integer=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc815\uc218\uac12
-label.invalid.number=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc22b\uc790\uac12
-label.invitations=\ucd08\ub300\uc7a5
-label.invited.accounts=\ucd08\ub300\uac00 \ub05d\ub09c \uacc4\uc815 \uc815\ubcf4
-label.invite.to=\ucd08\ub300 \ud504\ub85c\uc81d\ud2b8\:
-label.invite=\ucd08\ub300
-label.ip.address=IP \uc8fc\uc18c
-label.ipaddress=IP \uc8fc\uc18c
-label.ip.allocations=IP \uc8fc\uc18c \ud560\ub2f9
-label.ip=IP
-label.ip.limits=\uacf5\uac1c IP \uc8fc\uc18c \uc81c\ud55c
-label.ip.or.fqdn=IP \uc8fc\uc18c \ub610\ub294 FQDN
-label.ip.range=IP \uc8fc\uc18c \ubc94\uc704
-label.ip.ranges=IP \uc8fc\uc18c \ubc94\uc704
-label.IPsec.preshared.key=IPsec \uc0ac\uc804 \uacf5\uc720 \ud0a4
-label.ips=IP
-label.iscsi=iSCSI
-label.is.default=\uae30\ubcf8
-label.iso.boot=ISO \uc2dc\uc791
-label.iso=ISO
-label.isolated.networks=\ubd84\ub9ac \ub124\ud2b8\uc6cc\ud06c
-label.isolation.method=\ubd84\ub9ac \ubc29\ubc95
-label.isolation.mode=\ubd84\ub9ac \ubaa8\ub4dc
-label.is.redundant.router=\uc911\ubcf5
-label.is.shared=\uacf5\uc720
-label.is.system=\uc2dc\uc2a4\ud15c
-label.item.listing=\ud56d\ubaa9 \ubaa9\ub85d
-label.keep=\uc720\uc9c0
-label.keyboard.type=\ud0a4\ubcf4\ub4dc \uc885\ub958
-label.key=\ud0a4
-label.kvm.traffic.label=KVM \ud2b8\ub798\ud53d \ub77c\ubca8
-label.label=\ub77c\ubca8
-label.lang.chinese=\uc911\uad6d\uc5b4(\uac04\uccb4)
-label.lang.english=\uc601\uc5b4
-label.lang.japanese=\uc77c\ubcf8\uc5b4
-label.lang.korean=\ud55c\uad6d\uc5b4
-label.lang.spanish=\uc2a4\ud398\uc778\uc5b4
-label.last.disconnected=\ub9c8\uc9c0\ub9c9 \uc885\ub8cc \uc2dc\uc810
-label.last.name=\uc131
-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.ldap.link.type=\uc885\ub958
-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
-label.load.balancing=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720
-label.loading=\ub85c\ub4dc \ud558\ub294 \uc911
-label.local.storage=\ub85c\uceec \uc2a4\ud1a0\ub9ac\uc9c0
-label.local=\ub85c\uceec
-label.login=\ub85c\uadf8\uc778
-label.logout=\ub85c\uadf8\uc544\uc6c3
-label.lun=LUN
-label.LUN.number=LUN \ubc88\ud638
-label.make.project.owner=\uacc4\uc815 \uc815\ubcf4 \ud504\ub85c\uc81d\ud2b8 \uc18c\uc720\uc790
-label.management.ips=\uad00\ub9ac IP \uc8fc\uc18c
-label.management=\uad00\ub9ac
-label.manage.resources=\uc790\uc6d0 \uad00\ub9ac
-label.manage=\uad00\ub9ac
-label.max.guest.limit=\ucd5c\ub300 \uac8c\uc2a4\ud2b8 \uc81c\ud55c
-label.maximum=\ucd5c\ub300
-label.max.networks=\ucd5c\ub300 \ub124\ud2b8\uc6cc\ud06c\uc218
-label.max.public.ips=\ucd5c\ub300 \uacf5\uac1c IP \uc8fc\uc18c\uc218
-label.max.snapshots=\ucd5c\ub300 \uc2a4\ub0c5\uc0f7\uc218
-label.max.templates=\ucd5c\ub300 \ud15c\ud50c\ub9bf\uc218
-label.max.vms=\ucd5c\ub300 \uc0ac\uc6a9\uc790 VM\uc218
-label.max.volumes=\ucd5c\ub300 \ubcfc\ub968\uc218
-label.may.continue=\uc2e4\ud589 \ud560 \uc218 \uc788\uc74c
-label.md5.checksum=MD5 \uccb4\ud06c\uc12c
-label.memory.allocated=\ud560\ub2f9\uc644\ub8cc \uba54\ubaa8\ub9ac
-label.memory.mb=\uba54\ubaa8\ub9ac (MB)
-label.memory.total=\uba54\ubaa8\ub9ac \ud569\uacc4
-label.memory=\uba54\ubaa8\ub9ac
-label.memory.used=\uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9
-label.menu.accounts=\uacc4\uc815 \uc815\ubcf4
-label.menu.alerts=\uc54c\ub9bc \uccb4\uacc4
-label.menu.all.accounts=\ubaa8\ub4e0 \uacc4\uc815 \uc815\ubcf4
-label.menu.all.instances=\ubaa8\ub4e0 \uc778\uc2a4\ud134\uc2a4
-label.menu.community.isos=\ucee4\ubba4\ub2c8\ud2f0 ISO
-label.menu.community.templates=\ucee4\ubba4\ub2c8\ud2f0 \ud15c\ud50c\ub9bf
-label.menu.configuration=\uad6c\uc131
-label.menu.dashboard=\ub300\uc2dc \ubcf4\ub4dc
-label.menu.destroyed.instances=\ud30c\uae30\ub41c \uc778\uc2a4\ud134\uc2a4
-label.menu.disk.offerings=\ub514\uc2a4\ud06c\uc81c\uacf5
-label.menu.domains=\ub3c4\uba54\uc778
-label.menu.events=\uc774\ubca4\ud2b8
-label.menu.featured.isos=\ucd94\ucc9c ISO
-label.menu.featured.templates=\ucd94\ucc9c \ud15c\ud50c\ub9bf
-label.menu.global.settings=\uae00\ub85c\ubc8c \uc124\uc815
-label.menu.infrastructure=\uc778\ud504\ub77c\uc2a4\ud2b8\ub7ed\uccd0
-label.menu.instances=\uc778\uc2a4\ud134\uc2a4
-label.menu.ipaddresses=IP \uc8fc\uc18c
-label.menu.isos=ISO
-label.menu.my.accounts=\ub098\uc758 \uacc4\uc815 \uc815\ubcf4
-label.menu.my.instances=\ub098\uc758 \uc778\uc2a4\ud134\uc2a4
-label.menu.my.isos=\ub098\uc758 ISO
-label.menu.my.templates=\ub098\uc758 \ud15c\ud50c\ub9bf
-label.menu.network.offerings=\ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5
-label.menu.network=\ub124\ud2b8\uc6cc\ud06c
-label.menu.physical.resources=\ubb3c\ub9ac \uc790\uc6d0
-label.menu.running.instances=\uc2e4\ud589 \uc911 \uc778\uc2a4\ud134\uc2a4
-label.menu.security.groups=\ubcf4\uc548 \uadf8\ub8f9
-label.menu.service.offerings=\uc11c\ube44\uc2a4\uc81c\uacf5
-label.menu.snapshots=\uc2a4\ub0c5\uc0f7
-label.menu.stopped.instances=\uc815\uc9c0\ub41c \uc778\uc2a4\ud134\uc2a4
-label.menu.storage=\uc2a4\ud1a0\ub9ac\uc9c0
-label.menu.system.service.offerings=\uc2dc\uc2a4\ud15c \uc81c\uacf5
-label.menu.system=\uc2dc\uc2a4\ud15c
-label.menu.system.vms=\uc2dc\uc2a4\ud15c VM
-label.menu.templates=\ud15c\ud50c\ub9bf
-label.menu.virtual.appliances=\uac00\uc0c1 \uc544\ud504\ub77c\uc774\uc548\uc2a4
-label.menu.virtual.resources=\uac00\uc0c1 \uc790\uc6d0
-label.menu.volumes=\ubcfc\ub968
-label.metrics.allocated=\ud560\ub2f9 \uc644\ub8cc \uc0c1\ud0dc
-label.metrics.clusters=\ud074\ub7ec\uc2a4\ud130
-label.metrics.cpu.used.avg=\uc0ac\uc6a9 \uc911
-label.metrics.disk.allocated=\ud560\ub2f9 \uc644\ub8cc \uc0c1\ud0dc
-label.metrics.disk.size=\ud06c\uae30
-label.metrics.disk.storagetype=\uc885\ub958
-label.metrics.disk.used=\uc0ac\uc6a9 \uc911
-label.metrics.hosts=\ud638\uc2a4\ud2b8
-label.metrics.memory.used.avg=\uc0ac\uc6a9 \uc911
-label.metrics.name=\uc774\ub984
-label.metrics.scope=\ubc94\uc704
-label.metrics.state=\uc0c1\ud0dc
-label.migrate.instance.to.host=\ub2e4\ub978 \ud638\uc2a4\ud2b8\uc5d0\uac8c \uc778\uc2a4\ud134\uc2a4 \uc774\uc804
-label.migrate.instance.to.ps=\ub2e4\ub978 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \uc778\uc2a4\ud134\uc2a4 \uc774\uc804
-label.migrate.instance.to=\uc778\uc2a4\ud134\uc2a4 \uc774\uc804 \uc704\uce58\:
-label.migrate.router.to=\ub77c\uc6b0\ud130 \uc774\uc804 \uc704\uce58\:
-label.migrate.systemvm.to=\uc2dc\uc2a4\ud15c VM \uc774\uc804 \uc704\uce58\:
-label.migrate.volume.to.primary.storage=\ub2e4\ub978 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \ubcfc\ub968 \uc774\uc804
-label.minimum=\ucd5c\uc18c
-label.mode=\ubaa8\ub4dc
-label.monday=\uc6d4\uc694\uc77c
-label.monthly=\ub9e4\uc6d4
-label.more.templates=\ub2e4\ub978 \ud15c\ud50c\ub9bf
-label.move.down.row=\uc544\ub798\ub85c \uc774\ub3d9
-label.move.to.bottom=\ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc774\ub3d9
-label.move.to.top=\ucc98\uc74c\uc73c\ub85c \uc774\ub3d9
-label.move.up.row=\uc704\ub85c \uc774\ub3d9
-label.my.account=\ub098\uc758 \uacc4\uc815 \uc815\ubcf4
-label.my.network=\ub0b4 \ub124\ud2b8\uc6cc\ud06c
-label.my.templates=\ub098\uc758 \ud15c\ud50c\ub9bf
-label.name.lower=\uc774\ub984
-label.name.optional=\uc774\ub984(\uc635\uc158)
-label.name=\uc774\ub984
-label.nat.port.range=NAT \ud3ec\ud1a0 \ubc94\uc704
-label.netmask=\ub137 \ub9c8\uc2a4\ud06c
-label.netScaler=NetScaler
-label.network.ACLs=\ub124\ud2b8\uc6cc\ud06c \uad8c\ud55c \uad00\ub9ac(ACL)
-label.network.ACL.total=\ub124\ud2b8\uc6cc\ud06c \uad8c\ud55c \uad00\ub9ac(ACL) \ud569\uacc4
-label.network.ACL=\ub124\ud2b8\uc6cc\ud06c \uad8c\ud55c \uad00\ub9ac(ACL)
-label.network.desc=\ub124\ud2b8\uc6cc\ud06c \uc124\uba85
-label.network.device.type=\ub124\ud2b8\uc6cc\ud06c \uae30\uae30 \uc885\ub958
-label.network.device=\ub124\ud2b8\uc6cc\ud06c \uae30\uae30
-label.network.domain.text=\ub124\ud2b8\uc6cc\ud06c \ub3c4\uba54\uc778
-label.network.domain=\ub124\ud2b8\uc6cc\ud06c \ub3c4\uba54\uc778
-label.network.id=\ub124\ud2b8\uc6cc\ud06c ID
-label.networking.and.security=\ub124\ud2b8\uc6cc\ud06c\uc640 \ubcf4\uc548
-label.network.label.display.for.blank.value=\uae30\ubcf8 \uac8c\uc774\ud2b8\uc6e8\uc774\ub97c \uc0ac\uc6a9
-label.network.name=\ub124\ud2b8\uc6cc\ud06c\uba85
-label.network.offering.display.text=\ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5 \ud45c\uc2dc \ud14d\uc2a4\ud2b8
-label.network.offering.id=\ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5 ID
-label.network.offering.name=\ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5\uba85
-label.network.offering=\ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5
-label.network.rate.megabytes=\ub124\ud2b8\uc6cc\ud06c \uc18d\ub3c4 (MB/\ucd08)
-label.network.rate=\ub124\ud2b8\uc6cc\ud06c \uc18d\ub3c4
-label.network.read=\ub124\ud2b8\uc6cc\ud06c \uc77d\uae30
-label.network.service.providers=\ub124\ud2b8\uc6cc\ud06c \uc11c\ube44\uc2a4 \uc81c\uacf5\uc790
-label.networks=\ub124\ud2b8\uc6cc\ud06c
-label.network.type=\ub124\ud2b8\uc6cc\ud06c \uc885\ub958
-label.network=\ub124\ud2b8\uc6cc\ud06c
-label.network.write=\ub124\ud2b8\uc6cc\ud06c \uae30\uc785
-label.new.password=\uc0c8\ub85c\uc6b4 \uc554\ud638
-label.new.project=\uc0c8 \ud504\ub85c\uc81d\ud2b8
-label.new=\uc2e0\uaddc
-label.new.vm=\uc0c8 VM
-label.next=\ub2e4\uc74c
-label.nexusVswitch=Nexus 1000V
-label.nfs=NFS
-label.nfs.server=NFS \uc11c\ubc84
-label.nfs.storage=NFS \uc2a4\ud1a0\ub9ac\uc9c0
-label.nic.adapter.type=NIC \uc544\ub2f5\ud130 \uc885\ub958
-label.nics=NIC
-label.no.actions=\uc2e4\ud589\ud560 \uc218 \uc788\ub294 \uc791\uc5c5 \uc5c6\uc74c
-label.no.alerts=\ucd5c\uadfc \uc54c\ub9bc \uccb4\uacc4 \uc5c6\uc74c
-label.no.data=\ud45c\uc2dc\ud560 \ub370\uc774\ud130\uac00 \uc5c6\uc74c
-label.no.errors=\ucd5c\uadfc \uc624\ub958\ub294 \uc5c6\uc74c
-label.no.isos=\uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 ISO \uc5c6\uc74c
-label.no.items=\uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ud56d\ubaa9 \uc5c6\uc74c
-label.none=\uc5c6\uc74c
-label.no.security.groups=\uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ubcf4\uc548 \uadf8\ub8f9 \uc5c6\uc74c
-label.not.found=\uac80\uc0c9 \uacb0\uacfc \uc5c6\uc74c
-label.no.thanks=\uc124\uc815 \uc548\ud568
-label.notifications=\uc54c\ub9bc
-label.no=\uc544\ub2c8\uc624
-label.number.of.clusters=\ud074\ub7ec\uc2a4\ud130\uc218
-label.number.of.hosts=\ud638\uc2a4\ud2b8\uc218
-label.number.of.pods=Pod\uc218
-label.number.of.system.vms=\uc2dc\uc2a4\ud15c VM \uc218
-label.number.of.virtual.routers=\uac00\uc0c1 \ub77c\uc6b0\ud130\uc218
-label.number.of.zones=Zone\uc218
-label.num.cpu.cores=CPU \ucf54\uc5b4\uc218
-label.numretries=\uc7ac\uc2dc\ud589 \ud68c\uc218
-label.ocfs2=OCFS2
-label.offer.ha=\uace0\uac00\uc6a9\uc131 \uc81c\uacf5
-label.ok=\ud655\uc778
-label.optional=\uc635\uc158
-label.order=\uc21c\uc11c
-label.os.preference=OS \uae30\ubcf8 \uc124\uc815
-label.os.type=OS \uc885\ub958
-label.outofbandmanagement.password=\uc554\ud638
-label.outofbandmanagement.username=\uc0ac\uc6a9\uc790\uba85
-label.owned.public.ips=\uc18c\uc720 \uacf5\uac1c IP \uc8fc\uc18c
-label.owner.account=\uc18c\uc720\uc790 \uacc4\uc815 \uc815\ubcf4
-label.owner.domain=\uc18c\uc720\uc790 \ub3c4\uba54\uc778
-label.parent.domain=\ubd80\ubaa8 \ub3c4\uba54\uc778
-label.password.enabled=\uc554\ud638 \uad00\ub9ac \uc0ac\uc6a9
-label.password=\uc554\ud638
-label.path=\uacbd\ub85c
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.physical.network.ID=\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c ID
-label.physical.network=\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c
-label.PING.CIFS.password=PING CIFS \uc554\ud638
-label.PING.CIFS.username=PING CIFS \uc0ac\uc6a9\uc790\uba85
-label.PING.dir=PING \ub514\ub809\ud1a0\ub9ac
-label.PING.storage.IP=PING \ub300\uc0c1 \uc2a4\ud1a0\ub9ac\uc9c0 IP \uc8fc\uc18c
-label.please.specify.netscaler.info=Netscaler \uc815\ubcf4\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624
-label.please.wait=\uae30\ub2e4\ub824 \uc8fc\uc2ed\uc2dc\uc624...
-label.pod.name=Pod\uba85
-label.pod=Pod
-label.pods=Pod
-label.port.forwarding.policies=\ud3ec\ud1a0 \uc804\uc1a1 \uc815\ucc45
-label.port.forwarding=\ud3ec\ud1a0 \uc804\uc1a1
-label.port.range=\ud3ec\ud1a0 \ubc94\uc704
-label.PreSetup=PreSetup
-label.previous=\ub4a4\ub85c
-label.prev=\ub4a4\ub85c
-label.primary.allocated=\ud560\ub2f9 \uc644\ub8cc \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0
-label.primary.network=\uae30\ubcf8 \ub124\ud2b8\uc6cc\ud06c
-label.primary.storage.count=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \uadf8\ub8f9
-label.primary.storage=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0
-label.primary.used=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \uc0ac\uc6a9\ub7c9
-label.private.Gateway=\uc0ac\uc124 \uac8c\uc774\ud2b8\uc6e8\uc774
-label.private.interface=\uc0ac\uc124 \uc778\ud130\ud398\uc774\uc2a4
-label.private.ip.range=\uc0ac\uc124 IP \uc8fc\uc18c \ubc94\uc704
-label.private.ips=\uc0ac\uc124 IP \uc8fc\uc18c
-label.private.ip=\uc0ac\uc124 IP \uc8fc\uc18c
-label.privatekey=PKC\#8 \ube44\ubc00 \ud0a4
-label.private.network=\uc0ac\uc124 \ub124\ud2b8\uc6cc\ud06c
-label.private.port=\uc0ac\uc124 \ud3ec\ud2b8
-label.private.zone=\uc0ac\uc124 Zone
-label.project.dashboard=\ud504\ub85c\uc81d\ud2b8 \ub300\uc2dc \ubcf4\ub4dc
-label.project.id=\ud504\ub85c\uc81d\ud2b8 ID
-label.project.invite=\ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd08\ub300
-label.project.name=\ud504\ub85c\uc81d\ud2b8\uba85
-label.projects=\ud504\ub85c\uc81d\ud2b8
-label.project=\ud504\ub85c\uc81d\ud2b8
-label.project.view=\ud504\ub85c\uc81d\ud2b8 \ubcf4\uae30
-label.protocol=\ud504\ub85c\ud1a0\ucf5c
-label.providers=\uc81c\uacf5\uc790
-label.public.interface=\uacf5\uac1c \uc778\ud130\ud398\uc774\uc2a4
-label.public.ips=\uacf5\uac1c IP \uc8fc\uc18c
-label.public.ip=\uacf5\uac1c IP \uc8fc\uc18c
-label.public.network=\uacf5\uac1c \ub124\ud2b8\uc6cc\ud06c
-label.public.port=\uacf5\uac1c \ud3ec\ud2b8
-label.public.traffic=\uacf5\uac1c \ud2b8\ub798\ud53d
-label.public=\uacf5\uac1c
-label.public.zone=\uacf5\uac1c Zone
-label.purpose=\ubaa9\uc801
-label.Pxe.server.type=PXE \uc11c\ubc84 \uc885\ub958
-label.quota.date=\ub0a0\uc9dc
-label.quota.fullsummary=\ubaa8\ub4e0 \uacc4\uc815 \uc815\ubcf4
-label.quota.state=\uc0c1\ud0dc
-label.reboot=\uc7ac\uc2dc\uc791
-label.recent.errors=\ucd5c\uadfc \uc624\ub958
-label.recover.vm=VM \ubcf5\uad6c
-label.redundant.router.capability=\uc911\ubcf5 \ub77c\uc6b0\ud130 \uae30\ub2a5
-label.redundant.router=\uc911\ubcf5 \ub77c\uc6b0\ud130
-label.redundant.state=\uc911\ubcf5 \uc0c1\ud0dc
-label.refresh=\uc5c5\ub370\uc774\ud2b8
-label.reinstall.vm=VM \uc7ac\uc124\uce58
-label.related=\uad00\ub828
-label.remind.later=\uc54c\ub9bc \ud45c\uc2dc
-label.remove.ACL=\uad8c\ud55c \uad00\ub9ac(ACL) \uc0ad\uc81c
-label.remove.egress.rule=\uc804\uc1a1 \uaddc\uce59 \uc0ad\uc81c
-label.remove.from.load.balancer=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58\uc5d0\uc11c \uc778\uc2a4\ud134\uc2a4\ub97c \uc0ad\uc81c\ud558\ub294 \uc911
-label.remove.ingress.rule=\uc218\uc2e0 \uaddc\uce59 \uc0ad\uc81c
-label.remove.ip.range=IP \uc8fc\uc18c \ubc94\uc704 \uc0ad\uc81c
-label.remove.pf=\ud3ec\ud1a0 \uc804\uc1a1 \uaddc\uce59 \uc0ad\uc81c
-label.remove.project.account=\ud504\ub85c\uc81d\ud2b8 \uacc4\uc815 \uc815\ubcf4 \uc0ad\uc81c
-label.remove.rule=\uaddc\uce59 \uc0ad\uc81c
-label.remove.static.nat.rule=\uc815\uc801 NAT \uaddc\uce59 \uc0ad\uc81c
-label.remove.static.route=\uc815\uc801 \ub77c\uc6b0\ud2b8 \uc0ad\uc81c
-label.remove.tier=\uacc4\uce35 \uc0ad\uc81c
-label.remove.vm.from.lb=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uaddc\uce59\uc5d0 VM \uc0ad\uc81c
-label.remove.vpc=VPC \uc0ad\uc81c
-label.removing=\uc0ad\uc81c\ud558\ub294 \uc911
-label.removing.user=\uc0ac\uc6a9\uc790\ub97c \uc0ad\uc81c\ud558\ub294 \uc911
-label.required=\ud544\uc218 \uc0ac\ud56d
-label.reserved.system.gateway=\uc608\uc57d\ub41c \uc2dc\uc2a4\ud15c \uac8c\uc774\ud2b8\uc6e8\uc774
-label.reserved.system.ip=\uc608\uc57d\ub41c \uc2dc\uc2a4\ud15c IP \uc8fc\uc18c
-label.reserved.system.netmask=\uc608\uc57d\ub41c \uc2dc\uc2a4\ud15c \ub137 \ub9c8\uc2a4\ud06c
-label.reset.VPN.connection=VPN \uc811\uc18d \uc7ac\uc124\uc815
-label.resize.new.offering.id=\uc0c8\ub85c \uc81c\uacf5
-label.resize.shrink.ok=\ubcc0\uacbd \uc644\ub8cc
-label.resource.limits=\uc790\uc6d0 \uc81c\ud55c
-label.resource.state=\uc790\uc6d0 \uc0c1\ud0dc
-label.resources=\uc790\uc6d0
-label.resource=\uc790\uc6d0
-label.restart.network=\ub124\ud2b8\uc6cc\ud06c \uc7ac\uc2dc\uc791
-label.restart.required=\uc7ac\uc2dc\uc791 \ud544\uc694
-label.restart.vpc=VPC \uc7ac\uc2dc\uc791
-label.review=\ud655\uc778
-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.routing=\ub77c\uc6b0\ud305
-label.rules=\uaddc\uce59
-label.running.vms=\uc2e4\ud589\uc911 VM
-label.s3.nfs.path=S3 NFS
-label.s3.nfs.server=S3 NFS
-label.s3.secret_key=\ube44\ubc00 \ud0a4
-label.saturday=\ud1a0\uc694\uc77c
-label.save.and.continue=\uc800\uc7a5\ud558\uae30
-label.save=\uc800\uc7a5
-label.saving.processing=\uc800\uc7a5\ud558\ub294 \uc911...
-label.scope=\ubc94\uc704
-label.search=\uac80\uc0c9
-label.secondary.storage=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0
-label.secondary.storage.count=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 \uadf8\ub8f9
-label.secondary.storage.vm=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 VM
-label.secondary.used=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 \uc0ac\uc6a9\ub7c9
-label.secret.key=\ube44\ubc00 \ud0a4
-label.security.group.name=\ubcf4\uc548 \uadf8\ub8f9\uba85
-label.security.groups.enabled=\ubcf4\uc548 \uadf8\ub8f9 \uc720\ud6a8
-label.security.groups=\ubcf4\uc548 \uadf8\ub8f9
-label.security.group=\ubcf4\uc548 \uadf8\ub8f9
-label.select.a.template=\ud15c\ud50c\ub9bf \uc120\ud0dd
-label.select.a.zone=Zone \uc120\ud0dd
-label.select.instance.to.attach.volume.to=\ubcfc\ub968\uc744 \uc5f0\uacb0\ud558\ub294 \uc778\uc2a4\ud134\uc2a4\ub97c \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624
-label.select.instance=\uc778\uc2a4\ud134\uc2a4 \uc120\ud0dd
-label.select.iso.or.template=ISO \ub610\ub294 \ud15c\ud50c\ub9bf \uc120\ud0dd
-label.select.offering=\uc81c\uacf5 \uc120\ud0dd
-label.select.project=\ud504\ub85c\uc81d\ud2b8 \uc120\ud0dd
-label.select.tier=\uacc4\uce35 \uc120\ud0dd
-label.select=\uc120\ud0dd
-label.select-view=\ud45c\uc2dc \ubc29\ubc95 \uc120\ud0dd
-label.select.vm.for.static.nat=\uc815\uc801 NAT\uc6a9 VM \uc120\ud0dd
-label.sent=\uc804\uc1a1\ub41c \uc0c1\ud0dc
-label.server=\uc11c\ubc84
-label.service.capabilities=\uc11c\ube44\uc2a4 \uae30\ub2a5
-label.service.offering=\uc11c\ube44\uc2a4\uc81c\uacf5
-label.service.state=\uc11c\ube44\uc2a4
-label.session.expired=\uc138\uc158 \uc720\ud6a8\uae30\uac04\uc774 \ub04a\uc5b4\uc9d0
-label.setup=\uc124\uc815
-label.set.up.zone.type=Zone \uc885\ub958 \uc124\uc815
-label.SharedMountPoint=SharedMountPoint
-label.shared=\uacf5\uc720
-label.show.ingress.rule=\uc218\uc2e0 \uaddc\uce59 \ud45c\uc2dc
-label.shutdown.provider=\uc81c\uacf5\uc790 \uc885\ub8cc
-label.site.to.site.VPN=\uc0ac\uc774\ud2b8\uac04 \uc0ac\uc124\ub124\ud2b8\uc6cc\ud06c(VPN)
-label.size=\ud06c\uae30
-label.skip.guide=CloudStack \uc0ac\uc6a9 \uac00\uc774\ub4dc \uac74\ub108\ub6f0\uae30
-label.snapshot.limits=\uc2a4\ub0c5\uc0f7 \uc81c\ud55c
-label.snapshot.name=\uc2a4\ub0c5\uc0f7 \uc774\ub984
-label.snapshot.s=\uc2a4\ub0c5\uc0f7
-label.snapshots=\uc2a4\ub0c5\uc0f7
-label.snapshot=\uc2a4\ub0c5\uc0f7
-label.source.nat=\uc804\uc1a1\uc6d0 NAT
-label.specify.IP.ranges=IP \uc8fc\uc18c \ubc94\uc704 \uc9c0\uc815
-label.specify.vlan=VLAN \uc9c0\uc815
-label.specify.vxlan=VXLAN \uc9c0\uc815
-label.SR.name=SR \uba85 \ub77c\ubca8
-label.srx=SRX
-label.start.IP=\uc2dc\uc791 IP \uc8fc\uc18c
-label.start.port=\uc2dc\uc791 \ud3ec\ud1a0
-label.start.reserved.system.IP=\uc608\uc57d\ub41c \uc2dc\uc791 \uc2dc\uc2a4\ud15c IP \uc8fc\uc18c
-label.state=\uc0c1\ud0dc
-label.static.nat.enabled=\uc815\uc801 NAT \uc720\ud6a8
-label.static.nat.to=\uc815\uc801 NAT \uc124\uc815 \uc704\uce58\:
-label.static.nat=\uc815\uc801 NAT
-label.static.nat.vm.details=\uc815\uc801 NAT VM \uc0c1\uc138 \uc815\ubcf4
-label.statistics=\ud1b5\uacc4
-label.status=\uc0c1\ud0dc
-label.step.1.title=\ub2e8\uacc4 1. <strong>\ud15c\ud50c\ub9bf \uc120\ud0dd</strong>
-label.step.1=\ub2e8\uacc4 1
-label.step.2.title=\ub2e8\uacc4 2. <strong>\uc11c\ube44\uc2a4 \uc81c\uacf5</strong>
-label.step.2=\ub2e8\uacc4 2
-label.step.3.title=\ub2e8\uacc4 3. <strong id\="step3_label">\ub514\uc2a4\ud06c \uc81c\uacf5 \uc120\ud0dd</strong>
-label.step.3=\ub2e8\uacc4 3
-label.step.4.title=\ub2e8\uacc4 4. <strong>\ub124\ud2b8\uc6cc\ud06c</strong>
-label.step.4=\ub2e8\uacc4 4
-label.step.5.title=\ub2e8\uacc4 5. <strong>\ucd5c\uc885 \ud655\uc778</strong>
-label.step.5=\ub2e8\uacc4 5
-label.stickiness=\uc9c0\uc18d\uc131
-label.sticky.cookie-name=Cookie \uba85
-label.sticky.domain=\ub3c4\uba54\uc778
-label.sticky.expire=\ub9cc\ub8cc\uc2dc\uac04
-label.sticky.holdtime=\ubcf4\uad00 \uc720\uc9c0 \uc2dc\uac04
-label.sticky.indirect=\uac04\uc811
-label.sticky.length=\uae38\uc774
-label.sticky.mode=\ubaa8\ub4dc
-label.sticky.nocache=\uce90\uc2dc \uc5c6\uc74c
-label.sticky.postonly=\ud3ec\uc2a4\ud2b8\ub9cc
-label.sticky.prefix=\ud504\ub808\ud53d\uc2a4
-label.sticky.request-learn=\ub7ec\ub2dd \uc694\uad6c
-label.sticky.tablesize=\ud14c\uc774\ube14 \ud06c\uae30
-label.stopped.vms=\uc815\uc9c0 \uc911 VM
-label.stop=\uc815\uc9c0
-label.storage.tags=\uc2a4\ud1a0\ub9ac\uc9c0 \ud0dc\uadf8
-label.storage.traffic=\uc2a4\ud1a0\ub9ac\uc9c0 \ud2b8\ub798\ud53d
-label.storage.type=\uc2a4\ud1a0\ub9ac\uc9c0 \uc885\ub958
-label.storage=\uc2a4\ud1a0\ub9ac\uc9c0
-label.subdomain.access=\uc11c\ube0c \ub3c4\uba54\uc778 \uc811\uadfc
-label.submitted.by=[\uc0ac\uc6a9\uc790\: <span id\="submitted_by"></span>]
-label.submit=\ubcf4\ub0b4\uae30
-label.succeeded=\uc644\ub8cc
-label.sunday=\uc77c\uc694\uc77c
-label.super.cidr.for.guest.networks=\uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c \uc288\ud37c CIDR
-label.supported.services=\uae30\uc220 \uc9c0\uc6d0\ub418\ub294 \uc11c\ube44\uc2a4
-label.supported.source.NAT.type=\uae30\uc220 \uc9c0\uc6d0\ub418\ub294 \uc804\uc1a1 NAT \uc885\ub958
-label.suspend.project=\ud504\ub85c\uc81d\ud2b8 \uc77c\uc2dc\uc815\uc9c0
-label.switch.type=\ud615\uc2dd
-label.system.capacity=\uc2dc\uc2a4\ud15c \ucc98\ub9ac \ub2a5\ub825
-label.system.offering=\uc2dc\uc2a4\ud15c \uc81c\uacf5
-label.system.service.offering=\uc2dc\uc2a4\ud15c \uc11c\ube44\uc2a4 \uc81c\uacf5
-label.system.vms=\uc2dc\uc2a4\ud15c VM
-label.system.vm.type=\uc2dc\uc2a4\ud15c VM \uc885\ub958
-label.system.vm=\uc2dc\uc2a4\ud15c VM
-label.system.wide.capacity=\uc2dc\uc2a4\ud15c \uc804\uccb4 \ucc98\ub9ac \ub2a5\ub825
-label.tagged=\ud0dc\uadf8
-label.tags=\ud0dc\uadf8
-label.target.iqn=\ud0c0\uac9f IQN
-label.task.completed=\uc791\uc5c5 \uc644\ub8cc
-label.template.limits=\ud15c\ud50c\ub9bf \uc81c\ud55c
-label.template=\ud15c\ud50c\ub9bf
-label.TFTP.dir=TFTP \ub514\ub809\ud1a0\ub9ac
-label.theme.default=\uae30\ubcf8 \ud14c\ub9c8
-label.theme.grey=\ub9de\ucda4- \ud68c\uc0c9\uc870
-label.theme.lightblue=\ub9de\ucda4 - \ub77c\uc774\ud2b8 \ube14\ub8e8
-label.thursday=\ubaa9\uc694\uc77c
-label.tier.details=\uacc4\uce35 \uc0c1\uc138 \uc7a5\ubc84
-label.tier=\uacc4\uce35
-label.timeout=\uc2dc\uac04 \ucd08\uacfc
-label.time=\uc2dc\uac01
-label.time.zone=\uc2dc\uac04\ub300
-label.timezone=\uc2dc\uac04\ub300
-label.token=\ud1a0\ud070
-label.total.cpu=CPU \ud569\uacc4
-label.total.CPU=CPU \ud569\uacc4
-label.total.hosts=\ud638\uc2a4\ud2b8 \ud569\uacc4
-label.total.memory=\uba54\ubaa8\ub9ac \ud569\uacc4
-label.total.of.vm=VM \ud569\uacc4
-label.total.storage=\uc2a4\ud1a0\ub9ac\uc9c0 \ud569\uacc4
-label.total.vms=VM \ud569\uacc4
-label.traffic.label=\ud2b8\ub798\ud53d \ub77c\ubca8
-label.traffic.types=\ud2b8\ub798\ud53d \uc885\ub958
-label.traffic.type=\ud2b8\ub798\ud53d \uc885\ub958
-label.tuesday=\ud654\uc694\uc77c
-label.type.id=\uc885\ub958 ID
-label.type=\uc885\ub958
-label.unavailable=\uc0ac\uc6a9 \ubd88\uac00
-label.unlimited=\ubb34\uc81c\ud55c
-label.untagged=\ud0dc\uadf8 \uc5c6\uc74c
-label.update.project.resources=\ud504\ub85c\uc81d\ud2b8 \uc790\uc6d0 \uc5c5\ub370\uc774\ud2b8
-label.update.ssl.cert= SSL \uc778\uc99d\uc11c \uc5c5\ub370\uc774\ud2b8
-label.update.ssl= SSL \uc778\uc99d\uc11c \uc5c5\ub370\uc774\ud2b8
-label.updating=\uc5c5\ub370\uc774\ud2b8\ud558\uace0 \uc788\ub294 \uc911
-label.upload=\uc5c5\ub85c\ub4dc
-label.upload.volume=\ubcfc\ub968\uc758 \uc5c5\ub85c\ub4dc
-label.url=URL
-label.usage.interface=\uc0ac\uc6a9 \uc0c1\ud669 \uce21\uc815 \uc778\ud130\ud398\uc774\uc2a4
-label.used=\uc0ac\uc6a9 \uc911
-label.username=\uc0ac\uc6a9\uc790\uba85
-label.users=\uc0ac\uc6a9\uc790
-label.user=\uc0ac\uc6a9\uc790
-label.value=\uac12
-label.vcdcname=vCenter DC \uba85
-label.vcenter.cluster=vCenter \ud074\ub7ec\uc2a4\ud130
-label.vcenter.datacenter=vCenter \ub370\uc774\ud130 \uc13c\ud130
-label.vcenter.datastore=vCenter \ub370\uc774\ud130 \uc2a4\ud1a0\uc5b4
-label.vcenter.host=vCenter \ud638\uc2a4\ud2b8
-label.vcenter.password=vCenter \uc554\ud638
-label.vcenter.username=vCenter \uc0ac\uc6a9\uc790\uba85
-label.vcipaddress=vCenter IP \uc8fc\uc18c
-label.version=\ubc84\uc804
-label.view.all=\ubaa8\ub450 \ud45c\uc2dc
-label.view.console=\ucf58\uc194 \ud45c\uc2dc
-label.viewing=\ud45c\uc2dc \ud56d\ubaa9\:
-label.view.more=\uc0c1\uc138 \ud45c\uc2dc
-label.view=\ud45c\uc2dc -
-label.virtual.appliances=\uac00\uc0c1 \uc5b4\ud50c\ub77c\uc774\uc5b8\uc2a4
-label.virtual.appliance=\uac00\uc0c1 \uc5b4\ud50c\ub77c\uc774\uc5b8\uc2a4
-label.virtual.network=\uac00\uc0c1 \ub124\ud2b8\uc6cc\ud06c
-label.virtual.routers=\uac00\uc0c1 \ub77c\uc6b0\ud130
-label.virtual.router=\uac00\uc0c1 \ub77c\uc6b0\ud130
-label.vlan.id=VLAN ID
-label.vlan.only=\uac00\uc0c1 \ub124\ud2b8\uc6cc\ud06c(VLAN)
-label.vlan.range=VLAN \ubc94\uc704
-label.vlan=\uac00\uc0c1 \ub124\ud2b8\uc6cc\ud06c(VLAN)
-label.vlan.vni.range=VLAN \ubc94\uc704
-label.vm.add=\uc778\uc2a4\ud134\uc2a4 \ucd94\uac00
-label.vm.destroy=\ud30c\uae30
-label.vm.display.name=VM \ud45c\uc2dc\uba85
-label.VMFS.datastore=VMFS \ub370\uc774\ud130 \uc2a4\ud1a0\uc5b4
-label.vmfs=VMFS
-label.vm.name=VM \uba85
-label.vm.reboot=\uc7ac\uc2dc\uc791
-label.VMs.in.tier=\uacc4\uce35 \ub0b4\ubd80 \uac00\uc0c1\uba38\uc2e0
-label.vmsnapshot.type=\uc885\ub958
-label.vm.start=\uc2dc\uc791
-label.vm.state=VM \uc0c1\ud0dc
-label.vm.stop=\uc815\uc9c0
-label.vms=VM
-label.vmware.traffic.label=VMware \ud2b8\ub798\ud53d \ub77c\ubca8
-label.vnet.id=VLAN ID
-label.vnet=\uac00\uc0c1 \ub124\ud2b8\uc6cc\ud06c(VLAN)
-label.volgroup=\ubcfc\ub968 \uadf8\ub8f9
-label.volume.limits=\ubcfc\ub968 \uc81c\ud55c
-label.volume.name=\ubcfc\ub968\uba85
-label.volumes=\ubcfc\ub968
-label.volume=\ubcfc\ub968
-label.vpc.id=VPC ID
-label.VPC.router.details=VPC \ub77c\uc6b0\ud130 \uc0c1\uc138
-label.vpc=VPC
-label.VPN.connection=VPN \uc811\uc18d
-label.vpn.customer.gateway=VPN \uace0\uac1d \uac8c\uc774\ud2b8\uc6e8\uc774
-label.VPN.customer.gateway=VPN \uace0\uac1d \uac8c\uc774\ud2b8\uc6e8\uc774
-label.VPN.gateway=VPN \uac8c\uc774\ud2b8\uc6e8\uc774
-label.vpn=\uac00\uc0c1 \uc0ac\uc124\ub9dd(VPN)
-label.vsmctrlvlanid=\uc81c\uc5b4 VLAN ID
-label.vsmpktvlanid=\ud328\ud0b7 VLAN ID
-label.vsmstoragevlanid=\uc2a4\ud1a0\ub9ac\uc9c0 VLAN ID
-label.vsphere.managed=vSphere \uad00\ub9ac
-label.vxlan.id=VXLAN ID
-label.vxlan.range=VXLAN \ubc94\uc704
-label.vxlan=VXLAN
-label.waiting=\ub300\uae30\ud558\ub294 \uc911
-label.warn=\uacbd\uace0
-label.wednesday=\uc218\uc694\uc77c
-label.weekly=\ub9e4\uc8fc
-label.welcome.cloud.console=\uad00\ub9ac \ucf58\uc194\uc5d0 \uc624\uc2e0\uac83\uc744 \ud658\uc601\ud569\ub2c8\ub2e4\!
-label.welcome=\uc5b4\uc11c \uc624\uc2ed\uc2dc\uc624
-label.what.is.cloudstack=CloudStack\u2122 \uc815\ubcf4
-label.xenserver.traffic.label=XenServer \ud2b8\ub798\ud53d \ub77c\ubca8
-label.yes=\uc608
-label.zone.details=Zone \uc0c1\uc138
-label.zone.id=Zone ID
-label.zone.lower=Zone
-label.zone.step.1.title=\ub2e8\uacc4 1. <strong>\ub124\ud2b8\uc6cc\ud06c \uc120\ud0dd</strong>
-label.zone.step.2.title=\ub2e8\uacc4 2. <strong>Zone \ucd94\uac00</strong>
-label.zone.step.3.title=\ub2e8\uacc4 3. <strong>Pod \ucd94\uac00</strong>
-label.zone.step.4.title=\ub2e8\uacc4 4. <strong>IP \uc8fc\uc18c \ubc94\uc704 \ucd94\uac00</strong>
-label.zones=Zone
-label.zone.type=Zone \uc885\ub958
-label.zone.wide=Zone \uc804\uccb4
-label.zone=Zone
-managed.state=\uad00\ub9ac \ub300\uc0c1 \uc0c1\ud0dc
-message.acquire.new.ip=\ud604\uc7ac \ub124\ud2b8\uc6cc\ud06c\uac00 \uc0c8\ub85c\uc6b4 IP \uc8fc\uc18c\ub97c \ucde8\ub4dd\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.acquire.public.ip=\uc0c8\ub85c\uc6b4 IP \uc8fc\uc18c\ub97c \ucde8\ub4dd\ud558\ub294 Zone\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.action.cancel.maintenance.mode=\ud604\uc7ac \uc720\uc9c0 \ubcf4\uc218\ub97c \ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.cancel.maintenance=\ud638\uc2a4\ud2b8 \uc720\uc9c0 \ubcf4\uc218\ub294 \uc815\uc0c1\uc801\uc73c\ub85c \ucde8\uc18c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ucc98\ub9ac\uc5d0\ub294 \uba87 \ubd84 \uc815\ub3c4 \uac78\ub9b4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.action.change.service.warning.for.instance=\ud604\uc7ac \uc11c\ube44\uc2a4 \uc81c\uacf5\uc744 \ubcc0\uacbd\ud558\uae30 \uc804\uc5d0 \uc778\uc2a4\ud134\uc2a4\ub97c \uc815\uc9c0\ud574\uc57c \ud569\ub2c8\ub2e4.
-message.action.change.service.warning.for.router=\ud604\uc7ac \uc11c\ube44\uc2a4 \uc81c\uacf5\uc744 \ubcc0\uacbd\ud558\uae30 \uc804\uc5d0 \ub77c\uc6b0\ud130\ub97c \uc815\uc9c0\ud574\uc57c \ud569\ub2c8\ub2e4.
-message.action.delete.cluster=\ud604\uc7ac \ud074\ub7ec\uc2a4\ud130\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.disk.offering=\ud604\uc7ac \ub514\uc2a4\ud06c\uc81c\uacf5\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.domain=\ud604\uc7ac \ub3c4\uba54\uc778\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.external.firewall=\ud604\uc7ac \uc678\ubd80 \ubc29\ud654\ubcbd(fire wall)\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? \uacbd\uace0\: \uac19\uc740 \uc678\ubd80 \ubc29\ud654\ubcbd(fire wall)\ub97c \ub2e4\uc2dc \ucd94\uac00\ud560 \uacbd\uc6b0\ub294 \uae30\uae30 \uc0ac\uc6a9 \uc0c1\ud669 \ub370\uc774\ud130\ub97c \uc7ac\uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.
-message.action.delete.external.load.balancer=\ud604\uc7ac \uc678\ubd80 \ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? \uacbd\uace0\: \uac19\uc740 \uc678\ubd80 \ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58\ub97c \ub2e4\uc2dc \ucd94\uac00\ud560 \uacbd\uc6b0\ub294 \uae30\uae30 \uc0ac\uc6a9 \uc0c1\ud669 \ub370\uc774\ud130\ub97c \uc7ac\uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.
-message.action.delete.ingress.rule=\ud604\uc7ac \uc218\uc2e0 \uaddc\uce59\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.ISO.for.all.zones=\uc774 ISO\ub294 \ubaa8\ub4e0 Zone\uc5d0\uc11c \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 Zone\uc5d0\uc11c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.ISO=\ud604\uc7ac ISO\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.network=\ud604\uc7ac \ub124\ud2b8\uc6cc\ud06c\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.nexusVswitch=\ud604\uc7ac Nexus 1000V\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.physical.network=\ud604\uc7ac \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.pod=\ud604\uc7ac Pod\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.primary.storage=\ud604\uc7ac \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.secondary.storage=\ud604\uc7ac 2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.security.group=\ud604\uc7ac \ubcf4\uc548 \uadf8\ub8f9\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.service.offering=\ud604\uc7ac \uc11c\ube44\uc2a4\uc81c\uacf5\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.snapshot=\ud604\uc7ac \uc2a4\ub0c5\uc0f7\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.system.service.offering=\ud604\uc7ac \uc2dc\uc2a4\ud15c \uc11c\ube44\uc2a4 \uc81c\uacf5\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.template.for.all.zones=\uadf8 \ud15c\ud50c\ub9bf\uc740 \ubaa8\ub4e0 Zone\uc5d0\uc11c \uc0ac\uc6a9\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 Zone\uc5d0\uc11c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.template=\ud604\uc7ac \ud15c\ud50c\ub9bf\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.volume=\ud604\uc7ac \ubcfc\ub968\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.delete.zone=\ud604\uc7ac Zone\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.destroy.instance=\ud604\uc7ac \uc778\uc2a4\ud134\uc2a4\ub97c \ud30c\uae30\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.destroy.systemvm=\ud604\uc7ac \uc2dc\uc2a4\ud15c VM\ub97c \ud30c\uae30\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.disable.cluster=\ud604\uc7ac \ud074\ub7ec\uc2a4\ud130\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.disable.nexusVswitch=\ud604\uc7ac Nexus 1000V\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.disable.physical.network=\ud604\uc7ac \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.disable.pod=\ud604\uc7ac Pod\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.disable.static.NAT=\uc815\uc801 NAT\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \uc124\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.disable.zone=\ud604\uc7ac Zone\uc744 \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.download.iso=\ud604\uc7ac ISO\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.download.template=\ud604\uc7ac \ud15c\ud50c\ub9bf\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.enable.cluster=\ud604\uc7ac \ud074\ub7ec\uc2a4\ud130\ub97c \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.enable.maintenance=\ud638\uc2a4\ud2b8\ub97c \uc720\uc9c0 \ubcf4\uc218\ud560 \uc900\ube44\ub97c \ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \ud638\uc2a4\ud2b8\uc0c1 VM \uc218\uc5d0 \ub530\ub77c\uc11c \ucc98\ub9ac\uc5d0 \uba87 \ubd84 \uc774\uc0c1 \uac78\ub9b4 \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4.
-message.action.enable.nexusVswitch=\ud604\uc7ac Nexus 1000V\ub97c \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.enable.physical.network=\ud604\uc7ac \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.enable.pod=\ud604\uc7ac Pod\ub97c \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.enable.zone=\ud604\uc7ac Zone\uc744 \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.force.reconnect=\ud638\uc2a4\ud2b8\ub294 \uac15\uc81c\uc801\uc73c\ub85c \uc7ac\uc811\uc18d\ud588\uc2b5\ub2c8\ub2e4. \uc774 \ucc98\ub9ac\uc5d0\ub294 \uba87 \ubd84 \uc774\uc0c1 \uac78\ub9b4 \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4
-message.action.host.enable.maintenance.mode=\uc720\uc9c0 \ubcf4\uc218 \ubaa8\ub4dc\ub97c \uc0ac\uc6a9 \ud558\uba74, \uc774 \ud638\uc2a4\ud2b8\ub85c \uc2e4\ud589 \uc911\uc778 \ubaa8\ub4e0 \uc778\uc2a4\ud134\uc2a4\ub97c \ub2e4\ub978 \uc0ac\uc6a9\uac00\ub2a5 \ud638\uc2a4\ud2b8\uc5d0\uac8c \uc2e4\uc2dc\uac04 \uc774\uc804\ub429\ub2c8\ub2e4.
-message.action.instance.reset.password=\ud604\uc7ac \uac00\uc0c1 \uba38\uc2e0 \ub8e8\ud2b8 \uc554\ud638\ub97c \ubcc0\uacbd\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.manage.cluster=\ud074\ub7ec\uc2a4\ud130\ub97c \uad00\ub9ac \ub300\uc0c1\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.primarystorage.enable.maintenance.mode=\uacbd\uace0\: \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \uc720\uc9c0 \ubcf4\uc218 \ubaa8\ub4dc\ub85c \ud558\uba74  \uadf8 \uc2a4\ud1a0\ub9ac\uc9c0\uc0c1 \ubcfc\ub968\uc744 \uc0ac\uc6a9\ud558\ub294 \ubaa8\ub4e0 VM\uac00 \uc815\uc9c0\ud569\ub2c8\ub2e4. \uc2e4\ud589\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.reboot.instance=\ud604\uc7ac \uc778\uc2a4\ud134\uc2a4\ub97c \uc7ac\uc2dc\uc791\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.reboot.router=\ud604\uc7ac \uac00\uc0c1 \ub77c\uc6b0\ud130\ub85c \uc81c\uacf5\ud558\ub294 \ubaa8\ub4e0 \uc11c\ube44\uc2a4\uac00 \uc911\ub2e8\ub429\ub2c8\ub2e4. \uc774 \ub77c\uc6b0\ud130\ub97c \uc7ac\uc2dc\uc791\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.reboot.systemvm=\ud604\uc7ac \uc2dc\uc2a4\ud15c VM\uc744 \uc7ac\uc2dc\uc791\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.release.ip=\ud604\uc7ac IP \uc8fc\uc18c\ub97c \ud574\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.remove.host=\ud604\uc7ac \ud638\uc2a4\ud2b8\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.reset.password.off=\uc778\uc2a4\ud134\uc2a4\ub294 \ud604\uc7ac \uae30\ub2a5\uc744 \uc9c0\uc6d0 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
-message.action.reset.password.warning=\ud604\uc7ac \uc554\ud638\ub97c \ubcc0\uacbd\ud558\uae30 \uc804\uc5d0 \uc778\uc2a4\ud134\uc2a4\ub97c \uc815\uc9c0\ud574\uc57c \ud569\ub2c8\ub2e4.
-message.action.restore.instance=\ud604\uc7ac \uc778\uc2a4\ud134\uc2a4\ub97c \ubcf5\uc6d0\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.start.instance=\ud604\uc7ac \uc778\uc2a4\ud134\uc2a4\ub97c \uc2dc\uc791\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.start.router=\ud604\uc7ac \ub77c\uc6b0\ud130\ub97c \uc2dc\uc791\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.start.systemvm=\ud604\uc7ac \uc2dc\uc2a4\ud15c VM\uc744 \uc2dc\uc791\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.stop.instance=\ud604\uc7ac \uc778\uc2a4\ud134\uc2a4\ub97c \uc815\uc9c0\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.stop.router=\ud604\uc7ac \uac00\uc0c1 \ub77c\uc6b0\ud130\ub85c \uc81c\uacf5\ud558\ub294 \ubaa8\ub4e0 \uc11c\ube44\uc2a4\uac00 \uc911\ub2e8\ub429\ub2c8\ub2e4. \uc774 \ub77c\uc6b0\ud130\ub97c \uc815\uc9c0\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.stop.systemvm=\ud604\uc7ac \uc2dc\uc2a4\ud15c VM\uc744 \uc815\uc9c0\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.take.snapshot=\ud604\uc7ac \ubcfc\ub968 \uc2a4\ub0c5\uc0f7\uc744 \ub9cc\ub4dc\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.action.unmanage.cluster=\ud074\ub7ec\uc2a4\ud130\ub97c \ube44\uad00\ub9ac \ub300\uc0c1\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.activate.project=\ud604\uc7ac \ud504\ub85c\uc81d\ud2b8\ub97c \ud65c\uc131\ud654 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.add.cluster=Zone <b><span id\="zone_name"></span></b> Pod <b><span id\="pod_name"></span></b>\uc5d0 \ud558\uc774\ud37c \ubc14\uc774\uc800\ub85c \uad00\ub9ac\ub418\ub294 \ud074\ub7ec\uc2a4\ud130\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.
-message.add.cluster.zone=Zone <b><span id\="zone_name"></span></b>\uc5d0 \ud558\uc774\ud37c \ubc14\uc774\uc800\ub85c \uad00\ub9ac\ub418\ub294 \ud074\ub7ec\uc2a4\ud130\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.
-message.add.disk.offering=\uc0c8\ub85c\uc6b4 \ub514\uc2a4\ud06c \uc81c\uacf5\uc744 \ucd94\uac00\ud558\uae30 \uc704\ud574 \ub2e4\uc74c \ud30c\ub77c\ubbf8\ud130\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.domain=\ud604\uc7ac \ub3c4\uba54\uc778\uc5d0 \ub9cc\ub4e4\uace0\uc790 \ud558\ub294 \uc11c\ube0c \ub3c4\uba54\uc778\uc744 \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.firewall=Zone\uc5d0 \ubc29\ud654\ubcbd(fire wall)\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4.
-message.add.guest.network=\uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c\ub97c \ucd94\uac00\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.add.host=\uc0c8\ub85c\uc6b4 \ud638\uc2a4\ud2b8\ub97c \ucd94\uac00\ud558\uae30 \uc704\ud574 \uc544\ub798 \ud30c\ub77c\ubbf8\ud130\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.adding.host=\ud638\uc2a4\ud2b8\ub97c \ucd94\uac00\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4
-message.adding.Netscaler.device=Netscaler \uae30\uae30\ub97c \ucd94\uac00\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4
-message.adding.Netscaler.provider=Netscaler \uc81c\uacf5\uc790\ub97c \ucd94\uac00\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.
-message.add.ip.range.direct.network=Zone <b><span id\="zone_name"></span></b> \uc9c1\uc811 \ub124\ud2b8\uc6cc\ud06c <b><span id\="directnetwork_name"></span></b>\uc5d0 IP \uc8fc\uc18c \ubc94\uc704\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4
-message.add.ip.range.to.pod=<p>Pod <b><span id\="pod_name_label"></span></b>\uc5d0 IP \uc8fc\uc18c \ubc94\uc704\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.</p>
-message.add.ip.range=Zone \uacf5\uac1c \ub124\ud2b8\uc6cc\ud06c\uc5d0 IP \uc8fc\uc18c \ubc94\uc704\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.
-message.additional.networks.desc=\uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\uac00 \uc811\uc18d\ud558\ub294 \ucd94\uac00 \ub124\ud2b8\uc6cc\ud06c\ub97c \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.load.balancer.under.ip=\ub2e4\uc74c IP \uc8fc\uc18c\uc5d0 \ub300\ud574\uc11c \ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uaddc\uce59\uc744  \ucd94\uac00\ud569\ub2c8\ub2e4\:
-message.add.load.balancer=Zone\uc5d0 \ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.
-message.add.network=Zone <b><span id\="zone_name"></span></b>\uc5d0 \uc0c8\ub85c\uc6b4 \ub124\ud2b8\uc6cc\ud06c\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.
-message.add.new.gateway.to.vpc=\ud604\uc7ac VPC\uc5d0 \uc0c8\ub85c\uc6b4 \uac8c\uc774\ud2b8\uc6e8\uc774\ub97c \ucd94\uac00\ud558\uae30 \uc704\ud55c \uc815\ubcf4\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.pod.during.zone.creation=\uac01 Zone\uc5d0\ub294 \ud55c \uac1c \uc774\uc0c1 Pod\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc9c0\uae08 \uc5ec\uae30\uc11c \uccab\ubc88\uc9f8 Pod\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4. Pod\ub294 \ud638\uc2a4\ud2b8\uc640 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \uc11c\ubc84\uc5d0\uc11c \uad6c\uc131\ud569\ub2c8\ub2e4\ub9cc  \uc774\ub294 \ub2e4\uc74c \uc21c\uc11c\ub85c \ucd94\uac00\ud569\ub2c8\ub2e4. \ub9e8 \ucc98\uc74c CloudStack \ub0b4\ubd80 \uad00\ub9ac \ud2b8\ub798\ud53d\uc744 \uc704\ud574\uc11c IP \uc8fc\uc18c \ubc94\uc704\ub97c \uc608\uc57d\ud569\ub2c8\ub2e4. IP \uc8fc\uc18c \ubc94\uc704\ub294 \ud074\ub77c\uc6b0\ub4dc \ub0b4\ubd80 \uac01 Zone\uc5d0\uc11c \uc911\ubcf5 \ud558\uc9c0 \uc54a\uac8c \uc608\uc57d\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4.
-message.add.pod=Zone <b><span id\="add_pod_zone_name"></span></b>\uc5d0 \uc0c8\ub85c\uc6b4 Pod\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.
-message.add.primary.storage=Zone <b><span id\="zone_name"></span></b> Pod <b><span id\="pod_name"></span></b>\uc5d0 \uc0c8\ub85c\uc6b4 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.
-message.add.primary=\uc0c8\ub85c\uc6b4 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \ucd94\uac00\ud558\uae30 \uc704\ud574 \uc544\ub798 \ud30c\ub77c\ubbf8\ud130\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.secondary.storage=Zone <b><span id\="zone_name"></span></b>\uc5d0 \uc0c8\ub85c\uc6b4 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4
-message.add.service.offering=\uc0c8\ub85c\uc6b4 \ucef4\ud4e8\ud305 \uc790\uc6d0 \uc81c\uacf5\uc744 \ucd94\uac00\ud558\uae30 \uc704\ud574\uc11c, \ub2e4\uc74c \ub370\uc774\ud130\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.system.service.offering=\uc0c8\ub85c\uc6b4 \uc2dc\uc2a4\ud15c \uc11c\ube44\uc2a4 \uc81c\uacf5\uc744 \ucd94\uac00\ud558\uae30 \uc704\ud574 \ub2e4\uc74c \ub370\uc774\ud130\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.template=\uc0c8\ub85c\uc6b4 \ud15c\ud50c\ub9bf\uc744 \ub9cc\ub4e4\uae30\ud558\uae30 \uc704\ud574 \uc544\ub798 \ub370\uc774\ud130\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.volume=\uc0c8\ub85c\uc6b4 \ubcfc\ub968\uc744 \ucd94\uac00\ud558\uae30 \uc704\ud574 \uc544\ub798 \ub370\uc774\ud130\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.add.VPN.gateway=VPN \uac8c\uc774\ud2b8\uc6e8\uc774\ub97c \ucd94\uac00\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.advanced.mode.desc=VLAN \uae30\uc220 \uc9c0\uc6d0\ub97c \uc0ac\uc6a9 \ud558\ub294 \uacbd\uc6b0\ub294 \uc774 \ub124\ud2b8\uc6cc\ud06c \ubaa8\ub378\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.\uc774 \ubaa8\ub378\uc5d0\uc11c\ub294 \uac00\uc7a5 \uc720\uc5f0\ud558\uac8c \uce74\uc2a4\ud0d0\ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5\uc744 \uc81c\uacf5\ud560 \uc218 \uc788\uc5b4 \ubc29\ud654\ubcbd(fire wall), VPN, \ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58 \uae30\uc220 \uc9c0\uc6d0 \uc678\uc5d0, \uc9c1\uc811 \ub124\ud2b8\uc6cc\ud06c\uc640 \uac00\uc0c1 \ub124\ud2b8\uc6cc\ud06c\ub3c4 \uc0ac\uc6a9 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.advanced.security.group=\uac8c\uc2a4\ud2b8 VM\ub97c \ubd84\ub9ac\ud558\uae30 \uc704\ud574\uc11c \ubcf4\uc548 \uadf8\ub8f9\uc744 \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\ub294 \uc774 \uc635\uc158\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.advanced.virtual=\uac8c\uc2a4\ud2b8 VM\ub97c \ubd84\ub9ac\ud558\uae30 \uc704\ud574\uc11c \uc874 \uc804\uccb4 VLAN\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0\ub294 \uc774 \uc635\uc158\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.after.enable.swift=Swift\uac00 \uad6c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc8fc\uc758\:\uc774 \ud398\uc774\uc9c0\ub97c \ub2eb\uc73c\uba74 Swift\ub97c \uc7ac\uad6c\uc131\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-message.alert.state.detected=\uacbd\uacc4\uccb4\uc81c \uc0c1\ud0dc\uac00 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4
-message.allow.vpn.access=VPN \uc811\uadfc\ub97c \ud5c8\uac00\ud558\ub294 \uc0ac\uc6a9\uc790 \uc0ac\uc6a9\uc790\uba85\uacfc \uc554\ud638\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.apply.snapshot.policy=\ud604\uc7ac \uc2a4\ub0c5\uc0f7 \uc815\ucc45\ub97c \uc5c5\ub370\uc774\ud2b8\ud588\uc2b5\ub2c8\ub2e4.
-message.attach.iso.confirm=\ud604\uc7ac \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\uc5d0 ISO \ud30c\uc77c\uc744 \uc5f0\uacb0 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.attach.volume=\uc0c8\ub85c\uc6b4 \ubcfc\ub968\uc744 \uc5f0\uacb0 \ud558\uae30 \uc704\ud574 \uc544\ub798 \ub370\uc774\ud130\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.Windows \ubca0\uc774\uc2a4 \uac00\uc0c1 \uba38\uc2e0\uc5d0 \ub514\uc2a4\ud06c \ubcfc\ub968\uc744 \uc5f0\uacb0 \ud558\ub294 \uacbd\uc6b0\ub294 \uc5f0\uacb0 \ud55c \ub514\uc2a4\ud06c\ub97c \uc778\uc2dd\ud558\uae30 \uc704\ud574\uc11c \uc778\uc2a4\ud134\uc2a4\ub97c \uc7ac\uc2dc\uc791\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4.
-message.basic.mode.desc=VLAN \uae30\uc220 \uc9c0\uc6d0\uac00<b><u>\ubd88\ud544\uc694\ud55c</u></b>\uacbd\uc6b0\ub294 \uc774 \ub124\ud2b8\uc6cc\ud06c \ubaa8\ub378\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.\uc774 \ub124\ud2b8\uc6cc\ud06c \ubaa8\ub378\ub85c \ub9cc\ub4e4\uae30\ub418\ub294 \ubaa8\ub4e0 \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\uc5d0 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc9c1\uc811 IP \uc8fc\uc18c\ub97c \ud560\ub2f9\ud560 \uc218 \uc788\uc5b4 \ubcf4\uc548 \uadf8\ub8f9\uc744 \uc0ac\uc6a9\ud574 \ubcf4\uc548\uc640 \ubd84\ub9ac\uac00 \uc81c\uacf5\ub429\ub2c8\ub2e4.
-message.change.offering.confirm=\ud604\uc7ac \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4 \uc11c\ube44\uc2a4\uc81c\uacf5\uc744 \ubcc0\uacbd\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.change.password=\uc554\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.configure.all.traffic.types=\ubcf5\uc218\uc758 \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\uac00 \uc788\uc2b5\ub2c8\ub2e4. [\ud3b8\uc9d1]\uc744 \ud074\ub9ad\ud574 \ud2b8\ub798\ud53d\uc758 \uc885\ub958 \ub9c8\ub2e4 \ub77c\ubca8\uc744 \uad6c\uc131\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.configuring.guest.traffic=\uac8c\uc2a4\ud2b8 \ud2b8\ub798\ud53d\uc744 \uad6c\uc131\ud574 \uc788\uc2b5\ub2c8\ub2e4
-message.configuring.physical.networks=\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\ub97c \uad6c\uc131\ud574 \uc788\uc2b5\ub2c8\ub2e4
-message.configuring.public.traffic=\uacf5\uac1c \ud2b8\ub798\ud53d\uc744 \uad6c\uc131\ud574 \uc788\uc2b5\ub2c8\ub2e4
-message.configuring.storage.traffic=\uc2a4\ud1a0\ub9ac\uc9c0 \ud2b8\ub798\ud53d\uc744 \uad6c\uc131\ud574 \uc788\uc2b5\ub2c8\ub2e4
-message.confirm.action.force.reconnect=\ud604\uc7ac \ud638\uc2a4\ud2b8\ub97c \uac15\uc81c \uc7ac\uc811\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.delete.F5=F5\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.delete.NetScaler=NetScaler\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.delete.SRX=SRX\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.destroy.router=\ud604\uc7ac \ub77c\uc6b0\ud130\ub97c \ud30c\uae30\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.disable.provider=\ud604\uc7ac \uc81c\uacf5\uc790\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.enable.provider=\ud604\uc7ac \uc81c\uacf5\uc790\ub97c \uc0ac\uc6a9\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.join.project=\ud604\uc7ac \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucc38\uc5ec\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.remove.IP.range=\ud604\uc7ac IP \uc8fc\uc18c \ubc94\uc704\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.confirm.shutdown.provider=\ud604\uc7ac \uc81c\uacf5\uc790\ub97c \uc885\ub8cc\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.copy.iso.confirm=ISO\ub97c \ub2e4\uc74c \uc7a5\uc18c\uc5d0 \ubcf5\uc0ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.copy.template=\uc874 <b id\="copy_template_source_zone_text"></b> \uc73c\uc5d0\uc11c \ud15c\ud50c\ub9bf <b id\="copy_template_name_text">XXX</b>\ub97c \ub2e4\uc74c \uc7a5\uc18c\uc5d0 \ubcf5\uc0ac\ud569\ub2c8\ub2e4\:
-message.create.template=\ud15c\ud50c\ub9bf\uc744 \ub9cc\ub4e4\uae30\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.create.template.vm=\ud15c\ud50c\ub9bf <b id\="p_name"></b> \uc73c\uc5d0\uc11c VM\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
-message.create.template.volume=\ub514\uc2a4\ud06c \ubcfc\ub968 <b><span id\="volume_name"></span></b> \ud15c\ud50c\ub9bf\uc744 \ub9cc\ub4e4\uae30\ud558\uae30 \uc804\uc5d0, \ub2e4\uc74c \uc815\ubcf4\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.\ubcfc\ub968 \ud06c\uae30\uc5d0 \ub530\ub77c\uc11c\ub294 \ud15c\ud50c\ub9bf \ub9cc\ub4e4\uae30\uc5d0\ub294 \uba87\ubd84 \uc774\uc0c1 \uac78\ub9b4 \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4.
-message.creating.cluster=\ud074\ub7ec\uc2a4\ud130\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
-message.creating.guest.network=\uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.
-message.creating.physical.networks=\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
-message.creating.pod=Pod\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
-message.creating.primary.storage=\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
-message.creating.secondary.storage=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
-message.creating.zone=Zone\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
-message.decline.invitation=\ud604\uc7ac \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd08\ub300\ub97c \uac70\uc808\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.delete.account=\ud604\uc7ac \uacc4\uc815 \uc815\ubcf4\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.delete.gateway=\ud604\uc7ac \uac8c\uc774\ud2b8\uc6e8\uc774\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.delete.project=\ud604\uc7ac \ud504\ub85c\uc81d\ud2b8\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.delete.user=\ud604\uc7ac \uc0ac\uc6a9\uc790\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.delete.VPN.connection=VPN \uc811\uc18d\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.delete.VPN.customer.gateway=\ud604\uc7ac VPN \uace0\uac1d \uac8c\uc774\ud2b8\uc6e8\uc774\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.delete.VPN.gateway=\ud604\uc7ac VPN \uac8c\uc774\ud2b8\uc6e8\uc774\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.desc.advanced.zone=\ubcf4\ub2e4 \uc138\ub828\ub41c \ub124\ud2b8\uc6cc\ud06c \uae30\uc220\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774 \ub124\ud2b8\uc6cc\ud06c \ubaa8\ub378\uc744 \uc120\ud0dd\ud558\uba74, \ubcf4\ub2e4 \uc720\uc5f0\ud558\uac8c \uac8c\uc2a4\ud2b8 \ub124\ud2b8\uc6cc\ud06c\ub97c \uc815\ud558\uace0 \ubc29\ud654\ubcbd(fire wall), VPN, \ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58 \uae30\uc220 \uc9c0\uc6d0\uc640 \uac19\uc740 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \ud55c \ub124\ud2b8\uc6cc\ud06c \uc81c\uacf5\uc744 \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.desc.basic.zone=\uac01 VM \uc778\uc2a4\ud134\uc2a4\uc5d0 IP \uc8fc\uc18c\uac00 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc9c1\uc811 \ud560\ub2f9\ud560 \uc218 \uc788\ub294 \ub2e8\uc77c \ub124\ud2b8\uc6cc\ud06c\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ubcf4\uc548 \uadf8\ub8f9 (\uc804\uc1a1\uc6d0 IP \uc8fc\uc18c \ud544\ud130)\uacfc \uac19\uc740 \uce35 \uc138 \uac00\uc9c0 \ub808\ubca8 \ubc29\ubc95\uc73c\ub85c \uac8c\uc2a4\ud2b8\ub97c \ubd84\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.desc.cluster=\uac01 Pod\uc5d0\ub294 \ud55c \uac1c \uc774\uc0c1 \ud074\ub7ec\uc2a4\ud130\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc9c0\uae08 \uc5ec\uae30\uc11c \ucd5c\ucd08 \ud074\ub7ec\uc2a4\ud130\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4. \ud074\ub7ec\uc2a4\ud130\ub294 \ud638\uc2a4\ud2b8\ub97c \uadf8\ub8f9\ud654 \ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \ud55c \ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80 \ud638\uc2a4\ud2b8\ub294 \ubaa8\ub450 \ub3d9\uc77c\ud55c \ud558\ub4dc\uc6e8\uc5b4\uc5d0\uc11c \uad6c\uc131\ub418\uc5b4 \uac19\uc740 \ud558\uc774\ud37c \ubc14\uc774\uc800\ub97c \uc2e4\ud589\ud558\uace0 \uac19\uc740 \uc11c\ube0c \ub124\ud2b8\uc6cc\ud06c\uc0c1\uc5d0 \uc788\uc5b4 \uac19\uc740 \uacf5\uc720 \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \uc811\uadfc \ud569\ub2c8\ub2e4. \uac01 \ud074\ub7ec\uc2a4\ud130\ub294 \ud55c \uac1c \uc774\uc0c1 \ud638\uc2a4\ud2b8\uc640 \ud55c \uac1c \uc774\uc0c1 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \uc11c\ubc84\uc5d0\uc11c \uad6c\uc131\ub429\ub2c8\ub2e4.
-message.desc.host=\uac01 \ud074\ub7ec\uc2a4\ud130\uc5d0\ub294 \uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1 \uac8c\uc2a4\ud2b8 VM\ub97c \uc2e4\ud589\ud558\uae30 \uc704\ud55c \ud638\uc2a4\ud2b8 (\ucef4\ud4e8\ud130)\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc9c0\uae08 \uc5ec\uae30\uc11c \uccab\ubc88\uc9f8 \ud638\uc2a4\ud2b8\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4. CloudStack\uc73c\ub85c \ud638\uc2a4\ud2b8\ub97c \ub3d9\uc791\ud558\ub824\uba74 \ud638\uc2a4\ud2b8\uc5d0\uac8c \ud558\uc774\ud37c \ubc14\uc774\uc800\ub97c \uc124\uce58\ud558\uace0 IP \uc8fc\uc18c\ub97c \ud560\ub2f9\ud574 \ud638\uc2a4\ud2b8\uac00 CloudStack \uad00\ub9ac \uc11c\ubc84\uc5d0 \uc811\uc18d\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4. <br/><br/>\ud638\uc2a4\ud2b8 DNS \uba85 \ub610\ub294 IP \uc8fc\uc18c, \uc0ac\uc6a9\uc790\uba85(\uc6d0\ub798 root)\uacfc \uc554\ud638 \ubc0f \ud638\uc2a4\ud2b8 \ubd84\ub958\uc5d0 \uc0ac\uc6a9\ud558\ub294 \ub77c\ubca8\uc744 \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.desc.primary.storage=\uac01 \ud074\ub7ec\uc2a4\ud130\uc5d0\ub294 \uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1\uc758 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \uc11c\ubc84\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc9c0\uae08 \uc5ec\uae30\uc11c \uccab\ubc88\uc9f8 \uc11c\ubc84\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4. \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\ub294 \ud074\ub7ec\uc2a4\ud130 \ub0b4 \ubd80 \ud638\uc2a4\ud2b8\uc0c1\uc5d0\uc11c \ub3d9\uc791\ud558\ub294 \ubaa8\ub4e0 VM \ub514\uc2a4\ud06c \ubcfc\ub968\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \ud558\uc774\ud37c \ubc14\uc774\uc800\uc5d0\uc11c \uae30\uc220 \uc9c0\uc6d0\ub418\ub294 \ud45c\uc900\uc5d0 \uc900\uac70\ud55c \ud504\ub85c\ud1a0\ucf5c\uc744 \uc0ac\uc6a9\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.desc.secondary.storage=\uac01 Zone\uc5d0\ub294 \uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1\uc758 NFS \uc989 2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 \uc11c\ubc84\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc9c0\uae08 \uc5ec\uae30\uc11c \uccab\ubc88\uc9f8 \uc11c\ubc84\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4. 2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0\ub294 VM \ud15c\ud50c\ub9bf, ISO \uc774\ubbf8\uc9c0 \ubc0f VM \ub514\uc2a4\ud06c \ubcfc\ub968 \uc2a4\ub0c5\uc0f7\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \uc774 \uc11c\ubc84\ub294 Zone\ub0b4 \ubaa8\ub4e0 \ud638\uc2a4\ud2b8\uc5d0\uc11c  \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. <br/><br/>IP \uc8fc\uc18c\uc640 \ub0b4\ubcf4\ub0b4\ub0bc \uacbd\ub85c\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.desc.zone=Zone\uc740 CloudStack \ud658\uacbd\ub0b4 \ucd5c\ub300 \uc870\uc9c1 \ub2e8\uc704\ub85c \uc6d0\ub798 \ub2e8\uc77c \ub370\uc774\ud130 \uc13c\ud130\uc5d0 \ud574\ub2f9\ud569\ub2c8\ub2e4. Zone\uc5d0 \ud574\uc11c \ubb3c\ub9ac\uc801\uc778 \ubd84\ub9ac\uc640 \uc911\ubcf5\uc131\uc774 \uc81c\uacf5\ub429\ub2c8\ub2e4. Zone\uc740 \ud55c \uac1c \uc774\uc0c1 Pod( \uac01 Pod\ub294 \ud638\uc2a4\ud2b8\uc640 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \uc11c\ubc84\uc5d0\uc11c \uad6c\uc131)\uc640 Zone\ub0b4 \ubaa8\ub4e0 Pod\ub85c \uacf5\uc720\ub418\ub294 2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 \uc11c\ubc84\ub85c \uad6c\uc131\ub429\ub2c8\ub2e4.
-message.detach.disk=\ud604\uc7ac \ub514\uc2a4\ud06c\ub97c \ubd84\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.detach.iso.confirm=\ud604\uc7ac \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\uc5d0\uc11c ISO \ud30c\uc77c\uc744 \ubd84\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.disable.account=\ud604\uc7ac \uacc4\uc815 \uc815\ubcf4\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?\uc774 \uacc4\uc815 \uc815\ubcf4 \ubaa8\ub4e0 \uc0ac\uc6a9\uc790\uac00 \ud074\ub77c\uc6b0\ub4dc \uc790\uc6d0\uc5d0 \uc811\uadfc \ud560 \uc218 \uc5c6\uac8c \ub429\ub2c8\ub2e4. \uc2e4\ud589\uc911 \ubaa8\ub4e0 \uac00\uc0c1 \uba38\uc2e0\uc740 \uae08\ubc29\uc5d0 \uc885\ub8cc \ub429\ub2c8\ub2e4.
-message.disable.snapshot.policy=\ud604\uc7ac \uc2a4\ub0c5\uc0f7 \uc815\ucc45\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \uc124\uc815\ud588\uc2b5\ub2c8\ub2e4.
-message.disable.user=\ud604\uc7ac \uc0ac\uc6a9\uc790\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.disable.vpn.access=VPN \uc811\uadfc\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.disable.vpn=VPN\ub97c \uc0ac\uc6a9 \uc548 \ud568\uc73c\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.download.ISO=ISO\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\ub824\uba74 <a href\="\#">00000</a>\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4.
-message.download.template=\ud15c\ud50c\ub9bf\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\ub824\uba74 <a href\="\#">00000</a>\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4.
-message.download.volume=\ubcfc\ub968\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\ub824\uba74 <a href\="\#">00000</a>\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4.
-message.edit.account=\ud3b8\uc9d1 ("-1"\ub294 \uc790\uc6d0 \ub9cc\ub4e4\uae30 \uc22b\uc790\uc5d0 \uc81c\ud55c\uc774 \uc5c6\ub294 \uac12\uc785\ub2c8\ub2e4.)
-message.edit.limits=\ub2e4\uc74c \uc790\uc6d0\uc5d0 \uc81c\ud55c\uc744 \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.\u300c-1\u300d\uc740 \uc790\uc6d0 \ub9cc\ub4e4\uae30\uc5d0 \uc81c\ud55c\uc774 \uc5c6\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4.
-message.edit.traffic.type=\ud604\uc7ac \ud2b8\ub798\ud53d\uc758 \uc885\ub958\uc5d0 \uad00\ub828 \ud2b8\ub798\ud53d \ub77c\ubca8\uc744 \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.enable.account=\ud604\uc7ac \uacc4\uc815 \uc815\ubcf4\ub97c \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.enabled.vpn.ip.sec=IPSec \uc0ac\uc804 \uacf5\uc720 \ud0a4\:
-message.enabled.vpn=\ud604\uc7ac VPN \uc811\uadfc \uc0ac\uc6a9 \uc124\uc815\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c IP \uc8fc\uc18c \uacbd\uc720\ub85c \uc811\uadfc \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.enable.user=\ud604\uc7ac \uc0ac\uc6a9\uc790\ub97c \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.enable.vpn.access=\ud604\uc7ac\uc774 IP \uc8fc\uc18c\uc5d0 \ub300\ud55c VPN\ub294 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740\uc785\ub2c8\ub2e4. VPN \uc811\uadfc\ub97c \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.enable.vpn=\ud604\uc7ac IP \uc8fc\uc18c\uc5d0 \ub300\ud55c VPN \uc811\uadfc\ub97c \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.enabling.security.group.provider=\ubcf4\uc548 \uadf8\ub8f9 \uc81c\uacf5\uc790\ub97c \uc0ac\uc6a9 \ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.
-message.enabling.zone=Zone\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4
-message.enter.token=\uc804\uc790 \uba54\uc77c \ucd08\ub300\uc7a5\uc5d0 \uc124\uba85\ub418\uc5b4 \uc788\ub294 \ud1a0\ud070\uc744 \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.generate.keys=\ud604\uc7ac \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc0c8\ub85c\uc6b4 \ud0a4\ub97c \uc0dd\uc131\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.guest.traffic.in.advanced.zone=\uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c \ud2b8\ub798\ud53d\uc740 \ucd5c\uc885 \uc0ac\uc6a9\uc790 \uac00\uc0c1 \uba38\uc2e0\uac04 \ud1b5\uc2e0\uc785\ub2c8\ub2e4. \uac01 \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c \uac8c\uc2a4\ud2b8 \ud2b8\ub798\ud53d\uc744 \ud1b5\uc2e0\ud558\uae30 \uc704\ud55c VLAN ID \ubc94\uc704\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.guest.traffic.in.basic.zone=\uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c \ud2b8\ub798\ud53d\uc740 \ucd5c\uc885 \uc0ac\uc6a9\uc790\uc758 \uac00\uc0c1 \uba38\uc2e0\uac04 \ud1b5\uc2e0\uc785\ub2c8\ub2e4. CloudStack\uc5d0 \uac8c\uc2a4\ud2b8 VM\uc5d0 \ud560\ub2f9\ud560 \uc218 \uc788\ub294 IP \uc8fc\uc18c \ubc94\uc704\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.\uc774 \ubc94\uc704\uac00 \uc608\uc57d \ub05d\ub09c \uc2dc\uc2a4\ud15c IP \uc8fc\uc18c \ubc94\uc704\uc640 \uc911\ubcf5 \ud558\uc9c0 \uc54a\uac8c \uc8fc\uc758\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.installWizard.click.retry=\uc2dc\uc791\uc744 \uc7ac\uc2dc\ud589\ud558\ub824\uba74 \ubc84\ud2bc\uc744 \ud074\ub9ad\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.installWizard.copy.whatIsACluster=\ud074\ub7ec\uc2a4\ud130\ub294 \ud638\uc2a4\ud2b8\ub97c \uadf8\ub8f9\ud654 \ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4. \ud55c \uac00\uc9c0 \ud074\ub7ec\uc2a4\ud130\ub0b4 \ud638\uc2a4\ud2b8\ub294 \ubaa8\ub450 \ub3d9\uc77c\ud55c \ud558\ub4dc\uc6e8\uc5b4\uc5d0\uc11c \uad6c\uc131\ub418\uc5b4 \uac19\uc740 \ud558\uc774\ud37c \ubc14\uc774\uc800\ub97c \uc2e4\ud589\ud558\uace0 \uac19\uc740 \uc11c\ube0c \ub124\ud2b8\uc6cc\ud06c\uc0c1\uc5d0 \uc788\uc5b4\uc11c \uac19\uc740 \uacf5\uc720 \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \uc811\uadfc \ud569\ub2c8\ub2e4. \uac19\uc740 \ud074\ub7ec\uc2a4\ud130\ub0b4\uc758 \ud638\uc2a4\ud2b8 \uc0ac\uc774\uc5d0\uc11c\ub294 \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc11c\ube44\uc2a4\ub97c \uc911\ub2e8\ud558\uc9c0 \uc54a\uace0 \uac00\uc0c1 \uba38\uc2e0 \uc778\uc2a4\ud134\uc2a4\ub97c \uc2e4\uc2dc\uac04 \uc774\uc804 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud074\ub7ec\uc2a4\ud130\ub294 CloudStack\u2122 \ud658\uacbd\ub0b4\uc758 \uc138 \ubc88\uc9f8\ub85c \ud070 \uc870\uc9c1 \ub2e8\uc704\uc785\ub2c8\ub2e4. \ud074\ub7ec\uc2a4\ud130\ub294 Pod\uc5d0 \ud3ec\ud568\ub418\uc5b4 Pod\ub294 Zone\uc5d0 \ud3ec\ud568\ub429\ub2c8\ub2e4. <br/><br/>CloudStack\u2122 \uc5d0\uc11c\ub294 \ud55c \uac00\uc9c0 \ud074\ub77c\uc6b0\ub4dc \ud658\uacbd\uc5d0 \ubcf5\uc218 \ud074\ub7ec\uc2a4\ud130\ub97c \uc124\uc815\ud560 \uc218 \uc788\uc73c\ub098 \uae30\ubcf8 \uc124\uce58\uc5d0\uc11c\ub294 \ud074\ub7ec\uc2a4\ud130\ub294 \ud55c \uac1c\uc785\ub2c8\ub2e4.
-message.installWizard.copy.whatIsAHost=\ud638\uc2a4\ud2b8\ub294 \ub2e8\uc77c \ucef4\ud4e8\ud130\ub85c \uc190\ub2d8 \uac00\uc0c1 \uba38\uc2e0\uc744 \uc2e4\ud589\ud558\ub294 \ucef4\ud4e8\ud305 \uc790\uc6d0\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \ubca0\uc5b4 \uba54\ud0c8 \ud638\uc2a4\ud2b8\ub97c \uc81c\uc678\ud558\uace0, \uac01 \ud638\uc2a4\ud2b8\ub294 \uac8c\uc2a4\ud2b8 \uac00\uc0c1 \uba38\uc2e0\uc744 \uad00\ub9ac\ud558\uae30 \uc704\ud55c \ud558\uc774\ud37c \ubc14\uc774\uc800 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \uc124\uce58\ud569\ub2c8\ub2e4. \ubca0\uc5b4 \uba54\ud0c8 \ud638\uc2a4\ud2b8\uc5d0 \ub300\ud574\uc11c\ub294 \uc124\uce58 \uac00\uc774\ub4dc \uace0\uae09\ud3b8 \ud2b9\uc218 \uc0ac\ub840\ub85c\uc11c \uc124\uba85\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, KVM\uc740 \uc720\ud6a8\ud55c Linux \uc11c\ubc84, Citrix XenServer\uac00 \ub3d9\uc791\ud558\ub294 \uc11c\ubc84 \ubc0f ESXi \uc11c\ubc84\uac00 \ud638\uc2a4\ud2b8\uc785\ub2c8\ub2e4. \uae30\ubcf8 \uc124\uce58\uc5d0\uc11c\ub294 XenServer \ub610\ub294 KVM\ub97c \uc2e4\ud589\ud558\ub294 \ub2e8\uc77c \ud638\uc2a4\ud2b8\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. <br/><br/>\ud638\uc2a4\ud2b8\ub294 CloudStack\u2122 \ud658\uacbd\ub0b4\uc758 \ucd5c\uc18c\uc758 \uc870\uc9c1 \ub2e8\uc704\uc785\ub2c8\ub2e4. \ud638\uc2a4\ud2b8\ub294 \ud074\ub7ec\uc2a4\ud130\uc5d0 \ud3ec\ud568\ub418\uc5b4 \ud074\ub7ec\uc2a4\ud130\ub294 Pod\uc5d0 \ud3ec\ud568\ub418\uc5b4 Pod\ub294 Zone\uc5d0 \ud3ec\ud568\ub429\ub2c8\ub2e4.
-message.installWizard.copy.whatIsAPod=\uc6d0\ub798 \ud55c \uac00\uc9c0 Pod\ub294 \ub2e8\uc77c \uc7a0\uae08\uc744 \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \uac19\uc740 Pod\ub0b4 \ud638\uc2a4\ud2b8\ub294 \uac19\uc740 \uc11c\ube0c \ub124\ud2b8\uc6cc\ud06c\uc5d0 \ud3ec\ud568\ub429\ub2c8\ub2e4. <br/><br/>Pod\ub294 CloudStack\u2122 \ud658\uacbd\ub0b4\uc758 \ub450 \ubc88\uc9f8\ub85c \ud070 \uc870\uc9c1 \ub2e8\uc704\uc785\ub2c8\ub2e4. Pod\ub294 Zone\uc5d0 \ud3ec\ud568\ub429\ub2c8\ub2e4. \uac01 Zone\uc740 \ud55c \uac1c \uc774\uc0c1\uc758 Pod\ub97c \ud3ec\ud568\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uae30\ubcf8 \uc124\uce58\uc5d0\uc11c\ub294 Zone\ub0b4 Pod\ub294 \ud55c \uac1c\uc785\ub2c8\ub2e4.
-message.installWizard.copy.whatIsAZone=Zone\uc740 CloudStack\u2122 \ud658\uacbd\ub0b4 \ucd5c\ub300 \uc870\uc9c1 \ub2e8\uc704\uc785\ub2c8\ub2e4. \ud55c \uac00\uc9c0 \ub370\uc774\ud130 \uc13c\ud130\ub0b4\uc5d0 \ubcf5\uc218 Zone\uc744 \uc124\uc815\ud560 \uc218 \uc788\uc73c\ub098 \uc6d0\ub798 Zone\uc740 \ub2e8\uc77c\uc758 \ub370\uc774\ud130 \uc13c\ud130\uc5d0 \ud560\ub2f9\ud569\ub2c8\ub2e4. \uc778\ud504\ub77c\uc2a4\ud2b8\ub7ed\uccd0\ub97c Zone\uc5d0 \uc870\uc9c1\ud654\ud558\uba74, Zone\uc744 \ubb3c\ub9ac\uc801\uc6b0\ub85c \ubd84\ub9ac\ud574 \uc124\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uac01 Zone\uc5d0 \uc804\uc6d0\uacfc \ub124\ud2b8\uc6cc\ud06c \uc5c5\ub9c1\ud06c\ub97c \ubc30\uce58\ud569\ub2c8\ub2e4. \ud544\uc218\uac00 \uc544\ub2c8\uc9c0\ub9cc \uc6d0\uaca9\uc9c0\uc5d0 \ubd84\uc0b0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.installWizard.copy.whatIsCloudStack=CloudStack\u2122\ub294 \ucef4\ud4e8\ud305 \uc790\uc6d0\uc744 \ud3ec\ud568\ud558\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \ud50c\ub7ab\uc6f9 \uc591\uc2dd\uc5d0\uc11c \uacf5\uac1c, \uc0ac\uc124, \ubc0f \ud558\uc774\ube0c\ub9ac\ub4dc\uc758 Infrastructure as a Service (IaaS) \ud074\ub77c\uc6b0\ub4dc\ub97c \uad6c\ucd95\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. CloudStack\u2122\ub97c \uc0ac\uc6a9\ud558\uace0, \ud074\ub77c\uc6b0\ub4dc \uc778\ud504\ub77c\uc2a4\ud2b8\ub7ed\uccd0\ub97c \uad6c\uc131\ud558\ub294 \ub124\ud2b8\uc6cc\ud06c, \uc2a4\ud1a0\ub9ac\uc9c0 \ubc0f \ucef4\ud4e8\ud305 \ub178\ub4dc\ub97c \uad00\ub9ac\ud558\uace0 \ud074\ub77c\uc6b0\ub4dc \ucef4\ud4e8\ud305 \ud658\uacbd\uc744 \uc124\uc815, \uad00\ub9ac \ubc0f \uad6c\uc131\ud569\ub2c8\ub2e4. <br/><br/>CloudStack\u2122\uc740 \ud558\ub4dc\uc6e8\uc5b4\uc0c1\uc5d0\uc11c \ub3d9\uc791\ud558\ub294 \uac1c\ubcc4 \uac00\uc0c1 \uba38\uc2e0 \uc774\ubbf8\uc9c0\ub97c \ub118\uc5b4 \ud655\uc7a5\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 \uac04\ub2e8\ud55c \uc124\uc815\uc73c\ub85c \ub3d9\uc791\ud558\ub294 \ud074\ub77c\uc6b0\ub4dc \uc778\ud504\ub77c\uc2a4\ud2b8\ub7ed\uccd0 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc2a4\ud0dd\uc5d0 \uc758\ud574 \uac00\uc0c1 \ub370\uc774\ud130 \uc13c\ud130 \uc989 \uc5ec\ub7ec \uce35\ud615 \uba40\ud2f0 \uc138\uc785\uc790 \ud074\ub77c\uc6b0\ub4dc \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc11c\ube44\uc2a4\ub85c\uc11c \uad6c\ucd95\ud558\uace0 \uc124\uc815\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc704\ud574\uc11c \ubd88\uac00\uacb0\ud55c \ud56d\ubaa9\uc744 \ubaa8\ub450 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc624\ud508 \uc18c\uc2a4 \ubc84\uc804\uacfc \ud504\ub9ac\ubbf8\uc5c4 \ubc84\uc804 \uc591\ucabd \ubaa8\ub450\uc5d0 \uc81c\uacf5\ud558\uba70 \uc624\ud508 \uc18c\uc2a4 \ubc84\uc804\uc5d0\uc11c\ub3c4 \ub300\ubd80\ubd84 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.installWizard.copy.whatIsPrimaryStorage=CloudStack\u2122 \ud074\ub77c\uc6b0\ub4dc \uc778\ud504\ub77c\uc2a4\ud2b8\ub7ed\uccd0\uc5d0\uc11c\ub294 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\uc640 2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 \ub450 \uc885\ub958\uc758 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc591\ucabd \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0\uc11c iSCSI, NFS \uc11c\ubc84, \ub610\ub294 \ub85c\uceec \ub514\uc2a4\ud06c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <br/><br/><strong>\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0</strong>\ub294 \ud074\ub7ec\uc2a4\ud130\uc5d0 \uad00\ub828\ub418\uc5b4\uadf8 \ud074\ub7ec\uc2a4\ud130\ub0b4\uc758 \ud638\uc2a4\ud2b8\ub85c \ub3d9\uc791\ud558\ub294 \ubaa8\ub4e0 VM \uc911 \uac01 \uac8c\uc2a4\ud2b8 VM\uc758 \ub514\uc2a4\ud06c \ubcfc\ub968\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \uc6d0\ub798, \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \uc11c\ubc84\ub294 \ud638\uc2a4\ud2b8 \uadfc\ucc98\uc5d0 \uc124\uce58\ud569\ub2c8\ub2e4.
-message.installWizard.copy.whatIsSecondaryStorage=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0\ub294 Zone\uacfc \uad00\ub828\ub3e4 \uc544\ub798\uc758 \ud56d\ubaa9\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. <ul><li>\ud15c\ud50c\ub9bf - VM \uc2dc\uc791 \uc2dc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 OS \uc774\ubbf8\uc9c0\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc124\uce58 \ub4f1 \ucd94\uac00 \uad6c\uc131\uc744 \ud3ec\ud568\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. </li><li>ISO \uc774\ubbf8\uc9c0 - \ubc14\ub85c \uc2dc\uc791 \uac00\ub2a5 \ub610\ub294 \uc2dc\uc791 \ubd88\uac00\uc758 OS \uc774\ubbf8\uc9c0\uc785\ub2c8\ub2e4. </li><li>\ub514\uc2a4\ud06c \ubcfc\ub968 \uc2a4\ub0c5\uc0f7 - VM \ub370\uc774\ud130 \uc800\uc7a5 \ubcf5\uc0ac\ubcf8\uc785\ub2c8\ub2e4. \ub370\uc774\ud130\uc758 \ubcf5\uc6d0 \ub610\ub294 \uc0c8\ub85c\uc6b4 \ud15c\ud50c\ub9bf \ub9cc\ub4e4\uae30\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. </ul>
-message.installWizard.now.building=\ud074\ub77c\uc6b0\ub4dc\ub97c \uad6c\ucd95\ud558\uace0 \uc788\ub294 \uc911...
-message.installWizard.tooltip.addCluster.name=\ud074\ub7ec\uc2a4\ud130 \uc774\ub984\uc785\ub2c8\ub2e4. CloudStack\uc5d0\uc11c \uc608\uc57d\ud558\uc9c0 \uc54a\uc740 \uc784\uc758 \ud14d\uc2a4\ud2b8\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.installWizard.tooltip.addHost.hostname=\ud638\uc2a4\ud2b8 DNS \uba85 \ub610\ub294 IP \uc8fc\uc18c\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addHost.password=XenServer \uce21\uc5d0\uc11c \uc9c0\uc815\ud55c \uc704\uc758 \uc0ac\uc6a9\uc790\uba85\uc5d0 \ub300\ud55c \uc554\ud638\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addHost.username=\uc6d0\ub798 root \uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addPod.name=Pod \uc774\ub984\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addPod.reservedSystemEndIp=\uc774\uac83\uc740 2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 VM \ubc0f \ucf58\uc194 \ud504\ub85d\uc2dc VM\ub97c \uad00\ub9ac\ud558\uae30 \uc704\ud574\uc11c CloudStack\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uc0ac\uc124 \ub124\ud2b8\uc6cc\ud06c\ub0b4 IP \uc8fc\uc18c \ubc94\uc704\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c IP \uc8fc\uc18c\ub294 \ucef4\ud4e8\ud305 \uc11c\ubc84\uc640 \uac19\uc740 \uc11c\ube0c\ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \ud560\ub2f9\ud569\ub2c8\ub2e4.
-message.installWizard.tooltip.addPod.reservedSystemGateway=\ud604\uc7ac Pod\ub0b4 \ud638\uc2a4\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=\uac8c\uc2a4\ud2b8\uac00 \uc0ac\uc6a9\ud558\ub294 \uc11c\ube0c\ub124\ud2b8\uc6cc\ud06c\uc0c1\uc5d0\uc11c \uc9c0\uc815\ud55c \ub137 \ub9c8\uc2a4\ud06c\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=\uc774\uac83\uc740 2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0 VM \ubc0f \ucf58\uc194 \ud504\ub85d\uc2dc VM\ub97c \uad00\ub9ac\ud558\uae30 \uc704\ud574\uc11c CloudStack\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uc0ac\uc124 \ub124\ud2b8\uc6cc\ud06c\ub0b4\uc758 IP \uc8fc\uc18c \ubc94\uc704\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c IP \uc8fc\uc18c\ub294 \ucef4\ud4e8\ud305 \uc11c\ubc84\uc640 \uac19\uc740 \uc11c\ube0c\ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \ud560\ub2f9\ud569\ub2c8\ub2e4.
-message.installWizard.tooltip.addPrimaryStorage.name=\uc2a4\ud1a0\ub9ac\uc9c0 \uae30\uae30\uc758 \uc774\ub984\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addPrimaryStorage.path=(NFS\uc758 \uacbd\uc6b0) \uc11c\ubc84\uc5d0\uc11c \ub0b4\ubcf4\ub0b4\uae30 \uacbd\ub85c\uc785\ub2c8\ub2e4. (SharedMountPoint\uc758 \uacbd\uc6b0) \uc77c\ubc18 \uacbd\ub85c\uc785\ub2c8\ub2e4. KVM\uc5d0\uc11c\ub294 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\uac00 \ub9c8\uc6b4\ud2b8\ub418\ub294 \uac01 \ud638\uc2a4\ud2b8\uc0c1\uc758 \uacbd\ub85c\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, /mnt/primary \uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addPrimaryStorage.server=(NFS, iSCSI \ub610\ub294 PreSetup\uc758 \uacbd\uc6b0) \uc2a4\ud1a0\ub9ac\uc9c0 \uae30\uae30\uc758 IP \uc8fc\uc18c \ub610\ub294 DNS \uba85\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=2\ucc28 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \ud638\uc2a4\ud2b8 \ud558\ub294 NFS \uc11c\ubc84 IP \uc8fc\uc18c\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addSecondaryStorage.path=\uc704\uc5d0\uc11c \uc9c0\uc815\ud55c \uc11c\ubc84\uc5d0 \uc874\uc7ac\ud558\ub294 \ub0b4\ubcf4\ub0b4\uae30 \uacbd\ub85c\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.addZone.dns1=Zone\ub0b4\uc758 \uac8c\uc2a4\ud2b8 VM\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 DNS \uc11c\ubc84\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c DNS \uc11c\ubc84\uc5d0\ub294 \ub2e4\uc74c\uc5d0 \ucd94\uac00\ud558\ub294 \uacf5\uac1c \ub124\ud2b8\uc6cc\ud06c \uacbd\uc720\ub85c \uc811\uadfc \ud569\ub2c8\ub2e4. Zone\uc758 \uacf5\uac1c IP \uc8fc\uc18c\uc5d0\uc11c \uc5ec\uae30\uc11c \uc9c0\uc815\ud558\ub294 \uacf5\uac1c DNS \uc11c\ubc84\uc5d0 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.installWizard.tooltip.addZone.dns2=Zone\ub0b4 \uac8c\uc2a4\ud2b8 VM \ub85c \uc0ac\uc6a9\ud558\ub294 DNS \uc11c\ubc84\uc785\ub2c8\ub2e4. \ud604\uc7ac DNS \uc11c\ubc84\uc5d0\ub294 \ub2e4\uc74c\uc5d0 \ucd94\uac00\ud558\ub294 \uacf5\uac1c \ub124\ud2b8\uc6cc\ud06c \uacbd\uc720\ub85c \uc811\uadfc\ud569\ub2c8\ub2e4. Zone\uc758 \uacf5\uac1c IP \uc8fc\uc18c\uc5d0\uc11c \uc5ec\uae30\uc11c \uc9c0\uc815\ud558\ub294 \uacf5\uac1c DNS \uc11c\ubc84\uc5d0 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.installWizard.tooltip.addZone.internaldns1=Zone\ub0b4\uc758 \uc2dc\uc2a4\ud15c VM \ub85c \uc0ac\uc6a9\ud558\ub294 DNS \uc11c\ubc84\uc785\ub2c8\ub2e4. \ud604\uc7ac DNS \uc11c\ubc84\ub294 \uc2dc\uc2a4\ud15c VM\uc758 \uc0ac\uc124 \ub124\ud2b8\uc6cc\ud06c \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac1c\uc785\uc2dc\ucf1c \uc811\uadfc\ud569\ub2c8\ub2e4. Pod\uc758 \uc0ac\uc124 IP \uc8fc\uc18c\uc5d0\uc11c \uc5ec\uae30\uc11c \uc9c0\uc815\ud558\ub294 DNS \uc11c\ubc84\uc5d0 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.installWizard.tooltip.addZone.internaldns2=Zone\ub0b4 \uc2dc\uc2a4\ud15c VM\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 DNS \uc11c\ubc84\uc785\ub2c8\ub2e4. \ud604\uc7ac DNS \uc11c\ubc84\ub294 \uc2dc\uc2a4\ud15c VM\uc758 \uc0ac\uc124 \ub124\ud2b8\uc6cc\ud06c \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac1c\uc785\uc2dc\ucf1c \uc811\uadfc\ud569\ub2c8\ub2e4. Pod\uc758 \uc0ac\uc124 IP \uc8fc\uc18c\uc5d0\uc11c \uc5ec\uae30\uc11c \uc9c0\uc815\ud558\ub294 DNS \uc11c\ubc84\uc5d0 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.installWizard.tooltip.addZone.name=Zone\uc758 \uc774\ub984\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.configureGuestTraffic.description=\ub124\ud2b8\uc6cc\ud06c \uc124\uba85\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=\ud604\uc7ac Zone\uc758 \uac8c\uc2a4\ud2b8\uc5d0\uac8c \ud560\ub2f9\ud560 \uc218 \uc788\ub294 IP \uc8fc\uc18c \ubc94\uc704\uc785\ub2c8\ub2e4. \uc0ac\uc6a9\ud558\ub294 NIC\uac00 \ud55c \uac00\uc9c0\uc778 \uacbd\uc6b0\ub294 \uc774\ub7ec\ud55c IP \uc8fc\uc18c\ub294 Pod\uc758 CIDR\uc640 \uac19\uc740 CIDR\uc5d0 \ud3ec\ud568\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=\uac8c\uc2a4\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uac8c\uc774\ud2b8\uc6e8\uc774\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=\uac8c\uc2a4\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uc11c\ube0c\ub124\ud2b8\uc6cc\ud06c\uc0c1\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 \ub137 \ub9c8\uc2a4\ud06c\uc785\ub2c8\ub2e4.
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=\ud604\uc7ac Zone\uc758 \uac8c\uc2a4\ud2b8\uc5d0\uac8c \ud560\ub2f9\ud560 \uc218 \uc788\ub294 IP \uc8fc\uc18c \ubc94\uc704\uc785\ub2c8\ub2e4. \uc0ac\uc6a9\ud558\ub294 NIC\uac00 \ud55c \uac00\uc9c0 \uacbd\uc6b0\ub294 \uc774\ub7ec\ud55c IP \uc8fc\uc18c\ub294 Pod\uc758 CIDR\uc640 \uac19\uc740 CIDR\uc5d0 \ud3ec\ud568\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.installWizard.tooltip.configureGuestTraffic.name=\ub124\ud2b8\uc6cc\ud06c \uc774\ub984\uc785\ub2c8\ub2e4.
-message.instanceWizard.noTemplates=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \ud15c\ud50c\ub9bf\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. \ud638\ud658\uc131\uc774 \uc788\ub294 \ud15c\ud50c\ub9bf\uc744 \ucd94\uac00\ud558\uace0, \uc778\uc2a4\ud134\uc2a4 \uc704\uc800\ub4dc\ub97c \uc7ac\uc2dc\uc791\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.ip.address.changed=\uc0ac\uc6a9 IP \uc8fc\uc18c\uac00 \ubcc0\uacbd\ub41c \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ubaa9\ub85d\uc744 \uc5c5\ub370\uc774\ud2b8\ud569\ub2c8\uae4c? \uadf8 \uacbd\uc6b0\ub294 \uc0c1\uc138 \uc124\uc815\ucc3d\uc774 \ub2eb\ub294 \uac83\uc5d0 \uc8fc\uc758\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.iso.desc=\ub370\uc774\ud130 \ub610\ub294 OS \uc2dc\uc791 \uac00\ub2a5 \ubbf8\ub514\uc5b4\ub97c \ud3ec\ud568\ud55c \ub514\uc2a4\ud06c \uc774\ubbf8\uc9c0
-message.join.project=\uc774\uac83\uc73c\ub85c, \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucc38\uc5ec\ud588\uc2b5\ub2c8\ub2e4. \ud504\ub85c\uc81d\ud2b8\ub97c \ucc38\uc870\ud558\ub824\uba74 \ud504\ub85c\uc81d\ud2b8 \ubcf4\uae30\ub85c \uc804\ud658\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.launch.vm.on.private.network=\uc0ac\uc801 \uc804\uc6a9 \ub124\ud2b8\uc6cc\ud06c\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \uc2dc\uc791\ud569\ub2c8\uae4c?
-message.launch.zone=Zone\uc744 \uc2dc\uc791\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c \uc21c\uc11c\uc5d0 \ub530\ub77c \uc9c4\ud589\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.lock.account=\ud604\uc7ac \uacc4\uc815 \uc815\ubcf4\ub97c \uc7a0\uadf8\uc5b4\ub3c4 \uc88b\uc2b5\ub2c8\uae4c? \uc774 \uacc4\uc815 \uc815\ubcf4 \ubaa8\ub4e0 \uc0ac\uc6a9\uc790\uac00 \ud074\ub77c\uc6b0\ub4dc \uc790\uc6d0\uc744 \uad00\ub9ac\ud560 \uc218 \uc5c6\uac8c \ub429\ub2c8\ub2e4. \uadf8 \ud6c4\ub3c4 \uae30\uc874 Zone \uc790\uc6d0\uc5d0\ub294 \uc811\uadfc \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.migrate.instance.confirm=\uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4 \uc774\uc804 \uc704\uce58\ub294 \ub2e4\uc74c \ud638\uc2a4\ud2b8\ub85c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.migrate.instance.to.host=\ub2e4\ub978 \ud638\uc2a4\ud2b8\uc5d0\uac8c \uc778\uc2a4\ud134\uc2a4\ub97c \uc774\uc804\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.migrate.instance.to.ps=\ub2e4\ub978 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \uc778\uc2a4\ud134\uc2a4\ub97c \uc774\uc804\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.migrate.router.confirm=\ub77c\uc6b0\ud130 \uc774\uc804 \uc704\uce58\ub85c \ud638\uc2a4\ud2b8\ub97c \uc120\ud0dd\uc2ed\uc2dc\uc624.
-message.migrate.systemvm.confirm=\uc2dc\uc2a4\ud15c VM \uc774\uc804 \uc774\uc804 \uc704\uce58\ub85c \ud638\uc2a4\ud2b8\ub97c \uc120\ud0dd\uc2ed\uc2dc\uc624.
-message.migrate.volume=\ub2e4\ub978 \uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \ubcfc\ub968\uc744 \uc774\uc804\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.new.user=\uacc4\uc815 \uc815\ubcf4\uc5d0 \uc0c8\ub85c\uc6b4 \uc0ac\uc6a9\uc790\ub97c \ucd94\uac00\ud558\uae30 \uc704\ud574 \uc544\ub798 \uc815\ubcf4\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.no.network.support.configuration.not.true=\ubcf4\uc548 \uadf8\ub8f9\uc774 \uc720\ud6a8\ud55c Zone\uc774 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \ucd94\uac00 \ub124\ud2b8\uc6cc\ud06c \uae30\ub2a5\uc740 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e8\uacc4 5\ub85c \uc9c4\ud589\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.no.network.support=\ud558\uc774\ud37c \ubc14\uc774\uc800\ub85c\uc11c vSphere\ub97c \uc120\ud0dd\ud588\uc73c\ub098 \uc774 \ud558\uc774\ud37c \ubc14\uc774\uc800\uc5d0 \ucd94\uac00 \ub124\ud2b8\uc6cc\ud06c \uae30\ub2a5\uc740 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e8\uacc4 5\ub85c \uc9c4\ud589\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.no.projects.adminOnly=\ud504\ub85c\uc81d\ud2b8\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. <br/>\uad00\ub9ac\uc790\uc5d0\uac8c \uc0c8\ub85c\uc6b4 \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\uc744 \uc758\ub8b0\ud558\uc2ed\uc2dc\uc624.
-message.no.projects=\ud504\ub85c\uc81d\ud2b8\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. <br/>\ud504\ub85c\uc81d\ud2b8 \uc139\uc158\uc5d0\uc11c \uc0c8\ub85c\uc6b4 \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\ub4e4\uc5b4 \uc8fc\uc2ed\uc2dc\uc624.
-message.number.clusters=<h2>\ud074\ub7ec\uc2a4\ud130<span>\uc218</span></h2>
-message.number.hosts=<h2>\ud638\uc2a4\ud2b8<span>\uc218</span></h2>
-message.number.pods=<h2>Pod<span>\uc218</span></h2>
-message.number.storage=<h2>\uae30\ubcf8 \uc2a4\ud1a0\ub9ac\uc9c0 \ubcfc\ub968<span>\uc218</span></h2>
-message.number.zones=<h2>Zone<span>\uc218</span></h2>
-message.pending.projects.1=\ubcf4\ub958\uc911\uc778 \ud504\ub85c\uc81d\ud2b8 \ucd08\ub300\uc7a5\uc774 \uc788\uc2b5\ub2c8\ub2e4.
-message.pending.projects.2=\ud45c\uc2dc\ud558\ub824\uba74 \ud504\ub85c\uc81d\ud2b8 \uc139\uc158\uc73c\ub85c \uc774\ub3d9\ud558\uace0 \ubaa9\ub85d\uc5d0\uc11c \ucd08\ub300\uc7a5\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.
-message.please.add.at.lease.one.traffic.range=\uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1 \ud2b8\ub798\ud53d \ubc94\uc704\ub97c \ucd94\uac00\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.please.proceed=\ub2e4\uc74c\uc758 \uc21c\uc11c\uc5d0 \uc9c4\ud589\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.please.select.a.configuration.for.your.zone=Zone \uad6c\uc131\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.please.select.a.different.public.and.management.network.before.removing=\uc0ad\uc81c \uc804\uc5d0 \ub2e4\ub978 \uacf5\uac1c \ubc0f \uad00\ub9ac \ub124\ud2b8\uc6cc\ud06c\ub97c \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.please.select.networks=\uac00\uc0c1 \uba38\uc2e0 \ub124\ud2b8\uc6cc\ud06c\ub97c \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.please.wait.while.zone.is.being.created=Zone\uc774 \ub9cc\ub4e4\uae30\ub420 \ub54c\uae4c\uc9c0 \uc7a0\uae50 \uae30\ub2e4\ub824 \uc8fc\uc2ed\uc2dc\uc624...
-message.project.invite.sent=\uc0ac\uc6a9\uc790\uc5d0\uac8c \ucd08\ub300\uc7a5\uc774 \uc804\uc1a1\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\uac00 \ucd08\ub300\ub97c \uc2b9\uc778\ud558\uba74, \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd94\uac00\ub429\ub2c8\ub2e4.
-message.public.traffic.in.advanced.zone=\ud074\ub77c\uc6b0\ub4dc \ub0b4\ubd80 VM\uc774 \uc778\ud130\ub137\uc5d0 \uc811\uadfc \ud558\uba74, \uacf5\uac1c \ud2b8\ub798\ud53d\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4. \uc774 \ub54c\ubb38\uc5d0 \uc77c\ubc18\uc801\uc73c\ub85c \uc811\uadfc \uac00\ub2a5\ud55c IP \uc8fc\uc18c\ub97c \ud560\ub2f9\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ucd5c\uc885 \uc0ac\uc6a9\uc790\ub294 CloudStack \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud574 \uc774\ub7ec\ud55c IP \uc8fc\uc18c\ub97c \ucde8\ub4dd\ud558\uace0 \uc190\ub2d8 \ub124\ud2b8\uc6cc\ud06c\uc640 \uacf5\uac1c \ub124\ud2b8\uc6cc\ud06c \uc0ac\uc774\uc5d0 NAT\ub97c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <br/><br/>\uc778\ud130\ub137 \ud2b8\ub798\ud53d\uc744 \uc704\ud574 \uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1 IP \uc8fc\uc18c \ubc94\uc704\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.public.traffic.in.basic.zone=\ud074\ub77c\uc6b0\ub4dc \ub0b4\ubd80 VM\uc774 \uc778\ud130\ub137\uc5d0 \uc811\uadfc \ud560 \ub54c \uc778\ud130\ub137 \uacbd\uc720\ub85c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc11c\ube44\uc2a4\ub97c \uc81c\uacf5\ud558\uba74, \uacf5\uac1c \ud2b8\ub798\ud53d\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4. \uc774 \ub54c\ubb38\uc5d0  \uc77c\ubc18\uc801\uc73c\ub85c \uc811\uadfc \uac00\ub2a5\ud55c IP \uc8fc\uc18c\ub97c \ud560\ub2f9\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc778\uc2a4\ud134\uc2a4\ub97c \ub9cc\ub4e4\uae30\ud558\uba74, \uac8c\uc2a4\ud2b8 IP \uc8fc\uc18c \uc678\uc5d0\uc774 \uacf5\uac1c IP \uc8fc\uc18c \ubc94\uc704\uc5d0\uc11c \uc8fc\uc18c\uac00 \ud558\ub098\uc758 \uc778\uc2a4\ud134\uc2a4\uc5d0 \ud560\ub2f9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uacf5\uac1c IP \uc8fc\uc18c\uc640 \uac8c\uc2a4\ud2b8 IP \uc8fc\uc18c \uc0ac\uc774\uc5d0 \uc815\uc801\uc778 1\ub300 1 NAT\uac00 \uc790\ub3d9\uc73c\ub85c \uc124\uc815 \ub429\ub2c8\ub2e4. \ucd5c\uc885 \uc0ac\uc6a9\uc790\ub294 CloudStack \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud574 \ucd94\uac00 IP \uc8fc\uc18c\ub97c \ucde8\ub4dd\ud558\uace0 \uc778\uc2a4\ud134\uc2a4\uc640 \uacf5\uac1c IP \uc8fc\uc18c \uc0ac\uc774\uc5d0 \uc815\uc801 NAT\ub97c \uad6c\ud604\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
-message.remove.vpc=VPC\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.remove.vpn.access=\ub2e4\uc74c \uc0ac\uc6a9\uc790\uc5d0\uc11c VPN \uc811\uadfc\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.reset.password.warning.notPasswordEnabled=\ud604\uc7ac \uc778\uc2a4\ud134\uc2a4 \ud15c\ud50c\ub9bf\uc740 \uc554\ud638 \uad00\ub9ac\ub97c \uc0ac\uc6a9 \ud558\uc9c0 \uc54a\uace0 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-message.reset.password.warning.notStopped=\ud604\uc7ac \uc554\ud638\ub97c \ubcc0\uacbd\ud558\uae30 \uc804\uc5d0 \uc778\uc2a4\ud134\uc2a4\ub97c \uc815\uc9c0\ud574\uc57c \ud569\ub2c8\ub2e4.
-message.reset.VPN.connection=VPN \uc811\uc18d\uc744 \uc7ac\uc124\uc815 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.restart.mgmt.server=\uc0c8\ub85c\uc6b4 \uc124\uc815\uc744 \uc0ac\uc6a9 \ud558\uae30 \uc704\ud574 \uad00\ub9ac \uc11c\ubc84\ub97c \uc7ac\uc2dc\uc791\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.restart.mgmt.usage.server=\uc0c8\ub85c\uc6b4 \uc124\uc815\uc744 \uc0ac\uc6a9 \ud558\uae30 \uc704\ud574 \uad00\ub9ac \uc11c\ubc84\uc640 \uc0ac\uc6a9 \uc0c1\ud669 \uce21\uc815 \uc11c\ubc84\ub97c \uc7ac\uc2dc\uc791\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.restart.network=\ud604\uc7ac \ub124\ud2b8\uc6cc\ud06c\ub85c \uc81c\uacf5\ud558\ub294 \ubaa8\ub4e0 \uc11c\ube44\uc2a4\uac00 \uc911\ub2e8\ub429\ub2c8\ub2e4. \uc774 \ub124\ud2b8\uc6cc\ud06c\ub97c \uc7ac\uc2dc\uc791\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.restart.vpc=VPC\ub97c \uc7ac\uc2dc\uc791\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.security.group.usage=(\ud574\ub2f9\ud558\ub294 \ubcf4\uc548 \uadf8\ub8f9\uc744 \ubaa8\ub450 \uc120\ud0dd\ud558\ub824\uba74 <strong>Ctrl \ud0a4\ub97c \ub204\ub974\uba74\uc11c \ud074\ub9ad</strong>\ud574 \uc8fc\uc2ed\uc2dc\uc624)
-message.select.a.zone=Zone\uc740 \uc6d0\ub798 \ub2e8\uc77c \ub370\uc774\ud130 \uc13c\ud130\uc5d0 \ud574\ub2f9\ud569\ub2c8\ub2e4. \ubcf5\uc218 Zone\uc744 \uc124\uc815\ud558\uace0 \ubb3c\ub9ac\uc801\uc73c\ub85c \ubd84\ub9ac\ud558\ub294 \ubc29\ubc95\uc73c\ub85c \ud074\ub77c\uc6b0\ub4dc\uc758 \uc2e0\ub8b0\uc131\uc744 \ub192\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.select.instance=\uc778\uc2a4\ud134\uc2a4\ub97c \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.select.iso=\uc0c8\ub85c\uc6b4 \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4 ISO\ub97c \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.select.item=\ud56d\ubaa9\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.select.security.groups=\uc0c8\ub85c\uc6b4 \uac00\uc0c1 \uba38\uc2e0 \ubcf4\uc548 \uadf8\ub8f9\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.select.template=\uc0c8\ub85c\uc6b4 \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4 \ud15c\ud50c\ub9bf\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.setup.physical.network.during.zone.creation.basic=\uae30\ubcf8 Zone\uc744 \ucd94\uac00\ud560 \ub54c\ub294 \ud558\uc774\ud37c \ubc14\uc774\uc800\uc0c1\uc758 \ub124\ud2b8\uc6cd\uce74\ub4dc(NIC)\uc5d0 \ub300\uc751\ud558\ub294 \ud55c \uac00\uc9c0 \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\ub97c \uc124\uc815 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub124\ud2b8\uc6cc\ud06c\ub294 \uba87 \uac00\uc9c0 \uc885\ub958\uc758 \ud2b8\ub798\ud53d\uc744 \uc804\uc1a1\ud569\ub2c8\ub2e4. <br/><br/>\ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\uc5d0 \ub2e4\ub978 \ud2b8\ub798\ud53d\uc758 \uc885\ub958\ub97c<strong>\ub4dc\ub798\uadf8 \uc564 \ub4dc\ub86d</strong> \ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
-message.setup.physical.network.during.zone.creation=\ud655\uc7a5 Zone\uc744 \ucd94\uac00\ud560 \ub54c\ub294 \ud55c \uac1c \uc774\uc0c1 \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\ub97c \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \uac01 \ub124\ud2b8\uc6cc\ud06c\ub294 \ud558\uc774\ud37c \ubc14\uc774\uc800\uc0c1 \ud55c \uac00\uc9c0 \ub124\ud2b8\uc6cc\ud06c \uce74\ub4dc(NIC)\uc5d0 \ub300\uc751\ud569\ub2c8\ub2e4. \uac01 \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c\ub294 \uad6c\uc131\uc5d0 \uc81c\ud55c\uc774 \uc788\uc73c\ub098, \ud55c \uac00\uc9c0 \uc885\ub958 \uc774\uc0c1 \ud2b8\ub798\ud53d\uc744 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <br/><br/>\uac01 \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\uc5d0 \ub300\ud574\uc11c<strong>\ud2b8\ub798\ud53d \uc885\ub958\ub97c \ub4dc\ub798\uadf8 \uc564 \ub4dc\ub86d</strong>\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.setup.successful=\ud074\ub77c\uc6b0\ub4dc\uac00 \uc124\uc815 \ub418\uc5c8\uc2b5\ub2c8\ub2e4.
-message.specify.url=URL\ub97c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624
-message.step.1.continue=\uc2e4\ud589\ud558\ub824\uba74 \ud15c\ud50c\ub9bf \ub610\ub294 ISO\ub97c \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.step.1.desc=\uc0c8\ub85c\uc6b4 \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\uc6a9 \ud15c\ud50c\ub9bf\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.ISO\ub97c \uc124\uce58 \ud560 \uc218 \uc788\ub294 \uacf5\ubc31 \ud15c\ud50c\ub9bf\uc744 \uc120\ud0dd\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
-message.step.2.continue=\uc2e4\ud589\ud558\ub824\uba74 \uc11c\ube44\uc2a4\uc81c\uacf5\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.step.3.continue=\uc2e4\ud589\ud558\ub824\uba74 \ub514\uc2a4\ud06c\uc81c\uacf5\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.step.4.continue=\uc2e4\ud589\ud558\ub824\uba74 \ub124\ud2b8\uc6cc\ud06c\ub97c \uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.step.4.desc=\uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\uac00 \uc811\uc18d\ud558\ub294 \uae30\ubcf8 \ub124\ud2b8\uc6cc\ud06c\ub97c \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.storage.traffic=\ud638\uc2a4\ud2b8\ub098 CloudStack \uc2dc\uc2a4\ud15c VM \ub4f1 \uad00\ub9ac \uc11c\ubc84\uc640 \ud1b5\uc2e0\ud558\ub294 CloudStack \ub0b4\ubd80 \uc790\uc6d0\uac04 \ud2b8\ub798\ud53d\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc11c \uc2a4\ud1a0\ub9ac\uc9c0 \ud2b8\ub798\ud53d\uc744 \uad6c\uc131\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.suspend.project=\ud604\uc7ac \ud504\ub85c\uc81d\ud2b8\ub97c \uc77c\uc2dc\uc815\uc9c0\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.template.desc=VM\uc758 \uc2dc\uc791\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 OS \uc774\ubbf8\uc9c0
-message.tooltip.dns.1=Zone\ub0b4 VM \ub85c \uc0ac\uc6a9\ud558\ub294 DNS \uc11c\ubc84 \uc774\ub984\uc785\ub2c8\ub2e4. Zone \uacf5\uac1c IP \uc8fc\uc18c\uc5d0\uc11c \uc774 \uc11c\ubc84\uc5d0 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.tooltip.dns.2=Zone\ub0b4 VM \ub85c \uc0ac\uc6a9\ud558\ub294 \ub450\ubc88\uc9f8 DNS \uc11c\ubc84 \uc774\ub984\uc785\ub2c8\ub2e4. Zone \uacf5\uac1c IP \uc8fc\uc18c\uc5d0\uc11c \uc774 \uc11c\ubc84\uc5d0 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.tooltip.internal.dns.1=Zone\ub0b4 CloudStack \ub0b4\ubd80 \uc2dc\uc2a4\ud15c VM \ub85c \uc0ac\uc6a9\ud558\ub294 DNS \uc11c\ubc84 \uc774\ub984\uc785\ub2c8\ub2e4. Pod \uc0ac\uc124 IP \uc8fc\uc18c\uc5d0\uc11c \uc774 \uc11c\ubc84\uc5d0 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.tooltip.internal.dns.2=Zone\ub0b4 CloudStack \ub0b4\ubd80 \uc2dc\uc2a4\ud15c VM \ub85c \uc0ac\uc6a9\ud558\ub294 DNS \uc11c\ubc84 \uc774\ub984\uc785\ub2c8\ub2e4. Pod \uc0ac\uc124 IP \uc8fc\uc18c\uc5d0\uc11c \uc774 \uc11c\ubc84\uc5d0 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
-message.tooltip.network.domain=DNS \uc11c\ud53d\uc2a4\uc785\ub2c8\ub2e4. \uc774 \uc11c\ud53d\uc2a4\uc5d0\uc11c \uac8c\uc2a4\ud2b8 VM \ub85c \uc811\uadfc \ud558\ub294 \ub124\ud2b8\uc6cc\ud06c \ub9de\ucda4\ud615 \ub3c4\uba54\uc778\uba85\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.
-message.tooltip.pod.name=\ud604\uc7ac Pod \uc774\ub984\uc785\ub2c8\ub2e4.
-message.tooltip.reserved.system.gateway=Pod\ub0b4 \ud638\uc2a4\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774\uc785\ub2c8\ub2e4.
-message.tooltip.reserved.system.netmask=Pod \uc11c\ube0c\ub124\ud2b8\uc6cc\ud06c\ub97c \uc815\ud558\ub294 \ub124\ud2b8\uc6cc\ud06c \ud504\ub808\ud53d\uc2a4\uc785\ub2c8\ub2e4. CIDR \ud45c\uae30\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
-message.tooltip.zone.name=Zone \uc774\ub984\uc785\ub2c8\ub2e4.
-message.update.os.preference=\ud604\uc7ac \ud638\uc2a4\ud2b8 OS \uae30\ubcf8 \uc124\uc815\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.\uac19\uc740 \uae30\ubcf8 \uc124\uc815\uc744 \uac00\uc9c0\ub294 \ubaa8\ub4e0 \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\ub294 \ub2e4\ub978 \ud638\uc2a4\ud2b8\ub97c \uc120\ud0dd\ud558\uae30 \uc804\uc5d0 \uc6b0\uc120\uc774 \ud638\uc2a4\ud2b8\uac00 \ud560\ub2f9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
-message.update.resource.count=\ud604\uc7ac \uacc4\uc815 \uc815\ubcf4 \uc790\uc6d0\uc218\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.update.ssl=\uac01 \ucf58\uc194 \ud504\ub85d\uc2dc \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\ub85c \uc5c5\ub370\uc774\ud2b8\ud558\ub294 X.509 \uae30\ubc18 \uc0c8 SSL \uc778\uc99d\uc11c\ub97c \uc804\uc1a1\ud574 \uc8fc\uc2ed\uc2dc\uc624\:
-message.validate.instance.name=\uc778\uc2a4\ud134\uc2a4\uba85\uc740 63 \ubb38\uc790 \uc774\ub0b4\uc5d0\uc11c \uc9c0\uc815\ud574 \uc8fc\uc2ed\uc2dc\uc624. ASCII \ubb38\uc790\uc758 a-z, A-Z, \uc22b\uc790\uc758 0-9 \ubc0f \ud558\uc774\ud508\ub9cc\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubb38\uc790\ub85c \uc2dc\uc791\ud558\uc5ec \ubb38\uc790 \ub610\ub294 \uc22b\uc790\ub85c \ub05d\ub0b4\uc57c \ud569\ub2c8\ub2e4.
-message.virtual.network.desc=\uacc4\uc815 \uc815\ubcf4 \uc804\uc6a9 \uac00\uc0c1 \ub124\ud2b8\uc6cc\ud06c\uc785\ub2c8\ub2e4. \ube0c\ub85c\ub4dc\uce90\uc2a4\ud2b8 \ub3c4\uba54\uc778\uc740 VLAN \ub0b4\uc5d0 \ubc30\uce58\ub418\uc5b4 \uacf5\uac1c \ub124\ud2b8\uc6cc\ud06c\uc5d0 \uc811\uadfc\ub294 \ubaa8\ub450 \uac00\uc0c1 \ub77c\uc6b0\ud130\uc5d0 \ud574\uc11c \ub8e8\ud305 \ub429\ub2c8\ub2e4.
-message.vm.create.template.confirm=\ud15c\ud50c\ub9bf \ub9cc\ub4e4\uae30\ud558\uba74 VM\uc774 \uc790\ub3d9\uc73c\ub85c \uc7ac\uc2dc\uc791\ub429\ub2c8\ub2e4.
-message.vm.review.launch=\ub2e4\uc74c\uc758 \uc815\ubcf4\ub97c \ucc38\uc870\ud558\uace0 \uac00\uc0c1 \uc778\uc2a4\ud134\uc2a4\ub97c \uc62c\ubc14\ub974\uac8c \uc124\uc815\ud55c \uac83\uc744 \ud655\uc778\ud558\uace0 \ub098\uc11c \uc2dc\uc791\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.volume.create.template.confirm=\ud604\uc7ac \ub514\uc2a4\ud06c \ubcfc\ub968 \ud15c\ud50c\ub9bf\uc744 \ub9cc\ub4dc\uc2dc\uaca0\uc2b5\ub2c8\uae4c? \ubcfc\ub968 \ud06c\uae30\uc5d0 \ub530\ub77c \ud15c\ud50c\ub9bf \ub9cc\ub4e4\uae30\uc5d0 \uba87 \ubd84 \uc774\uc0c1 \uac78\ub9b4 \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4.
-message.you.must.have.at.least.one.physical.network=\uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1 \ubb3c\ub9ac \ub124\ud2b8\uc6cc\ud06c\uac00 \ud544\uc694\ud569\ub2c8\ub2e4
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Zone\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 Zone\uc744 \uc0ac\uc6a9 \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
-message.Zone.creation.complete=Zone\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.
-message.zone.no.network.selection=\uc120\ud0dd\ud55c Zone\uc5d0\uc11c\ub294 \ub124\ud2b8\uc6cc\ud06c\ub97c \uc120\ud0dd\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-message.zone.step.1.desc=Zone \ub124\ud2b8\uc6cc\ud06c \ubaa8\ub378\uc744 \uc120\ud0dd\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.zone.step.2.desc=\uc0c8 Zone\uc744 \ucd94\uac00\ud558\uae30 \uc704\ud574 \uc544\ub798 \uc815\ubcf4\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-message.zone.step.3.desc=\uc0c8 Pod\ub97c \ucd94\uac00\ud558\uae30 \uc704\ud574 \uc544\ub798 \uc815\ubcf4\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624.
-mode=\ubaa8\ub4dc
-network.rate=\ub124\ud2b8\uc6cc\ud06c \uc18d\ub3c4
-notification.reboot.instance=\uc778\uc2a4\ud134\uc2a4 \uc7ac\uc2dc\uc791
-notification.start.instance=\uc778\uc2a4\ud134\uc2a4 \uc2dc\uc791
-notification.stop.instance=\uc778\uc2a4\ud134\uc2a4 \uc815\uc9c0
-side.by.side=\ubcd1\ub82c
-state.Accepted=\uc2b9\uc778 \uc644\ub8cc
-state.Active=\ud65c\uc131
-state.Allocated=\ud560\ub2f9 \ub05d\ub09c \uc0c1\ud0dc
-state.Allocating=\ud560\ub2f9 \uc911
-state.BackedUp=\ubc31\uc5c5 \uc644\ub8cc
-state.BackingUp=\ubc31\uc5c5 \uc911
-state.Completed=\uc644\ub8cc
-state.Creating=\uc0dd\uc131 \uc911
-state.Declined=\uac70\uc808
-state.Destroyed=\ud30c\uae30\ub41c \uc0c1\ud0dc
-state.Disabled=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740
-state.Enabled=\uc0ac\uc6a9\ud568
-state.Error=\uc624\ub958
-state.Expunging=\uc81c\uac70 \uc911
-state.Migrating=\uc774\uc804 \uc911
-state.Pending=\ubcf4\ub958
-state.Ready=\uc900\ube44 \uc644\ub8cc
-state.Running=\uc2e4\ud589 \uc911
-state.Starting=\uc2dc\uc791 \uc911
-state.Stopped=\uc815\uc9c0\ub41c \uc0c1\ud0dc
-state.Stopping=\uc815\uc9c0\ud558\uace0 \uc788\ub294 \uc911
-state.Suspended=\uc77c\uc2dc\uc815\uc9c0
-ui.listView.filters.all=\ubaa8\ub450
-ui.listView.filters.mine=\ub0b4 \uc815\ubcf4\ub9cc
diff --git a/client/WEB-INF/classes/resources/messages_nb_NO.properties b/client/WEB-INF/classes/resources/messages_nb_NO.properties
deleted file mode 100644
index cec91dc..0000000
--- a/client/WEB-INF/classes/resources/messages_nb_NO.properties
+++ /dev/null
@@ -1,2258 +0,0 @@
-# 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.
-
-changed.item.properties=Endrede egenskaper
-confirm.enable.s3=Vennligst fyll inn f\u00f8lgende informasjon for \u00e5 aktivere st\u00f8tte for S3-st\u00f8ttet sekund\u00e6rlagring
-confirm.enable.swift=Vennligst fyll inn f\u00f8lgende informasjon for \u00e5 aktivere st\u00f8tte for Swift
-error.could.not.change.your.password.because.ldap.is.enabled=Feil kunne ikke bytte ditt passord fordi LDAP er aktivert.
-error.could.not.enable.zone=Kunne ikke aktivere sonen
-error.installWizard.message=Noe gikk galt. G\u00e5 tilbake og korriger feilene.
-error.invalid.username.password=Ugyldig brukernavn eller passord
-error.login=Ditt brukernavn/passord stemmer ikke overens med v\u00e5re opplysninger.
-error.menu.select=Kan ikke utf\u00f8re handlingen grunnet ingen valgte elementer.
-error.mgmt.server.inaccessible=Administrasjonsserver er utilgjengelig. Vennligst pr\u00f8v igjen senere.
-error.password.not.match=Passordfeltene sammensvarer ikke
-error.please.specify.physical.network.tags=Nettverkstilbud er ikke tilgjengelig f\u00f8r du spesifiserer knagger for dette fysiske nettverket.
-error.session.expired=Din sesjon har utl\u00f8pt.
-error.something.went.wrong.please.correct.the.following=Noe gikk galt. Vennligst korrig\u00e9r f\u00f8lgende
-error.unable.to.reach.management.server=Kan ikke oppn\u00e5 kontakt med administrasjonsserveren
-error.unresolved.internet.name=Ditt internettnavn kan ikke l\u00f8ses.
-force.delete.domain.warning=Advarsel\: dette alternativet vil medf\u00f8re at alle underdomener og alle assosierte kontoer og dere resurser blir slettet.
-force.delete=Tving sletting
-force.remove.host.warning=Advarsel\: ved valg av dette alternativet vil CloudStack stoppe alle kj\u00f8rende virtuelle maskiner, f\u00f8r verten blir fjernet fra klyngen.
-force.remove=Tving fjerning
-force.stop.instance.warning=Advarsel\: \u00c5 tvinge en stopp av denne instansen b\u00f8r v\u00e6re siste utvei. Det kan f\u00f8re til tap av data og ukonsistent oppf\u00f8rsel av virtuell maskinstatus.
-force.stop=Tving stopp
-hint.no.host.tags=Ingen hosttagger funnet
-hint.no.storage.tags=Ingen lagringstagger funnet
-hint.type.part.host.tag=Skriv inn deler av hosttagg
-hint.type.part.storage.tag=Skriv inn deler av lagringstagg
-ICMP.code=ICMP-kode
-ICMP.type=ICMP-type
-image.directory=Bilde-katalog
-inline=I Rekke
-instances.actions.reboot.label=Omstart av instans
-label.about.app=Om CloudStack
-label.about=Om
-label.accept.project.invitation=Aksepter prosjektinvitasjon
-label.account.and.security.group=Konto, Sikkerhetsgruppe
-label.account.details=Kontodetaljer
-label.account.id=Konto ID
-label.account=Konto
-label.account.lower=konto
-label.account.name=Kontonavn
-label.accounts=Kontoer
-label.account.specific=Kontospesifikk
-label.account.type=Kontotype
-label.acl=ACL
-label.acl.id=ACL ID
-label.acl.list.rules=ACL Liste Regler
-label.acl.name=ACL Navn
-label.acl.replaced=ACL erstattet
-label.acquire.new.ip=Tilegne ny IP
-label.acquire.new.secondary.ip=Tilegne ny sekund\u00e6r IP
-label.action.attach.disk.processing=Tilknytter Disk....
-label.action.attach.disk=Tilknytt Disk
-label.action.attach.iso.processing=Tilknytter ISO....
-label.action.attach.iso=Tilknytt ISO
-label.action.cancel.maintenance.mode=Avbryt vedlikeholdsmodus
-label.action.cancel.maintenance.mode.processing=Avbryter vedlikeholdsmodus....
-label.action.change.password=Endre passord
-label.action.change.service=Endre Tjeneste
-label.action.change.service.processing=Endrer Tjeneste....
-label.action.configure.samlauthorization=Konfigurer SAML SSO-autorisering
-label.action.copy.ISO=Kopier ISO
-label.action.copy.ISO.processing=Kopierer ISO....
-label.action.copy.template=Kopier mal
-label.action.copy.template.processing=Kopierer \u00f8yeblikksbilde....
-label.action.create.template.from.vm=Lag Mal fra VM
-label.action.create.template.from.volume=Lag Mal fra Volum
-label.action.create.template=Opprett mal
-label.action.create.template.processing=Oppretter mal....
-label.action.create.vm=Opprett VM
-label.action.create.vm.processing=Oppretter VM....
-label.action.create.volume=Opprett volum
-label.action.create.volume.processing=Oppretter volum....
-label.action.delete.account.processing=Sletter konto....
-label.action.delete.account=Slett konto
-label.action.delete.cluster.processing=Sletter klynge....
-label.action.delete.cluster=Slett klynge
-label.action.delete.disk.offering.processing=Sletter disktilbud....
-label.action.delete.disk.offering=Slett disktilbud
-label.action.delete.domain.processing=Sletter domene....
-label.action.delete.domain=Slett domene
-label.action.delete.firewall.processing=Sletter brannmur....
-label.action.delete.firewall=Slett brannmurregel
-label.action.delete.ingress.rule.processing=Sletter inng\u00e5ende regel....
-label.action.delete.ingress.rule=Slett inng\u00e5ende regel
-label.action.delete.IP.range.processing=Sletter IP-rekke....
-label.action.delete.IP.range=Slett IP-rekke
-label.action.delete.ISO.processing=Sletter ISO....
-label.action.delete.ISO=Slett ISO
-label.action.delete.load.balancer.processing=Sletter Lastbalanserer
-label.action.delete.load.balancer=Slett lastbalanseringsregel
-label.action.delete.network.processing=Sletter nettverk....
-label.action.delete.network=Slett nettverk
-label.action.delete.nexusVswitch=Slett Nexus 1000v
-label.action.delete.nic=Fjern NIC
-label.action.delete.physical.network=Slett fysisk nettverk
-label.action.delete.pod.processing=Sletter pod....
-label.action.delete.pod=Slett pod
-label.action.delete.primary.storage.processing=Sletter prim\u00e6rlagring....
-label.action.delete.primary.storage=Slett prim\u00e6rlagring
-label.action.delete.secondary.storage.processing=Sletter sekund\u00e6rlagring....
-label.action.delete.secondary.storage=Slett sekund\u00e6rlagring
-label.action.delete.security.group.processing=Slett Sikkerhetsgruppe....
-label.action.delete.security.group=Slett Sikkerhetsgruppe
-label.action.delete.service.offering.processing=Sletter tjenestetilbud....
-label.action.delete.service.offering=Slett tjenestetilbud
-label.action.delete.snapshot.processing=Sletter \u00f8yeblikksbilde....
-label.action.delete.snapshot=Slett \u00f8yeblikksbilde
-label.action.delete.system.service.offering=Slett system-tjenestetilbud
-label.action.delete.template.processing=Sletter mal....
-label.action.delete.template=Slett mal
-label.action.delete.user.processing=Sletter bruker....
-label.action.delete.user=Slett bruker
-label.action.delete.volume.processing=Sletter volum....
-label.action.delete.volume=Slett volum
-label.action.delete.zone.processing=Sletter sone....
-label.action.delete.zone=Slett sone
-label.action.destroy.instance.processing=\u00d8delegger instans....
-label.action.destroy.instance=\u00d8delegg Instans
-label.action.destroy.systemvm.processing=Sletter system VM....
-label.action.destroy.systemvm=Slett system VM
-label.action.detach.disk=Frakoble disk
-label.action.detach.disk.processing=Kobler fra disk....
-label.action.detach.iso=Frakoble ISO
-label.action.detach.iso.processing=Frakobler ISO....
-label.action.disable.account=Deaktiver konto
-label.action.disable.account.processing=Deaktiverer konto....
-label.action.disable.cluster=Deaktiver klyngen
-label.action.disable.cluster.processing=Deaktiverer klyngen...
-label.action.disable.nexusVswitch=Deaktiver Nexus 1000v
-label.action.disable.physical.network=Deaktiver fysisk nettverk
-label.action.disable.pod=Deaktiver pod
-label.action.disable.pod.processing=Deaktiverer pod...
-label.action.disable.static.NAT=Deaktiver statisk NAT
-label.action.disable.static.NAT.processing=Deaktiverer statisk NAT....
-label.action.disable.user=Deaktivert bruker
-label.action.disable.user.processing=Deaktiverer bruker....
-label.action.disable.zone=Deaktiver sonen
-label.action.disable.zone.processing=Deaktiverer sonen...
-label.action.download.ISO=Last ned ISO
-label.action.download.template=Laster ned mal
-label.action.download.volume=Last ned volum
-label.action.download.volume.processing=Laster ned volum....
-label.action.edit.account=Rediger konto
-label.action.edit.disk.offering=Editer disktilbud
-label.action.edit.domain=Editer domene
-label.action.edit.global.setting=Editer global innstilling
-label.action.edit.host=Editer vert
-label.action.edit.instance=Rediger instans
-label.action.edit.ISO=Rediger ISO
-label.action.edit.network=Editer Nettverk
-label.action.edit.network.offering=Editer nettverkstilbud
-label.action.edit.network.processing=Editerer Nettverk....
-label.action.edit.pod=Editer Pod
-label.action.edit.primary.storage=Editer Prim\u00e6rlagring
-label.action.edit.resource.limits=Rediger ressursbegrensninger
-label.action.edit.service.offering=Editer tjenestetilbud
-label.action.edit.template=Editer mal
-label.action.edit.user=Rediger bruker
-label.action.edit.zone=Rediger Sone
-label.action.enable.account=Aktiver konto
-label.action.enable.account.processing=Aktiverer konto....
-label.action.enable.cluster=Aktiver klynge
-label.action.enable.cluster.processing=Aktiverer klyngen...
-label.action.enable.maintenance.mode=Aktiver vedlikeholdsmodus
-label.action.enable.maintenance.mode.processing=Aktiver vedlikeholdsmodus...
-label.action.enable.nexusVswitch=Aktiver Nexus 1000v
-label.action.enable.physical.network=Aktiver fysisk nettverk
-label.action.enable.pod=Aktiver pod
-label.action.enable.pod.processing=Aktiverer pod...
-label.action.enable.static.NAT=Aktiver statisk NAT
-label.action.enable.static.NAT.processing=Aktiverer statisk NAT....
-label.action.enable.user=Aktiver Bruker
-label.action.enable.user.processing=Aktiverer Bruker....
-label.action.enable.zone=Aktiver sone
-label.action.enable.zone.processing=Aktiverer sone...
-label.action.expunge.instance.processing=Sletter instans....
-label.action.expunge.instance=Slett Instans Permanent
-label.action.force.reconnect.processing=Kobler til p\u00e5 nytt....
-label.action.force.reconnect=Tving ny tilkobling
-label.action.generate.keys=Generer n\u00f8kler
-label.action.generate.keys.processing=Genererer n\u00f8kler....
-label.action=Handling
-label.action.list.nexusVswitch=Liste Nexus 1000v
-label.action.lock.account=L\u00e5s konto
-label.action.lock.account.processing=L\u00e5ser konto....
-label.action.manage.cluster=Administrer klynge
-label.action.manage.cluster.processing=Administrerer klynge....
-label.action.migrate.instance=Migrer Instans
-label.action.migrate.instance.processing=Migrerer Instans....
-label.action.migrate.router=Migrer ruter
-label.action.migrate.router.processing=Migrerer Ruter....
-label.action.migrate.systemvm=Migrer System VM
-label.action.migrate.systemvm.processing=Migrerer System VM....
-label.action.reboot.instance=Omstart Instans
-label.action.reboot.instance.processing=Starter om Instans....
-label.action.reboot.router=Omstart Ruter
-label.action.reboot.router.processing=Omstaer Instans....
-label.action.reboot.systemvm=Omstart System VM
-label.action.reboot.systemvm.processing=Omstarter System VM
-label.action.recurring.snapshot=Gjentagende \u00f8yeblikksbilder
-label.action.register.iso=Registrer ISO
-label.action.register.template=Registrer mal fra en URL
-label.action.release.ip=Frigj\u00f8r IP
-label.action.release.ip.processing=Frigj\u00f8r IP-adresse....
-label.action.remove.host=Fjern Vert
-label.action.remove.host.processing=Fjerner Vert....
-label.action.reset.password.processing=Tilbakestiller passord....
-label.action.reset.password=Tilbakestill passord
-label.action.resize.volume=Endre st\u00f8rrelse p\u00e5 volum
-label.action.resize.volume.processing=Endrer st\u00f8rrelse p\u00e5 volum....
-label.action.resource.limits=Ressursbegrensninger
-label.action.restore.instance=Gjenopprett Instans
-label.action.restore.instance.processing=Gjenoppretter Instans....
-label.action.revert.snapshot.processing=Tilbakestiller til \u00f8yeblikksbilde....
-label.action.revert.snapshot=Tilbakestill til \u00f8yeblikksbilde
-label.actions=Handlinger
-label.action.start.instance.processing=Starter instans....
-label.action.start.instance=Start instans
-label.action.start.router.processing=Stopper ruter
-label.action.start.router=Start ruter
-label.action.start.systemvm.processing=Starter System VM....
-label.action.start.systemvm=Start System VM
-label.action.stop.instance.processing=Stopper instans....
-label.action.stop.instance=Stopp instans
-label.action.stop.router.processing=Stopper ruter....
-label.action.stop.router=Stopp ruter
-label.action.stop.systemvm.processing=Stopper System VM....
-label.action.stop.systemvm=Stopp System VM
-label.action.take.snapshot.processing=Tar \u00f8yeblikksbilde....
-label.action.take.snapshot=Ta \u00f8yeblikksbilde
-label.action.unmanage.cluster=Fjern administrasjon av klynge
-label.action.unmanage.cluster.processing=Fjerner administrasjon av klynge...
-label.action.update.OS.preference=Oppdater OS-preferanser
-label.action.update.OS.preference.processing=Oppdaterer OS-preferanser.....
-label.action.update.resource.count=Oppdater resurs oversikt
-label.action.update.resource.count.processing=Oppdaterer resurs oversikt
-label.action.vmsnapshot.create=Ta VM \u00f8yeblikksbilde
-label.action.vmsnapshot.delete=Slett VM \u00f8yeblikksbilde
-label.action.vmsnapshot.revert=Tilbakestill til maskin\u00f8yeblikksbilde
-label.activate.project=Aktiver prosjekt
-label.active.sessions=Aktive sesjoner
-label.add.account=Legg til konto
-label.add.accounts=Legg til kontoer
-label.add.accounts.to=Legg kontoer til
-label.add.account.to.project=Legg kontoen til prosjektet
-label.add.ACL=Legg til ACL
-label.add.acl.list=Legg til ACL liste
-label.add.affinity.group=Legg til affinitetsgruppe
-label.add.baremetal.dhcp.device=Legg Til Barmetall DHCP Enhet
-label.add.baremetal.rack.configuration=Legg Til Barmetall Rack Konfigurering
-label.add.BigSwitchBcf.device=Legg til BigSwitch BCF kontroller
-label.add.BrocadeVcs.device=Legg til Brocade VCS Svitsj
-label.add.by.cidr=Legg til med CIDR
-label.add.by.group=Legg til med gruppe
-label.add.by=Legg til ved
-label.add.ciscoASA1000v=Legg til CiscoASA1000v Resurs
-label.add.cluster=Legg til klynge
-label.add.compute.offering=Legg til systemtilbud
-label.add.direct.iprange=Legg til direkte IP-rekke
-label.add.disk.offering=Legg til disktilbud
-label.add.domain=Legg til domene
-label.added.brocade.vcs.switch=Ny Brocade Vcs svitsj lagt til
-label.added.network.offering=La til nettverkstilbud
-label.added.new.bigswitch.bcf.controller=La til ny BigSwitch BCF kontroller
-label.added.nicira.nvp.controller=La til ny Nicira NVP-kontroller
-label.add.egress.rule=Legg til egress regel
-label.addes.new.f5=La til ny F5
-label.add.F5.device=Legg til F5 enhet
-label.add.firewall=Legg til brannmurregel
-label.add.globo.dns=legg til GloboDNS
-label.add.gslb=Legg til GSLB
-label.add.guest.network=Legg til gjestenettverk
-label.add.host=Legg til vert
-label.adding.cluster=Legger til klynge
-label.adding.failed=Tillegging feilet
-label.adding.pod=Legger til pod
-label.adding.processing=Legger til
-label.add.ingress.rule=Legg til ingressregel
-label.adding.succeeded=Tillegging vellykket
-label.adding=Tillegger
-label.adding.user=Legger til bruker
-label.adding.zone=Legger til sone
-label.add.intermediate.certificate=Legg til intermediate sertifikat
-label.add.internal.lb=Legg til intern LB
-label.add.ip.range=Legg til IP-rekke
-label.add.isolated.guest.network=Legg til Isolert gjestenettverk
-label.add.isolated.guest.network.with.sourcenat=Legg til isolert gjestenettverk med kilde-NAT
-label.add.isolated.network=Legg Til Isolert Nettverk
-label.additional.networks=Ekstra nettverk
-label.add.ldap.account=Legg til LDAP-konto
-label.add.LDAP.account=Legg til LDAP-konto
-label.add=Legg til
-label.add.list.name=ACL listenavn
-label.add.load.balancer=Legg til lastbalanserer
-label.add.more=Legg til mer
-label.add.netScaler.device=Legg til Netscaler enhet
-label.add.network.ACL=Legg til nettverk ACL
-label.add.network.acl.list=Legg til nettverk ACL liste
-label.add.network.device=Legg til nettverksenhet
-label.add.network=Legg til nettverk
-label.add.network.offering=Legg til nettverkstilbud
-label.add.new.F5=Legg til ny F5
-label.add.new.gateway=Legg til ny gateway
-label.add.new.NetScaler=Legg til ny NetScaler
-label.add.new.PA=Legg til ny Palo Alto
-label.add.new.SRX=Legg til ny SRX
-label.add.new.tier=Legg til ny gren
-label.add.nfs.secondary.staging.store=Legg Til NFS sekund\u00e6rmellomlagringsomr\u00e5de
-label.add.NiciraNvp.device=Legg til Nvp kontroller
-label.add.NuageVsp.device=Legg til Nuage Virtualized Services Directory (VSD)
-label.add.OpenDaylight.device=Legg til OpenDayLight kontroller
-label.add.PA.device=Legg til Palo Alto enhet
-label.add.physical.network=Legg til fysisk nettverk
-label.add.pod=Legg til pod
-label.add.portable.ip.range=Legg til portabel IP-rekke
-label.add.port.forwarding.rule=Legg til portvideresendingsregel
-label.add.primary.storage=Legg til prim\u00e6rlagring
-label.add.private.gateway=Legg til privat gateway
-label.add.region=Legg til region
-label.add.resources=Legg til ressurser
-label.add.route=Legg til rute
-label.add.rule=Legg til regel
-label.add.secondary.storage=Legg til sekund\u00e6rlagring
-label.add.security.group=Legg til sikkerhetsgruppe
-label.add.service.offering=Legg til tjenestetilbud
-label.add.SRX.device=Legg til SRX enhet
-label.add.static.nat.rule=Legg til statisk NAT-regel
-label.add.static.route=Legg til statisk rute
-label.add.system.service.offering=Legg til et systemtilbud
-label.add.template=Legg til mal
-label.add.to.group=Legg til gruppe
-label.add.ucs.manager=Legg Til UCS Manager
-label.add.userdata=Brukerdata
-label.add.user=Legg til bruker
-label.add.vlan=Legg til VLAN
-label.add.vm=Legg til VM
-label.add.vms=Legg til VMer
-label.add.vms.to.lb=Legg til VM(er) til lastbalanseringsregel
-label.add.VM.to.tier=Legg VM til VPC-gren
-label.add.vmware.datacenter=Legg til VMware datasenter
-label.add.vnmc.device=Legg til VNMC enhet
-label.add.vnmc.provider=Legg til VNMC tilbyder
-label.add.volume=Legg til volum
-label.add.vpc=Legg til VPC
-label.add.vpc.offering=Legg til VPC tilbud
-label.add.vpn.customer.gateway=Legg til VPN Kundegateway
-label.add.VPN.gateway=Legg til VPN Gateway
-label.add.vpn.user=Legg til VPN-bruker
-label.add.vxlan=Legg til VXLAN
-label.add.zone=Legg til sone
-label.admin.accounts=Adminkontoer
-label.admin=Admin
-label.advanced=Avansert
-label.advanced.mode=Avansermodus
-label.advanced.search=Avansert s\u00f8k
-label.affinity=Affinitet
-label.affinity.group=Affinitetsgruppe
-label.affinity.groups=Affinitetsgrupper
-label.agent.password=Agentpassord
-label.agent.port=Agentport
-label.agent.state=Agentstatus
-label.agent.username=Agentbrukernavn
-label.agree=Godtar
-label.alert.archived=Varsel arkivert
-label.alert.deleted=Varsel slettet
-label.alert.details=Varseldetaljer
-label.alert=Varsel
-label.algorithm=Algoritme
-label.allocated=Allokert
-label.allocation.state=Allokeringsstatus
-label.allow=Tillat
-label.anti.affinity=Anti-affinitet
-label.anti.affinity.group=Anti-affinitetsgruppe
-label.anti.affinity.groups=Anti-affinitetsgrupper
-label.api.key=API-n\u00f8kkel
-label.api.version=API Versjon
-label.apply=Bruk
-label.app.name=CloudStack
-label.archive.alerts=Arkiver varsler
-label.archive=Arkiv
-label.archive.events=Arkiver hendelser
-label.assigned.vms=Tildelte VMer
-label.assign.instance.another=Tildel instans til en annen konto
-label.assign=Tildel
-label.assign.to.load.balancer=Legg til instans til lastbalanserer
-label.assign.vms=Tildel VMer
-label.associated.network=Assosiert nettverk
-label.associated.network.id=Assosiert nettverksid
-label.associated.profile=Assosiert Profil
-label.associate.public.ip=Assosiert Offentlig IP-adresse
-label.attached.iso=Tilknyttet ISO
-label.author.email=Forfatter e-post
-label.author.name=Forfatternavn
-label.autoscale=Autoskaler
-label.autoscale.configuration.wizard=Autoskalering konfigurasjonsveiviser
-label.availability=Tilgjengelighet
-label.availability.zone=Tilgjengelighetssone
-label.availabilityZone=tilgjengelighetssone
-label.available.public.ips=Tilgjengelig offentlige IP-adresser
-label.available=Tilgjengelig
-label.back=Tilbake
-label.bandwidth=B\u00e5ndbredde
-label.baremetal.dhcp.devices=Barmetall DHCP Enheter
-label.baremetal.dhcp.provider=Barmetall DHCP Tilbyder
-label.baremetal.pxe.device=Legg Til Barmetall PXE Enhet
-label.baremetal.pxe.devices=Barmetall PXE Enheter
-label.baremetal.pxe.provider=Barmetall PXE Tilbyder
-label.baremetal.rack.configuration=Barmetall Rack Konfigurering
-label.basic=Basis
-label.basic.mode=Basismodus
-label.bigswitch.bcf.details=BigSwitch BCF detaljer
-label.bigswitch.bcf.nat=BigSwitch BCF NAT aktivert
-label.bigswitch.controller.address=BigSwitch BCF kontrolleradresse
-label.blade.id=Blad-ID
-label.blades=Blad
-label.bootable=Botbar
-label.broadcast.domain.range=Kringkastings domene rekke
-label.broadcast.domain.type=Kringkastings Domene Type
-label.broadcast.uri=Kringkastings URI
-label.broadcasturi=kringkastinguri
-label.broadcat.uri=Kringkastings URI
-label.brocade.vcs.address=Vcs Switch Addresse
-label.brocade.vcs.details=Brocade Vcs svitsj detaljer
-label.by.account=Etter Konto
-label.by.alert.type=Etter varseltype
-label.by.availability=Etter Tilgjengelighet
-label.by.date.end=Etter dato (slutt)
-label.by.date.start=Etter dato (start)
-label.by.domain=Etter Domene
-label.by.end.date=Etter sluttdato
-label.by.event.type=Etter hendelsestype
-label.by.level=Etter niv\u00e5
-label.by.pod=Etter Pod
-label.by.role=Etter Rolle
-label.by.start.date=Etter Startdato
-label.by.state=Etter tilstand
-label.bytes.received=Bytes Mottatt
-label.bytes.sent=Bytes sendt
-label.by.traffic.type=Etter Trafikktype
-label.by.type=Etter Type
-label.by.type.id=Etter Type ID
-label.by.zone=Etter Sone
-label.cache.mode=Write-cache Type
-label.cancel=Avbryt
-label.capacity.bytes=Kapasitet Bytes
-label.capacity.iops=Kapasitet IOPS
-label.capacity=Kapasitet
-label.certificate=Sertifikat
-label.change.affinity=Endre affinitet
-label.change.ipaddress=Endre IP-adresse for nettverkskort
-label.change.service.offering=Endre tjenestetilbud
-label.change.value=Endre verdi
-label.character=Karakter
-label.chassis=Kasse
-label.checksum=sjekksum
-label.cidr.account=CIDR eller konto/sikkerhetsgruppe
-label.cidr=CIDR
-label.CIDR.list=CIDR liste
-label.cidr.list=Kilde-CIDR
-label.CIDR.of.destination.network=CIDR for destinasjonsnettverk
-label.cisco.nexus1000v.ip.address=Nexus 1000v IP Addresse
-label.cisco.nexus1000v.password=Nexus 1000v Passord
-label.cisco.nexus1000v.username=Nexus 1000v Brukernavn
-label.ciscovnmc.resource.details=CiscoVNMC ressursdetaljer
-label.clean.up=Rydd opp
-label.clear.list=T\u00f8m liste
-label.close=Lukk
-label.cloud.console=Cloud
-label.cloud.managed=Forvaltet Av Cloud.com
-label.cluster=Klynge
-label.cluster.name=Klyngenavn
-label.clusters=Klynger
-label.cluster.type=Klyngetype
-label.clvm=CLVM
-label.code=Kode
-label.community=Fellesskap
-label.compute.and.storage=Regnekraft og lagring
-label.compute=Beregne
-label.compute.offering=Regnekraftstilbud
-label.compute.offerings=Regnekraftstilbud
-label.configuration=Konfigurering
-label.configure=Konfigurer
-label.configure.ldap=Konfigurer LDAP
-label.configure.network.ACLs=Konfigurer Nettverksaksesslister
-label.configure.sticky.policy=Konfigurer Sticky Policy
-label.configure.vpc=Konfigurer VPC
-label.confirmation=Bekreftelse
-label.confirm.password=Bekreft passord
-label.congratulations=Gratulerer\!
-label.conserve.mode=Konserveringsmodus
-label.console.proxy=Konsollproxy
-label.console.proxy.vm=Konsollproxy VM
-label.continue.basic.install=Fortsett med enkelt oppsett
-label.continue=Fortsett
-label.copying.iso=Kopierer ISO
-label.corrections.saved=Endringer lagret
-label.counter=Teller
-label.cpu.allocated=CPU allokert
-label.cpu.allocated.for.VMs=CPU Allokert for VMer
-label.CPU.cap=CPU begrensning
-label.cpu=CPU
-label.cpu.limits=CPU-begrensninger
-label.cpu.mhz=CPU (i MHz)
-label.cpu.utilized=CPU-utnyttelse
-label.created.by.system=Opprettet av systemet
-label.created=Opprettet
-label.create.nfs.secondary.staging.storage=Legg Til NFS sekund\u00e6rmellomlagringsomr\u00e5de
-label.create.nfs.secondary.staging.store=Opprett NFS sekund\u00e6rmellomlagringsomr\u00e5de
-label.create.project=Opprett prosjekt
-label.create.ssh.key.pair=Lag SSH-n\u00f8kkelpar
-label.create.template=Opprett mal
-label.create.VPN.connection=Opprett VPN-tilkobling
-label.cross.zones=Kryssoner
-label.custom.disk.iops=Tilpasset IOPS
-label.custom.disk.offering=Brukertilpasset disktilbud
-label.custom.disk.size=Tilpasset Diskst\u00f8rrelse
-label.custom=Tilpasset
-label.daily=Daglig
-label.data.disk.offering=Datadisktilbud
-label.date=Dato
-label.day=Dag
-label.day.of.month=Dag i m\u00e5ned
-label.day.of.week=Dag i uke
-label.dc.name=Datasenter Navn
-label.dead.peer.detection=D\u00f8d endepunkt-deteksjon
-label.decline.invitation=Avvis invitasjon
-label.dedicate.cluster=Dediker kluster
-label.dedicated=Dedikert
-label.dedicate=Dediker
-label.dedicated.vlan.vni.ranges=Dedikerte VLAN/VNI Rekker
-label.dedicate.host=Dediker host
-label.dedicate.pod=Dedikert pod
-label.dedicate.vlan.vni.range=Dedikert VLAN/VNI Rekke
-label.dedicate.zone=Dediker sone
-label.default.egress.policy=Egress standard policy
-label.default=Standardverdi
-label.default.use=Standard bruk
-label.default.view=Standardvisning
-label.delete.acl.list=Slett ACL liste
-label.delete.affinity.group=Slett affinitetsgruppe
-label.delete.alerts=Slette varsler
-label.delete.baremetal.rack.configuration=Slett Barmetall Rack Konfigurering
-label.delete.BigSwitchBcf=Fjern BigSwitch BCF-kontroller
-label.delete.BrocadeVcs=Fjern Brocade VCS-svitsj
-label.delete.ciscoASA1000v=Slett CiscoASA1000v
-label.delete.ciscovnmc.resource=Slett CiscoVNMC ressurs
-label.delete.events=Slett hendelser
-label.delete.F5=Slett F5
-label.delete.gateway=slett gateway
-label.delete.internal.lb=Slett intern LB
-label.delete.NetScaler=Slett Netscaler
-label.delete.NiciraNvp=Fjern Nvp-kontroller
-label.delete.NuageVsp=Fjern Nuage VSD
-label.delete.OpenDaylight.device=Fjern OpenDaylight kontroller
-label.delete.PA=Slett Palo Alto
-label.delete.portable.ip.range=Slett portabel IP-rekke
-label.delete.profile=Slett Profil
-label.delete.project=Slett prosjekt
-label.delete.secondary.staging.store=Slett NFS sekund\u00e6rmellomlagringsomr\u00e5de
-label.delete=Slett
-label.delete.SRX=Slett SRX
-label.delete.ucs.manager=Slett UCS Manager
-label.delete.VPN.connection=Slett VPN-tilkobling
-label.delete.VPN.customer.gateway=Slett VPN-kundegateway
-label.delete.VPN.gateway=Slett VPN-gateway
-label.delete.vpn.user=Slett VPN-bruker
-label.deleting.failed=Sletting feilet
-label.deleting.processing=Sletter....
-label.deny=Nekt
-label.deployment.planner=utbyggings planlegger
-label.description=Beskrivelse
-label.destination.physical.network.id=Fysisk nettverksid-destinasjon
-label.destination.zone=Destinasjonssone
-label.destroy=Destruer
-label.destroy.router=Slett ruter
-label.destroy.vm.graceperiod=\u00d8delegg VM ventetid
-label.detaching.disk=Kobler fra disk
-label.details=Detaljer
-label.device.id=Enhets ID
-label.devices=Enheter
-label.dhcp=DHCP
-label.DHCP.server.type=DHCP servertype
-label.direct.attached.public.ip=Direkte Tilknyttet Offentlig IP-adresse
-label.direct.ips=Deltnettverk-IPadresser
-label.disable.autoscale=Deaktiver autoskalering
-label.disabled=Inaktiv
-label.disable.host=Deaktiver host
-label.disable.network.offering=Deaktiver nettverkstilbud
-label.disable.provider=Deaktiver tilbyder
-label.disable.vnmc.provider=Deatkivert VNMC tilbyder
-label.disable.vpc.offering=Deaktivert VPC tilbud
-label.disable.vpn=Dekativer VPN
-label.disabling.vpn.access=Deaktiverer VPN Tilgang
-label.disassociate.profile.blade=Deassosier profil fra Blade
-label.disbale.vnmc.device=Deaktivert VNMC enhet
-label.disk.allocated=Disk allokert
-label.disk.bytes.read.rate=Disklesehastighet (BPS)
-label.disk.bytes.write.rate=Diskskrivehastighet  (BPS)
-label.disk.iops.max=Maks IOPS
-label.disk.iops.min=Min IOPS
-label.disk.iops.read.rate=Disklesehastighet (IOPS)
-label.disk.iops.total=IOPS Totalt
-label.disk.iops.write.rate=Diskskrivehastighet (IOPS)
-label.disk.offering.details=Disktilbud detaljer
-label.diskoffering=diskoffering
-label.disk.offering=Disktilbud
-label.disk.provisioningtype=Provisjoneringstype
-label.disk.read.bytes=Disk lese (Bytes)
-label.disk.read.io=Disk lese (IO)
-label.disk.size=Diskst\u00f8rrelse
-label.disk.size.gb=Diskst\u00f8rrelse (i GB)
-label.disk.total=Disk Totalt
-label.disk.volume=Disk Volum
-label.disk.write.bytes=Disk skrive (Bytes)
-label.disk.write.io=Disk skrive (IO)
-label.display.name=Visningsnavn
-label.display.text=Visningstekst
-label.distributedrouter=DIstribuert router
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=DNS domene for gjestenettverk
-label.domain.admin=Domeneadministrator
-label.domain.details=Domenedetaljer
-label.domain=Domene
-label.domain.id=Domene ID
-label.domain.lower=domene
-label.domain.name=Domenenavn
-label.domain.router=Domeneruter
-label.domain.suffix=DNS domenesuffiks (f.eks, xyz.com)
-label.done=Utf\u00f8rt
-label.double.quotes.are.not.allowed=Doble anf\u00f8rselstegn er ikke tillatt
-label.download.progress=Nedlastningsprogresjon
-label.drag.new.position=Dra til ny posisjon
-label.duration.in.sec=Varighet (i sek.)
-label.dynamically.scalable=Dynamisk skalerbar
-label.edit.acl.rule=Endre ACL regel
-label.edit.affinity.group=Rediger affinitetsgruppe
-label.edit=Editer
-label.edit.lb.rule=Endre LB-regel
-label.edit.network.details=Edit\u00e9r nettverksdetaljer
-label.edit.project.details=Editer prosjektdetaljer
-label.edit.region=Editer region
-label.edit.rule=Endre regel
-label.edit.secondary.ips=Endre sekund\u00e6re IPer
-label.edit.tags=Rediger tagger
-label.edit.traffic.type=Endre trafikktype
-label.edit.vpc=Rediger VPC
-label.egress.default.policy=Egress standardpolicy
-label.egress.rule=Egressregel
-label.egress.rules=Egressregler
-label.elastic=Elastisk
-label.elastic.IP=Elastisk IP
-label.elastic.LB=Elastisk LB
-label.email=E-post
-label.email.lower=epost
-label.enable.autoscale=Aktivert autoskalering
-label.enable.host=Aktiver host
-label.enable.network.offering=Aktiver nettverkstilbud
-label.enable.provider=Aktiver tilbyder
-label.enable.s3=Aktiver S3-st\u00f8ttet sekund\u00e6rlagring
-label.enable.swift=Aktiver Swift
-label.enable.vnmc.device=Aktivert VNMC enhet
-label.enable.vnmc.provider=Aktivert VNMC tilbyder
-label.enable.vpc.offering=Aktiver VPC tilbud
-label.enable.vpn=Aktiver VPN
-label.enabling.vpn.access=Aktiverer VPN-tilgang
-label.enabling.vpn=Aktiverer VPN
-label.end.IP=Slutt-IP
-label.endpoint=Endepunkt
-label.endpoint.or.operation=Endepunkt eller operasjon
-label.end.port=Sluttport
-label.end.reserved.system.IP=Siste reserverte system IP
-label.end.vlan=Slutt VLAN
-label.end.vxlan=Slutt VXLAN
-label.enter.token=Skriv inn koden
-label.error.code=Feilkode
-label.error=Feil
-label.error.upper=ERROR
-label.ESP.encryption=ESP kryptering
-label.ESP.hash=ESP hash
-label.ESP.lifetime=ESP levetid (sekund)
-label.ESP.policy=ESP policy
-label.esx.host=ESX/ESXi vert
-label.event.archived=Hendelser Arkivert
-label.event.deleted=Hendelse slettet
-label.event=Hendelse
-label.every=Hver
-label.example=Eksempel
-label.expunge=Permanent Slett
-label.external.link=Ekstern kobling
-label.extractable.lower=Nedlastbar
-label.extractable=Nedlastbar
-label.f5.details=F5 detaljer
-label.f5=F5
-label.failed=Feilet
-label.featured=Fremhevet
-label.fetch.latest=Hent siste
-label.filterBy=Filtrer etter
-label.fingerprint=Fingeravtrykk
-label.firewall=Brannmur
-label.first.name=Fornavn
-label.firstname.lower=fornavn
-label.format=Format
-label.format.lower=format
-label.friday=Fredag
-label.full=Full
-label.full.path=Full sti
-label.gateway=Gateway
-label.general.alerts=Generelle varsler
-label.generating.url=Genererer URL
-label.globo.dns.configuration=GloboDNS-konfigurasjon
-label.globo.dns=GloboDNS
-label.gluster.volume=Volum
-label.go.step.2=G\u00e5 til steg 2
-label.go.step.3=G\u00e5 til steg 3
-label.go.step.4=G\u00e5 til steg 4
-label.go.step.5=G\u00e5 til steg 5
-label.gpu=CPU
-label.group.by.account=Grupper p\u00e5 konto
-label.group.by.cluster=Grupper p\u00e5 kluster
-label.group.by.pod=Grupper p\u00e5 pod
-label.group.by.zone=Grupper p\u00e5 sone
-label.group=Gruppe
-label.group.optional=Gruppe (Valgfritt)
-label.gslb.assigned.lb.more=Tildel mer lastbalansering
-label.gslb.assigned.lb=Tildelt lastbalansering
-label.gslb.delete=Slett GSLB
-label.gslb.details=GSLB detaljer
-label.gslb.domain.name=GSLB domenenavn
-label.gslb=GSLB
-label.gslb.lb.details=Lastbalanseringsdetaljer
-label.gslb.lb.remove=Fjern lastbalansering fra denne GSLB
-label.gslb.lb.rule=Lastbalanseringsregel
-label.gslb.service=GSLB tjeneste
-label.gslb.service.private.ip=GSLB tjeneste privat IP-adresse
-label.gslb.service.public.ip=GSLB tjeneste offentlig IP-adresse
-label.gslb.servicetype=Tjeneste Type
-label.guest.cidr=Gjest CIDR
-label.guest.end.ip=Gjest slutt-IP
-label.guest.gateway=Gjestegateway
-label.guest=Gjest
-label.guest.ip=Gjest IP-adresse
-label.guest.ip.range=Gjest IP-rekke
-label.guest.netmask=Gjest nettmaske
-label.guest.network.details=Gjestenettverksdetaljer
-label.guest.networks=Gjestenettverk
-label.guest.start.ip=Gjest start-IP
-label.guest.traffic=Gjestetrafikk
-label.guest.traffic.vswitch.name=Gjestetrafikk vSwitch Navn
-label.guest.traffic.vswitch.type=Gjestetrafikk vSwitch Type
-label.guest.type=Gjestetype
-label.ha.enabled=HA Aktivert
-label.health.check.advanced.options=Avanserte valg\:
-label.health.check.configurations.options=Konfigureringsvalg\:
-label.health.check=Helsesjekk
-label.health.check.interval.in.sec=Helsesjekk Intervall (i sekunder)
-label.health.check.message.desc=Din lastbalanserer vil automatisk utf\u00f8re helsesjekker mot dine cloudstackinstanser og kun rute trafikk til de instansene som passerer helsesjekk.
-label.health.check.wizard=Helsesjekkveiviser
-label.healthy.threshold=Sunn Terskel
-label.help=Hjelp
-label.hide.ingress.rule=Skjul ingressregel
-label.hints=Hint
-label.home=Hjem
-label.host.MAC=Verts MAC
-label.host.name=Vertsnavn
-label.hosts=Verter
-label.host.tag=Merkelapper for vert
-label.host.tags=Vertsknagger
-label.host=Vert
-label.hourly=Hver time
-label.hvm=HVM
-label.hypervisor.capabilities=Hypervisor evner
-label.hypervisor=Hypervisor
-label.hypervisors=Hypervisors
-label.hypervisor.snapshot.reserve=Hypervisor \u00d8yeblikks Kapasitet
-label.hypervisor.type=Hypervisor type
-label.hypervisor.version=Hypervisor versjon
-label.hyperv.traffic.label=HyperV Trafikk Etikett
-label.id=ID
-label.IKE.DH=IKE DH
-label.IKE.encryption=IKE kryptering
-label.IKE.hash=IKE Hash
-label.IKE.lifetime=IKE livstid (sekunder)
-label.IKE.policy=IKE policy
-label.info=Info
-label.info.upper=INFO
-label.ingress.rule=Ingressregel
-label.initiated.by=Initiert av
-label.inside.port.profile=Intern Port Profil
-label.installWizard.addClusterIntro.subtitle=Hva er en klynge?
-label.installWizard.addClusterIntro.title=La oss legge til en klynge
-label.installWizard.addHostIntro.subtitle=Hva er en vert?
-label.installWizard.addHostIntro.title=La oss legge til en vert
-label.installWizard.addPodIntro.subtitle=Hva er en pod?
-label.installWizard.addPodIntro.title=La oss legge til en pod
-label.installWizard.addPrimaryStorageIntro.subtitle=Hva er prim\u00e6rlagring?
-label.installWizard.addPrimaryStorageIntro.title=Legg til prim\u00e6rlagring
-label.installWizard.addSecondaryStorageIntro.subtitle=Hva er sekund\u00e6rlagring?
-label.installWizard.addSecondaryStorageIntro.title=Legg til sekund\u00e6rlagring
-label.installWizard.addZoneIntro.subtitle=Hva er en sone?
-label.installWizard.addZoneIntro.title=La oss legge til en sone
-label.installWizard.addZone.title=Legg til sone
-label.installWizard.click.launch=Klikk startknappen.
-label.installWizard.subtitle=Denne veiviseren vil hjelpe deg i din installasjon av CloudStack&\#8482
-label.installWizard.title=Hei og velkommen til CloudStack&\#8482
-label.instance=Instans
-label.instance.limits=Instans Begrensninger
-label.instance.name=Instans Navn
-label.instance.port=Instansport
-label.instance.scaled.up=Instans skalert til forespurt tilbud
-label.instances=Instanser
-label.instanciate.template.associate.profile.blade=Instansier mal og assosier malen med Blade
-label.intermediate.certificate=Intermediate sertifikat {0}
-label.internal.dns.1=Intern DNS 1
-label.internal.dns.2=Intern DNS 2
-label.internal.lb.details=Intern LB detaljer
-label.internal.lb=Intern LB
-label.internallbvm=InternalLbVm
-label.internal.name=Internt navn
-label.interval.type=Intervalltype
-label.introduction.to.cloudstack=Introduksjon til CloudStack&\#8482
-label.invalid.integer=Ugyldig heltall
-label.invalid.number=Ugyldig tall
-label.invitations=Invitasjoner
-label.invited.accounts=Inviterte kontoer
-label.invite=Inviter
-label.invite.to=Inviter til
-label.ip.address=IP-adresse
-label.ipaddress=IP-adresse
-label.ip.allocations=IP Allokeringer
-label.ip=IP
-label.ip.limits=Offentlig IP-addresse Grenser
-label.ip.or.fqdn=IP eller FQDN
-label.ip.range=IP-rekke
-label.ip.ranges=IP-rekker
-label.IPsec.preshared.key=IPSec Delt N\u00f8kkel
-label.ips=IPer
-label.ipv4.cidr=IPv4 CIDR
-label.ipv4.dns1=IPv4 DNS1
-label.ipv4.dns2=IPv4 DNS2
-label.ipv4.end.ip=IPv4 Slutt IP
-label.ipv4.gateway=IPv4 Gateway
-label.ipv4.netmask=IPv4 nettmaske
-label.ipv4.start.ip=IPv4 Start IP
-label.ipv6.address=IPv6 IP Adresse
-label.ipv6.CIDR=IPv6 CIDR
-label.ipv6.dns1=IPv6 DNS1
-label.ipv6.dns2=IPv6 DNS2
-label.ipv6.end.ip=IPv6 Slutt IP
-label.ipv6.gateway=IPv6 Gateway
-label.ipv6.start.ip=IPv6 Start IP
-label.iscsi=iSCSI
-label.is.default=Er standard
-label.iso.boot=ISO Boot
-label.iso=ISO
-label.isolated.networks=Isolerte nettverk
-label.isolation.method=Isolasjonsmetode
-label.isolation.mode=Isolasjonsmetode
-label.isolation.uri=Isolasjons URI
-label.is.redundant.router=Redundant
-label.is.shared=Er delt
-label.is.system=Er system
-label.item.listing=Elementlisting
-label.japanese.keyboard=Japansk-tastatur
-label.keep=Behold
-label.keep.colon=Behold\:
-label.keyboard.language=Tastaturspr\u00e5k
-label.keyboard.type=Tastaturtype
-label.key=N\u00f8kkel
-label.kvm.traffic.label=KVM trafikketikett
-label.label=Etikett
-label.lang.arabic=Arabisk
-label.lang.brportugese=Brasiliansk Portugisisk
-label.lang.catalan=Katalansk
-label.lang.chinese=Kinesisk (Forenklet)
-label.lang.dutch=Dutch (Nederland)
-label.lang.english=Engelsk
-label.lang.french=Fransk
-label.lang.german=Tysk
-label.lang.hungarian=Ungarsk
-label.lang.italian=Italiensk
-label.lang.japanese=Japanesisk
-label.lang.korean=Koreansk
-label.lang.norwegian=Norsk
-label.lang.polish=Polsk
-label.lang.russian=Russisk
-label.lang.spanish=Spansk
-label.last.disconnected=Siste Frakobling
-label.last.name=Etternavn
-label.lastname.lower=etternavn
-label.latest.events=Siste hendelser
-label.launch=Start
-label.launch.vm=Start VM
-label.launch.zone=Start sone
-label.lb.algorithm.leastconn=F\u00e6rrest tilkoblinger
-label.lb.algorithm.roundrobin=Ringdistribusjon
-label.lb.algorithm.source=Kilde
-label.LB.isolation=LB-isolering
-label.ldap.configuration=LDAP-konfigurasjon
-label.ldap.group.name=LDAP Gruppe
-label.ldap.link.type=Type
-label.ldap.port=LDAP port
-label.level=Niv\u00e5
-label.link.domain.to.ldap=Knytt domene til LDAP
-label.linklocal.ip=Link-lokal IP-adresse
-label.load.balancer=Lastbalanserer
-label.load.balancer.type=Lastbalanseringstype
-label.load.balancing=Lastbalansering
-label.load.balancing.policies=Regler for lastbalansering
-label.loading=Laster
-label.local.file=Lokal fil
-label.local=Lokal
-label.local.storage.enabled=Aktiver lokal lagring for bruker VMer
-label.local.storage.enabled.system.vms=Aktiver lokal lagring for SystemVMer
-label.local.storage=Lokal lagring
-label.login=Logg inn
-label.logout=Logg ut
-label.lun=LUN
-label.LUN.number=LUN \#
-label.lxc.traffic.label=LXC trafikk etikett
-label.make.project.owner=Gj\u00f8r konto prosjekteier
-label.make.redundant=Gj\u00f8r redundant
-label.manage=Administrer
-label.managed=Administrert
-label.management=Administrasjon
-label.management.ips=Administrasjons IP-adresser
-label.management.server=Administrasjonsserver
-label.manage.resources=Behandle ressurser
-label.max.cpus=Maks CPU kjerner
-label.max.guest.limit=Maks antall gjester
-label.maximum=Maksimum
-label.max.instances=Maks Instanser
-label.max.memory=Maks minne (MiB)
-label.max.networks=Maks nettverk
-label.max.primary.storage=Maks prim\u00e6r (GiB)
-label.max.public.ips=Maks offentlige IPer
-label.max.secondary.storage=Maks sekund\u00e6r (GiB)
-label.max.snapshots=Maks \u00f8yeblikksbilder
-label.max.templates=Maks maler
-label.max.vms=Maks bruker-VMer
-label.max.volumes=Maks volumer
-label.max.vpcs=Maks VPCs
-label.may.continue=Du kan n\u00e5 fortsette.
-label.md5.checksum=MD5 sjekksum
-label.memory.allocated=Minne allokert
-label.memory.limits=Minnebegrensning (MiB)
-label.memory.mb=Minne (i MB)
-label.memory=Minne
-label.memory.total=Minne totalt
-label.memory.used=Minne brukt
-label.menu.accounts=Kontoer
-label.menu.alerts=Varsler
-label.menu.all.accounts=Alle kontoer
-label.menu.all.instances=Alle instanser
-label.menu.community.isos=Fellesskap ISO medier
-label.menu.community.templates=Felleskap Maler
-label.menu.configuration=Konfigurering
-label.menu.dashboard=Dashbord
-label.menu.destroyed.instances=\u00d8delagte instanser
-label.menu.disk.offerings=Disktilbud
-label.menu.domains=Domener
-label.menu.events=Hendelser
-label.menu.featured.isos=Fremhevede ISOer
-label.menu.featured.templates=Fremhevde maler
-label.menu.global.settings=Globale innstillinger
-label.menu.infrastructure=Infrastruktur
-label.menu.instances=Instanser
-label.menu.ipaddresses=IP-adresser
-label.menu.isos=ISOer
-label.menu.my.accounts=Mine kontoer
-label.menu.my.instances=Mine instanser
-label.menu.my.isos=Mine ISOer
-label.menu.my.templates=Mine maler
-label.menu.network=Nettverk
-label.menu.network.offerings=Nettverkstilbud
-label.menu.physical.resources=Fysiske ressurser
-label.menu.regions=Regioner
-label.menu.running.instances=Kj\u00f8rende instanser
-label.menu.security.groups=Sikkerhetsgrupper
-label.menu.service.offerings=Tjenestetilbud
-label.menu.snapshots=\u00d8yebliksbilder
-label.menu.sshkeypair=SSH n\u00f8kkelpar
-label.menu.stopped.instances=Stoppede instanser
-label.menu.storage=Lagring
-label.menu.system.service.offerings=Systemtilbud
-label.menu.system=System
-label.menu.system.vms=System VMer
-label.menu.templates=Maler
-label.menu.virtual.appliances=Virtuelle Apparater
-label.menu.virtual.resources=Virtuelle ressurser
-label.menu.volumes=Volumer
-label.menu.vpc.offerings=VPC tilbud
-label.metrics.allocated=Allokert
-label.metrics=Beregninger
-label.metrics.clusters=Klynger
-label.metrics.cpu.allocated=CPU-Allokasjon
-label.metrics.cpu.max.dev=Avvik
-label.metrics.cpu.total=Totalt
-label.metrics.cpu.usage=CPU-bruk
-label.metrics.cpu.used.avg=Brukt
-label.metrics.disk.allocated=Allokert
-label.metrics.disk=Disk
-label.metrics.disk.iops.total=IOPS
-label.metrics.disk.read=Lese
-label.metrics.disk.size=St\u00f8rrelse
-label.metrics.disk.storagetype=Type
-label.metrics.disk.total=Totalt
-label.metrics.disk.unallocated=Uallokert
-label.metrics.disk.usage=Diskforbruk
-label.metrics.disk.used=Brukt
-label.metrics.disk.write=Skriv
-label.metrics.hosts=Verter
-label.metrics.memory.allocated=Minneallokering
-label.metrics.memory.max.dev=Avvik
-label.metrics.memory.total=Totalt
-label.metrics.memory.usage=Minneforbruk
-label.metrics.memory.used.avg=Brukt
-label.metrics.name=Navn
-label.metrics.network.read=Lese
-label.metrics.network.usage=Nettverksforbruk
-label.metrics.network.write=Skriv
-label.metrics.num.cpu.cores=Kjerner
-label.metrics.property=Egenskap
-label.metrics.scope=Omfang
-label.metrics.state=Status
-label.metrics.storagepool=Lagringspool
-label.metrics.vm.name=VM-navn
-label.migrate.instance.to.host=Migrer instansen til en annen vert
-label.migrate.instance.to=Migrer instans til
-label.migrate.instance.to.ps=Migrer instansen til en annen prim\u00e6rlagring.
-label.migrate.lb.vm=Migrer LB VM
-label.migrate.router.to=Migrer Ruter til
-label.migrate.systemvm.to=Migrer System VM til
-label.migrate.to.host=Migrer til vert
-label.migrate.to.storage=Migrer til lagring
-label.migrate.volume=Migrer volum
-label.migrate.volume.to.primary.storage=Migrer volumet til en annen prim\u00e6rlagring.
-label.minimum=Minimum
-label.min.instances=Min Instanser
-label.min.past.the.hr=minutter etter time
-label.minute.past.hour=minutt(er) etter hel time
-label.minutes.past.hour=minutt(er) etter time
-label.mode=Modus
-label.monday=Mandag
-label.monthly=M\u00e5nedlig
-label.more.templates=Flere maler
-label.move.down.row=Flytt \u00e9n rad ned
-label.move.to.bottom=Flytt til bunnen
-label.move.to.top=Flytt til toppen
-label.move.up.row=Flytt \u00e9n rad opp
-label.my.account=Min konto
-label.my.network=Mitt nettverk
-label.my.templates=Mine maler
-label.name.lower=Navn
-label.name=Navn
-label.name.optional=Navn (Valgfritt)
-label.na=N/A
-label.nat.port.range=NAT portrekke
-label.netmask=Nettmaske
-label.netscaler.details=NetScaler detaljer
-label.netScaler=NetScaler
-label.network.ACL=Nettverk ACL
-label.network.ACLs=Nettverk ACLer
-label.network.ACL.total=Nettverk ACL Total
-label.network.addVM=Legg nettverk til VM
-label.network.cidr=Nettverk CIDR
-label.network.desc=Nettverksbeskrivelse
-label.network.details=Nettverksdetaljer
-label.network.device=Nettverksenhet
-label.network.device.type=Type nettverksenhet
-label.network.domain=Nettverksdomene
-label.network.domain.text=Nettverksdomene
-label.network.id=Nettverks ID
-label.networking.and.security=Nettverk og sikkerhet
-label.network.label.display.for.blank.value=Bruk standard gateway
-label.network.limits=Nettverksbegrensninger
-label.network.name=Nettverksnavn
-label.network=Nettverk
-label.network.offering.details=Nettverkstilbud detaljer
-label.network.offering.display.text=Nettverkstilbud Forklaring
-label.network.offering.id=Nettverkstilbud ID
-label.network.offering.name=Nettverkstilbud Navn
-label.network.offering=Nettverkstilbud
-label.network.rate.megabytes=Nettverks fart (MB/s)
-label.network.rate=Nettverks fart (MB/s)
-label.network.read=Nettverk les
-label.network.service.providers=Nettverktjenestetilbydere
-label.networks=Nettverk
-label.network.type=Nettverkstype
-label.network.write=Nettverk skriveoperasjoner
-label.new=Ny
-label.new.password=Nytt passord
-label.new.project=Nytt prosjekt
-label.new.ssh.key.pair=Nytt SSH-n\u00f8kkelpar
-label.new.vm=Ny VM
-label.next=Neste
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nfs.server=NFS Server
-label.nfs.storage=NFS Lagring
-label.nic.adapter.type=NIC adaptertype
-label.nicira.controller.address=Kontrolleradresse
-label.nicira.l2gatewayserviceuuid=L2 Gateway tjeneste-uuid
-label.nicira.l3gatewayserviceuuid=L3 Gateway Tjeneste Uuid
-label.nicira.nvp.details=Nicira NVP detaljer
-label.nicira.transportzoneuuid=Transport sone Uuid
-label.nics=NICer
-label.no.actions=Ingen tilgjengelige handlinger
-label.no.alerts=Ingen nylige alarmer
-label.no.data=Ingen data \u00e5 vise
-label.no.errors=Ingen nylige feil
-label.no.grouping=(ingen gruppering)
-label.no.isos=Ingen tilgjengelige ISOer
-label.no.items=Ingen tilgjengelige elementer
-label.no=Nei
-label.none=Ingen
-label.no.security.groups=Ingen tilgjengelige sikkerhetsgrupper
-label.not.found=Ikke funnet
-label.no.thanks=Nei, takk
-label.notifications=Notifikasjoner
-label.number.of.clusters=Antall klynger
-label.number.of.cpu.sockets=Totalt antall CPU-sockets
-label.number.of.hosts=Antall verter
-label.number.of.pods=Antall pods
-label.number.of.system.vms=Antall System VMer
-label.number.of.virtual.routers=Antall virtuelle rutere
-label.number.of.zones=Antall soner
-label.num.cpu.cores=\# av CPU-kjerner
-label.numretries=Antall fors\u00f8k
-label.ocfs2=OCFS2
-label.offer.ha=Tilby HA
-label.of.month=av m\u00e5ned
-label.ok=OK
-label.opendaylight.controllerdetail=OpenDaylight kontrollerdetaljer
-label.opendaylight.controller=OpenDaylight kontroller
-label.opendaylight.controllers=OpenDaylight kontrollere
-label.openDaylight=OpenDaylight
-label.operator=Operat\u00f8r
-label.optional=Valgfritt
-label.order=Rekkef\u00f8lge
-label.os.preference=OS-preferanse
-label.os.type=OS-type
-label.other=Andre
-label.outofbandmanagement.action=Handling
-label.outofbandmanagement.password=Passord
-label.outofbandmanagement.port=Port
-label.outofbandmanagement.username=Brukernavn
-label.override.guest.traffic=Overstyr Gjeste Trafikk
-label.override.public.traffic=Overstyr Offentlig Trafikk
-label.ovm3.cluster=Innebygd Klynge Funksjon
-label.ovm3.pool=Innebygd Pooling
-label.ovm3.traffic.label=OVM3 trafikketikett
-label.ovm3.vip=Hoved VIP IP
-label.ovm.traffic.label=OVM trafikk etikett
-label.ovs=OVS
-label.owned.public.ips=Offentlige IP-addresser i bruk
-label.owner.account=Eierkonto
-label.owner.domain=Eierdomene
-label.palo.alto.details=Palo Alto detaljer
-label.PA.log.profile=Palo Alto logg profil
-label.PA=Palo Alto
-label.parent.domain=Foreldre domene
-label.passive=Passiv
-label.password.enabled=Passord Aktivert
-label.password.lower=passord
-label.password=Passord
-label.password.reset.confirm=Passordet har blitt resatt til
-label.PA.threat.profile=Palo Alto trussel profil
-label.path=Sti
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.persistent=Vedvarende
-label.physical.network=Fysisk nettverk
-label.physical.network.ID=Fysisk nettverksid
-label.physical.network.name=Fysisk nettverksnavn
-label.PING.CIFS.password=PING CIFS passord
-label.PING.CIFS.username=PING CIFS brukernavn
-label.PING.dir=PING-mappe
-label.ping.path=Ping Sti
-label.PING.storage.IP=PING lagrings-IP
-label.planner.mode=Planleggingsmodus
-label.please.complete.the.following.fields=Vennligst fullf\u00f8rt f\u00f8lgende felter
-label.please.specify.netscaler.info=Vennligst spesifiser NetScaler-info
-label.please.wait=Vennligst vent
-label.plugin.details=Plugin detaljer
-label.plugins=Plugins
-label.pod.dedicated=Pod Dedikert
-label.pod.name=Pod navn
-label.pod=Pod
-label.pods=Pods
-label.polling.interval.sec=Sjekkintervall (i sekunder)
-label.portable.ip=Flyttbar IP
-label.portable.ip.range.details=Portabel IP-rekke detaljer
-label.portable.ip.ranges=Transportable IP-rekker
-label.portable.ips=Portabel IP-rekke
-label.port.forwarding.policies=Regler for portvideresending
-label.port.forwarding=Portvideresending
-label.port=Port
-label.port.range=Portrekke
-label.PreSetup=Forberedt Konfigurasjon
-label.prev=Forrige
-label.previous=Forrige
-label.primary.allocated=Prim\u00e6rlagring allokert
-label.primary.network=Prim\u00e6rnettverk
-label.primary.storage.count=Prim\u00e6rlagrings Pool
-label.primary.storage.limits=Prim\u00e6rlagring Maxgrense (GiB)
-label.primary.storage=Prim\u00e6rlagring
-label.primary.used=Prim\u00e6rlagring brukt
-label.private.Gateway=Privat Gateway
-label.private.interface=Privat Grensesnitt
-label.private.ip=Privat IP-adresse
-label.private.ip.range=Privat IP-rekke
-label.private.ips=Private IP-adresser
-label.privatekey=PKCS\#8 Privat N\u00f8kkel
-label.private.key=Privat n\u00f8kkel
-label.private.network=Privat nettverk
-label.private.port=Privat port
-label.private.zone=Privat sone
-label.profile=Profil
-label.project.dashboard=Prosjektoversikt
-label.project.id=Prosjektid
-label.project.invite=Inviter til prosjekt
-label.project.name=Prosjektnavn
-label.project=Prosjekt
-label.projects=Prosjekter
-label.project.view=Prosjektvisning
-label.protocol.number=Protokollnummer
-label.protocol=Protokoll
-label.providers=Tilbydere
-label.provider=Tilbyder
-label.public.interface=Offentlig Grensesnitt
-label.public.ip=Offentlig IP-adresse
-label.public.ips=Offentlig IP-adresser
-label.public.key=Offentlig n\u00f8kkel
-label.public.lb=Offentlig LB
-label.public.load.balancer.provider=Offentlig Lastbalanserer Tilbyder
-label.public.network=Offentlig nettverk
-label.public=Offentlig
-label.public.port=Offentlig port
-label.public.traffic=Offentlig trafikk
-label.public.traffic.vswitch.name=Offentlig Trafikk vSwitch Navn
-label.public.traffic.vswitch.type=Offentlig Trafikk vSwitch Type
-label.public.zone=Offentlig sone
-label.purpose=Form\u00e5l
-label.Pxe.server.type=PXE Servertype
-label.qos.type=QoS Type
-label.quickview=Hurtigvisning
-label.quiesce.vm=Quiesce VM
-label.quiet.time.sec=Quiet Tid (sekunder)
-label.quota.add.credits=Legg til kreditt
-label.quota.balance=Balanse
-label.quota.configuration=Kvotekonfigurasjon
-label.quota.configure=Konfigurer Kvote
-label.quota.credit=Kreditt
-label.quota.credits=Kreditt
-label.quota.date=Dato
-label.quota.dates=Oppdater datoer
-label.quota.description=Kvotebeskrivelse
-label.quota.email.body=Innhold
-label.quota.email.lastupdated=Sist oppdatert
-label.quota.email.subject=Emne
-label.quota.email.template=Epostmal
-label.quota.enddate=Sluttdato
-label.quota.endquota=Sluttkvote
-label.quota.enforcequota=Tving Kvote
-label.quota.fullsummary=Alle kontoer
-label.quota.minbalance=Minste balanse
-label.quota.remove=Fjern Kvote
-label.quota.startdate=Startdato
-label.quota.startquota=Startkvote
-label.quota.statement.balance=Kvotebalanse
-label.quota.statement.bydates=Kontoutskrift
-label.quota.statement=Kontoutskrift
-label.quota.statement.quota=Kvoteforbrukk
-label.quota.statement.tariff=Kvotetariff
-label.quota.state=Status
-label.quota.summary=Sammendrag
-label.quota.tariff.edit=Rediger tariff
-label.quota.tariff.effectivedate=Effektiv dato
-label.quota.tariff=Tariff
-label.quota.tariff.value=Tariffverdi
-label.quota.total=Totalt
-label.quota.totalusage=Totalbruk
-label.quota.type.name=Brukstype
-label.quota.type.unit=Bruksenhet
-label.quota.usage=Kvoteforbruk
-label.quota.value=Kvoteverdi
-label.rbd.id=Cephx user
-label.rbd.monitor=Ceph monitor
-label.rbd.pool=Ceph pool
-label.rbd=RBD
-label.rbd.secret=Cephx hemmelighet
-label.reboot=Restart
-label.recent.errors=Nylige feil
-label.recover.vm=Gjenopprett VM
-label.redundant.router.capability=Redundant ruter
-label.redundant.router=Redundant ruter
-label.redundant.state=Redundant tilstand
-label.redundant.vpc=Redundant VPC
-label.refresh.blades=Oppdater blad(er)
-label.refresh=Oppfrisk
-label.region.details=Regiondetaljer
-label.regionlevelvpc=Region Niv\u00e5 VPC
-label.region=Region
-label.reinstall.vm=Reinstaller VM
-label.related=Relaterte
-label.release.account=Frigi fra Konto
-label.release.account.lowercase=Frigi fra konto
-label.release.dedicated.cluster=Frigj\u00f8r dedikert kluster
-label.release.dedicated.host=Frigj\u00f8r dedikert host
-label.release.dedicated.pod=Frigj\u00f8r Dedikert Pod
-label.release.dedicated.vlan.range=Frigj\u00f8r dedikerte VLAN rekke
-label.release.dedicated.zone=Frigj\u00f8r dedikert sone
-label.remind.later=P\u00e5minn meg senere
-label.remove.ACL=Fjern ACL
-label.remove.egress.rule=Fjern egressregel
-label.remove.from.load.balancer=Fjerner instans fra lastbalanserer
-label.remove.ingress.rule=Fjern ingressregel
-label.remove.ip.range=Fjern IP-rekke
-label.remove.ldap=Fjern LDAP
-label.remove.network.offering=Fjern nettverkstilbud
-label.remove.pf=Fjern portvideresendingsregel
-label.remove.project.account=Fjern konto fra prosjekt
-label.remove.region=Fjern region
-label.remove.rule=Fjern regel
-label.remove.ssh.key.pair=Fjern SSH-n\u00f8kkelpar
-label.remove.static.nat.rule=Fjern statisk NAT-regel
-label.remove.static.route=Fjern statisk rute
-label.remove.this.physical.network=Fjern dette fysiske nettverk
-label.remove.tier=Fjern gren
-label.remove.vm.from.lb=Fjern VM fra lastbalanseringsregel
-label.remove.vm.load.balancer=Fjern VM fra lastbalanserer
-label.remove.vmware.datacenter=Fjern VMware datasenter
-label.remove.vpc=fjern VPC
-label.remove.vpc.offering=Fjern VPC tilbud
-label.removing=Fjerner
-label.removing.user=Fjerner Bruker
-label.reource.id=Ressurs ID
-label.replace.acl=Erstatt ACL
-label.replace.acl.list=Erstatt ACL Liste
-label.required=P\u00e5krevd
-label.requires.upgrade=Krever oppgradering
-label.reserved.ip.range=Reservert IP-rekke
-label.reserved.system.gateway=Reservert System Gateway
-label.reserved.system.ip=Reservert System IP
-label.reserved.system.netmask=Reservert system nettmaske
-label.reset.ssh.key.pair.on.vm=Reset SSH-n\u00f8kkelpar p\u00e5 VM
-label.reset.ssh.key.pair=Resett SSH-n\u00f8kkelpar
-label.resetVM=Resett VM
-label.reset.VPN.connection=Resett VPN-tilkobling
-label.resize.new.offering.id=Nytt tilbud
-label.resize.new.size=Ny st\u00f8rrelse (GB)
-label.resize.shrink.ok=Krympe OK
-label.resource.limit.exceeded=Ressursbegrensning Overskridet
-label.resource.limits=Ressursbegrensninger
-label.resource.name=Ressursnavn
-label.resource=Ressurs
-label.resources=Ressurser
-label.resource.state=Ressurs Status
-label.response.timeout.in.sec=Respons Tidsavbrudd (sekunder)
-label.restart.network=Nettverksomstart
-label.restart.required=Omstart p\u00e5krevd
-label.restart.vpc=Omstart VPC
-label.restore=Gjenopprett
-label.retry.interval=Nyfors\u00f8k Intervall
-label.review=Gjennomg\u00e5
-label.revoke.project.invite=Tilbakekall invitasjonen
-label.role=Rolle
-label.root.certificate=Rootsertifikat
-label.root.disk.controller=Root diskkontroller
-label.root.disk.offering=Root disktilbud
-label.root.disk.size=Rotdiskst\u00f8rrelse (GB)
-label.router.vm.scaled.up=RuterVM skalert opp
-label.routing.host=Ruter Vert
-label.routing=Ruting
-label.rule.number=Regelnummer
-label.rules=Regler
-label.running.vms=Kj\u00f8rende VMer
-label.s3.access_key=Aksessn\u00f8kkel
-label.s3.bucket=B\u00f8tte
-label.s3.connection_timeout=Tilkoblingsavbrudd
-label.s3.endpoint=Endepunkt
-label.s3.max_error_retry=Max Nyfors\u00f8k Etter Feilmelding
-label.s3.nfs.path=S3 NFS Sti
-label.s3.nfs.server=S3 NFS Server
-label.s3.secret_key=Hemmelig n\u00f8kkel
-label.s3.socket_timeout=Socket Tidsavbrudd
-label.s3.use_https=Bruk HTTPS
-label.saml.enable=Autoriser SAML SSO
-label.saml.entity=Identitets Tilbydere
-label.saturday=L\u00f8rdag
-label.save.and.continue=Lagre og fortsett
-label.save.changes=Lagre endringer
-label.save=Lagre
-label.saving.processing=Lagrer....
-label.scaledown.policy=Nedtrappings policy
-label.scale.up.policy=Oppskalerings policy
-label.scaleup.policy=Oppskalerings policy
-label.scope=Omfang
-label.search=S\u00f8k
-label.secondary.ips=Sekund\u00e6re IPer
-label.secondary.isolated.vlan.id=Sekund\u00e6r Isolert VLAN ID
-label.secondary.staging.store.details=Sekund\u00e6rmellomlagringsomr\u00e5de detaljer
-label.secondary.staging.store=Sekund\u00e6rmellomlagringsomr\u00e5de
-label.secondary.storage.count=Sekund\u00e6rlagrings Pool
-label.secondary.storage.details=Sekund\u00e6rlagringsdetaljer
-label.secondary.storage.limits=Sekund\u00e6rlagringsbregrensninger (GiB)
-label.secondary.storage=Sekund\u00e6rlagring
-label.secondary.storage.vm=Sekund\u00e6rlagring VM
-label.secondary.used=Sekund\u00e6rlagringsplass brukt
-label.secret.key=Hemmelig n\u00f8kkel
-label.security.group.name=Sikkerhetsgruppenavn
-label.security.groups.enabled=Sikkerhetsgrupper Aktivert
-label.security.group=Sikkerhetsgruppe
-label.security.groups=Sikkerhetsgrupper
-label.select.a.template=Velg en mal
-label.select.a.zone=Velg en sone
-label.select.instance.to.attach.volume.to=Velg instans for tildeling av volum
-label.select.instance=Velg instans
-label.select.iso.or.template=Velg ISO eller mal
-label.select.offering=Velg tilbud
-label.select.project=Velg prosjekt
-label.select.region=Velg region
-label.select.template=Velg Mal
-label.select.tier=Velg gren
-label.select=Velg
-label.select-view=Velg visning
-label.select.vm.for.static.nat=Velg instans for statisk NAT
-label.sent=Sendt
-label.server=Tjener
-label.service.capabilities=Tjeneste Evner
-label.service.offering.details=Tjenstetilbudsdetaljer
-label.service.offering=Tjenestetilbud
-label.service.state=Tjenestestatus
-label.services=Tjenester
-label.session.expired=Sesjon utl\u00f8pt
-label.set.default.NIC=Sett som standard NIC
-label.settings=Innstillinger
-label.setup.network=Sett opp nettverk
-label.setup=Oppsett
-label.setup.zone=Sett opp sone
-label.set.up.zone.type=Oppsett av sonetype
-label.shared=Delt
-label.SharedMountPoint=SharedMountPoint
-label.show.advanced.settings=VIs avanserte instillinger
-label.show.ingress.rule=Vis ingressregel
-label.shutdown.provider=Steng tilbyder
-label.simplified.chinese.keyboard=Forenklet kinesisk-tastatur
-label.site.to.site.VPN=Site-to-site VPN
-label.size=St\u00f8rrelse
-label.skip.guide=Jeg har brukt CloudStack tidligere. Hopp over denne veiviseren
-label.smb.domain=SMB Domene
-label.smb.password=SMB Passord
-label.smb.username=SMB Brukernavn
-label.snapshot.limits=\u00d8yeblikksbildebegrensning
-label.snapshot.name=\u00d8yeblikksbildenavn
-label.snapshot.schedule=Sett Opp Gjentagende \u00f8yeblikksbilder
-label.snapshot.s=\u00d8yeblikksbilder
-label.snapshots=\u00d8yeblikksbilder
-label.snapshot=\u00d8yeblikksbilde
-label.SNMP.community=SNMP Community
-label.SNMP.port=SNM Port
-label.sockets=CPU Sokkel
-label.source.ip.address=Kilde IP-adresse
-label.source.nat=Kilde NAT
-label.source.nat.supported=SourceNAT st\u00f8ttet
-label.source.port=Kildeport
-label.specify.IP.ranges=Spesifiser IP-rekker
-label.specify.vlan=Spesifiser VLAN
-label.specify.vxlan=Spesifiser VXLAN
-label.SR.name=SR navnelapp
-label.srx.details=SRX detaljer
-label.srx=SRX
-label.ssh.key.pair.details=SSH-n\u00f8kkelpardetaljer
-label.ssh.key.pair=SSH-n\u00f8kkelpar
-label.ssh.key.pairs=SSH n\u00f8kkelpar
-label.standard.us.keyboard=Standard (Amerikansk) tastatur
-label.start.IP=Start-IP
-label.start.lb.vm=Start LB VM
-label.start.port=Start port
-label.start.reserved.system.IP=F\u00f8rste reserverte system IP
-label.start.vlan=Start VLAN
-label.start.vxlan=Start VXLAN
-label.state=Status
-label.static.nat.enabled=Statisk NAT aktivert
-label.static.nat=Statistk NAT
-label.static.nat.to=Statisk NAT til
-label.static.nat.vm.details=Statisk NAT VM Detaljer
-label.static.routes=Statiske ruter
-label.statistics=Statistikk
-label.status=Status
-label.step.1=Steg 1
-label.step.1.title=Steg 1\: <strong>Velg en mal</strong>
-label.step.2=Steg 2
-label.step.2.title=Steg 2\: <strong>Tjenestetilbud</strong>
-label.step.3=Steg 3
-label.step.3.title=Steg 3\: <strong id\="step3_label">Velg et disktilbud</strong>
-label.step.4=Steg 4
-label.step.4.title=Steg 4\: <strong>Nettverk</strong>
-label.step.5=Steg 5
-label.step.5.title=Steg 5\: <strong>Repetere</strong>
-label.stickiness=Klebrighet
-label.stickiness.method=Klebrighetmetode
-label.sticky.cookie-name=Cookie navn
-label.sticky.domain=Domene
-label.sticky.expire=Utl\u00f8per
-label.sticky.holdtime=Oppholds tid
-label.sticky.indirect=Indirekte
-label.sticky.length=Lengde
-label.sticky.mode=Modus
-label.sticky.name=Sticky Navn
-label.sticky.nocache=Ingen cache
-label.sticky.postonly=Send bare
-label.sticky.prefix=Prefiks
-label.sticky.request-learn=L\u00e6r Foresp\u00f8rsel
-label.sticky.tablesize=Tabellst\u00f8rrelse
-label.stop.lb.vm=Stop LB VM
-label.stopped.vms=Stoppede VMer
-label.stop=Stopp
-label.storage=Lagring
-label.storage.pool=Lagringspool
-label.storage.tags=Merkelapper for lagring
-label.storage.traffic=Lagringstrafikk
-label.storage.type=Lagringstype
-label.subdomain.access=Tilgang for underdomene
-label.submit=Send
-label.submitted.by=[Innsendt av\: <span id\="submitted_by"></span>]
-label.succeeded=Vellykket
-label.sunday=S\u00f8ndag
-label.super.cidr.for.guest.networks=Super CIDR for gjestenettverk
-label.supported.services=St\u00f8ttede Tjenester
-label.supported.source.NAT.type=Supporterte kilde-NAT typer
-label.supportsstrechedl2subnet=St\u00f8tter strekket L2 subnett
-label.suspend.project=Suspender prosjekt
-label.switch.type=Svitsjtype
-label.system.capacity=Systemkapasistet
-label.system.offering.for.router=Systemtilbud for Rutere
-label.system.offering=Systemtilbud
-label.system.service.offering.details=Systemtjenestetilbudsdetaljer
-label.system.service.offering=Systemtjenestetilbud
-label.system.vm.details=SystemVM-detaljer
-label.system.vm.scaled.up=SystemVM skalert opp
-label.system.vms=System VMer
-label.system.vm=System VM
-label.system.vm.type=SystemVM-type
-label.system.wide.capacity=Systemomfattende kapasistet
-label.tagged=Tagget
-label.tag.key=Merkelapp Key
-label.tags=Tagger
-label.tag.value=Tag Verdi
-label.target.iqn=M\u00e5l IQN
-label.task.completed=Oppgave utf\u00f8rt
-label.template.limits=Malbegrensninger
-label.template=Mal
-label.TFTP.dir=TFTP-mappe
-label.tftp.root.directory=TFTP rot-mappe
-label.theme.default=Standardtema
-label.theme.grey=Tilpasset - Gr\u00e5
-label.theme.lightblue=Tilpasset - Lys Gr\u00e5
-label.threshold=Terskel
-label.thursday=Torsdag
-label.tier.details=VPC-gren detaljer
-label.tier=Gren
-label.time.colon=Time\:
-label.timeout.in.second = Tidsavbrudd (sekunder)
-label.timeout=Tidsavbrudd
-label.time=Tid
-label.timezone.colon=Tidssone\:
-label.time.zone=Tidssone
-label.timezone=Tidssone
-label.token=Kode
-label.total.cpu=Totalt CPU
-label.total.CPU=Totalt CPU
-label.total.hosts=Totalt Verter
-label.total.memory=Totalt minne
-label.total.of.ip=Totalt IP-adresser
-label.total.of.vm=Totalt av VM
-label.total.storage=Totalt lagring
-label.total.virtual.routers=Total antall virtuelle rutere
-label.total.virtual.routers.upgrade=Totalt antall virtuelle routere som trenger oppgradering
-label.total.vms=Totalt VMs
-label.traffic.label=Trafikketikett
-label.traffic.types=Trafikktyper
-label.traffic.type=Trafikktype
-label.tuesday=Tirsdag
-label.type.id=Type ID
-label.type.lower=type
-label.type=Type
-label.ucs=UCS
-label.uk.keyboard=UK-tastatur
-label.unavailable=Utilgjengelig
-label.unhealthy.threshold=Usunn Terskel
-label.unlimited=Ubegrenset
-label.untagged=Utagget
-label.update.project.resources=Oppdater prosjektressurser
-label.update.ssl.cert= SSL-sertifikat
-label.update.ssl= SSL-sertifikat
-label.updating=Oppdaterer
-label.upgrade.required=Oppgradering er p\u00e5krevd
-label.upgrade.router.newer.template=Oppgrader ruter til nyere mal
-label.upload.from.local=Last opp fra lokal
-label.upload=Last opp
-label.upload.template.from.local=Last opp mal fra lokal
-label.upload.volume.from.local=Last opp volum fra lokal
-label.upload.volume.from.url=Last opp volum fra URL
-label.upload.volume=Last opp volum
-label.url=URL
-label.usage.interface=Brukergrensesnitt
-label.usage.sanity.result=Forbruks Tilregnelighet Resultat
-label.usage.server=Forbruksserver
-label.usage.type=Brukstype
-label.usage.unit=Enhet
-label.used=Brukt
-label.user=Bruker
-label.user.data=Brukerdata
-label.user.details=Brukerdetaljer
-label.username=Brukernavn
-label.username.lower=brukernavn
-label.users=Brukere
-label.user.vm=Bruker VM
-label.use.vm.ip=Bruk VM IP\:
-label.use.vm.ips=Bruk VM IPer
-label.value=Verdi
-label.vcdcname=vCenter DC navn
-label.vcenter.cluster=vCenter Klynge
-label.vcenter.datacenter=vCenter Datacenter
-label.vcenter.datastore=vCenter Datastore
-label.vcenter.host=vCenter Vert
-label.vcenter.password=vCenter passord
-label.vcenter.username=vCenter brukernavn
-label.vcenter=vcenter
-label.vcipaddress=vCenter IP-adresse
-label.version=Versjon
-label.vgpu.max.resolution=Maks oppl\u00f8sning
-label.vgpu.max.vgpu.per.gpu=VGPUs per GPU
-label.vgpu.remaining.capacity=Gjenst\u00e5ende kapasitet
-label.vgpu.type=vGPU type
-label.vgpu=VGPU
-label.vgpu.video.ram=Video RAM
-label.view.all=Vis alle
-label.view.console=Se konsoll
-label.viewing=Viser
-label.view.more=Vis mer
-label.view.secondary.ips=Se sekund\u00e6re IPer
-label.view=Vis
-label.virtual.appliance.details=Virtuelt apparat detaljer
-label.virtual.appliances=Virtuelle Apparater
-label.virtual.appliance=Virtuellt Apparat
-label.virtual.machines=Virtuelle Maskiner
-label.virtual.machine=Virtuell Maskin
-label.virtual.networking=Virtuelt Nettverk
-label.virtual.network=Virtuelt-nettverk
-label.virtual.routers.group.account=Virtuelle rutere gruppert p\u00e5 konto
-label.virtual.routers.group.cluster=Virtuelle rutere gruppert p\u00e5 kluster
-label.virtual.routers.group.pod=Virtuelle rutere gruppert p\u00e5 pod
-label.virtual.routers.group.zone=Virtuelle rutere gruppert p\u00e5 sone
-label.virtual.routers=Virtuelle rutere
-label.virtual.router=Virtuell ruter
-label.vlan.id=VLAN/VNI ID
-label.vlan.only=VLAN
-label.vlan.range.details=VLAN-rekke detaljer
-label.vlan.ranges=VLAN-rekke(r)
-label.vlan.range=VLAN/VNI Rekke
-label.vlan=VLAN/VNI
-label.vlan.vni.ranges=VLAN/VNI Rekke(r)
-label.vlan.vni.range=VLAN/VNI Rekke
-label.vm.add=Legg til Instans
-label.vm.destroy=Destruer
-label.vm.display.name=Visningsnavn for VM
-label.VMFS.datastore=VMFS lagringsomr\u00e5de
-label.vmfs=VMFS
-label.vm.id=VM ID
-label.vm.ip=VM IP-adresse
-label.vm.name=VM-navn
-label.vm.password=Passord til VM er
-label.vm.reboot=Restart
-label.VMs.in.tier=VMer i VPC-gren
-label.vmsnapshot.current=isCurrent
-label.vmsnapshot.memory=\u00d8yeblikksbilde av minne
-label.vmsnapshot.parentname=Forelder
-label.vmsnapshot.type=Type
-label.vmsnapshot=VM \u00d8yeblikksbilder
-label.vm.start=Start
-label.vm.state=VM-status
-label.vm.stop=Stopp
-label.vms=VMer
-label.vmware.datacenter.id=VMware datasenter ID
-label.vmware.datacenter.name=VMware datasenternavn
-label.vmware.datacenter.vcenter=VMware datasenter vcenter
-label.vmware.traffic.label=VMware trafikketikett
-label.vnet.id=VLAN/VNI ID
-label.vnet=VLAN/VNI
-label.vnmc.devices=VNMC enheter
-label.vnmc=VNMC
-label.volatile=volatil
-label.volgroup=Volumgruppe
-label.volume.details=Volumdetaljer
-label.volume.limits=Volumbegrensninger
-label.volume.migrated=Volum migrert
-label.volume.name=Volumnavn
-label.volumes=Volumer
-label.volume=Volum
-label.vpc.distributedvpcrouter=Distribuert VPC router
-label.vpc.id=VPC ID
-label.VPC.limits=VPC begrensninger
-label.vpc.offering.details=VPC tilbudsdetaljer
-label.vpc.offering=VPC tilbud
-label.vpc.router.details=VPC ruterdetaljer
-label.VPC.router.details=VPC ruterdetaljer
-label.vpc.supportsregionlevelvpc=St\u00f8tter Region Niv\u00e5 VPC
-label.vpc.virtual.router=VPC virtuell ruter
-label.vpc=VPC
-label.VPN.connection=VPN-tilkobling
-label.vpn.customer.gateway=VPN Kundegateway
-label.VPN.customer.gateway=VPN Kundegateway
-label.vpn.force.encapsulation=Tving UDP innkapsling av ESP-pakker
-label.VPN.gateway=VPN Gateway
-label.vpn=VPN
-label.vsmctrlvlanid=Kontroll VLAN ID
-label.vsmpktvlanid=Pakke VLAN ID
-label.vsmstoragevlanid=Lagrings VLAN ID
-label.vsphere.managed=Administrert Av vSphere
-label.vswitch.name=vSwitch navn
-label.vSwitch.type=vSwitch type
-label.vxlan.id=VXLAN ID
-label.vxlan.range=VXLAN-rekke
-label.vxlan=VXLAN
-label.waiting=Venter
-label.warning=Advarsel
-label.warn.upper=WARN
-label.warn=Varsle
-label.wednesday=Onsdag
-label.weekly=Ukentlig
-label.welcome.cloud.console=Velkommen til administrasjonskonsollet
-label.welcome=Velkommen
-label.what.is.cloudstack=Hva er CloudStack&\#8482?
-label.xenserver.tools.version.61.plus=Original XS versjon er 6.1\\+
-label.Xenserver.Tools.Version61plus=Original XS versjon er 6.1\\+
-label.xenserver.traffic.label=XenServer trafikketikett
-label.yes=Ja
-label.zone.dedicated=Dedikert sone
-label.zone.details=Sonedetaljer
-label.zone.id=Sone ID
-label.zone.lower=Sone
-label.zone.name=Sonenavn
-label.zone=Sone
-label.zones=Soner
-label.zone.step.1.title=Steg 1\: <strong>Velg et nettverk</strong>
-label.zone.step.2.title=Steg 2\: <strong>Legg til en sone</strong>
-label.zone.step.3.title=Steg 3\: <strong>Legg til en pod</strong>
-label.zone.step.4.title=Steg 4\: <strong>Legg til en IP-rekke</strong>
-label.zone.type=Sonetype
-label.zone.wide=Sone omfattende
-label.zoneWizard.trafficType.guest=Gjest\: Trafikk mellom brukeres virtuelle maskiner
-label.zoneWizard.trafficType.management=Administrasjon\: Trafikk mellom CloudStacks interne ressurser, inkludert eventuelle komponenter som kommuniserer med administrasjonsservere, som verter og CloudStack systemVMer
-label.zoneWizard.trafficType.public=Offentlig\: nettverkstrafikk mellom internet og VMs i CloudStack.
-label.zoneWizard.trafficType.storage=Lagring\: Trafikk mellom prim\u00e6r og sekund\u00e6rlagringsservere, slik som VM-maler og \u00f8yeblikksbilder.
-managed.state=Administrert Status
-message.acquire.ip.nic=Vennligst bekreft at du vil allokere en ny sekund\u00e6r IP for dette nettverkskortet. <br />NB\: Du m\u00e5 manuelt konfigurere den nye sekund\u00e6r-IPen i den virtuelle maskinen.
-message.acquire.new.ip=Vennligst bekreft at du \u00f8nsker \u00e5 anskaffe en ny IP for dette nettverket
-message.acquire.new.ip.vpc=Vennligst bekreft at du \u00f8nsker \u00e5 hente en ny IP for denne VPC.
-message.acquire.public.ip=Vennligst velg en sone som du vil hente ny IP fra.
-message.action.cancel.maintenance=Din vert har vellykket blitt kansellert for vedlikehold. Denne prosessen kan ta opptil flere minutter.
-message.action.cancel.maintenance.mode=Vennligst bekreft at du \u00f8nsker \u00e5 kansellere dette vedlikeholdet.
-message.action.change.service.warning.for.instance=Din instans m\u00e5 v\u00e6re stopped f\u00f8r du fors\u00f8ker \u00e5 endret n\u00e5v\u00e6rende tjenestetilbud.
-message.action.change.service.warning.for.router=Din ruter m\u00e5 v\u00e6re stoppet f\u00f8r du kan fors\u00f8ke \u00e5 endre n\u00e5v\u00e6rende tjenestetilbud.
-message.action.delete.cluster=Vennligst bekreft at du vil slette denne klyngen.
-message.action.delete.disk.offering=Vennligst bekreft at du \u00f8nsker \u00e5 slette dette disktilbudet.
-message.action.delete.domain=Vennligst bekreft at du vil slette dette domenet.
-message.action.delete.external.firewall=Vennligst bekreft at du vil fjerne denne eksterne brannmuren. Advarsel\: hvis du planlegger \u00e5 legge tilbake den samme eksterne brannmuren, m\u00e5 du resette bruksdataene p\u00e5 enheten.
-message.action.delete.external.load.balancer=Vennligst bekreft at du \u00f8nsker \u00e5 fjerne denne eksterne lastbalansereren. Advarsel\: hvis du planlegger \u00e5 legge til den samme eksterne lastbalansereren senere, m\u00e5 du resette bruksdataene p\u00e5 enheten.
-message.action.delete.ingress.rule=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne inng\u00e5ende regel.
-message.action.delete.ISO.for.all.zones=Denne ISO er brukt av alle soner. Vennligst bekreft at du \u00f8nsker \u00e5 slette den fra alle soner.
-message.action.delete.ISO=Vennligst bekreft at du vil slette denne ISO.
-message.action.delete.network=Vennligst bekreft at du vil slette dette nettverket.
-message.action.delete.nexusVswitch=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne nexus 1000v
-message.action.delete.nic=Vennligst bekreft at du vil fjerne dette NIC, noe som ogs\u00e5 vil fjerne det assosierte nettverket fra VMen.
-message.action.delete.physical.network=Vennligst bekreft at du \u00f8nsker \u00e5 slette dette fysiske nettverk
-message.action.delete.pod=Vennligst bekreft at du vil slette denne pod.
-message.action.delete.primary.storage=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne prim\u00e6rlagring.
-message.action.delete.secondary.storage=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne sekund\u00e6rlagring.
-message.action.delete.security.group=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne sikkerhetsgruppe.
-message.action.delete.service.offering=Vennligst bekreft at du \u00f8nsker \u00e5 slette dette tjenestetilbud.
-message.action.delete.snapshot=Vennligst bekreft at du \u00f8nsker \u00e5 slette dette \u00f8yeblikksbildet.
-message.action.delete.system.service.offering=Vennligst bekreft at du \u00f8nsker \u00e5 slette dette system-tjenestetilbud.
-message.action.delete.template.for.all.zones=Denne mal er brukt av alle soner. Vennligst bekreft at du \u00f8nsker \u00e5 slette den fra alle soner.
-message.action.delete.template=Vennligst bekreft at du vil slette denne mal.
-message.action.delete.volume=Vennligst bekreft at du vil slette dette volumet.
-message.action.delete.zone=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne sone.
-message.action.destroy.instance=Vennligst bekreft at du \u00f8nsker \u00e5 fjerne denne instansen.
-message.action.destroy.systemvm=Vennligst bekreft at du \u00f8nsker \u00e5 \u00f8delegge denne System VM.
-message.action.disable.cluster=Vennligst bekreft at du \u00f8nsker \u00e5 detaktivere denne klyngen.
-message.action.disable.nexusVswitch=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere denne nexus 1000v
-message.action.disable.physical.network=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere dette fysiske nettverket.
-message.action.disable.pod=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere denne poden
-message.action.disable.static.NAT=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere statisk NAT.
-message.action.disable.zone=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere denne sonen.
-message.action.downloading.template=Laster ned mal.
-message.action.download.iso=Vennligst bekreft at du \u00f8nsker \u00e5 laste ned denne ISO.
-message.action.download.template=Vennligst bekreft at du \u00f8nsker \u00e5 laste ned denne malen.
-message.action.enable.cluster=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere denne klyngen.
-message.action.enable.maintenance=Din vert har vellykket blitt forberedt for vedlikehold. Denne prosessen kan ta opptil flere minutter.
-message.action.enable.nexusVswitch=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere denne nexus 1000v
-message.action.enable.physical.network=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere dette fysiske nettverket.
-message.action.enable.pod=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere denne poden.
-message.action.enable.zone=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere denne sonen.
-message.action.expunge.instance=Vennligst bekreft at du vil permanent slette denne instansen.
-message.action.force.reconnect=Din vert har vellykket blitt tvunget til \u00e5 koble til p\u00e5 nytt. Denne prosessen kan ta noen minutter.
-message.action.host.enable.maintenance.mode=Aktivering av vedlikeholdsmodus vil for\u00e5rsake migrering av alle kj\u00f8rende instanser p\u00e5 denne vert til hvilken som helst annen tilgjengelig vert.
-message.action.instance.reset.password=Vennligst bekreft ay du \u00f8nsker \u00e5 endre ROOT-passordet for denne virtuelle maskin.
-message.action.manage.cluster=Vennligst bekreft at du \u00f8nsker \u00e5 administrere klyngen.
-message.action.primarystorage.enable.maintenance.mode=Advarsel\: setting av prim\u00e6rlagring i vedlikeholdsmodus vil for\u00e5rsake at alle VMer som benytter volum fra det vil bli stoppet. \u00d8nsker du \u00e5 fortsette?
-message.action.reboot.instance=Vennligst bekreft at du vill restarte denne instansen.
-message.action.reboot.router=Alle tjenester levert fra denne virtuelle ruter vil bli avbrutt. Vennligst bekreft at du \u00f8nsker \u00e5 restarte denne ruteren.
-message.action.reboot.systemvm=Vennligst bekreft at du vil restarte denne system VM
-message.action.release.ip=Vennligst bekreft at du \u00f8nsker \u00e5 frigi denne IP.
-message.action.remove.host=Vennligst bekreft at du vil gjerne denne tjeneren.
-message.action.reset.password.off=Din instans st\u00f8tter forel\u00f8pig ikke denne funksjonen.
-message.action.reset.password.warning=Din instans m\u00e5 v\u00e6re stoppet f\u00f8r man fors\u00f8ker \u00e5 bytte n\u00e5v\u00e6rende passord.
-message.action.restore.instance=Vennligst bekreft at du \u00f8nsker \u00e5 gjenopprette denne instansen.
-message.action.revert.snapshot=Vennligst bekreft at du \u00f8nsker \u00e5 gjenopprette volumet til dette \u00f8yeblikksbildet.
-message.action.start.instance=Vennligst bekreft at du \u00f8nsker \u00e5 starte denne instansen.
-message.action.start.router=Vennligst bekreft at du vil starte denne ruter.
-message.action.start.systemvm=Vennligst bekreft at du vil starte denne system VM.
-message.action.stop.instance=Vennligst bekreft at du vil stoppe denne instansen.
-message.action.stop.router=Alle tjenester levert fra denne virtuelle ruter vil bli avbrutt. Vennligst bekreft at du \u00f8nsker \u00e5 stoppe denne ruteren.
-message.action.stop.systemvm=Vennligst bekreft at du vil stoppe denne system VM.
-message.action.take.snapshot=Vennligst bekreft at du vil ta et \u00f8yeblikksbilde av dette volumet.
-message.action.unmanage.cluster=Vennligst bekreft at du ikke \u00f8nsker \u00e5 administere klyngen.
-message.action.vmsnapshot.delete=Vennligst bekreft at du \u00f8nsker \u00e5 slette dette VM \u00f8yeblikksbildet.
-message.action.vmsnapshot.revert=Tilbakestill VM \u00f8yeblikksbilde
-message.activate.project=Er du sikker p\u00e5 du \u00f8nsker \u00e5 aktivere dette prosjektet?
-message.add.cluster=Legg til en hypervisor-administrert klynge for sone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.cluster.zone=Legg til en hypervisor-administrert klynge for sone <b><span id\="zone_name"></span></b>
-message.add.disk.offering=Vennligst spesifiser f\u00f8lgende parametere for \u00e5 legge til et nytt disktjenestetilbud
-message.add.domain=Vennligst bekreft underdomenet du \u00f8nsker \u00e5 opprette under dette domenet
-message.added.new.nuage.vsp.controller=La til ny Nuage Vsp-kontroller
-message.added.vpc.offering=La til VPC tilbud
-message.add.firewall=Legg en brannmur til sonen
-message.add.guest.network=Vennligst bekreft at du \u00f8nsker \u00e5 legge til gjestenettverk
-message.add.host=Vennligst spesifiser f\u00f8lgende parametere for \u00e5 legge til en ny vert
-message.adding.host=Legger til vert
-message.adding.Netscaler.device=Legg til NetScaler-enhet
-message.adding.Netscaler.provider=Legger til Netscaler tilbyder
-message.add.ip.range.direct.network=Legg til en IP-rekke til et direkte-nettverk <b><span id\="directnetwork_name"></span></b> i sone <b><span id\="zone_name"></span></b>
-message.add.ip.range=Legg til en IP-rekke til offentlige nettverk i sonen
-message.add.ip.range.to.pod=<p>Legg til IP-addresser til pod\: <b><span id\="pod_name_label"></span></b></p>
-message.additional.networks.desc=Vennligst velg tilleggsnettverk som din virtuelle instans vil v\u00e6re tilkoblet.
-message.add.load.balancer=Legg til lastbalanserer i sone
-message.add.load.balancer.under.ip=Lastbalanseringsregelen har blitt lagt til under IP\:
-message.add.network=Legg til nytt nettverk for sone\: <b><span id\="zone_name"></span></b>
-message.add.new.gateway.to.vpc=Vennligst spesifiser f\u00f8lgende p\u00e5krevd informasjon for \u00e5 legge til en ny gateway i dette VPC nettverket.
-message.add.pod.during.zone.creation=Hver sone m\u00e5 inneholde en eller flere pods, og vi legger til den f\u00f8rste poden n\u00e5. En pod inneholder verter og prim\u00e6rlagring, som du legger til i et senere steg.F\u00f8rst, konfigurer en rekke med reserverte IP-adresser for CloudStacks interne administrasjonstrafikk. Den reserverte IP-rekken m\u00e5 v\u00e6re unik for hver sone i en sky.
-message.add.pod=Legg til ny pod for sone <b><span id\="add_pod_zone_name"></span></b>
-message.add.primary.storage=Legg til ny prim\u00e6rlagring for sone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.primary=Vennligst spesifiser f\u00f8lgende paramtere for \u00e5 legge til ny hovedlagring.
-message.add.region=Vennligst spesifiser f\u00f8lgende p\u00e5krevd informasjon for \u00e5 legge til en ny region.
-message.add.secondary.storage=Legg til ny lagring for sone <b><span id\="zone_name"></span></b>
-message.add.service.offering=Vennligst skriv inn f\u00f8lgende data for \u00e5 legge til et nytt datakraftstilbud.
-message.add.system.service.offering=Vennligst skriv inn f\u00f8lgende data for \u00e5 legge til et nytt systemtjenestetilbud.
-message.add.template=Vennligst skriv inn f\u00f8lgende data for \u00e5 opprette din nye mal
-message.add.volume=Vennligst skriv inn f\u00f8lgende data for \u00e5 legge til et nytt volum.
-message.add.VPN.gateway=Vennligst bekreft at du \u00f8nsker \u00e5 legge til en VPN Gateway
-message.admin.guide.read=For VMware-baserte VMer, vennligst les avsnittet om dynamisk skalering i administrasjonsdokumentasjonen f\u00f8r skalering. \u00d8nsker du \u00e5 fortsette?\\,
-message.advanced.mode.desc=Velg denne nettverksmodellen hvis du \u00f8nsker \u00e5 aktivere VLAN-st\u00f8tte. Denne nettverksmodellen gir den st\u00f8rste fleksibiliteten ved \u00e5 tillate administatorer \u00e5 lage egne nettverkstilbud som \u00e5 tilby brannmur, vpn og lastbalanserings-st\u00f8tte s\u00e5 vel som \u00e5 tillate direkte mot virtuelt nettverk.
-message.advanced.security.group=Velg dette hvis du \u00f8nsker \u00e5 bruke sikkerhetsgrupper for \u00e5 tilby gjeste-VM isolering.
-message.advanced.virtual=Velg dette hvis du \u00f8nsker \u00e5 bruke soneomfattende VLAN for \u00e5 tilby gjeste-VM isolering.
-message.after.enable.s3=S3-st\u00f8ttet sekund\u00e6rlagring konfigurert. Merk\: N\u00e5r du forlater denne siden s\u00e5 vil det ikke v\u00e6re mulig \u00e5 konfigurere S3 p\u00e5 nytt.
-message.after.enable.swift=Swift konfigurert. Merk\: N\u00e5r du forlater denne siden s\u00e5 vil det ikke v\u00e6re mulig konfigurere Swift p\u00e5 nytt.
-message.alert.state.detected=Alarm oppdaget
-message.allow.vpn.access=Vennligst skriv inn et brukernavn og passord for brukeren du til gi VPN-tilgang.
-message.apply.snapshot.policy=Du har oppdatert den n\u00e5v\u00e6rende \u00f8yeblikksbilde policyen.
-message.attach.iso.confirm=Vennligst bekreft at du vil tildele ISOen til denne virtuelle instans.
-message.attach.volume=Vennligst fyll inn f\u00f8lgende data for \u00e5 tilknytte et nytt volum. Hvis du tilknytter et diskvolum til en Windows-basert virtuell maskin s\u00e5 er du n\u00f8dt til \u00e5 restarte instansen for \u00e5 se den tilknyttede disken.
-message.basic.mode.desc=Velg denne nettverksmodellen hvis du <b>*<u>ikke</u>*</b> vil aktivere VLAN st\u00f8tte. Alle virtuelle instnanser opprettet under denne nettverksmodellen vil bli tildelt en IP direkte fra nettverket og sikkerhetsgrupper blir benyttet for \u00e5 tilby sikkerhet og segregering.
-message.change.ipaddress=Vennligst bekreft at du \u00f8nsker \u00e5 endre IP-adressen til dette nettverkskortet p\u00e5 maskinen.
-message.change.offering.confirm=Vennligst bekreft at du vil forandre servicetilbudet for denne virtuelle maskinen.
-message.change.password=Vennligst endre ditt passord
-message.cluster.dedicated=Dedikert Til Klynge
-message.cluster.dedication.released=Klynge dedikering frigjort
-message.configure.all.traffic.types=Du har flere fysiske nett; vennligst konfigurer etiketter for hver trafikktype ved \u00e5 klikke p\u00e5 Rediger-knappen.
-message.configure.firewall.rules.allow.traffic=Konfigurer reglene for \u00e5 tillate trafikk
-message.configure.firewall.rules.block.traffic=Konfigurer reglene for \u00e5 blokkere trafikk
-message.configure.ldap=Bekreft at du \u00f8nsker \u00e5 konfigurere LDAP.
-message.configuring.guest.traffic=Konfigurerer gjestetrafikk
-message.configuring.physical.networks=Konfigurer fysisk nettverk
-message.configuring.public.traffic=Konfigurerer offentlig trafikk
-message.configuring.storage.traffic=Konfigurerer lagringstrafikk
-message.confirm.action.force.reconnect=Vennligst bekreft at du \u00f8nsker \u00e5 tvinge et nytt tilkoblingsfors\u00f8k for denne vert.
-message.confirm.add.vnmc.provider=Vennligst bekreft at du \u00f8nsker \u00e5 installere denne VNMC tilbyderen.
-message.confirm.archive.alert=Vennlgist bekreft at du vil arkivere denne varslingen.
-message.confirm.archive.event=Vennligst bekreft at du \u00f8nsker \u00e5 arkivere denne hendelsen.
-message.confirm.archive.selected.alerts=Vennligst bekreft at du \u00f8nsker \u00e5 arkivere valgte varsler
-message.confirm.archive.selected.events=Vennligst bekreft at du vil arkivere valgte hendelser
-message.confirm.attach.disk=Er du sikker p\u00e5 at du vil tildele disk?
-message.confirm.create.volume=Er du sikker p\u00e5 at du vil opprette volum?
-message.confirm.current.guest.CIDR.unchanged=\u00d8nsker du \u00e5 beholde n\u00e5v\u00e6rende gjestenettverks CIDR uendret?
-message.confirm.dedicate.cluster.domain.account=Bekreft at du vil dedikere denne klyngen til et domene / en konto?
-message.confirm.dedicate.host.domain.account=\u00d8nsker du virkelig \u00e5 dedikere denne verten til et domene/konto?
-message.confirm.dedicate.pod.domain.account=\u00d8nsker du virkelig \u00e5 dedikere denne pod til et domene/konto?
-message.confirm.dedicate.zone=\u00d8nsker du virkelig \u00e5 dedikere denne sonen til et domene/konto?
-message.confirm.delete.acl.list=Er du sikker p\u00e5 at du \u00f8nsker \u00e5 slette denne ACL listen?
-message.confirm.delete.alert=Er du sikker p\u00e5 at du vil slette denne varslingen ?
-message.confirm.delete.baremetal.rack.configuration=Vennligst bekreft at du \u00f8nsker \u00e5 slette Bare Metal-konfigurasjonen.
-message.confirm.delete.BigSwitchBcf=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne BigSwitch BCF Controlleren?
-message.confirm.delete.BrocadeVcs=Vennligst bekreft at du vil slette denne Brocade Vcs svitsjen
-message.confirm.delete.ciscoASA1000v=Vennligst bekreft at du vil slette CiscoASA1000v
-message.confirm.delete.ciscovnmc.resource=Vennligst bekreft at du vil slette CiscoVNMC
-message.confirm.delete.F5=Vennligst bekreft at du \u00f8nsker \u00e5 slette F5
-message.confirm.delete.internal.lb=Vennligst bekreft at du \u00f8nsker \u00e5 slette Intern LB
-message.confirm.delete.NetScaler=Vennligst bekreft at du \u00f8nsker \u00e5 slette Netscaler
-message.confirm.delete.NuageVsp=Vennligst bekreft at du \u00f8nsker \u00e5 slette Nuage Virtualized Service Directory
-message.confirm.delete.PA=Vennligst bekreft at du vil slette Palo Alto
-message.confirm.delete.secondary.staging.store=Vennligst bekreft at du vil slette dette sekund\u00e6rmellomlagringsomr\u00e5de.
-message.confirm.delete.SRX=Vennligst bekreft at du \u00f8nsker \u00e5 slette SRX
-message.confirm.delete.ucs.manager=Vennligst bekreft at du \u00f8nsker \u00e5 slette UCS Manager
-message.confirm.destroy.router=Vennligst bekreft at du \u00f8nsker \u00e5 fjerne denne ruteren
-message.confirm.disable.host=Vennligst bekreft at du vil detaktivere denne vert
-message.confirm.disable.network.offering=Er du sikker p\u00e5 at du vil deaktivere dette nettverkstilbudet?
-message.confirm.disable.provider=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere denne tilbyderen
-message.confirm.disable.vnmc.provider=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere denne VNMC tilbyderen.
-message.confirm.disable.vpc.offering=Er du sikker p\u00e5 at du vil deaktivere dette VPC tilbudet?
-message.confirm.enable.host=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere verten
-message.confirm.enable.network.offering=Vil du aktivere dette nettverkstilbudet?
-message.confirm.enable.provider=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere denne tilbyderen
-message.confirm.enable.vnmc.provider=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere denne VNMC tilbyderen.
-message.confirm.enable.vpc.offering=Er du sikker p\u00e5 at du vil aktivere dette VPC nettverkstilbudet?
-message.confirm.join.project=Vennligst bekreft at du \u00f8nsker \u00e5 delta i dette prosjektet.
-message.confirm.migrate.volume=\u00d8nsker du \u00e5 migrere dette volumet?
-message.confirm.refresh.blades=Vennligst bekreft at du vil oppdatere blade status.
-message.confirm.release.dedicated.cluster=Vil du aktivere denne dedikerte klyngen?
-message.confirm.release.dedicated.host=\u00d8nsker du \u00e5 frigi denne dedikerte verten ?
-message.confirm.release.dedicated.pod=\u00d8nsker du \u00e5 frigi denne dedikerte poden ?
-message.confirm.release.dedicated.zone=\u00d8nsker du \u00e5 frigi denne dedikerte sonen ?
-message.confirm.release.dedicate.vlan.range=Vennligst bekreft at du vil frigi denne dedierte VLAN-rekken
-message.confirm.remove.event=Er du sikker p\u00e5 at du vil fjerne denne hendelsen?
-message.confirm.remove.IP.range=Vennligst bekreft du til fjerne denne IP-rangen.
-message.confirm.remove.load.balancer=Vennligst bekreft at du vil fjerne VM fra lastbalanserer
-message.confirm.remove.network.offering=Er du sikker p\u00e5 at du vil fjerne dette nettverkstilbudet?
-message.confirm.remove.selected.alerts=Vennligst bekreft at du \u00f8nsker \u00e5 fjerne valgte alarmer
-message.confirm.remove.selected.events=Vennligst bekreft at du vil fjerne valgte hendelser
-message.confirm.remove.vmware.datacenter=Vennligst bekreft at du vil fjerne dette VMWare data senteret
-message.confirm.remove.vpc.offering=Er du sikker p\u00e5 at du vil fjerne dette VPC tilbudet?
-message.confirm.replace.acl.new.one=Vil du erstatte ACL med en ny?
-message.confirm.scale.up.router.vm=\u00d8nsker du \u00e5 skalere opp denne Ruter-VMen?
-message.confirm.scale.up.system.vm=\u00d8nsker du \u00e5 skalere opp denne system VM?
-message.confirm.shutdown.provider=Vennligst bekreft at du \u00f8nsker \u00e5 stenge denne tilbyderen
-message.confirm.start.lb.vm=Vennligst bekreft at du vil starte LB VM
-message.confirm.stop.lb.vm=Vennligst bekreft at du vil stoppe LB VM
-message.confirm.upgrade.router.newer.template=Vennligst bekreft at du vil oppgradere ruter til \u00e5 bruke nyere mal
-message.confirm.upgrade.routers.account.newtemplate=Vennligst bekreft at du vil oppgradere alle rutere i denne kontoen til \u00e5 bruke en nyere mal
-message.confirm.upgrade.routers.cluster.newtemplate=Vennligst bekreft at du vil oppgradere alle rutere i denne klyngen til \u00e5 bruke en nyere mal
-message.confirm.upgrade.routers.newtemplate=Vennligst bekreft at du vil oppgradere alle rutere i denne sonen til \u00e5 bruke en nyere mal
-message.confirm.upgrade.routers.pod.newtemplate=Vennligst bekreft at du vil oppgradere alle rutere i denne pod til \u00e5 bruke en nyere mal
-message.copy.iso.confirm=Vennligst bekreft at du vil kopiere din ISO til
-message.copy.template.confirm=\u00d8nsker du \u00e5 kopiere malen?
-message.copy.template=Kopier template <b id\="copy_template_name_text">XXX</b> fra sone <b id\="copy_template_source_zone_text"></b> til
-message.create.template=Er du sikker p\u00e5 at du \u00f8nsker \u00e5 lage malen?
-message.create.template.vm=Lage VM fra template <b id\="p_name"></b>
-message.create.template.volume=Vennligst spesifiser f\u00f8lgende informasjon f\u00f8r opprettelse av en mal for ditt diskvolum\: <b><span id\="volume_name"></span></b>. Opprettelse av malen kan ta flere minutter og lenger avhengig av st\u00f8rrelsen p\u00e5 volumet.
-message.creating.cluster=Oppretter klynge
-message.creating.guest.network=Oppretter gjestenettverk
-message.creating.physical.networks=Oppretter fysiske nettverk
-message.creating.pod=Oppretter pod
-message.creating.primary.storage=Oppretter prim\u00e6rlagring
-message.creating.secondary.storage=Oppretter sekund\u00e6rlagring
-message.creating.systemVM=Oppretter system-VMer (dette kan ta litt tid)
-message.creating.zone=Oppretter sone
-message.decline.invitation=Er du sikker p\u00e5 du \u00f8nsker \u00e5 avvise denne prosjektinvitasjonen?
-message.dedicated.zone.released=Sone dedikering frigitt
-message.dedicate.zone=Dedikerer sone
-message.delete.account=Vennligst bekreft at du vil slette denne kontoen.
-message.delete.affinity.group=Vennligst bekreft du til fjerne denne affinitetsgruppen.
-message.delete.gateway=Vennligst bekreft at du \u00f8nsker \u00e5 slette gateway
-message.delete.project=Er du sikker p\u00e5 du \u00f8nsker \u00e5 slette dette prosjektet?
-message.delete.user=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne bruker.
-message.delete.VPN.connection=Vennligst bekreft at du \u00f8nsker \u00e5 slette VPN-tilkobling
-message.delete.VPN.customer.gateway=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne VPN gatewayen
-message.delete.VPN.gateway=Vennligst bekreft at du \u00f8nsker \u00e5 slette denne VPN gatewayen
-message.desc.add.new.lb.sticky.rule=Legg til ny LB sticky regel
-message.desc.advanced.zone=For mer avanserte nettverks topologier. Denne nettverks modellen gir flest egenskaper rundt definisjon av gjestenettverk og gir alternativer for tilpassede netverkstilbud, slik for brannmurer, VPN og lastbalanserere.
-message.desc.basic.zone=Gir et enkelt nettverk hvor alle virtuelle instanser blir tildelt en IP-adresse direkte fra nettverket. Isolering av gjester kan tilbys p\u00e5 lag-3 ved hjelp av sikkerhetsgrupper (IP-adresse kilde-filtrering).
-message.desc.cluster=Hver pod m\u00e5 inneholde en eller flere pods, og vi vil installere den f\u00f8rste klyngen n\u00e5. En klynge har til form\u00e5l \u00e5 samle en gruppe hypervisor verter. All vertene i en klynge m\u00e5 ha identisk marskinvare, kj\u00f8re samme hypervisor, v\u00e6re p\u00e5 samme nettverk, og ha tilgang til den samme prim\u00e6rlagringsenheten. Hver klynge best\u00e5r av en eller flere verter og en eller flere prim\u00e6rlagrings verter.
-message.desc.created.ssh.key.pair=Laget et SSH-n\u00f8kkelpar.
-message.desc.create.ssh.key.pair=Vennligst fyll inn f\u00f8lgende data for \u00e5 opprette eller registrere et ssh-n\u00f8kkelpar. <br><br>(1) Hvis offentlig n\u00f8kkel er valgt s\u00e5 vil CloudStack registrere den offentlige n\u00f8kkelen. Du kan bruke den igjennom din private n\u00f8kkel.<br><br>(2) Hvis offentlig n\u00f8kkel ikke er valgt s\u00e5 vil CloudStack opprette et SSH-n\u00f8kkelpar. I dette tilfellet, vennligst kopier og ta v\u00e6re p\u00e5 den private n\u00f8kkelen. CloudStack vil ikke ta vare p\u00e5 den.<br>
-message.desc.host=Hver klynge m\u00e5 inneholde minst en vert (datamaskin) for gjester \u00e5 kj\u00f8re p\u00e5, og vi legger til den f\u00f8rste n\u00e5. For at en vert skal fungere i CloudStack m\u00e5 du installere hypervisor-programvare p\u00e5 den, tildele en IP-adresse og s\u00f8rge for at den er tilkoblet CloudStacks administrasjonsserver.<br/><br/>Oppgi vertens DNS- eller IP-adresse, brukernavnet (vanligvis root) og passord, og eventuelle etiketter du \u00f8nsker \u00e5 kategorisere den med.
-message.desc.primary.storage=Hver klynge m\u00e5 inneholde en eller flere prim\u00e6rlagringer, og vi skal legge til den f\u00f8rste n\u00e5. Prim\u00e6rlagring inneholder diskvolumer for alle maskiner som kj\u00f8rer p\u00e5 verter i klyngen. Bruk hvilken som helst standard-protokoll den underliggende hypervisoren st\u00f8tter.
-message.desc.reset.ssh.key.pair=Vennligst spesifiser et ssh n\u00f8kkelpar som du vil legge til denne VM. Vennligst merk at root passordet vil bli endret av denne operasjonen hvis passord er aktivert.
-message.desc.secondary.storage=Hver sone m\u00e5 ha minst en NFS eller sekund\u00e6rlagringsserver og vi vil legge til den f\u00f8rste n\u00e5. Sekund\u00e6rlingsserveren lagrer VM-maler, ISO-bilder og VM-disk \u00f8yeblikksbilder. Denne serveren m\u00e5 v\u00e6re tilgjengelig for alle verter i denne sonen. <br/><br/>Oppgi IP-adresseng og eksportert sti.
-message.desc.zone=En sone er den st\u00f8rste gruppe enheten i en CloudStack installasjon. En sone er typisk sett p\u00e5 som et datasenter,  og gir bedre p\u00e5litelighet gjennom isolasjon og redundans. En sone best\u00e5r av en eller flere pods (hver pod inneholder hypervisor verter og prim\u00e6rlagringsenheter) og en sekund\u00e6rlagringsenhet som er delt mellom alle pods i sonen.
-message.detach.disk=Er du sikker p\u00e5 at du \u00f8nsker \u00e5 frakoble denne disken?
-message.detach.iso.confirm=Vennligst bekreft at du \u00f8nsker \u00e5 frakoble ISOen fra denne virtuelle instansen.
-message.disable.account=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere denne kontoen. Ved \u00e5 deaktivere kontoen s\u00e5 vil alle brukere av denne kontoen ikke lenger ha tilgang til sine skyressurser. Alle virtuelle maskiner vil bli skrudd av umiddelbart.
-message.disable.snapshot.policy=Du har deaktivert den n\u00e5v\u00e6rende \u00f8yeblikksbilde policyen.
-message.disable.user=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere denne bruker.
-message.disable.vpn.access=Vennligst bekreft at du \u00f8nsker \u00e5 deaktivere VPN-tilgang.
-message.disable.vpn=Er du sikker p\u00e5 at du vil deaktivere VPN?
-message.disabling.network.offering=Deaktiverer nettverkstilbud
-message.disabling.vpc.offering=Deaktiverer VPC tilbud
-message.disallowed.characters=Ikke tillatte tegn\: \\<\\,\\>
-message.download.ISO=Vennligst klikk <a href\="\#">00000</a> for \u00e5 laste ned ISO
-message.download.template=Vennligst klikk <a href\="\#">00000</a> for \u00e5 laste ned mal
-message.download.volume.confirm=Vennligst bekreft at du \u00f8nsker \u00e5 laste ned dette volumet.
-message.download.volume=Vennligst klikk <a href\="\#">00000</a> for \u00e5 laste ned volumet
-message.edit.account=Oppdater ("-1" indikerer at det ikke er satt \u00f8vre grense for resursbruk)
-message.edit.confirm=Vennligst bekreft dine endringer f\u00f8r du klikker "Lagre".
-message.edit.limits=Oppdater \u00f8vre grense for resursbruk. "-1" indikerer at det ikke er satt \u00f8vre grense.
-message.edit.traffic.type=Vennligst oppgi trafikk-etiketten du \u00f8nsker knyttet til denne trafikktypen.
-message.enable.account=Bekreft at du \u00f8nsker \u00e5 aktivere denne kontoen.
-message.enabled.vpn=Din fjerntilkoblings-VPN er aktivert og kan n\u00e5s via IPen
-message.enabled.vpn.ip.sec=Din IPSec delte n\u00f8kkel (psk) er
-message.enable.user=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere denne bruker.
-message.enable.vpn.access=VPN er deaktivert for denne IP-adressen. \u00d8nsker du \u00e5 aktivere VPN-tilgang?
-message.enable.vpn=Vennligst bekreft at du \u00f8nsker \u00e5 aktivere VPN-tilgang for denne IP-adressen
-message.enabling.network.offering=Aktiver nettverkstilbud
-message.enabling.security.group.provider=Aktiverer sikkerhetsgruppetilbyder
-message.enabling.vpc.offering=Aktiverer VPC tilbud
-message.enabling.zone=Aktiverer sonen
-message.enabling.zone.dots=Aktiverer sone...
-message.enter.seperated.list.multiple.cidrs=Skriv inn en kommaseparert liste over CIDRs hvis du har mer enn en
-message.enter.token=Vennligst skriv inn koden du fikk i invitasjonsmailen.
-message.generate.keys=Vennligst bekreft at du \u00f8nsker \u00e5 generere nye n\u00f8kler for denne bruker.
-message.gslb.delete.confirm=Vennligst bekreft at du vil slette denne GSLB
-message.gslb.lb.remove.confirm=Vennligst bekreft at du vil slette lastbalansering fra GSLB
-message.guest.traffic.in.advanced.zone=Gjestetrafikk er kommunikasjon mellom sluttbrukers virtuelle maskiner. Spesifiser en rekke med VLAN-ider som kan inneholde gjestetrafikk for hvert fysiske nettverk.
-message.guest.traffic.in.basic.zone=Gjestetrafikk er kommunikasjon mellom sluttbrukers virtuelle gjester. Spesifiser en rekke med IP-adresser som CloudStack kan tildele virtuelle gjester. S\u00f8rg for at denne rekken ikke overlapper IP-rekken(e) som er reservert systemmaskiner.
-message.host.dedicated=Dedikert Vert
-message.host.dedication.released=Vert dedikering frigitt
-message.installWizard.click.retry=Klikk p\u00e5 knappen for \u00e5 pr\u00f8ve oppstart p\u00e5 nytt.
-message.installWizard.copy.whatIsACluster=En klynge har til form\u00e5l \u00e5 samle en gruppe hypervisor verter. All vertene i en klynge m\u00e5 ha identisk marskinvare, kj\u00f8re samme hypervisor, v\u00e6re p\u00e5 samme subnett, og ha tilgang til den samme prim\u00e6rlagringsenheten.   Kj\u00f8rende virtuelle maskiner (VM) kan migreres fra en vert i klyngen til en annen uten avbrudd for brukeren. En klynge er den tredje st\u00f8rste enheten i CloudStack. En pod inneholder en eller flere klynger, og en sone inneholder en eller flere pods. <br/><br/>CloudStack can inneholde en eller flere klynger, men for en basic installasjon trengs bare en.
-message.installWizard.copy.whatIsAHost=En vert er en enkelt datamaskin. Verter tilbyr ressurser som kan gj\u00f8re virtuelle gjester. Hver vert har hypervisor-programvare installert for \u00e5 administrere gjestene (bortsett fra r\u00e5jern-verter, som er et spesialtilfelle diskutert i den avanserte installasjonsguiden). For eksempel, en Linux KVM-aktivert server, en Citrix XenServer server og en ESXi server er verter. I en enkel installasjon bruker vi en enkelt vert som kj\u00f8rer XenServer eller KVM.<br/><br/>Verten er den minste organisasjonsenheten i en CloudStack-installasjon. Verter er del av klynger, klynger er del av poder og poder er del av soner.
-message.installWizard.copy.whatIsAPod=En pod representerer ofte et enkelt rack. Verter i samme pod er i samme subnett.<br/><br/>En pod er den nest st\u00f8rste enheten i en CloudStack-installasjon. Poder er en del av soner. Hver sone kan inneholde en eller flere poder; i en enkel installasjon vil du kun ha en pod i sonen.
-message.installWizard.copy.whatIsAZone=En sone er den st\u00f8rste gruppe enheten i en CloudStack installasjon. En sone er typisk sett p\u00e5 som et datasenter, selv om man kan ha flere datasenter i en sone. CloudStack infrastrukturen kan deles inn i soner for \u00e5 isolere og \u00e5 gi redundans. Hver sone kan for eksempel ha sin egen data senter str\u00f8mtilf\u00f8rsel og nettverkslink, og soner kan v\u00e6re spredd over st\u00f8rre distanser.
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482 er en programvare-plattform som grupperer dataressurser for \u00e5 bygge offentlige, private og hybride infrastruktur som en tjeneste (IaaS) skyer. CloudStack&\#8482 administrerer nettverk, lagring og regnekraft-verter som til sammen blir en sky-infrastruktur. Bruk CloudStack&\#8482 til \u00e5 distribuere, administrerre og konfigurere dine skyressurser og milj\u00f8er.<br/><br/>Utvid forbi individuelle virtuelle gjester som kj\u00f8rer p\u00e5 typisk maskinvare, CloudStack&\#8482 gir en skybasert infrastruktur-programvare for levering av virtuelle datasentre som en tjeneste - lever alle de essensielle komponenente for \u00e5 bygge, distribuere og administrere multi-tier og multi-tenant sky-applikasjoner. B\u00e5de fri kildekode- og premium-versjoner er tilgjengelig, hvor den fri kildekode-basert gir tiln\u00e6rmet samme funksjonalitet.
-message.installWizard.copy.whatIsPrimaryStorage=En CloudStack&\#8482 sky-infrastruktur tar i bruk to typer lagring\: prim\u00e6rlagring og sekund\u00e6rlagring. <br/><br/><strong>Prim\u00e6rlagring</strong> er assosiert med en klynge, og lagrer datadisker for hver gjest som kj\u00f8rer i den klyngen. Prim\u00e6rlagring er typisk plassert n\u00e6rt den faktiske verten.
-message.installWizard.copy.whatIsSecondaryStorage=Sekund\u00e6rlagring er assosiert med en sone, og lagrer f\u00f8lgende\: <ul><li>Maler - OS-bilder som kan brukes til \u00e5 starte opp virtuelle gjester og kan inkludere ekstra konfigurasjon, som installerte applikasjoner</li><li>ISO-bilder - Bilder som kan v\u00e6re bootbare eller ikke-bootbare.</li><li>Diskvolum \u00f8yeblikksbilder - Lagrede kopier av virtuelle gjester som kan benyttes til rekonstruksjon eller for \u00e5 lage nye maler</li></ul>
-message.installWizard.now.building=Bygger n\u00e5 din nettsky...
-message.installWizard.tooltip.addCluster.name=Klyngenavnet. Dette kan v\u00e6re hva som helst og er ikke benyttet av CloudStack.
-message.installWizard.tooltip.addHost.hostname=DNS-navnet eller IP-adressen til verten.
-message.installWizard.tooltip.addHost.password=Dette er passordet for brukeren gjengitt ovenfor (fra din XenServer-installasjon).
-message.installWizard.tooltip.addHost.username=Vanligvis root.
-message.installWizard.tooltip.addPod.name=Et navn for poden
-message.installWizard.tooltip.addPod.reservedSystemEndIp=Dette er IP-rekken i det private nettverket som CloudStack bruker for \u00e5 administrere Sekund\u00e6rlagrins-servere og Konsollproxy-servere. Disse IP-adressene tas fra samme subnett som regnekraft-serverne.
-message.installWizard.tooltip.addPod.reservedSystemGateway=Gatewayen til vertene i poden.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=Nettmasken benyttet p\u00e5 subnettet gjestene vil bruke.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=Dette er IP-rekken i det private nettverket som CloudStack bruker for \u00e5 administrere Sekund\u00e6rlagrins-servere og Konsollproxy-servere. Disse IP-adressene tas fra samme subnett som regnekraft-serverne.
-message.installWizard.tooltip.addPrimaryStorage.name=Navnet p\u00e5 lagringsenheten.
-message.installWizard.tooltip.addPrimaryStorage.path=(for NFS) I NFS er dette den eksporterte filbanen fra serveren. Banen (for SharedMountPoint).  Med KVM er dette banen p\u00e5 hver vert hvor denne prim\u00e6re lagringen er tilkoblet.  For eksempel\: "mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(for NFS, iSCSI eller PreSetup) IP-adressen eller DNS-navnet til lagringsenheten.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=IP-adressen til NFS-serveren som inneholder sekund\u00e6r lagring
-message.installWizard.tooltip.addSecondaryStorage.path=Den eksporterte filbanen, fra serveren du spesifiserte ovenfor
-message.installWizard.tooltip.addZone.dns1=Dette er DNS-serveren som benyttes av gjeste-VMer i sonen. Disse DNS-serverene vil bli aksessert via det offentlige nettverket du vil legge til senere. De offentlige IP-adressene for en sone m\u00e5 ha en rute til DNS-serveren navngitt her.
-message.installWizard.tooltip.addZone.dns2=Dette er DNS-serveren som benyttes av gjeste-VMer i sonen. Disse DNS-serverene vil bli aksessert via det offentlige nettverket du vil legge til senere. De offentlige IP-adressene for en sone m\u00e5 ha en rute til DNS-serveren navngitt her.
-message.installWizard.tooltip.addZone.internaldns1=Dette er DNS-servere som benyttes av systemmaskiner i sonen. Disse DNS-serverne vil bli aksessert via det private nettverksgrensesnittet til systemmaskinene. De private IP-adressene du oppgir for podene m\u00e5 ha en rute til DNS-serverne nevnt her.
-message.installWizard.tooltip.addZone.internaldns2=Dette er DNS-servere som benyttes av systemmaskiner i sonen. Disse DNS-serverne vil bli aksessert via det private nettverksgrensesnittet til systemmaskinene. De private IP-adressene du oppgir for podene m\u00e5 ha en rute til DNS-serverne nevnt her.
-message.installWizard.tooltip.addZone.name=Et navn for sonen
-message.installWizard.tooltip.configureGuestTraffic.description=En beskrivelse av nettverket
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=Rekken av IP-adresser som vil v\u00e6re tilgjengelig for allokering til gjester i denne sonen. Hvis ett grensesnitt er brukt, b\u00f8r disse IPene v\u00e6re i samme CIDR som podens CIDR.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=Gatewayen gjestene skal bruke
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=Nettmasken benyttet p\u00e5 subnettet gjestene skal bruke
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=Rekken av IP-adresser som vil v\u00e6re tilgjengelig for allokering til gjester i denne sonen. Hvis ett grensesnitt er brukt, b\u00f8r disse IPene v\u00e6re i samme CIDR som podens CIDR.
-message.installWizard.tooltip.configureGuestTraffic.name=Et navn for nettverket
-message.instance.scaled.up.confirm=\u00d8nsker du \u00e5 skalere opp denne instancen?
-message.instanceWizard.noTemplates=Du har ingen maler tilgjengelig. Vennligst legg til en kompatibel mal og kj\u00f8r instansveiviseren.
-message.ip.address.changed=Din IP-adresse kan ha endret seg. \u00d8nsker du \u00e5 oppdatere visningen? Merk at detaljvisningen vil i s\u00e5fall lukkes.
-message.iso.desc=Diskimage som inneholder data etter oppstartsbar media for OS
-message.join.project=Du har n\u00e5 deltatt i et prosjekt. Vennligst bytt til prosjektvisning for \u00e5 se prosjektet.
-message.launch.vm.on.private.network=\u00d8nsker du \u00e5 starte instancen din p\u00e5 ditt dedikerte nettverk?
-message.launch.zone=Sonen er klar for aktivering; vennligst fortsett til neste steg.
-message.ldap.group.import=Alle brukere fra nevnte gruppe vil bli importert
-message.link.domain.to.ldap=Aktiver automatisk synkronisering for dette domenet i LDAP
-message.listView.subselect.multi=(Ctrl/Cmd-klikk)
-message.lock.account=Vennligst bekreft at du \u00f8nsker \u00e5 l\u00e5se denne kontoen. Ved \u00e5 l\u00e5se kontoen s\u00e5 vil ingen brukere av denne kontoen kunne administere sine skyressurser. Eksisterende ressurser kan fortsatt bli aksessert.
-message.migrate.instance.confirm=Vennligst bekreft verten du \u00f8nsker \u00e5 migrere den virtuelle instansen til.
-message.migrate.instance.to.host=Vennligst bekreft at du \u00f8nsker \u00e5 migrere instansen til en annen vert.
-message.migrate.instance.to.ps=Vennligst bekreft at du \u00f8nsker \u00e5 migrere instansen til en annen prim\u00e6rlagring.
-message.migrate.router.confirm=Vennligst bekreft verten du \u00f8nsker \u00e5 migrere ruteren til\:
-message.migrate.systemvm.confirm=Vennligst bekreft verten du \u00f8nsker \u00e5 migrere system VM til\:
-message.migrate.volume=Vennligst bekreft at du \u00f8nsker \u00e5 migrere volumet til en annen prim\u00e6rlagring.
-message.network.addVM.desc=Vennligst spesifiser nettverket du vil legge til denne VMen. Et nytt NIC vil bli lagt til for dette nettverket.
-message.network.addVMNIC=Vennligst bekreft at du vil legge til ett nytt NIC for dette nettverket.
-message.network.remote.access.vpn.configuration=VPN fjerntilgangskonfigurasjon har blitt generert, men aktivering feilet. Vennligst sjekk tilkoblingen til nettverkselementet og fors\u00f8k p\u00e5 nytt.
-message.new.user=Spesifiser f\u00f8lgende informasjon for \u00e5 legge til en ny bruker til denne kontoen
-message.no.affinity.groups=Du har ingen affinitetsgrupper. Fortsett til neste steg.
-message.no.host.available=Ingen hoster tilgjengelig for migrering
-message.no.network.support.configuration.not.true=Du har ingen soner med sikkerhetsgrupper aktivert. Derfor ingen ekstra nettverksfunksjoner. Fortsett til steg 5.
-message.no.network.support=Din valgte hypervisor, vSphere, har ikke flere nettverks evner. Forsett til punkt 5.
-message.no.projects.adminOnly=Du har ingen prosjekter.<br/>Vennligst be din administrator om \u00e5 opprette et nytt prosjekt.
-message.no.projects=Du har ingen prosjekter.<br/>Vennligst opprett et nytt fra prosjektseksjonen.
-message.number.clusters=<h2><span> \# av </span> Klynger</h2>
-message.number.hosts=<h2><span> \# av </span> Verter</h2>
-message.number.pods=<h2><span> \# av </span> Pods</h2>
-message.number.storage=<h2><span> \# av </span> Prim\u00e6rlagringsvolumer</h2>
-message.number.zones=<h2><span> \# av </span> Soner</h2>
-message.password.has.been.reset.to=Passordet har blitt endret til
-message.password.of.the.vm.has.been.reset.to=Passorde for VM har blitt endre til
-message.pending.projects.1=Du har f\u00f8lgende prosjektinvitasjoner\:
-message.pending.projects.2=For \u00e5 se, vennligst g\u00e5 til prosjektseksjonen og velg invitasjoner fra nedtrekksmenyen.
-message.please.add.at.lease.one.traffic.range=Vennligst legg til minst \u00e9tt trafikkniv\u00e5
-message.please.confirm.remove.ssh.key.pair=Vennligst bekreft at du vil fjerne dette SSH-n\u00f8kkelpar
-message.please.proceed=Vennligst fortsett til neste steg
-message.please.select.a.configuration.for.your.zone=Vennligst velg en konfigurasjon for din sone
-message.please.select.a.different.public.and.management.network.before.removing=Vennligst velg et annet offentlig- og administrasjonsnettverk f\u00f8r du fjerner
-message.please.select.networks=Vennligst velg nettverk for din VM
-message.please.select.ssh.key.pair.use.with.this.vm=Vennligst velg et ssh n\u00f8kkelpar som du vil at denne VM skal benytte\:
-message.please.wait.while.zone.is.being.created=Vennlist vent mens din sone opprettes. Dette kan ta noe tid...
-message.pod.dedication.released=Pod dedikering frigitt
-message.portable.ip.delete.confirm=Vennligst bekreft at du vil slette denne portable IP-rekken
-message.project.invite.sent=Invitasjon sendt til bruker. De vil bli lagt til prosjektet s\u00e5 snart de har akseptert invitasjonen
-message.public.traffic.in.advanced.zone=Offentlig trafikk blir generert av verter i skyen som aksesserer internett. Offentlige IP-adresser m\u00e5 allokerers for dette form\u00e5et. Sluttbrukere kan bruke CloudStack brukergrensesnittet til \u00e5 foresp\u00f8rre om disse IP-adressene til \u00e5 implentere NAT mellom deres gjestenettverk og det offentlige nettverket.<br/><br/>Oppgi minst en rekke med IP-adresser for internettrafikk.
-message.public.traffic.in.basic.zone=Offentlig trafikk blir generert n\u00e5r virtuelle gjester i skyen aksesserer internett eller kan tilby tjenester til klienter over internett. Offentlig tilgjengelige IP-adresser m\u00e5 allokerers for dette form\u00e5let. N\u00e5r en instans opprettes vil en IP fra dette settet med Offentlige IP-adresser bli tildelt i tillegg til en gjeste-IP-adresse. Statisk 1-1 NAT vil ogs\u00e5 bli satt opp automatisk mellom the offentlige og den private IP-adressen. Sluttbrukere kan ogs\u00e5 bruke CloudStack brukergrensesnittet til \u00e5 tilegne ekstra IP-adresser for \u00e5 implementere statisk NAT mellom deres instans og den offentlige IP-adressen.
-message.question.are.you.sure.you.want.to.add=Er du sikker p\u00e5 at du vil legge til
-message.read.admin.guide.scaling.up=Vennligst les avsnittet om dynamisk skalering i administrasjondokumentasjonen f\u00f8r du oppskalerer.
-message.recover.vm=Vennligst bekreft at du \u00f8nsker \u00e5 gjenopprette denne VMen.
-message.redirecting.region=Omdirigerer til region...
-message.reinstall.vm=Advarsel\: Fortsett med forsiktighet. Dette vil reinstallere VMen fra malen; data p\u00e5 rot-disken vil forsvinne. Ekstra datavolumer; hvis noen, vil ikke bli r\u00f8rt.
-message.removed.ssh.key.pair=Fjernet et SSH-n\u00f8kkelpar
-message.remove.ldap=Er du sikker p\u00e5 at du vil slette LDAP-konfigurasjonen?
-message.remove.region=Er du sikker p\u00e5 at du vil fjerne denne regionen fra denne administrasjonsserveren?
-message.remove.vpc=Vennligst bekreft at du \u00f8nsker \u00e5 fjerne VPC
-message.remove.vpn.access=Vennligst bekreft at du \u00f8nsker \u00e5 fjerne VPN-tilgang fra f\u00f8lgende bruker.
-message.reset.password.warning.notPasswordEnabled=Denne malen vil bli opprettet uten passord
-message.reset.password.warning.notStopped=Din instans m\u00e5 stoppes f\u00f8r man fors\u00f8ker \u00e5 bytte n\u00e5v\u00e6rende passord
-message.reset.VPN.connection=Vennligst bekreft at du \u00f8nsker \u00e5 resette VPN-tilkobling
-message.restart.mgmt.server=Vennlist restart administrajonsserveren(e) din(e) for at de nye innstillingene skal tr\u00e5 i kraft.
-message.restart.mgmt.usage.server=Vennligst restart administrasjonsserveren(e) din(e) og bruksserver(e) for at de nye innstillingene skal tr\u00e5 i kraft.
-message.restart.network=Alle tjenester fra dette nettverket vil bli avbrutt. Vennligst bekreft at du \u00f8nsker \u00e5 restarte dette nettverket.
-message.restart.vpc.remark=Vennligst bekreft du at du vil restarte VPC <p><small><i>Merk\: \u00c5 gj\u00f8re en ikke reduntant VPC redundant vil tvinge en opprydning. Nettverkene vil ikke v\u00e6re tilgjengelig i noen minutter</i>.</small></p>
-message.restart.vpc=Vennligst bekreft at du \u00f8nsker \u00e5 restarte VPC
-message.restoreVM=Vil du gjenopprette denne VMen?
-message.security.group.usage=(Bruk <strong>Ctrl-klikk</strong> for \u00e5 velge alle aktuelle sikkerhetsgrupper)
-message.select.affinity.groups=Vennligst velg en affinitetsgruppe denne VMen skal tilh\u00f8re\:
-message.select.a.zone=En sone er typisk sett p\u00e5 som et datasenter. Multiple soner gir  CloudStack bedre p\u00e5litelighet gjennom isolasjon og redundans.
-message.select.instance=Vennligst velg en instans.
-message.select.iso=Vennligst velg en ISO for din nye virtuelle instans.
-message.select.item=Vennligst velg et element
-message.select.security.groups=Vennligst velg sikkerhetsgruppe(r) for din nye VM
-message.select.template=Vennligst velg en mal for din nye virtuelle instans.
-message.select.tier=Vennligst velg en VPC-gren
-message.set.default.NIC.manual=Vennligst oppdater standard-NIC manuelt p\u00e5 VMen n\u00e5.
-message.set.default.NIC=Vennligst bekreft at du vil gj\u00f8re dette NIC til standard for denne VM.
-message.setup.physical.network.during.zone.creation.basic=N\u00e5r du legger til en enkel sone s\u00e5 kan du sette opp ett fysisk nettverk som korrensponderer til et NIC p\u00e5 hypervisor. Nettverket transporterer flere typer trafikk.<br/><br/> Du kan ogs\u00e5 <strong>drag og slippe</strong> andre trafikktyper over til det fysiske nettverket.
-message.setup.physical.network.during.zone.creation=N\u00e5r du legger til en avansert sone, m\u00e5 du konfigurere en eller flere fysiske nettverk. Hvert nettverk representerer et NIC p\u00e5 verten. Hvert fysiske nettverk kan inneholde en eller flere typer trafikk, med noen restriksjoner for hvordan de kan kombineres.<br/><br/><strong>Dra og slipp en eller flere nettverkstyper</strong> til hvert fysiske nettverk.
-message.setup.successful=Oppsettet av nettskyen er vellykket\!
-message.snapshot.schedule=Du kan sette opp gjentakende \u00f8yeblikksbilder ved \u00e5 velge fra tilgjengelige opsjoner nedenfor og aktivere dine preferanser.
-message.specifiy.tag.key.value=Vennligst bekreft tag n\u00f8kkel og verdi
-message.specify.url=Vennligst spesifiser URL
-message.step.1.continue=Vennligst velg en mal eller ISO for \u00e5 fortsette.
-message.step.1.desc=Vennligst velg en mal for din nye virtuelle instans. Du kan ogs\u00e5 velge en blank mal som du kan installere fra en ISO p\u00e5.
-message.step.2.continue=Velg et resurstilbud for \u00e5 fortsette
-message.step.3.continue=Vennligst velg et disktilbud for \u00e5 fortsette
-message.step.4.continue=Vennligst velg minst ett nettverk for \u00e5 fortsette
-message.step.4.desc=Vennligst velg prim\u00e6rnettverket som din virtuelle instans vil bli tilkoblet til.
-message.storage.traffic=Trafikk mellom CloudStacks interne ressurser, inkludert alle komponenter som kommuniserer med administrassjonsserver, som verter og CloudStack systemmaskiner. Vennligst konfigurer lagringstrafikk her.
-message.suspend.project=Er du sikker du \u00f8nsker \u00e5 pause dette prosjektet?
-message.systems.vms.ready=System-VMer klare.
-message.template.copying=Malen blir kopiert.
-message.template.desc=OS-image som kan brukes til \u00e5 starte VMer
-message.tier.required=VPC-gren er p\u00e5krevd.
-message.tooltip.dns.1=Oppgi en DNS server for bruk av VMer i denne sonen. De offentlige IP-adressene for denne sonen m\u00e5 ha en rute til denne serveren.
-message.tooltip.dns.2=En sekund\u00e6r DNS server for bruk av VMer i denne sonen. De offentlige IP-adressene for denne sonen m\u00e5 ha en rute til denne serveren.
-message.tooltip.internal.dns.1=Navn p\u00e5 en DNS-server for bruk av CloudStack interne systemVMer i sonen. Den private IP-adressen i podden m\u00e5 ha en rute til serveren.
-message.tooltip.internal.dns.2=Navn p\u00e5 en DNS-server for bruk av CloudStack interne systemVMer i sonen. Den private IP-adressen i podden m\u00e5 ha en rute til serveren.
-message.tooltip.network.domain=Et DNS suffiks som vil opprette et tilpasset domenenavn for nettverket som aksesseres av gjeste VMer.
-message.tooltip.pod.name=Et navn for denne pod.
-message.tooltip.reserved.system.gateway=Gatewayen til vertene i poden.
-message.tooltip.reserved.system.netmask=Nettverksprefiks som definerer podens subnett. Bruker CIDR-notasjon.
-message.tooltip.zone.name=Et navn for denne sonen.
-message.update.os.preference=Vennligst velg preferert OS for denne verten. Alle virtuelle instanser med lignende OS vil f\u00f8rst bli allokert til denne verten f\u00f8r andre velges.
-message.update.resource.count=Vennligst bekreft at du \u00f8nsker \u00e5 oppdatere ressurstellere for denne kontoen.
-message.update.ssl.failed=Oppdatering av SSL-sertifikat feilet.
-message.update.ssl.succeeded=Oppdatering av SSL-sertifikat vellykket
-message.update.ssl=Vennligst send inn en ny X.509 kompatibel SSL-sertifikatkjede for \u00e5 oppdatere hver konsollproxy og virtuell instans for sekund\u00e6rlagring\:
-message.validate.accept=Vennligst skriv inn en verdi med et gyldig prefiks.
-message.validate.creditcard=Vennligst oppgi et gyldig kredittkortnummer.
-message.validate.date.ISO=Vennligst skriv inn en gyldig dato (ISO).
-message.validate.date=Vennligst skriv inn en gyldig dato.
-message.validate.digits=Vennligst skriv inn kun tall.
-message.validate.email.address=Vennligst skriv inn en gyldig e-postadresse.
-message.validate.equalto=Vennligst skriv inn den samme verdien igjen.
-message.validate.fieldrequired=Dette feltet er p\u00e5krevd.
-message.validate.fixfield=Vennligst fiks dette feltet.
-message.validate.instance.name=Instansnavn kan ikke v\u00e6re lenger enn 63 tegn. Kun ACSCII bokstaver a~z, A~Z, tall 0~9, bindestrek er tillatt. M\u00e5 starte med en bokstav og slutte med en bokstav eller et tall.
-message.validate.invalid.characters=Ugyldige tegn funnet; vennligst korriger.
-message.validate.maxlength=Vennligst ikke skriv inn mer enn {0} tegn.
-message.validate.max=Skriv en verdi mindre enn eller lik {0}.
-message.validate.minlength=Vennligst skriv inn minst {0} tegn.
-message.validate.number=Vennligst skriv inn et gyldig nummer.
-message.validate.range.length=Vennligst skriv inn en verdi som er mellom {0} og {1} tegn langt.
-message.validate.range=Skriv en verdi mellom {0} og {1}.
-message.validate.URL=Vennligst skriv inn en gyldig URL.
-message.virtual.network.desc=Et dedikert virtualisert nettverk for din konto. Kringkastingsdomenet er isolert inne i et VLAN og offentlig nettverkstrafikk er rutet ut av en virtuell ruter.
-message.vm.create.template.confirm=Oppretting av Mal vil restarte VM automatisk.
-message.vm.review.launch=Vennligst vurder f\u00f8lgende informasjon og bekreft at din virtuelle instans er korrekt f\u00f8r kj\u00f8ring
-message.vnmc.available.list=VNMC er ikke tilgjengelig fra tilbyder listen.
-message.vnmc.not.available.list=VNMC er ikke tilgjengelig fra tilbyder listen.
-message.volume.create.template.confirm=Vennligst bekreft at du \u00f8nsker \u00e5 lage en mal for dette diskvolumet. Opprettelse av male kan ta opptil flere minutter eller lenger, avhengig av st\u00f8rrelsen p\u00e5 volumet.
-message.waiting.for.builtin.templates.to.load=Venter p\u00e5 at innebygde maler skal lastes...
-message.XSTools61plus.update.failed=Feilet \u00e5 oppdatere original XS versjon er 6.1\\+ feltet. Feil\:
-message.you.must.have.at.least.one.physical.network=Du trenger minst ett fysisk nettverk
-message.your.cloudstack.is.ready=Din CloudStack er klar\!
-message.Zone.creation.complete=Opprettelsen av sonen utf\u00f8rt
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Soneopprettelse fullf\u00f8rt. \u00d8nsker du \u00e5 aktivere denne sonen?
-message.zone.no.network.selection=Sonen du har valgt har ingen mulighet for valg av nettverk.
-message.zone.step.1.desc=Vennligst en nettverksmodell for din sone.
-message.zone.step.2.desc=Vennligst skriv inn f\u00f8lgende informasjon for \u00e5 legge til en ny sone
-message.zone.step.3.desc=Vennligst skriv inn f\u00f8lgende informasjon for \u00e5 legge til en ny pod
-message.zoneWizard.enable.local.storage=ADVARSEL\: Hvis du aktiverer lokal lagring for denne sonen m\u00e5 du gj\u00f8re f\u00f8lgende, avhengig av hvor du \u00f8nsker at systemmaskiner skal starte\:<br/><br/>1. Hvis systemmaskiner trenger \u00e5 starte fra delt lagring, m\u00e5 det legges til delt lagring etter at sonen er opprettet. Sonen m\u00e5 ogs\u00e5 startes som deaktivert.<br/><br/>2. Hvis systemmaskiner trenger \u00e5 starte fra lokal lagring, m\u00e5 system.vm.use.local.storage settes til true f\u00f8r du aktiverer sonen.<br/><br/><br/>Vil du fortsette?
-messgae.validate.min=Skriv en verdig st\u00f8rre enn eller lik {0}.
-mode=Modus
-network.rate=Nettverksrate
-notification.reboot.instance=Omstart av instans
-notification.start.instance=Start instans
-notification.stop.instance=Stopp instans
-side.by.side=Side ved side
-state.Accepted=Akseptert
-state.Active=Aktiv
-state.Allocated=Allokert
-state.Allocating=Allokerer
-state.BackedUp=Sikkerhetskopiert
-state.BackingUp=Sikkerhetskopierer
-state.Completed=Utf\u00f8rt
-state.Creating=Oppretter
-state.Declined=Avvist
-state.Destroyed=Destruert
-state.detached=Frakoblet
-state.Disabled=Inaktiv
-state.Enabled=Aktivert
-state.Error=Feil
-state.Expunging=Fjerner
-state.Migrating=Migrering
-state.Pending=Venter
-state.Ready=Klar
-state.Running=Kj\u00f8rer
-state.Starting=Starter
-state.Stopped=Stoppet
-state.Stopping=Stopper
-state.Suspended=Pauset
-title.upload.volume=Last opp volum
-ui.listView.filters.all=Alle
-ui.listView.filters.mine=Mine
diff --git a/client/WEB-INF/classes/resources/messages_nl_NL.properties b/client/WEB-INF/classes/resources/messages_nl_NL.properties
deleted file mode 100644
index b691eaa..0000000
--- a/client/WEB-INF/classes/resources/messages_nl_NL.properties
+++ /dev/null
@@ -1,2257 +0,0 @@
-# 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.
-
-changed.item.properties=Item eigenschappen gewijzigd
-confirm.enable.s3=Vul de volgende informatie in om ondersteuning voor S3-aangestuurde Secundaire Opslag te activeren
-confirm.enable.swift=Vul de volgende informatie in om ondersteuning voor Swift te activeren
-error.could.not.change.your.password.because.ldap.is.enabled=Fout. Kan wachtwoord niet wijzigen omdat LDAP is uitgeschakeld.
-error.could.not.enable.zone=Kon zone niet activeren
-error.installWizard.message=Er ging iets mis; je kunt teruggaan om de eventuele fouten te herstellen
-error.invalid.username.password=Ongeldige gebruikersnaam of wachtwoord
-error.login=Uw gebruikersnaam/wachtwoord komt niet overeen met onze gegevens
-error.menu.select=Kan actie niet uitvoeren omdat geen items zijn geselecteerd
-error.mgmt.server.inaccessible=The Management Server is niet toegankelijk. Probeer het later opnieuw.
-error.password.not.match=De wachtwoord velden komen niet overeen
-error.please.specify.physical.network.tags=Netwerk aanbiedingen zijn niet beschikbaar totdat u labels voor het fysieke netwerk specificeert.
-error.session.expired=Uw sessie is verlopen
-error.something.went.wrong.please.correct.the.following=Er is iets mis gegaan; Corrigeer het volgende
-error.unable.to.reach.management.server=Niet in staat om de Management Server te bereiken
-error.unresolved.internet.name=Uw internet naam kan niet worden omgezet.
-force.delete.domain.warning=Waarschuwing\: Wanneer u deze optie selecteert zullen alle onderliggende domeinen, hun gekoppelde accounts en hun verbruik worden verwijderd.
-force.delete=Geforceerd verwijderen
-force.remove=Geforceerd loskoppelen
-force.remove.host.warning=Waarschuwing\: Wanneer u deze optie selecteert zal CloudStack alle draaiende virtuele machines geforceerd stoppen voordat de host van het cluster wordt verwijderd.
-force.stop=Geforceerd stoppen
-force.stop.instance.warning=Waarschuwing\: Een instantie geforceerd stoppen zou uw laatste optie moeten zijn. Het kan leiden tot dataverlies en inconsistent gedrag van de staat van de virtuele machine.
-hint.no.host.tags=geen machine kentekens gevonden
-hint.no.storage.tags=geen opslag kentekens gevonden
-hint.type.part.host.tag=type een deel van een machine kenteken
-hint.type.part.storage.tag=type een deel van een opslag kenteken
-ICMP.code=ICMP Code
-ICMP.type=ICMP Type
-image.directory=Afbeelding Directory
-inline=Inline
-instances.actions.reboot.label=Herstart instantie
-label.about.app=Over CloudStack
-label.about=Over
-label.accept.project.invitation=Accepteer project uitnodiging
-label.account=Account
-label.account.and.security.group=Account, Security group
-label.account.details=rekening gegevens
-label.account.id=Account ID
-label.account.lower=account
-label.account.name=Account Naam
-label.accounts=Accounts
-label.account.specific=Account-specifiek
-label.account.type=Account type
-label.acl=ACL
-label.acl.id=ACL ID
-label.acl.list.rules=ACL lijst regels
-label.acl.name=ACL naam
-label.acl.replaced=ACL vervangen
-label.acquire.new.ip=Bemachtig nieuw IP
-label.acquire.new.secondary.ip=Verkrijg nieuw secundair IP
-label.action=Actie
-label.action.attach.disk.processing=Schijf wordt toegevoegd....
-label.action.attach.disk=Schijf toevoegen
-label.action.attach.iso=ISO toevoegen
-label.action.attach.iso.processing=ISO wordt toegevoegd....
-label.action.cancel.maintenance.mode=Annuleer Onderhoudsmodus
-label.action.cancel.maintenance.mode.processing=Onderhoudsmodus wordt geannuleerd....
-label.action.change.password=Wijzig Wachtwoord
-label.action.change.service.processing=Service wordt gewijzigd....
-label.action.change.service=Wijzig Service
-label.action.configure.samlauthorization=configureer SAML SSO authorisatie
-label.action.copy.ISO=Kopieer ISO
-label.action.copy.ISO.processing=Bezig een ISO te kopi\u00ebren...
-label.action.copy.template=Kopieer Template
-label.action.copy.template.processing=Bezig een template te kopi\u00ebren...
-label.action.create.template=Cre\u00eber Template
-label.action.create.template.from.vm=Cre\u00eber Template vanaf VM
-label.action.create.template.from.volume=Cre\u00eber Template van Volume
-label.action.create.template.processing=Bezig met aanmaken Template....
-label.action.create.vm=Cre\u00eber VM
-label.action.create.vm.processing=Bezig met aanmaken VM....
-label.action.create.volume=Cre\u00eber Volume
-label.action.create.volume.processing=Bezig met cre\u00ebren volume....
-label.action.delete.account.processing=Bezig met verwijderen account....
-label.action.delete.account=Verwijder account
-label.action.delete.cluster.processing=Bezig met verwijderen van Cluster....
-label.action.delete.cluster=Verwijder Cluster
-label.action.delete.disk.offering.processing=Bezig met verwijderen van Schijf Aanbieding....
-label.action.delete.disk.offering=Verwijder Schijf Aanbieding
-label.action.delete.domain.processing=Bezig met verwijderen van Domein....
-label.action.delete.domain=Verwijder Domein
-label.action.delete.firewall.processing=Bezig met verwijderen van Firewall....
-label.action.delete.firewall=Verwijder firewall regel
-label.action.delete.ingress.rule.processing=Bezig met verwijderen van Inkomende Regel....
-label.action.delete.ingress.rule=Verwijder Inkomende Regel
-label.action.delete.IP.range.processing=Bezig met verwijderen van IP Range....
-label.action.delete.IP.range=Verwijder IP Range
-label.action.delete.ISO.processing=Bezig met verwijderen van ISO....
-label.action.delete.ISO=Verwijder ISO
-label.action.delete.load.balancer.processing=Bezig met verwijderen van Load Balancer....
-label.action.delete.load.balancer=Verwijder load balancer regel
-label.action.delete.network.processing=Bezig met verwijderen van Netwerk....
-label.action.delete.network=Verwijder Netwerk
-label.action.delete.nexusVswitch=Verwijder Nexus 1000v
-label.action.delete.nic=Verwijder netwerkkaart
-label.action.delete.physical.network=Verwijder fysiek netwerk
-label.action.delete.pod.processing=Bezig met verwijderen van Pod....
-label.action.delete.pod=Verwijder Pod
-label.action.delete.primary.storage.processing=Bezig met verwijderen van Primaire Opslag....
-label.action.delete.primary.storage=Verwijder Primaire Opslag
-label.action.delete.secondary.storage.processing=Bezig met verwijderen van Secundaire Opslag....
-label.action.delete.secondary.storage=Verwijder Secundaire Opslag
-label.action.delete.security.group.processing=Bezig met verwijderen van Security Group....
-label.action.delete.security.group=Verwijder Security Group
-label.action.delete.service.offering.processing=Bezig met verwijderen van Service Aanbieding....
-label.action.delete.service.offering=Verwijder Service Aanbieding
-label.action.delete.snapshot.processing=Bezig met verwijderen van Snapshot....
-label.action.delete.snapshot=Verwijder Snapshot
-label.action.delete.system.service.offering=Verwijder Systeem Service Aanbieding
-label.action.delete.template.processing=Bezig met verwijderen van Template....
-label.action.delete.template=Verwijder Template
-label.action.delete.user.processing=Bezig met verwijderen Gebruiker....
-label.action.delete.user=Verwijder Gebruiker
-label.action.delete.volume.processing=Bezig met verwijderen van Volume....
-label.action.delete.volume=Verwijder Volume
-label.action.delete.zone.processing=Bezig met verwijderen van Zone....
-label.action.delete.zone=Verwijder Zone
-label.action.destroy.instance.processing=Bezig met vernietigen van Instantie....
-label.action.destroy.instance=Verwijder Instantie
-label.action.destroy.systemvm.processing=Bezig met vernietigen van Systeem VM....
-label.action.destroy.systemvm=Vernietig Systeem VM
-label.action.detach.disk=Ontkoppel Schijf
-label.action.detach.disk.processing=Bezig met ontkoppelen van Schijf....
-label.action.detach.iso=Ontkoppel ISO
-label.action.detach.iso.processing=Bezig met ontkoppelen van ISO....
-label.action.disable.account=Deactiveer account
-label.action.disable.account.processing=Bezig met deactiveren van account....
-label.action.disable.cluster=Deactiveer Cluster
-label.action.disable.cluster.processing=Bezig met deactiveren van Cluster....
-label.action.disable.nexusVswitch=Deactiveer Nexus 1000v
-label.action.disable.physical.network=Deactiveer fysiek netwerk
-label.action.disable.pod=Deactiveer Pod
-label.action.disable.pod.processing=Bezig met deactiveren van Pod....
-label.action.disable.static.NAT=Deactiveer Static NAT
-label.action.disable.static.NAT.processing=Bezig met deactiveren van Static NAT....
-label.action.disable.user=Deactiveer Gebruiker
-label.action.disable.user.processing=Bezig met deactiveren van Gebruiker....
-label.action.disable.zone=Deactiveer Zone
-label.action.disable.zone.processing=Bezig met deactiveren van Zone....
-label.action.download.ISO=Download ISO
-label.action.download.template=Download Template
-label.action.download.volume=Download Volume
-label.action.download.volume.processing=Bezig met downloaden van Volume....
-label.action.edit.account=Wijzig account
-label.action.edit.disk.offering=Wijzig schijf aanbieding
-label.action.edit.domain=Wijzig Domein
-label.action.edit.global.setting=Wijzig Algemene Instellingen
-label.action.edit.host=Wijzig Host
-label.action.edit.instance=Wijzig Instantie
-label.action.edit.ISO=Wijzig ISO
-label.action.edit.network.offering=Wijzig Netwerk Aanbieding
-label.action.edit.network.processing=Bezig met wijzigen van Netwerk...
-label.action.edit.network=Wijzig Netwerk
-label.action.edit.pod=Wijzig Pod
-label.action.edit.primary.storage=Wijzig Primaire Opslag
-label.action.edit.resource.limits=Wijzig verbruikslimieten
-label.action.edit.service.offering=Wijzig Service Aanbieding
-label.action.edit.template=Wijzig Template
-label.action.edit.user=Wijzig Gebruiker
-label.action.edit.zone=Wijzig Zone
-label.action.enable.account=Activeer account
-label.action.enable.account.processing=Bezig met activeren van account....
-label.action.enable.cluster=Activeer Cluster
-label.action.enable.cluster.processing=Bezig met activeren van Cluster....
-label.action.enable.maintenance.mode=Activeer onderhoudsmodus
-label.action.enable.maintenance.mode.processing=Bezig met activeren van Onderhoudsmodus
-label.action.enable.nexusVswitch=Activeer Nexus 1000v
-label.action.enable.physical.network=Activeer fysiek netwerk
-label.action.enable.pod=Activeer Pod
-label.action.enable.pod.processing=Bezig met activeren van Pod....
-label.action.enable.static.NAT=Activeer Static NAT
-label.action.enable.static.NAT.processing=Bezig met activeren van Static NAT....
-label.action.enable.user=Activeer Gebruiker
-label.action.enable.user.processing=Bezig met activeren van Gebruiker....
-label.action.enable.zone=Activeer Zone
-label.action.enable.zone.processing=Bezig met activeren van Zone....
-label.action.expunge.instance.processing=Opruimen Instantie....
-label.action.expunge.instance=Ruim instantie op
-label.action.force.reconnect=Forceer opnieuw verbinden
-label.action.force.reconnect.processing=Bezig met opnieuw verbinden....
-label.action.generate.keys=Genereer Sleutels
-label.action.generate.keys.processing=Bezig met generen van Sleutels....
-label.action.list.nexusVswitch=Toon Nexus 1000v
-label.action.lock.account=Account op slot zetten
-label.action.lock.account.processing=Bezig met account op slot zetten....
-label.action.manage.cluster=Beheer Cluster
-label.action.manage.cluster.processing=Bezig met beheren van Cluster....
-label.action.migrate.instance=Migreer Instantie
-label.action.migrate.instance.processing=Bezig met migreren van Instantie....
-label.action.migrate.router=MIgreer Router
-label.action.migrate.router.processing=Bezig met migreren van Router....
-label.action.migrate.systemvm=Migreer Systeem VM
-label.action.migrate.systemvm.processing=Bezig met migreren van Systeem VM....
-label.action.reboot.instance=Herstart Instantie
-label.action.reboot.instance.processing=Bezig met herstarten van Instantie....
-label.action.reboot.router=Herstart Router
-label.action.reboot.router.processing=Bezig met herstarten van Router....
-label.action.reboot.systemvm=Herstart Systeem VM
-label.action.reboot.systemvm.processing=Bezig met herstarten van Systeem VM....
-label.action.recurring.snapshot=Terugkerende Snapshots
-label.action.register.iso=Registreer ISO
-label.action.register.template=Registreer een template van een URL
-label.action.release.ip=Ontkoppel IP
-label.action.release.ip.processing=Bezig met ontkoppelen van IP....
-label.action.remove.host.processing=Bezig met verwijderen van Host....
-label.action.remove.host=Verwijder Host
-label.action.reset.password.processing=Bezig met resetten van wachtwoord....
-label.action.reset.password=Reset Wachtwoord
-label.action.resize.volume.processing=Bezig met aanpassen van de grootte van het Volume
-label.action.resize.volume=Wijzig de grootte van het volume
-label.action.resource.limits=Verbruikslimieten
-label.action.restore.instance=Herstel Instantie
-label.action.restore.instance.processing=Bezig met herstellen van Instantie....
-label.action.revert.snapshot=Draai terug naar snapshot
-label.action.revert.snapshot.processing=Terugdraaien naar snapshot...
-label.actions=Acties
-label.action.start.instance.processing=Bezig met starten van Instantie....
-label.action.start.instance=Start Instantie
-label.action.start.router.processing=Start Router....
-label.action.start.router=Start Router
-label.action.start.systemvm.processing=Bezig met starten van Systeem VM....
-label.action.start.systemvm=Start Systeem VM
-label.action.stop.instance.processing=Bezig met stoppen van Instantie....
-label.action.stop.instance=Stop Instantie
-label.action.stop.router.processing=Bezig met stoppen van Router....
-label.action.stop.router=Stop Router
-label.action.stop.systemvm.processing=Bezig met stoppen van Systeem VM....
-label.action.stop.systemvm=Stop Systeem VM
-label.action.take.snapshot=Neem Snapshot
-label.action.take.snapshot.processing=Bezig met nemen van Snapshot....
-label.action.unmanage.cluster.processing=Bezig met uitschakelen van Clusterbeheer....
-label.action.unmanage.cluster=Schakel Clusterbeheer uit
-label.action.update.OS.preference.processing=Bezig met wijzigen van OS voorkeuren....
-label.action.update.OS.preference=Wijzig OS voorkeuren
-label.action.update.resource.count.processing=Bezig met updaten van verbruikslimieten....
-label.action.update.resource.count=Update Verbruikslimieten
-label.action.vmsnapshot.create=Neem Snapshot van de VM
-label.action.vmsnapshot.delete=Verwijder Snapshot van de VM
-label.action.vmsnapshot.revert=Draai Snapshot van de VM terug
-label.activate.project=Activeer Project
-label.active.sessions=Actieve Sessies
-label.add.accounts.to=Voeg accounts toe aan
-label.add.accounts=Voeg accounts toe
-label.add.account.to.project=Voeg account aan project toe
-label.add.account=Voeg Account toe
-label.add.acl.list=voeg een ACL lijst toe
-label.add.ACL=Voeg ACL toe
-label.add.affinity.group=Nieuwe affinity groep toevoegen
-label.add.baremetal.dhcp.device=Voeg Baremetal DHCP Apparaat toe
-label.add.baremetal.rack.configuration=voeg baremetal rek configuratie toe
-label.add.BigSwitchBcf.device=Voeg eenBigSwitch BCF controller toe
-label.add.BrocadeVcs.device=Voeg een Brocade Vcs switch toe
-label.add.by.cidr=Voeg toe door middel van CIDR
-label.add.by.group=Voeg toe door middel van Groep
-label.add.by=Voeg toe door middel van
-label.add.ciscoASA1000v=voeg CiscoASA1000v toe
-label.add.cluster=Voeg Cluster toe
-label.add.compute.offering=Voeg Compute aanbieding toe
-label.add.direct.iprange=Voeg Direct IP Range toe
-label.add.disk.offering=Voeg Schijf Aanbieding toe
-label.add.domain=Voeg Domein toe
-label.added.brocade.vcs.switch=een nieuwe Brocade Vcs switch is toegevoegd
-label.added.network.offering=netwerk aanbieding toegevoegd
-label.added.new.bigswitch.bcf.controller=een nieuwe BigSwitch BCF controller is toegevoegd
-label.added.nicira.nvp.controller=Nieuwe Nicira NVP Controller toegevoegd
-label.add.egress.rule=Voeg uitgaande regel toe
-label.addes.new.f5=Nieuwe F5 toegevoegd
-label.add.F5.device=Voeg F5 apparaat toe
-label.add.firewall=Voeg firewall regel toe
-label.add.globo.dns=voeg GloboDNS toe
-label.add.gslb=GSLB Toevoegen
-label.add.guest.network=Gast netwerk toevoegen
-label.add.host=Host toevoegen
-label.adding.cluster=Bezig met toevoegen van Cluster
-label.adding.failed=Toevoegen mislukt
-label.adding.pod=Bezig met toevoegen van Pod
-label.adding.processing=Toevoegen....
-label.add.ingress.rule=Voeg inkomende regel toe
-label.adding.succeeded=Toevoegen geslaagd
-label.adding=Toevoegen
-label.adding.user=Bezig met toevoegen van Gebruiker
-label.adding.zone=Bezig met toevoegen van Zone
-label.add.intermediate.certificate=Voeg een intermediair certificaat toe
-label.add.internal.lb=voeg interne LB toe
-label.add.ip.range=Voeg IP range toe
-label.add.isolated.guest.network=Voeg een ge\u00efsoleerd netwerk toe
-label.add.isolated.guest.network.with.sourcenat=voeg en ge\u00efsoleerd gast netwerk met bron-NAT toe
-label.add.isolated.network=Geisoleerd Netwerk Toevoegen
-label.additional.networks=Additioneele Netwerken
-label.add.ldap.account=Voeg LDAP account toe
-label.add.LDAP.account=voeg LDAP rekening toe
-label.add.list.name=ACL lijst naam
-label.add.load.balancer=Voeg Load Balancer toe
-label.add.more=Voeg meer toe
-label.add.netScaler.device=Voeg Netscaler apparaat toe
-label.add.network.acl.list=voeg netwerk ACL lijst toe
-label.add.network.ACL=Voeg netwerk ACL toe
-label.add.network.device=Voeg Netwerk Apparaat toe
-label.add.network.offering=Voeg netwerk aanbieding toe
-label.add.network=Voeg Netwerk toe
-label.add.new.F5=Voeg nieuwe F5 toe
-label.add.new.gateway=Voeg nieuwe gateway toe
-label.add.new.NetScaler=Voeg nieuwe Netscaler toe
-label.add.new.PA=Nieuwe Palo Alto toevoegen
-label.add.new.SRX=Voeg nieuwe SRX toe
-label.add.new.tier=Voeg nieuwe Tier toe
-label.add.nfs.secondary.staging.store=Secundaire Staging Opslag toevoegen
-label.add.NiciraNvp.device=Voeg NVP Controller toe
-label.add.NuageVsp.device=Voeg Nuage Virtualized Services Directory (VSD) toe
-label.add.OpenDaylight.device=OpenDaylight Controller toevoegen
-label.add.PA.device=Nieuw Palo Alto apparaat toevoegen
-label.add.physical.network=Voeg fysiek netwerk toe
-label.add.pod=Voeg Pod toe
-label.add.portable.ip.range=Porteerbare IP Range toevoegen
-label.add.port.forwarding.rule=Voeg port forwarding regel toe
-label.add.primary.storage=Voeg Primaire Opslag toe
-label.add.private.gateway=voeg private doorgang toe
-label.add.region=Voeg Regio toe
-label.add.resources=Resources toevoegen
-label.add.route=Route toevoegen
-label.add.rule=Regel toevoegen
-label.add.secondary.storage=Secundaire Opslag toevoegen
-label.add.security.group=Security Group toevoegen
-label.add.service.offering=Service Aanbieding toevoegen
-label.add.SRX.device=SRX apparaat toevoegen
-label.add.static.nat.rule=Statische NAT regel toevoegen
-label.add.static.route=Statische route toevoegen
-label.add.system.service.offering=Systeem Service Aanbieding toevoegen
-label.add.template=Template toevoegen
-label.add.to.group=Toevoegen aan groep
-label.add.ucs.manager=UCS Manager toevoegen
-label.add.userdata=Gebruikers gegevens
-label.add.user=Gebruiker toevoegen
-label.add.vlan=VLAN toevoegen
-label.add.vms.to.lb=Voeg VM(s) toe aan load balancer regel
-label.add.vms=VMs toevoegen
-label.add.VM.to.tier=Voeg VM toe aan tier
-label.add.vm=VM toevoegen
-label.add.vmware.datacenter=VMware datacenter toevoegen
-label.add.vnmc.device=VNMC apparaat toevoegen
-label.add.vnmc.provider=VNMC provider toevoegen
-label.add=Voeg toe
-label.add.volume=Volume toevoegen
-label.add.vpc.offering=VPC Aanbieding toevoegen
-label.add.vpc=VPC toevoegen
-label.add.vpn.customer.gateway=VPN Customer Gateway toevoegen
-label.add.VPN.gateway=VPN Gateway toevoegen
-label.add.vpn.user=VPN gebruiker toevoegen
-label.add.vxlan=VXLAN toevoegen
-label.add.zone=Zone toevoegen
-label.admin.accounts=Beheer Accounts
-label.admin=Beheerder
-label.advanced=Geavanceerd
-label.advanced.mode=Geavanceerde Modus
-label.advanced.search=Geavanceerd zoeken
-label.affinity=Affinity
-label.affinity.group=Affinity Groep
-label.affinity.groups=Affinity Groepen
-label.agent.password=Agent wachtwoord
-label.agent.port=Agent poort
-label.agent.state=agent status
-label.agent.username=Agent Gebruikersnaam
-label.agree=Accepteren
-label.alert=Alarm
-label.alert.archived=waarschuwing gearchiveerd
-label.alert.deleted=waarschuwing verwijderd
-label.alert.details=waarschuwing gegevens
-label.algorithm=Algoritme
-label.allocated=Gebruikt
-label.allocation.state=Verbruik Staat
-label.allow=Toestaan
-label.anti.affinity=Anti-affinity
-label.anti.affinity.group=Anti-affinity Groep
-label.anti.affinity.groups=Anti-affinity Groepen
-label.api.key=API Sleutel
-label.api.version=API versie
-label.apply=Uitvoeren
-label.app.name=CloudStack
-label.archive.alerts=Archiveer waarschuwingen
-label.archive=archief
-label.archive.events=Archiveer evenementen
-label.assigned.vms=toegewezen VMs
-label.assign.instance.another=Wijs instantie toe aan een andere Account
-label.assign=Toevoegen
-label.assign.to.load.balancer=Voeg instantie toe aan load balancer
-label.assign.vms=wijs VMs toe
-label.associated.network=Bijbehorend Netwerk
-label.associated.network.id=Bijbehorend Netwerk ID
-label.associated.profile=Bijbehorend Profiel
-label.associate.public.ip=Associeers Publiek IP
-label.attached.iso=Gekoppelde ISO
-label.author.email=Auteur e-mail
-label.author.name=Auteur naam
-label.autoscale=Automatisch Schalen
-label.autoscale.configuration.wizard=autoschaal configuratie toverdoos
-label.availability=Beschikbaarheid
-label.availability.zone=Beschikbaarheids-zone
-label.availabilityZone=beschikbaarheidszone
-label.available=Beschikbaar
-label.available.public.ips=Beschikbare Publieke IP adressen
-label.back=Terug
-label.bandwidth=Bandbreedte
-label.baremetal.dhcp.devices=Baremetal DHCP Apparten
-label.baremetal.dhcp.provider=Baremetal DHCP Provider
-label.baremetal.pxe.devices=Baremetal DHCP Apparaten
-label.baremetal.pxe.device=Voeg Baremetal PXE Apparaat toe
-label.baremetal.pxe.provider=Baremetal PXE Provider
-label.baremetal.rack.configuration=baremetal rek configuratie
-label.basic=Basis
-label.basic.mode=Basis Modus
-label.bigswitch.bcf.details=BigSwitch BCF gegevens
-label.bigswitch.bcf.nat=BigSwitch BCF NAT staat aan
-label.bigswitch.controller.address=BigSwitch BCF Controller adres
-label.blade.id=Blade ID
-label.blades=Blades
-label.bootable=Bootable
-label.broadcast.domain.range=Broadcast domain range
-label.broadcast.domain.type=Broadcast Domain Type
-label.broadcast.uri=Broadcast URI
-label.broadcasturi=broadcasturi
-label.broadcat.uri=broadcast URI
-label.brocade.vcs.address=Vcs switch adres
-label.brocade.vcs.details=Brocade Vcs switch gegevens
-label.by.account=Op Account
-label.by.alert.type=Op alarm type
-label.by.availability=Op Beschikbaarheid
-label.by.date.end=Op datum (eind)
-label.by.date.start=Op datum (start)
-label.by.domain=Op Domein
-label.by.end.date=Op Eind Datum
-label.by.event.type=Op gebeurtenis type
-label.by.level=Op Level
-label.by.pod=Op Pod
-label.by.role=Op Rol
-label.by.start.date=Op Start Datum
-label.by.state=Op Staat
-label.bytes.received=Bytes Ontvangen
-label.bytes.sent=Bytes Verzonden
-label.by.traffic.type=Op Verkeerstype
-label.by.type.id=Op Type ID
-label.by.type=Op Type
-label.by.zone=Op Zone
-label.cache.mode=Schrijf cache Type
-label.cancel=Annuleer
-label.capacity.bytes=Capaciteit in bytes
-label.capacity=Capaciteit
-label.capacity.iops=Capaciteit in IOPS
-label.certificate=Certificaat
-label.change.affinity=Wijzig Affinity
-label.change.ipaddress=Verander het IP adres voor NIC
-label.change.service.offering=Wijzig service aanbieding
-label.change.value=Wijzig waarde
-label.character=Karakter
-label.chassis=Chassis
-label.checksum=controlesom
-label.cidr.account=CIDRN of Account/Security Group
-label.cidr=CIDR
-label.cidr.list=Bron CIDR
-label.CIDR.list=CIDR lijst
-label.CIDR.of.destination.network=CIDR van bestemmingsnetwerk
-label.cisco.nexus1000v.ip.address=Nexus 1000v IP Adres
-label.cisco.nexus1000v.password=Nexus 1000v Wachtwoord
-label.cisco.nexus1000v.username=Nexus 1000v Gebruikersnaam
-label.ciscovnmc.resource.details=CiscoVNMC resource details
-label.clean.up=Opschonen
-label.clear.list=Schoon lijst op
-label.close=Sluiten
-label.cloud.console=Cloud Beheers Console
-label.cloud.managed=Cloud.com Managed
-label.cluster=Cluster
-label.cluster.name=Cluster Naam
-label.clusters=Clusters
-label.cluster.type=Cluster Type
-label.clvm=CLVM
-label.code=Code
-label.community=Community
-label.compute.and.storage=Compute en Opslag
-label.compute=Compute
-label.compute.offering=Compute aanbieding
-label.compute.offerings=Compute aanbiedingen
-label.configuration=Configuratie
-label.configure=Configureer
-label.configure.ldap=Configureer LDAP
-label.configure.network.ACLs=Configureer Netwerk ACLs
-label.configure.sticky.policy=configureer klevende regel
-label.configure.vpc=Configureer VPC
-label.confirmation=Bevestiging
-label.confirm.password=Bevestig wachtwoord
-label.congratulations=Gefeliciteerd\!
-label.conserve.mode=Conserveer modus
-label.console.proxy=Console proxy
-label.console.proxy.vm=Console Proxy VM
-label.continue.basic.install=Ga door met basis installatie
-label.continue=Ga door
-label.copying.iso=bezig ISO te kopi\u00ebren
-label.corrections.saved=Correcties opgeslagen
-label.counter=teller
-label.cpu.allocated=CPU gebruik
-label.cpu.allocated.for.VMs=CPU gebruikt voor VMs
-label.CPU.cap=CPU Cap
-label.cpu=CPU
-label.cpu.limits=CPU limieten
-label.cpu.mhz=CPU (in MHz)
-label.cpu.utilized=CPU Verbruik
-label.created=Aangemaakt
-label.created.by.system=Aangemaakt door systeem
-label.create.nfs.secondary.staging.storage=Creeer NFS staging secudaire opslag
-label.create.nfs.secondary.staging.store=Creeer NFS staging secudaire opslag
-label.create.project=Nieuw project
-label.create.ssh.key.pair=cre\u00eber een SSH sleutelpaar
-label.create.template=Nieuwe template
-label.create.VPN.connection=Nieuwe VPN connectie
-label.cross.zones=Over Zones
-label.custom=Aangepast
-label.custom.disk.iops=Aangepaste IOPS
-label.custom.disk.offering=schijf aanbieding op maat
-label.custom.disk.size=Vrije schijf grootte
-label.daily=Dagelijkse
-label.data.disk.offering=Data Schijf Aanbieding
-label.date=Datum
-label.day=dag
-label.day.of.month=Dag van de Maand
-label.day.of.week=Dag van de Week
-label.dc.name=DC Naam
-label.dead.peer.detection=Dead Peer detectie
-label.decline.invitation=Sla uitnodiging af
-label.dedicate.cluster=Cluster toewijden
-label.dedicated=Toegewijd
-label.dedicated.vlan.vni.ranges=Toegewijde VLAN/VNI Ranges
-label.dedicate.host=Host Toewijden
-label.dedicate.pod=Pod toewijden
-label.dedicate=Toewijden
-label.dedicate.vlan.vni.range=Toegewijde VLAN/VNI Range
-label.dedicate.zone=Zone toewijden
-label.default.egress.policy=Standaard Uitgaande policy
-label.default=Standaard
-label.default.use=Standaard Gebruik
-label.default.view=Standaard Weergave
-label.delete.acl.list=verwijder ACL lijst
-label.delete.affinity.group=Verwijder Affinity Groep
-label.delete.alerts=Verwijder waarschuwingen
-label.delete.baremetal.rack.configuration=verwijder baremetal rek configuratie
-label.delete.BigSwitchBcf=Verwijder BigSwitch BCF Controller
-label.delete.BrocadeVcs=Verwijder Brocade Vcs Switch
-label.delete.ciscoASA1000v=verwijder CiscoASA1000v
-label.delete.ciscovnmc.resource=CiscoVNMC resource verwijderen
-label.delete.events=Verwijder gebeurtenissen
-label.delete.F5=Verwijder F5
-label.delete.gateway=Verwijder gateway
-label.delete.internal.lb=verwijder interne LB
-label.delete.NetScaler=Verwijder NetScaler
-label.delete.NiciraNvp=Verwijder Nvp Controller
-label.delete.NuageVsp=Verwijder Nuage VSD
-label.delete.OpenDaylight.device=OpenDaylight Controller verwijderen
-label.delete.PA=Verwijder Palo Alto
-label.delete.portable.ip.range=Porteerbare IP Range verwijderen
-label.delete.profile=Profiel Verwijderen
-label.delete.project=Verwijder project
-label.delete.secondary.staging.store=Secundaire Staging Opslag verwijderen
-label.delete.SRX=Verwijder SRX
-label.delete.ucs.manager=Verwijder UCS Manager
-label.delete=Verwijder
-label.delete.VPN.connection=Verwijder VPN connectie
-label.delete.VPN.customer.gateway=Verwijder VPN Customer Gateway
-label.delete.VPN.gateway=Verwijder VPN Gateway
-label.delete.vpn.user=Verwijder VPN gebruiker
-label.deleting.failed=Verwijderen Mislukt
-label.deleting.processing=Verwijderen....
-label.deny=Weigeren
-label.deployment.planner=Deployment planner
-label.description=Beschrijving
-label.destination.physical.network.id=Bestemming fysiek netwerk ID
-label.destination.zone=Bestemmingszone
-label.destroy.router=Verwijder router
-label.destroy=Verwijder
-label.destroy.vm.graceperiod=Respijt periode verwijderde VM
-label.detaching.disk=Ontkoppelen Schijf
-label.details=Details
-label.device.id=Apparaat ID
-label.devices=Apparaten
-label.dhcp=DHCP
-label.DHCP.server.type=DHCP Server Type
-label.direct.attached.public.ip=direct verbonden publieke IP
-label.direct.ips=Shared Netwerk IPs
-label.disable.autoscale=Autoscale uitschakelen
-label.disabled=Uitgeschakeld
-label.disable.host=schakel host uit
-label.disable.network.offering=Netwerk Aanbieding Uitschakelen
-label.disable.provider=Provider uitschakelen
-label.disable.vnmc.provider=VNMC provider uitschakelen
-label.disable.vpc.offering=VPC aanbieding uitschakelen
-label.disable.vpn=VPN uitschakelen
-label.disabling.vpn.access=Uitschakelen van VPN Toegang
-label.disassociate.profile.blade=Ontkoppel Profiel van Blade
-label.disbale.vnmc.device=VNMC apparaat uitschakelen
-label.disk.allocated=Schijfruimte gealloceerd
-label.disk.bytes.read.rate=Lees Snelheid Schijf (BPS)
-label.disk.bytes.write.rate=Schrijf Snelheid Schijf (BPS)
-label.disk.iops.max=Max IOPS
-label.disk.iops.min=Min IOPS
-label.disk.iops.read.rate=Lees Snelheid Schijf (IOPS)
-label.disk.iops.total=IOPS Totaal
-label.disk.iops.write.rate=Schrijf snelheid Schijf (IOPS)
-label.disk.offering.details=schijfe offerte gegevens
-label.diskoffering=opslagaanbieding
-label.disk.offering=Schijf Aanbieding
-label.disk.provisioningtype=Provisioning type
-label.disk.read.bytes=Schijf lezen (Bytes)
-label.disk.read.io=Schijf Lezen (IO)
-label.disk.size.gb=Schijf Grootte (in GB)
-label.disk.size=Schijf Grootte
-label.disk.total=Schijf Totaal
-label.disk.volume=Schijf Volume
-label.disk.write.bytes=Schijf Schrijven (Bytes)
-label.disk.write.io=Schijf Schrijven (IO)
-label.display.name=publieke naam
-label.display.text=Weergavetekst
-label.distributedrouter=gedistribueerde router
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=DNS domein voor Gast Netwerken
-label.domain.admin=Domein Beheerder
-label.domain.details=domein gegevens
-label.domain=Domein
-label.domain.id=Domein ID
-label.domain.lower=domein
-label.domain.name=Domeinnaam
-label.domain.router=Domein router
-label.domain.suffix=DNS domein achtervoegsel (v.b., xyz.com)
-label.done=Klaar
-label.double.quotes.are.not.allowed=Aanhalingstekens zijn hier niet toegestaan
-label.download.progress=Download Voortgang
-label.drag.new.position=Sleep naar nieuwe positie
-label.duration.in.sec=duur (in sec)
-label.dynamically.scalable=Dynamisch Schaalbaar
-label.edit.acl.rule=wijzig ACL regel
-label.edit.affinity.group=Wijzig Affinity Groep
-label.edit.lb.rule=Wijzig LB regel
-label.edit.network.details=Wijzig netwerk details
-label.edit.project.details=Wijzig project details
-label.edit.region=Wijzig Regio
-label.edit.rule=wijzig regel
-label.edit.secondary.ips=Weizig secundaire IPs
-label.edit.tags=Wijzig tags
-label.edit.traffic.type=Wijzig traffic type
-label.edit.vpc=Wijzig VPC
-label.edit=Wijzig
-label.egress.default.policy=Standaard uitgaande policy
-label.egress.rules=Uitgaande regels
-label.egress.rule=Uitgaande regel
-label.elastic=Elastisch
-label.elastic.IP=Elastisch IP
-label.elastic.LB=Elastisch LB
-label.email=Email
-label.email.lower=email
-label.enable.autoscale=Autoscale inschakelen
-label.enable.host=schakel host in
-label.enable.network.offering=Netwerk Aanbieding Inschakelen
-label.enable.provider=Provider inschakelen
-label.enable.s3=S3-gebaseerde Secondary Storage inschakelen
-label.enable.swift=Swift inschakelen
-label.enable.vnmc.device=VNMC appraat inschakelen
-label.enable.vnmc.provider=VNMC provider inschakelen
-label.enable.vpc.offering=VPC aanbieding inschakelen
-label.enable.vpn=VPN inschakelen
-label.enabling.vpn.access=VPN toegang inschakelen
-label.enabling.vpn=VPN inschakelen
-label.end.IP=Eind IP
-label.endpoint=Endpoint
-label.endpoint.or.operation=Endpoint or Operation
-label.end.port=Eind Poort
-label.end.reserved.system.IP=Einde gereserveerde systeem IP
-label.end.vlan=Laatste VLAN
-label.end.vxlan=Laatste VXLAN
-label.enter.token=Voer token in
-label.error.code=Fout code
-label.error=Fout
-label.error.upper=FOUT
-label.ESP.encryption=ESP Encryptie
-label.ESP.hash=ESP Hash
-label.ESP.lifetime=ESP Lifetime (secondes)
-label.ESP.policy=ESP policy
-label.esx.host=ESX/ESXi Host
-label.event.archived=gebeurtenis gearchiveerd
-label.event.deleted=gebeurtenis verwijderd
-label.event=gebeurtenis
-label.every=elke
-label.example=Voorbeeld
-label.expunge=Ruim op
-label.external.link=Externe link
-label.extractable.lower=ophaalbaar
-label.extractable=Uitpakbaar
-label.f5.details=F5 details
-label.f5=F5
-label.failed=Mislukt
-label.featured=Voorgesteld
-label.fetch.latest=Haal laatste op
-label.filterBy=Filter per
-label.fingerprint=vinger afdruk
-label.firewall=Firewall
-label.firstname.lower=voornaam
-label.first.name=Voornaam
-label.format=Formaat
-label.format.lower=formaat
-label.friday=Vrijdag
-label.full.path=Volledig pad
-label.full=Volledig
-label.gateway=Gateway
-label.general.alerts=Algemene Waarschuwingen
-label.generating.url=Generen van URL
-label.globo.dns.configuration=GloboDNS configuratie
-label.globo.dns=GloboDNS
-label.gluster.volume=Volume
-label.go.step.2=Ga naar Stap 2
-label.go.step.3=Ga naar Stap 3
-label.go.step.4=Ga naar Stap 4
-label.go.step.5=Ga naar Stap 5
-label.gpu=CPU
-label.group.by.account=groepeer per account
-label.group.by.cluster=groepeer per cluster
-label.group.by.pod=groepeer per pod
-label.group.by.zone=groepeer per zone
-label.group=Groep
-label.group.optional=Groep (Optioneel)
-label.gslb.assigned.lb.more=Wijs meer load balancing toe
-label.gslb.assigned.lb=toegewezen load balancing
-label.gslb.delete=GSLB verwijderen
-label.gslb.details=GSLB details
-label.gslb.domain.name=GSLB Domein Naam
-label.gslb=GSLB
-label.gslb.lb.details=load balancing details
-label.gslb.lb.remove=verwijder load balancing van deze GSLB
-label.gslb.lb.rule=load balancing regel
-label.gslb.service=GSLB service
-label.gslb.service.private.ip=GSLB service Private IP
-label.gslb.service.public.ip=GSLB service Publiek IP
-label.gslb.servicetype=Service Type
-label.guest.cidr=Gast CIDR
-label.guest.end.ip=Gast eind IP
-label.guest=Gast
-label.guest.gateway=Gast Gateway
-label.guest.ip=Gast IP Adres
-label.guest.ip.range=Gast IP range
-label.guest.netmask=Gast Netmask
-label.guest.network.details=Gast netwerk details
-label.guest.networks=Gast netwerken
-label.guest.start.ip=Gast start IP
-label.guest.traffic=Gast verkeer
-label.guest.traffic.vswitch.name=vSwitch Gast Verkeer Naam
-label.guest.traffic.vswitch.type=vSwitch Gast Verkeer Type
-label.guest.type=Gast Type
-label.ha.enabled=HA ingeschakeld
-label.health.check.advanced.options=geavanceerde opties\:
-label.health.check.configurations.options=configuratie opties\:
-label.health.check=Health Check
-label.health.check.interval.in.sec=gezondheid check interval (in sec)
-label.health.check.message.desc=Uw load balancer zal automatisch gezondheidskeuringen op uw cloudstack instanties uitvoeren en allen verkeer routeren naar instanties die gezondheidskeuring doorstaan.
-label.health.check.wizard=gezondheids controle tovenaar
-label.healthy.threshold=gezonde marge
-label.help=Help
-label.hide.ingress.rule=Verberg Inkomende Regel
-label.hints=Tips
-label.home=Home
-label.host=Host
-label.host.MAC=Host MAC
-label.host.name=Hostnaam
-label.hosts=Hosts
-label.host.tag=machine kenteken
-label.host.tags=Host Tags
-label.hourly=Uurlijks
-label.hvm=HVM
-label.hypervisor.capabilities=Hypervisor mogelijkheden
-label.hypervisor=Hypervisor
-label.hypervisors=Hypervisors
-label.hypervisor.snapshot.reserve=Hypervisor Snapshot Reserve
-label.hypervisor.type=Hypervisor Type
-label.hypervisor.version=Hypervisor versie
-label.hyperv.traffic.label=HyperV verkeerslabel
-label.id=ID
-label.IKE.DH=IKE DH
-label.IKE.encryption=IKE Encryptie
-label.IKE.hash=IKE Hash
-label.IKE.lifetime=IKE lifetime (secondes)
-label.IKE.policy=IKE policy
-label.info=Info
-label.info.upper=INFORMATIE
-label.ingress.rule=Inkomende Regel
-label.initiated.by=Ge\u00efnitieerd door
-label.inside.port.profile=binnen poort profiel
-label.installWizard.addClusterIntro.subtitle=Wat is een cluster?
-label.installWizard.addClusterIntro.title=Nu\: Cluster toevoegen
-label.installWizard.addHostIntro.subtitle=Wat is een host?
-label.installWizard.addHostIntro.title=Nu\: Host toevoegen
-label.installWizard.addPodIntro.subtitle=Wat is een pod?
-label.installWizard.addPodIntro.title=Nu\: Pod toevoegen
-label.installWizard.addPrimaryStorageIntro.subtitle=Wat is primary storage?
-label.installWizard.addPrimaryStorageIntro.title=Nu\: Primaire opslag toevoegen
-label.installWizard.addSecondaryStorageIntro.subtitle=Wat is secundaire opslag?
-label.installWizard.addSecondaryStorageIntro.title=Nu\: Secundaire opslag toevoegen
-label.installWizard.addZoneIntro.subtitle=Wat is een zone?
-label.installWizard.addZoneIntro.title=Nu\: Zone toevoegen
-label.installWizard.addZone.title=Zone toevoegen
-label.installWizard.click.launch=Klik op de lanceer knop.
-label.installWizard.subtitle=Deze rondleiding gaat je helpen met het uitvoeren van de CloudStack&\#8482 installatie
-label.installWizard.title=Hallo en welkom bij CloudStack&\#8482
-label.instance=Instantie
-label.instance.limits=Instantie Limieten
-label.instance.name=Instantie Naam
-label.instance.port=instantie poort
-label.instance.scaled.up=Instantie is geschaald naar de gevraagde aanbieding
-label.instances=Instanties
-label.instanciate.template.associate.profile.blade=Initieer Template en verbind Profiel met Blade
-label.intermediate.certificate=Intermediair certificaat {0}
-label.internal.dns.1=Interne DNS 1
-label.internal.dns.2=Interne DNS 2
-label.internal.lb.details=interne LB gegevens
-label.internal.lb=interne LB
-label.internallbvm=interne LBVM
-label.internal.name=Interne naam
-label.interval.type=Interval Type
-label.introduction.to.cloudstack=CloudStack&\#8482 Introductie
-label.invalid.integer=Onjuiste Waarde
-label.invalid.number=Onjuist nummer
-label.invitations=Uitnodigingen
-label.invited.accounts=Uitgenodigde accounts
-label.invite.to=Nodig uit voor
-label.invite=Uitnodigen
-label.ip.address=IP Adres
-label.ipaddress=IP Adres
-label.ip.allocations=IP Allocaties
-label.ip=IP
-label.ip.limits=Publieke IP Limieten
-label.ip.or.fqdn=IP of FQDN
-label.ip.range=IP Range
-label.ip.ranges=IP Ranges
-label.IPsec.preshared.key=IPsec Preshared-Key
-label.ips=IPs
-label.ipv4.cidr=IPv4 CIDR
-label.ipv4.dns1=IPv4 DNS1
-label.ipv4.dns2=IPv4 DNS2
-label.ipv4.end.ip=IPv4 Eind IP
-label.ipv4.gateway=IPv4 Gateway
-label.ipv4.netmask=IPv4 Netmask
-label.ipv4.start.ip=IPv4 Begin IP
-label.ipv6.address=IPv6 IP Address
-label.ipv6.CIDR=IPv6 CIDR
-label.ipv6.dns1=IPv6 DNS1
-label.ipv6.dns2=IPv6 DNS2
-label.ipv6.end.ip=IPv6 Eind IP
-label.ipv6.gateway=IPv6 Gateway
-label.ipv6.start.ip=IPv6 Begin IP
-label.iscsi=iSCSI
-label.is.default=Is Standaard
-label.iso.boot=ISO Boot
-label.iso=ISO
-label.isolated.networks=Geisoleerde netwerken
-label.isolation.method=Isolatie methode
-label.isolation.mode=Isolatie Modus
-label.isolation.uri=Isolatie URI
-label.is.redundant.router=Redundant
-label.is.shared=Is Gedeeld
-label.is.system=Is Systeem
-label.item.listing=Items lijst
-label.japanese.keyboard=Japans toetsenbord
-label.keep=Bewaar
-label.keep.colon=bewaar\:
-label.keyboard.language=toetsenbord taal
-label.keyboard.type=Toetsenbord type
-label.key=Sleutel
-label.kvm.traffic.label=KVM verkeer label
-label.label=Label
-label.lang.arabic=Arabisch
-label.lang.brportugese=Braziliaans Portgees
-label.lang.catalan=Catalaans
-label.lang.chinese=Chinees (Simplified)
-label.lang.dutch=Nederlands (Nederlands)
-label.lang.english=Engels
-label.lang.french=Frans
-label.lang.german=Duits
-label.lang.hungarian=Hongaars
-label.lang.italian=Italiaans
-label.lang.japanese=Japans
-label.lang.korean=Koreans
-label.lang.norwegian=Noors
-label.lang.polish=Pools
-label.lang.russian=Russisch
-label.lang.spanish=Spaans
-label.last.disconnected=Laatse keer niet verbonden
-label.last.name=Achternaam
-label.lastname.lower=achternaam
-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.link.type=Type
-label.ldap.port=LDAP poort
-label.level=Level
-label.link.domain.to.ldap=link domein aan LDAP
-label.linklocal.ip=Link Local IP Adres
-label.load.balancer=Load Balancer
-label.load.balancer.type=loadbalancer type
-label.load.balancing=Load Balancing
-label.load.balancing.policies=Load balancing policies
-label.loading=Laden
-label.local.file=lokaal bestand
-label.local=Lokaal
-label.local.storage.enabled=Schakel locale opslag voor gebruiker VMs in
-label.local.storage.enabled.system.vms=zet lokale opslag voor systeem VMs aan
-label.local.storage=Lokale Opslag
-label.login=Login
-label.logout=Log uit
-label.lun=LUN
-label.LUN.number=LUN \#
-label.lxc.traffic.label=LXC verkeerslabel
-label.make.project.owner=Maak account project eigenaar
-label.make.redundant=Maak redundant
-label.manage=Beheer
-label.managed=beheerd(e)
-label.management=Beheer
-label.management.ips=Beheers IP Adressen
-label.management.server=Beheers Machine
-label.manage.resources=Beheer Resources
-label.max.cpus=Max. CPU cores
-label.max.guest.limit=Max. Instanties
-label.maximum=Maximaal
-label.max.instances=Max Instances
-label.max.memory=Max. geheugen (MiB)
-label.max.networks=Max. netwerken
-label.max.primary.storage=Max. primare opslag (GiB)
-label.max.public.ips=Max. publieke IPs
-label.max.secondary.storage=Max. secundaire opslag (GiB)
-label.max.snapshots=Max. snapshots
-label.max.templates=Max. templates
-label.max.vms=Max. VMs per gebruiker
-label.max.volumes=Max. volumes
-label.max.vpcs=Max. VPCs
-label.may.continue=U kunt nu verder gaan.
-label.md5.checksum=MD5 checksum
-label.memory.allocated=Geheugen Gealloceerd
-label.memory=Geheugen
-label.memory.limits=Geheugen limieten (MiB)
-label.memory.mb=Geheugen (in MB)
-label.memory.total=Totaal Geheugen
-label.memory.used=Geheugen gebruikt
-label.menu.accounts=Accounts
-label.menu.alerts=Waarschuwingen
-label.menu.all.accounts=Alle Accounts
-label.menu.all.instances=Alle Instanties
-label.menu.community.isos=Community ISOs
-label.menu.community.templates=Community Templates
-label.menu.configuration=Configuratie
-label.menu.dashboard=Dashboard
-label.menu.destroyed.instances=Vernietigde Instanties
-label.menu.disk.offerings=Schijf Aanbiedingen
-label.menu.domains=Domeinen
-label.menu.events=Gebeurtenissen
-label.menu.featured.isos=Voorgestelde ISOs
-label.menu.featured.templates=Voorgestelde Templates
-label.menu.global.settings=Algemene Instellingen
-label.menu.infrastructure=Infrastructuur
-label.menu.instances=Instanties
-label.menu.ipaddresses=IP Adressen
-label.menu.isos=ISOs
-label.menu.my.accounts=Mijn Accounts
-label.menu.my.instances=Mijn Instanties
-label.menu.my.isos=Mijn ISOs
-label.menu.my.templates=Mijn Templates
-label.menu.network=Netwerk
-label.menu.network.offerings=Netwerk Aanbiedingen
-label.menu.physical.resources=Fysieke Resources
-label.menu.regions=Regio\\'s
-label.menu.running.instances=Draaiende Instanties
-label.menu.security.groups=Security Groups
-label.menu.service.offerings=Service Aanbiedingen
-label.menu.snapshots=Snapshots
-label.menu.sshkeypair=SSH sleutelpaar
-label.menu.stopped.instances=Uitgeschakelde Instanties
-label.menu.storage=Opslag
-label.menu.system.service.offerings=Systeem Aanbiedingen
-label.menu.system=Systeem
-label.menu.system.vms=Systeem VMs
-label.menu.templates=Templates
-label.menu.virtual.appliances=Virtueele Appliances
-label.menu.virtual.resources=Virtuele Resources
-label.menu.volumes=Volumes
-label.menu.vpc.offerings=VPC Aanbiedingen
-label.metrics.allocated=Gebruikt
-label.metrics.clusters=Clusters
-label.metrics.cpu.allocated=CPU allocatie
-label.metrics.cpu.max.dev=afwijking
-label.metrics.cpu.total=totaal
-label.metrics.cpu.usage=CPU gebruik
-label.metrics.cpu.used.avg=Gebruikt
-label.metrics.disk.allocated=Gebruikt
-label.metrics.disk.iops.total=IOPS
-label.metrics.disk.read=lees
-label.metrics.disk=schijf
-label.metrics.disk.size=Grootte
-label.metrics.disk.storagetype=Type
-label.metrics.disk.total=totaal
-label.metrics.disk.unallocated=niet-toegekend
-label.metrics.disk.usage=schijf gebruik
-label.metrics.disk.used=Gebruikt
-label.metrics.disk.write=schrijf
-label.metrics.hosts=Hosts
-label.metrics=meet-gegevens
-label.metrics.memory.allocated=geheugen allocatie
-label.metrics.memory.max.dev=afwijking
-label.metrics.memory.total=totaal
-label.metrics.memory.usage=geheugen gebruik
-label.metrics.memory.used.avg=Gebruikt
-label.metrics.name=Naam
-label.metrics.network.read=lees
-label.metrics.network.usage=netwerk gebruik
-label.metrics.network.write=schrijf
-label.metrics.num.cpu.cores=kernen
-label.metrics.property=eigenschap
-label.metrics.scope=Scope
-label.metrics.state=Staat
-label.metrics.storagepool=opslag poel
-label.metrics.vm.name=VM naam
-label.migrate.instance.to.host=Migreer instantie naar andere host
-label.migrate.instance.to=Migreer instantie naar
-label.migrate.instance.to.ps=Migreer instantie naar andere primaire opslag
-label.migrate.lb.vm=Migreer LB VM
-label.migrate.router.to=Migreer Router naar
-label.migrate.systemvm.to=Migreer Systeem VM naar
-label.migrate.to.host=Migreer naar host
-label.migrate.to.storage=Migreer naar opslag
-label.migrate.volume=Migreer volume
-label.migrate.volume.to.primary.storage=Migreer volume naar andere primaire opslag
-label.minimum=Minimum
-label.min.instances=Min Instances
-label.min.past.the.hr=min na het uur
-label.minute.past.hour=Minuten na het uur
-label.minutes.past.hour=minu(u)t(en) in het laatste uur
-label.mode=Modus
-label.monday=Maandag
-label.monthly=Maandelijks
-label.more.templates=Meer Templates
-label.move.down.row=Verplaats \u00e9\u00e9n regel naar beneden
-label.move.to.bottom=Verplaats naar beneden
-label.move.to.top=Verplaats naar boven
-label.move.up.row=Verplaats \u00e9\u00e9n regel naar boven
-label.my.account=Mijn Account
-label.my.network=Mijn netwerk
-label.my.templates=Mijn templates
-label.name.lower=naam
-label.name=Naam
-label.name.optional=Naam (Optioneel)
-label.na=N/A
-label.nat.port.range=NAT Poort Range
-label.netmask=Netmask
-label.netscaler.details=NetScaler details
-label.netScaler=NetScaler
-label.network.ACL=Netwerk ACL
-label.network.ACLs=Netwerk ACLs
-label.network.ACL.total=Netwerk ACL Totaal
-label.network.addVM=Voeg netwerk toe aan VM
-label.network.cidr=Network CIDR
-label.network.desc=Netwerk  Beschr.
-label.network.details=netwerk details
-label.network.device=Netwerk Apparaat
-label.network.device.type=Netwerk Apparaat Type
-label.network.domain=Netwerk Domein
-label.network.domain.text=Netwerk Domein
-label.network.id=Netwerk ID
-label.networking.and.security=Netwerken en beveiliging
-label.network.label.display.for.blank.value=Gebruik standaard gateway
-label.network.limits=Netwerk limieten
-label.network.name=Netwerk Naam
-label.network=Netwerk
-label.network.offering.details=netwerk offerte gegevens
-label.network.offering.display.text=Netwerk Aanbieding Weergave Tekst
-label.network.offering.id=Netwerk Aanbieding ID
-label.network.offering.name=Netwerk Aanbieding Naam
-label.network.offering=Netwerk Aanbieding
-label.network.rate.megabytes=Netwerk Snelheid (MB/s)
-label.network.rate=Netwerk Snelheid (Mb/s)
-label.network.read=Netwerk gelezen
-label.network.service.providers=Netwerk Service Aanbieders
-label.networks=Netwerken
-label.network.type=Netwerk Type
-label.network.write=Netwerk geschreven
-label.new=Nieuw
-label.new.password=Nieuw wachtwoord
-label.new.project=Nieuw Project
-label.new.ssh.key.pair=nieuw SSH sleutelpaar
-label.new.vm=Nieuwe VM
-label.next=Volgende
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nfs.server=NFS Server
-label.nfs.storage=NFS Opslag
-label.nic.adapter.type=NIC adapter type
-label.nicira.controller.address=Controller Adres
-label.nicira.l2gatewayserviceuuid=L2 gateway service UUID
-label.nicira.l3gatewayserviceuuid=L3 Gateway Service Uuid
-label.nicira.nvp.details=Nicira NVP details
-label.nicira.transportzoneuuid=Transport Zone Uuid
-label.nics=NICs
-label.no.actions=Geen Beschikbare Acties
-label.no.alerts=Geen Recente Waarschuwingen
-label.no.data=Geen data om weer te geven
-label.no.errors=Geen Recente Fouten
-label.no.grouping=(Geen groepering)
-label.no.isos=Geen beschikbare ISOs
-label.no.items=Geen Beschikbare Items
-label.no=Nee
-label.none=Geen
-label.no.security.groups=Geen Beschikbare Security Groups
-label.not.found=Niet gevonden
-label.no.thanks=Nee bedankt
-label.notifications=Notificaties
-label.number.of.clusters=Aantal Clusters
-label.number.of.cpu.sockets=Het aantal CPU sockets
-label.number.of.hosts=Aantal Hosts
-label.number.of.pods=Aantal Pods
-label.number.of.system.vms=Aantal Systeem VMs
-label.number.of.virtual.routers=Aantal Virtual Routers
-label.number.of.zones=Aantal Zones
-label.num.cpu.cores=Aantal CPU Cores
-label.numretries=Keren opnieuw geprorbeerd
-label.ocfs2=OCFS2
-label.offer.ha=HA aanbieden
-label.of.month=van de maand
-label.ok=OK
-label.opendaylight.controllerdetail=OpenDaylight Controller Details
-label.opendaylight.controller=OpenDaylight Controller
-label.opendaylight.controllers=OpenDaylight Controllers
-label.openDaylight=OpenDaylight
-label.operator=operator
-label.optional=Optioneel
-label.order=Volgorde
-label.os.preference=OS Voorkeur
-label.os.type=OS Type
-label.other=anders
-label.outofbandmanagement.action=Actie
-label.outofbandmanagement.password=Wachtwoord
-label.outofbandmanagement.port=Poort
-label.outofbandmanagement.username=Gebruikersnaam
-label.override.guest.traffic=Overschrijf Gast Verkeer
-label.override.public.traffic=Overschrijf Publiek Verkeer
-label.ovm3.cluster=inheems clustering
-label.ovm3.pool=inheemse pooling
-label.ovm3.traffic.label=OVM3 verkeer etiket
-label.ovm3.vip=Master VIP IP ip
-label.ovm.traffic.label=OVM verkeerslabel
-label.ovs=OVS
-label.owned.public.ips=Publieke IP Adressen in beheer
-label.owner.account=Account Eigenaar
-label.owner.domain=Domein Eigenaar
-label.palo.alto.details=Palo Alto details
-label.PA.log.profile=Palo Alto Log Profiel
-label.PA=Palo Alto
-label.parent.domain=Bovenliggend Domein
-label.passive=passief
-label.password.enabled=Wachtwoord Ingeschakeld
-label.password.lower=wachtwoord
-label.password.reset.confirm=Het wachtwoord is gereset naar
-label.password=Wachtwoord
-label.path=Pad
-label.PA.threat.profile=Palo Alto Threat Profiel
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.persistent=Persistent
-label.physical.network=Fysiek Netwerk
-label.physical.network.ID=Fysiek netwerk ID
-label.physical.network.name=fysieke netwerk naam
-label.PING.CIFS.password=PING CIFS wachtwoord
-label.PING.CIFS.username=PING CIFS gebruikersnaam
-label.PING.dir=PING Directory
-label.ping.path=ping pad
-label.PING.storage.IP=PING opslag IP
-label.planner.mode=Planner modus
-label.please.complete.the.following.fields=vul alstublieft de volgende velden volledig af
-label.please.specify.netscaler.info=Geef hier informatie van de Netscaler op
-label.please.wait=Een ogenblik geduld a.u.b.
-label.plugin.details=Plugin details
-label.plugins=Plugins
-label.pod.dedicated=Pod toegewijd
-label.pod.name=Pod Naam
-label.pod=Pod
-label.pods=Pods
-label.polling.interval.sec=Polling Interval (in sec)
-label.portable.ip.range.details=Porteerbare IP Range details
-label.portable.ip.ranges=Porteerbare IP Ranges
-label.portable.ips=Porteerbare IPs
-label.portable.ip=verplaatsbaar IP
-label.port.forwarding.policies=Port forwarding policies
-label.port.forwarding=Port Forwarding
-label.port=Poort
-label.port.range=Port Range
-label.PreSetup=PreSetup
-label.previous=Vorige
-label.prev=Terug
-label.primary.allocated=Primaire Opslag Gealloceerd
-label.primary.network=Primair Netwerk
-label.primary.storage.count=Primaire Opslag Pools
-label.primary.storage.limits=Primaire Opslag limieten (GiB)
-label.primary.storage=Primaire Opslag
-label.primary.used=Primaire Opslag Gebruikt
-label.private.Gateway=Priv\u00e9 Gateway
-label.private.interface=Priv\u00e9 Interface
-label.private.ip=Priv\u00e9 IP Adres
-label.private.ip.range=Priv\u00e9 IP Range
-label.private.ips=Priv\u00e9 IP adressen
-label.privatekey=PKCS\#8 Private Key
-label.private.key=priv\u00e9 sleutel
-label.private.network=Priv\u00e9 Netwerk
-label.private.port=Priv\u00e9 Port
-label.private.zone=Priv\u00e9 Zone
-label.profile=Profiel
-label.project.dashboard=Project Dashboard
-label.project.id=Project ID
-label.project.invite=Nodig uit voor project
-label.project.name=Project naam
-label.project=Project
-label.projects=Projecten
-label.project.view=Project Weergave
-label.protocol.number=protocol nummer
-label.protocol=Protocol
-label.provider=Provider
-label.providers=Providers
-label.public.interface=Publieke Interface
-label.public.ip=Publiek IP Adres
-label.public.ips=Publieke IP Adressen
-label.public.key=publieke sleutel
-label.public.lb=publieke LB
-label.public.load.balancer.provider=Publieke Load Balancer Provider
-label.public.network=Publiek netwerk
-label.public.port=Publieke Poort
-label.public=Publiek
-label.public.traffic=Publiek verkeer
-label.public.traffic.vswitch.name=vSwitch Publiek Verkeer Naam
-label.public.traffic.vswitch.type=vSwitch Publiek Verkeer Type
-label.public.zone=Publieke Zone
-label.purpose=Doel
-label.Pxe.server.type=PXE Server Type
-label.qos.type=QoS Type
-label.quickview=Sneloverzicht
-label.quiesce.vm=Quiesce VM
-label.quiet.time.sec=Quiet Time (in sec)
-label.quota.add.credits=voeg krediet toe
-label.quota.balance=balans
-label.quota.configuration=quota configuratie
-label.quota.configure=configureer quota
-label.quota.credit=krediet
-label.quota.credits=tegoeden
-label.quota.date=Datum
-label.quota.dates=bijwerken data
-label.quota.description=quota beschrijving
-label.quota.email.body=inhoud
-label.quota.email.lastupdated=laatste wijziging
-label.quota.email.subject=onderwerp
-label.quota.email.template=e-mail sjabloon
-label.quota.enddate=eind datum
-label.quota.endquota=eind quota
-label.quota.enforcequota=dwing quota af
-label.quota.fullsummary=Alle Accounts
-label.quota.minbalance=min balans
-label.quota.remove=verwijder quota
-label.quota.startdate=start datum
-label.quota.startquota=start quota
-label.quota.statement.balance=quota balans
-label.quota.statement.bydates=verklaring
-label.quota.statement.quota=quota gebruik
-label.quota.statement.tariff=quota tarief
-label.quota.statement=verklaring
-label.quota.state=Staat
-label.quota.summary=samenvatting
-label.quota.tariff.edit=wijzig tarief
-label.quota.tariff.effectivedate=effectieve datum
-label.quota.tariff=tarief
-label.quota.tariff.value=tarief waarde
-label.quota.total=totaal
-label.quota.totalusage=totaal gebruik
-label.quota.type.name=gebruik type
-label.quota.type.unit=gebruik eenheid
-label.quota.usage=quota verbruik
-label.quota.value=quota waarde
-label.rbd.id=Cephx gebruiker
-label.rbd.monitor=Ceph monitor
-label.rbd.pool=Ceph pool
-label.rbd=RBD
-label.rbd.secret=Cephx secret
-label.reboot=Reboot
-label.recent.errors=Recente Fouten
-label.recover.vm=Herstel VM
-label.redundant.router.capability=Redundante router mogelijkheden
-label.redundant.router=Redundante Router
-label.redundant.state=Redundante staat
-label.redundant.vpc=Redundante VPC
-label.refresh.blades=Ververs Blades
-label.refresh=Ververs
-label.region.details=regio gegevens
-label.regionlevelvpc=Region Level VPC
-label.region=Regio
-label.reinstall.vm=Herinstalleer VM
-label.related=Samenhangend
-label.release.account.lowercase=ontkoppel van account
-label.release.account=Ontkoppel van Account
-label.release.dedicated.cluster=Toegewijd Cluster loskoppelen
-label.release.dedicated.host=Toegewijde Host ontkoppelen
-label.release.dedicated.pod=Toegewijde Pod loskoppelen
-label.release.dedicated.vlan.range=Toegewijde VLAN range ontkoppelen
-label.release.dedicated.zone=Toegewijde zone ontkoppelen
-label.remind.later=Herinner me later
-label.remove.ACL=Verwijder ACL
-label.remove.egress.rule=Verwijder uitgaande regel
-label.remove.from.load.balancer=Verwijder Instantie van load balancer
-label.remove.ingress.rule=Verwijder inkomende regel
-label.remove.ip.range=Verwijder IP range
-label.remove.ldap=Verwijder LDAP
-label.remove.network.offering=Netwerk Aanbieding Verwijderen
-label.remove.pf=Verwijder port forwarding regel
-label.remove.project.account=Verwijder account van project
-label.remove.region=Verwijder Regio
-label.remove.rule=Verwijder regel
-label.remove.ssh.key.pair=verwijder SSH sleutelpaar
-label.remove.static.nat.rule=Verwijder static NAT regel
-label.remove.static.route=Verwijder statische route
-label.remove.this.physical.network=verwijder dit fysieke netwerk
-label.remove.tier=Verwijder tier
-label.remove.vm.from.lb=Verwijder VM van load balancer regel
-label.remove.vm.load.balancer=verwijder VM uit de load balancer
-label.remove.vmware.datacenter=VMware datacenter verwijderen
-label.remove.vpc.offering=VPC aanbieding verwijderen
-label.remove.vpc=verwijder VPC
-label.removing.user=Verwijderen Gebruiker
-label.removing=Verwijderen
-label.reource.id=Verbruik ID
-label.replace.acl.list=vervang ACL lijst
-label.replace.acl=vervang ACL
-label.required=Vereist
-label.requires.upgrade=Upgrade Benodigd
-label.reserved.ip.range=Gereserveerde IP Range
-label.reserved.system.gateway=Gereseveerde systeem gateway
-label.reserved.system.ip=Gereserveerd Systeem IP
-label.reserved.system.netmask=Gereserveerd systeem netmask
-label.reset.ssh.key.pair.on.vm=zet SSH sleutelpaar terug op VM
-label.reset.ssh.key.pair=zet SSH sleutelpaar terug
-label.resetVM=Reset VM
-label.reset.VPN.connection=Reset VPN verbinding
-label.resize.new.offering.id=Nieuwe Aanbieding
-label.resize.new.size=Nieuwe grootte (GB)
-label.resize.shrink.ok=Verklein OK
-label.resource.limit.exceeded=resource limiet overschreden
-label.resource.limits=Verbruikslimieten
-label.resource.name=Verbruik Naam
-label.resource.state=Verbruik staat
-label.resources=Verbruiken
-label.resource=Verbruik
-label.response.timeout.in.sec=antwoord wachttijd (in sec)
-label.restart.network=Herstart netwerk
-label.restart.required=Herstart benodigd
-label.restart.vpc=herstart VPC
-label.restore=Herstel
-label.retry.interval=Wachttijd voor nieuwe poging
-label.review=Beoordeel
-label.revoke.project.invite=Trek uitnodiging in
-label.role=Rol
-label.root.certificate=root certificaat
-label.root.disk.controller=Root schijf controller
-label.root.disk.offering=Root Schijf Aanbieding
-label.router.vm.scaled.up=Router VM Omhoog  Geschaald
-label.routing.host=routeer machine
-label.routing=Routing
-label.rule.number=Regel Nummer
-label.rules=Regels
-label.running.vms=Draaiende VMs
-label.s3.access_key=Toegangssleutel
-label.s3.bucket=Bucket
-label.s3.connection_timeout=Connectie Timeout
-label.s3.endpoint=Endpoint
-label.s3.max_error_retry=Max. opnieuw proberen na Fout
-label.s3.nfs.path=S3 NFS Pad
-label.s3.nfs.server=S3 NFS Server
-label.s3.secret_key=Geheime sleutel
-label.s3.socket_timeout=Socket Timeout
-label.s3.use_https=Gebruik HTTPS
-label.saml.enable=authoriseer SAML SSO
-label.saml.entity=identificeer leverancier
-label.saturday=Zaterdag
-label.save.and.continue=Opslaan en verder gaan
-label.save.changes=Bewaar wijzigingen
-label.save=Opslaan
-label.saving.processing=Opslaan....
-label.scaledown.policy=verklein beleid
-label.scale.up.policy=schaal op beleid
-label.scaleup.policy=vergoot beleid
-label.scope=Scope
-label.search=Zoeken
-label.secondary.ips=Secundaire IPs
-label.secondary.isolated.vlan.id=Secundair Geisoleerd VLAN ID
-label.secondary.staging.store.details=Secundaire Staging Opslag details
-label.secondary.staging.store=Secundaire Staging Opslag
-label.secondary.storage.count=Secundaire Opslag Pools
-label.secondary.storage.details=Secundaire Opslag details
-label.secondary.storage.limits=Secundaire Opslag limieten (GiB)
-label.secondary.storage=Secundaire Opslag
-label.secondary.storage.vm=Secundaire Opslag VM
-label.secondary.used=Secundaire Opslag Gebruikt
-label.secret.key=Geheime sleutel
-label.security.group.name=Security Group Naam
-label.security.group=Security Group
-label.security.groups.enabled=Security Groups Ingeschakeld
-label.security.groups=Security Groups
-label.select.a.template=Selecteer een template
-label.select.a.zone=Selecteer een zone
-label.select.instance=Selecteer een instance
-label.select.instance.to.attach.volume.to=Selecteer een instance om het volume aan te koppelen
-label.select.iso.or.template=Selecteer een ISO of template
-label.select.offering=Selecteer Aanbieding
-label.select.project=Selecteer Project
-label.select.region=Select regio
-label.select=Selecteer
-label.select.template=Selecteer Template
-label.select.tier=Selecteer Tier
-label.select-view=Selecteer Weergave
-label.select.vm.for.static.nat=Selecteer VM voor static NAT
-label.sent=Verstuurd
-label.server=Server
-label.service.capabilities=Service Mogelijkheden
-label.service.offering.details=dienst offerte gegevens
-label.service.offering=Service Aanbieding
-label.services=Diensten
-label.service.state=Service Status
-label.session.expired=Sessie Verlopen
-label.set.default.NIC=Stel standaard NIC in
-label.settings=Instellingen
-label.setup=Instellen
-label.setup.network=cre\u00eber netwerk
-label.setup.zone=cre\u00eber zone
-label.set.up.zone.type=Stel zone type in
-label.shared=Gedeeld
-label.SharedMountPoint=SharedMountPoint
-label.show.advanced.settings=Geavaceerde instellingen weergeven
-label.show.ingress.rule=Toon Inkomende Regel
-label.shutdown.provider=Schakel provider uit
-label.simplified.chinese.keyboard=versimpeld Chinees toetsenbord
-label.site.to.site.VPN=Site-to-site VPN
-label.size=Grootte
-label.skip.guide=Ik heb CloudStack al eerder gebruikt, sla deze stap over
-label.smb.domain=SMB Domein
-label.smb.password=SMB Wachtwoord
-label.smb.username=SMB Gebruikersnaam
-label.snapshot.limits=Snapshot Limieten
-label.snapshot.name=Snapshot Naam
-label.snapshot.schedule=cre\u00eber herhaalde momentopname
-label.snapshot=Snapshot
-label.snapshot.s=Snapshots
-label.snapshots=Snapshots
-label.SNMP.community=SNMP Community
-label.SNMP.port=SNMP Poort
-label.sockets=CPU Sockets
-label.source.ip.address=bron IP adres
-label.source.nat=Source NAT
-label.source.nat.supported=SourceNAT ondersteund
-label.source.port=bron poort
-label.specify.IP.ranges=Specificeer IP ranges
-label.specify.vlan=Specificeer VLAN
-label.specify.vxlan=Specificeer VXLAN
-label.SR.name=SR Name-Label
-label.srx.details=SRX details
-label.srx=SRX
-label.ssh.key.pair.details=SSH sleutelpaar gegevens
-label.ssh.key.pair=SSH sleutelpaar
-label.ssh.key.pairs=SSH sleutel paren
-label.standard.us.keyboard=standaard (Amerikaans-US) toetsenbord
-label.start.IP=Start IP
-label.start.lb.vm=Start LB VM
-label.start.port=Start Poort
-label.start.reserved.system.IP=Start gereseveerd systeem IP
-label.start.vlan=start VLAN
-label.start.vxlan=start VXLAN
-label.state=Staat
-label.static.nat.enabled=Static NAT Ingeschakeld
-label.static.nat=Static NAT
-label.static.nat.to=Static NAT naar
-label.static.nat.vm.details=Static NAT VM Details
-label.static.routes=statische routes
-label.statistics=Statistieken
-label.status=Status
-label.step.1=Stap 1
-label.step.1.title=Stap 1\: <strong>Selecteer een Template</strong>
-label.step.2=Stap 2
-label.step.2.title=Stap 2\: <strong>Service Aanbieding</strong>
-label.step.3=Stap 3
-label.step.3.title=Stap 4\: <strong id\="step3_label">Selecteer een Schijf Aanbieding</strong>
-label.step.4=Stap 4
-label.step.4.title=Stap 4\: <strong>Netwerk</strong>
-label.step.5=Stap 5
-label.step.5.title=Stap 5\: <strong>Beoordeel</strong>
-label.stickiness.method=kleef methode
-label.stickiness=Stickiness
-label.sticky.cookie-name=Cookie naam
-label.sticky.domain=Domein
-label.sticky.expire=Verloopt
-label.sticky.holdtime=Wacht tijd
-label.sticky.indirect=Indirect
-label.sticky.length=Lengte
-label.sticky.mode=Modus
-label.sticky.name=klevende naam
-label.sticky.nocache=Geen cache
-label.sticky.postonly=Alleen Post
-label.sticky.prefix=Prefix
-label.sticky.request-learn=Request learn
-label.sticky.tablesize=Tabel grootte
-label.stop.lb.vm=Stop LB VM
-label.stopped.vms=Uitgeschakelde VMs
-label.stop=Stop
-label.storage=Opslag
-label.storage.pool=opslag poel
-label.storage.tags=Opslag Tags
-label.storage.traffic=Opslag Verkeer
-label.storage.type=Opslag Type
-label.subdomain.access=Subdomein Toegang
-label.submitted.by=[Verstuurd door\: <span id\="submitted_by"></span>]
-label.submit=Verstuur
-label.succeeded=Geslaagd
-label.sunday=Zondag
-label.super.cidr.for.guest.networks=Super CIDR voor Gast Netwerken
-label.supported.services=Geondersteunde Diensten
-label.supported.source.NAT.type=Ondersteunde Source NAT type
-label.supportsstrechedl2subnet=Ondersteund Streched L2 Subnet
-label.suspend.project=Pauzeer Project
-label.switch.type=Switch Type
-label.system.capacity=Systeem Capaciteit
-label.system.offering.for.router=Systeem Aanbieding voor Router
-label.system.offering=Systeem Aanbieding
-label.system.service.offering.details=systeem dienst offerte gegevens\:
-label.system.service.offering=Systeem Service Aanbieding
-label.system.vm.details=Systeem VM details
-label.system.vm.scaled.up=Systeem VM omhoog geschaald
-label.system.vms=Systeem VMs
-label.system.vm=Systeem VM
-label.system.vm.type=Systeem VM type
-label.system.wide.capacity=Systeembreede capaciteit
-label.tagged=Tagged
-label.tag.key=Tag Sleutel
-label.tags=Tags
-label.tag.value=Tag Waarde
-label.target.iqn=Doel IQN
-label.task.completed=Taak uitgevoerd
-label.template.limits=Template Limieten
-label.template=Template
-label.TFTP.dir=TFTP Directory
-label.tftp.root.directory=TFTP root directory
-label.theme.default=Standaard Thema
-label.theme.grey=Aangepast - Grijs
-label.theme.lightblue=Aangepast - Licht Blauw
-label.threshold=marge
-label.thursday=Donderdag
-label.tier.details=Tier details
-label.tier=Tier
-label.time.colon=tijd\:
-label.timeout.in.second = timeout (seconden)
-label.timeout=Timeout
-label.time=Tijd
-label.timezone.colon=tijdszone\:
-label.time.zone=Tijdzone
-label.timezone=Tijdzone
-label.token=Token
-label.total.cpu=Totaal CPU
-label.total.CPU=Totaal CPU
-label.total.hosts=Totaal Hosts
-label.total.memory=Totaal Geheugen
-label.total.of.ip=totaal aantal IP adressen
-label.total.of.vm=Totaal VMs
-label.total.storage=Totaal Opslag
-label.total.virtual.routers=Totaal Virtual Routers
-label.total.virtual.routers.upgrade=Totaal Virtueele Routers die een ugrade nodig hebben
-label.total.vms=Totaal VMs
-label.traffic.label=Verkeerslabel
-label.traffic.types=Verkeer Types
-label.traffic.type=Verkeer Type
-label.tuesday=Dinsdag
-label.type.id=Type ID
-label.type.lower=type
-label.type=Type
-label.ucs=UCS
-label.uk.keyboard=Brits toetsenbord
-label.unavailable=Niet beschikbaar
-label.unhealthy.threshold=ongezonde marge
-label.unlimited=Ongelimiteerd
-label.untagged=Untagged
-label.update.project.resources=Update project verbruik
-label.update.ssl.cert= SSL Certificaat
-label.update.ssl= SSL Certificaat
-label.updating=Bezig met updaten
-label.upgrade.required=Upgrade is benodigd
-label.upgrade.router.newer.template=Upgrade Router om nieuwe Template te gebruiken
-label.upload.from.local=laad vanuit lokaal
-label.upload.template.from.local=laad sjabloon vanuit lokaal
-label.upload=Upload
-label.upload.volume.from.local=laad volume vanuit lokaal
-label.upload.volume.from.url=laad volume vanuit een webadres
-label.upload.volume=Upload Volume
-label.url=URL
-label.usage.interface=Verbruik Interface
-label.usage.sanity.result=gebruiks zingevings resultaat
-label.usage.server=gebruik server
-label.usage.type=gebruik type
-label.usage.unit=eenheid
-label.used=Gebruikt
-label.user.data=Gebruiker Data
-label.user.details=gebruikers gegevens
-label.user=Gebruiker
-label.username=Gebruikersnaam
-label.username.lower=gebruikersnaam
-label.users=Gebruikers
-label.user.vm=gebruiker VM
-label.use.vm.ip=Gebruik VM IP\:
-label.use.vm.ips=Gebruik VM IPs
-label.value=Waarde
-label.vcdcname=vCenter DC naam
-label.vcenter.cluster=vCenter Cluster
-label.vcenter.datacenter=vCenter Datacenter
-label.vcenter.datastore=VCenter Datastore
-label.vcenter.host=vCenter Host
-label.vcenter.password=vCenter Wachtwoord
-label.vcenter.username=vCenter Gebruikersnaam
-label.vcenter=vcenter
-label.vcipaddress=vCenter IP Adres
-label.version=Versie
-label.vgpu.max.resolution=Maximale resolutie
-label.vgpu.max.vgpu.per.gpu=vGPUs per GPU
-label.vgpu.remaining.capacity=Overgebleven capaciteit
-label.vgpu.type=vCPU type
-label.vgpu=VGPU
-label.vgpu.video.ram=Video RAM
-label.view.all=Toon alle
-label.view.console=Toon console
-label.viewing=Weergeven
-label.view.more=Toon meer
-label.view.secondary.ips=Toon secundaire IPs
-label.view=Toon
-label.virtual.appliance.details=Virtual applicance details
-label.virtual.appliances=Virtueele Appliances
-label.virtual.appliance=Virtuele Appliance
-label.virtual.machines=virtuele machines
-label.virtual.machine=virtuele machine
-label.virtual.networking=Virtual Networking
-label.virtual.network=Virtueel Netwerk
-label.virtual.routers.group.account=Groepeer Virtuele Routers op account
-label.virtual.routers.group.cluster=Groepeer Virtuele Routers op cluster
-label.virtual.routers.group.pod=Groepeer Virtuele Routers op pod
-label.virtual.routers.group.zone=Groepeer Virtuele Routers op zone
-label.virtual.routers=Virtuele Routers
-label.virtual.router=Virtuele Router
-label.vlan.id=VLAN/VNI ID
-label.vlan.only=VLAN
-label.vlan.range.details=VLAN Range details
-label.vlan.ranges=VLAN Range(s)
-label.vlan.range=VLAN/VNI Reeks
-label.vlan=VLAN/VNI
-label.vlan.vni.ranges=VLAN/VNI Range(s)
-label.vlan.vni.range=VLAN/VNI Reeks
-label.vm.add=Instantie Toevoegen
-label.vm.destroy=Verwijder
-label.vm.display.name=VM weergave naam
-label.VMFS.datastore=VMFS datastore
-label.vmfs=VMFS
-label.vm.id=VM ID
-label.vm.ip=VM IP adres
-label.vm.name=VM naam
-label.vm.password=Het wachtwoord van de VM is
-label.vm.reboot=Reboot
-label.VMs.in.tier=VMs in tier
-label.vmsnapshot.current=isHuidige
-label.vmsnapshot.memory=Snapshot geheugen
-label.vmsnapshot.parentname=Bovenliggend
-label.vmsnapshot.type=Type
-label.vmsnapshot=VM Snapshots
-label.vm.start=Start
-label.vm.state=VM staat
-label.vm.stop=Stop
-label.vms=VMs
-label.vmware.datacenter.id=VMware datacenter ID
-label.vmware.datacenter.name=VMware datacenter Naam
-label.vmware.datacenter.vcenter=VMware datacenter vcenter
-label.vmware.traffic.label=VMware verkeerslabel
-label.vnet.id=VLAN/VNI ID
-label.vnet=VLAN/VNI
-label.vnmc.devices=VNMC apparaten
-label.vnmc=VNMC
-label.volatile=Volatile
-label.volgroup=Volume Groep
-label.volume.details=volume gegevens
-label.volume.limits=Volume Limieten
-label.volume.migrated=volume gemigreerd
-label.volume.name=Volume Naam
-label.volumes=Volumes
-label.volume=Volume
-label.vpc.distributedvpcrouter=Gedistribueerde VPC Router
-label.vpc.id=VPC ID
-label.VPC.limits=VPC limieten
-label.vpc.offering.details=VPC Aanbieding details
-label.vpc.offering=VPC Aanbieding
-label.vpc.router.details=VPC router details
-label.VPC.router.details=VPC router details
-label.vpc.supportsregionlevelvpc=Ondersteund Region Level VPC
-label.vpc.virtual.router=VPC Virtueele Router
-label.vpc=VPC
-label.VPN.connection=VPN Connectie
-label.vpn.customer.gateway=VPN Customer Gateway
-label.VPN.customer.gateway=VPN Customer Gateway
-label.vpn.force.encapsulation=Forceer UDP Encapsulatie van ESP Packets
-label.VPN.gateway=VPN Gateway
-label.vpn=VPN
-label.vsmctrlvlanid=Controle VLAN ID
-label.vsmpktvlanid=Pakket VLAN ID
-label.vsmstoragevlanid=Opslag VLAN ID
-label.vsphere.managed=vSphere beheerd
-label.vswitch.name=vSwitch naam
-label.vSwitch.type=vSwitch type
-label.vxlan.id=VXLAN ID
-label.vxlan.range=VXLAN Reeks
-label.vxlan=VXLAN
-label.waiting=Wachten
-label.warning=waarschuwing
-label.warn.upper=WAARSCHUWING
-label.warn=Waarschuwing
-label.wednesday=Woensdag
-label.weekly=Wekelijks
-label.welcome.cloud.console=Welkom op de Management Console
-label.welcome=Welkom
-label.what.is.cloudstack=Wat is CloudStack&\#8482?
-label.xenserver.tools.version.61.plus=XenServer Tools Versie 6.1\\+
-label.Xenserver.Tools.Version61plus=XenServer Tools Versie 6.1\\+
-label.xenserver.traffic.label=XenServer verkeerslabel
-label.yes=Ja
-label.zone.dedicated=Zone toegewijd
-label.zone.details=Zone details
-label.zone.id=Zone ID
-label.zone.lower=zone
-label.zone.name=zone naam
-label.zone.step.1.title=Stap 1\: <strong>Selecteer een Netwerk</strong>
-label.zone.step.2.title=Stap 2\: <strong>Zone toevoegen</strong>
-label.zone.step.3.title=Stap 3\: <strong>Pod toevoegen</strong>
-label.zone.step.4.title=Step 4\: <strong>IP range toevoegen</strong>
-label.zones=Zones
-label.zone.type=Type Zone
-label.zone.wide=Zone breed
-label.zoneWizard.trafficType.guest=Gast\: Verkeer tussen virtuele machines van de eindgebruiker
-label.zoneWizard.trafficType.management=Management\: Verkeer tussen CloudStack\\\\'s interne resources zoals componenten die communiceren met de Management Server zoals hosts en CloudStack systeem VMs
-label.zoneWizard.trafficType.public=Publiek\: Verkeer tussen het internet en virtueele machines in de cloud.
-label.zoneWizard.trafficType.storage=Opslag\: Verkeer tussen de primaire en secundaire opslag servers zoals VM templates en snapshots
-label.zone=Zone
-managed.state=Beheersstaat
-message.acquire.ip.nic=Bevestig dat u een nieuw secundair IP voor deze netwerkkaart wilt verkrijgen. LET OP\: U dient het secundaire IP adres handmatig te configureren binnen de virtueele machine.
-message.acquire.new.ip=Bevestigen dat je een nieuw IP voor dit netwerk wilt verkrijgen.
-message.acquire.new.ip.vpc=Bevestig dat u een nieuw IP wilt verkrijgen voor deze VPC.
-message.acquire.public.ip=Selecteer de zone waarvan u een nieuw IP wenst te verkrijgen.
-message.action.cancel.maintenance=Het onderhoud voor de host is succesvol geannuleerd. Het daadwerkelijke proces kan echter enkele minuten duren.
-message.action.cancel.maintenance.mode=Bevestig dat u het onderhoud wilt annuleren.
-message.action.change.service.warning.for.instance=Uw instantie moet uitgeschakeld zijn voordat u de service aanbieding kunt wijzigen.
-message.action.change.service.warning.for.router=Uw router moet uitgeschakeld zijn voordat u de service aanbieding kunt wijzigen.
-message.action.delete.cluster=Bevestig dat u dit cluster wilt verwijderen.
-message.action.delete.disk.offering=Bevestig dat u deze schijf aanbieding wilt verwijderen.
-message.action.delete.domain=Bevestig dat u dit domein wilt verwijderen.
-message.action.delete.external.firewall=Bevestig dat u deze externe firewall wilt verwijderen. Waarschuwing\: Als u van plan bent dezelfde firewall opnieuw toe te voegen, dient u de verbruiksstatistieken eerst te resetten.
-message.action.delete.external.load.balancer=Bevestig dat u deze externe loadbalancer wilt verwijderen. Waarschuwing\: Als u van plan bent dezelfde loadbalancer opnieuw toe te voegen, dient u de verbruiksstatistieken eerst te resetten.
-message.action.delete.ingress.rule=Bevestig dat u deze inkomende regel wilt verwijderen.
-message.action.delete.ISO=Bevestig dat u deze ISO wilt verwijderen.
-message.action.delete.ISO.for.all.zones=Deze ISO wordt gebruikt door alle zones. Bevestig dat u deze wilt verwijderen van alle zones.
-message.action.delete.network=Bevestig dat u dit netwerk wilt verwijderen.
-message.action.delete.nexusVswitch=Bevestig dat u deze nexus 1000v wilt verwijderen
-message.action.delete.nic=Bevestig dat u deze netwerkkaart wilt verwijderen, de VM zal ontkoppeld worden van het netwerk wat aan de netwerkkaart aangesloten zit.
-message.action.delete.physical.network=Bevestig dat u dit fysieke netwerk wilt verwijderen.
-message.action.delete.pod=Bevestig dat u deze pod wilt verwijderen.
-message.action.delete.primary.storage=Bevestig dat u deze primaire opslag wilt verwijderen.
-message.action.delete.secondary.storage=Bevestig dat u deze secudaire opslag wilt verwijderen.
-message.action.delete.security.group=Bevestig dat u deze security group wilt verwijderen.
-message.action.delete.service.offering=Bevestig dat u deze service aanbieding wilt verwijderen.
-message.action.delete.snapshot=Bevestig dat u deze snapshot wilt verwijderen.
-message.action.delete.system.service.offering=Bevestig dat u deze systeem service aanbieding wilt verwijderen.
-message.action.delete.template=Bevestig dat u deze template wilt verwijderen
-message.action.delete.template.for.all.zones=Deze template wordt gebruikt door alle zones. Bevestig dat u deze wilt verwijderen van alle zones.
-message.action.delete.volume=Bevestig dat u dit volume wilt verwijderen
-message.action.delete.zone=Bevestig dat u deze zone wilt verwijderen
-message.action.destroy.instance=Bevestig dat u deze instantie wilt vernietigen
-message.action.destroy.systemvm=Bevestig dat u deze Systeem VM wilt vernietigen
-message.action.disable.cluster=Bevestig dat u dit cluster wilt uitschakelen.
-message.action.disable.nexusVswitch=Bevestig dat u deze nexus 1000v wilt uitschakelen.
-message.action.disable.physical.network=Bevestig dat u dit fysieke netwerk wilt uitschakelen.
-message.action.disable.pod=Bevestig dat u deze pod wilt uitschakelen.
-message.action.disable.static.NAT=Bevestig dat u static NAT wilt uitschakelen.
-message.action.disable.zone=Bevestig dat u deze zone wilt uitschakelen.
-message.action.downloading.template=Downloaden template.
-message.action.download.iso=Bevestig dat u deze ISO wilt downloaden.
-message.action.download.template=Bevestig dat u deze template wilt downloaden.
-message.action.enable.cluster=Bevestig dat u dit cluster wilt inschakelen.
-message.action.enable.maintenance=Uw host is succesvol voorbereid op onderhoud. Het proces kan echter een paar minuten duren afhankelijk van de hoeveelheid VMs op de host.
-message.action.enable.nexusVswitch=Bevestig dat u deze nexus 1000v wilt inschakelen
-message.action.enable.physical.network=Bevestig dat u dit fysieke netwerk wilt inschakelen.
-message.action.enable.pod=Bevestigd dat u deze pod wilt inschakelen.
-message.action.enable.zone=Bevestig dat u deze zone wilt inschakelen.
-message.action.expunge.instance=Bevestig dat u deze instantie wilt opruimen
-message.action.force.reconnect=De host is succesvol geforceerd om opnieuw te verbinden. Dit proces kan echter enkele minuten duren.
-message.action.host.enable.maintenance.mode=Het inschakelen van de onderhoudsmodus zorgt ervoor dat alle draaiende instanties worden gemigreerd naar andere beschikbare hosts.
-message.action.instance.reset.password=Bevestig dat u het ROOT wachtwoord van deze virtueele machine wilt aanpassen.
-message.action.manage.cluster=Bevestig dat u dit cluster wilt beheren.
-message.action.primarystorage.enable.maintenance.mode=Waarschuwing\: Wanneer u de primaire opslag in onderhoudsmodus plaatst, worden alle VMs die hier gebruik van maken gestopt. Weet u zeker dat u deze actie wilt uitvoeren?
-message.action.reboot.instance=Bevestig dat u deze instantie wilt herstarten.
-message.action.reboot.router=Als u deze router herstarten zullen de diensten op de router verstoord worden. Weet u zeker dat u deze actie wil uitvoeren?
-message.action.reboot.systemvm=Bevestig dat u deze Systeem VM wilt herstarten.
-message.action.release.ip=Bevestigd dat u dit IP adres wilt los koppelen.
-message.action.remove.host=Bevestig dat u deze host wilt verwijderen.
-message.action.reset.password.off=Uw instantie ondersteunt deze functie momenteel niet.
-message.action.reset.password.warning=Uw instantie moet gestopt worden voordat u het wachtwoord kunt wijzigen.
-message.action.restore.instance=Bevestig dat u deze instantie wilt herstellen.
-message.action.revert.snapshot=Bevestig dat u het volume wilt terugdraaien naar dit snapshot.
-message.action.start.instance=Bevestig dat u deze instantie wilt starten.
-message.action.start.router=Bevestig dat uw deze router wilt starten.
-message.action.start.systemvm=Bevestig dat u deze Systeem VM wilt starten.
-message.action.stop.instance=Bevestig dat u deze instantie wilt stoppen.
-message.action.stop.router=Als u deze router stopt zullen de diensten die gebruik maken van de router verstoord worden. Weet u zeker dat u deze actie wil uitvoeren?
-message.action.stop.systemvm=Bevestig dat u deze systeem VM wilt stoppen.
-message.action.take.snapshot=Bevestig dat u een snapshot wilt maken van dit volume.
-message.action.unmanage.cluster=Bevestig dat u dit cluster niet langer wilt laten beheren door CloudStack.
-message.action.vmsnapshot.delete=Bevestig dat u deze VM snapshot wilt verwijderen.
-message.action.vmsnapshot.revert=Draai VM snapshot terug
-message.activate.project=Weet u zeker dat u dit project wilt activeren?
-message.add.cluster=Voeg een hypervisor beheerd cluster toe voor zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b
-message.add.cluster.zone=Voeg een hypervisor beheerd cluster toe voor zone <b><span id\="zone_name"></span></b>
-message.add.disk.offering=Specificeer de volgende waardes om een nieuwe schijf aanbieding toe te voegen
-message.add.domain=Specificeer het subdomein welke u onder dit domein wilt aanmaken
-message.added.new.nuage.vsp.controller=nieuwe Nuage Vsp Controller toegevoegd
-message.added.vpc.offering=VPC aanbieding toegevoegd
-message.add.firewall=Voeg firewall toe aan zone
-message.add.guest.network=Bevestig dat u een gast netwerk wilt toevoegen
-message.add.host=Specificeer de volgende parameters om een nieuwe host toe te voegen
-message.adding.host=Host toevoegen
-message.adding.Netscaler.device=Netscaler toevoegen
-message.adding.Netscaler.provider=Netscaler provider toevoegen
-message.add.ip.range.direct.network=Voeg een IP range toe aan direct gekoppeld netwerk <b><span id\="directnetwork_name"></span></b> in zone <b><span id\="zone_name"></span></b>
-message.add.ip.range.to.pod=<p>Voeg een IP range toe aan pod\: <b><span id\="pod_name_label"></span></b></p>
-message.add.ip.range=Voeg een IP range aan het publieke netwerk in de zone toe
-message.additional.networks.desc=Selecteer additionele netwerk(en) waar uw virtuele instantie aan gekoppeld moet worden.
-message.add.load.balancer.under.ip=De loadbalancer regel is toegeovegd onder IP adres\:
-message.add.load.balancer=Voeg load balancer toe aan zone
-message.add.network=Voeg nieuw netwerk toe aan zone\: <b><span id\="zone_name"></span></b>
-message.add.new.gateway.to.vpc=Specificeer de volgende informatie om een nieuwe  gateway toe te voegen aan deze VPC.
-message.add.pod.during.zone.creation=Elke zone moet \u00e9\u00e9n of meerdere pods hebben, de eerste pod gaan we nu toevoegen. Een pod bevat de hosts en primaire opslag servers welke we in een van de volgende stappen toevoegen. Allereerst dient u een reeks gereserveerde IP adressen te defini\u00ebren voor CloudStack&\#39s management verkeer. Deze gereserveerde IP reeks moet uniek zijn voor elke zone in de cloud.
-message.add.pod=Voeg een nieuwe pod toe aan zone <b><span id\="add_pod_zone_name"></span></b>
-message.add.primary=Specificeer de volgende parameters om nieuwe primaire opslag toe te voegen
-message.add.primary.storage=Voeg nieuwe primaire opslag toe voor zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.region=Specificeer de benodigde informatie om een nieuwe regio toe te voegen.
-message.add.secondary.storage=Voeg nieuwe opslag toe voor zone <b><span id\="zone_name"></span></b>
-message.add.service.offering=Specificeer de volgende gegevens om een nieuwe service aanbieding aan te maken.
-message.add.system.service.offering=Specificeer de volgende gegevens om een nieuwe systeem aanbieding toe te voegen.
-message.add.template=Specificeer de volgende gegevens om een nieuwe template aan te maken
-message.add.volume=Specificeer de volgende gegevens om een nieuw volume toe te voegen.
-message.add.VPN.gateway=Bevestig dat u een VPN Gateway wilt toevoegen
-message.admin.guide.read=Voor VMware-gebaseerde VMs, lees eerst de dynamic scaling sectie in de admin guide voordat u gaat schalen. Weet u zeker dat u verder wilt gaan?\\,
-message.advanced.mode.desc=Kies dit netwerk model als u VLAN ondersteuning wilt inschakelen. Dit netwerk model geeft u de meeste flexibiliteit en stelt beheerders in staat om aangepaste netwerk aanbiedingen aan te maken met firewall, vpn, of load balancer ondersteuning. Ook kunt u kiezen tussen direct en virtual networking.
-message.advanced.security.group=Kies dit netwerk model als u security groups wilt gebruiken om virtueele machines te isoleren.
-message.advanced.virtual=Kies deze optie als u zone breede VLANs wilt gebruiken om virtueele machines te isoleren.
-message.after.enable.s3=S3-backed Secondary Storage is geconfigureerd. Let op\: Als u deze pagina verlaat zult u niet in staat zijn om S3 te (her)configureren.
-message.after.enable.swift=Swift is geconfigureerd.  Let op\: Als u deze pagina verlaat zult u niet in staat zijn om Swift te (her)configureren.
-message.alert.state.detected=Probleem status gedetecteerd
-message.allow.vpn.access=Specificeer een gebruikersnaam en wachtwoord voor de gebruiker die u toegang wilt geven tot de VPN.
-message.apply.snapshot.policy=De huidige snapshot policy is succesvol gewijzigd.
-message.attach.iso.confirm=Bevestig dat u deze ISO wilt koppelen aan de virtuele machine.
-message.attach.volume=Specificeer de volgende gegevens om een nieuw volume te koppelen. Als u een schijf volume wilt toevoegen aan een Windows gebaseerde machine, dan dient u deze te rebooten om de schijf zichtbaar te maken.
-message.basic.mode.desc=Kies dit netwerk model als u <b>*<u>geen</u>*</b> VLAN ondersteuning wilt inschakelen. Alle virtuele machines onder dit netwerk model zullen direct een IP gealloceerd krijgen vanuit het netwerk en security groups kunnen gebruikt worden om beveiliging en segmentering te realiseren.
-message.change.ipaddress=Bevestig alstublieft dat U het IP adres voor deze NIC op de VM wilt wijzigen.
-message.change.offering.confirm=Bevestig dat u de service aanbieding van deze virtueele machine wilt wijzigen.
-message.change.password=Wijzig a.u.b. uw wachtwoord.
-message.cluster.dedicated=Zone toegewijd
-message.cluster.dedication.released=Cluster toewijding losgekoppeld
-message.configure.all.traffic.types=U heeft meerdere fysieke netwerken; Configureer labels voor elk verkeerstype door op de Wijzig knop te klikken.
-message.configure.firewall.rules.allow.traffic=configureer regels om verkeer toe te staan
-message.configure.firewall.rules.block.traffic=configureer regels om verkeer te blokkeren
-message.configure.ldap=Bevestig dat u LDAP wilt configureren.
-message.configuring.guest.traffic=Bezig met configureren guest traffic
-message.configuring.physical.networks=Bezig met configureren fysieke netwerken
-message.configuring.public.traffic=Bezig met configureren publiek verkeer
-message.configuring.storage.traffic=Bezig met configureren opslag verkeer
-message.confirm.action.force.reconnect=Bevestig dat u deze host geforceerd opnieuw wilt laten verbinden.
-message.confirm.add.vnmc.provider=Bevestig dat u de VNMC provider wilt toevoegen.
-message.confirm.archive.alert=Bevestig dat U deze melding wilt archiveren, alstublieft.
-message.confirm.archive.event=bevestig dat u deze melding wilt archiveren, alstublieft
-message.confirm.archive.selected.alerts=bevestig dat u de geselecteerde meldingen wilt archiveren, alstublieft
-message.confirm.archive.selected.events=bevestig dat u de geselecteerde gebeurtenissen wilt archiveren, alstublieft
-message.confirm.attach.disk=Weet U zeker dat U een disk wilt koppelen?
-message.confirm.create.volume=Weet U zeker dat U een volume wilt cre\u00ebren?
-message.confirm.current.guest.CIDR.unchanged=Wilt u het huidige gastnetwerk-CIDR ongewijzigd laten?
-message.confirm.dedicate.cluster.domain.account=Weet u zeker dat u dit cluster wilt toewijden aan een domein/account?
-message.confirm.dedicate.host.domain.account=Weet u zeker dat u deze host  wilt toewijden aan een domein/account?
-message.confirm.dedicate.pod.domain.account=Weet u zeker dat u deze pod wilt toewijden aan een domein/account?
-message.confirm.dedicate.zone=Weet u zeker dat u deze zone wilt toewijden aan een domein/account?
-message.confirm.delete.acl.list=Weet U zeker dat U dit ACL wilt verwijderen?
-message.confirm.delete.alert=Weet U zeker dat U deze melding wilt verwijderen?
-message.confirm.delete.baremetal.rack.configuration=Bevestig dat u de baremetal rek configuratie wilt verwijderen, alstublieft.
-message.confirm.delete.BigSwitchBcf=bevestig dat u deze BigSwitch BCF Controller wilt verwijderen, alstublieft
-message.confirm.delete.BrocadeVcs=bevestigd dat Brocade Vcs Switch wilt verwijderen, altublieft
-message.confirm.delete.ciscoASA1000v=bevestig dat u CiscoASA100v wilt verwijderen, alstublieft
-message.confirm.delete.ciscovnmc.resource=Bevestig dat u de CiscoVNMC resource wilt verwijderen.
-message.confirm.delete.F5=Bevestig dat u deze F5 wilt verwijderen
-message.confirm.delete.internal.lb=bevestigd dat U interne LB wilt verwijderen, alstublieft
-message.confirm.delete.NetScaler=Bevestig dat u deze NetScaler wilt verwijderen
-message.confirm.delete.NuageVsp=bevestig dat u Nuage Virtualized Services Directory wilt verwijderen, alstublieft
-message.confirm.delete.PA=Bevestig dat u Palo Alto wilt verwijderen
-message.confirm.delete.secondary.staging.store=Bevestig dat u de secudaire staging opslag wilt verwijderen.
-message.confirm.delete.SRX=Bevestig dat u deze SRX wilt verwijderen
-message.confirm.delete.ucs.manager=Bevestig dat u de UCS Manager wilt verwijderen
-message.confirm.destroy.router=Bevestig dat u deze router wilt verwijderen
-message.confirm.disable.host=bevestigd dat de machine wilt afkoppelen, alstublieft
-message.confirm.disable.network.offering=Weet u zeker dat u deze netwerk aanbieding wilt uitschakelen?
-message.confirm.disable.provider=Bevestig dat u deze provider wilt uitschakelen
-message.confirm.disable.vnmc.provider=Bevestig dat u de VNMC provider wilt uitschakelen.
-message.confirm.disable.vpc.offering=Weet u zeker dat u deze VPC aanbieding wilt uitschakelen?
-message.confirm.enable.host=bevestigd dat u de machine wilt aankoppelen, alsublieft
-message.confirm.enable.network.offering=Weet u het zeker dat u deze netwerk aanbieding wilt inschakelen?
-message.confirm.enable.provider=Bevestig dat u deze provider wilt inschakelen
-message.confirm.enable.vnmc.provider=Bevestig dat u de VNMC provider wilt inschakelen.
-message.confirm.enable.vpc.offering=Weet u zeker dat u deze VPC aanbieding wilt inschakelen?
-message.confirm.join.project=Bevestig dat u aan dit project wilt bijdragen
-message.confirm.migrate.volume=Wilt U dit volume migreren?
-message.confirm.refresh.blades=Bevestig dat u de blades wilt verversen.
-message.confirm.release.dedicated.cluster=Weet u zeker dat u dit toegewijde cluster wilt loskoppelen?
-message.confirm.release.dedicated.host=Weet u zeker dat u deze toegewijde host wilt loskoppelen?
-message.confirm.release.dedicated.pod=Weet u zeker dat u deze toegewijde pod wilt loskoppelen?
-message.confirm.release.dedicated.zone=Weet u zeker dat u deze toegewijde zone wilt loskoppelen?
-message.confirm.release.dedicate.vlan.range=Bevestig dat u de toegewijde VLAN range wilt loskoppelen
-message.confirm.remove.event=Weet u zeker dat u deze melding wilt verwijderen?
-message.confirm.remove.IP.range=Bevestig dat u deze IP range wilt verwijderen.
-message.confirm.remove.load.balancer=bevestigd dat U deze VM uit de load balancer wilt halen, alstublieft
-message.confirm.remove.network.offering=Weet u zeker dat u deze netwerk aanbieding wilt verwijderen?
-message.confirm.remove.selected.alerts=bevestig dat u de geselecteerde meldingen wilt verwijderen, alstublieft
-message.confirm.remove.selected.events=bevestig dat u de geselcteerde gebeurtenissen wilt verwijderen, alstublieft
-message.confirm.remove.vmware.datacenter=Bevestig dat u VM datacenter wilt verwijderen
-message.confirm.remove.vpc.offering=Weet u zeker dat u deze VPC aanbieding wilt verwijderen?
-message.confirm.replace.acl.new.one=Wilt U de ACL vervangen door een nieuwe?
-message.confirm.scale.up.router.vm=Weet u zeker dat u de Router VM wilt opschalen?
-message.confirm.scale.up.system.vm=Weet u zeker dat u de Systeem VM wilt opschalen?
-message.confirm.shutdown.provider=Bevestig dat u deze provider wilt afsluiten
-message.confirm.start.lb.vm=Bevestig dat u de LB VM wilt starten
-message.confirm.stop.lb.vm=Bevestig dat u de LB VM wilt stoppen
-message.confirm.upgrade.router.newer.template=Bevestig dat u de router naar een nieuwere template versie wilt upgraden
-message.confirm.upgrade.routers.account.newtemplate=Bevestig dat u alle routers onder deze account wilt upgraden naar een nieuwe template
-message.confirm.upgrade.routers.cluster.newtemplate=Bevestig dat u alle routers in dit cluster wilt upgraden naar een nieuwe template
-message.confirm.upgrade.routers.newtemplate=Bevestig dat u alle routers in deze zone wilt upgraden naar een nieuwe template
-message.confirm.upgrade.routers.pod.newtemplate=Bevestig dat u alle routers in deze pod wilt upgraden naar een nieuwe template
-message.copy.iso.confirm=Bevestig dat u deze ISO wilt kopieeren naar
-message.copy.template.confirm=Weet u zeker dat u de template wilt kopieeren?
-message.copy.template=Kopieer template <b id\="copy_template_name_text">XXX</b> van zone <b id\="copy_template_source_zone_text"></b> naar
-message.create.template.vm=Maak een VM aan vanaf een template
-message.create.template.volume=Specificeer a.u.b. de volgende informatie voordat u een template van het schijf volume\: <b><span id\="volume_name"></span></b>. Het maken van een template kan een paar minuten duren maar ook langer afhankelijk van de grote van het volume.
-message.create.template=Weet u het zeker dat u een template wilt aanmaken?
-message.creating.cluster=Cluster aanmaken
-message.creating.guest.network=Gast netwerk aanmaken
-message.creating.physical.networks=Fysieke netwerken aanmaken
-message.creating.pod=Pod aanmaken
-message.creating.primary.storage=Primaire opslag aanmaken
-message.creating.secondary.storage=Secundaire opslag aanmaken
-message.creating.systemVM=Bezig met aanmaken van systeem VMs (dit kan enige tijd duren)
-message.creating.zone=Zone aanmaken
-message.decline.invitation=Weet u zeker dat u deze project uitnodiging wilt afwijzen?
-message.dedicated.zone.released=Zone toewijding losgekoppeld
-message.dedicate.zone=Dedicating zone
-message.delete.account=Bevestig dat u deze account wilt verwijderen.
-message.delete.affinity.group=Bevestig dat u deze affinity groep wilt verwijderen
-message.delete.gateway=Bevestig dat u deze gateway wilt verwijderen
-message.delete.project=Weet u zeker dat u dit project wilt verwijderen?
-message.delete.user=Bevestig dat u deze gebruiker wilt verwijderen
-message.delete.VPN.connection=Bevestig dat u deze VPN verbinding wilt verwijderen
-message.delete.VPN.customer.gateway=Bevestig dat u deze VPN Customer Gateway wilt verwijderen
-message.delete.VPN.gateway=Bevestig dat u deze VPN Gateway wilt verwijderen
-message.desc.add.new.lb.sticky.rule=voeg een nieuwe LB klevende regel toe
-message.desc.advanced.zone=Voor ingewikkeldere netwerk topologie\u00ebn. Dit netwerk model geeft de meeste flexibiliteit en het definieren van gast netwerken en het aanbieden van speciale diensten zoals firewall, VPN of loadbalancer ondersteuning.
-message.desc.basic.zone=Cre\u00ebert een enkel netwerk waar elke VM instantie direct een IP op krijgt. Het isoleren van instanties kunt op layer-3 niveau doen door middel van security groups.
-message.desc.cluster=Elke pod moet \u00e9\u00e9n of meerdere cluster bevatten, en we gaan het eerste cluster nu toevoegen. Een cluster is een manier om hosts te groeperen. De hosts in een cluster hebben identieke hardware, gebruiken de zelfde hypervisor, zitten op hetzelfde subnet en kunnen bij dezelfde gedeelde opslag. Elk cluster bestaan uit \u00e9\u00e9n of meerdere hosts en \u00e9\u00e9n of meerdere primaire opslag systemen.
-message.desc.created.ssh.key.pair=Cre\u00eber SSH sleutelpaar.
-message.desc.create.ssh.key.pair=Gelieve de volgende gegevens in te vullen voor het maken of registreren van een ssh sleutelpaar. <br> (1) Als de publieke sleutel wordt ingesteld zal CloudStack de publieke sleutel te registreren. Je kunt het gebruiken via uw geheime sleutel. <br> (2) Als de publieke sleutel niet is ingesteld zal CloudStack een nieuw SSH-sleutelpaar cre\u00ebren. In dat geval, kopi\u00ebert en slaat van de private/geheime sleutel alsutblieft op. CloudStack zal het niet bewaren. <br>
-message.desc.host=Elke cluster moet een of meerdere hosts (servers) bevatten om gast VMs op te draaien. We gaan de eerste host nu toevoegen. Om een host met CloudStack te laten werken moet hij voorzien zijn van hypersvisor software, een werkend IP adres en in staat zijn de management server over het netwerk te bereiken. <br/><br/>Specificeer de DNS hostnaam of het IP adres van de host, de gebruikersnaam (meestal root) en het bijbehorende wachtwoord en als laatste eventuele labels om de host te categoriseren.
-message.desc.primary.storage=Elk cluster moet over \u00e9\u00e9n of meerdere primaire opslag servers beschikken, de eerste gaan we nu aanmaken. Primaire opslag bevat de volumes van VMs draaiende op de hosts in het cluster. Gebruik een protocol dat is ondersteund door de  hypervisor.
-message.desc.reset.ssh.key.pair=Specificeer een sleutelpaar dat u aan deze VM wilt toevoegen, alstublieft. Let alstublieft op dat het root-wachtwoord veranderd wordt door deze operatie als wachtwoord is aangezet.
-message.desc.secondary.storage=Elke zone moet minimaal \u00e9\u00e9n of meerdere secundaire opslag servers hebben, de eerste maken we nu aan. Secundaire opslag wordt gebruikt voor het opslaan van VM templates, ISO bestanden en snapshots. Deze server moet beschikbaar zijn aan alle hosts in de zone. <br/><br/>Specificeer het IP adres en het exporteerde pad.
-message.desc.zone=Een zone is de grootste organisatorische unit binnen CloudStack en correspondeert normaliter met enkel datacenter. Zones geven fysieke isolatie en redundantie. Een zone bestaat uit een of meerdere pods (waarvan ieder eigen hosts en primaire opslag servers heeft) en een secundaire opslag server welke gedeeld wordt door alle pods in de zone.
-message.detach.disk=Weet u zeker zeker dat u deze schijf wilt ontkoppelen?
-message.detach.iso.confirm=Bevestig dat u deze ISO wilt ontkoppelen van de virtueele machine.
-message.disable.account=Bevestig dat u deze account wilt uitschakelen. Als u deze account uitschakelt zullen de gebruikers niet langer toegang hebben tot hun cloud resources. Alle draaiende virtueele machines zullen direct afgesloten worden.
-message.disable.snapshot.policy=De huidige snapshot policy is uitgeschakeld.
-message.disable.user=Bevestig dat u deze gebruiker wilt uitschakelen.
-message.disable.vpn.access=Bevestig dat u VPN toegang wilt uitschakelen.
-message.disable.vpn=Weet u zeker dat u VPN wilt uitschakelen?
-message.disabling.network.offering=Netwerk Aanbieding Uitschakelen
-message.disabling.vpc.offering=VPC offering uitschakelen
-message.disallowed.characters=Niet toegestane karakters\: \\<\\,\\>
-message.download.ISO=Klik op <a href\="\#">00000</a> om de ISO te downloaden
-message.download.template=Klik op <a href\="\#">00000</a> om de template te downloaden
-message.download.volume.confirm=bevestigd at U dit volume wilt ophalen, alstublieft
-message.download.volume=Klik op <a href\="\#">00000</a> om het volume te downloaden
-message.edit.account=Wijzig ("-1" geeft aan dat er geen limiet is ingesteld)
-message.edit.confirm=Bevestig u veranderingen voor u op "bewaar" klikt, alstublieft.
-message.edit.limits=Specificeer de limieten voor de volgende resources.  Met "-1" geeft u aan dat er geen limiet geld.
-message.edit.traffic.type=Specificeer het verkeerslabel dat u met dit type verkeer wilt associeren.
-message.enable.account=Bevestig dat u deze account wilt inschakelen.
-message.enabled.vpn.ip.sec=Uw IPSec pre-shared key is
-message.enabled.vpn=Uw VPN toegang is ingeschakeld en kan benaderd worden via het IP
-message.enable.user=Bevestig dat u deze gebruiker wilt inschakelen.
-message.enable.vpn.access=VPN is momenteel uitgeschakeld voor dit IP adres. Wilt u deze inschakelen?
-message.enable.vpn=Bevestig dat u VPN toegang voor dit IP adres wilt inschakelen.
-message.enabling.network.offering=Netwerk Aanbieding Inschakelen
-message.enabling.security.group.provider=Inschakelen Security Group provider
-message.enabling.vpc.offering=VPC aanbieding inschakelen
-message.enabling.zone.dots=Bezig met activeren van Zone....
-message.enabling.zone=Inschakelen zone
-message.enter.seperated.list.multiple.cidrs=Gelieve een met komma\\'s gescheiden lijst van CIDRs invoeren wanneer er meer dan een zijn
-message.enter.token=Vul het token in dat vermeld staat in de e-mail uitnodiging.
-message.generate.keys=Bevestig dat u nieuwe sleutels wilt genereren voor deze gebruiker.
-message.gslb.delete.confirm=Bevestigd dat u deze GSLB wilt verwijderen
-message.gslb.lb.remove.confirm=Bevestig dat u loadbalancing van GSLB wilt verwijderen
-message.guest.traffic.in.advanced.zone=Gast netwerk verkeer is communicatie tussen virtuele machines van de eindgebruiker. Specificeer een range van VLAN IDs om gast verkeer te transporteren over het fysieke netwerk.
-message.guest.traffic.in.basic.zone=Gast netwerk verkeer is communicatie tussen virtuele machines van de eindgebruiker. Specificeer een range van IP adressen welke CloudStack kan uitdelen aan gast VMs. Let erop dat deze range niet overlapt met de gereserveerde systeem IP range.
-message.host.dedicated=Host toegewijd
-message.host.dedication.released=Toegewijde host losgekoppeld
-message.installWizard.click.retry=Druk op de knop om de lancering opnieuw te proberen
-message.installWizard.copy.whatIsACluster=Een cluster is een manier om hosts te groeperen. De hosts in een cluster hebben ieder identieke hardware, draaien dezelfde hypervisor, zitten op hetzelfde subnet en kunnen dezelfde gedeelde opslag benaderen. Virtuele machines (VMs) kunnen live gemigreerd worden van tot ene naar de andere host in hetzelfde cluster zonder dat de gebruiker hier iets van merkt. Een cluster is de 3e grootste organisatorische unit binnen Cloudstack&\#8482;. Clusters worden ondergebracht in pods, en pods zijn op hun beurt ondergebracht in zones. CloudStack&\#8482; biedt te mogelijkheid tot meerdere clusters, maar voor een basis installatie hebben we maar \u00e9\u00e9n cluster nodig.
-message.installWizard.copy.whatIsAHost=Een host een opzichzelfstaande computer. Hosts verzorgen de resources nodig om de gast virtuele machines te draaien. Elke host heeft eigen hypervisor software geinstalleerd om de virtuele machines erop te beheren (Afgezien van bare metal hosts, hierover is meer te vinden in de geavanceerde installatie handleiding). Om een paar voorbeelden te noemen\: een Linux server met KVM, een server met Citrix XenServer en servers met ESXi geinstalleerd zijn hosts. Bij de basis installatie gebruiken we een opzichzelfstaande host met XenServer of KVM geinstalleerd. <br/><br/> Een host is de kleinste organisatorische unit binnen een CloudStack&\#8482; omgeving. Hosts worden ondergebracht in clusters, cluster zijn ondergebracht in pods en pods zijn ongebracht in zones.
-message.installWizard.copy.whatIsAPod=Een pod vertegenwoordigd meestal een rack. Hosts in dezelfde pod hebben hetzelfde subnet. <br/><br/>Een pod is de tweede grootste organisatorische unit binnen een CloudStack&\#8482; omgeving. Pods zijn ondergebracht in zones. Elke zone kan meerdere pods hebben, voor de basis installatie hebben we een enkele pod in de zone.
-message.installWizard.copy.whatIsAZone=Een zone is de grootste organisatorische unit binnen een CloudStack&\#8482; omgeving. Een zone staat meestal voor een datacenter, al is het geen probleem om meerdere zones in hetzelfde datacenter te hebben. Het voordeel van infrastructuur onderbrengen in zones is om fysieke isolatie en redundantie te cre\u00ebren. Elke zone kan bijvoorbeeld zijn eigen stroom voorziening en netwerk uplinks hebben en kunnen geografisch verspreid worden (al is dit geen vereiste).
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482; is een software platform welke computer capaciteit herenigd om public, private en hybrid infrastructure as a Service (IaaS) clouds te bouwen. CloudStack&\#8482; beheert het netwerk, de opslag en de computer nodes welke de cloud infrastructuur vertegenwoordigen. Gebruik CloudStack&\#8482; om cloud computing omgevingen uit te rollen, te beheren en te configureren. <br/><br/> CloudStack&\#8482 gaat veel verder dan het draaien van virtuele machine bestanden op commodity hardware, het is een turnkey oplossing om virtuele datacenters (as a service) te realiseren. Daarbij levert het alle essenti\u00eble componenten om multi-tier en multi-tentant cloud applicaties te bouwen en te beheren. Er is een zowel een open-source als Premium versie beschikbaar, waarbij de open-source versie nagenoeg dezelfde functionaliteit biedt als de Premium versie.
-message.installWizard.copy.whatIsPrimaryStorage=Een CloudStack&\#8482; cloud infrastructuur maakt gebruik van 2 type opslag, namelijk primaire en secundaire opslag.  Primaire opslag kan iSCSI, NFS of lokale opslag zijn. Secundaire opslag werkt via NFS of een S3-compatible opslag systeem. <br/><br/><strong>Primaire opslag</strong> is onderdeel van een cluster, en het bevat de schijf volumes van iedere gast VM in dat cluster. De primaire opslag server wordt meestal dicht bij de hosts geplaatst.
-message.installWizard.copy.whatIsSecondaryStorage=Secundaire opslag is onderdeel van een zone, en biedt opslagruimte aan\:<ul><li>Templates - kant-en-klare VMs die gebruikt kunnen worden zonder voorafgaande installatie. </li><li>ISO bestanden - Installatie mediums voor VMs. </li><li>Schijf volume snapshots - reservekopie\u00ebn van schijf volumes die later gebruikt kunnen worden tijdens recovery of het maken van nieuwe templates. </ul>
-message.installWizard.now.building=Bezig met het bouwen van je cloud...
-message.installWizard.tooltip.addCluster.name=Een naam voor het cluster. U kunt deze tekst vrij invullen, en zal verder niet gebruikt worden door CloudStack.
-message.installWizard.tooltip.addHost.hostname=De DNS naam of het IP adres van de host.
-message.installWizard.tooltip.addHost.password=Dit is het wachtwoord voor de gebruiker die hierboven genoemd wordt (van uw Xenserver instllatie).
-message.installWizard.tooltip.addHost.username=Meestal root.
-message.installWizard.tooltip.addPod.name=Een naam voor de pod
-message.installWizard.tooltip.addPod.reservedSystemEndIp=Dit is de IP range van het private netwerk dat CloudStack gebruikt om met Secundaire Opslag VMs en Console Proxy VMs te communiceren. Deze IP adressen komen uit hetzelfde subnet als de gast VMs.
-message.installWizard.tooltip.addPod.reservedSystemGateway=De gateway voor de hosts in die pod.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=De netmask die gebruikt wordt op het subnet dat de gast VMs gaan gebruiken.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=Dit is de IP range van het private netwerk dat CloudStack gebruikt om met Secundaire Opslag VMs en Console Proxy VMs te communiceren. Deze IP adressen komen uit hetzelfde subnet als de gast VMs.
-message.installWizard.tooltip.addPrimaryStorage.name=De naam voor het opslag apparaat.
-message.installWizard.tooltip.addPrimaryStorage.path=(Voor NFS) Bij NFS dit is het ge\u00ebxporteerde pad van de server. Pad (Voor SharedMountPoint). Bij KVM is dit het pad waar op elke machine de primaire opslag is gekoppeld. Bijvoorbeeld, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(Voor NFS, iSCSI of PreSetup)  Het IP adres of DNS naam van het opslag apparaat.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=Het IP adres van de NFS server welke de secundaire opslag serveert
-message.installWizard.tooltip.addSecondaryStorage.path=Het ge\u00ebxporteerde pad, op de server die u hierboven heeft gespecificeerd
-message.installWizard.tooltip.addZone.dns1=Deze DNS servers worden gebruik door gast VMs in de Zone. Deze DNS servers moeten toegankelijk zijn op het publieke netwerk wat we later gaan toevoegen. De publieke IP adressen voor de zone moeten een route hebben naar de DNS server hier vermeld.
-message.installWizard.tooltip.addZone.dns2=Deze DNS servers worden gebruik door gast VMs in de Zone. Deze DNS servers moeten toegankelijk zijn op het publieke netwerk wat we later gaan toevoegen. De publieke IP adressen voor de zone moeten een route hebben naar de DNS server hier vermeld.
-message.installWizard.tooltip.addZone.internaldns1=Deze DNS servers worden gebruik door gast VMs in de Zone. Deze DNS servers moeten toegankelijk zijn op het private netwerk wat we later gaan toevoegen. De private IP adressen voor de zone moeten een route hebben naar de DNS server hier vermeld.
-message.installWizard.tooltip.addZone.internaldns2=Deze DNS servers worden gebruik door gast VMs in de Zone. Deze DNS servers moeten toegankelijk zijn op het private netwerk wat we later gaan toevoegen. De private IP adressen voor de zone moeten een route hebben naar de DNS server hier vermeld.
-message.installWizard.tooltip.addZone.name=Een naam voor de zone
-message.installWizard.tooltip.configureGuestTraffic.description=Een beschrijving voor het netwerk
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=De IP reeks welke beschikbaar zal zijn voor gast VMs in de zone. Als \u00e9\u00e9n NIC gebruikt wordt, zouden deze IP adressen in hetzelfde CIDR moeten vallen als die van de pod.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=De gateway welke gast VMs moeten gebruiken
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=De netmask die gebruikt wordt op het subnet dat door gast VMs gebruikt wordt
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=De IP reeks welke beschikbaar zal zijn voor gast VMs in de zone. Als \u00e9\u00e9n NIC gebruikt wordt, zouden deze IP adressen in hetzelfde CIDR moeten vallen als die van de pod.
-message.installWizard.tooltip.configureGuestTraffic.name=Een naam voor het netwerk
-message.instance.scaled.up.confirm=Weet u zeker dat u deze VM wilt opschalen?
-message.instanceWizard.noTemplates=Er zijn geen templates beschikbaar. Voeg een geschikte template toe, en herstart deze instantie wizard.
-message.ip.address.changed=Uw IP adres is mogelijk gewijzigd, wilt u de lijst verversen? Wanneer dit het geval is, zal het detail paneel gesloten worden.
-message.iso.desc=Image bestand met data of bootable media voor besturingsysteem
-message.join.project=U neemt nu deel aan een project. Klik op het project overzicht om het project te zien.
-message.launch.vm.on.private.network=Wilt u de instantie starten op uw eigen private dedicated netwerk?
-message.launch.zone=De zone is klaar om geactiveerd te worden, ga door naar de volgende stap.
-message.ldap.group.import=Alle gebruikers uit de gegeven groep worden ge\u00efmporteerd
-message.link.domain.to.ldap=schakel autosync voor dit domein in LDAP in
-message.listView.subselect.multi=(Ctrl/Cmd-click)
-message.lock.account=Bevestig dat u deze account wilt vergrendelen. Wanneer u de account vergrendeld zullen alle gebruikers van deze account hun cloud resources niet meer kunnen beheren. Toegang tot bestaande producten blijft bestaan.
-message.migrate.instance.confirm=Bevestig de host naar waar u de instantie toe wilt migreren.
-message.migrate.instance.to.host=Bevestig dat u de instantie naar een andere host toe wilt migreren.
-message.migrate.instance.to.ps=Bevestig dat u de instantie naar een andere primaire opslag toe wilt migreren.
-message.migrate.router.confirm=Bevestig de host waar u de router naartoe wilt migreren\:
-message.migrate.systemvm.confirm=Bevestig de host naar waar u de systeem VM toe wilt migreren\:
-message.migrate.volume=Bevestig dat u het volume wilt migreren naar een andere primaire opslag.
-message.network.addVM.desc=Specificeer het netwerk dat u aan deze VM wilt toevoegen. Een nieuwe netwerk interface zal worden toegevoegd aan de VM.
-message.network.addVMNIC=Bevestig dat u een nieuwe netwerk interface voor dit netwerk wilt verkrijgen.
-message.network.remote.access.vpn.configuration=VPN configuratie op afstand is gegenereerd, maar kon niet worden doorgevoerd. Controleer alstublieft de verbinding met het netwerk bestanddeel en probeer opnieuw.
-message.new.user=Sepecificeer de volgende waarden om een nieuwe gebruiker toe te voegen aan de account
-message.no.affinity.groups=U heeft geen affinity groepen. Ga door naar de volgende stap.
-message.no.host.available=Geen hosts beschikbaar voor Migratie
-message.no.network.support.configuration.not.true=Er is geen zone waarin security groups zijn ingeschakeld. Om die reden zijn er geen additionele netwerk diensten beschikbaar. Ga door naar stap 5.
-message.no.network.support=De geselecteerde hypervisor, vSphere, beschikt niet over additionele netwerk diensten. Ga door naar stap 5.
-message.no.projects.adminOnly=U hebt momenteel geen projecten. <br/>Uw beheerder kan een nieuw project aanmaken.
-message.no.projects=U hebt momenteel geen projecten.<br/>U kunt een nieuw project aanmaken vanuit de projecten sectie.
-message.number.clusters=<h2><span> Aantal </span> Clusters</h2>
-message.number.hosts=<h2><span> Aantal </span> Hosts</h2>
-message.number.pods=<h2><span> Aantal </span> Pods</h2>
-message.number.storage=<h2><span> Aantal </span> Primaire Opslag Volumes</h2>
-message.number.zones=<h2><span> Aantal </span> Zones</h2>
-message.password.has.been.reset.to=Het wachtwoord is veranderd in
-message.password.of.the.vm.has.been.reset.to=Het wachtwoord van de VM is veranderd in
-message.pending.projects.1=U heeft openstaande project uitnodigigingen\:
-message.pending.projects.2=Ga naar de project sectie om deze te zien. Selecteer de uitnodiging vanuit het drop-down menu.
-message.please.add.at.lease.one.traffic.range=U dient minimaal \u00e9\u00e9n traffic range toe te voegen.
-message.please.confirm.remove.ssh.key.pair=bevestig dat u dit SSH sleutelpaar wilt verwijderen, alstublieft
-message.please.proceed=Ga door naar de volgende stap.
-message.please.select.a.configuration.for.your.zone=Selecteer een configuratie voor uw zone.
-message.please.select.a.different.public.and.management.network.before.removing=Selecteer a.u.b. een ander publiek en beheer netwerk voordat u deze verwijderd
-message.please.select.networks=Selecteer netwerken voor uw virtuele machine.
-message.please.select.ssh.key.pair.use.with.this.vm=selecteer alstublieft een ssh sleutelpaar dat U met deze VM wilt gebruiken\:
-message.please.wait.while.zone.is.being.created=Even geduld, uw zone wordt aangemaakt; Dit kan enige tijd duren...
-message.pod.dedication.released=Toegewijde pod losgekoppeld
-message.portable.ip.delete.confirm=Bevestig dat u deze porteerbare IP reeks wilt verwijderen
-message.project.invite.sent=Uitnodiging is verstuurd aan gebruiker. De gebruiker wordt toegevoegd aan het project wanneer hij de uitnodiging accepteert.
-message.public.traffic.in.advanced.zone=Publiek verkeer wordt gegenereerd wanneer VMs in de cloud het internet bezoeken. Publiek toegankelijke IPs moeten om deze reden toegevoegd worden. Eindgebruikers kunnen deze IP adressen via de Cloudstack UI aanvragen om zo verkeer tussen het gast netwerk en publieke netwerk te realiseren. <br/><br/> Geef minimaal \u00e9\u00e9n IP range op voor internet verkeer.
-message.public.traffic.in.basic.zone=Publiek verkeer wordt gegenereerd wanneer VMs in de cloud het internet bezoeken of diensten serveren aan het internet. Publiek toegankelijke IPs moeten om deze reden toegevoegd worden. Wanneer een instantie wordt aangemaakt, krijgt deze automatisch een van deze IP adressen toegewezen naast het gast IP adres. Static 1-1 NAT wordt automatisch geconfigureerd tussen het publieke IP en gast IP adres. Eindgebruikers kunnen via de CloudStack UI meerdere IP adressen aanvragen om static NAT tussen hun instanties en het publieke IP te realiseren.
-message.question.are.you.sure.you.want.to.add=Weet U zeker dat U het volgende wenst toe te voegen
-message.read.admin.guide.scaling.up=Gelieve de dynamic scaling sectie te lezen in admin guide voordat u gaat opschalen.
-message.recover.vm=Bevestig dat u deze VM wilt herstellen.
-message.redirecting.region=U wordt doorverbonden met de regio...
-message.reinstall.vm=LET OP\: Als u doorgaat zal de VM opnieuw ge\u00efnstalleerd worden vanaf de template. Alle data op de root disk zal verwijderd worden. Eventuele data volumes blijven onaangeraakt.
-message.removed.ssh.key.pair=een ssh sleutelpaar is verwijderd
-message.remove.ldap=Weet u zeker dat u de LDAP configuratie wilt verwijderen?
-message.remove.region=Weet u zeker dat u deze regio wilt verwijderen van deze management server?
-message.remove.vpc=Bevestigd dat u de VPC wilt verwijderen
-message.remove.vpn.access=Bevestig dat u VPN toegang wilt verwijderen van de volgende gebruiker.
-message.reset.password.warning.notPasswordEnabled=De template van deze instantie was aangemaakt zonder wachtwoord functie
-message.reset.password.warning.notStopped=Uw instantie moet gestopt worden voordat u het wachtwoord kunt wijzigen.
-message.reset.VPN.connection=Bevestig dat u deze VPN verbinding wilt resetten
-message.restart.mgmt.server=Gelieve uw management server(s) herstarten om deze wijziging actief te maken.
-message.restart.mgmt.usage.server=Gelieve uw management server(s) en gebruik server(s) herstarten om deze wijziging actief te maken.
-message.restart.network=Als u dit netwerk herstart zullen de diensten op het netwerk verstoord worden. Weet u zeker dat u deze actie wil uitvoeren?
-message.restart.vpc=Bevestig dat u deze VPC wilt herstarten
-message.restart.vpc.remark=Bevestig altublieft dat U de VPC wilt herstarten <p><small><i>Opmerking\: Een niet-redundante VPC redundant maken zal opschonen forceren. De netwerken zullen enige tijd niet beschikbaar zijn</i>.</small></p>
-message.restoreVM=Wilt u de VM herstellen?
-message.security.group.usage=(Gebruik <strong>Ctrl-klik</strong> om meerdere security groups te selecteren)
-message.select.affinity.groups=Selecteer welke affinity groepen u wilt gebruiken voor deze VM\:
-message.select.a.zone=Een zone correspondeert meestal met een enkel datacenter. Meerdere zones maken de cloud betrouwbaarder door fysiek isolatie en redunatie te verzorgen.
-message.select.instance=Selecteer een instantie.
-message.select.iso=Gelieve een ISO te selecteren voor uw nieuwe instantie.
-message.select.item=Gelieve een item te selecteren.
-message.select.security.groups=Gelieve security group(s) te selecteren voor de nieuwe instantie
-message.select.template=Gelieve een template te selecteren voor de nieuwe instantie
-message.select.tier=Gelieve een tier te selecteren
-message.set.default.NIC=Bevestig dat u dit netwerk apparaat standaard wilt maken voor deze VM.
-message.set.default.NIC.manual=U dient nu manueel de netwerk interface op de VM updaten.
-message.setup.physical.network.during.zone.creation.basic=Wanneer u een basis zone toevoegt bevat deze een fysiek netwerk welke correspondeert met de netwerkkaart op de hypervisor. Op dit netwerk zullen meerdere verkeerstypen gebruikt worden. <br/><br/> U kunt via drag & drop andere verkeerstypen toevoegen aan het fysieke netwerk.
-message.setup.physical.network.during.zone.creation=Wanneer u een geavanceerde zone toevoegt, dient u meerdere fysiek netwerken te configureren. Een netwerk correspondeert met een netwerkkaart op de hypervisor. Elk fysiek netwerk kan een of meerdere traffic types bevatten, met bepaald geldende restricties hoe deze gecombineerd mogen worden.  Drag & Drop een of meerdere verkeerstypen op het fysieke netwerk.
-message.setup.successful=Cloud installatie is succesvol verlopen\!
-message.snapshot.schedule=U kunt terugkerende momentopname plannen maken door uit de onderstaande mogelijkheden te kiezen en uw beleid voorkeuren toe te passen.
-message.specifiy.tag.key.value=Gelieve een tag sleutel en waarde te specificeren
-message.specify.url=Gelieve een URL te specificeren
-message.step.1.continue=Gelieve een template of ISO te selecteren om door te gaan
-message.step.1.desc=Selecteer een template voor uw nieuwe instantie. U kunt ook een blanco template selecteren op welke een ISO bestand geinstalleerd kan worden.
-message.step.2.continue=Selecteer een service aanbieding om verder te gaan.
-message.step.3.continue=Selecteer een schijf aanbieding om verder te gaan
-message.step.4.continue=Selecteer minimaal \u00e9\u00e9n netwerk om door te gaan
-message.step.4.desc=Selecteer het primaire netwerk aan welke uw instantie verbonden moet worden
-message.storage.traffic=Verkeer tussen CloudStack&\#39s interne diensten, inclusief componenten die communiceren met de management server zoals hosts en CloudStack systeem VMs. Configureer opslag verkeer hier.
-message.suspend.project=Weet u zeker dat u dit project wilt pauzeren?
-message.systems.vms.ready=Systeem VMs klaar.
-message.template.copying=De template wordt gekopieerd.
-message.template.desc=OS image bestand dat gebruikt kan worden om de VM op te starten
-message.tier.required=Tier is benodigd
-message.tooltip.dns.1=Naam van de DNS server die gebruikt mag worden door VMs in de zone. De publieke IP adressen in de zone moeten een route hebben naar deze server.
-message.tooltip.dns.2=Naam van een secudaire DNS server die gebruikt mag worden door VMs in de zone. De publieke IP adressen in de zone moeten een route hebben naar deze server.
-message.tooltip.internal.dns.1=Naam van de DNS server die gebruikt mag worden door interne systeem VMs van CloudStack in de zone. De priv\u00e9 IP adressen in de pod moeten een route hebben naar deze server.
-message.tooltip.internal.dns.2=Naam van de DNS server die gebruikt mag worden door interne systeem VMs van CloudStack in de zone. De priv\u00e9 IP adressen in de pod moeten een route hebben naar deze server.
-message.tooltip.network.domain=Een DNS toevoeging dat de domeinnaam zal zijn voor het netwerk wat toegangkelijk is voor gast VMs.
-message.tooltip.pod.name=Een naam voor deze pod.
-message.tooltip.reserved.system.gateway=De gateway voor hosts in deze pod.
-message.tooltip.reserved.system.netmask=De netwerk prefix dat het pod subnet definieert. Gebruik de CIDR notatie.
-message.tooltip.zone.name=Een naam voor de zone.
-message.update.os.preference=Selecteer een OS voorkeur voor deze host. Alle virtueel instanties van gelijke voorkeur zullen eerst op deze machine gealloceerd worden voordat er gekeken wordt naar andere hosts.
-message.update.resource.count=Bevestig dat u de verbruiksstatistieken voor deze account wilt bijwerken.
-message.update.ssl.failed=update SSL certificaat is mislukt
-message.update.ssl=Geef een nieuw X.509 compliant SSL certificaat in waarmee elke console proxy en secundaire opslag instantie mee geupdate kunnen worden\:
-message.update.ssl.succeeded=update SSL certificaat is gelukt
-message.validate.accept=Gelieve een waarde in te geven met een geldidge extensie.
-message.validate.creditcard=Gelieve een geldig credit card nummer in te geven.
-message.validate.date=Gelieve een geldige datum in te geven.
-message.validate.date.ISO=Gelieve een geldige datum (ISO) in te geven.
-message.validate.digits=Gelieve alleen cijfers in te geven.
-message.validate.email.address=Gelieve een geldig email adres in te geven.
-message.validate.equalto=Voer dezelfde waarde nogmaals in.
-message.validate.fieldrequired=Dit veld is vereist
-message.validate.fixfield=Gelieve dit veld te herstellen.
-message.validate.instance.name=Namen van instantie kunnen niet langer zijn dan 63 karakters. Alleen ASCII letters a~z, A~Z, cijfers 0~9 zijn toegestaan. Moet beginnen met een letter en mag eindigen met een letter of cijfer.
-message.validate.invalid.characters=Niet toegestane karakters gevonden, corrigeer deze.
-message.validate.max=Gelieve een waarde kleiner of gelijk aan {0} in te geven.
-message.validate.maxlength=Gelieve niet meer dan {0} karakters in te geven.
-message.validate.minlength=Gelieve minimaal {0} karakters in te geven.
-message.validate.number=Gelieve een geldig nummer in te geven.
-message.validate.range=Gelieve een waarde tussen {0} en {1} in te geven.
-message.validate.range.length=Gelieve een waarde tussen de {0} en {1} karakters lang in te geven.
-message.validate.URL=Gelieve een geldige URL in te geven.
-message.virtual.network.desc=Een dedicated gevirtualiseerd netwerk voor uw account. Het broadcast domein is ingesloten binnen een VLAN en toegang naar het publieke netwerk wordt gerouteerd door een virtueele router.
-message.vm.create.template.confirm=Creer een template welke de VM atuomatisch laat opstarten.
-message.vm.review.launch=Gelieve de volgende gegevens te verifi\u00ebren te bevestigen zodat uw instantie gestart kan worden.
-message.vnmc.available.list=VNMC is niet beschikbaar van de provider lijst.
-message.vnmc.not.available.list=VNMC is niet beschikbaar van de provider lijst.
-message.volume.create.template.confirm=Bevestig dat u een template wilt maken van dit schijf volume. Het maken van een template kan meerdere minuten duren maar soms ook langer afhankelijk van de grootte van het volume.
-message.waiting.for.builtin.templates.to.load=Wachten totdat ingebouwde templates zijn geladen...
-message.XSTools61plus.update.failed=Kon XenServer Tools Version 6.1\\+ field niet updaten. Fout\:
-message.you.must.have.at.least.one.physical.network=U moet minimaal \u00e9\u00e9n fysiek netwerk hebben
-message.your.cloudstack.is.ready=Uw CloudStack is klaar\!
-message.Zone.creation.complete=De installatie van de zone is compleet
-message.zone.creation.complete.would.you.like.to.enable.this.zone=De installatie van de zone is compleet, wilt u deze zone meteen inschakelen?
-message.zone.no.network.selection=De geselecteerde zone heeft geen meerdere netwerk selectie mogelijkheden.
-message.zone.step.1.desc=Selecteer een netwerk model voor uw zone.
-message.zone.step.2.desc=Specificeer de volgende gegevens om een nieuwe zone toe te voegen
-message.zone.step.3.desc=Specificeer de volgende gegevens om een nieuwe pod toe te voegen
-message.zoneWizard.enable.local.storage=WAARSCHUWING\: Als u lokale opslag activeert voor deze zone, moet u de volgende stappen ondernemen afhankelijk van het opslagsysteem waar u de systeem VMs vanaf wilt starten\:<br/><br/>1. Wanneer de systeem VMs gestart moeten worden van primaire (gedeelde) opslag moet deze nadat configuratie van de zone klaar is, toegevoegd worden. <br/><br/>2. Wanneer de systeem VMs gestart moeten worden vanaf lokale opslag,  dient de parameter system.vm.use.local.storage gezet zijn voordat u de zone activeert.<br/><br/><br/>Weet u zeker dat u verder wilt gaan?
-messgae.validate.min=Gelieve een waarde groter of gelijk aan {0} in te geven.
-mode=Modus
-network.rate=Netwerk Snelheid
-notification.reboot.instance=Herstart instantie
-notification.start.instance=Start Instantie
-notification.stop.instance=Stop Instantie
-side.by.side=Zij aan Zij
-state.Accepted=Geaccepteerd
-state.Active=Actief
-state.Allocated=Gebruikt
-state.Allocating=Alloceren
-state.BackedUp=Geback-upt
-state.BackingUp=Back-uppen
-state.Completed=Uitgevoerd
-state.Creating=Aanmaken
-state.Declined=Geweigerd
-state.Destroyed=Verwijderd
-state.detached=ontkoppeld
-state.Disabled=Uitgeschakeld
-state.Enabled=Geactiveerd
-state.Error=Fout
-state.Expunging=Opruimen
-state.Migrating=MIgreren
-state.Pending=In afwachting
-state.Ready=Klaar
-state.Running=Draaiend
-state.Starting=Starten
-state.Stopped=Gestopt
-state.Stopping=Stoppen
-state.Suspended=Gepauzeerd
-title.upload.volume=laad volume
-ui.listView.filters.all=Alle
-ui.listView.filters.mine=Eigen
diff --git a/client/WEB-INF/classes/resources/messages_pl.properties b/client/WEB-INF/classes/resources/messages_pl.properties
deleted file mode 100644
index be5ca74..0000000
--- a/client/WEB-INF/classes/resources/messages_pl.properties
+++ /dev/null
@@ -1,484 +0,0 @@
-# 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.
-
-error.invalid.username.password=B\u0142\u0119dna nazwa u\u017cytkownika lub has\u0142o
-label.account.id=ID konta
-label.account=Konto
-label.account.name=Nazwa konta
-label.accounts=Konta
-label.action.attach.disk=Dodaj dysk
-label.action.attach.disk.processing=Dodawanie dysku
-label.action.attach.iso=Dodaj obraz ISO
-label.action.attach.iso.processing=Dodawanie obrazu ISO
-label.action.change.password=Zmie\u0144 has\u0142o
-label.action.copy.ISO=Kopiuj ISO
-label.action.copy.template=Kopij szablon
-label.action.create.template.from.vm=Utw\u00f3rz szablon z VM
-label.action.create.template.from.volume=Utw\u00f3rz Szablon z wolumenu
-label.action.create.template.processing=Tworz\u0119 szablon
-label.action.create.template=Utw\u00f3rz szablon
-label.action.create.vm.processing=Tworz\u0119 VM....
-label.action.create.vm=Utw\u00f3rz VM
-label.action.create.volume.processing=Tworz\u0119 wolumen....
-label.action.create.volume=Utw\u00f3rz wolumen
-label.action.delete.account.processing=Usuwanie dost\u0119pu....
-label.action.delete.account=Usu\u0144 dost\u0119p
-label.action.delete.cluster.processing=Usuwam klaster....
-label.action.delete.cluster=Usu\u0144 klaster
-label.action.delete.domain.processing=Usuwam domen\u0119....
-label.action.delete.domain=Usu\u0144 domen\u0119
-label.action.delete.firewall.processing=Usuwam Firewall
-label.action.delete.firewall=Usu\u0144 regu\u0142\u0119 Firewall
-label.action.delete.ISO.processing=Usuwam ISO....
-label.action.delete.ISO=Usu\u0144 ISO
-label.action.delete.network.processing=Usuwam sie\u0107....
-label.action.delete.network=Usu\u0144 sie\u0107
-label.action.delete.nexusVswitch=Usu\u0144 Nexus 1000v
-label.action.delete.physical.network=Usu\u0144 fizyczn\u0105 sie\u0107
-label.action.delete.user.processing=Usuwam u\u017cytkownika....
-label.action.delete.user=Usu\u0144 u\u017cytkownika
-label.action.delete.volume.processing=Usuwam wolumen....
-label.action.delete.volume=Usu\u0144 wolumen
-label.action.delete.zone.processing=Usuwam stref\u0119....
-label.action.delete.zone=Usu\u0144 stref\u0119
-label.action.destroy.instance.processing=Usuwam instancj\u0119
-label.action.destroy.instance=Usu\u0144 instancj\u0119
-label.action.detach.disk=Od\u0142\u0105cz dysk
-label.action.detach.disk.processing=Od\u0142\u0105czanie dysku....
-label.action.detach.iso=Od\u0142\u0105cz obraz ISO
-label.action.detach.iso.processing=Od\u0142\u0105czanie obrazu ISO
-label.action.disable.account.processing=Wy\u0142\u0105czam dost\u0119p....
-label.action.disable.account=Wy\u0142\u0105cz dost\u0119p
-label.action.disable.cluster.processing=Wy\u0142\u0105czam klaster....
-label.action.disable.cluster=Wy\u0142\u0105cz klaster
-label.action.disable.nexusVswitch=Wy\u0142\u0105cz Nexus 1000v
-label.action.disable.physical.network=Wy\u0142\u0105cz fizyczn\u0105 sie\u0107
-label.action.disable.user.processing=Wy\u0142\u0105czam u\u017cytkownika
-label.action.disable.user=Wy\u0142\u0105cz u\u017cytkownika
-label.action.disable.zone.processing=Wy\u0142\u0105czam stref\u0119....
-label.action.disable.zone=Wy\u0142\u0105cz stref\u0119
-label.action.download.ISO=Pobierz ISO
-label.action.download.template=Pobierz szablon
-label.action.download.volume=Pobierz wolumen
-label.action.download.volume.processing=Pobieram wolumen....
-label.action.edit.account=Edytuj dost\u0119p
-label.action.edit.domain=Edytuj domen\u0119
-label.action.edit.global.setting=Edytuj Globalne ustawienia
-label.action.edit.host=Edytuj host
-label.action.edit.instance=Edytuj instancj\u0119
-label.action.edit.ISO=Edytuj ISO
-label.action.edit.network=Edytuj sie\u0107
-label.action.edit.network.processing=Zmieniam sie\u0107....
-label.action.edit.template=Edytuj szablon
-label.action.edit.user=Edytuj u\u017cytkownika
-label.action.edit.zone=Edytuj stref\u0119
-label.action.enable.account.processing=W\u0142\u0105czam dost\u0119p....
-label.action.enable.account=W\u0142\u0105cz dost\u0119p
-label.action.enable.cluster.processing=W\u0142\u0105czam klaster....
-label.action.enable.cluster=W\u0142\u0105cz klaster
-label.action.enable.nexusVswitch=W\u0142\u0105cz Nexus 1000v
-label.action.enable.physical.network=W\u0142\u0105cz fizyczn\u0105 sie\u0107
-label.action.enable.user.processing=W\u0142\u0105czam u\u017cytkownika....
-label.action.enable.user=W\u0142\u0105cz u\u017cytkownika
-label.action.enable.zone.processing=W\u0142\u0105czam stref\u0119....
-label.action.enable.zone=W\u0142\u0105cz stref\u0119
-label.action.generate.keys=Generuj klucze
-label.action.generate.keys.processing=Generuj\u0119 klucze....
-label.action.list.nexusVswitch=Kista Nexus 1000v
-label.action.lock.account.processing=Blokuj\u0119 dost\u0119p....
-label.action.lock.account=Zablokuj dost\u0119p
-label.action.manage.cluster.processing=Zarz\u0105dzam klastrem....
-label.action.manage.cluster=Zarz\u0105dzaj klastrem
-label.action.migrate.instance=Migruj instancj\u0119
-label.action.migrate.instance.processing=Migruj\u0119 instancj\u0119....
-label.action.migrate.router=Migruj router
-label.action.migrate.router.processing=Migruje router....
-label.action.migrate.systemvm=Migruj system VM
-label.action.migrate.systemvm.processing=Migruj\u0119 system VM....
-label.action.reboot.instance.processing=Restartuje instancj\u0119
-label.action.reboot.instance=Restartuj instancj\u0119
-label.action.reboot.router.processing=Restartuje router.....
-label.action.reboot.router=Restartuj router
-label.action.reboot.systemvm.processing=Restartuje system VM....
-label.action.reboot.systemvm=Restartuj system VM
-label.action.register.iso=Rejestruj ISO
-label.action.remove.host.processing=Usuwam host....
-label.action.remove.host=Usu\u0144 host
-label.action.reset.password.processing=Resetuj\u0119 has\u0142o....
-label.action.reset.password=Resetuj has\u0142o
-label.action.resize.volume.processing=Zmieniam wielko\u015b\u0107 wolumenu....
-label.action.resize.volume=Zmie\u0144 wielko\u015b\u0107 wolumenu
-label.action.restore.instance=Przywr\u00f3\u0107 instancj\u0119
-label.actions=Akcje
-label.action.start.instance.processing=Uruchamiam instancj\u0119....
-label.action.start.instance=Uruchom instancj\u0119
-label.action.start.router.processing=Uruchamiam router....
-label.action.start.router=Uruchom router
-label.action.start.systemvm.processing=Uruchamiam system VM...
-label.action.start.systemvm=Uruchom system VM
-label.action.stop.instance.processing=Zatrzymuj\u0119 instancj\u0119....
-label.action.stop.instance=Zatrzymaj instancj\u0119
-label.action.stop.router.processing=Zatrzymuj\u0119 router...
-label.action.stop.router=Zatrzymaj router
-label.action.stop.systemvm.processing=Zatrzymuj\u0119 system VM....
-label.action.stop.systemvm=Zatrzymaj system VM
-label.action.take.snapshot.processing=Tworz\u0119 snapshot....
-label.action.take.snapshot=Zr\u00f3b snapshot
-label.activate.project=Aktywuj projekt
-label.add.account=Dodaj konto
-label.add.accounts=Dodaj konta
-label.add.accounts.to=Dodaj konto do
-label.add.account.to.project=Dodaj konto do projektu
-label.add.ACL=Dodaj ACL
-label.add.by.cidr=Dodaj przez CIDR
-label.add.by=Dodaj przez
-label.add.by.group=Dodaj przez grup\u0119
-label.add.cluster=Dodaj klaster
-label.add=Dodaj
-label.add.domain=Dodaj domen\u0119
-label.add.firewall=Dodaj regu\u0142\u0119 firewall
-label.add.host=Dodaj host
-label.adding=Dodawanie
-label.adding.failed=Dodanie nieudane
-label.adding.processing=Dodawanie
-label.adding.succeeded=Dodanie udane
-label.add.more=Dodaj wi\u0119cej
-label.add.network.device=Dodaj urz\u0105dzenie sieciowe
-label.add.network=Dodaj sie\u0107
-label.add.new.F5=Dodaj nowy F5
-label.add.new.SRX=Dodaj nowy SRX
-label.add.region=Dodaj region
-label.add.rule=Dodaj regu\u0142\u0119
-label.add.to.group=Dodaj do grupy
-label.add.user=Dodaj u\u017cytkownika
-label.add.vlan=Dodaj VLAN
-label.add.vm=Dodaj VM
-label.add.vms=Dodaj VM-ny
-label.add.volume=Dodaj wolumen
-label.add.vpc=Dodaj VPC
-label.add.zone=Dodaj stref\u0119
-label.admin=Admin
-label.api.key=Klucz API
-label.apply=Zastosuj
-label.author.name=Imi\u0119 autora
-label.available=Dost\u0119pne
-label.available.public.ips=Dost\u0119pne publiczne adresy IP
-label.back=Wstecz
-label.bandwidth=Przepustowo\u015b\u0107
-label.cancel=Zako\u0144cz
-label.certificate=Certyfikat
-label.cidr=CIDR
-label.CIDR.list=Lista CIDR
-label.clean.up=Wyczy\u015b\u0107
-label.clear.list=Wyczy\u015b\u0107 list\u0119
-label.close=Zamknij
-label.clvm=CLVM
-label.code=Kod
-label.community=Spo\u0142eczno\u015b\u0107
-label.configuration=Konfiguracja
-label.configure=Konfiguruj
-label.configure.vpc=Konfiguruj VPC
-label.confirmation=Potwierdzenie
-label.confirm.password=Potwierd\u017a has\u0142o
-label.congratulations=Gratulacje\!
-label.continue=Kontynuuj
-label.corrections.saved=Poprawka zapisana
-label.cpu=CPU
-label.cpu.limits=Limit CPU
-label.cpu.mhz=CPU (w MHz)
-label.created.by.system=Utworzono przez system
-label.created=Utworzono
-label.create.project=Stw\u00f3rz projekt
-label.daily=Dziennie
-label.date=Data
-label.day.of.month=Dzie\u0144 miesi\u0105ca
-label.day.of.week=Dzie\u0144 tygodnia
-label.dedicated=Dedykowany
-label.default=Domy\u015blnie
-label.default.view=Widok domy\u015blny
-label.delete.F5=Usu\u0144 F5
-label.delete.project=Usu\u0144 projekt
-label.delete.SRX=Usu\u0144 SRX
-label.delete=Usu\u0144
-label.deleting.failed=Usuwanie nieudane
-label.deleting.processing=Usuwanie....
-label.destroy.router=Zniszcz router
-label.destroy=Zniszcz
-label.detaching.disk=Od\u0142\u0105czanie dysku
-label.details=Szczeg\u00f3\u0142y
-label.disabled=Wy\u0142\u0105czony
-label.disable.vpn=Wy\u0142\u0105cz VPN
-label.disk.size.gb=Wielko\u015b\u0107 dysku (w GB)
-label.disk.size=Wielko\u015b\u0107 dysku
-label.domain.admin=Administrator domeny
-label.domain=Domena
-label.domain.id=ID domeny
-label.domain.name=Nazwa domeny
-label.done=Sko\u0144czono
-label.download.progress=Post\u0119p w pobieraniu
-label.drag.new.position=Przenie\u015b w nowe miejsce
-label.edit=Edytuj
-label.edit.network.details=Edytuj szczeg\u00f3\u0142y sieci
-label.edit.project.details=Zmie\u0144 szczeg\u00f3\u0142y projektu
-label.edit.vpc=Edytuj VPC
-label.elastic=Elastyczny
-label.elastic.IP=Zmienne IP
-label.email=Poczta
-label.enable.vpn=W\u0142\u0105cz VPN
-label.error=B\u0142\u0105d
-label.f5=F5
-label.failed=B\u0142\u0105d
-label.featured=Polecane
-label.filterBy=Filtrowanie wg
-label.firewall=Zapora
-label.first.name=Pierwsza nazwa
-label.format=Format
-label.friday=Pi\u0105tek
-label.full.path=Pe\u0142na \u015bcie\u017cka
-label.go.step.2=Id\u017a do punktu 2
-label.go.step.3=Id\u017a do punktu 3
-label.go.step.4=Id\u017a do punktu 4
-label.go.step.5=Id\u017a do punktu 5
-label.gpu=CPU
-label.group=Grupa
-label.group.optional=Grupa (opcjonalnie)
-label.guest=Go\u015b\u0107
-label.guest.type=Rodzaj go\u015bci
-label.help=Pomoc
-label.hints=Podpowiedzi
-label.id=ID
-label.info=Informacje
-label.instances=Instancje
-label.invitations=Zaproszenia
-label.invited.accounts=Zaproszone konta
-label.invite.to=Zapro\u015b do
-label.invite=Zapro\u015b
-label.ip=IP
-label.ips=IP
-label.iso=ISO
-label.keep=Zostaw
-label.key=Klucz
-label.lang.english=Angielski
-label.lang.french=Francuski
-label.lang.japanese=Japo\u0144ski
-label.lang.korean=Korea\u0144ski
-label.lang.russian=Rosyjski
-label.lang.spanish=Hiszpia\u0144ski
-label.last.name=Nazwisko
-label.launch=Rozpocznij
-label.lb.algorithm.leastconn=Ostatnie po\u0142\u0105czenie
-label.ldap.link.type=Wpisz
-label.level=Poziom
-label.loading=Wczytywanie
-label.local=Lokalne
-label.local.storage=Pami\u0119\u0107 lokalna
-label.login=Zaloguj
-label.logout=Wyloguj
-label.lun=LUN
-label.LUN.number=LUN \#
-label.max.guest.limit=Maksymalna liczba go\u015bci
-label.maximum=Maksimum
-label.max.public.ips=Maksymalna liczba publicznych adres\u00f3w IP
-label.memory.limits=Limit pami\u0119ci (MiB)
-label.memory.mb=Pami\u0119\u0107 (w MB)
-label.memory=Pami\u0119\u0107
-label.menu.accounts=Konta
-label.menu.alerts=Alarmy
-label.menu.all.accounts=Wszystkie konta
-label.menu.all.instances=Wszystkie instancje
-label.menu.configuration=Konfiguracja
-label.menu.domains=Domeny
-label.menu.infrastructure=Infrastruktura
-label.menu.instances=Instancje
-label.menu.ipaddresses=Adresy IP
-label.menu.isos=ISO
-label.menu.my.accounts=Moje konta
-label.menu.my.instances=Moje instancje
-label.menu.my.isos=Moje ISO
-label.menu.network=Sie\u0107
-label.menu.regions=Regiony
-label.menu.system=System
-label.metrics.cpu.used.avg=U\u017cyte
-label.metrics.disk.size=Wielko\u015bc
-label.metrics.disk.storagetype=Wpisz
-label.metrics.disk.used=U\u017cyte
-label.metrics.memory.used.avg=U\u017cyte
-label.metrics.name=Nazwa
-label.metrics.state=Status
-label.minimum=Minimum
-label.mode=Tryb
-label.monday=Poniedzia\u0142ek
-label.monthly=Miesi\u0119cznie
-label.move.down.row=Jeden rz\u0105d na d\u00f3\u0142
-label.move.to.top=Przenie\u015b na sam\u0105 g\u00f3r\u0119
-label.move.up.row=Jeden rz\u0105d do g\u00f3ry
-label.my.account=Moje konto
-label.my.network=Moja sie\u0107
-label.name.lower=Nazwa
-label.name=Nazwa
-label.name.optional=Nazwa (opcjonalnie)
-label.network.id=ID sieci
-label.network.name=Nazwa sieci
-label.network=Sie\u0107
-label.networks=Sieci
-label.new=Nowy
-label.new.project=Nowy projekt
-label.next=Nast\u0119pny
-label.nfs=NFS
-label.nfs.server=Serwer NFS
-label.no.data=Brak danych
-label.none=Brak
-label.no=Nie
-label.no.thanks=Nie dzi\u0119kuj\u0119
-label.notifications=Przypomnienia
-label.number.of.hosts=Liczba host\u00f3w
-label.ok=OK
-label.order=Zadanie
-label.outofbandmanagement.password=Has\u0142o
-label.outofbandmanagement.username=Nazwa u\u017cytkownika
-label.password=Has\u0142o
-label.path=\u015acie\u017cka
-label.please.wait=Prosz\u0119 czeka\u0107
-label.plugin.details=Szczeg\u00f3\u0142y wtyczki
-label.plugins=Wtyczki
-label.previous=Wstecz
-label.private.network=Sie\u0107 prywatna
-label.project.id=Nazwa ID projektu
-label.project.invite=Zapro\u015b do projektu
-label.project.name=Nazwa projektu
-label.project=Projekt
-label.projects=Projekty
-label.protocol=Protok\u00f3\u0142
-label.providers=Dostawcy
-label.public.ip=Publiczny adres IP
-label.public.ips=Publiczne adresy IP
-label.public.network=Sie\u0107 publiczna
-label.public=Pobliczny
-label.public.port=Publiczny port
-label.quota.date=Data
-label.quota.fullsummary=Wszystkie konta
-label.quota.state=Status
-label.reboot=Uruchom ponownie
-label.refresh=Od\u015bwie\u017c
-label.region=Region
-label.remind.later=Przypomnij p\u00f3\u017aniej
-label.remove.rule=Usu\u0144 regu\u0142\u0119
-label.remove.vpc=Usu\u0144 VPC
-label.removing.user=Usu\u0144 u\u017cytkownika
-label.removing=Usuwanie
-label.required=Wymagane
-label.resource.limits=Limit zasob\u00f3w
-label.resources=Zasoby
-label.resource=Zas\u00f3b
-label.restart.required=Wymagany restart
-label.rules=Zasady
-label.saturday=Sobota
-label.save.and.continue=Zapisz i kontynuuj
-label.save=Zapisz
-label.saving.processing=Zapisywanie....
-label.search=Szukaj
-label.select.instance=Wybierz instancj\u0119
-label.select.project=Wybierz projekt
-label.select=Wybierz
-label.sent=Wys\u0142ano
-label.server=Serwer
-label.setup=Konfiguracja
-label.size=Wielko\u015bc
-label.specify.IP.ranges=Wyszczeg\u00f3lnij zasi\u0119g adres\u00f3w IP
-label.srx=SRX
-label.state=Status
-label.statistics=Statystyki
-label.status=Status
-label.step.1=Krok 1
-label.step.2=Krok 2
-label.step.3=Krok 3
-label.step.4=Krok 4
-label.step.5=Krok 5
-label.sticky.domain=Domena
-label.sticky.expire=Wygasa
-label.sticky.length=D\u0142ugo\u015b\u0107
-label.sticky.mode=Tryb
-label.sticky.prefix=Prefiks
-label.stop=Stop
-label.sunday=Niedziela
-label.suspend.project=Zawie\u015b projekt
-label.tagged=Otagowany
-label.tags=Tagi
-label.task.completed=Zadania uko\u0144czone
-label.time=Czas
-label.time.zone=Strefa czasowa
-label.timezone=Strefa czasowa
-label.type.id=Wpisz ID
-label.type=Wpisz
-label.unavailable=Niedost\u0119pny
-label.unlimited=Nieograniczony
-label.untagged=Nieotagowany
-label.updating=Aktualizowanie
-label.url=URL
-label.used=U\u017cyte
-label.username=Nazwa u\u017cytkownika
-label.users=U\u017cytkownicy
-label.user=U\u017cytkowni
-label.version=Wersja
-label.view.all=Zobacz wszystko
-label.view=Zobacz
-label.vlan.only=VLAN
-label.vlan=VLAN
-label.vm.add=Dodaj instancj\u0119
-label.vm.destroy=Zniszcz
-label.vmfs=VMFS
-label.vm.name=Nazwa VM
-label.vm.reboot=Uruchom ponownie
-label.vmsnapshot.type=Wpisz
-label.vm.start=Rozpocznij
-label.vm.stop=Stop
-label.vms=VMs
-label.vnet=VLAN
-label.vpc=VPC
-label.vpn=VPN
-label.waiting=Czekanie
-label.warn=Ostrze\u017cenie
-label.wednesday=\u015aroda
-label.weekly=Tygodniowo
-label.welcome=Witaj
-label.what.is.cloudstack=Czym jest CloudStack&\#8482?
-label.yes=Tak
-message.action.delete.nexusVswitch=Potwierd\u017a, \u017ce chcesz usun\u0105\u0107\: nexus 1000v
-message.action.download.iso=Potwierd\u017a, \u017ce chcesz pobra\u0107 ten obraz ISO.
-message.activate.project=Czy na pewno chcesz aktywowa\u0107 ten projekt?
-message.confirm.delete.F5=Czy na pewno chcesz usun\u0105\u0107 F5?
-message.confirm.delete.SRX=Czy na pewno chcesz usun\u0105\u0107 SRX?
-message.delete.project=Czy na pewno chcesz usun\u0105\u0107 ten projekt?
-message.disable.vpn=Czy na pewno chcesz wy\u0142\u0105czy\u0107 VPN?
-message.no.projects=Nie posiadasz \u017cadnych projekt\u00f3w.<br/> Utw\u00f3rz nowy projekt w zak\u0142adce projekty
-message.please.proceed=Przejd\u017a do nast\u0119pnego punktu
-message.suspend.project=Czy na pewno chcesz zawiesi\u0107 ten projekt
-mode=Tryb
-state.Accepted=Akceptowano
-state.Active=Aktywny
-state.Completed=Uko\u0144czono
-state.Creating=Tworzenie
-state.Declined=Odrzucono
-state.Destroyed=Zniszczono
-state.Disabled=Wy\u0142\u0105czony
-state.Enabled=W\u0142\u0105czone
-state.Error=B\u0142\u0105d
-state.Ready=Gotowe
-state.Starting=Rozpoczynanie
-state.Stopped=Zatrzymano
-state.Suspended=Zawieszono
-ui.listView.filters.all=Wszystko
diff --git a/client/WEB-INF/classes/resources/messages_pt_BR.properties b/client/WEB-INF/classes/resources/messages_pt_BR.properties
deleted file mode 100644
index b64cea3..0000000
--- a/client/WEB-INF/classes/resources/messages_pt_BR.properties
+++ /dev/null
@@ -1,2261 +0,0 @@
-# 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.
-
-changed.item.properties=Propriedades do item alteradas
-confirm.enable.s3=Por favor, preencha as informa\u00e7\u00f5es abaixo para habilitar suporte o Storage Secund\u00e1rio fornecido por S3
-confirm.enable.swift=Por favor, preencha as informa\u00e7\u00f5es abaixo para habilitar suporte ao Swift
-error.could.not.change.your.password.because.ldap.is.enabled=Erro\: a nuvem n\u00e3o alterou sua senha porque o LDAP est\u00e1 ativo.
-error.could.not.enable.zone=N\u00e3o foi poss\u00edvel habilitar a zona
-error.installWizard.message=Alguma coisa est\u00e1 errada; voc\u00ea pode voltar e corrigir quaisquer erros
-error.invalid.username.password=Usu\u00e1rio ou senha inv\u00e1lidos
-error.login=O seu usu\u00e1rio/senha n\u00e3o coincidem com nossos registros.
-error.menu.select=N\u00e3o foi poss\u00edvel realizar a a\u00e7\u00e3o pois nenhum item foi selecionado.
-error.mgmt.server.inaccessible=O Servidor de Gerenciamento est\u00e1 inacess\u00edvel. Tente novamente mais tarde.
-error.password.not.match=Os campos de senha n\u00e3o combinam
-error.please.specify.physical.network.tags=As Ofertas de Rede n\u00e3o estar\u00e3o dispon\u00edveis enquanto voc\u00ea n\u00e3o especificar tags para esta interface f\u00edsica.
-error.session.expired=Sua sess\u00e3o expirou.
-error.something.went.wrong.please.correct.the.following=Alguma coisa est\u00e1 errada; por favor corrija abaixo
-error.unable.to.reach.management.server=N\u00e3o foi poss\u00edvel acessar o Servidor de Gerenciamento
-error.unresolved.internet.name=Imposs\u00edvel resolver DNS
-force.delete.domain.warning=Aten\u00e7\u00e3o\: Esta op\u00e7\u00e3o remover\u00e1 todos os dom\u00ednios, contas e recursos associados.
-force.delete=For\u00e7ar Exclus\u00e3o
-force.remove=For\u00e7ar Remo\u00e7\u00e3o
-force.remove.host.warning=Aten\u00e7\u00e3o\: O CloudStack desligar\u00e1 de maneira for\u00e7ada todas as VMs antes de remover o host do cluster.
-force.stop=For\u00e7ar Parada
-force.stop.instance.warning=Aviso\: For\u00e7ar o desligamento desta inst\u00e2ncia deve ser sua \u00faltima op\u00e7\u00e3o. Isto pode levar a perda de dados, bem como  comportamento inconsist\u00eante do estado da m\u00e1quina virtual.
-hint.no.host.tags=Nenhuma tag de host encontrada
-hint.no.storage.tags=Nenhuma tag de storage encontrada
-hint.type.part.host.tag=Digite parte de um tag de host
-hint.type.part.storage.tag=Digite parte de um tag de storage
-ICMP.code=C\u00f3digo ICMP
-ICMP.type=Tipo ICMP
-image.directory=Diret\u00f3rio da Imagem
-inline=Inline
-instances.actions.reboot.label=Reiniciar inst\u00e2ncia
-label.about.app=Sobre o CloudStack
-label.about=Sobre
-label.accept.project.invitation=Aceitar convite de projeto.
-label.account.and.security.group=Contas, grupos de Seguran\u00e7a
-label.account=Conta
-label.account.details=Detalhes da conta
-label.account.id=ID da Conta
-label.account.lower=conta
-label.account.name=Nome da Conta
-label.accounts=Contas
-label.account.specific=Conta-Specific
-label.account.type=Tipo de Conta
-label.acl=ACL
-label.acl.id=ACL ID
-label.acl.list.rules=Lista de regas de ACL
-label.acl.name=Nome da ACL
-label.acl.replaced=ACL trocado
-label.acquire.new.ip=Adquirir novo IP
-label.acquire.new.secondary.ip=Adquira um novo IP secund\u00e1rio
-label.action.attach.disk=Anexar Disco
-label.action.attach.disk.processing=Anexando Disco....
-label.action.attach.iso=Anexar ISO
-label.action.attach.iso.processing=Anexando ISO....
-label.action=A\u00e7\u00e3o
-label.action.cancel.maintenance.mode=Cancelar Modo de Manuten\u00e7\u00e3o
-label.action.cancel.maintenance.mode.processing=Cancelando Modo de Manuten\u00e7\u00e3o....
-label.action.change.password=Troca de Senha
-label.action.change.service.processing=Trocando de Plano....
-label.action.change.service=Trocar Plano
-label.action.configure.samlauthorization=Configurar Autoriza\u00e7\u00e3o SAML SSO
-label.action.copy.ISO=Copiar ISO
-label.action.copy.ISO.processing=Copiando ISO...
-label.action.copy.template=Copiar Template
-label.action.copy.template.processing=Copiando Template...
-label.action.create.template=Criar Template
-label.action.create.template.from.vm=Criar Template a partir da VM
-label.action.create.template.from.volume=Criar Template a partir do Disco
-label.action.create.template.processing=Criando Template....
-label.action.create.vm=Criar VM
-label.action.create.vm.processing=Criando VM....
-label.action.create.volume=Criar Disco
-label.action.create.volume.processing=Criando Disco....
-label.action.delete.account.processing=Removendo conta....
-label.action.delete.account=Remover conta
-label.action.delete.cluster.processing=Removendo Cluster....
-label.action.delete.cluster=Remover Cluster
-label.action.delete.disk.offering.processing=Removendo Oferta de Disco....
-label.action.delete.disk.offering=Remover Oferta de Disco
-label.action.delete.domain.processing=Removendo Dom\u00ednio....
-label.action.delete.domain=Remover Dom\u00ednio
-label.action.delete.firewall.processing=Removendo Firewall....
-label.action.delete.firewall=Remover regra de firewall
-label.action.delete.ingress.rule.processing=Removendo Regra de Entrada....
-label.action.delete.ingress.rule=Remover Regra de Entrada
-label.action.delete.IP.range.processing=Removendo Range de IP....
-label.action.delete.IP.range=Remover Range IP
-label.action.delete.ISO.processing=Removendo ISO....
-label.action.delete.ISO=Removendo ISO
-label.action.delete.load.balancer.processing=Removendo Load Balancer....
-label.action.delete.load.balancer=Remover regra de balanceador de carga
-label.action.delete.network.processing=Removendo Rede....
-label.action.delete.network=Remover Rede
-label.action.delete.nexusVswitch=Remover NexusVswitch
-label.action.delete.nic=Remover Interface de Rede
-label.action.delete.physical.network=Deletar rede f\u00edsica
-label.action.delete.pod.processing=Removendo POD....
-label.action.delete.pod=Remover POD
-label.action.delete.primary.storage.processing=Removendo Storage Prim\u00e1rio....
-label.action.delete.primary.storage=Remover Storage Prim\u00e1rio
-label.action.delete.secondary.storage.processing=Removendo Storage Secund\u00e1rio....
-label.action.delete.secondary.storage=Remover Storage Secund\u00e1rio
-label.action.delete.security.group.processing=Removendo Security Group....
-label.action.delete.security.group=Remover Security Group
-label.action.delete.service.offering.processing=Removendo Plano....
-label.action.delete.service.offering=Remover Plano
-label.action.delete.snapshot.processing=Removendo Snapshot....
-label.action.delete.snapshot=Remover Snapshot
-label.action.delete.system.service.offering=Deletar Oferta de Servi\u00e7o de Sistema
-label.action.delete.template.processing=Removendo Template....
-label.action.delete.template=Remover Template
-label.action.delete.user.processing=Removendo Usu\u00e1rio....
-label.action.delete.user=Remover Usu\u00e1rio
-label.action.delete.volume.processing=Removendo Disco....
-label.action.delete.volume=Remover Disco
-label.action.delete.zone.processing=Removendo Zona....
-label.action.delete.zone=Remover Zona
-label.action.destroy.instance=Apagar Inst\u00e2ncia
-label.action.destroy.instance.processing=Apagando Inst\u00e2ncia....
-label.action.destroy.systemvm=Apagar VM de Sistema
-label.action.destroy.systemvm.processing=Apagando VM de Sistema....
-label.action.detach.disk=Desplugar Disco
-label.action.detach.disk.processing=Desplugando Disco....
-label.action.detach.iso=Desplugar ISO
-label.action.detach.iso.processing=Desplugando ISO....
-label.action.disable.account=Desativar conta
-label.action.disable.account.processing=Desativando conta....
-label.action.disable.cluster=Desativar Cluster
-label.action.disable.cluster.processing=Desativando Cluster....
-label.action.disable.nexusVswitch=Desabilitar NexusVswitch
-label.action.disable.physical.network=Desabilitar rede f\u00edsica
-label.action.disable.pod=Desativar POD
-label.action.disable.pod.processing=Desativando POD....
-label.action.disable.static.NAT=Desativar NAT Est\u00e1tico
-label.action.disable.static.NAT.processing=Desativando NAT Est\u00e1tico....
-label.action.disable.user=Desativar Usu\u00e1rio
-label.action.disable.user.processing=Desativando Usu\u00e1rio....
-label.action.disable.zone=Desativar Zona
-label.action.disable.zone.processing=Desativando Zona....
-label.action.download.ISO=Baixar ISO
-label.action.download.template=Baixar Template
-label.action.download.volume=Baixar Disco
-label.action.download.volume.processing=Baixando Disco....
-label.action.edit.account=Editar conta
-label.action.edit.disk.offering=Editar Oferta de Disco
-label.action.edit.domain=Editar Dom\u00ednio
-label.action.edit.global.setting=Editar Configura\u00e7\u00f5es Globais
-label.action.edit.host=Editar Host
-label.action.edit.instance=Editar Inst\u00e2ncia
-label.action.edit.ISO=Editar ISO
-label.action.edit.network=Editar Rede
-label.action.edit.network.offering=Editar Oferta de Rede
-label.action.edit.network.processing=Editarando Rede....
-label.action.edit.pod=Editar Pod
-label.action.edit.primary.storage=Editar Storage Prim\u00e1rio
-label.action.edit.resource.limits=Editar Limite de Recursos
-label.action.edit.service.offering=Editar Plano
-label.action.edit.template=Editar Template
-label.action.edit.user=Editar Usu\u00e1rio
-label.action.edit.zone=Editar Zona
-label.action.enable.account=Ativar conta
-label.action.enable.account.processing=Ativando conta....
-label.action.enable.cluster=Ativar Cluster
-label.action.enable.cluster.processing=Ativando Cluster....
-label.action.enable.maintenance.mode=Ativar Modo de Manuten\u00e7\u00e3o
-label.action.enable.maintenance.mode.processing=Ativando Modo de Manuten\u00e7\u00e3o....
-label.action.enable.nexusVswitch=Habilitar NexusVswitch
-label.action.enable.physical.network=Habilitar rede f\u00edsica
-label.action.enable.pod=Ativar POD
-label.action.enable.pod.processing=Ativando POD....
-label.action.enable.static.NAT=Ativar NAT Est\u00e1tico
-label.action.enable.static.NAT.processing=Ativando NAT Est\u00e1tico....
-label.action.enable.user=Habilitar usu\u00e1rio
-label.action.enable.user.processing=Habilitando Usu\u00e1rio...
-label.action.enable.zone=Ativar Zona
-label.action.enable.zone.processing=Ativando Zona....
-label.action.expunge.instance=Eliminar Inst\u00e2ncia
-label.action.expunge.instance.processing=Expurgando Inst\u00e2ncia....
-label.action.force.reconnect=Force Reconnect
-label.action.force.reconnect.processing=Reconectando....
-label.action.generate.keys=Gerar Chaves
-label.action.generate.keys.processing=Gerando Chaves....
-label.action.list.nexusVswitch=Listar NexusVswitch
-label.action.lock.account=Bloquear conta
-label.action.lock.account.processing=Bloqueando conta....
-label.action.manage.cluster.processing=Vinculando o Cluster....
-label.action.manage.cluster=Vincular Cluster
-label.action.migrate.instance=Migrar Inst\u00e2ncia
-label.action.migrate.instance.processing=Migrando Inst\u00e2ncia....
-label.action.migrate.router=Migrar Roteador
-label.action.migrate.router.processing=Migrando Roteador...
-label.action.migrate.systemvm=Migrar VM de Sistema
-label.action.migrate.systemvm.processing=Migrando VM de Sistema...
-label.action.reboot.instance.processing=Reiniciando Inst\u00e2ncia...
-label.action.reboot.instance=Reiniciar Inst\u00e2ncia
-label.action.reboot.router.processing=Reiniciando Roteador....
-label.action.reboot.router=Reiniciar Roteador
-label.action.reboot.systemvm.processing=Reiniciando VM de Sistema....
-label.action.reboot.systemvm=Reiniciar VM de Sistema
-label.action.recurring.snapshot=Snapshots recorrentes
-label.action.register.iso=Registrar ISO
-label.action.register.template=Registrar Template da URL
-label.action.release.ip=Liberar IP
-label.action.release.ip.processing=Liberando IP....
-label.action.remove.host.processing=Removendo Host....
-label.action.remove.host=Remover Host
-label.action.reset.password.processing=Recuperando a Senha....
-label.action.reset.password=Recuperar Senha
-label.action.resize.volume.processing=Resizing Volume....
-label.action.resize.volume=Resize Volume
-label.action.resource.limits=Limite de Recursos
-label.action.restore.instance.processing=Restaurando Inst\u00e2ncia...
-label.action.restore.instance=Restaurar Inst\u00e2ncia
-label.action.revert.snapshot.processing=Revertendo para Snapshot...
-label.action.revert.snapshot=Reverter para Snapshot
-label.actions=A\u00e7\u00f5es
-label.action.start.instance=Iniciar Inst\u00e2ncia
-label.action.start.instance.processing=Iniciando Inst\u00e2ncia...
-label.action.start.router=Iniciar Roteador
-label.action.start.router.processing=Iniciando Roteador....
-label.action.start.systemvm=Iniciar VM de Sistema
-label.action.start.systemvm.processing=Iniciando VM de Sistema....
-label.action.stop.instance=Parar Inst\u00e2ncia
-label.action.stop.instance.processing=Parando Inst\u00e2ncia...
-label.action.stop.router=Parar Roteador
-label.action.stop.router.processing=Parando Roteador....
-label.action.stop.systemvm=Parar VM de Sistema
-label.action.stop.systemvm.processing=Parando VM de Sistema....
-label.action.take.snapshot.processing=Tirando Snapshot....
-label.action.take.snapshot=Tirar Snapshot
-label.action.unmanage.cluster=Desvincular Cluster
-label.action.unmanage.cluster.processing=Desvinculando Cluster....
-label.action.update.OS.preference=Atualizar Prefer\u00eancia de SO
-label.action.update.OS.preference.processing=Atualizando Prefer\u00eancia de SO....
-label.action.update.resource.count=Atualiza Contador de Recursos
-label.action.update.resource.count.processing=Atualizando Contador de Recursos....
-label.action.vmsnapshot.create=Fazer Snapshot de VM
-label.action.vmsnapshot.delete=Remover snapshot de VM
-label.action.vmsnapshot.revert=Reverter snapshot de VM
-label.activate.project=Ativar Projeto
-label.active.sessions=Sess\u00f5es Ativas
-label.add.account=Adicionar Conta
-label.add.accounts=Adicionar contas
-label.add.accounts.to=Adicionar contas para
-label.add.account.to.project=Adicionar conta ao projeto
-label.add.ACL=Adicionar ACL
-label.add.acl.list=Adiciona Lista ACL
-label.add=Adicionar
-label.add.affinity.group=Adicionar um grupo de afinidade
-label.add.baremetal.dhcp.device=Adiciona Dispositivo DHCP Baremetal
-label.add.baremetal.rack.configuration=Adicionar Configura\u00e7\u00e3o de Rack de Baremetal
-label.add.BigSwitchBcf.device=Adicionar BigSwitch BCF Controller
-label.add.BrocadeVcs.device=Adicionar Brocade Vcs Switch
-label.add.by=Adicionado por
-label.add.by.cidr=Adicionar por CIDR
-label.add.by.group=Adicionar por Grupo
-label.add.ciscoASA1000v=Adicone Recurso
-label.add.cluster=Adicionar Cluster
-label.add.compute.offering=Adicionar oferta de computa\u00e7\u00e3o
-label.add.direct.iprange=Add Direct Ip Range
-label.add.disk.offering=Adicionar Oferta de Disco
-label.add.domain=Adicionar Dom\u00ednio
-label.added.brocade.vcs.switch=Adicionado novo Brocade Vcs Switch
-label.added.network.offering=Adicionar uma oferta de rede
-label.added.new.bigswitch.bcf.controller=Adicionar novo BigSwitch BCF Controller
-label.added.nicira.nvp.controller=Adicionado nova Controladora Nicira NVP
-label.add.egress.rule=Adicionar regra egress
-label.addes.new.f5=Adicionado novo F5
-label.add.F5.device=Adicionar dispositivo F5
-label.add.firewall=Adicionar regra de Firewall
-label.add.globo.dns=Adicionar GloboDNS
-label.add.gslb=Adicionar GSLB
-label.add.guest.network=Adicionar rede guest
-label.add.host=Adicionar Host
-label.adding=Adicionando
-label.adding.cluster=Adicionando Cluster
-label.adding.failed=Falha ao Adicionar
-label.adding.pod=Adicionando POD
-label.adding.processing=Adicionando....
-label.add.ingress.rule=Adicionar Regra de Entrada
-label.adding.succeeded=Adicionado com Sucesso
-label.adding.user=Adicionando Usu\u00e1rio
-label.adding.zone=Adicionando Zona
-label.add.intermediate.certificate=Adicionar certificado intermedi\u00e1rio
-label.add.internal.lb=Adiciona LB Interno
-label.add.ip.range=Adicionar Range de IP
-label.add.isolated.guest.network=Adiciona Rede Guest Isolada
-label.add.isolated.guest.network.with.sourcenat=Adicionar rede Guest isolada com SourceNat
-label.add.isolated.network=Adiciona Rede Isolada
-label.additional.networks=Redes Adicionais
-label.add.ldap.account=Adicionar Conta LDAP
-label.add.LDAP.account=Adicionar Conta LDAP
-label.add.list.name=Nome de Lista ACL
-label.add.load.balancer=Adicionar Load Balance
-label.add.more=Adicionar Mais
-label.add.netScaler.device=Adicionar dispositivo Netscaler
-label.add.network.ACL=Adicione ACL de rede
-label.add.network.acl.list=Adicionar Lista de ACL de Rede
-label.add.network=Adicionar Rede
-label.add.network.device=Adicionar Dispositivo de Rede
-label.add.network.offering=Adicionar oferta de rede
-label.add.new.F5=Adicionar um novo F5
-label.add.new.gateway=Adicionar novo gateway
-label.add.new.NetScaler=Adicionar um novo NetScaler
-label.add.new.PA=Adicionar novo Palo Alto
-label.add.new.SRX=Adicionar um novo SRX
-label.add.new.tier=Adicionar nova camada
-label.add.nfs.secondary.staging.store=Adiciona Armazenamento NFS de Est\u00e1gio Secund\u00e1rio
-label.add.NiciraNvp.device=Adicionar Controlador Nvp
-label.add.NuageVsp.device=Adicionar Nuage Virtualized Services Directory (VSD)
-label.add.OpenDaylight.device=Adiciona Controlador OpenDaylight
-label.add.PA.device=Adicionar dispositivo Palo Alto
-label.add.physical.network=Adicionar rede f\u00edsica
-label.add.pod=Adicionar POD
-label.add.portable.ip.range=Adicionar Faixa de Endere\u00e7os IPs Port\u00e1veis
-label.add.port.forwarding.rule=Adicionar regra de encaminhamento de porta
-label.add.primary.storage=Adicionar Storage Prim\u00e1rio
-label.add.private.gateway=Adicionar Gateway Privado
-label.add.region=Adicionar Regi\u00e3o
-label.add.resources=Adicionar Recursos
-label.add.route=Adicionar rota
-label.add.rule=Adicionar regra
-label.add.secondary.storage=Adicionar Storage Secund\u00e1rio
-label.add.security.group=Adicionar Security Group
-label.add.service.offering=Adicionar Plano
-label.add.SRX.device=Adicionar dispositivo SRX
-label.add.static.nat.rule=Adicionar regra de NAT est\u00e1tico
-label.add.static.route=Adicionar rota est\u00e1tica
-label.add.system.service.offering=Adicionar Plano para VM de Sistema
-label.add.template=Adicionar Template
-label.add.to.group=Adicionar ao grupo
-label.add.ucs.manager=Adiciona Gerenciador UCS
-label.add.user=Adicionar Usu\u00e1rio
-label.add.userdata=Userdata
-label.add.vlan=Adicionar VLAN
-label.add.vm=Adicionar VM
-label.add.vms=Adicionar VMs
-label.add.vms.to.lb=Add VM(s) na regra de balanceamento de carga
-label.add.VM.to.tier=Adicionar m\u00e1quina virtual \u00e0 camada
-label.add.vmware.datacenter=Adicionar Datacerter VMware
-label.add.vnmc.device=Adiciona dispositivo VNMC
-label.add.vnmc.provider=Adicione provedor VNMC
-label.add.volume=Adicionar Disco
-label.add.vpc=Adicionar VPC
-label.add.vpc.offering=Adicionar Oferta VPC
-label.add.vpn.customer.gateway=Adicionar Gateway de VPN de usu\u00e1rio
-label.add.VPN.gateway=Adicionar gateway de VPN
-label.add.vpn.user=Adicionar usu\u00e1rio VPN
-label.add.vxlan=Adicionar VXLAN
-label.add.zone=Adicionar Zona
-label.admin.accounts=Contas Administrativas
-label.admin=Administrador
-label.advanced=Avan\u00e7ado
-label.advanced.mode=Modo Avan\u00e7ado
-label.advanced.search=Busca Avan\u00e7ada
-label.affinity=Afinidade
-label.affinity.group=Grupo de Afinidade
-label.affinity.groups=Grupos de Afinidade
-label.agent.password=Senha do Agente
-label.agent.port=Porta do Agente
-label.agent.state=Estado do Agente
-label.agent.username=Usu\u00e1rio do Agente
-label.agree=Concordo
-label.alert=Alerta
-label.alert.archived=Alerta Arquivado
-label.alert.deleted=Alerta Apagado
-label.alert.details=Detalhes de alerta
-label.algorithm=Algoritmo
-label.allocated=Alocado
-label.allocation.state=Status da Aloca\u00e7\u00e3o
-label.allow=Pertitir
-label.anti.affinity=Anti-afinidade
-label.anti.affinity.group=Grupo de Anti-afinidade
-label.anti.affinity.groups=Grupos de Anti-afinidade
-label.api.key=API Key
-label.api.version=Ver\u00e3o da API
-label.apply=Aplicar
-label.app.name=CloudStack
-label.archive.alerts=Guardar alertas
-label.archive=Arquivo
-label.archive.events=Guardar eventos
-label.assign=Atribuir
-label.assigned.vms=VMs designadas
-label.assign.instance.another=Atribuir Inst\u00e2ncia para outra Conta
-label.assign.to.load.balancer=Atribuindo Inst\u00e2ncia ao balanceador de carga
-label.assign.vms=Atribuir VMs
-label.associated.network.id=ID de Rede Associado
-label.associated.network=Rede associada
-label.associated.profile=Perfil Associado
-label.associate.public.ip=Associa IP P\u00fablico
-label.attached.iso=Imagem ISO Plugada
-label.author.email=E-mail do autor
-label.author.name=Nome do autor
-label.autoscale.configuration.wizard=Assistente de configura\u00e7\u00e3o de AutoScale
-label.autoscale=Escalonamento Autom\u00e1tico
-label.availability=Availability
-label.availabilityZone=availabilityZone
-label.availability.zone=Datacenter
-label.available=Dispon\u00edvel
-label.available.public.ips=IP P\u00fablico Dispon\u00edvel
-label.back=Voltar
-label.bandwidth=Bandwidth
-label.baremetal.dhcp.devices=Dispositivos DHCP Baremetal
-label.baremetal.dhcp.provider=Provedor DHCP Baremetal
-label.baremetal.pxe.device=Adiciona Dispositivo PXE Baremetal
-label.baremetal.pxe.devices=Dispositivo PXE Baremetal
-label.baremetal.pxe.provider=Provedor PXE Baremetal
-label.baremetal.rack.configuration=Configura\u00e7\u00e3o do Rack de Baremetal
-label.basic=B\u00e1sico
-label.basic.mode=Modo B\u00e1sico
-label.bigswitch.bcf.details=Detalhes do BigSwitch BCF
-label.bigswitch.bcf.nat=Habilitar BigSwitch BCF NAT
-label.bigswitch.controller.address=Endere\u00e7o do BigSwitch BCF Controller
-label.blade.id=ID da L\u00e2mina
-label.blades=L\u00e2minas
-label.bootable=Inicializ\u00e1vel
-label.broadcast.domain.range=Range do dom\u00ednio de Broadcast
-label.broadcast.domain.type=Tipo de Dom\u00ednio Broadcast
-label.broadcast.uri=URI de broadcast
-label.broadcasturi=url de broadcast
-label.broadcat.uri=URI de broadcast
-label.brocade.vcs.address=Endere\u00e7o do Vcs Switch
-label.brocade.vcs.details=Detalhes do Brocade Vcs Switch
-label.by.account=por Conta
-label.by.alert.type=Por tipo de alerta
-label.by.availability=By Availability
-label.by.date.end=Por data (final)
-label.by.date.start=Por data (in\u00edcio)
-label.by.domain=por Dom\u00ednio
-label.by.end.date=por Data Final
-label.by.event.type=Por tipo de evento
-label.by.level=por N\u00edvel
-label.by.pod=por Pod
-label.by.role=por Fun\u00e7\u00e3o
-label.by.start.date=por Data Inicial
-label.by.state=por estado
-label.bytes.received=Bytes Recebidos
-label.bytes.sent=Bytes Enviados
-label.by.traffic.type=por Tipo de Tr\u00e1fego
-label.by.type.id=por Tipo de ID
-label.by.type=Por Tipo
-label.by.zone=por Zona
-label.cache.mode=Tipo do cache de escrita
-label.cancel=Cancelar
-label.capacity.bytes=Capacidade de Bytes
-label.capacity=Capacidade
-label.capacity.iops=Capacidade de IOPS
-label.certificate=Certificado
-label.change.affinity=Muda Afinidade
-label.change.ipaddress=Mudan\u00e7a de endere\u00e7o IP para NIC
-label.change.service.offering=Alterar oferta de servi\u00e7o
-label.change.value=Alterar valor
-label.character=Caracter
-label.chassis=Chassis
-label.checksum=checksum
-label.cidr.account=CIDR ou Conta/Security Group
-label.cidr=CIDR
-label.cidr.list=CIDR de Origem
-label.CIDR.list=Lista CIDR
-label.CIDR.of.destination.network=CIDR da rede de destino
-label.cisco.nexus1000v.ip.address=Endere\u00e7o IP do Nexus 1000v
-label.cisco.nexus1000v.password=Senha do Nexus 1000v
-label.cisco.nexus1000v.username=Usu\u00e1rio do Nexus 1000v
-label.ciscovnmc.resource.details=Detalhes de recurso CiscoVNMC
-label.clean.up=Limpar
-label.clear.list=Limpar lista
-label.close=Fechar
-label.cloud.console=Console de Gerenciamento da Nuvem
-label.cloud.managed=Cloud.com Managed
-label.cluster=Cluster
-label.cluster.name=Nome do Cluster
-label.clusters=Clusters
-label.cluster.type=Tipo de Cluster
-label.clvm=CLVM
-label.code=C\u00f3digo
-label.community=Comunidade
-label.compute.and.storage=Processamento e Armazenamento
-label.compute=Computa\u00e7\u00e3o
-label.compute.offering=Oferta de Computa\u00e7\u00e3o
-label.compute.offerings=Oferta de Computa\u00e7\u00e3o
-label.configuration=Configura\u00e7\u00e3o
-label.configure=Configurar
-label.configure.ldap=Configurar LDAP
-label.configure.network.ACLs=Configure ACLs de rede
-label.configure.sticky.policy=Configurar Pol\u00edtica Fixa
-label.configure.vpc=Configurar VPC
-label.confirmation=Confirma\u00e7\u00e3o
-label.confirm.password=Confirme a senha
-label.congratulations=Parab\u00e9ns\!
-label.conserve.mode=Modo Conservativo
-label.console.proxy=Console proxy
-label.console.proxy.vm=VM da Console Proxy
-label.continue.basic.install=Continuar com a instala\u00e7\u00e3o b\u00e1sica
-label.continue=Continuar
-label.copying.iso=Copiando ISO
-label.corrections.saved=Altera\u00e7\u00f5es salvas
-label.counter=Contador
-label.cpu.allocated=CPU Alocada
-label.cpu.allocated.for.VMs=CPU Alocada por VMs
-label.CPU.cap=CPU Cap
-label.cpu=CPU
-label.cpu.limits=Limite de CPU
-label.cpu.mhz=CPU (em MHz)
-label.cpu.utilized=CPU Utilizada
-label.created.by.system=Criado pelo sistema
-label.created=Criado
-label.create.nfs.secondary.staging.storage=Cria Armazenamento NFS de Est\u00e1gio Secund\u00e1rio
-label.create.nfs.secondary.staging.store=Criar storage staging secund\u00e1rio NFS
-label.create.project=Criar um projeto
-label.create.ssh.key.pair=Criar par de chaves SSH
-label.create.template=Criar template
-label.create.VPN.connection=Criar uma conex\u00e3o VPN
-label.cross.zones=Inter Zonas
-label.custom=Customizado
-label.custom.disk.iops=IOPS personalizado
-label.custom.disk.offering=Oferta de Disco customizado
-label.custom.disk.size=Tamanho Customizado
-label.daily=Di\u00e1rio
-label.data.disk.offering=Oferta de Disco Adicional
-label.date=Data
-label.day=Dia
-label.day.of.month=Dia do M\u00eas
-label.day.of.week=Dia da Semana
-label.dc.name=Nome do DC
-label.dead.peer.detection=Detec\u00e7\u00e3o de correspondente morto
-label.decline.invitation=Rejeitar convite
-label.dedicate.cluster=Cluster Dedicado
-label.dedicated=Dedicado
-label.dedicate=Dedicado
-label.dedicated.vlan.vni.ranges=Range(s) de VLAN/VNI Dedicados
-label.dedicate.host=Dedica Host
-label.dedicate.pod=Pod Dedicado
-label.dedicate.vlan.vni.range=Range de VLAN/VNI Dedicado
-label.dedicate.zone=Zona Dedicada
-label.default.egress.policy=Pol\u00edtica padr\u00e3o de egress\u00e3o
-label.default=Padr\u00e3o
-label.default.use=Uso padr\u00e3o
-label.default.view=Vis\u00e3o Padr\u00e3o
-label.delete.acl.list=Apagar Lista ACL
-label.delete.affinity.group=Deletar Grupo de Afinidade
-label.delete.alerts=Remover alertas
-label.delete.baremetal.rack.configuration=Deletar Configura\u00e7\u00e3o de Rack de Baremetal
-label.delete.BigSwitchBcf=Remover BigSwitch BCF Controller
-label.delete.BrocadeVcs=Remover Brocade Vcs Switch
-label.delete.ciscoASA1000v=Apaga CiscoASA1000v
-label.delete.ciscovnmc.resource=Apaga recurso CiscoVNMC
-label.delete.events=Remover eventos
-label.delete.F5=Remover F5
-label.delete.gateway=delete gateway
-label.delete.internal.lb=Apaga LB Interno
-label.delete.NetScaler=Remover NetScaler
-label.delete.NiciraNvp=Remover Controlador Nvp
-label.delete.NuageVsp=Remover Nuage VSD
-label.delete.OpenDaylight.device=Apaga Controladora OpenDaylight
-label.delete.PA=Remover Palo Alto
-label.delete.portable.ip.range=Deletar Endere\u00e7os IPs Port\u00e1teis
-label.delete.profile=Apaga Perfil
-label.delete.project=Deletar projeto
-label.delete=Remover
-label.delete.secondary.staging.store=Apaga Armazenamento de Est\u00e1gio Secund\u00e1rio
-label.delete.SRX=Remover SRX
-label.delete.ucs.manager=Apaga Gerenciador UCS
-label.delete.VPN.connection=deletar a conex\u00e3o VPN
-label.delete.VPN.customer.gateway=deletar gateway de VPN de usu\u00e1rio
-label.delete.VPN.gateway=deletar um gateway de VPN
-label.delete.vpn.user=Deletar usu\u00e1rio VPN
-label.deleting.failed=Falha ao remover
-label.deleting.processing=Removendo....
-label.deny=Negar
-label.deployment.planner=Deployment planejado
-label.description=Descri\u00e7\u00e3o
-label.destination.physical.network.id=ID de destino da rede f\u00edsica
-label.destination.zone=Zona de Destino
-label.destroy=Apagar
-label.destroy.router=Destruir roteador
-label.destroy.vm.graceperiod=Destruir Grace Period da VM
-label.detaching.disk=Desplugando Disco
-label.details=Detalhes
-label.device.id=ID do Dispositivo
-label.devices=Dispositivos
-label.dhcp=DHCP
-label.DHCP.server.type=Tipo de Servidor DHCP
-label.direct.attached.public.ip=IP P\u00fablico COnectado Diretamente
-label.direct.ips=IPs Diretos
-label.disable.autoscale=Desabilita Auto-escala
-label.disabled=Desativado
-label.disable.host=Desabilita Host
-label.disable.network.offering=Desabilita oferta de rede
-label.disable.provider=Desabilitar Provider
-label.disable.vnmc.provider=Habilita provedor VNMC
-label.disable.vpc.offering=Desabilitar oferta VPC
-label.disable.vpn=Desabilitar VPN
-label.disabling.vpn.access=Desativando Acesso VPN
-label.disassociate.profile.blade=Desassocia Perfil de L\u00e2mina
-label.disbale.vnmc.device=Desabilita dispositivo VNMC
-label.disk.allocated=Disco Alocado
-label.disk.bytes.read.rate=Taxa de Leitura do Disco (BPS)
-label.disk.bytes.write.rate=Taxa de Escrita no Disco (BPS)
-label.disk.iops.max=M\u00e1x IOPS
-label.disk.iops.min=M\u00edn IOPS
-label.disk.iops.read.rate=Taxa de Leitura do Disco (IOPS)
-label.disk.iops.total=IOPS Total
-label.disk.iops.write.rate=Taxa de Escrita no Disco (IOPS)
-label.disk.offering.details=Detalhes da oferta de disco
-label.diskoffering=diskoffering
-label.disk.offering=Oferta de Disco
-label.disk.provisioningtype=Tipo de Provisionamento
-label.disk.read.bytes=Leitura do Disco (Bytes)
-label.disk.read.io=Leitura do Disk (I/O)
-label.disk.size.gb=Tamanho (em GB)
-label.disk.size=Tamanho do Disco
-label.disk.total=Disco Total
-label.disk.volume=Disco
-label.disk.write.bytes=Escrita no Disco (Bytes)
-label.disk.write.io=Escrita no Disco (I/O)
-label.display.name=Mostrar Nome
-label.display.text=Descri\u00e7\u00e3o
-label.distributedrouter=Roteador Distribuido
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=Dom\u00ednio DNS para redes h\u00f3spedes
-label.domain.admin=Administrador de Dom\u00ednio
-label.domain.details=Detalhes do dom\u00ednio
-label.domain=Dom\u00ednio
-label.domain.id=ID do Dom\u00ednio
-label.domain.lower=dom\u00ednio
-label.domain.name=Nome do Dom\u00ednio
-label.domain.router=Roteador do Dom\u00ednio
-label.domain.suffix=Sufixo de Dom\u00ednio DNS (ex. xyz.com)
-label.done=Pronto
-label.double.quotes.are.not.allowed=Aspas duplas n\u00e3o s\u00e3o permitidas
-label.download.progress=Status do Download
-label.drag.new.position=Arrastar para uma nova posi\u00e7\u00e3o
-label.duration.in.sec=Dura\u00e7\u00e3o (em seg)
-label.dynamically.scalable=Dinamicamente Escal\u00e1vel
-label.edit.acl.rule=Edita regra ACL
-label.edit.affinity.group=Editar Grupo de Afinidade
-label.edit=Editar
-label.edit.lb.rule=Editar regra de LB
-label.edit.network.details=Editar detalhes de rede
-label.edit.project.details=Editar detalhes do projeto
-label.edit.region=Editar Regi\u00e3o
-label.edit.rule=Editar regra
-label.edit.secondary.ips=Editar IPs secund\u00e1rios
-label.edit.tags=Edite etiquetas
-label.edit.traffic.type=Editar tipo de tr\u00e1fego
-label.edit.vpc=Editar VPC
-label.egress.default.policy=Pol\u00edtica de Entrada Padr\u00e3o
-label.egress.rule=Regra Egress
-label.egress.rules=Regras de sa\u00edda
-label.elastic=El\u00e1stico
-label.elastic.IP=IP El\u00e1stico
-label.elastic.LB=LB El\u00e1stico
-label.email=Email
-label.email.lower=email
-label.enable.autoscale=Habilita Auto-escala
-label.enable.host=Habilita Host
-label.enable.network.offering=Habilita oferta de rede
-label.enable.provider=Habilitar provider
-label.enable.s3=Habilita storage secund\u00e1ria fornecida por S3
-label.enable.swift=Habilitar Swift
-label.enable.vnmc.device=Habilita dispositivo VNMC
-label.enable.vnmc.provider=Habilita provedor VNMC
-label.enable.vpc.offering=Habilitar oferta VPC
-label.enable.vpn=Habilitar VPN
-label.enabling.vpn.access=Ativando Acesso VPN
-label.enabling.vpn=Ativando VPN
-label.end.IP=IP do fim
-label.endpoint.or.operation=Endpoint or Operation
-label.endpoint=Ponto de acesso
-label.end.port=Porta Final
-label.end.reserved.system.IP=Fim dos IPs reservados para o sistema
-label.end.vlan=VLAN final
-label.end.vxlan=VXLAN final
-label.enter.token=Digite o token
-label.error.code=C\u00f3digo de Erro
-label.error=Erro
-label.error.upper=ERRO
-label.ESP.encryption=Encripta\u00e7\u00e3o ESP
-label.ESP.hash=Hash ESP
-label.ESP.lifetime=Tempo de vida do ESP (segundos)
-label.ESP.policy=Pol\u00edtica ESP
-label.esx.host=ESX/ESXi Host
-label.event.archived=Evento Arquivado
-label.event.deleted=Evento Detectado
-label.event=Eventos
-label.every=Cada
-label.example=Examplo
-label.expunge=Eliminar
-label.external.link=Link externo
-label.extractable=Extra\u00edvel
-label.extractable.lower=extra\u00edvel
-label.f5.details=Detalhes do F5
-label.f5=F5
-label.failed=Falhou
-label.featured=Featured
-label.fetch.latest=Obter \u00faltimos
-label.filterBy=Filtrar por
-label.fingerprint=Impress\u00e3o Digital
-label.firewall=Firewall
-label.firstname.lower=primeiro nome
-label.first.name=Primeiro Nome
-label.format=Formato
-label.format.lower=formato
-label.friday=Sexta-feira
-label.full=Full
-label.full.path=Path completo
-label.gateway=Gateway
-label.general.alerts=Alertas Gerais
-label.generating.url=Criando URL
-label.globo.dns.configuration=Configurar GloboDNS
-label.globo.dns=GloboDNS
-label.gluster.volume=Disco
-label.go.step.2=V\u00e1 para passo 2
-label.go.step.3=V\u00e1 para passo 3
-label.go.step.4=V\u00e1 para passo 4
-label.go.step.5=V\u00e1 para passo 5
-label.gpu=CPU
-label.group.by.account=Agrupamento por conta
-label.group.by.cluster=Grupo por cluster
-label.group.by.pod=Grupo por pod
-label.group.by.zone=Grupo por Zona
-label.group=Grupo
-label.group.optional=Grupo (Opcional)
-label.gslb.assigned.lb=Balanceamento de carga designado
-label.gslb.assigned.lb.more=Designe mais balanceamento de carga
-label.gslb.delete=Apaga GSLB
-label.gslb.details=Detalhes do GSLB
-label.gslb.domain.name=Nome do Dom\u00ednio GSLB
-label.gslb=GSLB
-label.gslb.lb.details=Detalhes de balanceamento de carga
-label.gslb.lb.remove=Remova balanceamento de carga deste GSLB
-label.gslb.lb.rule=Regra de balanceamento de carga
-label.gslb.service.private.ip=Servi\u00e7o GSLB - IP Privado
-label.gslb.service.public.ip=GSLB atende IP P\u00fablico
-label.gslb.service=Servi\u00e7o GSLB
-label.gslb.servicetype=Tipo do Servi\u00e7o
-label.guest.cidr=CIDR de rede Convidado
-label.guest.end.ip=IP do fim do guest
-label.guest.gateway=Gateway de rede Convidado
-label.guest=Guest
-label.guest.ip=Endere\u00e7o IP Convidado
-label.guest.ip.range=Intervalo de rede convidado
-label.guest.netmask=M\u00e1scara de rede Guest
-label.guest.network.details=Detalhes de rede convidada
-label.guest.networks=Redes Guest
-label.guest.start.ip=IP de in\u00edcio do guest
-label.guest.traffic=Tr\u00e1fego de h\u00f3spedes
-label.guest.traffic.vswitch.name=Nome do vSwitch de Tr\u00e1fego Convidado
-label.guest.traffic.vswitch.type=Tipo de vSwitch de Tr\u00e1fego Convidado
-label.guest.type=Tipo de Guest
-label.ha.enabled=HA Ativado
-label.health.check.advanced.options=Op\u00e7\u00f5es avan\u00e7adas\:
-label.health.check=Checagem de Sa\u00fade
-label.health.check.configurations.options=Op\u00e7\u00f5es de configura\u00e7\u00e3o\:
-label.health.check.interval.in.sec=Intervalo de Health Check (em seg)
-label.health.check.message.desc=Seu balanceador de carga realizar\u00e1 automaticamente verifica\u00e7\u00f5es da sa\u00fade das suas inst\u00e2ncias no Cloudstack e ir\u00e1 rotear tr\u00e1fego somente  para as inst\u00e2ncias que passarem nas verifica\u00e7\u00f5es.
-label.health.check.wizard=Assistente de configura\u00e7\u00e3o de Health Check
-label.healthy.threshold=Limiar de Sanidade
-label.help=Ajuda
-label.hide.ingress.rule=Ocultar Regra de Entrada
-label.hints=Dicas
-label.home=Home
-label.host=Host
-label.host.MAC=Host MAC
-label.host.name=Host Name
-label.hosts=Hosts
-label.host.tags=Tags de Host
-label.host.tag=Tag de host
-label.hourly=A cada hora
-label.hvm=HVM
-label.hypervisor.capabilities=Recursos de Virtualizador
-label.hypervisor=Hipervisor
-label.hypervisors=Hypervisors
-label.hypervisor.snapshot.reserve=Reserva de Snapshot do Hypervisor
-label.hypervisor.type=Tipo do Hypervisor
-label.hypervisor.version=Vers\u00e3o de Virtualizador
-label.hyperv.traffic.label=R\u00f3tulo de tr\u00e1fego HyperV
-label.id=ID
-label.IKE.DH=DH IKE
-label.IKE.encryption=Encripta\u00e7\u00e3o IKE
-label.IKE.hash=Hash IKE
-label.IKE.lifetime=Tempo de vida IKE (segundos)
-label.IKE.policy=Pol\u00edtica IKE
-label.info=Info
-label.info.upper=INFO
-label.ingress.rule=Regra de Entrada
-label.initiated.by=Iniciado por
-label.inside.port.profile=Perfil de Porta Interna
-label.installWizard.addClusterIntro.subtitle=O que \u00e9 um cluster?
-label.installWizard.addClusterIntro.title=Vamos adicionar um cluster
-label.installWizard.addHostIntro.subtitle=O que \u00e9 um Host ?
-label.installWizard.addHostIntro.title=Vamos adicionar um host
-label.installWizard.addPodIntro.subtitle=O que \u00e9 um pod ?
-label.installWizard.addPodIntro.title=Vamos adicionar um pod
-label.installWizard.addPrimaryStorageIntro.subtitle=Qual \u00e9 o storage prim\u00e1rio ?
-label.installWizard.addPrimaryStorageIntro.title=Vamos adicionar o storage prim\u00e1rio
-label.installWizard.addSecondaryStorageIntro.subtitle=Qual \u00e9 o storage secund\u00e1rio ?
-label.installWizard.addSecondaryStorageIntro.title=Vamos adicionar o storage secund\u00e1rio
-label.installWizard.addZoneIntro.subtitle=O que \u00e9 uma zona?
-label.installWizard.addZoneIntro.title=Vamos adicionar uma zona
-label.installWizard.addZone.title=Adicionar zona
-label.installWizard.click.launch=Click no bot\u00e3o executar.
-label.installWizard.subtitle=Este tour vai auxiliar voc\u00ea na configura\u00e7\u00e3o da sua instala\u00e7\u00e3o de  CloudStack&\#8482
-label.installWizard.title=Ol\u00e1, seja bem vindo ao CloudStack&\#8482
-label.instance=Inst\u00e2ncia
-label.instance.limits=Limites da Inst\u00e2ncia
-label.instance.name=Nome da Inst\u00e2ncia
-label.instance.port=Instanciar Porta
-label.instance.scaled.up=Inst\u00e2ncia escalada para a oferta solicitada
-label.instances=Inst\u00e2ncias
-label.instanciate.template.associate.profile.blade=Instancia Template e Associa Perfil \u00e0 L\u00e2mina
-label.intermediate.certificate=Certificado intermedi\u00e1rio {0}
-label.internal.dns.1=DNS 1 Interno
-label.internal.dns.2=DNS 2 Interno
-label.internal.lb.details=Detalhes de LB Interno
-label.internal.lb=LB interno
-label.internallbvm=LbVm Interno
-label.internal.name=Nome interno
-label.interval.type=Tipo de Intervalo
-label.introduction.to.cloudstack=Introdu\u00e7\u00e3o ao CloudStack&\#8482
-label.invalid.integer=Invalid Integer
-label.invalid.number=N\u00famero inv\u00e1lido
-label.invitations=Convites
-label.invite=Convidar
-label.invited.accounts=Contas convidadas
-label.invite.to=Convidar para
-label.ip.address=Endere\u00e7o IP
-label.ipaddress=Endere\u00e7o IP
-label.ip.allocations=Aloca\u00e7\u00f5es de IP
-label.ip=IP
-label.ip.limits=Limites de IP P\u00fablico
-label.ip.or.fqdn=IP ou FQDN
-label.ip.range=Range de IP
-label.ip.ranges=Ranges de IP
-label.IPsec.preshared.key=Chave IPSec pr\u00e9 compartilhada
-label.ips=IPs
-label.ipv4.cidr=CIDR IPv4
-label.ipv4.dns1=IPv4 DNS1
-label.ipv4.dns2=IPv4 DNS2
-label.ipv4.end.ip=IP FInal IPv4
-label.ipv4.gateway=Gateway IPV4
-label.ipv4.netmask=M\u00e1scara de Rede IPv4
-label.ipv4.start.ip=IP Inicial IPv4
-label.ipv6.address=Endere\u00e7o IPv6
-label.ipv6.CIDR=CIDR IPv6
-label.ipv6.dns1=IPv6 DNS1
-label.ipv6.dns2=IPv6 DNS2
-label.ipv6.end.ip=IP FInal IPv6
-label.ipv6.gateway=Gateway IPv6
-label.ipv6.start.ip=IP Inicial IPv6
-label.iscsi=iSCSI
-label.is.default=\u00c9\u0089 Padr\u00e3o
-label.iso.boot=ISO de Boot
-label.iso=ISO
-label.isolated.networks=Redes Isoladas
-label.isolation.method=M\u00e9todo de isolamento
-label.isolation.mode=Modo Isolado
-label.isolation.uri=URI de isolamento
-label.is.redundant.router=Redundante
-label.is.shared=\u00c9 Compartilhado
-label.is.system=\u00e9 um sistema
-label.item.listing=Listar items
-label.japanese.keyboard=Japanese keyboard
-label.keep.colon=Manter
-label.keep=Manter
-label.keyboard.language=Linguagem do teclado
-label.keyboard.type=Tipo de Teclado
-label.key=Chave
-label.kvm.traffic.label=Etiqueta de tr\u00e1fego KVM
-label.label=Etiqueta
-label.lang.arabic=Arabe
-label.lang.brportugese=Portugu\u00eas brasileiro
-label.lang.catalan=Catal\u00e3o
-label.lang.chinese=Chinese (Simplified)
-label.lang.dutch=Holand\u00eas (Holanda)
-label.lang.english=English
-label.lang.french=Franc\u00eas
-label.lang.german=Alem\u00e3o
-label.lang.hungarian=H\u00fangaro
-label.lang.italian=Italiano
-label.lang.japanese=Japanese
-label.lang.korean=Coreano
-label.lang.norwegian=Noruegu\u00eas
-label.lang.polish=Polon\u00eas
-label.lang.russian=Russo
-label.lang.spanish=Spanish
-label.last.disconnected=Last Disconnected
-label.lastname.lower=\u00faltimo nome
-label.last.name=\u00daltimo Nome
-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.link.type=Tipo
-label.ldap.port=Porta do LDAP
-label.level=N\u00edvel
-label.link.domain.to.ldap=Link Dom\u00ednio para LDAP
-label.linklocal.ip=Endere\u00e7o IP do Link Local
-label.load.balancer=Load Balancer
-label.load.balancer.type=Tipo de Balanceamento de Carga
-label.load.balancing=Balanceamento de Carga
-label.load.balancing.policies=Pol\u00edticas de balanceamento de carga
-label.loading=Carregando
-label.local.file=Arquivo local
-label.local=Local
-label.local.storage.enabled=Habilitar storage local para VMs de usu\u00e1rios
-label.local.storage.enabled.system.vms=Habilitar storage local para VMs de Sistema
-label.local.storage=Storage Local
-label.login=Entrar
-label.logout=Sair
-label.lun=LUN
-label.LUN.number=LUN \#
-label.lxc.traffic.label=R\u00f3tulo de tr\u00e1fego LXC
-label.make.project.owner=Criar propriet\u00e1rio de conta de projeto
-label.make.redundant=Deixar redundante
-label.managed=Gerenciado
-label.manage=Gerenciar
-label.management=Gerenciamento
-label.management.ips=Gerenciamento de Endere\u00e7os IP
-label.management.server=Servidor de Gerenciamento
-label.manage.resources=Gerenciar Recursos
-label.max.cpus=M\u00e1ximo de cores de CPU
-label.max.guest.limit=Limite m\u00e1x. de guest
-label.maximum=M\u00e1ximo
-label.max.instances=Inst\u00e2ncias Max
-label.max.memory=M\u00e1x. de mem\u00f3ria (MiB)
-label.max.networks=M\u00e1x. de redes
-label.max.primary.storage=M\u00e1x. prim\u00e1rio (GiB)
-label.max.public.ips=M\u00e1x. IPs p\u00fablicos
-label.max.secondary.storage=Max. Secund\u00e1rio (GiB)
-label.max.snapshots=Max. snapshots
-label.max.templates=M\u00e1x. templates
-label.max.vms=M\u00e1x. VMs de usu\u00e1rio
-label.max.volumes=M\u00e1x. volumes
-label.max.vpcs=M\u00e1x. VPCs
-label.may.continue=Voc\u00ea pode continuar agora
-label.md5.checksum=MD5 checksum
-label.memory.allocated=Mem\u00f3ria Alocada
-label.memory.limits=Limites de mem\u00f3ria (MiB)
-label.memory.mb=Mem\u00f3ria (em MB)
-label.memory=Mem\u00f3ria (em MB)
-label.memory.total=Mem\u00f3ria Total
-label.memory.used=Mem\u00f3ria Usada
-label.menu.accounts=Contas
-label.menu.alerts=Alertas
-label.menu.all.accounts=Todas as Contas
-label.menu.all.instances=Todas Inst\u00e2ncias
-label.menu.community.isos=ISOs P\u00fablicas
-label.menu.community.templates=Templates P\u00fablicos
-label.menu.configuration=Configura\u00e7\u00e3o
-label.menu.dashboard=Dashboard
-label.menu.destroyed.instances=Inst\u00e2ncias Apagadas
-label.menu.disk.offerings=Oferta de Discos
-label.menu.domains=Dom\u00ednios
-label.menu.events=Eventos
-label.menu.featured.isos=ISOs Customizada
-label.menu.featured.templates=Templates Customizados
-label.menu.global.settings=Configura\u00e7\u00f5es Globais
-label.menu.infrastructure=Infra-estrutura
-label.menu.instances=Inst\u00e2ncias
-label.menu.ipaddresses=Endere\u00e7os IP
-label.menu.isos=ISOs
-label.menu.my.accounts=Minhas Contas
-label.menu.my.instances=Minhas Inst\u00e2ncias
-label.menu.my.isos=Minhas ISOs
-label.menu.my.templates=Meus Templates
-label.menu.network.offerings=Oferta de Rede
-label.menu.network=Rede
-label.menu.physical.resources=Recursos B\u00e1\u00adsicos
-label.menu.regions=Regi\u00f5es
-label.menu.running.instances=Inst\u00e2ncias Rodando
-label.menu.security.groups=Grupos de seguran\u00e7a
-label.menu.service.offerings=Oferta de Servi\u00e7os
-label.menu.snapshots=Snapshots
-label.menu.sshkeypair=SSH KeyPair
-label.menu.stopped.instances=Inst\u00e2ncias Paradas
-label.menu.storage=Storage
-label.menu.system.service.offerings=Ofertas do Sistema
-label.menu.system=Sistema
-label.menu.system.vms=VM de Sistemas
-label.menu.templates=Templates
-label.menu.virtual.appliances=Appliance Virtual
-label.menu.virtual.resources=Recursos Virtuais
-label.menu.volumes=Discos
-label.menu.vpc.offerings=Ofertas VPC
-label.metrics.allocated=Alocado
-label.metrics.clusters=Clusters
-label.metrics.cpu.allocated=Aloca\u00e7\u00e3o de CPU
-label.metrics.cpu.max.dev=Desvio
-label.metrics.cpu.total=Total
-label.metrics.cpu.usage=Utiliza\u00e7\u00e3o de
-label.metrics.cpu.used.avg=Usado
-label.metrics.disk.allocated=Alocado
-label.metrics.disk=Disco
-label.metrics.disk.iops.total=IOPS
-label.metrics.disk.read=Leitura
-label.metrics.disk.size=Tamanho
-label.metrics.disk.storagetype=Tipo
-label.metrics.disk.total=Total
-label.metrics.disk.unallocated=N\u00e3o alocado
-label.metrics.disk.usage=Utiliza\u00e7\u00e3o do Disco
-label.metrics.disk.used=Usado
-label.metrics.disk.write=Escrita
-label.metrics.hosts=Hosts
-label.metrics.memory.allocated=Aloca\u00e7\u00e3o de Mem\u00f3ria
-label.metrics.memory.max.dev=Desvio
-label.metrics.memory.total=Total
-label.metrics.memory.usage=Utiliza\u00e7\u00e3o de Mem\u00f3ria
-label.metrics.memory.used.avg=Usado
-label.metrics=Metricas
-label.metrics.name=Nome
-label.metrics.network.read=Leitura
-label.metrics.network.usage=Utiliza\u00e7\u00e3o de Rede
-label.metrics.network.write=Escrita
-label.metrics.num.cpu.cores=N\u00facleos
-label.metrics.property=Propriedade
-label.metrics.scope=Escopo
-label.metrics.state=Estado
-label.metrics.storagepool=Pool de Armazanamento
-label.metrics.vm.name=Nome da VM
-label.migrate.instance.to.host=Migrar inst\u00e2ncia para outro host
-label.migrate.instance.to=Migrar Inst\u00e2ncia para
-label.migrate.instance.to.ps=Migrar inst\u00e2ncia para outro storage prim\u00e1rio
-label.migrate.lb.vm=Migre LB VM
-label.migrate.router.to=Migrar Roteador para
-label.migrate.systemvm.to=Migrar VM de sistema para
-label.migrate.to.host=Migrar para outro host
-label.migrate.to.storage=Migrar para storage
-label.migrate.volume=Migrar Volume
-label.migrate.volume.to.primary.storage=Migrar volume para outro storage prim\u00e1rio
-label.minimum=M\u00ed\u00adnimo
-label.min.instances=Inst\u00e2ncias Min
-label.min.past.the.hr=minutos passados da \u00faltima hora
-label.minute.past.hour=minuto(s) passado(s) da \u00faltima hora
-label.minutes.past.hour=minuto(s) passados da \u00faltima hora
-label.mode=Modo
-label.monday=Segunda
-label.monthly=Mensal
-label.more.templates=Mais Templates
-label.move.down.row=Mover uma c\u00e9lula para baixo
-label.move.to.bottom=Mover para baixo
-label.move.to.top=Mover para o topo
-label.move.up.row=Mover uma c\u00e9lula para cima
-label.my.account=Minha Conta
-label.my.network=Minha rede
-label.my.templates=Meus templates
-label.name.lower=Nome
-label.name=Nome
-label.name.optional=Nome (Opcional)
-label.na=N/D
-label.nat.port.range=Range de Portas NAT
-label.netmask=M\u00e1scara de Rede
-label.netscaler.details=Detalhes do NetScaler
-label.netScaler=NetScaler
-label.network.ACL=ACL de rede
-label.network.ACLs=Network ACLs
-label.network.ACL.total=Total de rede ACL
-label.network.addVM=Adicionar rede para VM
-label.network.cidr=CIDR da Rede
-label.network.desc=Descri\u00e7\u00e3o de Rede
-label.network.details=Detalhes da rede
-label.network.device=Dispositivo de Rede
-label.network.device.type=Tipo de Dispositivo de Rede
-label.network.domain=Dom\u00ednio de Rede
-label.network.domain.text=Texto do dom\ufffdnio de rede
-label.network.id=ID de Rede
-label.networking.and.security=Rede e seguran\u00e7a
-label.network.label.display.for.blank.value=Utilizar gateway default
-label.network.limits=Limites de rede
-label.network.name=Nome da Rede
-label.network.offering.details=Detalhes da oferta de rede
-label.network.offering.display.text=Network Offering Display Text
-label.network.offering.id=Network Offering ID
-label.network.offering.name=Network Offering Name
-label.network.offering=Network Offering
-label.network.rate.megabytes=Taxa de Rede (MB/s)
-label.network.rate=Taxa de Transfer\u00eancia
-label.network.read=Network Read
-label.network=Rede
-label.network.service.providers=Provedores de Servi\u00e7os de Rede
-label.networks=Redes
-label.network.type=Tipo de Rede
-label.network.write=Network Write
-label.new=Novo
-label.new.password=Nova Senha
-label.new.project=Novo Projeto
-label.new.ssh.key.pair=Novo par de chaves SSH
-label.new.vm=Nova VM
-label.next=Pr\u00f3ximo
-label.nexusVswitch=Nexus Vswitch
-label.nfs=NFS
-label.nfs.server=Servidor NFS
-label.nfs.storage=Storage NFS
-label.nic.adapter.type=Tipo de adaptador de Rede
-label.nicira.controller.address=Endere\u00e7o do Controlador
-label.nicira.l2gatewayserviceuuid=Uuid do Servi\u00e7o de Gateway L2
-label.nicira.l3gatewayserviceuuid=Uuid do Servi\u00e7o de Gateway L3
-label.nicira.nvp.details=Detalhes do Nicira NVP
-label.nicira.transportzoneuuid=Uuid da Zona de Transporte
-label.nics=Adaptadores de Rede
-label.no.actions=Sem A\u00e7\u00f5es Dispon\u00edveis
-label.no.alerts=Sem Alertas Recentes
-label.no.data=Sem dados para mostrar
-label.no.errors=Sem Erros Recentes
-label.no.grouping=(sem agrupamento)
-label.no.isos=Sem ISO Dispon\u00edvel
-label.no.items=Sem Itens Dispon\u00edveis
-label.none=Nenhum
-label.no=N\u00e3o
-label.no.security.groups=Sem Security Groups Dispon\u00edveis
-label.not.found=N\u00e3o Encontrado
-label.no.thanks=N\u00e3o obrigado
-label.notifications=Notifica\u00e7\u00f5es
-label.number.of.clusters=N\u00famero de Clusters
-label.number.of.cpu.sockets=O N\u00famero de Sockets de CPU
-label.number.of.hosts=N\u00famero de Hosts
-label.number.of.pods=N\u00famero de Pods
-label.number.of.system.vms=N\u00famero de VMs de sistema
-label.number.of.virtual.routers=N\u00famero de Roteadores Virtuais
-label.number.of.zones=N\u00famero de Zonas
-label.num.cpu.cores=\# de Core CPU
-label.numretries=N\u00famero de Tentativas
-label.ocfs2=OCFS2
-label.offer.ha=Offer HA
-label.of.month=do m\u00eas
-label.ok=OK
-label.opendaylight.controller=Controlador OpenDaylight
-label.opendaylight.controllerdetail=Detalhes do Controlador OpenDaylight
-label.opendaylight.controllers=Controladores OpenDaylight
-label.openDaylight=OpenDaylight
-label.operator=Operador
-label.optional=Opcional
-label.order=Ordenar
-label.os.preference=Prefer\u00eancia de SO
-label.os.type=Tipo de SO
-label.other=Outro
-label.outofbandmanagement.action=A\u00e7\u00e3o
-label.outofbandmanagement.address=Endere\u00e7o
-label.outofbandmanagement.password=Senha
-label.outofbandmanagement.port=Porta
-label.outofbandmanagement.username=Nome de usu\u00e1rio
-label.override.guest.traffic=Anula Tr\u00e1fego Convidado
-label.override.public.traffic=Sobrep\u00f5e Tr\u00e1fego P\u00fablico
-label.ovm3.cluster=Native Clustering
-label.ovm3.pool=Native Pooling
-label.ovm3.traffic.label=Label de trafego OVM3
-label.ovm3.vip=IP principal do Vip
-label.ovm.traffic.label=R\u00f3tulo de tr\u00e1fego OVM
-label.ovs=OVS
-label.owned.public.ips=IP P\u00fablico Utilizado
-label.owner.account=Dono da Conta
-label.owner.domain=Dono do Dom\u00ednio
-label.palo.alto.details=Detalhes do Palo Alto
-label.PA.log.profile=Palo Alto Log Profile
-label.PA=Palo Alto
-label.parent.domain=Dom\u00ednio Principal
-label.passive=Passivo
-label.password.enabled=Senha Ativada
-label.password.lower=senha
-label.password.reset.confirm=A senha foi recuperada para
-label.password=Senha
-label.path=Caminho (Path)
-label.PA.threat.profile=Palo Alto Threat Profile
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.permission=Permiss\u00e3o
-label.persistent=Persistente
-label.physical.network.ID=ID da rede f\u00edsica
-label.physical.network.name=Nome da rede f\u00edsica
-label.physical.network=Rede F\u00edsica
-label.PING.CIFS.password=PING CIFS password
-label.PING.CIFS.username=PING CIFS username
-label.PING.dir=PING Directory
-label.ping.path=Caminho do Ping
-label.PING.storage.IP=Disparar PING para IP do Storage
-label.planner.mode=Modo planejado
-label.please.complete.the.following.fields=Por favor, preencha os seguintes campos
-label.please.specify.netscaler.info=Por favor especifique as informa\u00e7\u00f5es do Netscaler
-label.please.wait=Por Favor Aguarde
-label.plugin.details=Detalhes do plugin
-label.plugins=Plugins
-label.pod.dedicated=Pod Dedicado
-label.pod.name=Nome do Pod
-label.pod=POD
-label.pods=Pods
-label.polling.interval.sec=Intervalo de Polling (em seg)
-label.portable.ip=IP Port\u00e1vel
-label.portable.ip.range.details=Detalhes de Range de IP Port\u00e1veis
-label.portable.ip.ranges=Faixa de endere\u00e7os IPs Port\u00e1vel
-label.portable.ips=IPs Port\u00e1veis
-label.port.forwarding=Encaminhamento de Porta
-label.port.forwarding.policies=Pol\u00edticas de redirecionamento de portas
-label.port=Porta
-label.port.range=Range de Porta
-label.PreSetup=PreSetup
-label.previous=Anterior
-label.prev=Prev
-label.primary.allocated=Aloca\u00e7\u00e3o do Storage Prim\u00e1rio
-label.primary.network=Rede Prim\u00e1ria
-label.primary.storage.count=Pools de Storage Prim\u00e1rios
-label.primary.storage.limits=Limites do Storage Prim\u00e1rio (GiB)
-label.primary.storage=Storage Prim\u00e1rio
-label.primary.used=Uso do Storage Prim\u00e1rio
-label.private.Gateway=Gateway privado
-label.private.interface=Interface Privada
-label.private.ip=Endere\u00e7o IP Privado
-label.private.ip.range=Range de IP Privado
-label.private.ips=IPs Privados
-label.private.key=Chave privada
-label.privatekey=PKCS\#8 Private Key
-label.private.network=Rede Privada
-label.private.port=Porta Privada
-label.private.zone=Zona Privada
-label.profile=Perfil
-label.project.dashboard=Dashboard do Projeto
-label.project.id=ID de Projeto
-label.project.invite=Convidar para o projeto
-label.project.name=Nome de projeto
-label.project=Projeto
-label.projects=Projetos
-label.project.view=Vis\u00e3o de Projeto
-label.protocol.number=N\u00famero do Protocolo
-label.protocol=Protocolo
-label.provider=Provedor
-label.providers=Providers
-label.public.interface=Interface P\u00fablica
-label.public.ip=Endere\u00e7o IP P\u00fablico
-label.public.ips=IPs P\u00fablicos
-label.public.key=Chave p\u00fablica
-label.public.lb=LB p\u00fablico
-label.public.load.balancer.provider=Provedor P\u00fablico de Balanceamento de Carga
-label.public.network=Rede P\u00fablica
-label.public.port=Porta P\u00fablica
-label.public=P\u00fablico
-label.public.traffic=Tr\u00e1fego P\u00fablico
-label.public.traffic.vswitch.name=Nome do vSwitch de Tr\u00e1fego P\u00fablico
-label.public.traffic.vswitch.type=Tipo de vSwitch de Tr\u00e1fego P\u00fablico
-label.public.zone=Zona P\u00fablica
-label.purpose=Prop\u00f3sito
-label.Pxe.server.type=Tipo de Servidor PXE
-label.qos.type=Tipo de QoS
-label.quickview=Visualiza\u00e7\u00e3o r\u00e1pida
-label.quiesce.vm=Quiesce VM
-label.quiet.time.sec=Tempo Silencioso (em seg)
-label.quota.add.credits=Adicionar Cr\\u00e9ditos
-label.quota.balance=Saldo
-label.quota.configuration=Configura\\u00e7\\u00e3o da Tarifa
-label.quota.configure=Configure a Cota
-label.quota.credit=Cr\\u00e9dito
-label.quota.credits=Cr\\u00e9ditos
-label.quota.date=Data
-label.quota.dates=Atualizar Data
-label.quota.description=Descri\\u00e7\\u00e3o
-label.quota.email.body=Corpo do Email
-label.quota.email.lastupdated=\\u00daltima atualiza\\u00e7\\u00e3o
-label.quota.email.subject=Assunto
-label.quota.email.template=Template de Email
-label.quota.enddate=Data de Fim
-label.quota.endquota=Fim
-label.quota.enforcequota=Bloquear Conta p\\u00f3s Limite
-label.quota.fullsummary=Todas as Contas
-label.quota.minbalance=Saldo M\\u00ednimo
-label.quota.remove=Remover Cota
-label.quota.startdate=Data de In\\u00edcio
-label.quota.startquota=In\\u00edcio
-label.quota.state=Estado
-label.quota.statement.balance=Saldo
-label.quota.statement.bydates=Demonstrativo
-label.quota.statement=Demonstrativo
-label.quota.statement.quota=Utiliza\\u00e7\\u00e3o
-label.quota.statement.tariff=Tarifa
-label.quota.summary=Sum\\u00e1rio
-label.quota.tariff.edit=Editar Tarifa
-label.quota.tariff.effectivedate=Data Efetiva
-label.quota.tariff=Tarifa
-label.quota.tariff.value=Valor da Tarifa
-label.quota.total=Total
-label.quota.totalusage=Uso Total
-label.quota.type.name=Tipo
-label.quota.type.unit=Unidade
-label.quota.usage=Consumo da Cota
-label.quota.value=Valor
-label.rbd.id=Usu\u00e1rio Ceph
-label.rbd.monitor=Monitor Ceph
-label.rbd.pool=Pool Ceph
-label.rbd=RDB
-label.rbd.secret=Cephx secret
-label.reboot=Reiniciar
-label.recent.errors=Erros Recentes
-label.recover.vm=Recuperar VM
-label.redundant.router.capability=Recurso de roteador redundante
-label.redundant.router=Roteador Redundantee
-label.redundant.state=Estado redundante
-label.redundant.vpc=VPC Redundante
-label.refresh=Atualizar
-label.refresh.blades=Atualizar L\u00e2minas
-label.region.details=Detalhes da regi\u00e3o
-label.regionlevelvpc=VPC a N\u00edvel de Regi\u00e3o
-label.region=Regi\u00e3o
-label.reinstall.vm=Reinstalar VM
-label.related=Relacionado
-label.release.account=Liberar de Conta
-label.release.account.lowercase=LIberar de conta
-label.release.dedicated.cluster=Libera Cluster Dedicado
-label.release.dedicated.host=Libera Host Dedicado
-label.release.dedicated.pod=LIberar Pod Dedicado
-label.release.dedicated.vlan.range=Liberar range de VLAN dedicado
-label.release.dedicated.zone=Liberar Zona Dedicada
-label.remind.later=Me lembre depois
-label.remove.ACL=Remove ACL
-label.remove.egress.rule=Remover regra egress
-label.remove.from.load.balancer=Removendo Inst\u00e2ncia do balanceador de carga
-label.remove.ingress.rule=Remover regra ingress
-label.remove.ip.range=Remover range de IP
-label.remove.ldap=Remover LDAP
-label.remove.network.offering=Remove oferta de rede
-label.remove.pf=Remover regra de redirecionamento de porta
-label.remove.project.account=Remover conta de projeto
-label.remove.region=Remover Regi\u00e3o
-label.remove.rule=Remover regra
-label.remove.ssh.key.pair=Remover par de chaves SSH
-label.remove.static.nat.rule=Remover regra de NAT est\u00e1tico
-label.remove.static.route=Remover rota est\u00e1tica
-label.remove.this.physical.network=Remover esta rede f\u00edsica
-label.remove.tier=Remover camada
-label.remove.vm.from.lb=Remover VM da regra de balanceamento de carga
-label.remove.vm.load.balancer=Remover VM do balanceamento de carga
-label.remove.vmware.datacenter=Remover Datacenter VMware
-label.remove.vpc.offering=Remover oferta VPC
-label.remove.vpc=remover a VPC
-label.removing=Removendo
-label.removing.user=Removendo Usu\u00e1rio
-label.reource.id=ID do Recurso
-label.replace.acl.list=Substituir Lista ACL
-label.replace.acl=Substituir ACL
-label.required=Obrigat\u00f3rio
-label.requires.upgrade=Requer Atualiza\u00e7\u00e3o
-label.reserved.ip.range=Faixa de IP Reservada
-label.reserved.system.gateway=Gateway de sistema reservado
-label.reserved.system.ip=IP de Sistema Reservado
-label.reserved.system.netmask=M\u00e1scara de rede reservada do sistema
-label.reset.ssh.key.pair.on.vm=Recriar par de chaves SSH na VM
-label.reset.ssh.key.pair=Recriar par de chaves SSH
-label.resetVM=Restabelecer VM
-label.reset.VPN.connection=Resetar a conex\u00e3o VPN
-label.resize.new.offering.id=New Offering
-label.resize.new.size=Novo Tamanho (GB)
-label.resize.shrink.ok=Shrink OK
-label.resource.limit.exceeded=Limite de Recurso Excedido
-label.resource.limits=Limite de Recursos
-label.resource.name=Nome do Recurso
-label.resource=Recurso
-label.resources=Recursos
-label.resource.state=Estado do Recurso
-label.response.timeout.in.sec=Timeout de Resposta (em seg)
-label.restart.network=Reiniciar rede
-label.restart.required=Reiniciar obrigat\u00f3rio
-label.restart.vpc=reiniciar a VPC
-label.restore=Restaurar
-label.retry.interval=Intervalo de repeti\u00e7\u00e3o
-label.review=Revisar
-label.revoke.project.invite=Revogar convite
-label.role=Fun\u00e7\u00e3o
-label.root.certificate=Certificado Root
-label.root.disk.controller=Controlador do disco Root
-label.root.disk.offering=Oferta de Disco ROOT
-label.root.disk.size=Tamanho do disco root (GB)
-label.router.vm.scaled.up=VM do Roteador Escalonada
-label.routing.host=Host de Roteamento
-label.routing=Roteamento
-label.rule.number=Regra N\u00famero
-label.rule=Regra
-label.rules=Regras
-label.running.vms=VMs Rodando
-label.s3.access_key=Chave de acesso
-label.s3.bucket=Balde
-label.s3.connection_timeout=Tempo limite de conex\u00e3o
-label.s3.endpoint=Ponto de acesso
-label.s3.max_error_retry=Limite de tentativas de recupera\u00e7\u00e3o de erro
-label.s3.nfs.path=Caminho NFS S3
-label.s3.nfs.server=Servidor NFS S3
-label.s3.secret_key=Chave Secreta
-label.s3.socket_timeout=Tempo limite no socket
-label.s3.use_https=Use HTTPS
-label.saml.enable=Autorizar SAML SSO
-label.saml.entity=Provedor de Identidade
-label.saturday=S\u00e1bado
-label.save.and.continue=Salvar e continuar
-label.save.changes=Salvar altera\u00e7\u00f5es
-label.save=Salvar
-label.saving.processing=Salvando....
-label.scaledown.policy=Pol\u00edtica de redu\u00e7\u00e3o
-label.scaleup.policy=Pol\u00edtica de amplia\u00e7\u00e3o
-label.scale.up.policy=Pol\u00edtica de Escalonamento
-label.scope=Escopo
-label.search=Pesquisar
-label.secondary.ips=IPs secund\u00e1rios
-label.secondary.isolated.vlan.id=ID de VLAN Secund\u00e1ria Isolada
-label.secondary.staging.store=Armazenamento de Est\u00e1gio Secund\u00e1rio
-label.secondary.staging.store.details=Detalhes do Armazenamento de Est\u00e1gio Secund\u00e1rio
-label.secondary.storage.count=Pools de Storage secund\u00e1rios
-label.secondary.storage.details=Detalhes de armazenamento secund\u00e1rio
-label.secondary.storage.limits=Limites do Storage Secund\u00e1rio (GiB)
-label.secondary.storage=Storage Secund\u00e1rio
-label.secondary.storage.vm=VM de storage secund\u00e1rio
-label.secondary.used=Uso do Storage Secund\u00c3\u00a1rio
-label.secret.key=Chave Secreta
-label.security.group.name=Nome do Security Group
-label.security.group=Security Group
-label.security.groups.enabled=Security Groups Ativado
-label.security.groups=Grupos de seguran\u00e7a
-label.select.a.template=Selecione um template
-label.select.a.zone=Selecione uma zona
-label.select.instance=Selecionar inst\u00e2ncia
-label.select.instance.to.attach.volume.to=Escolha uma inst\u00e2ncia para conectar o volume
-label.select.iso.or.template=Selecione ISO ou template
-label.select.offering=Selecionar Oferta
-label.select.project=Selecionar Projeto
-label.select.region=Selecione Regi\u00e3o
-label.select=Selecionar
-label.select.template=Seleciona Template
-label.select.tier=Selecione camada
-label.select-view=Selecionar visualiza\u00e7\u00e3o
-label.select.vm.for.static.nat=Selecionar VM para NAT est\u00e1tico
-label.sent=Enviado
-label.server=Servidor
-label.service.capabilities=Recursos de servi\u00e7os
-label.service.offering.details=Detalhes da oferta de servi\u00e7o
-label.service.offering=Plano
-label.services=Servi\u00e7os
-label.service.state=Estado do Servi\u00e7o
-label.session.expired=Sess\u00e3o Expirada
-label.set.default.NIC=Configurar para NIC padr\u00e3o
-label.settings=Ajustes
-label.setup=Configura\u00e7\u00e3o
-label.setup.network=Configurar Rede
-label.setup.zone=Configurar Zona
-label.set.up.zone.type=Configurar tipo de zona
-label.shared=Compatilhado
-label.SharedMountPoint=SharedMountPoint
-label.show.advanced.settings=Mostra ajustes avan\u00e7ados
-label.show.ingress.rule=Mostrar Regra de Entrada
-label.shutdown.provider=Desabilitar provider
-label.simplified.chinese.keyboard=Simplified Chinese keyboard
-label.site.to.site.VPN=Site-to-site VPN
-label.size=Tamanho
-label.skip.guide=Eu utilizei o CloudStack antes, pular este guia
-label.smb.domain=Dom\u00ednio SMB
-label.smb.password=Senha SMB
-label.smb.username=Usu\u00e1rio SMB
-label.snapshot.limits=Limites de Snapshot
-label.snapshot.name=Nome do Snapshot
-label.snapshot.schedule=Configurar Snapshot Recorrente
-label.snapshot=Snapshot
-label.snapshot.s=Snapshots
-label.snapshots=Snapshots
-label.SNMP.community=Comunidade SNMP
-label.SNMP.port=Porta SNMP
-label.sockets=Sockets
-label.source.ip.address=Endere\u00e7o IP de origem
-label.source.nat=Source NAT
-label.source.nat.supported=SourceNAT Supportado
-label.source.port=Porta de origem
-label.specify.IP.ranges=Especifique range de IP
-label.specify.vlan=Especificar VLAN
-label.specify.vxlan=Especificar VXLAN
-label.SR.name=SR Name-Label
-label.srx.details=Detalhes do SRX
-label.srx=SRX
-label.ssh.key.pair.details=Detalhes do par de chaves SSH
-label.ssh.key.pair=Par de chaves SSH
-label.ssh.key.pairs=Par de chaves SSH
-label.standard.us.keyboard=Standard (US) keyboard
-label.start.IP=IP do in\u00edcio
-label.start.lb.vm=Iniciar LB VM
-label.start.port=Porta de In\u00edcio
-label.start.reserved.system.IP=In\u00edcio dos IPs reservados para o sistema
-label.start.vlan=VLAN Inicial
-label.start.vxlan=VXLAN Inicial
-label.state=Estado
-label.static.nat.enabled=NAT est\u00e1tico Habilitado
-label.static.nat=NAT Est\u00e1tico
-label.static.nat.to=NAT Est\u00e1tico para
-label.static.nat.vm.details=Detalhes de NAT est\u00e1tico da VM
-label.static.routes=Rotas est\u00e1ticas
-label.statistics=Estat\u00edsticas
-label.status=Estado
-label.step.1=Passo 1
-label.step.1.title=Passo 1\: <strong>Selecione o Template</strong>
-label.step.2=Passo 2
-label.step.2.title=Passo 2\: <strong>Plano</strong>
-label.step.3=Passo 3
-label.step.3.title=Passo 3\: <strong id\="step3_label">Selecione o Disco Adicional</strong>
-label.step.4=Passo 4
-label.step.4.title=Passo 4\: <strong>Rede</strong>
-label.step.5=Passo 5
-label.step.5.title=Passo 5\: <strong>Revisar</strong>
-label.stickiness=Ader\u00eancia
-label.stickiness.method=M\u00e9todo de Stickness
-label.sticky.cookie-name=Nome do Cookie
-label.sticky.domain=Dom\u00ednio
-label.sticky.expire=Expires
-label.sticky.holdtime=Tempo de espera
-label.sticky.indirect=Indireto
-label.sticky.length=Tamanho
-label.sticky.mode=Modo
-label.sticky.name=Nome Sticky
-label.sticky.nocache=Sem Cache
-label.sticky.postonly=Apenas publicar
-label.sticky.prefix=Prefixo
-label.sticky.request-learn=Solicitar para aprender
-label.sticky.tablesize=Tamanho da Tabela
-label.stop.lb.vm=Pare LB VM
-label.stop=Parar
-label.stopped.vms=VMs Paradas
-label.storage.pool=Pool de Armazanamento
-label.storage=Storage
-label.storage.tags=Tags de Storage
-label.storage.traffic=Tr\u00e1fego do Storage
-label.storage.type=Tipo de Storage
-label.subdomain.access=Acesso ao subdom\u00ednio
-label.submit=Enviar
-label.submitted.by=[Enviado por\: <span id\="submitted_by"></span>]
-label.succeeded=Sucedido
-label.sunday=Domingo
-label.super.cidr.for.guest.networks=Super CIDR para redes h\u00f3spedes
-label.supported.services=Servi\u00e7os Suportados
-label.supported.source.NAT.type=Tipo de Source NAT Suportado
-label.supportsstrechedl2subnet=Suporte \u00e0 Streched L2 Subnet
-label.suspend.project=Suspender Projeto
-label.switch.type=Tipo de Switch
-label.system.capacity=Capacidade do Sistema
-label.system.offering.for.router=Oferta do Sistema para Roteador
-label.system.offering=Ofertas de Sistema
-label.system.service.offering.details=Detalhes da oferta de servi\u00e7o de sistema
-label.system.service.offering=System Service Offering
-label.system.vm.details=Detalhes do System VM
-label.system.vm.scaled.up=System VM Escalonada
-label.system.vms=VM de Sistemas
-label.system.vm.type=Tipo de VM de Sistema
-label.system.vm=VM de Sistema
-label.system.wide.capacity=Capacidade Total do Sistema
-label.tagged=Tagged
-label.tag.key=Chave
-label.tags=Tags
-label.tag.value=Valor
-label.target.iqn=Target IQN
-label.task.completed=Tarefa completa
-label.template.limits=Limites do Template
-label.template=Template
-label.TFTP.dir=TFTP Directory
-label.tftp.root.directory=Diret\u00f3rio raiz do tftp
-label.theme.default=Tema Padr\u00e3o
-label.theme.grey=Custom - Grey
-label.theme.lightblue=Custom - Light Blue
-label.threshold=Limiar
-label.thursday=Quinta
-label.tier=Camada
-label.tier.details=Detalhes da camada
-label.time.colon=Tempo\:
-label.timeout.in.second = Timeout (segundos)
-label.timeout=Timeout
-label.time=Time
-label.timezone.colon=Fuso Hor\u00e1rio
-label.time.zone=Fuso Hor\u00e1rio
-label.timezone=Fuso Hor\u00e1rio
-label.token=Token
-label.total.cpu=CPU TOTAL
-label.total.CPU=CPU TOTAL
-label.total.hosts=Total de Hosts
-label.total.memory=Total de Mem\u00f3ria
-label.total.of.ip=Total de Endere\u00e7os IPs
-label.total.of.vm=Total VMs
-label.total.storage=Totam de Storage
-label.total.virtual.routers=Total de Roteadores Virtuais
-label.total.virtual.routers.upgrade=Total de Roteadores Virtuais que requerem atualiza\u00e7\u00e3o
-label.total.vms=Total VMs
-label.traffic.label=Etiqueta de tr\u00e1fego
-label.traffic.types=Tipos de Tr\u00e1fego
-label.traffic.type=Tipo de Tr\u00e1fego
-label.tuesday=Ter\u00e7a
-label.type.id=Tipo do ID
-label.type.lower=tipo
-label.type=Tipo
-label.ucs=UCS
-label.uk.keyboard=UK keyboard
-label.unavailable=Indispon\u00edvel
-label.unhealthy.threshold=Limiar de Insalubridade
-label.unlimited=Ilimitado
-label.untagged=N\u00e3o Marcado
-label.update.project.resources=Atualizar recursos de projeto
-label.update.ssl= Atualizar Certificado SSL
-label.update.ssl.cert= Atualizar Certificado SSL
-label.updating=Atualizando
-label.upgrade.required=Atualiza\u00e7\u00e3o \u00e9 necess\u00e1ria
-label.upgrade.router.newer.template=Atualize Roteador Para Usar Template Mais Novo
-label.upload=Enviar
-label.upload.from.local=Fazer upload local
-label.upload.template.from.local=Upload de Template Local
-label.upload.volume=Enviar o Volume
-label.upload.volume.from.local=Upload de Volume Local
-label.upload.volume.from.url=Upload de volume por URL
-label.url=URL
-label.usage.interface=Usage Interface
-label.usage.sanity.result=Resultado de Sanidade de Uso
-label.usage.server=Uso do Servidor
-label.usage.type=Uso Tipo
-label.usage.unit=Unidade
-label.used=Usado
-label.user.data=Dados de Usu\u00e1rio
-label.user.details=Detalhes do usu\u00e1rio
-label.username.lower=nome do usu\u00e1rio
-label.username=Nome de usu\u00e1rio
-label.users=Usu\u00e1rios
-label.user=Usu\u00e1rio
-label.user.vm=VM do Usu\u00e1rio
-label.use.vm.ips=Usa IPs da VM
-label.use.vm.ip=Usar IP da VM\:
-label.value=Valor
-label.vcdcname=Nome do vCenter DC
-label.vcenter.cluster=vCenter Cluster
-label.vcenter.datacenter=vCenter Datacenter
-label.vcenter.datastore=vCenter Datastore
-label.vcenter.host=vCenter Host
-label.vcenter.password=vCenter Password
-label.vcenter.username=vCenter Username
-label.vcenter=vcenter
-label.vcipaddress=Endere\u00e7o IP do vCenter
-label.version=Vers\u00e3o
-label.vgpu.max.resolution=Resulo\u00e7\u00e3o max
-label.vgpu.max.vgpu.per.gpu=vGPU por GPU
-label.vgpu.remaining.capacity=Capacidade restante
-label.vgpu.type=Tipo de vGPU
-label.vgpu=VGPU
-label.vgpu.video.ram=RAM de v\u00eddeo
-label.view.all=Visualizar tudo
-label.view.console=Visualizar Console
-label.viewing=Visualizar
-label.view.more=Ver mais
-label.view.secondary.ips=Visualizar os IPs secund\u00e1rios
-label.view=Visualizar
-label.virtual.appliance=Appliance Virtual
-label.virtual.appliance.details=Detalhes de appliance virtual
-label.virtual.appliances=Appliance Virtual
-label.virtual.machine=Maquina Virtual
-label.virtual.machines=Maquinas Virtuais
-label.virtual.networking=Rede Virtual
-label.virtual.network=Rede Virtual
-label.virtual.router=Roteador Virtual
-label.virtual.routers.group.account=Grupo de Roteadores Virtuais por conta
-label.virtual.routers.group.cluster=Grupo de Roteadores Virtuais por cluster
-label.virtual.routers.group.pod=Grupo de Roteadores Virtuais por pod
-label.virtual.routers.group.zone=Grupo de Roteadores Virtuais por Zona
-label.virtual.routers=Roteadores Virtuais
-label.vlan.id=VLAN ID
-label.vlan.only=VLAN
-label.vlan.range.details=Detalhes de range VLAN
-label.vlan.range=Intervalo de VLAN
-label.vlan.ranges=Range(s) de VLAN
-label.vlan=VLAN
-label.vlan.vni.range=Intervalo de VLAN
-label.vlan.vni.ranges=Range(s) de VLAN/VNI
-label.vm.add=Adicionar Inst\u00e2ncia
-label.vm.destroy=Apagar
-label.vm.display.name=Nome de exibi\u00e7\u00e3o da VM
-label.VMFS.datastore=VMFS datastore
-label.vmfs=VMFS
-label.vm.id=ID da VM
-label.vm.ip=Endere\u00e7o IP da VM
-label.vm.name=Nome da VM
-label.vm.password=Senha para a VM \u00e9
-label.vm.reboot=Reiniciar
-label.VMs.in.tier=M\u00e1quinas virtuais em camadas
-label.vmsnapshot.current=isCurrent
-label.vmsnapshot.memory=Snapshot da mem\u00f3ria
-label.vmsnapshot.parentname=Pai
-label.vmsnapshot=Snapshot da VM
-label.vmsnapshot.type=Tipo
-label.vm.start=In\u00edcio
-label.vm.state=Estado da VM
-label.vm.stop=Parar
-label.vms=VMs
-label.vmware.datacenter.id=ID do datacenter VMware
-label.vmware.datacenter.name=Nome do datacenter VMware
-label.vmware.datacenter.vcenter=Vcednter do datacenter VMware
-label.vmware.traffic.label=Etiqueta de tr\u00e1fego VMware
-label.vnet.id=VLAN ID
-label.vnet=VLAN
-label.vnmc.devices=Dispositivos VNMC
-label.vnmc=VNMC
-label.volatile=Vol\u00e1til
-label.volgroup=Grupo de Volume
-label.volume.details=Detalhe do volume
-label.volume=Disco
-label.volume.limits=Limites de Disco
-label.volume.migrated=Volume migrado
-label.volume.name=Nome do Disco
-label.volumes=Discos
-label.vpc.distributedvpcrouter=Roteador VPC Distribuido
-label.vpc.id=VPC ID
-label.VPC.limits=Limites VPC
-label.vpc.offering.details=Detalhes da oferta VPC
-label.vpc.offering=Oferta VPC
-label.VPC.router.details=Detalhes de roteador de VPC
-label.vpc.router.details=Detalhes do roteador da VPC
-label.vpc.supportsregionlevelvpc=Suporta VPC em N\u00edvel de Regi\u00e3o
-label.vpc.virtual.router=Roteador Virtual VPC
-label.vpc=VPC
-label.VPN.connection=Conex\u00e3o VPN
-label.vpn.customer.gateway=Gateway de VPN de usu\u00e1rio
-label.VPN.customer.gateway=Gateway de VPN de usu\u00e1rio
-label.vpn.force.encapsulation=For\u00e7ar encapsulamento UDP de pacotes ESP
-label.VPN.gateway=Gateway de VPN
-label.vpn=VPN
-label.vsmctrlvlanid=Control VLAN ID
-label.vsmpktvlanid=Packet VLAN ID
-label.vsmstoragevlanid=Storage VLAN ID
-label.vsphere.managed=vSphere Managed
-label.vswitch.name=Nome do vSwitch
-label.vSwitch.type=Tipo do vSwitch
-label.vxlan.id=VXLAN ID
-label.vxlan.range=Intervalo de VXLAN
-label.vxlan=VXLAN
-label.waiting=Aguardando
-label.warn=Avisar
-label.warning=Aten\u00e7\u00e3o
-label.warn.upper=AVISO
-label.wednesday=Quarta-Feira
-label.weekly=Semanal
-label.welcome=Bem-Vindo
-label.welcome.cloud.console=Painel de Controle
-label.what.is.cloudstack=O que \u00e9 o CloudStack&\#8482?
-label.xenserver.tools.version.61.plus=Vers\u00e3o original do XS \u00e9 6.1\\+
-label.Xenserver.Tools.Version61plus=Vers\u00e3o original do XS \u00e9 6.1\\+
-label.xenserver.traffic.label=Etiqueta de tr\u00e1fego XenServer
-label.yes=Sim
-label.zone.dedicated=Zona Dedicada
-label.zone.details=Detalhes de zona
-label.zone.id=ID da Zona
-label.zone.lower=Zona
-label.zone.name=Nome da zona
-label.zone.step.1.title=Passo 1\: <strong>Selecionar a Rede</strong>
-label.zone.step.2.title=Passo 2\: <strong>Adicionar a Zona</strong>
-label.zone.step.3.title=Passo 3\: <strong>Adicionar o POD</strong>
-label.zone.step.4.title=Passo 4\: <strong>Adicionar um Intervalo de IP</strong>
-label.zones=Zonas
-label.zone.type=Tipo de Zona
-label.zone.wide=Zone-Wide
-label.zoneWizard.trafficType.guest=H\u00f3spede\: tr\u00e1fego entre m\u00e1quinas virtuais de usu\u00e1rios finais
-label.zoneWizard.trafficType.management=Ger\u00eancia\: Tr\u00e1fego entre recursos internos do CloudStack incluindo quaisquer componentes que se comunicam com o servidor de gerenciamento tais como hosts e m\u00e1quinas virtuais de sistema do CloudStack
-label.zoneWizard.trafficType.public=P\u00fablico\: tr\u00e1fego entre a internet e m\u00e1quinas virtuais na nuvem.
-label.zoneWizard.trafficType.storage=Storage\: tr\u00e1fego entre servidores de storage prim\u00e1ria e secund\u00e1ria, tais como templates de m\u00e1quinas virtuais e snapshots
-label.zone=Zona
-managed.state=Status do Gerenciamento
-message.acquire.ip.nic=Por favor, confirme que voc\u00ea deseja adquirir um novo IP secund\u00e1rio para esta Interface de Rede.</br>NOTA\: Voc\u00ea precisa configurar manualmente o novo IP secund\u00e1rio dentro da maquinas virtual.
-message.acquire.new.ip=Por favor confirme que voc\u00ea gostaria de adquirir um novo IP para esta rede.
-message.acquire.new.ip.vpc=Por favor confirme que voc\u00ea gostaria de adquirir um novo IP para esta VPC.
-message.acquire.public.ip=Selecione a zona de onde voc\u00ea deseja adquirir o novo IP
-message.action.cancel.maintenance=A Manuten\u00e7\u00e3o do seu HOST foi cancelada com sucesso
-message.action.cancel.maintenance.mode=Confirme que voc\u00ea deseja cancelar esta Manuten\u00e7\u00e3o
-message.action.change.service.warning.for.instance=Sua inst\u00e2ncia deve ser desligada antes de tentar alterar a oferta de servi\u00e7os utilizada.
-message.action.change.service.warning.for.router=O roteador precisa ser desligado antes de trocar o plano/tamanho.
-message.action.delete.cluster=Confirme que voc\u00ea deseja excluir este HOST
-message.action.delete.disk.offering=Confirme que voc\u00ea deseja excluir esta oferta de disco
-message.action.delete.domain=Confirme que voc\u00ea deseja excluir este Dom\u00ednio
-message.action.delete.external.firewall=Confirme que voc\u00ea gostaria de remover este Firewall externo. Aviso\: Se voc\u00ea Est\u00e1 planejando adicionar novamente este mesmo Firewall, \u00e9 necess\u00e1rio apagar os contadores do dispositivo.
-message.action.delete.external.load.balancer=Confirme que voc\u00ea gostaria de remover este Load Balancer Externo. Aviso\: Se voc\u00ea Est\u00e1 planejando adicionar novamente este mesmo Load Balancer, \u00e9 necess\u00e1rio apagar os contadores do dispositivo.
-message.action.delete.ingress.rule=Confirme que voc\u00ea deseja excluir esta regra de entrada.
-message.action.delete.ISO=Confirme que voc\u00ea deseja excluir esta ISO
-message.action.delete.ISO.for.all.zones=Esta ISO \u00e9 usada por todas as Zonas. Confirme se voc\u00ea deseja excluir a ISO de todas as Zonas
-message.action.delete.network=Confirme que voc\u00ea deseja remover esta rede.
-message.action.delete.nexusVswitch=Por favor confirme que voc\ufffd deseja remover este nexusVswitch.
-message.action.delete.nic=Por favor, confirme que deseja remover esta Interface de Rede, esta a\u00e7\u00e3o tamb\u00e9m ir\u00e1 remover a rede associada \u00e0 VM.
-message.action.delete.physical.network=Por favor confirme que voc\u00ea deseja deletar esta rede f\u00edsica
-message.action.delete.pod=Confirme que voc\u00ea deseja remover este POD.
-message.action.delete.primary.storage=Confirme que voc\u00ea deseja remover este Storage Prim\u00e1rio.
-message.action.delete.secondary.storage=Confirme que voc\u00ea deseja remover este Storage Secund\u00e1rio.
-message.action.delete.security.group=Confirme que voc\u00ea deseja remover este Security Group.
-message.action.delete.service.offering=Confirme que voc\u00ea deseja remover este Plano.
-message.action.delete.snapshot=Confirme que voc\u00ea deseja remover este Snapshot.
-message.action.delete.system.service.offering=Por favor confirme que voc\u00ea deseja deletar esta oferta de servi\u00e7o de sistema.
-message.action.delete.template=Confirme que voc\u00ea deseja remover este Template.
-message.action.delete.template.for.all.zones=Este Template \u00e9 usado por todas as zonas. Confirme que voc\u00ea deseja remover o Template de todas as zonas.
-message.action.delete.volume=Confirme que voc\u00ea deseja remover este Disco.
-message.action.delete.zone=Confirme que voc\u00ea deseja remover esta Zona.
-message.action.destroy.instance=Por favor, confirme que voc\u00ea deseja excluir esta Inst\u00e2ncia.
-message.action.destroy.systemvm=Confirme que voc\u00ea deseja excluir esta VM de Sistema.
-message.action.disable.cluster=Confirma a desativa\u00e7\u00e3o do cluster.
-message.action.disable.nexusVswitch=Por favor confirme que voc\ufffd deseja desabilitar este nexusVswitch
-message.action.disable.physical.network=Por favor confirme que voc\u00ea deseja desabilitar esta rede f\u00edsica.
-message.action.disable.pod=Confirma a desativa\u00e7\u00e3o do POD.
-message.action.disable.static.NAT=Confirme que voc\u00ea deseja desativar o NAT Est\u00e1tico.
-message.action.disable.zone=Confirma a desativa\u00e7\u00e3o da zona.
-message.action.downloading.template=Baixando template
-message.action.download.iso=Por favor confirme que voc\u00ea deseja baixar esta ISO.
-message.action.download.template=Por favor confirme que voc\u00ea deseja baixar este template.
-message.action.enable.cluster=Confirma a ativa\u00e7\u00e3o do cluster.
-message.action.enable.maintenance=O Host foi preparado com sucesso para Manuten\u00e7\u00e3o. Este processo poder\u00e1 levar alguns minutos ou mais dependendo do n\u00famero de VMs hospedadas neste Host.
-message.action.enable.nexusVswitch=Por favor confirme que voc\ufffd deseja habilitar este nexusVswitch.
-message.action.enable.physical.network=Por favor confirme que voc\u00ea deseja habilitar esta rede f\u00edsica.
-message.action.enable.pod=Confirma a ativa\u00e7\u00e3o do POD.
-message.action.enable.zone=Confirma a ativa\u00e7\u00e3o da zona.
-message.action.expunge.instance=Por favor, confirme que voc\u00ea deseja eliminar esta inst\u00e2ncia.
-message.action.force.reconnect=O procedimento de reconex\u00e3o for\u00e7ada foi preparado com sucesso. Este processo poder\u00e1 levar alguns minutos.
-message.action.host.enable.maintenance.mode=Ativar o modo de Manuten\u00e7\u00e3o ir\u00e1 causar o live migration de todas as Inst\u00e2ncias hospedadas neste Host para o pr\u00f3ximo dispon\u00edvel.
-message.action.instance.reset.password=Por favor confirme que voc\u00ea deseja alterar a senha de ROOT para est\u00e1 m\u00e1quina virtual.
-message.action.manage.cluster=Confirma a vincula\u00e7\u00e3o do cluster.
-message.action.primarystorage.enable.maintenance.mode=Aviso\: Colocar o Storage prim\u00e1rio em modo de Manuten\u00e7\u00e3o ir\u00e1 causar a parada de todas as VMs hospedadas nesta unidade. Deseja continuar?
-message.action.reboot.instance=Por favor, confirme que voc\u00ea deseja reiniciar esta inst\u00e2ncia.
-message.action.reboot.router=Confirme que voc\ufffd deseja reiniciar este roteador.
-message.action.reboot.systemvm=Confirme que voc\u00ea deseja reiniciar esta VM de sistema.
-message.action.release.ip=Confirme que voc\u00ea deseja liberar este IP.
-message.action.remove.host=Favor confirmar que voc\u00ea deseja remover este host.
-message.action.reset.password.off=Sua Inst\u00e2ncia n\u00e3o suporta esta funcionalidade.
-message.action.reset.password.warning=Para recuperar a senha \u00e9 necess\u00e1rio parar a Inst\u00e2ncia.
-message.action.restore.instance=Por favor, confirme que voc\u00ea deseja restaurar esta Inst\u00e2ncia.
-message.action.revert.snapshot=Por favor, confirme que voc\u00ea deseja reverter o seu volume deste snapshot.
-message.action.start.instance=Por favor, confirme que voc\u00ea deseja iniciar esta Inst\u00e2ncia.
-message.action.start.router=Confirme que voc\u00ea deseja inciar este roteador.
-message.action.start.systemvm=Confirme que voc\u00ea deseja iniciar esta VM de sistema.
-message.action.stop.instance=Por favor, confirme que voc\u00ea deseja parar esta inst\u00e2ncia.
-message.action.stop.router=Confirme que voc\ufffd deseja parar este roteador.
-message.action.stop.systemvm=Confirme que voc\u00ea deseja parar esta VM de Sistema.
-message.action.take.snapshot=Por favor confirme que voc\u00ea deseja criar um snapshot deste volume.
-message.action.unmanage.cluster=Confirma a desvincula\u00e7\u00e3o do cluster.
-message.action.vmsnapshot.delete=Por favor, confirme que voc\u00ea deseja excluir este snapshot da VM.
-message.action.vmsnapshot.revert=Reverter snapshot da VM
-message.activate.project=Voc\u00ea tem certeza que deseja ativar este projeto ?
-message.add.cluster=Add a hypervisor managed cluster for zone <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.cluster.zone=Add a hypervisor managed cluster for zone <b><span id\="zone_name"></span></b>
-message.add.disk.offering=Especifique o seguintes par\u00e2metros para adicionar uma nova oferta de disco.
-message.add.domain=Por favor especifique o subdom\u00ednio que voc\u00ea deseja criar neste dom\u00ednio
-message.added.new.nuage.vsp.controller=Adicionada nova Controladora Nuage Vsp
-message.added.vpc.offering=Adicionada oferta VPC
-message.add.firewall=Adicionar Firewall \u00e0\u00a0 zona.
-message.add.guest.network=Por favor confirme que voc\u00ea gostaria de adicionar uma rede guest.
-message.add.host=Especifique os seguintes par\u00e2metros para adicionar um novo host.
-message.adding.host=Adicionando host
-message.adding.Netscaler.device=Adicionando dispositivo Nescaler
-message.adding.Netscaler.provider=Adicionando Netscaler provider
-message.add.ip.range=Add an IP range to public network in zone
-message.add.ip.range.direct.network=Add an IP range to direct network <b><span id\="directnetwork_name"></span></b> in zone <b><span id\="zone_name"></span></b>
-message.add.ip.range.to.pod=<p>Add an IP range to pod\: <b><span id\="pod_name_label"></span></b></p>
-message.additional.networks.desc=Por favor, selecione a(s) rede(s) adicionais que sua inst\u00e2ncia virtual estar\u00e1 conectada.
-message.add.load.balancer=Add a load balancer to zone
-message.add.load.balancer.under.ip=A regra do balanceador de carga foi adicionada para o IP\:
-message.add.network=Add a new network for zone\: <b><span id\="zone_name"></span></b>
-message.add.new.gateway.to.vpc=Favor especificar a informa\u00e7\u00e3o para adicionar um novo gateway a esta VPC.
-message.add.pod=Add a new pod for zone <b><span id\="add_pod_zone_name"></span></b>
-message.add.pod.during.zone.creation=Cada zona deve conter um ou mais pods e iremos adicionar o primeiro pod agora. Um pod cont\u00e9m hosts e servidores de storage prim\u00e1rio que ser\u00e3o adicionados em uma etapa posterior. Inicialmente, configure um intervalo de endere\u00e7os IP reservados para o tr\u00e1fego de gerenciamento interno do CloudStack. A faixa de IP reservados devem ser \u00fanicos para cada zona na nuvem.
-message.add.primary=Especifique os seguintes par\u00e2metros para adicionar um novo Storage prim\u00e1rio.
-message.add.primary.storage=Adicionar novo Storage prim\u00e1rio \u00c3\u00a0 zona <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.region=Por favor, especifique as informa\u00e7\u00f5es necess\u00e1rias para adicionar uma nova regi\u00e3o.
-message.add.secondary.storage=Add a new storage for zone <b><span id\="zone_name"></span></b>
-message.add.service.offering=Por favor preencha os dados abaixo para adicionar uma nova oferta de computa\u00e7\u00e3o.
-message.add.system.service.offering=Por favor preencha os dados abaixo para adicionar uma nova oferta de servi\u00e7o de sistema.
-message.add.template=Entre com os dados para criar um novo template.
-message.add.volume=Entre com os dados para criar um novo disco.
-message.add.VPN.gateway=Favor confirmar que voc\u00ea deseja adicionar um gateway de VPN
-message.admin.guide.read=Para VMs baseadas em VMware, por favor leia a sess\u00e3o sobre escalonamento din\u00e2mico no guia do administrador antes de escalonar. Voc\u00ea gostaria de continuar?\\,
-message.advanced.mode.desc=Escolhe este modelo de rede se deseja ter habilitar o suporte a VLAN. Este modelo permite maior flexibilidade ao administrador ao permitir ofertas de rede customizada, firewall, vpn ou load balancer bem como acesso via rede virtual ou acesso direto.
-message.advanced.security.group=Escolha esta op\u00e7\u00e3o se desejar utilizar Security Groups para isolamento das VMs guest.
-message.advanced.virtual=Escolha esta op\u00e7\u00e3o se desejar utilizar VLANs para isolamento das VMs guest.
-message.after.enable.s3=Storage secund\u00e1ria fornecida por S3 configurada. Nota\: ao deixar esta p\u00e1gina, voc\u00ea n\u00e3o ser\u00e1 capaz de reconfigurar S3 novamente.
-message.after.enable.swift=Swift Configurado. Nota\: Ap\u00f3s deixar esta p\u00e1gina, voc\u00ea n\u00e3o ser\u00e1 capaz de reconfigurar o Swift novamente.
-message.alert.state.detected=Alerta de estado detectado
-message.allow.vpn.access=Entre com nome de Usu\u00e1rio e senha do Usu\u00e1rio que ter\u00e1 acesso VPN.
-message.apply.snapshot.policy=Voc\u00ea atualizou com sucesso sua pol\u00edtica de Snapshot.
-message.attach.iso.confirm=Por favor, confirme que voc\u00ea deseja conectar o ISO \u00e0 esta inst\u00e2ncia virtual.
-message.attach.volume=Preencha os seguintes dados para conectar o novo disco. Se voc\u00ea Est\u00e1 conectando um disco a uma maquina virtual Windows, ser\u00e1 necess\u00e1rio reiniciar a Inst\u00e2ncia para visualizar o novo disco.
-message.basic.mode.desc=Escolha este modelo de rede se voc\u00ea <b>*<u>n\u00e3o</u>*</b> quer suporte a VLAN. Toda Inst\u00e2ncia criada neste modelo de rede estar\u00e1 ligado diretamente a um IP da rede e ser\u00e1 usado Security Groups para prover seguran\u00e7a e segrega\u00e7\u00e3o.
-message.change.ipaddress=Por favor, confirme que voc\u00ea gostaria de mudar o endere\u00e7o IP da NIC em VM.
-message.change.offering.confirm=Por favor, confirme que voc\u00ea deseja mudar a oferta de servi\u00e7o desta inst\u00e2ncia virtual.
-message.change.password=Por favor, troque sua senha.
-message.cluster.dedicated=Cluster Dedicado
-message.cluster.dedication.released=Cluster dedicado liberado
-message.configure.all.traffic.types=Voc\u00ea tem m\u00faltiplas redes f\u00edsicas; favor configurar etiquetas para cada tipo de tr\u00e1fego clicando no bot\u00e3o Edit.
-message.configure.firewall.rules.allow.traffic=Configure as regras para permitir o Tr\u00e1fego
-message.configure.firewall.rules.block.traffic=Configurar as regras para bloquear o Tr\u00e1fego
-message.configure.ldap=Por favor, confirme que voc\u00ea deseja configurar o LDAP.
-message.configuring.guest.traffic=Configurando tr\u00e1fego do guest
-message.configuring.physical.networks=Configurando redes f\u00edsicas
-message.configuring.public.traffic=Configurando tr\u00e1fego p\u00fablico
-message.configuring.storage.traffic=Configurando tr\u00e1fego de storage
-message.confirm.action.force.reconnect=Por favor confirme que voc\u00ea deseja for\u00e7ar a reconex\u00e3o com este host.
-message.confirm.add.vnmc.provider=Por favor confirme que voc\u00ea gostaria de adicionar este provedor VNMC.
-message.confirm.archive.alert=Por favor confirme que voc\u00ea deseja arquivar este alerta.
-message.confirm.archive.event=Por favor confirme que voc\u00ea deseja arquivar este evento
-message.confirm.archive.selected.alerts=Por favor confirme que voc\u00ea deseja arquivar os alertas selecionados
-message.confirm.archive.selected.events=Por favor confirme que voc\u00ea deseja arquivar os eventos selecionados
-message.confirm.attach.disk=Voc\u00ea tem certeza que deseja conectar este disco?
-message.confirm.create.volume=Voc\u00ea tem certeza que deseja criar o volume?
-message.confirm.current.guest.CIDR.unchanged=Gostaria de manter o CIDR da rede convidado inalterado?
-message.confirm.dedicate.cluster.domain.account=Voc\u00ea realmente quer dedicar este cluster ao dom\u00ednio/conta?
-message.confirm.dedicate.host.domain.account=Voc\u00ea realmente quer dedicar este host ao dom\u00ednio/conta?
-message.confirm.dedicate.pod.domain.account=Voc\u00ea realmente quer dedicar este pod ao dom\u00ednio/conta?
-message.confirm.dedicate.zone=Voc\u00ea realmente quer dedicar esta zona ao dom\u00ednio/conta?
-message.confirm.delete.acl.list=Voc\u00ea tem certeza que deseja apagar esta lista ACL?
-message.confirm.delete.alert=Voc\u00ea tem certeza que deseja apagar este alerta?
-message.confirm.delete.baremetal.rack.configuration=Por favor, confirme que voc\u00ea deseja remover a Configura\u00e7\u00e3o de Rack de Baremetal
-message.confirm.delete.BigSwitchBcf=Por favor, confirme que voc\u00ea deseja deletar este BigSwitch BCF Controller
-message.confirm.delete.BrocadeVcs=Por favor confirme que voc\u00ea deseja remover o Brocade Vcs Switch
-message.confirm.delete.ciscoASA1000v=Favor confirmar que voc\u00ea deseja apagar este CiscoASA1000v
-message.confirm.delete.ciscovnmc.resource=Por favor confirme que voc\u00ea deseja apagar este recurso CiscoVNMC
-message.confirm.delete.F5=Por favor confirme que voc\u00ea deseja remover o F5
-message.confirm.delete.internal.lb=Por favor confirme que voc\u00ea deseja remover este LB interno
-message.confirm.delete.NetScaler=Por favor confirme que voc\u00ea deseja remover o NetScaler
-message.confirm.delete.NuageVsp=Por favor confirme que voc\u00ea deseja remover o
-message.confirm.delete.PA=Por favor, confirme que voc\u00ea deseja remover Palo Alto
-message.confirm.delete.secondary.staging.store=Por favor confirme que deseja apagar Armazenamento de Est\u00e1gio Secund\u00e1rio
-message.confirm.delete.SRX=Por favor confirme que voc\u00ea deseja remover o SRX
-message.confirm.delete.ucs.manager=Confirme se voc\u00ea deseja excluir o Gerente UCS.
-message.confirm.destroy.router=Por favor confirme que voc\u00ea gostaria de destruir este roteador
-message.confirm.disable.host=Favor confirmar que voc\u00ea deseja desabilitar este host.
-message.confirm.disable.network.offering=Voc\u00ea tem certeza que deseja deshabilitar esta oferta de rede?
-message.confirm.disable.provider=Por favor confirme que voc\u00ea gostaria de desabilitar este provider
-message.confirm.disable.vnmc.provider=Por favor confirme que voc\u00ea gostaria de desabilitar este provedor VNMC.
-message.confirm.disable.vpc.offering=Voc\u00ea tem certeza que deseja desabilitar esta oferta de VPC?
-message.confirm.enable.host=Por favor confirme que voc\u00ea deseja habilitar este host.
-message.confirm.enable.network.offering=Voc\u00ea tem certeza que deseja habilitar esta oferta de rede?
-message.confirm.enable.provider=Por favor confirme que voc\u00ea gostaria de habilitar este provider
-message.confirm.enable.vnmc.provider=Por favor confirme que voc\u00ea gostaria de habilitar este provedor VNMC.
-message.confirm.enable.vpc.offering=Voc\u00ea tem certeza que deseja habilitar esta oferta de VPC?
-message.confirm.join.project=Por favor confirme que voc\u00ea deseja entrar neste projeto
-message.confirm.migrate.volume=Voc\u00ea quer migrar este volume?
-message.confirm.refresh.blades=Por favor confirme que voc\u00ea deseja renovar as l\u00e2minas.
-message.confirm.release.dedicated.cluster=Voc\u00ea deseja liberar este cluster dedicado?
-message.confirm.release.dedicated.host=Voc\u00ea deseja liberar esta host dedicado?
-message.confirm.release.dedicated.pod=Voc\u00ea deseja liberar esta pod dedicado?
-message.confirm.release.dedicated.zone=Voc\u00ea deseja liberar esta zona dedicada?
-message.confirm.release.dedicate.vlan.range=Confirme que voc\u00ea deseja liberar esta faixa de VLAN dedicada.
-message.confirm.remove.event=Voc\u00ea tem certeza que deseja remover este evento?
-message.confirm.remove.IP.range=Por favor confirme que voc\u00ea deseja remover este range de IP.
-message.confirm.remove.load.balancer=Por favor, confirme que voc\u00ea quer remover a VM do Balanceador de Carga
-message.confirm.remove.network.offering=Voc\u00ea tem certeza que deseja remover esta oferta de rede?
-message.confirm.remove.selected.alerts=Por favor confirme que voc\u00ea deseja remover os alertas selecionados
-message.confirm.remove.selected.events=Por favor confirme que voc\u00ea deseja remover os eventos selecionados
-message.confirm.remove.vmware.datacenter=Por favor, confirme que voc\u00ea quer remover este VMware datacenter
-message.confirm.remove.vpc.offering=Voc\u00ea tem certeza que deseja remover esta oferta de VPC?
-message.confirm.replace.acl.new.one=Voc\u00ea deseja substituir a ACL com uma nova?
-message.confirm.scale.up.router.vm=Voc\u00ea realmente quer escalonar a VM do Roteador?
-message.confirm.scale.up.system.vm=Voc\u00ea realmente quer escalonar a VM do sistema?
-message.confirm.shutdown.provider=Por favor confirme que voc\u00ea deseja desligar este provider
-message.confirm.start.lb.vm=Confirme que voc\u00ea deseja iniciar esta LB VM
-message.confirm.stop.lb.vm=Confirme que voc\u00ea deseja parar esta LB VM
-message.confirm.upgrade.router.newer.template=Por favor confirme que voc\u00ea deseja atualizar o roteador para usar template mais recente.
-message.confirm.upgrade.routers.account.newtemplate=Por favor confirme que voc\u00ea deseja atualizar todos os roteadores desta conta para o template mais novo.
-message.confirm.upgrade.routers.cluster.newtemplate=Por favor confirme que voc\u00ea deseja atualizar todos os roteadores deste cluster para o template mais novo.
-message.confirm.upgrade.routers.newtemplate=Por favor confirme que voc\u00ea deseja atualizar todos os roteadores desta zona para o template mais novo.
-message.confirm.upgrade.routers.pod.newtemplate=Por favor confirme que voc\u00ea deseja atualizar todos os roteadores neste pod para o template mais novo.
-message.copy.iso.confirm=Confirme se voc\u00ea deseja copiar a ISO para
-message.copy.template.confirm=Voc\u00ea tem certeza que deseja copiar o template ?
-message.copy.template=Copiar template <b id\="copy_template_name_text">XXX</b> da zona <b id\="copy_template_source_zone_text"></b> para
-message.create.template.vm=Criar VM do template <b id\="p_name"></b>
-message.create.template=Voc\u00ea tem certeza que deseja criar um template ?
-message.create.template.volume=Especifique as seguintes informa\u00e7\u00f5es antes de criar o template a partir do disco\: <b><span id\="volume_name"></span></b>. A cria\u00e7\u00e3o de um template a partir de um disco pode levar alguns minutos ou mais dependendo do tamnho do disco.
-message.creating.cluster=Criando cluster
-message.creating.guest.network=Criando rede guest
-message.creating.physical.networks=Criando redes fisicas
-message.creating.pod=Criando pod
-message.creating.primary.storage=Criando storage prim\u00e1rio
-message.creating.secondary.storage=Criando storage secund\u00e1rio
-message.creating.systemVM=Criando VMs do sistema (isso pode levar algum tempo)
-message.creating.zone=Criando zona.
-message.decline.invitation=Voc\u00ea tem certeza que quer rejeitar este convite de projeto ?
-message.dedicated.zone.released=Zona dedicada lioberada
-message.dedicate.zone=Zona dedicada
-message.delete.account=Confirme se voc\u00ea deseja excluir esta conta.
-message.delete.affinity.group=Por favor, confirme que voc\u00ea deseja remover este grupo de afinidade
-message.delete.gateway=Favor confirmar que voc\u00ea deseja deleta o gateway
-message.delete.project=Voc\u00ea tem certeza que deseja deletar este projeto ?
-message.delete.user=Por favor confirme que voc\u00ea deseja deletar este usu\u00e1rio.
-message.delete.VPN.connection=Favor confirmar que voc\u00ea deseja deletar esta conex\u00e3o VPN
-message.delete.VPN.customer.gateway=Favor confirmar que voc\u00ea deseja deletar este gateway de VPN de usu\u00e1rio
-message.delete.VPN.gateway=Favor confirmar que voc\u00ea deseja deletar este gateway de VPN
-message.desc.add.new.lb.sticky.rule=Adicionar nova regra fixa de LB
-message.desc.advanced.zone=Para topologias de rede mais sofisticadas. Este modelo fornece maior flexibilidade na defini\u00e7\u00e3o de redes de clientes e fornece ofertas de rede personalizadas, tais como firewall, VPN ou de balanceamento de carga.
-message.desc.basic.zone=Fornece uma \u00fanica rede onde em cada inst\u00e2ncia de VM \u00e9 atribu\u00eddo um IP diretamente na rede. O isolamento Guest podem ser fornecidos atrav\u00e9s de camada-3 da rede com grupos de seguran\u00e7a (filtragem da fonte de endere\u00e7os IP).
-message.desc.cluster=Cada pod deve conter um ou mais clusters, e iremos adicionar o primeiro cluster agora. Um cluster fornece uma maneira de agrupamento de hosts. Os hosts de um cluster t\u00eam hardware id\u00eantico, executam o mesmo hypervisor, est\u00e3o na mesma sub-rede e acessam o mesmo storage compartilhado. Cada cluster \u00e9 constitu\u00eddo por um ou mais hosts e um ou mais servidores de storage prim\u00e1rio.
-message.desc.created.ssh.key.pair=Par de chaves SSH criado
-message.desc.create.ssh.key.pair=Por favor, preencha os seguintes dados para criar ou registar um par de chaves ssh.<br><br>(1) Se a chave p\u00fablica est\u00e1 definida, CloudStack ir\u00e1 registrar a chave p\u00fablica. Voc\u00ea pode us\u00e1-la atrav\u00e9s de sua chave privada.<br><br>(2) Se a chave p\u00fablica n\u00e3o est\u00e1 definida, CloudStack ir\u00e1 criar um novo par de chaves SSH. Neste caso, copie e salve a chave privada. CloudStack n\u00e3o ir\u00e1 mant\u00ea-la.<br>
-message.desc.host=Cada cluster deve conter pelo menos um host (computador) para as VMs guest serem executadas e iremos adicionar o primeira host agora. Para um host funcionar no CloudStack, voc\u00ea deve instalar um hypervisor no host, atribuir um endere\u00e7o IP e garantir que o host est\u00e1 conectado ao servidor de gerenciamento do CloudStack.<br/><br/>Forne\u00e7a o hostname ou o endere\u00e7o IP do host, o nome de usu\u00e1rio (geralmente root) e a senha  e qualquer label que voc\u00ea utiliza para categorizar os hosts.
-message.desc.primary.storage=Cada cluster deve conter um ou mais servidores de storage prim\u00e1rio e iremos adicionar o primeiro agora. Um storage prim\u00e1rio, cont\u00e9m os volumes de disco para todas as VMs em execu\u00e7\u00e3o nos hosts do cluster. Utiliza qualquer protocolo compat\u00edvel com os padr\u00f5es que \u00e9 suportado pelo hypervisor utilizado.
-message.desc.reset.ssh.key.pair=Por favor, especifique um par de chaves SSH que voc\u00ea deseja adicionar a esta VM. Por favor, note que a senha de root ser\u00e1 alterada por esta opera\u00e7\u00e3o caso a senha esteja ativada.
-message.desc.secondary.storage=Cada zona deve ter pelo menos um NFS ou servidor de storage secund\u00e1rio e iremos adicionar o primeiro agora. Um storage secund\u00e1rios armazena templates de VM, imagens ISO e snapshots do volume de disco da VM. Esse servidor deve estar dispon\u00edvel para todos os hosts na zona. <br/><br/> Fornecer o endere\u00e7o IP e o caminho exportados.
-message.desc.zone=Uma zona \u00e9 a maior unidade organizacional no CloudStack e normalmente corresponde \u00e0 um \u00fanico datacenter. As Zonas disponibilizam isolamento f\u00edsico e redund\u00e2ncia. Uma zona \u00e9 composta por um ou mais pods (cada um dos quais cont\u00e9m os hosts e servidores de storage prim\u00e1rio) e um servidor de storage secund\u00e1rio que \u00e9 compartilhado por todos os pods na zona.
-message.detach.disk=Voc\u00ea tem certeza que deseja desconectar este disco ?
-message.detach.iso.confirm=Confirme se voc\u00ea deseja desconectar o ISO da inst\u00e2ncia virtual.
-message.disable.account=Por favor confirme que voc\u00ea deseja desabilitar esta conta. Ap\u00f3s desabilitar uma conta, todos os usu\u00e1rios desta conta n\u00e3o ir\u00e3o possuir mais acesso aos seus recursos da cloud.  Todas as m\u00e1quinas virtuais ser\u00e3o automaticamente desligadas.
-message.disable.snapshot.policy=Voc\u00ea desativou com sucesso sua pol\u00edtica de Snapshot.
-message.disable.user=Por favor confirme que voc\u00ea deseja desabilitar este usu\u00e1rio.
-message.disable.vpn.access=Confirme se voc\u00ea deseja desativar o acesso VPN.
-message.disable.vpn=Voc\u00ea tem certeza que deseja desabilitar a VPN?
-message.disabling.network.offering=Desabilita oferta de rede
-message.disabling.vpc.offering=Desabilitando oferta VPC
-message.disallowed.characters=Caracteres n\u00e3o-permitidos\: \\<\\,\\>
-message.download.ISO=Por favor clique <a href\="\#">00000</a> para baixar o ISO
-message.download.template=Por favor clique <a href\="\#">00000</a> para baixar o template
-message.download.volume=Clique <a href\="\#">00000</a> para baixar o disco
-message.download.volume.confirm=Por favor confirme que voc\u00ea quer baixar este volume
-message.edit.account=Editar ("-1" indica que n\u00e3o haver\u00e1 limites para a quantidade de recursos criado)
-message.edit.confirm=Por favor, confirme as altera\u00e7\u00f5es antes de clicar em "Salvar".
-message.edit.limits=Especifique os limites para os seguintes recursos. "-1" indica sem limite para o total de recursos criados.
-message.edit.traffic.type=Favor especificar a etiqueta de tr\u00e1fego que voc\u00ea deseja associar com este tipo de tr\u00e1fego.
-message.enable.account=Confirme se voc\u00ea deseja ativar a conta.
-message.enabled.vpn.ip.sec=Sua chave IPSec (pre-shared) \u00e9
-message.enabled.vpn=Seu acesso VPN Est\u00e1 ativado e pode ser acessado atrav\u00e9s do IP
-message.enable.user=Por favor confirme que voc\u00ea deseja habilitar este usu\u00e1rio.
-message.enable.vpn.access=VPN Est\u00e1 desativada para este endere\u00e7o IP. Gostaria de ativar o acesso VPN?
-message.enable.vpn=Por favor confirme que voc\u00ea deseja acesso VPN habilitado para este endere\u00e7o IP.
-message.enabling.network.offering=Habilitando oferta de rede
-message.enabling.security.group.provider=Habilitar provider de grupo de seguran\u00e7a
-message.enabling.vpc.offering=Habilitando oferta VPC
-message.enabling.zone.dots=Habilitando Zona....
-message.enabling.zone=Habilitando zona
-message.enter.seperated.list.multiple.cidrs=Por favor entre a de CIDRs separadas por v\u00edrgula, se houver mais de uma
-message.enter.token=Por favor entre o token que voc\u00ea recebeu no e-mail privado.
-message.generate.keys=Por favor confirme que voc\u00ea deseja gerar novas chaves para este usu\u00e1rio.
-message.gslb.delete.confirm=Confirme que voc\u00ea deseja apagar este GSLB
-message.gslb.lb.remove.confirm=Confirme que voc\u00ea deseja remover o balanceamento de carga deste GSLB
-message.guest.traffic.in.advanced.zone=O tr\u00e1fego de rede guest \u00e9 para comunica\u00e7\u00e3o entre m\u00e1quinas virtuais do usu\u00e1rio final. Especifique um intervalo de IDs de VLAN para transportar o tr\u00e1fego do guest para cada rede f\u00edsica.
-message.guest.traffic.in.basic.zone=O tr\u00e1fego de rede guest \u00e9 para comunica\u00e7\u00e3o entre m\u00e1quinas virtuais do usu\u00e1rio final. Especifique um intervalo de endere\u00e7os IP para que CloudStack possa atribuir \u00e0s VMs. Certifique-se que este intervalo n\u00e3o se sobreponha o range de IPs reservados do sistema.
-message.host.dedicated=Host dedicado
-message.host.dedication.released=Host dedicado liberado
-message.installWizard.click.retry=Click no bot\u00e3o para tentar executar novamente.
-message.installWizard.copy.whatIsACluster=Um cluster prov\u00ea uma maneira de agrupar hosts. Os hosts em um cluster tem hardware id\u00eantico, rodam o mesmo hypervisor, est\u00e3o na mesma subnet, acessam o mesmo storage compartilhado. Inst\u00e2ncias de m\u00e1quinas virtuais (VMs) podem ser migradas a quente - live migration -  de um host para outro host no mesmo cluster, sem interromper o servi\u00e7o para o usu\u00e1rio. Um Cluster \u00e9 a terceira maior unidade organizacional em uma instala\u00e7\u00e3o CloudStack&\#8482; . Clusters est\u00e3o contidos em pods e pods est\u00e3o contidos em zonas.<br/><br/>O CloudStack&\#8482; permite m\u00faltiplos clusters em uma mesma cloud, entretanto para a instala\u00e7\u00e3o b\u00e1sica, n\u00f3s iremos precisar apenas de um cluster.
-message.installWizard.copy.whatIsAHost=Um host \u00e9 um \u00fanico computador. Os Hosts prov\u00eaem os recursos computacionais para executar as m\u00e1quinas virtuais.  Cada host possu\u00ed o software do hypervisor instalado nele para gerenciar as guest VMs (Exceto os hosts bare metal, que s\u00e3o um caso especial discutido no Guia Avan\u00e7ado de Instala\u00e7\u00e3o). Por exemplo, um servidor Linux com KVM habilitado,  um servidor Citrix XenServer e um servidor ESXi s\u00e3o hosts. Na Instala\u00e7\u00e3o B\u00e1sica, n\u00f3s utilizamos um \u00fanico host rodando XenServer ou KVM.<br/><br/>O host \u00e9 a menor unidade organizacional dentro de uma instala\u00e7\u00e3o CloudStack&\#8482; . Hosts est\u00e3o contidos dentro de Clusters, clusters est\u00e3o contidos dentro de pods e pods est\u00e3o contidos dentro de zonas.
-message.installWizard.copy.whatIsAPod=Um pod normalmente representa um \u00fanico rack. Hosts no mesmo pod est\u00e3o na mesma subrede.<br/><br/> Um pod \u00e9 a segunda maior unidade organizacional de uma instala\u00e7\u00e3o CloudStack&\#8482; . Pods est\u00e3o contidos dentro de zonas. Cada zona, pode conter um ou mais pods; Na instala\u00e7\u00e3o b\u00e1sica, voc\u00ea ir\u00e1 ter apenas um pod na sua zona.
-message.installWizard.copy.whatIsAZone=Uma zona \u00e9 a maior unidade organizacional em uma instala\u00e7\u00e3o CloudStack&\#8482; . Uma zona tipicamente corresponde a um \u00fanico datacenter, apesar de ser poss\u00edvel ter m\u00faltiplas zonas no mesmo datacenter. O benef\u00edcio de se organizar a infra-estrutura em zonas \u00e9 permitir o isolamento f\u00edsico e redund\u00e2ncia. Por exemplo, cada zona pode possuir sua pr\u00f3pria alimenta\u00e7\u00e3o de  energia e link de sa\u00edda de internet e zonas podem estar geograficamente separadas (apesar de n\u00e3o ser obrigat\u00f3rio).
-message.installWizard.copy.whatIsCloudStack=O CloudStack&\#8482 \u00e9 uma plataforma de software que agrega recursos computacionais para construir uma Cloud de Infra-estrutura como Servi\u00e7o (IaaS) p\u00fablica, privada ou h\u00edbrida. O CloudStack&\#8482 ger\u00eancia a rede, o storage e os recursos computacionais que comp\u00f5em a infra-estrutura de cloud. Utilize o CloudStack&\#8482 para instalar, gerenciar e configurar os ambientes de cloud computing.<br/><br/>Indo al\u00e9m de imagens de m\u00e1quinas virtuais individuais rodando em hardware commodity, CloudStack&\#8482 prov\u00ea uma solu\u00e7\u00e3o  completa de software de infra-estrutura de cloud para entregar datacenters virtuais como um servi\u00e7o - possuindo todos os componentes essenciais para contruir, instalar e gerenciar aplica\u00e7\u00f5es na cloud multi-camadas e multi-tenant. Ambas as vers\u00f5es open-source e premium est\u00e3o dispon\u00edveis, com a vers\u00e3o opensource oferecendo praticamente os mesmos recursos.
-message.installWizard.copy.whatIsPrimaryStorage=Uma infraestrutura de Cloud CloudStack; utiliza dois tipos de storage\: storage prim\u00e1rio e storage secund\u00e1rio. Ambos os tipos podem ser iSCSI,  NFS servers, ou disco local.<br/><br/><strong>O Storage prim\u00e1rio</strong> est\u00e1 associado com um cluster, e armazena os volumes de disco de cada guest VM para todas as VMs em execu\u00e7\u00e3o nos hosts deste cluster. O servidor de storage prim\u00e1rio tipicamente encontra-se localizado perto dos hosts.
-message.installWizard.copy.whatIsSecondaryStorage=O storage secund\u00e1rio est\u00e1 associado a uma zona, ele \u00e9 respons\u00e1vel por armazenar o seguinte\: <ul><li>Imagens de Templates do SO - que podem ser utilizadas para boot das VMs e podem incluir configura\u00e7\u00f5es adicionais, como por exemplo as aplica\u00e7\u00f5es instaladas</li><li>Imagens ISO - Imagens de sistema operacional que podem ser boot\u00e1veis ou n\u00e3o</li><li>Snapshots do volume de discos - c\u00f3pias salvas dos dados de uma VM que pode ser utilizada para recupera\u00e7\u00e3o de dados ou cria\u00e7\u00e3o de novos templates</ul>
-message.installWizard.now.building=Construindo sua cloud agora...
-message.installWizard.tooltip.addCluster.name=Um nome para o cluster. Este nome pode ser um nome de sua escolha e n\u00e3o \u00e9 usado pelo CloudStack.
-message.installWizard.tooltip.addHost.hostname=O nome DNS ou endere\u00e7o IP do host.
-message.installWizard.tooltip.addHost.password=Este \u00e9 a senha do usu\u00e1rio especificado acima (da sua instala\u00e7\u00e3o do XenServer)
-message.installWizard.tooltip.addHost.username=Usualmente root.
-message.installWizard.tooltip.addPod.name=O nome para o pod
-message.installWizard.tooltip.addPod.reservedSystemEndIp=Este \u00e9 o range de IP na rede privada que o CloudStack utiliza para gerenciar o storage secund\u00e1rio das VMs e Proxy Console das VMs. Estes endere\u00e7os IP s\u00e3o obtidos da mesma subrede dos servidores hosts.
-message.installWizard.tooltip.addPod.reservedSystemGateway=O gateway para os hosts neste pod.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=A m\u00e1scara de rede est\u00e1 em uso na subrede que os guests ir\u00e3o utilizar.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=Este \u00e9 o range de IP na rede privada que o CloudStack utiliza para gerenciar o storage secund\u00e1rio das VMs e Proxy Console das VMs. Estes endere\u00e7os IP s\u00e3o obtidos da mesma subrede dos servidores hosts.
-message.installWizard.tooltip.addPrimaryStorage.name=O Nome do dispositivo de storage.
-message.installWizard.tooltip.addPrimaryStorage.path=(para NFS) No NFS este \u00e9 o path exportado pelo servidor. Path (para SharedMountPoint). Com o KVM este \u00e9 o path em cada host onde o storage prim\u00e1rio est\u00e1 montado. Por exemplo, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(para NFS, iSCSI ou PreSetup) O Endere\u00e7o IP ou nome DNS do dispositivo de storage.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=O endere\u00e7o IP do servidor NFS hospedando o storage secund\u00e1rio
-message.installWizard.tooltip.addSecondaryStorage.path=Path exportado, localizado no servidor que voc\u00ea especificou acima
-message.installWizard.tooltip.addZone.dns1=Estes s\u00e3o os servidores DNS utilizados pelas guest VMs na zona. Estes servidores DNS ser\u00e3o acessados pela interface de rede p\u00fablica que voc\u00ea ir\u00e1 adicionar posteriormente. O endere\u00e7o IP p\u00fablico da zona deve possuir uma rota para os servidores DNS configurados aqui.
-message.installWizard.tooltip.addZone.dns2=Estes s\u00e3o os servidores DNS utilizados pelas guest VMs na zona. Estes servidores DNS ser\u00e3o acessados pela interface de rede p\u00fablica que voc\u00ea ir\u00e1 adicionar posteriormente. O endere\u00e7o IP p\u00fablico da zona deve possuir uma rota para os servidores DNS configurados aqui.
-message.installWizard.tooltip.addZone.internaldns1=Estes s\u00e3o os servidores DNS utilizados pelas VMs de sistema nesta zona. Estes servidores DNS ser\u00e3o acessados atrav\u00e9s da interface de rede privada das VMs de sistema. O endere\u00e7o IP privado que voc\u00ea configurar para os pods deve possuir uma rota para os servidores DNS configurados aqui.
-message.installWizard.tooltip.addZone.internaldns2=Estes s\u00e3o os servidores DNS utilizados pelas VMs de sistema nesta zona. Estes servidores DNS ser\u00e3o acessados atrav\u00e9s da interface de rede privada das VMs de sistema. O endere\u00e7o IP privado que voc\u00ea configurar para os pods deve possuir uma rota para os servidores DNS configurados aqui.
-message.installWizard.tooltip.addZone.name=Um nome para a zona
-message.installWizard.tooltip.configureGuestTraffic.description=Uma descri\u00e7\u00e3o da sua rede
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=O range de endere\u00e7os IP que estar\u00e1 dispon\u00edvel para aloca\u00e7\u00e3o para os guests nesta zona. Caso uma Interface de Rede seja utilizada, estes IPs devem estar no mesmo CIDR que o CIDR do pod.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=O gateway que os guests devem usar
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=A m\u00e1scara de rede da subrede que os guests devem usar
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=O range de endere\u00e7os IP que estar\u00e1 dispon\u00edvel para aloca\u00e7\u00e3o para os guests nesta zona. Caso uma Interface de Rede seja utilizada, estes IPs devem estar no mesmo CIDR que o CIDR do pod.
-message.installWizard.tooltip.configureGuestTraffic.name=Um nome para sua rede
-message.instance.scaled.up.confirm=Voc\u00ea realmente quer escalonar sua inst\u00e2ncia?
-message.instanceWizard.noTemplates=Voc\u00ea n\u00e3o possui nenhum template dispon\u00edvel; por favor adicione um template compat\u00edvel e reinicie o wizard de inst\u00e2ncia.
-message.ip.address.changed=Seu endere\u00e7o IP pode ter mudado; voc\u00ea gostaria de atualizar a listagem ? Note que neste caso o painel de detalhes ir\u00e1 fechar.
-message.iso.desc=Imagem de disco contendo dados ou m\u00eddia de sistema operacional boot\u00e1vel
-message.join.project=Voc\u00ea agora entrou em um projeto. Por favor troque para a vis\u00e3o de Projeto para visualizar o projeto.
-message.launch.vm.on.private.network=Voc\u00ea deseja executar a sua inst\u00e2ncia na sua pr\u00f3pria rede privada dedicada?
-message.launch.zone=A zona est\u00e1 pronta para ser executada; por favor, v\u00e1 para o pr\u00f3ximo passo.
-message.ldap.group.import=Todos os usu\u00e1rios do grupo nome dado ser\u00e1 importado
-message.link.domain.to.ldap=Ativar sincroniza\u00e7\u00e3o autom\u00e1tica para este dom\u00ednio em LDAP
-message.listView.subselect.multi=(Ctrl/Cmd-click)
-message.lock.account=Confirme se voc\u00ea deseja bloquear esta conta. Bloqueando a conta, todos os Usu\u00e1rios desta conta n\u00e3o estar\u00e3o mais habilitados a gerenciar os recursos na nuvem. Os recursos existentes (Cloud Server) ainda poder\u00e3o ser acessados.
-message.migrate.instance.confirm=Confirme o host que voc\u00ea deseja migrar a inst\u00e2ncia virtual.
-message.migrate.instance.to.host=Por favor confirme que voc\u00ea deseja migrar a inst\u00e2ncia para outro host.
-message.migrate.instance.to.ps=Por favor confirme que voc\u00ea deseja migrar a inst\u00e2ncia para outro storage prim\u00e1rio.
-message.migrate.router.confirm=Por favor confirme o host que voc\u00ea deseja migrar o roteador para\:
-message.migrate.systemvm.confirm=Por favor confirme o host para o qual voc\u00ea deseja migrar a VM de sistema\:
-message.migrate.volume=Por favor confirme que voc\u00ea deseja migrar o volume para outro storage prim\u00e1rio.
-message.network.addVM.desc=Por favor especifique a rede onde voc\u00ea gostaria de adicionar esta VM. Uma nova NIC ser\u00e1 adicionada a esta rede.
-message.network.addVMNIC=Por favor confirme que voc\u00ea gostaria de adicionar uma nova VM NIC para esta rede.
-message.network.remote.access.vpn.configuration=A configura\u00e7\u00e3o de acesso remoto VPN foi gerada, mas falhou ao ser aplicada. Por favor, verifique a conectividade dos elementos de rede e depois tente novamente.
-message.new.user=Especifique abaixo para adicionar novos usu\u00e1rios para a conta
-message.no.affinity.groups=Voc\u00ea n\u00e3o tem nenhum grupo de afinidade. Por favor, v\u00e1 para o pr\u00f3ximo passo.
-message.no.host.available=Sem hosts dispon\u00edveis para Migra\u00e7\u00e3o
-message.no.network.support.configuration.not.true=Voc\u00ea n\u00e3o possui nenhuma zona com grupos de seguran\u00e7a habilitado. Assim sendo, n\u00e3o possui recursos adicionais de rede. Por favor continue para o passo 5.
-message.no.network.support=O hypervisor escolhido, vSphere, n\u00e3o possui nenhum recurso de rede adicional. Por favor, v\u00e1 para o passo 5.
-message.no.projects.adminOnly=Voc\u00ea n\u00e3o possui nenhum projeto. <br/> Por favor solicite ao seu administrador a cria\u00e7\u00e3o de um novo projeto.
-message.no.projects=Voc\u00ea n\u00e3o possui nenhum projeto.<br/>Por favor crie um novo projeto \u00e0 partir da se\u00e7\u00e3o Projetos.
-message.number.clusters=<h2>Clusters</h2>
-message.number.hosts=<h2>Hosts</h2>
-message.number.pods=<h2>PODs</h2>
-message.number.storage=<h2>Volumes do Storage Prim\u00e1rio</h2>
-message.number.zones=<h2>Zonas</h2>
-message.password.has.been.reset.to=A senha foi redefinida para
-message.password.of.the.vm.has.been.reset.to=A senha da VM foi redefinida para
-message.pending.projects.1=Voc\u00ea possui convites de projetos pendentes\:
-message.pending.projects.2=Para visualizar, por favor acesse a se\u00e7\u00e3o de projetos, depois selecione os convites no menu drop-down.
-message.please.add.at.lease.one.traffic.range=Por favor adicione pelo menos um range de tr\u00e1fego.
-message.please.confirm.remove.ssh.key.pair=Por favor, confirme que voc\u00ea deseja remover este par de chaves SSH
-message.please.proceed=Por favor, v\u00e1 para o pr\u00f3ximo passo.
-message.please.select.a.configuration.for.your.zone=Por favor selecione uma configuracao para sua zona.
-message.please.select.a.different.public.and.management.network.before.removing=Por favor selecione uma rede p\u00fablica e de gerenciamento diferente antes de remover
-message.please.select.networks=Por favor selecione as redes para sua m\u00e1quina virtual.
-message.please.select.ssh.key.pair.use.with.this.vm=Por favor, selecione um par de chaves SSH que voc\u00ea deseja que esta VM utilize\:
-message.please.wait.while.zone.is.being.created=Por favor, espere enquanto sua zona est\u00e1 sendo criada; isto pode demorar um pouco...
-message.pod.dedication.released=Pod Dedicado liberado
-message.portable.ip.delete.confirm=Favor confirmar que voc\u00ea deseja apagar esta Faixa de IPs Port\u00e1veis
-message.project.invite.sent=Convite enviado para o usu\u00e1rio; Eles ser\u00e3o adicionados ao projeto ap\u00f3s aceitarem o convite
-message.public.traffic.in.advanced.zone=O tr\u00e1fego p\u00fablico \u00e9 gerado quando as VMs na nuvem acessam a internet. Os IPs acess\u00edveis ao p\u00fablico devem ser alocados para essa finalidade. Os usu\u00e1rios finais podem usar a interface do usu\u00e1rio CloudStack para adquirir esses IPs afim de implementar NAT entre a sua rede de guests e sua rede p\u00fablica. <br/><br/> Forne\u00e7a pelo menos um intervalo de endere\u00e7os IP para o tr\u00e1fego de internet.
-message.public.traffic.in.basic.zone=O tr\u00e1fego p\u00fablico \u00e9 gerado quando as VMs na nuvem acessam a Internet ou prestam servi\u00e7os aos clientes atrav\u00e9s da Internet. Os IPs acess\u00edveis ao p\u00fablico devem ser alocados para essa finalidade. Quando uma inst\u00e2ncia \u00e9 criada, um IP a partir deste conjunto de IPs p\u00fablicos ser\u00e3o destinados \u00e0 inst\u00e2ncia, al\u00e9m do endere\u00e7o IP guest. Um NAT est\u00e1tico 1-1  ser\u00e1 criada automaticamente entre o IP p\u00fablico e IP guest. Os usu\u00e1rios finais tamb\u00e9m podem usar a interface de usu\u00e1rio CloudStack para adquirir IPs adicionais afim de se implementar NAT est\u00e1tico entre suas inst\u00e2ncias e o IP p\u00fablico.
-message.question.are.you.sure.you.want.to.add=Voc\u00ea tem certeza que deseja adicionar
-message.read.admin.guide.scaling.up=Por favor leia a sess\u00e3o sobre escalonamento din\u00e2mico no guia do administrador antes de escalonar.
-message.recover.vm=Por favor, confirme a recupera\u00e7\u00e3o desta VM.
-message.redirecting.region=Redirecionando para regi\u00e3o...
-message.reinstall.vm=NOTA\: Proceda com cuidado. Isso far\u00e1 com que a m\u00e1quina virtual seja re-instalada a partir  do Template. Todos os datos do disco ROOT ser\u00e3o perdidos. Volumes de Dados adicionais, se houver, n\u00e3o ser\u00e3o alterados.
-message.removed.ssh.key.pair=Par de chaves SSH removido
-message.remove.ldap=Voc\u00ea tem certeza que deseja deletar a configura\u00e7\u00e3o LDAP?
-message.remove.region=Voc\u00ea tem certeza que deseja remover esta regi\u00e3o deste servidor de gerenciamento?
-message.remove.vpc=Favor confirmar que voc\u00ea deseja remover a VPC
-message.remove.vpn.access=Confirme se voc\u00ea deseja remover acesso VPN do seguinte Usu\u00e1rio.
-message.reset.password.warning.notPasswordEnabled=O template desta inst\u00e2ncia foi criado sem uma senha habilitada
-message.reset.password.warning.notStopped=Sua inst\u00e2ncia deve estar parada antes de tentar trocar sua senha atual
-message.reset.VPN.connection=Favor confirmar que voc\u00ea deseja resetar a conex\u00e3o VPN
-message.restart.mgmt.server=Reinicie o(s) servidor(es) de gerenciamento para que a nova configura\u00c3\u00a7\u00c3\u00a3o tenha efeito.
-message.restart.mgmt.usage.server=Por favor reinicie seu servidor(es) de gerenciamento e seu servidor(es) de utiliza\u00e7\u00e3o para as mudan\u00e7as entrarem em efeito.
-message.restart.network=Por favor confirme que voc\ufffd deseja reiniciar a rede
-message.restart.vpc=Favor confirmar que voc\u00ea deseja reiniciar a VPC
-message.restart.vpc.remark=Por favor, confirme a reinicializa\u00e7\u00e3o do VPC <p><small><i>Observa\u00e7\u00e3o\: fazendo um VPC redundante n\u00e3o redundante ir\u00e1 for\u00e7ar uma limpeza. As redes n\u00e3o estar\u00e3o dispon\u00edveis por alguns minutos</i>.</small></p>
-message.restoreVM=Quer restaurar a VM?
-message.security.group.usage=(Use <strong>Ctrl-clique</strong> para selecionar todos os Security Groups)
-message.select.affinity.groups=Por favor, selecione quaisquer grupos de afinidade que voc\u00ea deseja que esta VM perten\u00e7a\:
-message.select.a.zone=A zone tipicamente corresponde a um \u00fanico datacenter. M\u00faltiplas zonas auxiliam a cloud a ser mais confi\u00e1vel provendo isolamento f\u00edsico e redund\u00e2ncia.
-message.select.instance=Por favor selecione uma inst\u00e2ncia.
-message.select.iso=Por favor selecione um ISO para sua nova inst\u00e2ncia virtual
-message.select.item=Por favor selecione um item.
-message.select.security.groups=Por favor selecione o(s) grupo(s) de seguran\u00e7a para sua nova VM
-message.select.template=Por favor selecione um template para sua nova inst\u00e2ncia virtual.
-message.select.tier=Por favor, selecione um tier
-message.set.default.NIC.manual=Por favor atualize manualmente o NIC padr\u00e3o desta VM agora.
-message.set.default.NIC=Por favor confirme que voc\u00ea quer tornar este NIC o padr\u00e3o para esta VM,
-message.setup.physical.network.during.zone.creation=Ao adicionar uma zona avan\u00e7ada, voc\u00ea precisa configurar uma ou mais redes f\u00edsicas. Cada rede corresponde  \u00e0 uma Interface de Rede no hypervisor. Cada rede f\u00edsica pode ser utilizada para transportar um ou mais tipos de tr\u00e1fego, com certas restri\u00e7\u00f5es sobre como eles podem ser combinados. <br/> <strong> Arraste e solte um ou mais tipos de tr\u00e1fego </ strong> em cada rede f\u00edsica.
-message.setup.physical.network.during.zone.creation.basic=Quando adicionar uma zona b\u00e1sica, voc\u00ea pode configurar uma rede f\u00edsica, que corresponde a uma Interface de Rede no hypervisor. A rede carrega diversos tipos de tr\u00e1fego.<br/><br/>Voc\u00ea pode <strong>adicionar e remover</strong> outros tipos de tr\u00e1fego na mesma interface de rede f\u00edsica.
-message.setup.successful=Cloud configurada com sucesso\!
-message.snapshot.schedule=Voc\u00ea pode configurar Snapshots recorrentes agendados selecionando as op\u00e7\u00f5es dispon\u00edveis abaixo e aplicando suas pol\u00edticas preferenciais
-message.specifiy.tag.key.value=Por favor especifique chave e valor da tag
-message.specify.url=Por favor especifique a URL
-message.step.1.continue=Selecione o template ou ISO para continuar
-message.step.1.desc=Por favor, selecione um template para a sua nova inst\u00e2ncia virtual. Voc\u00ea pode tamb\u00e9m escolher um template limpo e instalar a partir de uma imagem ISO.
-message.step.2.continue=Selecione o plano
-message.step.3.continue=Seleciona a oferta de disco
-message.step.4.continue=Selecione pelo menos uma rede para continuar
-message.step.4.desc=Selecione a rede principal que a sua inst\u00e2ncia virtual estar\u00e1 conectada.
-message.storage.traffic=Tr\u00e1fego entre os recursos internos do CloudStack, incluindo todos os componentes que se comunicam com o servidor de gerenciamento tais como hosts e m\u00e1quinas virtuais de sistema CloudStack. Por favor, configure o tr\u00e1fego do storage aqui.
-message.suspend.project=Voc\u00ea tem certeza que deseja suspender este projeto ?
-message.systems.vms.ready=VM de Sistema prontas.
-message.template.copying=O template est\u00e1 sendo copiado.
-message.template.desc=Imagem de SO que pode ser utilizada para bootar VMs
-message.tier.required=Tier \u00e9 obrigat\u00f3rio
-message.tooltip.dns.1=Endere\u00e7o de um servidor DNS que ser\u00e1 utilizado por todas as VMs da Zone. A faixa de IPs p\u00fablicos para essa Zone deve possuir uma rota para o servidor configurado.
-message.tooltip.dns.2=Um servidor DNS secund\u00e1rio para ser utilizado pelas VMs nesta zona. Os endere\u00e7os IP p\u00fablicos nesta zona devem ter rota para este servidor.
-message.tooltip.internal.dns.1=Nome de um servidor DNS que ser\u00e1 utilizado pelas VMs internas de sistema do CloudStack nesta zona. Os endere\u00e7os privados dos pods devem ter uma rota para este servidor.
-message.tooltip.internal.dns.2=Nome de um servidor DNS que ser\u00e1 utilizado pelas VMs internas de sistema do CloudStack nesta zona. Os endere\u00e7os privados dos pods devem ter uma rota para este servidor.
-message.tooltip.network.domain=Um sufixo DNS que ir\u00e1 criar um nome de dom\u00ednio customizado para a rede que \u00e9 acessada pelas guest VMs.
-message.tooltip.pod.name=Um nome para este pod.
-message.tooltip.reserved.system.gateway=O gateway para os hosts neste pod.
-message.tooltip.reserved.system.netmask=O prefixo de rede que define a subrede deste pod. Utilize a nota\u00e7\u00e3o CIDR.
-message.tooltip.zone.name=Um nome para a zona.
-message.update.os.preference=Escolha o SO de preferencia para este host. Todas Inst\u00e2ncias com preferencias similares ser\u00e3o alocadas neste host antes de tentar em outro.
-message.update.resource.count=Por favor confirme que voc\u00ea quer atualizar a contagem de recursos para esta conta.
-message.update.ssl=Envie o novo certificado SSL X.509 para ser atualizado em cada console proxy\:
-message.update.ssl.failed=Atualiza\u00e7\u00e3o do Certificado SSL falhou
-message.update.ssl.succeeded=Atualiza\u00e7\u00e3o do Certificado SSL feita com sucesso
-message.validate.accept=Por favor entre com uma extens\u00e3o v\u00e1lida.
-message.validate.creditcard=Por favor entre um n\u00famero de cart\u00e3o de cr\u00e9dito v\u00e1lido.
-message.validate.date.ISO=Por favor entre com uma data v\u00e1lida (ISO).
-message.validate.date=Por favor entre com uma data v\u00e1lida.
-message.validate.digits=Por favor entre com d\u00edgitos apenas.
-message.validate.email.address=Por favor entre um email v\u00e1lido.
-message.validate.equalto=Por favor entre com o mesmo valor novamente.
-message.validate.fieldrequired=Este campo \u00e9 obrigat\u00f3rio.
-message.validate.fixfield=Por favor, arrume este campo.
-message.validate.instance.name=Nomes de inst\u00e2ncias n\u00e3o podem ter mais de 63 caracteres. Somente letras ASCII a~z, A~Z, d\u00edgitos 0~9 e h\u00edfen s\u00e3o permitidos. Deve come\u00e7ar com uma letra e terminar com uma letra ou d\u00edgito.
-message.validate.invalid.characters=Caracteres inv\u00e1lidos encontrados, por favor corrija.
-message.validate.maxlength=Por favor entre com mais de [0] caracteres.
-message.validate.max=Por favor entre com um valor menor que ou igual a {0}.
-message.validate.minlength=Por favor entre com pelo menos [0] caracteres.
-message.validate.number=Por favor entre um n\u00famero v\u00e1lido.
-message.validate.range.length=Por favor entre com um valor com tamanho entre [0] e [1] caracteres.
-message.validate.range=Por favor entre com um valor com valor entre [0] e [1].
-message.validate.URL=Por favor entre uma URL v\u00e1lida.
-message.virtual.network.desc=Rede virtual dedicado para sua conta. O Dom\u00ednio de broadcast Est\u00e1 na VLAN e todo acesso a internet \u00e9 roteado atrav\u00e9s do virtual router.
-message.vm.create.template.confirm=Criar Template reiniciar\u00e1 a VM automaticamente.
-message.vm.review.launch=Por favor revise a informa\u00e7\u00e3o abaixo e confirme que sua inst\u00e2ncia virtual est\u00e1 correta antes de executa-la.
-message.vnmc.available.list=VNMC n\u00e3o est\u00e1 dispon\u00edvel na lista de provedores.
-message.vnmc.not.available.list=VNMC n\u00e3o est\u00e1 dispon\u00edvel na lista de provedores.
-message.volume.create.template.confirm=Confirme se voc\u00ea deseja criar um template a partir deste disco. A cria\u00e7\u00e3o do template pode levar alguns minutos ou mais dependendo do tamanho do disco.
-message.waiting.for.builtin.templates.to.load=Aguardando a carga dos templates integrados...
-message.XSTools61plus.update.failed=A atualiza\u00e7\u00e3o do campo Original XS Version is 6.1\\+ falhou. Erro\:
-message.you.must.have.at.least.one.physical.network=Voc\u00ea deve ter pelo menos uma rede f\u00edsica
-message.your.cloudstack.is.ready=Seu CLoudStack est\u00e1 pronto\!
-message.Zone.creation.complete=Cria\u00e7\u00e3o de zona completa
-message.zone.creation.complete.would.you.like.to.enable.this.zone=Cria\u00e7\u00e3o de zona completa. Voc\u00ea gostaria de habilitar esta zona?
-message.zone.no.network.selection=A zona que voc\u00ea selecionou n\u00e3o possui nenhuma rede para ser escolhida.
-message.zone.step.1.desc=Seleciona o modelo de rede para a zona.
-message.zone.step.2.desc=Entre a informa\u00e7\u00e3o a seguir para adicionar uma nova zona
-message.zone.step.3.desc=Entre a informa\u00e7\u00e3o a seguir para adicionar um novo pod
-message.zoneWizard.enable.local.storage=ALERTA\: se voc\u00ea habilitar storage local para esta zona, voc\u00ea deve fazer o seguinte, dependendo se voc\u00ea quiser que suas m\u00e1quinas virtuais de sistema inicializem\:<br/><br/>1. Se m\u00e1quinas virtuais de sistema precisam ser iniciadas em storage prim\u00e1ria, storage prim\u00e1ria precisa ser adicionada \u00e0 zona ap\u00f3s a cria\u00e7\u00e3o. Voc\u00ea tamb\u00e9m deve ativar a zona em um estado desabilitado.<br/><br/>2. Se m\u00e1quinas virtuais de sistema precisam ser iniciadas em storage local, system.vm.use.local.storage precisa ser estabelecida como verdadeira antes de voc\u00ea habilitar a zona.<br/><br/><br/>Voc\u00ea quer continuar?
-messgae.validate.min=Por favor entre com um valor maior que ou igual a {0}.
-mode=Modo
-network.rate=Taxa de Transfer\u00eancia
-notification.reboot.instance=Reiniciar inst\u00e2ncia
-notification.start.instance=Iniciar inst\u00e3ncia
-notification.stop.instance=Parar inst\u00e2ncia
-side.by.side=Lado a Lado
-state.Accepted=Aceito
-state.Active=Ativo
-state.Allocated=Alocado
-state.Allocating=Alocando
-state.BackedUp=Back up realizado com sucesso
-state.BackingUp=Realizando Back up
-state.Completed=Completo
-state.Creating=Criando
-state.Declined=Recusado
-state.Destroyed=Destru\u00eddo
-state.detached=Desanexado
-state.Disabled=Desativado
-state.Enabled=Habilitado
-state.Error=Erro
-state.Expunging=Removendo
-state.Migrating=Migrando
-state.Pending=Pendente
-state.Ready=Pronto
-state.Running=Executando
-state.Starting=Iniciando
-state.Stopped=Parado
-state.Stopping=Parando
-state.Suspended=Suspendido
-title.upload.volume=Upload Volume
-ui.listView.filters.all=Todos
-ui.listView.filters.mine=Meus
diff --git a/client/WEB-INF/classes/resources/messages_ru_RU.properties b/client/WEB-INF/classes/resources/messages_ru_RU.properties
deleted file mode 100644
index 05fe718..0000000
--- a/client/WEB-INF/classes/resources/messages_ru_RU.properties
+++ /dev/null
@@ -1,1656 +0,0 @@
-# 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.
-
-changed.item.properties=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b
-confirm.enable.s3=\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f  S3-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-confirm.enable.swift=\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043d\u0438\u0436\u0435\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438 Swift
-error.could.not.enable.zone=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u043e\u043d\u0443
-error.installWizard.message=\u0427\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u0412\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043d\u0430\u0437\u0430\u0434 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438.
-error.invalid.username.password=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0456\u0439 \u043b\u043e\u0433\u0438\u043d \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c
-error.login=\u0412\u0430\u0448\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0430\u0448\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044f\u043c.
-error.menu.select=\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438\u0437-\u0437\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432.
-error.mgmt.server.inaccessible=\u0421\u0435\u0440\u0432\u0435\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437 \u043f\u043e\u0437\u0436\u0435.
-error.password.not.match=\u041f\u0430\u0440\u043e\u043b\u0438 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442
-error.please.specify.physical.network.tags=\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e, \u043f\u043e\u043a\u0430 \u0432\u044b \u043d\u0435 \u0443\u043a\u0430\u0436\u0435\u0442\u0435 \u0442\u0435\u0433\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0435\u0442\u0438.
-error.session.expired=\u0412\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u0441\u0441\u0438\u0438 \u0438\u0441\u0442\u0435\u043a\u043b\u043e.
-error.something.went.wrong.please.correct.the.following=\u0427\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u0412\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043d\u0430\u0437\u0430\u0434 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438.
-error.unable.to.reach.management.server=\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f
-error.unresolved.internet.name=\u0412\u0430\u0448\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0438\u043c\u044f \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c.
-force.delete.domain.warning=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435\: \u0412\u044b\u0431\u043e\u0440 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u0441\u0435\u0445 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043d\u0438\u043c\u0438 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438 \u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432
-force.delete=\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435
-force.remove.host.warning=\u0412\u044b\u0431\u043e\u0440 \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043f\u0435\u0440\u0435\u0434 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u0437 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.
-force.remove=\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435
-force.stop.instance.warning=\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435\: \u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0441\u0430\u043c\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435/\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.
-force.stop=\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c
-ICMP.code=\u041a\u043e\u0434 ICMP
-ICMP.type=\u0422\u0438\u043f ICMP
-image.directory=\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438
-inline=\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439
-instances.actions.reboot.label=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-label.about.app=\u041e CloudStack
-label.about=\u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435
-label.accept.project.invitation=\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442
-label.account.and.security.group=\u0410\u043a\u043a\u0430\u0443\u043d\u0442, \u0433\u0440\u0443\u043f\u043f\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-label.account.id=ID \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438
-label.account.lower=\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c
-label.account.name=\u0418\u043c\u044f \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438
-label.account.specific=\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430 \u0430\u043a\u043a\u0430\u0443\u043d\u043d\u0442\u0430
-label.accounts=\u0423\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.account=\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c
-label.acquire.new.ip=\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 IP
-label.acquire.new.secondary.ip=\u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441
-label.action.attach.disk.processing=\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430...
-label.action.attach.disk=\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0438\u0441\u043a
-label.action.attach.iso.processing=\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 ISO...
-label.action.attach.iso=\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c ISO
-label.action.cancel.maintenance.mode.processing=\u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f...
-label.action.cancel.maintenance.mode=\u0412\u044b\u0439\u0442\u0438 \u0438\u0437 \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f.
-label.action.change.password=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c
-label.action.change.service.processing=\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b...
-label.action.change.service=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u0443
-label.action.copy.ISO.processing=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ISO...
-label.action.copy.ISO=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c ISO
-label.action.copy.template.processing=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430...
-label.action.copy.template=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d
-label.action.create.template.from.vm=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u0437 \u0412\u041c
-label.action.create.template.from.volume=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u0437 \u0442\u043e\u043c\u0430
-label.action.create.template.processing=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430...
-label.action.create.template=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d
-label.action.create.vm.processing=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b...
-label.action.create.vm=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443
-label.action.create.volume.processing=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430...
-label.action.create.volume=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0438\u0441\u043a
-label.action.delete.account.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438...
-label.action.delete.account=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0447\u0451\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
-label.action.delete.cluster.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430...
-label.action.delete.cluster=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440
-label.action.delete.disk.offering.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u043b\u0443\u0433\u0438 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430...
-label.action.delete.disk.offering=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-label.action.delete.domain.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0430...
-label.action.delete.domain=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u043e\u043c\u0435\u043d
-label.action.delete.firewall.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430...
-label.action.delete.firewall=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0444\u0430\u0435\u0440\u0432\u043e\u043b\u0430
-label.action.delete.ingress.rule.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430...
-label.action.delete.ingress.rule=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.action.delete.IP.range.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 IP \u0430\u0434\u0440\u0435\u0441\u043e\u0432...
-label.action.delete.IP.range=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP \u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.action.delete.ISO.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 ISO...
-label.action.delete.ISO=\u0423\u0434\u0430\u043b\u0438\u0442\u044c ISO
-label.action.delete.load.balancer.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438....
-label.action.delete.load.balancer=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.action.delete.network.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438...
-label.action.delete.network=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0435\u0442\u044c
-label.action.delete.nexusVswitch=\u0423\u0434\u0430\u043b\u0438\u0442\u044c NexusVswitch
-label.action.delete.nic=\u0423\u0434\u0430\u043b\u0438\u0442\u044c NIC
-label.action.delete.physical.network=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0435\u0442\u0438
-label.action.delete.pod.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0435\u043d\u0434\u0430...
-label.action.delete.pod=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0435\u043d\u0434
-label.action.delete.primary.storage.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430...
-label.action.delete.primary.storage=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.action.delete.secondary.storage.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430...
-label.action.delete.secondary.storage=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.action.delete.security.group.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 Security Group....
-label.action.delete.security.group=\u0423\u0434\u0430\u043b\u0438\u0442\u044c Security Group
-label.action.delete.service.offering.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430...
-label.action.delete.service.offering=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441
-label.action.delete.snapshot.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u043d\u0438\u043c\u043a\u0430...
-label.action.delete.snapshot=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a
-label.action.delete.system.service.offering=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441
-label.action.delete.template.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430...
-label.action.delete.template=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d
-label.action.delete.user.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f...
-label.action.delete.user=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.action.delete.volume.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u043c\u0430...
-label.action.delete.volume=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u043c
-label.action.delete.zone.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0437\u043e\u043d\u044b...
-label.action.delete.zone=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0437\u043e\u043d\u0443
-label.action.destroy.instance.processing=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b...
-label.action.destroy.instance=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-label.action.destroy.systemvm.processing=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c....
-label.action.destroy.systemvm=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0412\u041c
-label.action.detach.disk.processing=\u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430....
-label.action.detach.disk=\u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0434\u0438\u0441\u043a
-label.action.detach.iso.processing=\u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 ISO....
-label.action.detach.iso=\u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c ISO
-label.action.disable.account.processing=\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438
-label.action.disable.account=\u0414\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
-label.action.disable.cluster.processing=\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430...
-label.action.disable.cluster=\u041e\u0442\u043a\u043b\u044e\u0447\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440
-label.action.disable.nexusVswitch=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c Nexus 1000v
-label.action.disable.physical.network=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c
-label.action.disable.pod.processing=\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u0435\u043d\u0434\u0430...
-label.action.disable.pod=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0442\u0435\u043d\u0434.
-label.action.disable.static.NAT.processing=\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432....
-label.action.disable.static.NAT=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c Static NAT
-label.action.disable.user.processing=\u0414\u0435\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f....
-label.action.disable.user=\u0414\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.action.disable.zone.processing=\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0437\u043e\u043d\u044b...
-label.action.disable.zone=\u041e\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u043e\u043d\u0443
-label.action.download.ISO=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c ISO
-label.action.download.template=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d
-label.action.download.volume.processing=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0438\u0441\u043a\u0430....
-label.action.download.volume=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0438\u0441\u043a
-label.action.edit.account=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
-label.action.edit.disk.offering=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-label.action.edit.domain=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043e\u043c\u0435\u043d
-label.action.edit.global.setting=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-label.action.edit.host=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0437\u0435\u043b
-label.action.edit.instance=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-label.action.edit.ISO=\u0418\u0437\u043c\u0435\u043d\u0438\u0438\u0442\u044c ISO
-label.action.edit.network.offering=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430
-label.action.edit.network.processing=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438....
-label.action.edit.network=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0442\u044c
-label.action.edit.pod=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0435\u043d\u0434
-label.action.edit.primary.storage=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.action.edit.resource.limits=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f
-label.action.edit.service.offering=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f
-label.action.edit.template=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d
-label.action.edit.user=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.action.edit.zone=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u043e\u043d\u0443
-label.action.enable.account.processing=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438....
-label.action.enable.account=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
-label.action.enable.cluster.processing=\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430...
-label.action.enable.cluster=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440
-label.action.enable.maintenance.mode.processing=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f.....
-label.action.enable.maintenance.mode=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f
-label.action.enable.nexusVswitch=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c Nexus 1000v
-label.action.enable.physical.network=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c
-label.action.enable.pod.processing=\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u0435\u043d\u0434\u0430..
-label.action.enable.pod=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0442\u0435\u043d\u0434
-label.action.enable.static.NAT.processing=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432....
-label.action.enable.static.NAT=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c Static NAT
-label.action.enable.user.processing=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f....
-label.action.enable.user=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.action.enable.zone.processing=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0437\u043e\u043d\u044b...
-label.action.enable.zone=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043e\u043d\u0443
-label.action.expunge.instance=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0412\u041c
-label.action.force.reconnect.processing=\u041f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435...
-label.action.force.reconnect=\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c
-label.action.generate.keys.processing=\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439...
-label.action.generate.keys=\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0438
-label.action.list.nexusVswitch=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 Nexus 1000v
-label.action.lock.account.processing=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438....
-label.action.lock.account=\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0447\u0451\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
-label.action.manage.cluster.processing=\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f...
-label.action.manage.cluster=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c
-label.action.migrate.instance.processing=\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043c\u0430\u0448\u0438\u043d\u044b....
-label.action.migrate.instance=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043c\u0430\u0448\u0438\u043d\u0443
-label.action.migrate.router.processing=\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u0440\u043e\u0443\u0442\u0435\u0440\u0430...
-label.action.migrate.router=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0440\u043e\u0443\u0442\u0435\u0440
-label.action.migrate.systemvm.processing=\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c...
-label.action.migrate.systemvm=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0412\u041c
-label.action.reboot.instance.processing=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043c\u0430\u0448\u0438\u043d\u044b...
-label.action.reboot.instance=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-label.action.reboot.router.processing=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0430...
-label.action.reboot.router=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0440\u043e\u0443\u0442\u0435\u0440
-label.action.reboot.systemvm.processing=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c
-label.action.reboot.systemvm=\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0412\u041c
-label.action.recurring.snapshot=\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u044b\u0435 \u0441\u043d\u0438\u043c\u043a\u0438
-label.action.register.iso=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f ISO
-label.action.register.template=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u043e URL
-label.action.release.ip.processing=\u041e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 IP...
-label.action.release.ip=\u041e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c IP
-label.action.remove.host.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430...
-label.action.remove.host=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0437\u0435\u043b
-label.action.reset.password.processing=\u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f...
-label.action.reset.password=\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c
-label.action.resize.volume.processing=\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0434\u0438\u0441\u043a\u0430....
-label.action.resize.volume=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430
-label.action.resource.limits=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u043e\u0432
-label.action.restore.instance.processing=\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b...
-label.action.restore.instance=\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-label.action.revert.snapshot.processing=\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u043d\u0438\u043c\u043a\u0443...
-label.action.revert.snapshot=\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u043a \u0441\u043d\u0438\u043c\u043a\u0443
-label.action.start.instance.processing=\u0417\u0430\u043f\u0443\u0441\u043a \u043c\u0430\u0448\u0438\u043d\u044b...
-label.action.start.instance=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-label.action.start.router.processing=\u0417\u0430\u043f\u0443\u0441\u043a \u0440\u043e\u0443\u0442\u0435\u0440\u0430....
-label.action.start.router=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u043e\u0443\u0442\u0435\u0440
-label.action.start.systemvm.processing=\u0417\u0430\u043f\u0443\u0441\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c...
-label.action.start.systemvm=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0412\u041c
-label.action.stop.instance.processing=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043c\u0430\u0448\u0438\u043d\u044b...
-label.action.stop.instance=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-label.action.stop.router.processing=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0430...
-label.action.stop.router=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u043e\u0443\u0442\u0435\u0440
-label.action.stop.systemvm.processing=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c...
-label.action.stop.systemvm=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c
-label.actions=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f
-label.action.take.snapshot.processing=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043d\u0438\u043c\u043a\u0430...
-label.action.take.snapshot=\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a...
-label.action=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f
-label.action.unmanage.cluster.processing=\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c...
-label.action.unmanage.cluster=\u041f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c
-label.action.update.OS.preference.processing=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u041e\u0421...
-label.action.update.OS.preference=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u041e\u0421
-label.action.update.resource.count.processing=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0447\u0435\u0442\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432
-label.action.update.resource.count=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0447\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432
-label.action.vmsnapshot.create=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a \u0412\u041c
-label.action.vmsnapshot.delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a \u0412\u041c
-label.action.vmsnapshot.revert=\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a \u0412\u041c
-label.activate.project=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442
-label.active.sessions=\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438
-label.add.accounts.to=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.add.accounts=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.add.account.to.project=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442
-label.add.account=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
-label.add.ACL=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c ACL
-label.add.affinity.group=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e affinity group
-label.add.by.cidr=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a CIDR
-label.add.by.group=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u0433\u0440\u0443\u043f\u043f\u0435
-label.add.by=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c
-label.add.cluster=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440
-label.add.compute.offering=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f
-label.add.direct.iprange=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0445 IP \u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.add.disk.offering=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-label.add.domain=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043c\u0435\u043d
-label.added.network.offering=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0443\u0441\u043b\u0443\u0433\u0438
-label.add.egress.rule=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.add.F5.device=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c F5 \u0443\u0441\u0442\u0440\u043e\u0439\u0432\u043e
-label.add.firewall=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0444\u0430\u0435\u0440\u0432\u043e\u043b\u0430.
-label.add.guest.network=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0433\u043e\u0441\u0442\u0435\u0432\u0443\u044e \u0441\u0435\u0442\u044c
-label.add.host=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0437\u0435\u043b
-label.adding.cluster=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430
-label.adding.failed=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c
-label.adding.pod=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0435\u043d\u0434\u0430
-label.adding.processing=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435...
-label.add.ingress.rule=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.adding.succeeded=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e
-label.adding=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u043e\u043d\u044b
-label.adding.user=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.adding.zone=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u043e\u043d\u044b
-label.add.ip.range=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.add.isolated.guest.network=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0433\u043e\u0441\u0442\u0435\u0432\u0443\u044e \u0441\u0435\u0442\u044c
-label.add.isolated.network=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c
-label.additional.networks=\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438
-label.add.ldap.account=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c LDAP \u0430\u043a\u043a\u0430\u0443\u043d\u0442
-label.add.load.balancer=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.add.more=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0435
-label.add.netScaler.device=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c Netscaler \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-label.add.network.ACL=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0443\u044e ACL
-label.add.network.device=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-label.add.network.offering=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b
-label.add.network=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u044c
-label.add.new.F5=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 F5
-label.add.new.gateway=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0448\u043b\u044e\u0437
-label.add.new.NetScaler=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 NetScaler
-label.add.new.PA=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c Palo Alto
-label.add.new.SRX=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 SRX
-label.add.new.tier=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 Tier
-label.add.NiciraNvp.device=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 Nvp
-label.add.PA.device=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e Palo Alto
-label.add.physical.network=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c
-label.add.pod=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0435\u043d\u0434
-label.add.port.forwarding.rule=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u0430
-label.add.primary.storage=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u0430\u043d\u043d\u044b\u0445
-label.add.region=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u043e\u043d
-label.add.resources=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432
-label.add.route=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442
-label.add.rule=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.add.secondary.storage=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.add.security.group=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-label.add.service.offering=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u0443
-label.add.SRX.device=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c SRX \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-label.add.static.nat.rule=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e NAT
-label.add.static.route=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442
-label.add.system.service.offering=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0441\u043b\u0443\u0436\u0431
-label.add.template=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d
-label.add.to.group=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0443
-label.add=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c
-label.add.user=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.add.vlan=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c VLAN
-label.add.vms.to.lb=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0412\u041c \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.add.vms=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0412\u041c-\u044b
-label.add.VM.to.tier=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0412\u041c \u043a tier
-label.add.vm=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0412\u041c
-label.add.volume=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u0441\u043a
-label.add.vpc.offering=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 VPC
-label.add.vpc=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c VPC
-label.add.vpn.customer.gateway=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c VPN \u0448\u043b\u044e\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0430
-label.add.VPN.gateway=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c VPN \u0448\u043b\u044e\u0437
-label.add.vpn.user=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f VPN
-label.add.vxlan=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c VXLAN
-label.add.zone=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u043e\u043d\u0443
-label.admin.accounts=\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.admin=\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440
-label.advanced.mode=\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c
-label.advanced.search=\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a
-label.advanced=\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439
-label.affinity=\ \u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c
-label.agent.password=\u041f\u0430\u0440\u043e\u043b\u044c \u0430\u0433\u0435\u043d\u0442\u0430
-label.agent.username=\u0418\u043c\u044f \u0430\u0433\u0435\u043d\u0442\u0430
-label.agree=\u0421\u043e\u0433\u043b\u0430\u0441\u0435\u043d
-label.alert=\u0422\u0440\u0435\u0432\u043e\u0433\u0430
-label.algorithm=\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c
-label.allocated=\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e
-label.allocation.state=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f
-label.api.key=\u041a\u043b\u044e\u0447 API
-label.api.version=\u0412\u0435\u0440\u0441\u0438\u044f API
-label.apply=\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c
-label.app.name=CloudStack
-label.archive.alerts=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0432\u043e\u0433\u0438
-label.archive.events=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f
-label.assign.to.load.balancer=\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.assign=\u041f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u043e
-label.associated.network.id=ID \u0421\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438
-label.associated.network=\u0421\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c
-label.associate.public.ip=\u0421\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0435 IP
-label.attached.iso=\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0439 ISO
-label.author.email=E-mail \u0430\u0432\u0442\u043e\u0440\u0430
-label.author.name=\u0418\u043c\u044f \u0430\u0432\u0442\u043e\u0440\u0430
-label.availability=\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c
-label.availability.zone=\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0437\u043e\u043d\u044b
-label.available.public.ips=\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0435 IP \u0430\u0434\u0440\u0435\u0441\u0430
-label.available=\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e
-label.back=\u041d\u0430\u0437\u0430\u0434
-label.bandwidth=\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c
-label.basic.mode=\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0440\u0435\u0436\u0438\u043c
-label.basic=\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439
-label.bootable=\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0439
-label.broadcast.domain.range=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430
-label.broadcast.domain.type=\u0422\u0438\u043f \u0448\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430
-label.broadcast.uri=\u0428\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 URI
-label.broadcat.uri=\u0428\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 URI
-label.by.account=\u041f\u043e \u0443\u0447\u0435\u0442\u043d\u044b\u043c \u0437\u0430\u043f\u0438\u0441\u044f\u043c
-label.by.alert.type=\u041f\u043e \u0442\u0438\u043f\u0443 \u0442\u0440\u0435\u0432\u043e\u0433\u0438
-label.by.availability=\u041f\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438
-label.by.date.end=\u041f\u043e \u0434\u0430\u0442\u0435(\u043a\u043e\u043d\u0435\u0446)
-label.by.date.start=\u041f\u043e \u0434\u0430\u0442\u0435(\u043d\u0430\u0447\u0430\u043b\u043e)
-label.by.domain=\u0414\u043e \u0434\u043e\u043c\u0435\u043d\u0443
-label.by.end.date=\u041f\u043e \u0434\u0430\u0442\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f
-label.by.event.type=\u041f\u043e \u0442\u0438\u043f\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u044f
-label.by.level=\u041f\u043e \u0443\u0440\u043e\u0432\u043d\u044e
-label.by.pod=\u041f\u043e \u0441\u0442\u0435\u043d\u0434\u0443
-label.by.role=\u041f\u043e \u0440\u043e\u043b\u044f\u043c
-label.by.start.date=\u041f\u043e \u0434\u0430\u0442\u0435 \u043d\u0430\u0447\u0430\u043b\u0430
-label.by.state=\u041f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e
-label.bytes.received=\u0411\u0430\u0439\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e
-label.bytes.sent=\u0411\u0430\u0439\u0442\u043e\u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e
-label.by.traffic.type=\u041f\u043e \u0442\u0438\u043f\u0443 \u0442\u0440\u0430\u0444\u0438\u043a\u0430
-label.by.type.id=\u041f\u043e \u0442\u0438\u043f\u0443 ID
-label.by.type=\u041f\u043e \u0442\u0438\u043f\u0443
-label.by.zone=\u041f\u043e \u0437\u043e\u043d\u0435
-label.cancel=\u041e\u0442\u043c\u0435\u043d\u0430
-label.capacity.bytes=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0411\u0430\u0439\u0442
-label.capacity.iops=\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e IOPS
-label.capacity=\u041c\u043e\u0449\u043d\u043e\u0441\u0442\u044c
-label.certificate=\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442
-label.change.service.offering=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f
-label.change.value=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435
-label.character=\u0421\u0438\u043c\u0432\u043e\u043b\u043e\u0432
-label.cidr.account=CIDR \u0438\u043b\u0438 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c/\u0433\u0440\u0443\u043f\u043f\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-label.cidr=CIDR
-label.cidr.list=CIDR \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430
-label.CIDR.list=\u0421\u043f\u0438\u0441\u043e\u043a CIDR
-label.CIDR.of.destination.network=CIDR \u0441\u0435\u0442\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-label.clean.up=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c
-label.clear.list=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a
-label.close=\u0417\u0430\u043a\u0440\u044b\u0442\u044c
-label.cloud.console=\u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u043a\u043e\u043c
-label.cloud.managed=\u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f
-label.cluster.name=\u0418\u043c\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430
-label.clusters=\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b
-label.cluster.type=\u0422\u0438\u043f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430
-label.cluster=\u041a\u043b\u0430\u0441\u0442\u0435\u0440
-label.clvm=CLVM
-label.code=\u041a\u043e\u0434
-label.community=\u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e
-label.compute.and.storage=\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.compute.offerings=\u0423\u0441\u043b\u0443\u0433\u0438 \u0432\u044b\u0447\u0435\u0441\u043b\u0435\u043d\u0438\u044f
-label.compute.offering=\u0423\u0441\u043b\u0443\u0433\u0430 \u0432\u044b\u0447\u0435\u0441\u043b\u0435\u043d\u0438\u044f
-label.compute=\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435
-label.configuration=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
-label.configure.network.ACLs=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 ACL \u0441\u0435\u0442\u0438
-label.configure=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c
-label.configure.vpc=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c VPC
-label.confirmation=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435
-label.confirm.password=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c
-label.congratulations=\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c\!
-label.conserve.mode=\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c
-label.console.proxy=\u041f\u0440\u043e\u043a\u0441\u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u0438
-label.continue.basic.install=\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443
-label.continue=\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c
-label.copying.iso=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ISO
-label.corrections.saved=\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b
-label.cpu.allocated.for.VMs=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u0430\u0448\u0438\u043d\u0430\u043c CPU
-label.cpu.allocated=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 CPU
-label.CPU.cap=CPU Cap
-label.cpu=CPU
-label.cpu.limits=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f CPU
-label.cpu.mhz=CPU (\u0432 \u041c\u0433\u0446)
-label.cpu.utilized=\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e CPU
-label.created.by.system=\u0421\u043e\u0437\u0434\u0430\u043d\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439
-label.created=\u0421\u043e\u0437\u0434\u0430\u043d\u043e
-label.create.project=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442
-label.create.template=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d
-label.create.VPN.connection=\u0421\u043e\u0437\u0434\u0430\u0442\u044c VPN \u043f\u043e\u0434\u043b\u044e\u0447\u0435\u043d\u0438\u0435
-label.cross.zones=\u041e\u0431\u0449\u0438\u0435 \u0434\u043b\u044f \u0437\u043e\u043d
-label.custom.disk.iops=\u0421\u0432\u043e\u0435 \u043a\u043e\u043b-\u0432\u043e IPOS
-label.custom.disk.size=\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430
-label.daily=\u0415\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e
-label.data.disk.offering=\u0423\u0441\u043b\u0443\u0433\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-label.date=\u0414\u0430\u0442\u0430
-label.day.of.month=\u0414\u0435\u043d\u044c \u043c\u0435\u0441\u044f\u0446\u0430
-label.day.of.week=\u0414\u0435\u043d\u044c \u043d\u0435\u0434\u0435\u043b\u0438
-label.dead.peer.detection=Dead Peer Detection
-label.decline.invitation=\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435
-label.dedicated=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439
-label.default.egress.policy=\u0418\u0441\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
-label.default=\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
-label.default.use=\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
-label.default.view=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u0438\u0434
-label.delete.affinity.group=\u0423\u0434\u0430\u043b\u0438\u0442\u044c affinity group
-label.delete.alerts=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0440\u0435\u0432\u043e\u0433\u0438
-label.delete.events=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f
-label.delete.F5=\u0423\u0434\u0430\u043b\u0438\u0442\u044c F5
-label.delete.gateway=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0448\u043b\u044e\u0437
-label.delete.NetScaler=\u0423\u0434\u0430\u043b\u0438\u0442\u044c NetScaler
-label.delete.NiciraNvp=\u0423\u0434\u0430\u043b\u0438\u0442\u044c Nvp \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440
-label.delete.PA=\u0423\u0434\u0430\u043b\u0438\u0442\u044c Palo Alto
-label.delete.profile=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0444\u0438\u043b\u044c
-label.delete.project=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442
-label.delete.SRX=\u0423\u0434\u0430\u043b\u0438\u0442\u044c SRX
-label.delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
-label.delete.VPN.connection=\u0423\u0434\u0430\u043b\u0438\u0442\u044c VPN \u043f\u043e\u0434\u043b\u044e\u0447\u0435\u043d\u0438\u0435
-label.delete.VPN.customer.gateway=\u0423\u0434\u0430\u043b\u0438\u0442\u044c VPN \u0448\u043b\u044e\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0430
-label.delete.VPN.gateway=\u0423\u0434\u0430\u043b\u0438\u0442\u044c VPN \u0448\u043b\u044e\u0437
-label.delete.vpn.user=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f VPN
-label.deleting.failed=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c
-label.deleting.processing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435...
-label.description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
-label.destination.physical.network.id=ID \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0435\u0442\u0438
-label.destination.zone=\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0437\u043e\u043d\u0430
-label.destroy.router=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u043e\u0443\u0442\u0435\u0440
-label.destroy=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c
-label.detaching.disk=\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430
-label.details=\u0414\u0435\u0442\u0430\u043b\u0438
-label.device.id=ID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-label.devices=\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-label.dhcp=DHCP
-label.DHCP.server.type=\u0422\u0438\u043f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DHCP
-label.direct.attached.public.ip=\u0412\u044b\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 IP
-label.direct.ips=\u041f\u0440\u044f\u043c\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430
-label.disable.autoscale=\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u0430\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435
-label.disabled=\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e
-label.disable.host=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0445\u043e\u0441\u0442
-label.disable.network.offering=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0443\u0441\u043b\u0443\u0433\u0438
-label.disable.provider=\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430
-label.disable.vpc.offering=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 VPC
-label.disable.vpn=\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c VPN
-label.disabling.vpn.access=\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a VPN
-label.disk.allocated=\u0417\u0430\u043d\u044f\u0442\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-label.disk.bytes.read.rate=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0430 (BPS)
-label.disk.bytes.write.rate=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0438\u0441\u043a\u0430 (BPS)
-label.disk.iops.max=\u041c\u0430\u043a\u0441. IOPS
-label.disk.iops.min=\u041c\u0438\u043d. IOPS
-label.disk.iops.read.rate=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0438\u0441\u043a\u0430 (IOPS)
-label.disk.iops.total=\u0412\u0441\u0435\u0433\u043e IOPS
-label.disk.iops.write.rate=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0438\u0441\u043a\u0430 (IOPS)
-label.disk.offering=\u0423\u0441\u043b\u0443\u0433\u0430 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-label.disk.read.bytes=\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043e \u0441 \u0434\u0438\u0441\u043a\u0430 (\u0411\u0430\u0439\u0442)
-label.disk.read.io=\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043e \u0441 \u0434\u0438\u0441\u043a\u0430 (IO)
-label.disk.size.gb=\u0420\u0430\u0437\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430 (\u0432 \u0413\u0411)
-label.disk.size=\u0420\u0430\u0437\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430
-label.disk.total=\u0412\u0441\u0435\u0433\u043e \u0432 \u0434\u0438\u0441\u043a\u0430\u0445
-label.disk.volume=\u041e\u0431\u044a\u0435\u043c \u0434\u0438\u0441\u043a\u0430
-label.disk.write.bytes=\u0417\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 \u0434\u0438\u0441\u043a (\u0411\u0430\u0439\u0442)
-label.disk.write.io=\u0417\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 \u0434\u0438\u0441\u043a (IO)
-label.display.text=\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=DNS \u0434\u043e\u043c\u0435\u043d \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0441\u0435\u0442\u0438
-label.domain.admin=\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0434\u043e\u043c\u0435\u043d\u0430
-label.domain.id=ID \u0434\u043e\u043c\u0435\u043d\u0430
-label.domain.lower=\u0414\u043e\u043c\u0435\u043d
-label.domain.name=\u0418\u043c\u044f \u0434\u043e\u043c\u0435\u043d\u0430
-label.domain.router=\u041c\u0430\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440
-label.domain.suffix=\u0421\u0443\u0444\u0444\u0438\u043a\u0441 \u0434\u043e\u043c\u0435\u043d\u0430 DNS (\u043d\u043f\u0440. xyz.com)
-label.domain=\u0414\u043e\u043c\u0435\u043d
-label.done=\u0413\u043e\u0442\u043e\u0432\u043e
-label.double.quotes.are.not.allowed=\u0414\u0432\u043e\u0439\u043d\u044b\u0435 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f
-label.download.progress=\u0421\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.drag.new.position=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e
-label.dynamically.scalable=\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435
-label.edit.affinity.group=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c affinity group
-label.edit.lb.rule=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c LB \u043f\u0440\u0430\u0432\u0438\u043b\u0430
-label.edit.network.details=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-label.edit.project.details=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430
-label.edit.region=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u043e\u043d
-label.edit.secondary.ips=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430
-label.edit.tags=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u044d\u0433\u0438
-label.edit.traffic.type=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0438\u043f \u0442\u0440\u0430\u0444\u0438\u043a\u0430
-label.edit=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c
-label.edit.vpc=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c VPC
-label.egress.default.policy=\u0418\u0441\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
-label.egress.rules=\u0418\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430
-label.egress.rule=\u0418\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.elastic.IP=\u0413\u0438\u0431\u043a\u0438\u0439 IP
-label.elastic.LB=\u0413\u0438\u0431\u043a\u0438\u0439 LB
-label.elastic=\u0413\u0438\u0431\u043a\u0438\u0439
-label.email=E-mail
-label.email.lower=E-mail
-label.enable.autoscale=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u0430\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435
-label.enable.host=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0445\u043e\u0441\u0442
-label.enable.network.offering=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0443\u0441\u043b\u0443\u0433\u0443
-label.enable.provider=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430
-label.enable.s3=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c S3-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.enable.swift=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c Swift
-label.enable.vpc.offering=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 VPC
-label.enable.vpn=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c VPN
-label.enabling.vpn.access=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e VPN
-label.enabling.vpn=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f VPN
-label.end.IP=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 IP
-label.endpoint.or.operation=\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0438\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f
-label.endpoint=\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430
-label.end.port=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u043e\u0440\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430
-label.end.reserved.system.IP=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441
-label.enter.token=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u043e\u043a\u0435\u043d
-label.error.code=\u041a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438
-label.error=\u041e\u0448\u0438\u0431\u043a\u0430
-label.ESP.encryption=\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ESP
-label.ESP.hash=\u0445\u044d\u0448 ESP
-label.ESP.lifetime=\u0412\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 ESP (\u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445)
-label.ESP.policy=\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 ESP
-label.esx.host=\u0423\u0437\u0435\u043b ESX/ESXi
-label.example=\u041f\u0440\u0438\u043c\u0435\u0440
-label.expunge=\u0423\u0434\u0430\u043b\u0451\u043d
-label.external.link=\u0412\u043d\u0435\u0448\u043d\u0435\u0435 \u043f\u043e\u0434\u043b\u044e\u0447\u0435\u043d\u0438\u0435
-label.extractable=\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c\u044b\u0439
-label.f5=F5
-label.failed=\u041d\u0435\u0443\u0434\u0430\u0447\u043d\u043e
-label.featured=\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439
-label.fetch.latest=\u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445
-label.filterBy=\u0424\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c
-label.firewall=\u0424\u0430\u0435\u0440\u0432\u043e\u043b
-label.firstname.lower=\u0418\u043c\u044f
-label.first.name=\u0418\u043c\u044f
-label.format=\u0424\u043e\u0440\u043c\u0430\u0442
-label.friday=\u041f\u044f\u0442\u043d\u0438\u0446\u0430
-label.full.path=\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c
-label.full=\u041f\u043e\u043b\u043d\u044b\u0439
-label.gateway=\u0428\u043b\u044e\u0437
-label.general.alerts=\u041e\u0431\u0449\u0438\u0435 \u0442\u0440\u0435\u0432\u043e\u0433\u0438
-label.generating.url=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 URL
-label.gluster.volume=\u0422\u043e\u043c
-label.go.step.2=\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0448\u0430\u0433\u0443 2
-label.go.step.3=\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0448\u0430\u0433\u0443 3
-label.go.step.4=\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0448\u0430\u0433\u0443 4
-label.go.step.5=\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0448\u0430\u0433\u0443 5
-label.gpu=GPU
-label.group.optional=\u0413\u0440\u0443\u043f\u043f\u0430 (\u043f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e)
-label.group=\u0413\u0440\u0443\u043f\u043f\u0430
-label.gslb.lb.details=\u0414\u0435\u0442\u0430\u043b\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.gslb.lb.rule=\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.guest.cidr=\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 CIDR
-label.guest.end.ip=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 IP.
-label.guest.gateway=\u0428\u043b\u044e\u0437
-label.guest.ip.range=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.guest.ip=\u0413\u043e\u0441\u0442\u0435\u0432\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430
-label.guest.netmask=\u0413\u043e\u0441\u0442\u0435\u0432\u0430\u044f \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430
-label.guest.networks=\u0413\u043e\u0441\u0442\u0435\u0432\u044b\u0435 \u0441\u0435\u0442\u0438
-label.guest.start.ip=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 IP
-label.guest.traffic=\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a
-label.guest.type=\u0422\u0438\u043f \u0433\u043e\u0441\u0442\u044f
-label.guest=\u0413\u043e\u0441\u0442\u044c
-label.ha.enabled=\u041e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430
-label.help=\u041f\u043e\u043c\u043e\u0449\u044c
-label.hide.ingress.rule=\u0421\u043a\u0440\u044b\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.hints=\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438
-label.home=\u0413\u043b\u0430\u0432\u043d\u0430\u044f
-label.host.MAC=MAC \u0443\u0437\u043b\u0430
-label.host.name=\u0418\u043c\u044f \u0443\u0437\u043b\u0430
-label.hosts=\u0423\u0437\u043b\u044b
-label.host.tags=\u041c\u0435\u0442\u043a\u0438 \u0443\u0437\u043b\u0430
-label.host=\u0423\u0437\u0435\u043b
-label.hourly=\u0415\u0436\u0435\u0447\u0430\u0441\u043d\u043e
-label.hypervisor.capabilities=\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u0430
-label.hypervisors=\u0413\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u044b
-label.hypervisor.type=\u0422\u0438\u043f \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u0430
-label.hypervisor=\u0413\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440
-label.hypervisor.version=\u0412\u0435\u0440\u0441\u0438\u044f \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u0430
-label.id=ID
-label.IKE.DH=IKE DH
-label.IKE.encryption=\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 IKE
-label.IKE.hash=IKE Hash
-label.IKE.lifetime=IKE lifetime (second)
-label.IKE.policy=\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 IKE
-label.info=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
-label.ingress.rule=\u0412\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.initiated.by=\u0418\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043e
-label.installWizard.addClusterIntro.subtitle=\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 "\u041a\u043b\u0430\u0441\u0442\u0435\u0440"?
-label.installWizard.addClusterIntro.title=\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440
-label.installWizard.addHostIntro.subtitle=\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 "\u0423\u0437\u0435\u043b"?
-label.installWizard.addHostIntro.title=\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0443\u0437\u0435\u043b
-label.installWizard.addPodIntro.subtitle=\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 "\u0421\u0442\u0435\u043d\u0434"?
-label.installWizard.addPodIntro.title=\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0442\u0435\u043d\u0434
-label.installWizard.addPrimaryStorageIntro.subtitle=\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 "\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435"?
-label.installWizard.addPrimaryStorageIntro.title=\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.installWizard.addSecondaryStorageIntro.subtitle=\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435"?
-label.installWizard.addSecondaryStorageIntro.title=\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u043e\u043f\u043e\u043b\u044c\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435.
-label.installWizard.addZoneIntro.subtitle=\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 "\u0417\u043e\u043d\u0430"?
-label.installWizard.addZoneIntro.title=\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0437\u043e\u043d\u0443
-label.installWizard.addZone.title=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u043e\u043d\u0443
-label.installWizard.click.launch=\u041a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430
-label.installWizard.subtitle=\u042d\u0442\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442 \u0432\u0430\u0448 CloudStack.
-label.installWizard.title=\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u0438 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 CloudStack\!
-label.instance.limits=\u041b\u0438\u043c\u0438\u0442 \u043c\u0430\u0448\u0438\u043d
-label.instance.name=\u0418\u043c\u044f \u043c\u0430\u0448\u0438\u043d\u044b
-label.instances=\u041c\u0430\u0448\u0438\u043d\u044b
-label.instance=\u041c\u0430\u0448\u0438\u043d\u0430
-label.internal.dns.1=\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 DNS 1
-label.internal.dns.2=\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 DNS 2
-label.internal.name=\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0438\u043c\u044f
-label.interval.type=\u0422\u0438\u043f \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430
-label.introduction.to.cloudstack=\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 CloudStack
-label.invalid.integer=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e
-label.invalid.number=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e
-label.invitations=\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f
-label.invited.accounts=\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0451\u043d\u043d\u044b\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.invite.to=\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c
-label.invite=\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c
-label.ip.address=IP \u0430\u0434\u0440\u0435\u0441\u0441\u0430
-label.ipaddress=IP \u0430\u0434\u0440\u0435\u0441\u0441\u0430
-label.ip.allocations=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 IP
-label.ip=IP
-label.ip.limits=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0445 IP
-label.ip.or.fqdn=IP \u0438\u043b\u0438 FQDN
-label.ip.ranges=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP \u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.ip.range=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP \u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.IPsec.preshared.key=IPsec Preshared-Key
-label.ips=IP
-label.iscsi=iSCSI
-label.is.default=\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
-label.iso.boot=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 ISO
-label.iso=ISO
-label.isolated.networks=\u0418\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438
-label.isolation.method=\u041c\u0435\u0442\u043e\u0434 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438
-label.isolation.mode=\u0420\u0435\u0436\u0438\u043c \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438
-label.isolation.uri=\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f URI
-label.is.redundant.router=\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0439
-label.is.shared=\u041e\u0431\u0449\u0438\u0439
-label.is.system=\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435
-label.item.listing=\u0421\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432
-label.keep=\u0425\u0440\u0430\u043d\u0438\u0442\u044c
-label.keyboard.type=\u0422\u0438\u043f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b
-label.key=\u041a\u043b\u044e\u0447
-label.kvm.traffic.label=\u041c\u0435\u0442\u043a\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 KVM
-label.label=\u041c\u0435\u0442\u043a\u0430
-label.lang.chinese=\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 (\u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u044b\u0439)
-label.lang.english=\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
-label.lang.japanese=\u042f\u043f\u043e\u043d\u0441\u043a\u0438\u0439
-label.lang.korean=\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u0439
-label.lang.russian=\u0420\u0443\u0441\u0441\u043a\u0438\u0439
-label.lang.spanish=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439
-label.last.disconnected=\u0412\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f
-label.lastname.lower=\u0424\u0430\u043c\u0438\u043b\u0438\u044f
-label.last.name=\u0424\u0430\u043c\u0438\u043b\u0438\u044f
-label.latest.events=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f
-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.ldap.link.type=\u0422\u0438\u043f
-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
-label.load.balancing.policies=\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.load.balancing=\u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.loading=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430
-label.local.storage.enabled=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0412\u041c
-label.local.storage=\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.local=\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439
-label.login=\u0412\u043e\u0439\u0442\u0438
-label.logout=\u0412\u044b\u0439\u0442\u0438
-label.lun=LUN
-label.LUN.number=LUN \#
-label.make.project.owner=\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430
-label.managed=\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439
-label.management.ips=\u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f IP \u0430\u0434\u0440\u0435\u0441\u0441\u0430\u043c\u0438
-label.management.server=\u0421\u0435\u0440\u0432\u0435\u0440 \u0443\u043f\u0440\u0430\u043b\u0435\u043d\u0438\u044f
-label.management=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435
-label.manage.resources=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438
-label.manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435
-label.max.cpus=\u041c\u0430\u043a\u0441. \u044f\u0434\u0435\u0440 \u0426\u041f
-label.max.guest.limit=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0433\u043e\u0441\u0442\u0435\u0439
-label.maximum=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c
-label.max.memory=\u041c\u0430\u043a\u0441. \u043f\u0430\u043c\u044f\u0442\u0438 (\u0432 \u041c\u0438\u0411)
-label.max.networks=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0441\u0435\u0442\u0435\u0439
-label.max.primary.storage=\u041c\u0430\u043a\u0441. \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (\u0432 \u0413\u0438\u0411)
-label.max.public.ips=\u041c\u0430\u043a\u0441. \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 IP
-label.max.secondary.storage=\u041c\u0430\u043a\u0441. \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (\u0432 \u0413\u0438\u0411)
-label.max.snapshots=\u041c\u0430\u043a\u0441. \u0441\u043d\u0438\u043c\u043a\u043e\u0432
-label.max.templates=\u041c\u0430\u043a\u0441. \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432
-label.max.vms=\u041c\u0430\u043a\u0441. \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0412\u041c
-label.max.volumes=\u041c\u0430\u043a\u0441. \u0434\u0438\u0441\u043a\u043e\u0432
-label.max.vpcs=\u041c\u0430\u043a\u0441. VPC
-label.may.continue=\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c.
-label.md5.checksum=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c MD5 \u0441\u0443\u043c\u043c\u0443
-label.memory.allocated=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u043f\u0430\u043c\u044f\u0442\u0438
-label.memory.limits=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 (\u0432 \u041c\u0438\u0411)
-label.memory.mb=\u041f\u0430\u043c\u044f\u0442\u044c (\u0432 \u041c\u0411)
-label.memory.total=\u0412\u0441\u0435\u0433\u043e \u043f\u0430\u043c\u044f\u0442\u0438
-label.memory=\u041f\u0430\u043c\u044f\u0442\u044c
-label.memory.used=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u0430\u043c\u044f\u0442\u0438
-label.menu.accounts=\u0423\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.menu.alerts=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f
-label.menu.all.accounts=\u0412\u0441\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.menu.all.instances=\u0412\u0441\u0435 \u043c\u0430\u0448\u0438\u043d\u044b
-label.menu.community.isos=ISO-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430
-label.menu.community.templates=\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430
-label.menu.configuration=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
-label.menu.dashboard=\u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f
-label.menu.destroyed.instances=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b
-label.menu.disk.offerings=\u0423\u0441\u043b\u0443\u0433\u0438 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-label.menu.domains=\u0414\u043e\u043c\u0435\u043d\u044b
-label.menu.events=\u0421\u043e\u0431\u044b\u0442\u0438\u044f
-label.menu.featured.isos=\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0435 ISO
-label.menu.featured.templates=\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b
-label.menu.global.settings=\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-label.menu.infrastructure=\u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430
-label.menu.instances=\u041c\u0430\u0448\u0438\u043d\u044b
-label.menu.ipaddresses=IP-\u0430\u0434\u0440\u0435\u0441\u0430
-label.menu.isos=ISO
-label.menu.my.accounts=\u041c\u043e\u0438 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.menu.my.instances=\u041c\u043e\u0438 \u043c\u0430\u0448\u0438\u043d\u044b
-label.menu.my.isos=\u041c\u043e\u0438 ISO
-label.menu.my.templates=\u041c\u043e\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b
-label.menu.network.offerings=\u0423\u0441\u043b\u0443\u0433\u0438 \u0441\u0435\u0442\u0438
-label.menu.network=\u0421\u0435\u0442\u044c
-label.menu.physical.resources=\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b
-label.menu.regions=\u0420\u0435\u0433\u0438\u043e\u043d
-label.menu.running.instances=\u0420\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b
-label.menu.security.groups=\u0413\u0440\u0443\u043f\u043f\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-label.menu.service.offerings=\u0423\u0441\u043b\u0443\u0433\u0438 \u0441\u043b\u0443\u0436\u0431
-label.menu.snapshots=\u0421\u043d\u0438\u043c\u043a\u0438
-label.menu.sshkeypair=SSH KeyPair
-label.menu.stopped.instances=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b
-label.menu.storage=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.menu.system.service.offerings=\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b
-label.menu.system=\u0421\u0438\u0441\u0442\u0435\u043c\u0430
-label.menu.system.vms=\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0412\u041c
-label.menu.templates=\u0428\u0430\u0431\u043b\u043e\u043d\u044b
-label.menu.virtual.appliances=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-label.menu.virtual.resources=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b
-label.menu.volumes=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-label.menu.vpc.offerings=\u0423\u0441\u043b\u0443\u0433\u0438 VPS
-label.metrics.allocated=\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e
-label.metrics.clusters=\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b
-label.metrics.cpu.used.avg=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e
-label.metrics.disk.allocated=\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e
-label.metrics.disk.size=\u0420\u0430\u0437\u043c\u0435\u0440
-label.metrics.disk.storagetype=\u0422\u0438\u043f
-label.metrics.disk.used=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e
-label.metrics.hosts=\u0423\u0437\u043b\u044b
-label.metrics.memory.used.avg=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e
-label.metrics.name=\u0418\u043c\u044f
-label.metrics.scope=\u041e\u0445\u0432\u0430\u0442
-label.metrics.state=\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-label.metrics.storagepool=\u041f\u0443\u043b \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.migrate.instance.to.host=\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u043c\u0430\u0448\u0438\u043d\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0443\u0437\u0435\u043b
-label.migrate.instance.to.ps=\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u043c\u0430\u0448\u0438\u043d\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.migrate.instance.to=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043c\u0430\u0448\u0438\u043d\u0443 \u0432
-label.migrate.router.to=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0440\u043e\u0443\u0442\u0435\u0440 \u0432
-label.migrate.systemvm.to=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0412\u041c \u0432
-label.migrate.to.host=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043d\u0430 \u0443\u0437\u0435\u043b
-label.migrate.to.storage=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.migrate.volume.to.primary.storage=\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0434\u0438\u0441\u043a \u0432 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.migrate.volume=\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u0434\u0438\u0441\u043a\u0430
-label.minimum=\u041c\u0438\u043d\u0438\u043c\u0443\u043c
-label.minute.past.hour=\u041c\u0438\u043d\u0443\u0442
-label.mode=\u0420\u0435\u0436\u0438\u043c
-label.monday=\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a
-label.monthly=\u041a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0441\u044f\u0446
-label.more.templates=\u0415\u0449\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b
-label.move.down.row=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0438\u0436\u0435
-label.move.to.bottom=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u0437
-label.move.to.top=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0441\u0430\u043c\u044b\u0439 \u0432\u0435\u0440\u0445
-label.move.up.row=\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u044b\u0448\u0435
-label.my.account=\u041c\u043e\u044f \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c
-label.my.network=\u041c\u043e\u044f \u0441\u0435\u0442\u044c
-label.my.templates=\u041c\u043e\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b
-label.name.lower=\u0418\u043c\u044f
-label.name.optional=\u0418\u043c\u044f (\u043f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e)
-label.name=\u0418\u043c\u044f
-label.nat.port.range=\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043f\u043e\u0440\u0442\u043e\u0432 NAT
-label.netmask=\u0421\u0435\u0442\u0435\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430
-label.netScaler=NetScaler
-label.network.ACLs=\u0421\u0435\u0442\u0435\u0432\u044b\u0435 ACL
-label.network.ACL.total=\u0412\u0441\u0435\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u044b\u0445 ACL
-label.network.ACL=\u0421\u0435\u0442\u0435\u0432\u044b\u0435 ACL
-label.network.addVM=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u044c \u0432 \u0412\u041c
-label.network.desc=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0438
-label.network.device.type=\u0422\u0438\u043f \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-label.network.device=\u0421\u0435\u0442\u0435\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-label.network.domain.text=\u0421\u0435\u0442\u0435\u0432\u043e\u0439 \u0434\u043e\u043c\u0435\u043d
-label.network.domain=\u0421\u0435\u0442\u0435\u0432\u043e\u0439 \u0434\u043e\u043c\u0435\u043d
-label.network.id=ID \u0441\u0435\u0442\u0438
-label.networking.and.security=\u0421\u0435\u0442\u044c \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c
-label.network.label.display.for.blank.value=\u0418\u0441\u043f. \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0448\u043b\u044e\u0437
-label.network.limits=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438
-label.network.name=\u0418\u043c\u044f \u0441\u0435\u0442\u0438
-label.network.offering.display.text=\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0443\u0441\u043b\u0443\u0433\u0438
-label.network.offering.id=ID \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0443\u0441\u043b\u0443\u0433\u0438
-label.network.offering.name=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0443\u0441\u043b\u0443\u0433\u0438
-label.network.offering=\u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u0443\u0441\u043b\u0443\u0433\u0438
-label.network.rate.megabytes=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0435\u0442\u0438  (MB/s)
-label.network.rate=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0435\u0442\u0438
-label.network.read=\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0442\u044c
-label.network.service.providers=\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0441\u043b\u0443\u0436\u0431
-label.networks=\u0421\u0435\u0442\u0438
-label.network.type=\u0422\u0438\u043f \u0441\u0435\u0442\u0438
-label.network=\u0421\u0435\u0442\u044c
-label.network.write=\u0417\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0442\u044c
-label.new.password=\u041d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c
-label.new.project=\u041d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442
-label.new=\u0421\u043e\u0437\u0434\u0430\u0442\u044c
-label.new.vm=\u041d\u043e\u0432\u0430\u044f \u0412\u041c
-label.next=\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nfs.server=\u0421\u0435\u0440\u0432\u0435\u0440 NFS
-label.nfs.storage=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 NFS
-label.nic.adapter.type=\u0422\u0438\u043f \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b (NIC)
-label.nicira.controller.address=\u0410\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430
-label.nicira.l3gatewayserviceuuid=L3 Gateway Service Uuid
-label.nicira.transportzoneuuid=Transport Zone Uuid
-label.nics=\u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b
-label.no.actions=\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439
-label.no.alerts=\u0422\u0440\u0435\u0432\u043e\u0433 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e
-label.no.data=\u041d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430
-label.no.errors=\u041e\u0448\u0438\u0431\u043e\u043a \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e
-label.no.isos=\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 ISO
-label.no.items=\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432
-label.none=\u041d\u0435\u0442
-label.no.security.groups=\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-label.not.found=\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e
-label.no.thanks=\u041d\u0435\u0442, \u0441\u043f\u0430\u0441\u0438\u0431\u043e
-label.notifications=\u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f
-label.no=\u041d\u0435\u0442
-label.number.of.clusters=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432
-label.number.of.hosts=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432
-label.number.of.pods=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0435\u043d\u0434\u043e\u0432
-label.number.of.system.vms=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0412\u041c
-label.number.of.virtual.routers=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432
-label.number.of.zones=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u043e\u043d
-label.num.cpu.cores=\u041a\u043e\u043b-\u0432\u043e \u044f\u0434\u0435\u0440 CPU
-label.numretries=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a
-label.ocfs2=OCFS2
-label.offer.ha=\u0423\u0441\u043b\u0443\u0433\u0430 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438
-label.ok=OK
-label.optional=\u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e
-label.order=\u041e\u0447\u0435\u0440\u0435\u0434\u044c
-label.os.preference=\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u041e\u0421
-label.os.type=\u0422\u0438\u043f \u041e\u0421
-label.outofbandmanagement.action=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f
-label.outofbandmanagement.password=\u041f\u0430\u0440\u043e\u043b\u044c
-label.outofbandmanagement.username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.owned.public.ips=\u041f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0435 IP \u0430\u0434\u0440\u0435\u0441\u0430
-label.owner.account=\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430
-label.owner.domain=\u0414\u043e\u043c\u0435\u043d \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430
-label.parent.domain=\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0434\u043e\u043c\u0435\u043d
-label.password.enabled=\u041f\u0430\u0440\u043e\u043b\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d
-label.password.lower=\u041f\u0430\u0440\u043e\u043b\u044c
-label.password.reset.confirm=\u041f\u0430\u0440\u043e\u043b\u044c \u0431\u044b\u043b \u0441\u0431\u0440\u043e\u0448\u0435\u043d \u0432
-label.password=\u041f\u0430\u0440\u043e\u043b\u044c
-label.PA=static NAT
-label.path=\u041f\u0443\u0442\u044c
-label.perfect.forward.secrecy=Perfect Forward Secrecy
-label.physical.network.ID=ID \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0435\u0442\u0438
-label.physical.network=\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0435\u0442\u0438
-label.PING.CIFS.password=\u041f\u0430\u0440\u043e\u043b\u044c PING CIFS
-label.PING.CIFS.username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f PING CIFS
-label.PING.dir=\u041a\u0430\u0442\u0430\u043b\u043e\u0433 PING
-label.PING.storage.IP=IP \u0430\u0434\u0440\u0435\u0441 PING-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.please.specify.netscaler.info=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 NetScaler
-label.please.wait=\u041f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435
-label.plugin.details=\u0414\u0435\u0442\u0430\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430
-label.plugins=\u041f\u043b\u0430\u0433\u0438\u043d\u044b
-label.pod.name=\u0418\u043c\u044f \u0441\u0442\u0435\u043d\u0434\u0430
-label.pods=\u0421\u0442\u0435\u043d\u0434\u044b
-label.pod=\u0421\u0442\u0435\u043d\u0434
-label.port.forwarding.policies=\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u0442\u043e\u0432
-label.port.forwarding=\u041f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u043e\u0432
-label.port.range=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043f\u043e\u0440\u0442\u043e\u0432
-label.PreSetup=\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-label.previous=\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439
-label.prev=\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0448\u0438\u0439
-label.primary.allocated=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.primary.network=\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0435\u0442\u044c
-label.primary.storage.count=\u041f\u0443\u043b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.primary.storage.limits=\u041b\u0438\u043c\u0438\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (GiB)
-label.primary.storage=\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.primary.used=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.private.Gateway=\u0427\u0430\u0441\u0442\u043d\u044b\u0439 \u0448\u043b\u044e\u0437
-label.private.interface=\u0427\u0430\u0441\u0442\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441
-label.private.ip.range=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0447\u0430\u0441\u0442\u043d\u044b\u0445 IP \u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.private.ips=\u0427\u0430\u0441\u0442\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430
-label.private.ip=\u0427\u0430\u0441\u0442\u043d\u044b\u0439 IP \u0430\u0434\u0440\u0435\u0441
-label.privatekey=\u0427\u0430\u0441\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 PKCS\#8
-label.private.network=\u0427\u0430\u0441\u0442\u043d\u0430\u044f \u0441\u0435\u0442\u044c
-label.private.port=\u0427\u0430\u0441\u0442\u043d\u044b\u0439 \u043f\u043e\u0440\u0442
-label.private.zone=\u0427\u0430\u0441\u0442\u043d\u0430\u044f \u0437\u043e\u043d\u0430
-label.profile=\u041f\u0440\u043e\u0444\u0438\u043b\u044c
-label.project.dashboard=\u041f\u0430\u043d\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430
-label.project.id=ID \u043f\u0440\u043e\u0435\u043a\u0442\u0430
-label.project.invite=\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442
-label.project.name=\u0418\u043c\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430
-label.projects=\u041f\u0440\u043e\u0435\u043a\u0442\u044b
-label.project=\u041f\u0440\u043e\u0435\u043a\u0442
-label.project.view=\u041f\u0440\u043e\u0435\u043a\u0442\u044b
-label.protocol=\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b
-label.providers=\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0438
-label.provider=\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0438
-label.public.interface=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441
-label.public.ips=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430
-label.public.ip=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441
-label.public.network=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u0430\u044f \u0441\u0435\u0442\u044c
-label.public.port=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u043e\u0440\u0442
-label.public.traffic=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a
-label.public=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439
-label.public.zone=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u0430\u044f \u0437\u043e\u043d\u0430
-label.purpose=\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435
-label.Pxe.server.type=\u0422\u0438\u043f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 PXE
-label.qos.type=\u0422\u0438\u043f QoS
-label.quickview=\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440
-label.quota.date=\u0414\u0430\u0442\u0430
-label.quota.fullsummary=\u0412\u0441\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438
-label.quota.state=\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-label.reboot=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c
-label.recent.errors=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438
-label.recover.vm=\u0412\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0412\u041c
-label.redundant.router.capability=\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u0440\u043e\u0443\u0442\u0435\u0440\u0430
-label.redundant.router=\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u0440\u043e\u0443\u0442\u0435\u0440
-label.redundant.state=\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u0430
-label.refresh=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c
-label.region=\u0420\u0435\u0433\u0438\u043e\u043d
-label.reinstall.vm=\u041f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0412\u041c
-label.related=\u0421\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439
-label.remind.later=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442\u044c \u043f\u043e\u0437\u0436\u0435
-label.remove.ACL=\u0423\u0434\u0430\u043b\u0438\u0442\u044c ACL
-label.remove.egress.rule=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.remove.from.load.balancer=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.remove.ingress.rule=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.remove.ip.range=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP
-label.remove.network.offering=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0443\u0441\u043b\u0443\u0433\u0443
-label.remove.pf=\u0414\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u0430
-label.remove.project.account=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430
-label.remove.region=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u043e\u043d
-label.remove.rule=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.remove.static.nat.rule=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e static NAT
-label.remove.static.route=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442
-label.remove.tier=\u0423\u0434\u0430\u043b\u0438\u0442\u044c tier
-label.remove.vm.from.lb=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0412\u041c \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.remove.vm.load.balancer=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0412\u041c \u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.remove.vpc.offering=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443 VPC
-label.remove.vpc=\u0423\u0434\u0430\u043b\u0438\u0442\u044c VPC
-label.removing=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435
-label.removing.user=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.required=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f
-label.reserved.ip.range=\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 IP \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d
-label.reserved.system.gateway=\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0448\u043b\u044e\u0437
-label.reserved.system.ip=\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 IP
-label.reserved.system.netmask=\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043c\u0430\u0441\u043a\u0430
-label.resetVM=\u0421\u0431\u0440\u043e\u0441 \u0412\u041c
-label.reset.VPN.connection=\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c VPN \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435
-label.resize.new.offering.id=\u041d\u043e\u0432\u0430\u044f \u0443\u0441\u043b\u0443\u0433\u0430
-label.resize.new.size=\u041d\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 (GB)
-label.resize.shrink.ok=Shrink OK
-label.resource.limit.exceeded=\u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d \u043b\u0438\u043c\u0438\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432
-label.resource.limits=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432
-label.resource.state=\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432
-label.resources=\u0420\u0435\u0441\u0443\u0440\u0441\u044b
-label.resource=\u0420\u0435\u0441\u0443\u0440\u0441
-label.restart.network=\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0442\u044c
-label.restart.required=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a
-label.restart.vpc=\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c VPC
-label.restore=\u0412\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c
-label.review=\u041e\u0431\u0437\u043e\u0440
-label.revoke.project.invite=\u041e\u0442\u043e\u0437\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435
-label.role=\u0420\u043e\u043b\u044c
-label.root.disk.controller=\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430
-label.root.disk.offering=\u0423\u0441\u043b\u0443\u0433\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430
-label.routing=\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f
-label.rule.number=\u041d\u043e\u043c\u0435\u0440 \u043f\u0440\u0430\u0432\u0438\u043b\u0430
-label.rules=\u041f\u0440\u0430\u0432\u0438\u043b\u0430
-label.running.vms=\u0417\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0412\u041c
-label.s3.access_key=\u041a\u043b\u044e\u0447 \u0434\u043e\u0441\u0442\u0443\u043f\u0430
-label.s3.bucket=Bucket
-label.s3.connection_timeout=\u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f
-label.s3.endpoint=\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430
-label.s3.nfs.path=S3 NFS \u043f\u0443\u0442\u044c
-label.s3.nfs.server=S3 NFS \u0421\u0435\u0440\u0432\u0435\u0440
-label.s3.secret_key=\u0421\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447
-label.s3.socket_timeout=\u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043a\u0435\u0442\u0430
-label.s3.use_https=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 HTTPS
-label.saturday=\u0421\u0443\u0431\u0431\u043e\u0442\u0430
-label.save.and.continue=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c
-label.save=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
-label.saving.processing=\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435...
-label.scope=\u041e\u0445\u0432\u0430\u0442
-label.search=\u041f\u043e\u0438\u0441\u043a
-label.secondary.ips=\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430
-label.secondary.storage.count=\u041f\u0443\u043b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.secondary.storage.limits=\u041b\u0438\u043c\u0438\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (GiB)
-label.secondary.storage=\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.secondary.storage.vm=\u0412\u041c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.secondary.used=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.secret.key=\u0421\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447
-label.security.group.name=\u0418\u043c\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-label.security.groups.enabled=\u0413\u0440\u0443\u043f\u043f\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b
-label.security.groups=\u0413\u0440\u0443\u043f\u043f\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-label.security.group=\u0413\u0440\u0443\u043f\u043f\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-label.select.a.template=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d
-label.select.a.zone=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043e\u043d\u0443
-label.select.instance.to.attach.volume.to=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043c\u0430\u0448\u0438\u043d\u0443 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0430
-label.select.instance=\u0412\u044b\u0431\u0438\u0440\u0438\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440
-label.select.iso.or.template=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 ISO \u0438\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d
-label.select.offering=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435
-label.select.project=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442
-label.select.region=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u043e\u043d
-label.select.template=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d
-label.select.tier=\u0412\u044b\u0431\u0440\u0430\u0442\u044c Tier
-label.select=\u0412\u044b\u0431\u0440\u0430\u0442\u044c
-label.select-view=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0438\u0434
-label.select.vm.for.static.nat=\u0412\u044b\u0431\u043e\u0440 VM \u0434\u043b\u044f NAT
-label.sent=\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e
-label.server=\u0421\u0435\u0440\u0432\u0435\u0440
-label.service.capabilities=\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043b\u0443\u0436\u0431\u044b
-label.service.offering=\u0421\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441
-label.service.state=\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431
-label.session.expired=\u0421\u0435\u0430\u043d\u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d
-label.set.default.NIC=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c NIC \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
-label.settings=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-label.setup=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430
-label.set.up.zone.type=\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0438\u043f \u0437\u043e\u043d\u044b
-label.SharedMountPoint=\u041e\u0442\u043a\u0440\u044b\u0442\u0430\u044f\u0422\u043e\u0447\u043a\u0430\u0414\u043e\u0441\u0442\u0443\u043f\u0430
-label.shared=\u041e\u0431\u0449\u0438\u0439
-label.show.advanced.settings=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
-label.show.ingress.rule=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e
-label.shutdown.provider=\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430
-label.site.to.site.VPN=Site-to-site VPN
-label.size=\u0420\u0430\u0437\u043c\u0435\u0440
-label.skip.guide=\u042f \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b CloudStack, \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e
-label.snapshot.limits=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043d\u0438\u043c\u043a\u043e\u0432
-label.snapshot.name=\u0418\u043c\u044f \u0441\u043d\u0438\u043c\u043a\u0430
-label.snapshot.s=\u0421\u043d\u0438\u043c\u043a\u0438
-label.snapshots=\u0421\u043d\u0438\u043c\u043a\u0438
-label.snapshot=\u0421\u043d\u0438\u043c\u043e\u043a
-label.source.nat=Source NAT
-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
-label.SR.name=SR Name-Label
-label.srx=SRX
-label.start.IP=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 IP
-label.start.port=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442
-label.start.reserved.system.IP=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441
-label.state=\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435
-label.static.nat.enabled=\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 NAT \u0432\u043a\u043b\u044e\u0447\u0435\u043d
-label.static.nat.to=\u0421\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 NAT \u043a
-label.static.nat=\u0421\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 NAT
-label.static.nat.vm.details=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 NAT \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d
-label.statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430
-label.status=\u0421\u0442\u0430\u0442\u0443\u0441
-label.step.1.title=\u0428\u0430\u0433 1\: <strong>\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d</strong>
-label.step.1=\u0428\u0430\u0433 1
-label.step.2.title=\u0428\u0430\u0433 2\: <strong>\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441</strong>
-label.step.2=\u0428\u0430\u0433 2
-label.step.3.title=Step 3\: <strong id\="step3_label">\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u0441\u043b\u0443\u0433\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430</strong>
-label.step.3=\u0428\u0430\u0433 3
-label.step.4.title=Step 4\: <strong>\u0421\u0435\u0442\u044c</strong>
-label.step.4=\u0428\u0430\u0433 4
-label.step.5.title=Step 5\: <strong>\u041e\u0431\u0437\u043e\u0440</strong>
-label.step.5=\u0428\u0430\u0433 5
-label.stickiness=\u041b\u0438\u043f\u043a\u0438\u0439
-label.sticky.cookie-name=Cookie name
-label.sticky.domain=\u0414\u043e\u043c\u0435\u043d
-label.sticky.expire=\u0418\u0441\u0442\u0435\u043a\u0430\u0435\u0442
-label.sticky.holdtime=\u0432\u0440\u0435\u043c\u044f \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f
-label.sticky.indirect=\u041a\u043e\u0441\u0432\u0435\u043d\u043d\u044b\u0439
-label.sticky.length=\u0414\u043b\u0438\u043d\u0430
-label.sticky.mode=\u0420\u0435\u0436\u0438\u043c
-label.sticky.nocache=\u041d\u0435\u0442 \u043a\u044d\u0448\u0430
-label.sticky.postonly=\u0422\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435
-label.sticky.prefix=\u041f\u0440\u0435\u0444\u0438\u043a\u0441
-label.sticky.request-learn=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435.
-label.sticky.tablesize=\u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u0430\u0431\u043b\u0438\u0446\u044b
-label.stopped.vms=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0412\u041c
-label.stop=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c
-label.storage.pool=\u041f\u0443\u043b \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.storage.tags=\u041c\u0435\u0442\u043a\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.storage.traffic=\u0422\u0440\u0430\u0444\u0438\u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.storage.type=\u0422\u0438\u043f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-label.storage=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-label.subdomain.access=\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u0443
-label.submitted.by=[\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e\: <span id\="submitted_by"></span>]
-label.submit=\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c
-label.succeeded=\u0423\u0441\u043f\u0435\u0448\u043d\u043e
-label.sunday=\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435
-label.super.cidr.for.guest.networks=Super CIDR \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0441\u0435\u0442\u0438
-label.supported.services=\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0441\u043b\u0443\u0436\u0431\u044b
-label.supported.source.NAT.type=\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0442\u0438\u043f\u044b NAT-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430
-label.suspend.project=\u041f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442
-label.switch.type=\u0422\u0438\u043f \u0441\u0432\u0438\u0447\u0430
-label.system.capacity=\u041c\u043e\u0449\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b
-label.system.offering=\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b
-label.system.service.offering=\u0423\u0441\u043b\u0443\u0433\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0441\u043b\u0443\u0436\u0431
-label.system.vm.details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0441\u0441\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0439 \u0412\u041c
-label.system.vms=\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0412\u041c
-label.system.vm.type=\u0422\u0438\u043f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c
-label.system.vm=\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u0412\u041c
-label.system.wide.capacity=\u041e\u0431\u0449\u0435\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430
-label.tagged=\u0421 \u043c\u0435\u0442\u043a\u043e\u0439
-label.tags=\u041c\u0435\u0442\u043a\u0438
-label.target.iqn=\u0426\u0435\u043b\u0435\u0432\u043e\u0439 IQN
-label.task.completed=\u0417\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430
-label.template.limits=\u041f\u0440\u0435\u0434\u0435\u043b\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u0430
-label.template=\u0428\u0430\u0431\u043b\u043e\u043d
-label.TFTP.dir=\u041a\u0430\u0442\u0430\u043b\u043e\u0433 TFTP
-label.theme.default=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0442\u0435\u043c\u0430
-label.theme.grey=\u0421\u0435\u0440\u0430\u044f \u0442\u0435\u043c\u0430
-label.theme.lightblue=\u0413\u043e\u043b\u0443\u0431\u0430\u044f \u0442\u0435\u043c\u0430
-label.thursday=\u0427\u0435\u0442\u0432\u0435\u0440\u0433
-label.tier.details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 Tier
-label.timeout=\u0412\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f
-label.time=\u0412\u0440\u0435\u043c\u044f
-label.time.zone=\u0427\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441
-label.timezone=\u0427\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441
-label.token=\u0422\u043e\u043a\u0435\u043d
-label.total.cpu=\u0412\u0441\u0435\u0433\u043e CPU
-label.total.CPU=\u0412\u0441\u0435\u0433\u043e CPU
-label.total.hosts=\u0412\u0441\u0435\u0433\u043e \u0443\u0437\u043b\u043e\u0432
-label.total.memory=\u0412\u0441\u0435\u0433\u043e \u043f\u0430\u043c\u044f\u0442\u0438
-label.total.of.ip=\u0412\u0441\u0435\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.total.of.vm=\u0412\u0441\u0435\u0433\u043e \u0412\u041c
-label.total.storage=\u0412\u0441\u0435\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f
-label.total.virtual.routers=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432
-label.total.vms=\u0412\u0441\u0435\u0433\u043e \u0412\u041c
-label.traffic.label=\u0422\u0440\u0430\u0444\u0438\u043a
-label.traffic.types=\u0422\u0438\u043f\u044b \u0442\u0440\u0430\u0444\u0438\u043a\u0430
-label.traffic.type=\u0422\u0438\u043f \u0442\u0440\u0430\u0444\u0438\u043a\u0430
-label.tuesday=\u0412\u0442\u043e\u0440\u043d\u0438\u043a
-label.type.id=ID \u0442\u0438\u043f\u0430
-label.type.lower=\u0422\u0438\u043f
-label.type=\u0422\u0438\u043f
-label.unavailable=\u041d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e
-label.unlimited=\u0411\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e
-label.untagged=\u0411\u0435\u0437 \u043c\u0435\u0442\u043a\u0438
-label.update.project.resources=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430
-label.update.ssl.cert= \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b SSL
-label.update.ssl= \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b SSL
-label.updating=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435
-label.upload=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c
-label.upload.volume=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c  \u0434\u0438\u0441\u043a
-label.url=URL
-label.usage.interface=\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f
-label.usage.server=\u0421\u0435\u0440\u0432\u0435\u0440 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438
-label.used=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e
-label.username.lower=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
-label.users=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438
-label.user=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c
-label.use.vm.ips=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0412\u041c IPs
-label.use.vm.ip=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 IP \u0412\u041c\:
-label.value=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435
-label.vcdcname=\u0418\u043c\u044f vCenter DC
-label.vcenter.cluster=\u041a\u043b\u0430\u0441\u0442\u0435\u0440 vCenter
-label.vcenter.datacenter=\u0426\u041e\u0414 vCenter
-label.vcenter.datastore=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 vCenter
-label.vcenter.host=\u0423\u0437\u0435\u043b vCenter
-label.vcenter.password=\u041f\u0430\u0440\u043e\u043b\u044c vCenter
-label.vcenter.username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f vCenter
-label.vcipaddress=vCenter IP \u0410\u0434\u0440\u0435\u0441\u0441
-label.version=\u0412\u0435\u0440\u0441\u0438\u044f
-label.vgpu.remaining.capacity=\u041e\u0441\u0442\u0430\u0448\u0438\u0435\u0441\u044f \u0435\u043c\u043a\u043e\u0441\u0442\u044c
-label.view.all=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0451
-label.view.console=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c
-label.viewing=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440
-label.view.more=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435
-label.view.secondary.ips=\u041e\u0431\u0437\u043e\u0440 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432
-label.view=\u0412\u0438\u0434
-label.virtual.appliances=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430
-label.virtual.appliance=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e
-label.virtual.machines=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b
-label.virtual.machine=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430
-label.virtual.networking=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430t \u0441\u0435\u0442\u0438
-label.virtual.network=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u044c
-label.virtual.routers=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u043e\u0443\u0442\u0435\u0440
-label.virtual.router=\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u043e\u0443\u0442\u0435\u0440
-label.vlan.id=ID VLAN
-label.vlan.only=VLAN
-label.vlan.range=VLAN/VNI Range
-label.vlan=VLAN
-label.vlan.vni.range=VLAN/VNI Range
-label.vm.add=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u044b
-label.vm.destroy=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c
-label.vm.display.name=\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f \u0412\u041c
-label.VMFS.datastore=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 VMFS
-label.vmfs=VMFS
-label.vm.ip=\u0412\u041c IP-\u0430\u0434\u0440\u0435\u0441
-label.vm.name=\u0418\u043c\u044f VM
-label.vm.reboot=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c
-label.VMs.in.tier=Tier \u0412\u041c
-label.vmsnapshot.current=\u0422\u0435\u043a\u0443\u0449\u0435\u0439
-label.vmsnapshot.memory=\u0421\u043d\u0438\u043c\u043e\u043a \u043f\u0430\u043c\u044f\u0442\u0438
-label.vmsnapshot.parentname=\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c
-label.vmsnapshot.type=\u0422\u0438\u043f
-label.vmsnapshot=\u0421\u043d\u0438\u043c\u043e\u043a \u0412\u041c
-label.vm.start=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c
-label.vm.state=\u0421\u0442\u0430\u0442\u0443\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430
-label.vm.stop=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c
-label.vms=\u0412\u041c
-label.vmware.traffic.label=\u041c\u0435\u0442\u043a\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 VMware
-label.vnet.id=ID VLAN
-label.vnet=VLAN
-label.volgroup=\u0413\u0440\u0443\u043f\u043f\u0430 \u0434\u0438\u0441\u043a\u0430
-label.volume.details=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0434\u0438\u0441\u043a\u0435
-label.volume.limits=\u041a\u043e\u043b\u0438\u0447\u0435\u0442\u0441\u0432\u043e \u0434\u0438\u0441\u043a\u043e\u0432
-label.volume.migrated=\u0414\u0438\u0441\u043a \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0451\u043d
-label.volume.name=\u0418\u043c\u044f \u0442\u043e\u043c\u0430
-label.volumes=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f
-label.volume=\u0422\u043e\u043c
-label.vpc.id=VPC ID
-label.VPC.limits=\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f VPC
-label.vpc.offering.details=\u0414\u0435\u0442\u0430\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0438 VPC
-label.vpc.offering=\u0423\u0441\u043b\u0443\u0433\u0430 VPC
-label.VPC.router.details=\u0414\u0435\u0442\u0430\u043b\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430 VPC
-label.vpc=VPC
-label.VPN.connection=VPN \u043f\u043e\u0434\u043b\u044e\u0447\u0435\u043d\u0438\u0435
-label.vpn.customer.gateway=VPN \u0448\u043b\u044e\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0430
-label.VPN.customer.gateway=VPN \u0448\u043b\u044e\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0430
-label.VPN.gateway=VPN \u0448\u043b\u044e\u0437
-label.vpn=VPN
-label.vsmctrlvlanid=Control VLAN ID
-label.vsmpktvlanid=Packet VLAN ID
-label.vsmstoragevlanid=Storage VLAN ID
-label.vsphere.managed=vSphere Managed
-label.vxlan.id=VXLAN ID
-label.vxlan.range=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d Range
-label.vxlan=VXLAN
-label.waiting=\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435
-label.warn=\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435
-label.wednesday=\u0421\u0440\u0435\u0434\u0430
-label.weekly=\u0415\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u043e
-label.welcome.cloud.console=\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f
-label.welcome=\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c
-label.what.is.cloudstack=\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 CloudStack&\#8482?
-label.xenserver.traffic.label=\u041c\u0435\u0442\u043a\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 XenServer
-label.yes=\u0414\u0430
-label.zone.details=\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0437\u043e\u043d\u044b
-label.zone.id=ID \u0437\u043e\u043d\u044b
-label.zone.lower=\u0417\u043e\u043d\u0430
-label.zone.step.1.title=\u0428\u0430\u0433 1\: <strong>\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0435\u0442\u044c</strong>
-label.zone.step.2.title=Step 2\: <strong>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0437\u043e\u043d\u0443</strong>
-label.zone.step.3.title=Step 3\: <strong>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u0435\u043d\u0434</strong>
-label.zone.step.4.title=Step 4\: <strong>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432</strong>
-label.zones=\u0417\u043e\u043d\u044b
-label.zone.type=\u0422\u0438\u043f \u0437\u043e\u043d\u044b
-label.zone=\u0417\u043e\u043d\u0430
-label.zone.wide=\u0412\u0441\u0435\u0439 \u0437\u043e\u043d\u044b
-label.zoneWizard.trafficType.guest=\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439\: \u0422\u0440\u0430\u0444\u0438\u043a \u043c\u0435\u0436\u0434\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
-label.zoneWizard.trafficType.management=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\: \u0422\u0440\u0430\u0444\u0438\u043a \u043c\u0435\u0436\u0434\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c CloudStack, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043b\u044e\u0431\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0443\u0437\u043b\u044b \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b.
-label.zoneWizard.trafficType.public=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439\: \u0442\u0440\u0430\u0444\u0438\u043a \u043c\u0435\u0436\u0434\u0443 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435
-label.zoneWizard.trafficType.storage=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\: \u0422\u0440\u0430\u0444\u0438\u043a \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u043c\u0438 \u0438 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438 \u0441\u043d\u0438\u043c\u043a\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.
-managed.state=\u0420\u0435\u0436\u0438\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f
-message.acquire.ip.nic=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 IP \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b. <br/>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435\: \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0435\u0434\u0430\u0432\u043d\u043e  \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 IP \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.
-message.acquire.new.ip=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c "\u0431\u0435\u043b\u044b\u0439" IP \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0441\u0435\u0442\u0438.
-message.acquire.new.ip.vpc=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c "\u0431\u0435\u043b\u044b\u0439" IP \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e VPC.
-message.acquire.public.ip=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043e\u043d\u0443, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0441\u0442\u0438 \u043d\u043e\u0432\u044b\u0439 IP.
-message.action.cancel.maintenance.mode=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f.
-message.action.cancel.maintenance=\u0423\u0437\u0435\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u044b\u0448\u0435\u043b \u0438\u0437 \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u0434\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.
-message.action.change.service.warning.for.instance=\u041f\u0435\u0440\u0435\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043d\u0430\u0431\u043e\u0440\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0412\u0430\u0448\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430
-message.action.change.service.warning.for.router=\u0414\u043b\u044f \u0441\u043c\u0435\u043d\u044b \u043d\u0430\u0431\u043e\u0440\u0430 \u0443\u0441\u043b\u0443\u0433 \u0412\u0430\u0448 \u0440\u043e\u0443\u0442\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d
-message.action.delete.cluster=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440.
-message.action.delete.disk.offering=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u042b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 \u0443\u0441\u043b\u0443\u0433\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-message.action.delete.domain=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0434\u043e\u043c\u0435\u043d.
-message.action.delete.external.firewall=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0444\u0430\u0435\u0440\u0432\u043e\u043b. \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0435\u043d\u0438\u0435\: \u0415\u0441\u043b\u0438 \u0412\u044b \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u044d\u0442\u043e\u0442 \u0436\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0444\u0430\u0435\u0440\u0432\u043e\u043b, \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044d\u0442\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435.
-message.action.delete.external.load.balancer=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0435\u043d\u0438\u0435\: \u0415\u0441\u043b\u0438 \u0412\u044b \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u044d\u0442\u043e\u0442 \u0436\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0444\u0430\u0435\u0440\u0432\u043e\u043b, \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u044d\u0442\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435
-message.action.delete.ingress.rule=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e.
-message.action.delete.ISO.for.all.zones=ISO \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0437\u043e\u043d\u0430\u043c\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u0432\u0441\u0435\u0445 \u0437\u043e\u043d.
-message.action.delete.ISO=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 ISO.
-message.action.delete.network=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 \u0441\u0435\u0442\u044c.
-message.action.delete.nexusVswitch=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e nexus 1000v
-message.action.delete.nic=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 NIC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u0443\u0434\u0430\u043b\u0438\u0442 \u0432\u0441\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0438\u0437 \u0412\u041c.
-message.action.delete.physical.network=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c
-message.action.delete.pod=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0442\u0435\u043d\u0434.
-message.action.delete.primary.storage=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u043a \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435.
-message.action.delete.secondary.storage=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u043a \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-message.action.delete.security.group=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u043a \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 security group.
-message.action.delete.service.offering=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u042b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 \u0443\u0441\u043b\u0443\u0433\u0443 \u0441\u043b\u0443\u0436\u0431
-message.action.delete.snapshot=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u043a \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u043d\u0438\u043c\u043e\u043a.
-message.action.delete.system.service.offering=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441.
-message.action.delete.template.for.all.zones=\u042d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0441\u0435\u0445 \u0437\u043e\u043d\u0430\u0445. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u043a \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0435\u0433\u043e \u0432\u043e \u0432\u0441\u0435\u0445 \u0437\u043e\u043d\u0430\u0445.
-message.action.delete.template=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u043a \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d.
-message.action.delete.volume=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0442\u044c \u044d\u0442\u043e\u0442 \u0442\u043e\u043c.
-message.action.delete.zone=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0442\u044c \u044d\u0442\u0443 \u0437\u043e\u043d\u0443.
-message.action.destroy.instance=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u044d\u0442\u0443 \u043c\u0430\u0448\u0438\u043d\u0443.
-message.action.destroy.systemvm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0412\u041c.
-message.action.disable.cluster=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440.
-message.action.disable.nexusVswitch=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e nexusVswitch.
-message.action.disable.physical.network=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c.
-message.action.disable.pod=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0442\u0435\u043d\u0434.
-message.action.disable.static.NAT=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u0430\u0434\u0440\u0435\u0441\u043e\u0432.
-message.action.disable.zone=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0437\u043e\u043d\u0443.
-message.action.download.iso=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u043e\u0442 ISO.
-message.action.download.template=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d.
-message.action.enable.cluster=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440.
-message.action.enable.maintenance=\u0412\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0434\u043b\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u043d\u0435\u043c \u0432 \u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.
-message.action.enable.nexusVswitch=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e nexus 1000v.
-message.action.enable.physical.network=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c.
-message.action.enable.pod=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0442\u0435\u043d\u0434.
-message.action.enable.zone=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0437\u043e\u043d\u0443.
-message.action.force.reconnect=\u0412\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u0434\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442.
-message.action.host.enable.maintenance.mode=\u0410\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0440\u0435\u0436\u0438\u043c\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.
-message.action.instance.reset.password=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.
-message.action.manage.cluster=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432 \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f.
-message.action.primarystorage.enable.maintenance.mode=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435\: \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432\u0441\u0435\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0435\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?
-message.action.reboot.instance=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u0443 \u043c\u0430\u0448\u0438\u043d\u0443.
-message.action.reboot.router=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u043e\u0443\u0442\u0435\u0440.
-message.action.reboot.systemvm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0412\u041c.
-message.action.release.ip=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u044d\u0442\u043e\u0442 IP \u0430\u0434\u0440\u0435\u0441.
-message.action.remove.host=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e/\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u044e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f/\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435 \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u043d\u0435\u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u043c\u0438 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e.
-message.action.reset.password.off=\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e
-message.action.reset.password.warning=\u041f\u0435\u0440\u0435\u0434 \u043f\u043e\u043f\u044b\u0442\u043a\u043e\u0439 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u0412\u0430\u0448\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430.
-message.action.restore.instance=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043c\u0430\u0448\u0438\u043d\u0443.
-message.action.revert.snapshot=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0434\u0438\u0441\u043a \u043a \u044d\u0442\u043e\u043c\u0443 \u0442\u043e\u043c \u0441\u043d\u0438\u043c\u043a\u0443
-message.action.start.instance=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u0443 \u043c\u0430\u0448\u0438\u043d\u0443.
-message.action.start.router=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u043e\u0443\u0442\u0435\u0440.
-message.action.start.systemvm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0412\u041c.
-message.action.stop.instance=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043c\u0430\u0448\u0438\u043d\u0443.
-message.action.stop.router=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u043e\u0443\u0442\u0435\u0440.
-message.action.stop.systemvm=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443.
-message.action.take.snapshot=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a \u044d\u0442\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430.
-message.action.unmanage.cluster=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c.
-message.action.vmsnapshot.delete=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u043d\u0438\u043c\u043e\u043a \u0412\u041c.
-message.action.vmsnapshot.revert=\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a \u0412\u041c
-message.activate.project=\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442?
-message.add.cluster=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u043e\u0432 \u0432 \u0437\u043e\u043d\u0435 <b><span id\="zone_name"></span></b>, pod <b><span id\="pod_name"></span></b>
-message.add.cluster.zone=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u043e\u0432 \u0432 \u0437\u043e\u043d\u0435 <b><span id\="zone_name"></span></b>
-message.add.disk.offering=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0441\u043b\u0443\u0433\u0438 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
-message.add.domain=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d, \u0433\u0434\u0435 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u0430\u0448 \u0434\u043e\u043c\u0435\u043d
-message.add.firewall=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u0435\u0440\u0432\u043e\u043b \u0432 \u0437\u043e\u043d\u0443
-message.add.guest.network=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0433\u043e\u0441\u0442\u0435\u0432\u0443\u044e \u0441\u0435\u0442\u044c
-message.add.host=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430.
-message.adding.host=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430
-message.adding.Netscaler.device=\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 NetScaler
-message.adding.Netscaler.provider=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c Netscaler
-message.add.ip.range.direct.network=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c IP-\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0441\u0435\u0442\u0438 <b><span id\="directnetwork_name"></span></b> \u0432 \u0437\u043e\u043d\u0435 <b><span id\="zone_name"></span></b>
-message.add.ip.range.to.pod=<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432 \u0441\u0442\u0435\u043d\u0434\: <b><span id\="pod_name_label"></span></b></p>
-message.add.ip.range=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u0437\u043e\u043d\u044b
-message.additional.networks.desc=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0412\u0430\u0448\u0430 \u043c\u0430\u0448\u0438\u043d\u0430.
-message.add.load.balancer=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0437\u043e\u043d\u0443
-message.add.load.balancer.under.ip=\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0431\u044b\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432 IP\:
-message.add.network=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0441\u0435\u0442\u044c \u0434\u043b\u044f \u0437\u043e\u043d\u044b\: <b><span id\="zone_name"></span></b>
-message.add.new.gateway.to.vpc=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0448\u043b\u044e\u0437\u0430 \u0432 VPC
-message.add.pod.during.zone.creation=\u041a\u0430\u0436\u0434\u0430\u044f \u0437\u043e\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0435\u043d\u0434\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u043f\u0435\u0440\u0432\u044b\u043c. \u0421\u0442\u0435\u043d\u0434 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u0437\u043b\u044b \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0448\u0430\u0433\u0435. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IP \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 IP \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u043e\u043d\u044b \u043e\u0431\u043b\u0430\u043a\u0430.
-message.add.pod=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u0435\u043d\u0434 \u0434\u043b\u044f \u0437\u043e\u043d\u044b <b><span id\="add_pod_zone_name"></span></b>
-message.add.primary.storage=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043b\u044f \u0437\u043e\u043d\u044b <b><span id\="zone_name"></span></b>, \u0441\u0442\u0435\u043d\u0434\u0430 <b><span id\="pod_name"></span></b>
-message.add.primary=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0437\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-message.add.region=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u043e\u043d\u0430.
-message.add.secondary.storage=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432 \u0437\u043e\u043d\u0443 <b><span id\="zone_name"></span></b>
-message.add.service.offering=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430.
-message.add.system.service.offering=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0443\u0441\u043b\u0443\u0433\u0438
-message.add.template=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430
-message.add.volume=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430.
-message.add.VPN.gateway=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c VPN \u0448\u043b\u044e\u0437
-message.advanced.mode.desc=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u044d\u0442\u0443 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0435\u0441\u043b\u0438 \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e VLAN. \u042d\u0442\u0430 \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u043a\u0430\u043a \u0444\u0430\u0435\u0440\u0432\u043e\u043b, \u0412\u041f\u041d, \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e\u0435 \u0438\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437  \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043d\u044b\u0435 \u0441\u0435\u0442\u0438.
-message.advanced.security.group=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u044d\u0442\u043e, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c security groups \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.
-message.advanced.virtual=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u044d\u0442\u043e, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c VLAN \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.
-message.after.enable.s3=S3-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e. \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435\: \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043a\u0438\u043d\u0435\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0432\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c S3 \u0441\u043d\u043e\u0432\u0430.
-message.after.enable.swift=Swift \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d. \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435\: \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043a\u0438\u043d\u0435\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0432\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c Swift \u0441\u043d\u043e\u0432\u0430
-message.alert.state.detected=\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d \u0441\u0438\u0433\u043d\u0430\u043b \u0442\u0440\u0435\u0432\u043e\u0433\u0438
-message.allow.vpn.access=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c VPN \u0434\u043e\u0441\u0442\u0443\u043f.
-message.apply.snapshot.policy=\u0412\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439.
-message.attach.iso.confirm=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c ISO \u043a \u044d\u0442\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435.
-message.attach.volume=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u0438\u043d\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430. \u0415\u0441\u043b\u0438 \u0412\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0435 \u0434\u0438\u0441\u043a \u043a \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 Windows, \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0434\u0438\u0441\u043a \u0431\u044b\u043b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d.
-message.basic.mode.desc=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u044d\u0442\u0443 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0435\u0441\u043b\u0438 \u0412\u044b <b>*<u>\u043d\u0435</u>*</b> \u0445\u043e\u0442\u0438\u0442\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 VLAN.  \u0412\u0441\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u043c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u0430\u0448\u0438\u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 IP \u0430\u0434\u0440\u0435\u0441. \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b Security groups.
-message.change.offering.confirm=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0438 \u0441\u043b\u0443\u0436\u0431 \u044d\u0442\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.
-message.change.password=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0432\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c.
-message.configure.all.traffic.types=\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0442\u0435\u0439, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430, \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c.
-message.configuring.guest.traffic=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430
-message.configuring.physical.networks=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0442\u0435\u0439
-message.configuring.public.traffic=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430
-message.configuring.storage.traffic=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-message.confirm.action.force.reconnect=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0443\u0437\u043b\u0443
-message.confirm.delete.F5=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c F5
-message.confirm.delete.NetScaler=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c NetScaler
-message.confirm.delete.PA=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c Palo Alto
-message.confirm.delete.SRX=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c SRX
-message.confirm.destroy.router=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u043e\u0443\u0442\u0435\u0440
-message.confirm.disable.provider=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430
-message.confirm.enable.provider=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430
-message.confirm.join.project=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443.
-message.confirm.remove.IP.range=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP.
-message.confirm.shutdown.provider=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430
-message.copy.iso.confirm=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0412\u0430\u0448 ISO \u0432
-message.copy.template=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d <b id\="copy_template_name_text">XXX</b> \u0438\u0437 \u0437\u043e\u043d\u044b <b id\="copy_template_source_zone_text"></b> \u0432
-message.create.template=\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u043d?
-message.create.template.vm=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443 \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 <b id\="p_name"></b>
-message.create.template.volume=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438\u0437 \u0412\u0430\u0448\u0435\u0433\u043e \u0434\u0438\u0441\u043a\u0430\: <b><span id\="volume_name"></span></b>. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0412\u0430\u0448\u0435\u0433\u043e \u0434\u0438\u0441\u043a\u0430.
-message.creating.cluster=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430
-message.creating.guest.network=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0433\u043e\u0441\u0442\u0435\u0432\u0443\u044e \u0441\u0435\u0442\u044c
-message.creating.physical.networks=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0442\u0435\u0439
-message.creating.pod=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0435\u043d\u0434\u0430
-message.creating.primary.storage=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-message.creating.secondary.storage=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430
-message.creating.zone=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u043e\u043d\u044b
-message.decline.invitation=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442.
-message.dedicate.zone=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0437\u043e\u043d\u0430
-message.delete.account=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.
-message.delete.affinity.group=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 affinity group
-message.delete.gateway=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0448\u043b\u044e\u0437.
-message.delete.project=\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442?
-message.delete.user=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.
-message.delete.VPN.connection=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e VPN \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.
-message.delete.VPN.customer.gateway=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0448\u043b\u044e\u0437 VPN.
-message.delete.VPN.gateway=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0448\u043b\u044e\u0437 VPN.
-message.desc.advanced.zone=\u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0439. \u042d\u0442\u0430 \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0441\u0435\u0442\u0438 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u043b\u0443\u0433, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043c\u0435\u0436\u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u044d\u043a\u0440\u0430\u043d, VPN, \u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.
-message.desc.basic.zone=\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0434\u0438\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0441\u0435\u0442\u044c, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u0412\u041c \u0438\u043c\u0435\u0435\u0442 \u00ab\u0431\u0435\u043b\u044b\u0439\u00bb IP-\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0442\u0438. \u0418\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0433\u043e\u0441\u0442\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0435\u0442\u0438 3-\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0440\u0443\u043f\u043f\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f IP-\u0432\u0434\u0440\u0435\u0441\u043e\u0432)
-message.desc.cluster=\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u0435\u043d\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432, \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435. \u041a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u0443 \u0443\u0437\u043b\u043e\u0432. \u0423\u0437\u043b\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u0434\u0438\u043d \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440, \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0438 \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u0434\u043d\u043e\u043c\u0443  \u0438 \u0442\u043e\u043c\u0443 \u0436\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c\u0443 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0443. \u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u0437\u043b\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0435\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449.
-message.desc.host=\u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u0443\u0437\u0435\u043b (\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440) \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0412\u041c, \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u0441\u0435\u0439\u0447\u0430\u0441. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0437\u043b\u0430 \u0432 CloudStack \u0432\u0430\u0436\u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u0430 \u043d\u0430 \u0443\u0437\u0435\u043b, \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 IP \u043a \u0443\u0437\u043b\u0443 \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f CloudStack.<br/><br/>\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0438\u043c\u044f DNS \u0438\u043b\u0438 \u0430\u0434\u0440\u0435\u0441 IP, \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u043a \u041e\u0421 (\u043e\u0431\u044b\u0447\u043d\u043e root), \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0437\u043b\u043e\u0432.
-message.desc.primary.storage=\u041a\u0430\u0436\u0434\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u0439\u0447\u0430\u0441. \u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0436\u0435\u0441\u0442\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u0443\u0437\u043b\u0430\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043b\u044e\u0431\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u0430.
-message.desc.secondary.storage=\u041a\u0430\u0436\u0434\u0430\u044f \u0437\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c NFS \u0438\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0438 \u0438\u0445 \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0412\u041c, \u043e\u0431\u0440\u0430\u0437\u043e\u0432 ISO \u0438 \u0441\u043d\u0438\u043c\u043a\u043e\u0432 \u0412\u041c. \u042d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u043e\u0432 \u0437\u043e\u043d\u044b.<br/><br/>\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 IP-\u0430\u0434\u0440\u0435\u0441 \u0438 \u043f\u0443\u0442\u044c.
-message.desc.zone=layer 3
-message.detach.disk=\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0434\u0438\u0441\u043a?
-message.detach.iso.confirm=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c ISO \u043e\u0442 \u044d\u0442\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.
-message.disable.account=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c. \u0414\u0435\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u041e\u0431\u043b\u0430\u043a\u0430. \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b.
-message.disable.snapshot.policy=\u0412\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439.
-message.disable.user=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.
-message.disable.vpn.access=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c VPN \u0434\u043e\u0441\u0442\u0443\u043f.
-message.disable.vpn=\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c VPN?
-message.download.ISO=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 <a href\="\#">00000</a> \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437
-message.download.template=\u041d\u0430\u0436\u043c\u0438\u0442\u0435 <a href\="\#">00000</a>\u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-message.download.volume.confirm=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 <a href\="\#">00000</a> \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0438\u0441\u043a\u0430
-message.download.volume=\u041d\u0430\u0436\u043c\u0438\u0442\u0435 <a href\="\#">00000</a> \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0438\u0441\u043a\u0430
-message.edit.account=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 "-1" \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430)
-message.edit.limits=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. "-1" \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.
-message.edit.traffic.type=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u043c\u0435\u0442\u043a\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430  \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u044d\u0442\u0438\u043c \u0442\u0438\u043f\u043e\u043c \u0442\u0440\u0430\u0444\u0438\u043a\u0430.
-message.enable.account=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.
-message.enabled.vpn.ip.sec=\u0412\u0430\u0448 IPSec pre-shared \u043a\u043b\u044e\u0447
-message.enabled.vpn=\u0412\u0430\u0448 VPN \u0434\u043e\u0441\u0442\u0443\u043f \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d. \u0414\u043e\u0441\u0442\u0443\u043f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d \u0447\u0435\u0440\u0435\u0437 IP \u0430\u0434\u0440\u0435\u0441
-message.enable.user=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.
-message.enable.vpn.access=VPN \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e IP \u0430\u0434\u0440\u0435\u0441\u0430. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c VPN?
-message.enable.vpn=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a VPN \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430.
-message.enabling.security.group.provider=\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u0433\u0440\u0443\u043f\u043f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438
-message.enabling.zone=\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u043e\u043d\u0443
-message.enter.token=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043b\u044e\u0447, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432 \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u0438\u0441\u044c\u043c\u0435
-message.generate.keys=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.
-message.guest.traffic.in.advanced.zone=\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0438\u0442 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 VLAN \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0435\u0442\u0438.
-message.guest.traffic.in.basic.zone=\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0431\u0449\u0435\u043d\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IP, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 CloudStack \u0441\u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u043b\u044f \u0412\u041c. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.
-message.installWizard.click.retry=\u041a\u043b\u0438\u043a\u043d\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a.
-message.installWizard.copy.whatIsACluster=\u041a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u0443 \u0443\u0437\u043b\u043e\u0432. \u0423\u0437\u043b\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u043c \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u0435\u0440\u0435, \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0438 \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0431\u0449\u0435\u043c\u0443 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0443. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b (\u0412\u041c) \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u044b "\u0432\u0436\u0438\u0432\u0443\u044e" \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0431\u0435\u0437 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u041a\u043b\u0430\u0441\u0442\u0435\u0440 - \u0442\u0440\u0435\u0442\u044c\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 CloudStack&\#8482. \u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0435\u043d\u0434\u0430\u0445, \u0430 \u0441\u0442\u0435\u043d\u0434\u044b - \u0432 \u0437\u043e\u043d\u0430\u0445. <br/><br/>CloudStack&\#8482; \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432, \u043d\u043e \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u044d\u0442\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442.
-message.installWizard.copy.whatIsAHost=\u0423\u0437\u0435\u043b - \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440. \u0423\u0437\u043b\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0412\u041c (\u043a\u0440\u043e\u043c\u0435 \u0443\u0437\u043b\u043e\u0432 BareMetal, \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0438\u0437 \u043f\u0440\u0430\u0432\u0438\u043b \u0438 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u044d\u0442\u043e Linux-\u0441\u0435\u0440\u0432\u0435\u0440 \u0441 KVM, \u0441\u0435\u0440\u0432\u0435\u0440 Citrix XenServer \u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 ESXI. \u041f\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0443\u0437\u0435\u043b \u0441 XenServer.<br/><br/>\u0423\u0437\u0435\u043b - \u044d\u0442\u043e \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 CloudStack&\#8482;, \u0434\u0430\u043b\u0435\u0435 \u0443\u0437\u043b\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0433\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445, \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b - \u0432 \u0441\u0442\u0435\u043d\u0434\u0430\u0445, \u0441\u0442\u0435\u043d\u0434\u044b - \u0432 \u0437\u043e\u043d\u0430\u0445.
-message.installWizard.copy.whatIsAPod=\u0421\u0442\u0435\u043d\u0434, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0439\u043a\u0443 \u0441 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438. \u0423\u0437\u043b\u044b \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438.<br/><br/>\u0421\u0442\u0435\u043d\u0434 - \u0432\u0442\u043e\u0440\u0430\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 CloudStack&\#8482;. \u0421\u0442\u0435\u043d\u0434\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0433\u0430\u044e\u0442\u0441\u044f \u0432 \u0437\u043e\u043d\u0430\u0445. \u041a\u0430\u0436\u0434\u0430\u044f \u0437\u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0435\u043d\u0434\u043e\u0432, \u043d\u043e \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432 \u0437\u043e\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u0441\u0442\u0435\u043d\u0434.
-message.installWizard.copy.whatIsAZone=\u0417\u043e\u043d\u0430 - \u044d\u0442\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0443\u043f\u043d\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 CloudStack&\#8482;. \u0417\u043e\u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u043c\u0443 \u0426\u041e\u0414, \u0445\u043e\u0442\u044f \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u043e\u043d \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0426\u041e\u0414. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u043e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u0432\u043e\u0439 \u0431\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0438 \u0441\u0435\u0442\u044c, \u0430 \u0441\u0430\u043c\u0438 \u0437\u043e\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438.
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482 - \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u043f\u043b\u0430\u0444\u0442\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445, \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u0438 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u043a\u043e\u0432 \u043f\u043e \u0441\u0445\u0435\u043c\u0435 \u00ab\u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0438\u0441\u00bb (IaaS). CloudStack&\#8482 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0435\u0442\u044c\u044e, \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. \u0413\u043b\u0430\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, CloudStack&\#8482 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.<br/><br/>CloudStack&\#8482 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u0443\u0441\u043b\u0443\u0433\u0438 \u0446\u0435\u043b\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0431\u043b\u0430\u043a\u0430. \u041c\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0439 \u0438 \u0411\u0435\u0437\u043d\u0435\u0441-\u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f.
-message.installWizard.copy.whatIsPrimaryStorage=CloudStack&\#8482; - \u044d\u0442\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\: \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0435\u043b\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c iSCSI \u0438\u043b\u0438 NFS-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0441\u043a.<br/><br/><strong>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435</strong> \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u0438 \u0442\u0430\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0442\u043e\u043c\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0412\u041c, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0439 \u0432 \u0443\u0437\u043b\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0441\u043e\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u044f\u0434\u043e\u043c \u0441 \u0443\u0437\u043b\u043e\u043c.
-message.installWizard.copy.whatIsSecondaryStorage=\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043a \u0437\u043e\u043d\u0435 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435\:<ul><li>\u0428\u0430\u0431\u043b\u043e\u043d\u044b - \u043e\u0431\u0440\u0430\u0437\u044b \u041e\u0421, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0412\u041c \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.</li><li>\u041e\u0431\u0440\u0430\u0437\u044b ISO - \u044d\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0435 \u0438\u043b\u0438 \u043d\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u041e\u0421</li><li>\u0421\u043d\u0438\u043c\u043a\u0438 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0442\u043e\u043c\u043e\u0432 - \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0412\u041c, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430</ul>
-message.installWizard.now.building=\u0412\u0430\u0448\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f...
-message.installWizard.tooltip.addCluster.name=\u0418\u043c\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u043c\u044f, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 Cloudstack.
-message.installWizard.tooltip.addHost.hostname=\u0418\u043c\u044f DNS \u0438\u043b\u0438 IP-\u0430\u0434\u0440\u0435\u0441 \u0443\u0437\u043b\u0430.
-message.installWizard.tooltip.addHost.password=\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0432\u044b\u0448\u0435\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0441 \u0432\u0430\u0448\u0435\u0433\u043e XenServer)
-message.installWizard.tooltip.addHost.username=\u041e\u0431\u044b\u0447\u043d\u043e root.
-message.installWizard.tooltip.addPod.name=\u0418\u043c\u044f \u0441\u0442\u0435\u043d\u0434\u0430
-message.installWizard.tooltip.addPod.reservedSystemEndIp=\u042d\u0442\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP \u0447\u0430\u0441\u0442\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f CloudStack \u0434\u043b\u044f \u0412\u041c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043a\u0441\u0438. \u042d\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0441\u0435\u0442\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.
-message.installWizard.tooltip.addPod.reservedSystemGateway=\u0428\u043b\u044e\u0437 \u0434\u043b\u044f \u0443\u0437\u043b\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0435\u043d\u0434\u0430.
-message.installWizard.tooltip.addPod.reservedSystemNetmask=\u0421\u0435\u0442\u0435\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0439.
-message.installWizard.tooltip.addPod.reservedSystemStartIp=\u042d\u0442\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP \u0447\u0430\u0441\u0442\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f CloudStack \u0434\u043b\u044f \u0412\u041c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043a\u0441\u0438. \u042d\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0441\u0435\u0442\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.
-message.installWizard.tooltip.addPrimaryStorage.name=\u0418\u043c\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430.
-message.installWizard.tooltip.addPrimaryStorage.path=(\u0434\u043b\u044f NFS) \u0412 NFS \u044d\u0442\u043e \u043f\u0443\u0442\u044c \u044d\u043a\u043f\u043e\u0440\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041f\u0443\u0442\u044c (\u0434\u043b\u044f SharedMountPoint). \u0412 KVM \u044d\u0442\u043e \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0437\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, "/mnt/primary".
-message.installWizard.tooltip.addPrimaryStorage.server=(\u0434\u043b\u044f NFS, iSCSI \u0438\u043b\u0438 PreSetup) IP-\u0430\u0434\u0440\u0435\u0441 \u0438\u043b\u0438 \u0438\u043c\u044f DNS \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430.
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=IP-\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 NFS, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
-message.installWizard.tooltip.addSecondaryStorage.path=\u041f\u0443\u0442\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u0432\u044b\u0448\u0435\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.
-message.installWizard.tooltip.addZone.dns1=\u042d\u0442\u043e c\u0435\u0440\u0432\u0435\u0440\u044b DNS \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0445 \u0412\u041c \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u042d\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u043f\u043e\u0437\u0436\u0435. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0437\u043e\u043d\u0435, \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043a \u044d\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c DNS.
-message.installWizard.tooltip.addZone.dns2=\u042d\u0442\u043e c\u0435\u0440\u0432\u0435\u0440\u044b DNS \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0445 \u0412\u041c \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u042d\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u043f\u043e\u0437\u0436\u0435. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0437\u043e\u043d\u0435, \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043a \u044d\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c DNS.
-message.installWizard.tooltip.addZone.internaldns1=\u042d\u0442\u043e c\u0435\u0440\u0432\u0435\u0440\u044b DNS \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0412\u041c \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u042d\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c. \u0427\u0430\u0441\u0442\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 \u0441\u0442\u0435\u043d\u0434\u0435, \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043a \u044d\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c DNS.
-message.installWizard.tooltip.addZone.internaldns2=\u042d\u0442\u043e c\u0435\u0440\u0432\u0435\u0440\u044b DNS \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0412\u041c \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u042d\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0412\u041c. \u0427\u0430\u0441\u0442\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 \u0441\u0442\u0435\u043d\u0434\u0435, \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043a \u044d\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c DNS.
-message.installWizard.tooltip.addZone.name=\u0418\u043c\u044f \u0437\u043e\u043d\u044b
-message.installWizard.tooltip.configureGuestTraffic.description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0435\u0442\u0438
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0439 \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (NIC) \u044d\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 (CIDR) \u0441\u0442\u0435\u043d\u0434\u0430.
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=\u0428\u043b\u044e\u0437, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0433\u043e\u0441\u0442\u044f\u043c\u0438
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=\u0421\u0435\u0442\u0435\u0432\u0430\u044f \u043c\u0430\u0441\u043a\u0430 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0439.
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0439 \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (NIC) \u044d\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 (CIDR) \u0441\u0442\u0435\u043d\u0434\u0430.
-message.installWizard.tooltip.configureGuestTraffic.name=\u0418\u043c\u044f \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438
-message.instanceWizard.noTemplates=\u0412\u044b \u043d\u0435 \u0438\u043c\u0435\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432; \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043c\u0430\u0448\u0438\u043d\u044b \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d.
-message.ip.address.changed=\u0412\u0430\u0448\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b, \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0434\u0440\u0435\u0441\u043e\u0432? \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043a\u0440\u044b\u0442\u0430.
-message.iso.desc=\u041e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c \u0434\u043b\u044f \u041e\u0421
-message.join.project=\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443. \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430".
-message.launch.vm.on.private.network=\u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0432 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0412\u0430\u043c \u0447\u0430\u0441\u0442\u043d\u043e\u0439 \u0441\u0435\u0442\u0438?
-message.launch.zone=\u0417\u043e\u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0448\u0430\u0433\u0443.
-message.listView.subselect.multi=(Ctrl/Cmd-click)
-message.lock.account=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0443\u0447\u0451\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.  \u0412\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0432 \u0442\u0430\u043a\u0438\u0445 \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u044f\u0445 \u043f\u043e\u0442\u0435\u0440\u044f\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0438\u043c\u0438 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438.  \u042d\u0442\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
-message.migrate.instance.confirm=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443.
-message.migrate.instance.to.host=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043c\u0430\u0448\u0438\u043d\u0443 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0443\u0437\u0435\u043b.
-message.migrate.instance.to.ps=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043c\u0430\u0448\u0438\u043d\u0443 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435.
-message.migrate.router.confirm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0440\u043e\u0443\u0442\u0435\u0440 \u0432 \u0443\u0437\u0435\u043b\:
-message.migrate.systemvm.confirm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0412\u041c \u0432 \u0443\u0437\u0435\u043b
-message.migrate.volume=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0434\u0438\u0441\u043a \u0432 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435.
-message.new.user=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0443\u0447\u0451\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.
-message.no.affinity.groups=\u0412\u044b \u043d\u0435 \u0438\u043c\u0435\u0435\u0442\u0435 affinity groups. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0448\u0430\u0433\u0443.
-message.no.network.support.configuration.not.true=\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b security group \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0438 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0437\u043e\u043d\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u0448\u0430\u0433\u0443 5.
-message.no.network.support=\u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440 (vSphere) \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u0448\u0430\u0433\u0443 5.
-message.no.projects.adminOnly=\u0423 \u0432\u0430\u0441 \u043d\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<br/>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.
-message.no.projects=\u0423 \u0432\u0430\u0441 \u043d\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<br/>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 "\u041f\u0440\u043e\u0435\u043a\u0442\u044b"
-message.number.clusters=<h2><span> \# of </span> \u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b</h2>
-message.number.hosts=<h2><span> \# of </span> \u0423\u0437\u043b\u044b</h2>
-message.number.pods=<h2><span> \# of </span> \u0421\u0442\u0435\u043d\u0434\u044b</h2>
-message.number.storage=<h2><span> \# of </span> \u0422\u043e\u043c\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430</h2>
-message.number.zones=<h2><span> \# of </span> \u0417\u043e\u043d\u044b</h2>
-message.password.has.been.reset.to=\u041f\u0430\u0440\u043e\u043b\u044c \u0431\u044b\u043b \u0441\u0431\u0440\u043e\u0448\u0435\u043d \u0432
-message.pending.projects.1=\u0412 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\:
-message.pending.projects.2=\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0434\u0430\u043b\u0435\u0435 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u0438\u0437 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u043c\u0435\u043d\u044e.
-message.please.add.at.lease.one.traffic.range=\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u043b\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430
-message.please.proceed=\u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0448\u0430\u0433\u0443
-message.please.select.a.configuration.for.your.zone=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0432\u0430\u0448\u0435\u0439 \u0437\u043e\u043d\u044b
-message.please.select.a.different.public.and.management.network.before.removing=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0443\u044e \u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0449\u0443\u044e \u0441\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c
-message.please.select.networks=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0435\u0442\u0438 \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b
-message.please.wait.while.zone.is.being.created=\u041f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u043e\u043d\u0430. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f...
-message.project.invite.sent=\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e; \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f.
-message.public.traffic.in.advanced.zone=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0412\u041c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 IP \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c CloudStack UI \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f IP \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f NAT, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0441\u0435\u0442\u044c\u044e. <br/><br/>\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0440\u0430\u0444\u0438\u043a\u0430.
-message.public.traffic.in.basic.zone=\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0412\u041c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0438\u043b\u0438 \u043f\u0440\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0441\u043b\u0443\u0436\u0431 \u0447\u0435\u0440\u0435\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442.  \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 IP \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b. \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0412\u041c, \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 Ip \u043f\u0440\u0438\u0432\u044f\u0436\u0435\u0442\u0441\u044f \u043a \u043c\u0430\u0448\u0438\u043d\u0435 \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 IP. \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 1-1 NAT \u0434\u043e\u043b\u0436\u0435\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u0435\u0436\u0434\u0443 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0438 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0441\u0435\u0442\u044c\u044e. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c CloudStack UI \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e NAT \u043c\u0435\u0436\u0434\u0443 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438 \u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0441\u0435\u0442\u044c\u044e.
-message.recover.vm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u0412\u041c
-message.redirecting.region=\u041f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0440\u0435\u0433\u0438\u043e\u043d
-message.reinstall.vm=\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435\: C\u043e\u0431\u043b\u044e\u0434\u0430\u0439\u0442\u0435 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u044c.  \u0412\u041c \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430; \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u0438\u0441\u043a\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u0441\u043a\u0438, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u044b\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f, \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b.
-message.remove.region=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u0435\u0433\u0438\u043e\u043d \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f?
-message.remove.vpc=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 VPC
-message.remove.vpn.access=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c VPN \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e.
-message.reset.password.warning.notPasswordEnabled=\u0428\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u043d \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f
-message.reset.password.warning.notStopped=\u0414\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-message.reset.VPN.connection=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e VPN \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.
-message.restart.mgmt.server=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440(\u044b) \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0432 \u0441\u0438\u043b\u0443.
-message.restart.mgmt.usage.server=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0441\u0438\u043b\u0443.
-message.restart.network=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0442\u044c.
-message.restart.vpc=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c VPC
-message.security.group.usage=(\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <strong>Ctrl-click</strong> \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b\u0445 security groups)
-message.select.affinity.groups=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043b\u044e\u0431\u044b\u0435 affinity groups, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430\:
-message.select.a.zone=\u0417\u043e\u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u043c\u0443 \u0446\u0435\u043d\u0442\u0440\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u043e\u043d \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0435 \u043e\u0431\u043b\u0430\u043a\u0430, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e \u0438 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c.
-message.select.instance=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440.
-message.select.iso=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0431\u0440\u0430\u0437 ISO \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u0412\u041c
-message.select.item=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442
-message.select.security.groups=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u0440\u0443\u043f\u043f\u0443(\u044b) \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u0412\u041c
-message.select.template=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u0412\u041c
-message.setup.physical.network.during.zone.creation.basic=\u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0437\u043e\u043d\u0443, \u0432\u044b \u043c\u043e\u0436\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0441\u0442\u0432\u0443\u0435\u0442 NIC \u043d\u0430 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440. \u0421\u0435\u0442\u044c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u043e\u0432 \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<br/><br/>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0442\u044c <strong>drag and drop</strong> \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0435\u0442\u0438.
-message.setup.physical.network.during.zone.creation=\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u043e\u043d\u044b, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0442\u0435\u0439. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0435\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u0430. \u041a\u0430\u043a\u0436\u0434\u0430\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0435\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0438\u0434\u043e\u0432 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u0440\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438 \u0432\u0438\u0434\u043e\u0432 \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<br/><br/><strong>\u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u043e\u0432 \u0442\u0440\u0430\u0444\u0438\u043a\u0430</strong> \u043a \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0435\u0442\u0438.
-message.setup.successful=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0431\u043b\u0430\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430\!
-message.specify.url=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 URL
-message.step.1.continue=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u043b\u0438 ISO \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f.
-message.step.1.desc=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0412\u0430\u0448\u0435\u0439 \u043d\u043e\u0432\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0412\u044b \u0442\u0430\u043a \u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u0437 \u043e\u0431\u0440\u0430\u0437\u0430 ISO.
-message.step.2.continue=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u0441\u043b\u0443\u0433\u0443 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f
-message.step.3.continue=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f
-message.step.4.continue=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u043d\u0443 \u0441\u0435\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f.
-message.step.4.desc=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0412\u0430\u0448\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430.
-message.storage.traffic=\u0422\u0440\u0430\u0444\u0438\u043a \u043c\u0435\u0436\u0434\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 CloudStack, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0443\u0437\u043b\u044b \u0438 CloudStack \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0412\u041c. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0442\u0440\u0430\u0444\u0438\u043a \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u0434\u0435\u0441\u044c.
-message.suspend.project=\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442?
-message.template.desc=\u041e\u0431\u0440\u0430\u0437 \u041e\u0421, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0439 \u0432 \u0412\u041c
-message.tooltip.dns.1=\u0418\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DNS \u0434\u043b\u044f \u0412\u041c \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430.
-message.tooltip.dns.2=\u0418\u043c\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DNS \u0434\u043b\u044f \u0412\u041c \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430.
-message.tooltip.internal.dns.1=\u0418\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DNS \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0412\u041c CloudStack \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u0427\u0430\u0441\u0442\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u0442\u0435\u043d\u0434\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430.
-message.tooltip.internal.dns.2=\u0418\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DNS \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0412\u041c CloudStack \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u044b. \u0427\u0430\u0441\u0442\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u0442\u0435\u043d\u0434\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430.
-message.tooltip.network.domain=\u0421\u0443\u0444\u0444\u0438\u043a\u0441 DNS \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 \u0441\u0435\u0442\u0438, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u043c\u0438 \u0412\u041c.
-message.tooltip.pod.name=\u0418\u043c\u044f \u0434\u043b\u044f \u0441\u0442\u0435\u043d\u0434\u0430
-message.tooltip.reserved.system.gateway=\u0428\u043b\u044e\u0437 \u0434\u043b\u044f \u0443\u0437\u043b\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0435\u043d\u0434\u0430
-message.tooltip.reserved.system.netmask=\u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u0441\u0435\u0442\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0441\u0442\u0435\u043d\u0434\u0430. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 CIDR.
-message.tooltip.zone.name=\u0418\u043c\u044f \u0434\u043b\u044f \u0437\u043e\u043d\u044b
-message.update.os.preference=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u041e\u0421 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u041e\u0421 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.
-message.update.resource.count=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430.
-message.update.ssl=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0432\u044c\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 X.509 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 SSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0445 \u0437\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\:
-message.validate.instance.name=\u0418\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043b\u0438\u043d\u0435\u0435 63 \u0441\u0438\u043c\u0432\u043e\u043b\u0430. \u0422\u043e\u043b\u044c\u043a\u043e ASCII, \u0431\u0443\u043a\u0432\u044b a~z, A~Z, \u0446\u044b\u0444\u0440\u044b 0~9, \u0434\u0435\u0444\u0438\u0441 \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f. \u0414\u043e\u043b\u0436\u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0443\u043a\u0432\u043e\u0439 \u0438\u043b\u0438 \u0446\u0438\u0444\u0440\u043e\u0439.
-message.validate.invalid.characters=\u041d\u0430\u0439\u0434\u0435\u043d\u044b \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b; \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u0430\u0432\u044c\u0442\u0435.
-message.virtual.network.desc=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0412\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u044c. \u0428\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043c\u0435\u043d \u0412\u0430\u0448\u0435\u0433\u043e VLAN \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c.
-message.vm.create.template.confirm=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0432\u0438\u0440\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b
-message.vm.review.launch=\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044c\u0442\u0435\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u0448\u0430 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.
-message.volume.create.template.confirm=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043c\u0430.  \u042d\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u043e\u043c\u0430.
-message.you.must.have.at.least.one.physical.network=\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u043d\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c
-message.Zone.creation.complete=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u043e\u043d\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e
-message.zone.creation.complete.would.you.like.to.enable.this.zone=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u043e\u043d\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e. \u0425\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u0437\u043e\u043d\u0443?
-message.zone.no.network.selection=\u0412\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0437\u043e\u043d\u0430 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u0435\u0442\u0438.
-message.zone.step.1.desc=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0412\u0430\u0448\u0435\u0439 \u0437\u043e\u043d\u044b.
-message.zone.step.2.desc=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u043e\u043d\u044b
-message.zone.step.3.desc=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0421\u0442\u0435\u043d\u0434\u0430
-mode=\u0420\u0435\u0436\u0438\u043c
-network.rate=\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0435\u0442\u0438
-notification.reboot.instance=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-notification.start.instance=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-notification.stop.instance=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443
-side.by.side=\u0411\u043e\u043a-\u043e-\u0411\u043e\u043a
-state.Accepted=\u041f\u0440\u0438\u043d\u044f\u0442\u043e
-state.Active=\u0412\u043a\u043b\u044e\u0447\u0435\u043d
-state.Allocated=\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e
-state.Allocating=\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435
-state.BackedUp=\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e
-state.BackingUp=\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435
-state.Completed=\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e
-state.Creating=\u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f
-state.Declined=\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e
-state.Destroyed=\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u043e
-state.detached=\u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043e
-state.Disabled=\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e
-state.Enabled=\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e
-state.Error=\u041e\u0448\u0438\u0431\u043a\u0430
-state.Expunging=\u0423\u0434\u0430\u043b\u0451\u043d
-state.Migrating=\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f
-state.Pending=\u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f
-state.Ready=\u0413\u043e\u0442\u043e\u0432
-state.Running=\u0417\u0430\u043f\u0443\u0449\u0435\u043d\u043e
-state.Starting=\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f
-state.Stopped=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e
-state.Stopping=\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c
-state.Suspended=\u041f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e
-ui.listView.filters.all=\u0412\u0441\u0435
-ui.listView.filters.mine=\u041c\u043e\u0438
diff --git a/client/WEB-INF/classes/resources/messages_zh_CN.properties b/client/WEB-INF/classes/resources/messages_zh_CN.properties
deleted file mode 100644
index 7b2419b..0000000
--- a/client/WEB-INF/classes/resources/messages_zh_CN.properties
+++ /dev/null
@@ -1,2194 +0,0 @@
-# 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.
-
-changed.item.properties=\u66f4\u6539\u9879\u76ee\u5c5e\u6027
-confirm.enable.s3=\u8bf7\u586b\u5199\u4ee5\u4e0b\u4fe1\u606f\u4ee5\u542f\u7528\u5bf9 S3 \u652f\u6301\u7684\u4e8c\u7ea7\u5b58\u50a8\u7684\u652f\u6301
-confirm.enable.swift=\u8bf7\u586b\u5199\u4ee5\u4e0b\u4fe1\u606f\u4ee5\u542f\u7528\u5bf9 SWIFT \u7684\u652f\u6301
-error.could.not.change.your.password.because.ldap.is.enabled=\u9519\u8bef\u3002LDAP \u5904\u4e8e\u542f\u7528\u72b6\u6001\uff0c\u65e0\u6cd5\u66f4\u6539\u60a8\u7684\u5bc6\u7801\u3002
-error.could.not.enable.zone=\u65e0\u6cd5\u542f\u7528\u8d44\u6e90\u57df
-error.installWizard.message=\u51fa\u73b0\u95ee\u9898\uff1b\u8bf7\u8fd4\u56de\u5e76\u66f4\u6b63\u4efb\u4f55\u9519\u8bef
-error.invalid.username.password=\u7528\u6237\u540d\u6216\u5bc6\u7801\u65e0\u6548
-error.login=\u60a8\u7684\u7528\u6237\u540d/\u5bc6\u7801\u4e0e\u6211\u4eec\u7684\u8bb0\u5f55\u4e0d\u4e00\u81f4\u3002
-error.menu.select=\u6b63\u5728\u9009\u62e9\u9879\u76ee\uff0c\u65e0\u6cd5\u6267\u884c\u64cd\u4f5c\u3002
-error.mgmt.server.inaccessible=\u65e0\u6cd5\u8bbf\u95ee\u7ba1\u7406\u670d\u52a1\u5668\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002
-error.password.not.match=\u5bc6\u7801\u5b57\u6bb5\u4e0d\u4e00\u81f4
-error.please.specify.physical.network.tags=\u7f51\u7edc\u65b9\u6848\u5728\u60a8\u4e3a\u6b64\u7269\u7406\u7f51\u7edc\u6307\u5b9a\u6807\u7b7e\u4e4b\u540e\u624d\u53ef\u7528\u3002
-error.session.expired=\u60a8\u7684\u4f1a\u8bdd\u5df2\u8fc7\u671f\u3002
-error.something.went.wrong.please.correct.the.following=\u51fa\u73b0\u95ee\u9898\uff1b\u8bf7\u66f4\u6b63\u4ee5\u4e0b\u5404\u9879
-error.unable.to.reach.management.server=\u65e0\u6cd5\u8bbf\u95ee\u7ba1\u7406\u670d\u52a1\u5668
-error.unresolved.internet.name=\u65e0\u6cd5\u89e3\u6790\u60a8\u7684 Internet \u540d\u79f0\u3002
-force.delete.domain.warning=\u8b66\u544a\: \u9009\u62e9\u6b64\u9009\u9879\u5c06\u5bfc\u81f4\u5220\u9664\u6240\u6709\u5b50\u57df\u4ee5\u53ca\u6240\u6709\u76f8\u5173\u8054\u7684\u5e10\u6237\u53ca\u5176\u8d44\u6e90\u3002
-force.delete=\u5f3a\u5236\u5220\u9664
-force.remove.host.warning=\u8b66\u544a\: \u9009\u62e9\u6b64\u9009\u9879\u5c06\u5bfc\u81f4 CloudStack \u5728\u4ece\u7fa4\u96c6\u4e2d\u79fb\u9664\u6b64\u4e3b\u673a\u4e4b\u524d\uff0c\u5f3a\u5236\u505c\u6b62\u6240\u6709\u6b63\u5728\u8fd0\u884c\u7684\u865a\u62df\u673a\u3002
-force.remove=\u5f3a\u5236\u79fb\u9664
-force.stop.instance.warning=\u8b66\u544a\: \u9664\u975e\u4e07\u4e0d\u5f97\u5df2\uff0c\u5426\u5219\u4e0d\u5e94\u5f3a\u5236\u505c\u6b62\u6b64\u5b9e\u4f8b\u3002\u505c\u6b62\u6b64\u5b9e\u4f8b\u53ef\u80fd\u4f1a\u5bfc\u81f4\u6570\u636e\u4e22\u5931\u4ee5\u53ca\u81f4\u4f7f\u865a\u62df\u673a\u72b6\u6001\u4e0d\u4e00\u81f4\u3002
-force.stop=\u5f3a\u5236\u505c\u6b62
-hint.no.host.tags=\u672a\u627e\u5230\u4e3b\u673a\u6807\u7b7e
-hint.no.storage.tags=\u672a\u627e\u5230\u5b58\u50a8\u6807\u7b7e
-hint.type.part.host.tag=\u4e3b\u673a\u6807\u7b7e\u7c7b\u578b
-hint.type.part.storage.tag=\u5b58\u50a8\u6807\u8bb0\u7c7b\u578b
-ICMP.code=ICMP \u4ee3\u7801
-ICMP.type=ICMP \u7c7b\u578b
-image.directory=\u56fe\u7247\u76ee\u5f55
-inline=\u5185\u8054
-instances.actions.reboot.label=\u91cd\u65b0\u542f\u52a8\u5b9e\u4f8b
-label.about.app=\u5173\u4e8e CloudStack
-label.about=\u5173\u4e8e
-label.accept.project.invitation=\u63a5\u53d7\u9879\u76ee\u9080\u8bf7
-label.account.and.security.group=\u5e10\u6237\u3001\u5b89\u5168\u7ec4
-label.account.details=\u8d26\u53f7\u8be6\u60c5
-label.account.id=\u5e10\u6237 ID
-label.account.lower=\u5e10\u6237
-label.account.name=\u5e10\u6237\u540d\u79f0
-label.account.specific=\u5e10\u6237\u4e13\u7528
-label.accounts=\u5e10\u6237
-label.account.type=\u5e10\u53f7\u7c7b\u578b
-label.account=\u5e10\u6237
-label.acl=ACL
-label.acl.id=ACL ID
-label.acl.list.rules=ACL\u5217\u8868\u7b56\u7565
-label.acl.name=ACL \u540d\u79f0
-label.acl.replaced=ACL \u5df2\u66ff\u6362
-label.acquire.new.ip=\u83b7\u53d6\u65b0 IP
-label.acquire.new.secondary.ip=\u83b7\u53d6\u65b0\u4e8c\u7ea7 IP
-label.action.attach.disk.processing=\u6b63\u5728\u9644\u52a0\u78c1\u76d8...
-label.action.attach.disk=\u9644\u52a0\u78c1\u76d8
-label.action.attach.iso.processing=\u6b63\u5728\u9644\u52a0 ISO...
-label.action.attach.iso=\u9644\u52a0 ISO
-label.action.cancel.maintenance.mode.processing=\u6b63\u5728\u53d6\u6d88\u7ef4\u62a4\u6a21\u5f0f...
-label.action.cancel.maintenance.mode=\u53d6\u6d88\u7ef4\u62a4\u6a21\u5f0f
-label.action.change.password=\u66f4\u6539\u5bc6\u7801
-label.action.change.service.processing=\u6b63\u5728\u66f4\u6539\u670d\u52a1...
-label.action.change.service=\u66f4\u6539\u670d\u52a1
-label.action.configure.samlauthorization=\u914d\u7f6e SAML SSO \u8ba4\u8bc1
-label.action.copy.ISO.processing=\u6b63\u5728\u590d\u5236ISO\u955c\u50cf
-label.action.copy.ISO=\u590d\u5236 ISO
-label.action.copy.template.processing=\u6b63\u5728\u590d\u5236\u6a21\u677f
-label.action.copy.template=\u590d\u5236\u6a21\u677f
-label.action.create.template.from.vm=\u57fa\u4e8e VM \u521b\u5efa\u6a21\u677f
-label.action.create.template.from.volume=\u57fa\u4e8e\u5377\u521b\u5efa\u6a21\u677f
-label.action.create.template.processing=\u6b63\u5728\u521b\u5efa\u6a21\u677f...
-label.action.create.template=\u521b\u5efa\u6a21\u677f
-label.action.create.vm.processing=\u6b63\u5728\u521b\u5efa VM...
-label.action.create.vm=\u521b\u5efa VM
-label.action.create.volume.processing=\u6b63\u5728\u521b\u5efa\u5377...
-label.action.create.volume=\u521b\u5efa\u5377
-label.action.delete.account.processing=\u6b63\u5728\u5220\u9664\u5e10\u6237...
-label.action.delete.account=\u5220\u9664\u5e10\u6237
-label.action.delete.cluster.processing=\u6b63\u5728\u5220\u9664\u7fa4\u96c6...
-label.action.delete.cluster=\u5220\u9664\u7fa4\u96c6
-label.action.delete.disk.offering.processing=\u6b63\u5728\u5220\u9664\u78c1\u76d8\u65b9\u6848...
-label.action.delete.disk.offering=\u5220\u9664\u78c1\u76d8\u65b9\u6848
-label.action.delete.domain.processing=\u6b63\u5728\u5220\u9664\u57df...
-label.action.delete.domain=\u5220\u9664\u57df
-label.action.delete.firewall.processing=\u6b63\u5728\u5220\u9664\u9632\u706b\u5899...
-label.action.delete.firewall=\u5220\u9664\u9632\u706b\u5899\u89c4\u5219
-label.action.delete.ingress.rule.processing=\u6b63\u5728\u5220\u9664\u5165\u53e3\u89c4\u5219...
-label.action.delete.ingress.rule=\u5220\u9664\u5165\u53e3\u89c4\u5219
-label.action.delete.IP.range.processing=\u6b63\u5728\u5220\u9664 IP \u8303\u56f4...
-label.action.delete.IP.range=\u5220\u9664 IP \u8303\u56f4
-label.action.delete.ISO.processing=\u6b63\u5728\u5220\u9664 ISO...
-label.action.delete.ISO=\u5220\u9664 ISO
-label.action.delete.load.balancer.processing=\u6b63\u5728\u5220\u9664\u8d1f\u8f7d\u5e73\u8861\u5668...
-label.action.delete.load.balancer=\u5220\u9664\u8d1f\u8f7d\u5e73\u8861\u5668\u89c4\u5219
-label.action.delete.network.processing=\u6b63\u5728\u5220\u9664\u7f51\u7edc...
-label.action.delete.network=\u5220\u9664\u7f51\u7edc
-label.action.delete.nexusVswitch=\u5220\u9664 Nexus 1000v
-label.action.delete.nic=\u79fb\u9664 NIC
-label.action.delete.physical.network=\u5220\u9664\u7269\u7406\u7f51\u7edc
-label.action.delete.pod.processing=\u6b63\u5728\u5220\u9664\u63d0\u4f9b\u70b9...
-label.action.delete.pod=\u5220\u9664\u63d0\u4f9b\u70b9
-label.action.delete.primary.storage.processing=\u6b63\u5728\u5220\u9664\u4e3b\u5b58\u50a8...
-label.action.delete.primary.storage=\u5220\u9664\u4e3b\u5b58\u50a8
-label.action.delete.secondary.storage.processing=\u6b63\u5728\u5220\u9664\u4e8c\u7ea7\u5b58\u50a8...
-label.action.delete.secondary.storage=\u5220\u9664\u4e8c\u7ea7\u5b58\u50a8
-label.action.delete.security.group.processing=\u6b63\u5728\u5220\u9664\u5b89\u5168\u7ec4...
-label.action.delete.security.group=\u5220\u9664\u5b89\u5168\u7ec4
-label.action.delete.service.offering.processing=\u6b63\u5728\u5220\u9664\u670d\u52a1\u65b9\u6848...
-label.action.delete.service.offering=\u5220\u9664\u670d\u52a1\u65b9\u6848
-label.action.delete.snapshot.processing=\u6b63\u5728\u5220\u9664\u5feb\u7167...
-label.action.delete.snapshot=\u5220\u9664\u5feb\u7167
-label.action.delete.system.service.offering=\u5220\u9664\u7cfb\u7edf\u670d\u52a1\u65b9\u6848
-label.action.delete.template.processing=\u6b63\u5728\u5220\u9664\u6a21\u677f...
-label.action.delete.template=\u5220\u9664\u6a21\u677f
-label.action.delete.user.processing=\u6b63\u5728\u5220\u9664\u7528\u6237...
-label.action.delete.user=\u5220\u9664\u7528\u6237
-label.action.delete.volume.processing=\u6b63\u5728\u5220\u9664\u5377...
-label.action.delete.volume=\u5220\u9664\u5377
-label.action.delete.zone.processing=\u6b63\u5728\u5220\u9664\u8d44\u6e90\u57df...
-label.action.delete.zone=\u5220\u9664\u8d44\u6e90\u57df
-label.action.destroy.instance.processing=\u6b63\u5728\u9500\u6bc1\u5b9e\u4f8b...
-label.action.destroy.instance=\u9500\u6bc1\u5b9e\u4f8b
-label.action.destroy.systemvm.processing=\u6b63\u5728\u9500\u6bc1\u7cfb\u7edf VM...
-label.action.destroy.systemvm=\u9500\u6bc1\u7cfb\u7edf VM
-label.action.detach.disk.processing=\u6b63\u5728\u53d6\u6d88\u9644\u52a0\u78c1\u76d8...
-label.action.detach.disk=\u53d6\u6d88\u9644\u52a0\u78c1\u76d8
-label.action.detach.iso.processing=\u6b63\u5728\u53d6\u6d88\u9644\u52a0 ISO...
-label.action.detach.iso=\u53d6\u6d88\u9644\u52a0 ISO
-label.action.disable.account.processing=\u6b63\u5728\u7981\u7528\u5e10\u6237...
-label.action.disable.account=\u7981\u7528\u5e10\u6237
-label.action.disable.cluster.processing=\u6b63\u5728\u7981\u7528\u7fa4\u96c6...
-label.action.disable.cluster=\u7981\u7528\u7fa4\u96c6
-label.action.disable.nexusVswitch=\u7981\u7528 Nexus 1000v
-label.action.disable.physical.network=\u7981\u7528\u7269\u7406\u7f51\u7edc
-label.action.disable.pod.processing=\u6b63\u5728\u7981\u7528\u63d0\u4f9b\u70b9...
-label.action.disable.pod=\u7981\u7528\u63d0\u4f9b\u70b9
-label.action.disable.static.NAT.processing=\u6b63\u5728\u7981\u7528\u9759\u6001 NAT...
-label.action.disable.static.NAT=\u7981\u7528\u9759\u6001 NAT
-label.action.disable.user.processing=\u6b63\u5728\u7981\u7528\u7528\u6237...
-label.action.disable.user=\u7981\u7528\u7528\u6237
-label.action.disable.zone.processing=\u6b63\u5728\u7981\u7528\u8d44\u6e90\u57df...
-label.action.disable.zone=\u7981\u7528\u8d44\u6e90\u57df
-label.action.download.ISO=\u4e0b\u8f7d ISO
-label.action.download.template=\u4e0b\u8f7d\u6a21\u677f
-label.action.download.volume.processing=\u6b63\u5728\u4e0b\u8f7d\u5377...
-label.action.download.volume=\u4e0b\u8f7d\u5377
-label.action.edit.account=\u7f16\u8f91\u5e10\u6237
-label.action.edit.disk.offering=\u7f16\u8f91\u78c1\u76d8\u65b9\u6848
-label.action.edit.domain=\u7f16\u8f91\u57df
-label.action.edit.global.setting=\u7f16\u8f91\u5168\u5c40\u8bbe\u7f6e
-label.action.edit.host=\u7f16\u8f91\u4e3b\u673a
-label.action.edit.instance=\u7f16\u8f91\u5b9e\u4f8b
-label.action.edit.ISO=\u7f16\u8f91 ISO
-label.action.edit.network.offering=\u7f16\u8f91\u7f51\u7edc\u65b9\u6848
-label.action.edit.network.processing=\u6b63\u5728\u7f16\u8f91\u7f51\u7edc...
-label.action.edit.network=\u7f16\u8f91\u7f51\u7edc
-label.action.edit.pod=\u7f16\u8f91\u63d0\u4f9b\u70b9
-label.action.edit.primary.storage=\u7f16\u8f91\u4e3b\u5b58\u50a8
-label.action.edit.resource.limits=\u7f16\u8f91\u8d44\u6e90\u9650\u5236
-label.action.edit.service.offering=\u7f16\u8f91\u670d\u52a1\u65b9\u6848
-label.action.edit.template=\u7f16\u8f91\u6a21\u677f
-label.action.edit.user=\u7f16\u8f91\u7528\u6237
-label.action.edit.zone=\u7f16\u8f91\u8d44\u6e90\u57df
-label.action.enable.account.processing=\u6b63\u5728\u542f\u7528\u5e10\u6237...
-label.action.enable.account=\u542f\u7528\u5e10\u6237
-label.action.enable.cluster.processing=\u6b63\u5728\u542f\u7528\u7fa4\u96c6...
-label.action.enable.cluster=\u542f\u7528\u7fa4\u96c6
-label.action.enable.maintenance.mode.processing=\u6b63\u5728\u542f\u7528\u7ef4\u62a4\u6a21\u5f0f...
-label.action.enable.maintenance.mode=\u542f\u7528\u7ef4\u62a4\u6a21\u5f0f
-label.action.enable.nexusVswitch=\u542f\u7528 Nexus 1000v
-label.action.enable.physical.network=\u542f\u7528\u7269\u7406\u7f51\u7edc
-label.action.enable.pod.processing=\u6b63\u5728\u542f\u7528\u63d0\u4f9b\u70b9...
-label.action.enable.pod=\u542f\u7528\u63d0\u4f9b\u70b9
-label.action.enable.static.NAT.processing=\u6b63\u5728\u542f\u7528\u9759\u6001 NAT...
-label.action.enable.static.NAT=\u542f\u7528\u9759\u6001 NAT
-label.action.enable.user.processing=\u6b63\u5728\u542f\u7528\u7528\u6237...
-label.action.enable.user=\u542f\u7528\u7528\u6237
-label.action.enable.zone.processing=\u6b63\u5728\u542f\u7528\u8d44\u6e90\u57df...
-label.action.enable.zone=\u542f\u7528\u8d44\u6e90\u57df
-label.action.expunge.instance.processing=\u6b63\u5728\u5220\u9664\u5b9e\u4f8b...
-label.action.expunge.instance=\u5220\u9664\u5b9e\u4f8b
-label.action.force.reconnect.processing=\u6b63\u5728\u91cd\u65b0\u8fde\u63a5...
-label.action.force.reconnect=\u5f3a\u5236\u91cd\u65b0\u8fde\u63a5
-label.action.generate.keys.processing=\u6b63\u5728\u751f\u6210\u5bc6\u94a5...
-label.action.generate.keys=\u751f\u6210\u5bc6\u94a5
-label.action.list.nexusVswitch=\u5217\u51fa Nexus 1000v
-label.action.lock.account.processing=\u6b63\u5728\u9501\u5b9a\u5e10\u6237...
-label.action.lock.account=\u9501\u5b9a\u5e10\u6237
-label.action.manage.cluster.processing=\u6b63\u5728\u6258\u7ba1\u7fa4\u96c6...
-label.action.manage.cluster=\u6258\u7ba1\u7fa4\u96c6
-label.action.migrate.instance.processing=\u6b63\u5728\u8fc1\u79fb\u5b9e\u4f8b...
-label.action.migrate.instance=\u8fc1\u79fb\u5b9e\u4f8b
-label.action.migrate.router.processing=\u6b63\u5728\u8fc1\u79fb\u8def\u7531\u5668...
-label.action.migrate.router=\u8fc1\u79fb\u8def\u7531\u5668
-label.action.migrate.systemvm.processing=\u6b63\u5728\u8fc1\u79fb\u7cfb\u7edf VM...
-label.action.migrate.systemvm=\u8fc1\u79fb\u7cfb\u7edf VM
-label.action.reboot.instance.processing=\u6b63\u5728\u91cd\u65b0\u542f\u52a8\u5b9e\u4f8b...
-label.action.reboot.instance=\u91cd\u65b0\u542f\u52a8\u5b9e\u4f8b
-label.action.reboot.router.processing=\u6b63\u5728\u91cd\u65b0\u542f\u52a8\u8def\u7531\u5668...
-label.action.reboot.router=\u91cd\u65b0\u542f\u52a8\u8def\u7531\u5668
-label.action.reboot.systemvm.processing=\u6b63\u5728\u91cd\u65b0\u542f\u52a8\u7cfb\u7edf VM...
-label.action.reboot.systemvm=\u91cd\u65b0\u542f\u52a8\u7cfb\u7edf VM
-label.action.recurring.snapshot=\u91cd\u73b0\u5feb\u7167
-label.action.register.iso=\u6ce8\u518c ISO
-label.action.register.template=\u4f7f\u7528URL\u6ce8\u518c\u6a21\u677f
-label.action.release.ip.processing=\u6b63\u5728\u91ca\u653e IP...
-label.action.release.ip=\u91ca\u653e IP
-label.action.remove.host.processing=\u6b63\u5728\u5220\u9664\u4e3b\u673a...
-label.action.remove.host=\u5220\u9664\u4e3b\u673a
-label.action.reset.password.processing=\u6b63\u5728\u91cd\u7f6e\u5bc6\u7801...
-label.action.reset.password=\u91cd\u7f6e\u5bc6\u7801
-label.action.resize.volume.processing=\u6b63\u5728\u8c03\u6574\u5377\u5927\u5c0f....
-label.action.resize.volume=\u8c03\u6574\u5377\u5927\u5c0f
-label.action.resource.limits=\u8d44\u6e90\u9650\u5236
-label.action.restore.instance.processing=\u6b63\u5728\u8fd8\u539f\u5b9e\u4f8b...
-label.action.restore.instance=\u8fd8\u539f\u5b9e\u4f8b
-label.action.revert.snapshot.processing=\u6b63\u5728\u8fd8\u539f\u5230\u5feb\u7167...
-label.action.revert.snapshot=\u8fd8\u539f\u5230\u5feb\u7167
-label.action.start.instance.processing=\u6b63\u5728\u542f\u52a8\u5b9e\u4f8b...
-label.action.start.instance=\u542f\u52a8\u5b9e\u4f8b
-label.action.start.router.processing=\u6b63\u5728\u542f\u52a8\u8def\u7531\u5668...
-label.action.start.router=\u542f\u52a8\u8def\u7531\u5668
-label.action.start.systemvm.processing=\u6b63\u5728\u542f\u52a8\u7cfb\u7edf VM...
-label.action.start.systemvm=\u542f\u52a8\u7cfb\u7edf VM
-label.action.stop.instance.processing=\u6b63\u5728\u505c\u6b62\u5b9e\u4f8b...
-label.action.stop.instance=\u505c\u6b62\u5b9e\u4f8b
-label.action.stop.router.processing=\u6b63\u5728\u505c\u6b62\u8def\u7531\u5668...
-label.action.stop.router=\u505c\u6b62\u8def\u7531\u5668
-label.action.stop.systemvm.processing=\u6b63\u5728\u505c\u6b62\u7cfb\u7edf VM...
-label.action.stop.systemvm=\u505c\u6b62\u7cfb\u7edf VM
-label.actions=\u64cd\u4f5c
-label.action.take.snapshot.processing=\u6b63\u5728\u521b\u5efa\u5feb\u7167...
-label.action.take.snapshot=\u521b\u5efa\u5feb\u7167
-label.action=\u64cd\u4f5c
-label.action.unmanage.cluster.processing=\u6b63\u5728\u53d6\u6d88\u6258\u7ba1\u7fa4\u96c6...
-label.action.unmanage.cluster=\u53d6\u6d88\u6258\u7ba1\u7fa4\u96c6
-label.action.update.OS.preference.processing=\u6b63\u5728\u66f4\u65b0\u64cd\u4f5c\u7cfb\u7edf\u9996\u9009\u9879...
-label.action.update.OS.preference=\u66f4\u65b0\u64cd\u4f5c\u7cfb\u7edf\u9996\u9009\u9879
-label.action.update.resource.count.processing=\u6b63\u5728\u66f4\u65b0\u8d44\u6e90\u6570\u91cf...
-label.action.update.resource.count=\u66f4\u65b0\u8d44\u6e90\u6570\u91cf
-label.action.vmsnapshot.create=\u521b\u5efa VM \u5feb\u7167
-label.action.vmsnapshot.delete=\u5220\u9664 VM \u5feb\u7167
-label.action.vmsnapshot.revert=\u8fd8\u539f\u5230 VM \u5feb\u7167
-label.activate.project=\u6fc0\u6d3b\u9879\u76ee
-label.active.sessions=\u6d3b\u52a8\u4f1a\u8bdd
-label.add.accounts.to=\u6dfb\u52a0\u5e10\u6237\u81f3
-label.add.accounts=\u6dfb\u52a0\u5e10\u6237
-label.add.account.to.project=\u5411\u9879\u76ee\u4e2d\u6dfb\u52a0\u5e10\u6237
-label.add.account=\u6dfb\u52a0\u5e10\u6237
-label.add.acl.list=\u6dfb\u52a0 ACL \u5217\u8868
-label.add.ACL=\u6dfb\u52a0 ACL
-label.add.affinity.group=\u6dfb\u52a0\u65b0\u5173\u8054\u6027\u7ec4
-label.add.baremetal.dhcp.device=\u6dfb\u52a0\u88f8\u673a DHCP \u8bbe\u5907
-label.add.baremetal.rack.configuration=\u6dfb\u52a0 Baremetal Rack \u914d\u7f6e
-label.add.BigSwitchBcf.device=\u6dfb\u52a0 BigSwitch BCF \u63a7\u5236\u5668
-label.add.BrocadeVcs.device=\u6dfb\u52a0 Brocade Vcs \u4ea4\u6362\u673a
-label.add.by.cidr=\u6309 CIDR \u6dfb\u52a0
-label.add.by.group=\u6309\u7ec4\u6dfb\u52a0
-label.add.by=\u6dfb\u52a0\u65b9\u5f0f
-label.add.ciscoASA1000v=\u6dfb\u52a0 CiscoASA1000v \u8d44\u6e90
-label.add.cluster=\u6dfb\u52a0\u7fa4\u96c6
-label.add.compute.offering=\u6dfb\u52a0\u8ba1\u7b97\u65b9\u6848
-label.add.direct.iprange=\u6dfb\u52a0\u76f4\u63a5 IP \u8303\u56f4
-label.add.disk.offering=\u6dfb\u52a0\u78c1\u76d8\u65b9\u6848
-label.add.domain=\u6dfb\u52a0\u57df
-label.added.brocade.vcs.switch=\u5df2\u6dfb\u52a0\u65b0 Brocade Vcs \u4ea4\u6362\u673a
-label.added.network.offering=\u5df2\u6dfb\u52a0\u7f51\u7edc\u65b9\u6848
-label.added.new.bigswitch.bcf.controller=\u6dfb\u52a0\u65b0\u7684 BigSwitch BCF \u63a7\u5236\u5668
-label.added.nicira.nvp.controller=\u5df2\u6dfb\u52a0\u65b0 Nicira NVP \u63a7\u5236\u5668
-label.add.egress.rule=\u6dfb\u52a0\u51fa\u53e3\u89c4\u5219
-label.addes.new.f5=\u5df2\u6dfb\u52a0\u65b0 F5
-label.add.F5.device=\u6dfb\u52a0 F5 \u8bbe\u5907
-label.add.firewall=\u6dfb\u52a0\u9632\u706b\u5899\u89c4\u5219
-label.add.globo.dns=\u6dfb\u52a0\u5168\u5c40DNS
-label.add.gslb=\u6dfb\u52a0 GSLB
-label.add.guest.network=\u6dfb\u52a0\u6765\u5bbe\u7f51\u7edc
-label.add.host=\u6dfb\u52a0\u4e3b\u673a
-label.adding.cluster=\u6b63\u5728\u6dfb\u52a0\u7fa4\u96c6
-label.adding.failed=\u6dfb\u52a0\u5931\u8d25
-label.adding.pod=\u6b63\u5728\u6dfb\u52a0\u63d0\u4f9b\u70b9
-label.adding.processing=\u6b63\u5728\u6dfb\u52a0...
-label.add.ingress.rule=\u6dfb\u52a0\u5165\u53e3\u89c4\u5219
-label.adding.succeeded=\u5df2\u6210\u529f\u6dfb\u52a0
-label.adding=\u6b63\u5728\u6dfb\u52a0
-label.adding.user=\u6b63\u5728\u6dfb\u52a0\u7528\u6237
-label.adding.zone=\u6b63\u5728\u6dfb\u52a0\u8d44\u6e90\u57df
-label.add.intermediate.certificate=\u6dfb\u52a0\u4e2d\u95f4\u8bc1\u4e66
-label.add.internal.lb=\u6dfb\u52a0\u5185\u90e8\u8d1f\u8f7d\u5e73\u8861\u5668
-label.add.ip.range=\u6dfb\u52a0 IP \u8303\u56f4
-label.add.isolated.guest.network=\u6dfb\u52a0\u9694\u79bb\u7684\u6765\u5bbe\u7f51\u7edc
-label.add.isolated.guest.network.with.sourcenat=\u6dfb\u52a0\u9694\u79bb\u7684\u6765\u5bbe\u7f51\u7edc\u5e76\u542f\u7528 SourceNat
-label.add.isolated.network=\u6dfb\u52a0\u9694\u79bb\u7f51\u7edc
-label.additional.networks=\u5176\u4ed6\u7f51\u7edc
-label.add.ldap.account=\u6dfb\u52a0 LDAP \u8d26\u6237
-label.add.LDAP.account=\u6dfb\u52a0LDAP\u8d26\u6237
-label.add.list.name=ACL \u5217\u8868\u540d\u79f0
-label.add.load.balancer=\u6dfb\u52a0\u8d1f\u8f7d\u5e73\u8861\u5668
-label.add.more=\u6dfb\u52a0\u66f4\u591a
-label.add.netScaler.device=\u6dfb\u52a0 Netscaler \u8bbe\u5907
-label.add.network.acl.list=\u6dfb\u52a0\u7f51\u7edc ACL \u5217\u8868
-label.add.network.ACL=\u6dfb\u52a0\u7f51\u7edc ACL
-label.add.network.device=\u6dfb\u52a0\u7f51\u7edc\u8bbe\u5907
-label.add.network.offering=\u6dfb\u52a0\u7f51\u7edc\u65b9\u6848
-label.add.network=\u6dfb\u52a0\u7f51\u7edc
-label.add.new.F5=\u6dfb\u52a0\u65b0 F5
-label.add.new.gateway=\u6dfb\u52a0\u65b0\u7f51\u5173
-label.add.new.NetScaler=\u6dfb\u52a0\u65b0 NetScaler
-label.add.new.PA=\u6dfb\u52a0\u65b0 Palo Alto
-label.add.new.SRX=\u6dfb\u52a0\u65b0 SRX
-label.add.new.tier=\u6dfb\u52a0\u65b0\u5c42
-label.add.nfs.secondary.staging.store=\u6dfb\u52a0 NFS \u4e8c\u7ea7\u6682\u5b58\u5b58\u50a8
-label.add.NiciraNvp.device=\u6dfb\u52a0 Nvp \u63a7\u5236\u5668
-label.add.NuageVsp.device=\u6dfb\u52a0 Nuage \u865a\u62df\u670d\u52a1\u76ee\u5f55(VSD)
-label.add.OpenDaylight.device=\u6dfb\u52a0 OpenDaylight \u63a7\u5236\u5668
-label.add.PA.device=\u6dfb\u52a0 Palo Alto \u8bbe\u5907
-label.add.physical.network=\u6dfb\u52a0\u7269\u7406\u7f51\u7edc
-label.add.pod=\u6dfb\u52a0\u63d0\u4f9b\u70b9
-label.add.portable.ip.range=\u6dfb\u52a0\u53ef\u79fb\u690d IP \u8303\u56f4
-label.add.port.forwarding.rule=\u6dfb\u52a0\u7aef\u53e3\u8f6c\u53d1\u89c4\u5219
-label.add.primary.storage=\u6dfb\u52a0\u4e3b\u5b58\u50a8
-label.add.private.gateway=\u6dfb\u52a0\u79c1\u6709\u7f51\u5173
-label.add.region=\u6dfb\u52a0\u5730\u7406\u533a\u57df
-label.add.resources=\u6dfb\u52a0\u8d44\u6e90
-label.add.route=\u6dfb\u52a0\u8def\u7531
-label.add.rule=\u6dfb\u52a0\u89c4\u5219
-label.add.secondary.storage=\u6dfb\u52a0\u4e8c\u7ea7\u5b58\u50a8
-label.add.security.group=\u6dfb\u52a0\u5b89\u5168\u7ec4
-label.add.service.offering=\u6dfb\u52a0\u670d\u52a1\u65b9\u6848
-label.add.SRX.device=\u6dfb\u52a0 SRX \u8bbe\u5907
-label.add.static.nat.rule=\u6dfb\u52a0\u9759\u6001 NAT \u89c4\u5219
-label.add.static.route=\u6dfb\u52a0\u9759\u6001\u8def\u7531
-label.add.system.service.offering=\u6dfb\u52a0\u7cfb\u7edf\u670d\u52a1\u65b9\u6848
-label.add.template=\u6dfb\u52a0\u6a21\u677f
-label.add.to.group=\u6dfb\u52a0\u5230\u7ec4
-label.add=\u6dfb\u52a0
-label.add.ucs.manager=\u6dfb\u52a0 UCS \u7ba1\u7406\u5668
-label.add.userdata=\u7528\u6237\u6570\u636e
-label.add.user=\u6dfb\u52a0\u7528\u6237
-label.add.vlan=\u6dfb\u52a0 VLAN
-label.add.vms.to.lb=\u5411\u8d1f\u8f7d\u5e73\u8861\u5668\u89c4\u5219\u4e2d\u6dfb\u52a0 VM
-label.add.vms=\u6dfb\u52a0 VM
-label.add.VM.to.tier=\u5411\u5c42\u4e2d\u6dfb\u52a0 VM
-label.add.vm=\u6dfb\u52a0 VM
-label.add.vmware.datacenter=\u6dfb\u52a0 VMware \u6570\u636e\u4e2d\u5fc3
-label.add.vnmc.device=\u6dfb\u52a0 VNMC \u8bbe\u5907
-label.add.vnmc.provider=\u6dfb\u52a0 VNMC \u63d0\u4f9b\u7a0b\u5e8f
-label.add.volume=\u6dfb\u52a0\u5377
-label.add.vpc.offering=\u6dfb\u52a0 VPC \u65b9\u6848
-label.add.vpc=\u6dfb\u52a0 VPC
-label.add.vpn.customer.gateway=\u6dfb\u52a0 VPN \u5ba2\u6237\u7f51\u5173
-label.add.VPN.gateway=\u6dfb\u52a0 VPN \u7f51\u5173
-label.add.vpn.user=\u6dfb\u52a0 VPN \u7528\u6237
-label.add.vxlan=\u6dfb\u52a0 VXLAN
-label.add.zone=\u6dfb\u52a0\u8d44\u6e90\u57df
-label.admin.accounts=\u7ba1\u7406\u5458\u5e10\u6237
-label.admin=\u7ba1\u7406\u5458
-label.advanced.mode=\u9ad8\u7ea7\u6a21\u5f0f
-label.advanced.search=\u9ad8\u7ea7\u641c\u7d22
-label.advanced=\u9ad8\u7ea7
-label.affinity.groups=\u5173\u8054\u6027\u7ec4
-label.affinity.group=\u5173\u8054\u6027\u7ec4
-label.affinity=\u5173\u8054\u6027
-label.agent.password=\u4ee3\u7406\u5bc6\u7801
-label.agent.port=\u4ee3\u7406\u7aef\u53e3
-label.agent.state=\u4ee3\u7406\u72b6\u6001
-label.agent.username=\u4ee3\u7406\u7528\u6237\u540d
-label.agree=\u540c\u610f
-label.alert.archived=\u8b66\u62a5\u5df2\u5b58\u6863
-label.alert.deleted=\u8b66\u62a5\u5df2\u5220\u9664
-label.alert.details=\u8b66\u62a5\u8be6\u7ec6\u4fe1\u606f
-label.alert=\u8b66\u62a5
-label.algorithm=\u7b97\u6cd5
-label.allocated=\u5df2\u5206\u914d
-label.allocation.state=\u5206\u914d\u72b6\u6001
-label.allow=\u5141\u8bb8
-label.anti.affinity.groups=\u53cd\u5173\u8054\u6027\u7ec4
-label.anti.affinity.group=\u53cd\u5173\u8054\u6027\u7ec4
-label.anti.affinity=\u53cd\u5173\u8054\u6027
-label.api.key=API \u5bc6\u94a5
-label.api.version=API \u7248\u672c
-label.apply=\u5e94\u7528
-label.app.name=CloudStack
-label.archive.alerts=\u5b58\u6863\u8b66\u62a5
-label.archive.events=\u5b58\u6863\u4e8b\u4ef6
-label.archive=\u5b58\u6863
-label.assigned.vms=\u5df2\u5206\u914d\u7684 VM
-label.assign.instance.another=\u5c06\u5b9e\u4f8b\u5206\u914d\u7ed9\u5176\u4ed6\u5e10\u6237
-label.assign.to.load.balancer=\u6b63\u5728\u5c06\u5b9e\u4f8b\u5206\u914d\u7ed9\u8d1f\u8f7d\u5e73\u8861\u5668
-label.assign=\u5206\u914d
-label.assign.vms=\u5206\u914d\u5b9e\u4f8b
-label.associated.network.id=\u5df2\u5173\u8054\u7f51\u7edc ID
-label.associated.network=\u5173\u8054\u7f51\u7edc
-label.associated.profile=\u5df2\u5173\u8054\u914d\u7f6e\u6587\u4ef6
-label.associate.public.ip=\u5173\u8054\u516c\u7528 IP
-label.attached.iso=\u5df2\u9644\u52a0 ISO
-label.author.email=\u4f5c\u8005\u7535\u5b50\u90ae\u4ef6
-label.author.name=\u4f5c\u8005\u59d3\u540d
-label.autoscale.configuration.wizard=\u81ea\u52a8\u6269\u5c55\u914d\u7f6e\u5411\u5bfc
-label.autoscale=\u81ea\u52a8\u6269\u5c55
-label.availability=\u53ef\u7528\u6027
-label.availabilityZone=\u53ef\u7528\u533a\u57df
-label.availability.zone=\u53ef\u7528\u8d44\u6e90\u57df
-label.available.public.ips=\u53ef\u7528\u516c\u7528 IP \u5730\u5740
-label.available=\u53ef\u7528
-label.back=\u540e\u9000
-label.bandwidth=\u5e26\u5bbd
-label.baremetal.dhcp.devices=\u88f8\u673a DHCP \u8bbe\u5907
-label.baremetal.dhcp.provider=\u88f8\u673a DHCP \u63d0\u4f9b\u7a0b\u5e8f
-label.baremetal.pxe.devices=\u88f8\u673a PXE \u8bbe\u5907
-label.baremetal.pxe.device=\u6dfb\u52a0\u88f8\u673a PXE \u8bbe\u5907
-label.baremetal.pxe.provider=\u88f8\u673a PXE \u63d0\u4f9b\u7a0b\u5e8f
-label.baremetal.rack.configuration=Baremetal Rack \u914d\u7f6e
-label.basic.mode=\u57fa\u672c\u6a21\u5f0f
-label.basic=\u57fa\u672c
-label.bigswitch.bcf.details=\ BigSwitch BCF \u8be6\u60c5
-label.bigswitch.bcf.nat=BigSwitch BCF  NAT \u5df2\u542f\u7528
-label.bigswitch.controller.address=BigSwitch BCF \u63a7\u5236\u5668\u5730\u5740
-label.blade.id=\u5200\u7247\u5f0f\u670d\u52a1\u5668 ID
-label.blades=\u5200\u7247\u5f0f\u670d\u52a1\u5668
-label.bootable=\u53ef\u542f\u52a8
-label.broadcast.domain.range=\u5e7f\u64ad\u57df\u8303\u56f4
-label.broadcast.domain.type=\u5e7f\u64ad\u57df\u7c7b\u578b
-label.broadcast.uri=\u5e7f\u64ad URI
-label.broadcasturi=\u5e7f\u64ad URI
-label.broadcat.uri=\u5e7f\u64ad URI
-label.brocade.vcs.address=Vcs \u4ea4\u6362\u673a\u5730\u5740
-label.brocade.vcs.details=Brocade Vcs \u4ea4\u6362\u673a\u8be6\u7ec6\u4fe1\u606f
-label.by.account=\u6309\u5e10\u6237
-label.by.alert.type=\u6309\u8b66\u62a5\u7c7b\u578b
-label.by.availability=\u6309\u53ef\u7528\u6027
-label.by.date.end=\u6309\u65e5\u671f(\u7ed3\u675f\u65e5\u671f)
-label.by.date.start=\u6309\u65e5\u671f(\u5f00\u59cb\u65e5\u671f)
-label.by.domain=\u6309\u57df
-label.by.end.date=\u6309\u7ed3\u675f\u65e5\u671f
-label.by.event.type=\u6309\u4e8b\u4ef6\u7c7b\u578b
-label.by.level=\u6309\u7ea7\u522b
-label.by.pod=\u6309\u63d0\u4f9b\u70b9
-label.by.role=\u6309\u89d2\u8272
-label.by.start.date=\u6309\u5f00\u59cb\u65e5\u671f
-label.by.state=\u6309\u72b6\u6001
-label.bytes.received=\u63a5\u6536\u7684\u5b57\u8282\u6570
-label.bytes.sent=\u53d1\u9001\u7684\u5b57\u8282\u6570
-label.by.traffic.type=\u6309\u6d41\u91cf\u7c7b\u578b
-label.by.type.id=\u6309\u7c7b\u578b ID
-label.by.type=\u6309\u7c7b\u578b
-label.by.zone=\u6309\u8d44\u6e90\u57df
-label.cache.mode=\u5199\u5165\u7f13\u5b58\u7c7b\u578b
-label.cancel=\u53d6\u6d88
-label.capacity.bytes=\u5bb9\u91cf(\u5b57\u8282)
-label.capacity.iops=\u5bb9\u91cf IOPS
-label.capacity=\u5bb9\u91cf
-label.certificate=\u670d\u52a1\u5668\u8bc1\u4e66
-label.change.affinity=\u66f4\u6539\u5173\u8054\u6027
-label.change.service.offering=\u66f4\u6539\u670d\u52a1\u65b9\u6848
-label.change.value=\u66f4\u6539\u503c
-label.character=\u5b57\u7b26
-label.chassis=\u673a\u7bb1
-label.checksum=\u6821\u9a8c
-label.cidr.account=CIDR \u6216\u5e10\u6237/\u5b89\u5168\u7ec4
-label.cidr=CIDR
-label.CIDR.list=CIDR \u5217\u8868
-label.cidr.list=\u6e90 CIDR
-label.CIDR.of.destination.network=\u76ee\u7684\u5730\u7f51\u7edc\u7684 CIDR
-label.cisco.nexus1000v.ip.address=Nexus 1000v IP \u5730\u5740
-label.cisco.nexus1000v.password=Nexus 1000v \u5bc6\u7801
-label.cisco.nexus1000v.username=Nexus 1000v \u7528\u6237\u540d
-label.ciscovnmc.resource.details=CiscoVNMC \u8d44\u6e90\u8be6\u7ec6\u4fe1\u606f
-label.clean.up=\u6e05\u7406
-label.clear.list=\u6e05\u9664\u5217\u8868
-label.close=\u5173\u95ed
-label.cloud.console=\u4e91\u7ba1\u7406\u63a7\u5236\u53f0
-label.cloud.managed=\u7531 Cloud.com \u7ba1\u7406
-label.cluster.name=\u7fa4\u96c6\u540d\u79f0
-label.clusters=\u7fa4\u96c6
-label.cluster.type=\u7fa4\u96c6\u7c7b\u578b
-label.cluster=\u7fa4\u96c6
-label.clvm=CLVM
-label.code=\u4ee3\u7801
-label.community=\u793e\u533a
-label.compute.and.storage=\u8ba1\u7b97\u4e0e\u5b58\u50a8
-label.compute.offerings=\u8ba1\u7b97\u65b9\u6848
-label.compute.offering=\u8ba1\u7b97\u65b9\u6848
-label.compute=\u8ba1\u7b97
-label.configuration=\u914d\u7f6e
-label.configure.ldap=\u914d\u7f6e LDAP
-label.configure.network.ACLs=\u914d\u7f6e\u7f51\u7edc ACL
-label.configure.sticky.policy=\u914d\u7f6e\u7c98\u6ede\u7b56\u7565
-label.configure=\u914d\u7f6e
-label.configure.vpc=\u914d\u7f6e VPC
-label.confirmation=\u786e\u8ba4
-label.confirm.password=\u786e\u8ba4\u5bc6\u7801
-label.congratulations=\u795d\u8d3a\u60a8\!
-label.conserve.mode=\u8282\u80fd\u6a21\u5f0f
-label.console.proxy=\u63a7\u5236\u53f0\u4ee3\u7406
-label.console.proxy.vm=\u63a7\u5236\u53f0\u4ee3\u7406 VM
-label.continue.basic.install=\u7ee7\u7eed\u6267\u884c\u57fa\u672c\u5b89\u88c5
-label.continue=\u7ee7\u7eed
-label.copying.iso=\u6b63\u5728\u590d\u5236 ISO
-label.corrections.saved=\u5df2\u4fdd\u5b58\u4fee\u6b63
-label.counter=\u8ba1\u6570\u5668
-label.cpu.allocated.for.VMs=\u5df2\u5206\u914d\u7ed9 VM \u7684 CPU
-label.cpu.allocated=\u5df2\u5206\u914d\u7684 CPU
-label.CPU.cap=CPU \u4e0a\u9650
-label.cpu=CPU
-label.cpu.limits=CPU \u9650\u5236
-label.cpu.mhz=CPU (MHz)
-label.cpu.utilized=CPU \u5229\u7528\u7387
-label.created.by.system=\u7531\u7cfb\u7edf\u521b\u5efa
-label.created=\u521b\u5efa\u65e5\u671f
-label.create.nfs.secondary.staging.storage=\u521b\u5efa NFS \u4e8c\u7ea7\u6682\u5b58\u5b58\u50a8
-label.create.nfs.secondary.staging.store=\u521b\u5efa NFS \u4e8c\u7ea7\u6682\u5b58\u5b58\u50a8
-label.create.project=\u521b\u5efa\u9879\u76ee
-label.create.ssh.key.pair=\u751f\u6210SSH\u5bc6\u94a5\u5bf9
-label.create.template=\u521b\u5efa\u6a21\u677f
-label.create.VPN.connection=\u521b\u5efa VPN \u8fde\u63a5
-label.cross.zones=\u8de8\u8d44\u6e90\u57df
-label.custom.disk.iops=\u81ea\u5b9a\u4e49 IOPS
-label.custom.disk.offering=\u81ea\u5b9a\u4e49\u78c1\u76d8\u65b9\u6848
-label.custom.disk.size=\u81ea\u5b9a\u4e49\u78c1\u76d8\u5927\u5c0f
-label.custom=\u81ea\u5b9a\u4e49
-label.daily=\u6bcf\u5929
-label.data.disk.offering=\u6570\u636e\u78c1\u76d8\u65b9\u6848
-label.date=\u65e5\u671f
-label.day.of.month=\u65e5\u671f
-label.day.of.week=\u661f\u671f
-label.day=\u5929
-label.dc.name=\u6570\u636e\u4e2d\u5fc3\u540d\u79f0
-label.dead.peer.detection=\u5931\u6548\u5bf9\u7b49\u4f53\u68c0\u6d4b
-label.decline.invitation=\u62d2\u7edd\u9080\u8bf7
-label.dedicate.cluster=\u5c06\u7fa4\u96c6\u4e13\u7528
-label.dedicated=\u4e13\u7528
-label.dedicated.vlan.vni.ranges=VLAN/VNI \u8303\u56f4\u5df2\u4e13\u7528
-label.dedicate.host=\u5c06\u4e3b\u673a\u4e13\u7528
-label.dedicate.pod=\u5c06\u63d0\u4f9b\u70b9\u4e13\u7528
-label.dedicate=\u4e13\u7528
-label.dedicate.vlan.vni.range=\u5c06 VLAN/VNI \u8303\u56f4\u4e13\u7528
-label.dedicate.zone=\u5c06\u8d44\u6e90\u57df\u4e13\u7528
-label.default.egress.policy=\u9ed8\u8ba4\u51fa\u53e3\u89c4\u5219
-label.default=\u9ed8\u8ba4\u8bbe\u7f6e
-label.default.use=\u9ed8\u8ba4\u4f7f\u7528
-label.default.view=\u9ed8\u8ba4\u89c6\u56fe
-label.delete.acl.list=\u5220\u9664 ACL \u5217\u8868
-label.delete.affinity.group=\u5220\u9664\u5173\u8054\u6027\u7ec4
-label.delete.alerts=\u5220\u9664\u8b66\u62a5
-label.delete.baremetal.rack.configuration=\u5220\u9664 Baremetal Rack \u914d\u7f6e
-label.delete.BigSwitchBcf=\u79fb\u9664 BigSwitch BCF \u63a7\u5236\u5668
-label.delete.BrocadeVcs=\u5220\u9664 Brocade Vcs \u4ea4\u6362\u673a
-label.delete.ciscoASA1000v=\u5220\u9664 CiscoASA1000v
-label.delete.ciscovnmc.resource=\u5220\u9664 CiscoVNMC \u8d44\u6e90
-label.delete.events=\u5220\u9664\u4e8b\u4ef6
-label.delete.F5=\u5220\u9664 F5
-label.delete.gateway=\u5220\u9664\u7f51\u5173
-label.delete.internal.lb=\u5220\u9664\u5185\u90e8\u8d1f\u8f7d\u5e73\u8861\u5668
-label.delete.NetScaler=\u5220\u9664 NetScaler
-label.delete.NiciraNvp=\u5220\u9664 Nvp \u63a7\u5236\u5668
-label.delete.NuageVsp=\u5220\u9664 Nuage VSD
-label.delete.OpenDaylight.device=\u5220\u9664 OpenDaylight \u63a7\u5236\u5668
-label.delete.PA=\u5220\u9664 Palo Alto
-label.delete.portable.ip.range=\u5220\u9664\u53ef\u79fb\u690d IP \u8303\u56f4
-label.delete.profile=\u5220\u9664\u914d\u7f6e\u6587\u4ef6
-label.delete.project=\u5220\u9664\u9879\u76ee
-label.delete.secondary.staging.store=\u5220\u9664\u4e8c\u7ea7\u6682\u5b58\u5b58\u50a8
-label.delete.SRX=\u5220\u9664 SRX
-label.delete=\u5220\u9664
-label.delete.ucs.manager=\u5220\u9664 UCS Manager
-label.delete.VPN.connection=\u5220\u9664 VPN \u8fde\u63a5
-label.delete.VPN.customer.gateway=\u5220\u9664 VPN \u5ba2\u6237\u7f51\u5173
-label.delete.VPN.gateway=\u5220\u9664 VPN \u7f51\u5173
-label.delete.vpn.user=\u5220\u9664 VPN \u7528\u6237
-label.deleting.failed=\u5220\u9664\u5931\u8d25
-label.deleting.processing=\u6b63\u5728\u5220\u9664...
-label.deny=\u62d2\u7edd
-label.deployment.planner=\u90e8\u7f72\u89c4\u5212\u5668
-label.description=\u8bf4\u660e
-label.destination.physical.network.id=\u76ee\u6807\u7269\u7406\u7f51\u7edc ID
-label.destination.zone=\u76ee\u6807\u8d44\u6e90\u57df
-label.destroy.router=\u9500\u6bc1\u8def\u7531\u5668
-label.destroy=\u9500\u6bc1
-label.destroy.vm.graceperiod=\u9500\u6bc1 VM \u5bbd\u9650\u671f
-label.detaching.disk=\u6b63\u5728\u53d6\u6d88\u9644\u52a0\u78c1\u76d8
-label.details=\u8be6\u7ec6\u4fe1\u606f
-label.device.id=\u8bbe\u5907 ID
-label.devices=\u8bbe\u5907
-label.dhcp=DHCP
-label.DHCP.server.type=DHCP \u670d\u52a1\u5668\u7c7b\u578b
-label.direct.attached.public.ip=\u76f4\u8fde\u516c\u7528 IP
-label.direct.ips=\u5171\u4eab\u7f51\u7edc IP
-label.disable.autoscale=\u7981\u7528\u81ea\u52a8\u7f29\u653e
-label.disabled=\u5df2\u7981\u7528
-label.disable.host=\u7981\u7528\u4e3b\u673a
-label.disable.network.offering=\u7981\u7528\u7f51\u7edc\u65b9\u6848
-label.disable.provider=\u7981\u7528\u63d0\u4f9b\u7a0b\u5e8f
-label.disable.vnmc.provider=\u7981\u7528 VNMC \u63d0\u4f9b\u7a0b\u5e8f
-label.disable.vpc.offering=\u7981\u7528 VPC \u65b9\u6848
-label.disable.vpn=\u7981\u7528\u8fdc\u7a0b\u8bbf\u95ee VPN
-label.disabling.vpn.access=\u6b63\u5728\u7981\u7528 VPN \u8bbf\u95ee
-label.disassociate.profile.blade=\u53d6\u6d88\u5c06\u914d\u7f6e\u6587\u4ef6\u4e0e\u5200\u7247\u5f0f\u670d\u52a1\u5668\u5173\u8054
-label.disbale.vnmc.device=\u7981\u7528 VNMC \u8bbe\u5907
-label.disk.allocated=\u5df2\u5206\u914d\u7684\u78c1\u76d8
-label.disk.bytes.read.rate=\u78c1\u76d8\u8bfb\u53d6\u901f\u5ea6(BPS)
-label.disk.bytes.write.rate=\u78c1\u76d8\u5199\u5165\u901f\u5ea6(BPS)
-label.disk.iops.max=\u6700\u5927 IOPS
-label.disk.iops.min=\u6700\u5c0f IOPS
-label.disk.iops.read.rate=\u78c1\u76d8\u8bfb\u53d6\u901f\u5ea6(IOPS)
-label.disk.iops.total=\u603b IOPS
-label.disk.iops.write.rate=\u78c1\u76d8\u5199\u5165\u901f\u5ea6(IOPS)
-label.disk.offering.details=\u78c1\u76d8\u65b9\u6848\u8be6\u60c5
-label.disk.offering=\u78c1\u76d8\u65b9\u6848
-label.diskoffering=\u78c1\u76d8\u65b9\u6848
-label.disk.provisioningtype=\u7f6e\u5907\u7c7b\u578b
-label.disk.read.bytes=\u78c1\u76d8\u8bfb\u53d6(\u5b57\u8282)
-label.disk.read.io=\u78c1\u76d8\u8bfb\u53d6(IO)
-label.disk.size.gb=\u78c1\u76d8\u5927\u5c0f(GB)
-label.disk.size=\u78c1\u76d8\u5927\u5c0f
-label.disk.total=\u78c1\u76d8\u603b\u91cf
-label.disk.volume=\u78c1\u76d8\u5377
-label.disk.write.bytes=\u78c1\u76d8\u5199\u5165(\u5b57\u8282)
-label.disk.write.io=\u78c1\u76d8\u5199\u5165(IO)
-label.display.name=\u663e\u793a\u540d\u79f0
-label.display.text=\u663e\u793a\u6587\u672c
-label.distributedrouter=\u5206\u5e03\u5f0f\u8def\u7531\u5668
-label.dns.1=DNS 1
-label.dns.2=DNS 2
-label.dns=DNS
-label.DNS.domain.for.guest.networks=\u6765\u5bbe\u7f51\u7edc\u7684 DNS \u57df
-label.domain.admin=\u57df\u7ba1\u7406\u5458
-label.domain.details=\u57df\u8be6\u60c5
-label.domain.id=\u57df ID
-label.domain.lower=\u57df
-label.domain.name=\u57df\u540d
-label.domain.router=\u57df\u8def\u7531\u5668
-label.domain.suffix=DNS \u57df\u540e\u7f00(\u4f8b\u5982 xyz.com)
-label.domain=\u57df
-label.done=\u5b8c\u6210
-label.double.quotes.are.not.allowed=\u4e0d\u5141\u8bb8\u4f7f\u7528\u53cc\u5f15\u53f7
-label.download.progress=\u4e0b\u8f7d\u8fdb\u5ea6
-label.drag.new.position=\u62d6\u52a8\u5230\u65b0\u4f4d\u7f6e
-label.duration.in.sec=\u6301\u7eed\u65f6\u95f4 (\u79d2)
-label.dynamically.scalable=\u53ef\u52a8\u6001\u6269\u5c55
-label.edit.acl.rule=\u7f16\u8f91 ACL \u89c4\u5219
-label.edit.affinity.group=\u7f16\u8f91\u5173\u8054\u6027\u7ec4
-label.edit.lb.rule=\u7f16\u8f91\u8d1f\u8f7d\u5e73\u8861\u5668\u89c4\u5219
-label.edit.network.details=\u7f16\u8f91\u7f51\u7edc\u8be6\u60c5
-label.edit.project.details=\u7f16\u8f91\u9879\u76ee\u8be6\u60c5
-label.edit.region=\u7f16\u8f91\u5730\u7406\u533a\u57df
-label.edit.rule=\u7f16\u8f91\u89c4\u5219
-label.edit.secondary.ips=\u7f16\u8f91\u4e8c\u7ea7 IPs
-label.edit.tags=\u7f16\u8f91\u6807\u7b7e
-label.edit.traffic.type=\u7f16\u8f91\u6d41\u91cf\u7c7b\u578b
-label.edit=\u7f16\u8f91
-label.edit.vpc=\u7f16\u8f91 VPC
-label.egress.default.policy=\u51fa\u53e3\u9ed8\u8ba4\u7b56\u7565
-label.egress.rules=\u51fa\u53e3\u89c4\u5219
-label.egress.rule=\u51fa\u53e3\u89c4\u5219
-label.elastic.IP=\u5f39\u6027 IP
-label.elastic.LB=\u5f39\u6027\u8d1f\u8f7d\u5e73\u8861\u5668
-label.elastic=\u5f39\u6027
-label.email.lower=\u7535\u5b50\u90ae\u4ef6
-label.email=\u7535\u5b50\u90ae\u4ef6
-label.enable.autoscale=\u542f\u7528\u81ea\u52a8\u7f29\u653e
-label.enable.host=\u542f\u7528\u4e3b\u673a
-label.enable.network.offering=\u542f\u7528\u7f51\u7edc\u65b9\u6848
-label.enable.provider=\u542f\u7528\u63d0\u4f9b\u7a0b\u5e8f
-label.enable.s3=\u542f\u7528 S3 \u652f\u6301\u7684\u4e8c\u7ea7\u5b58\u50a8
-label.enable.swift=\u542f\u7528 SWIFT
-label.enable.vnmc.device=\u542f\u7528 VNMC \u8bbe\u5907
-label.enable.vnmc.provider=\u542f\u7528 VNMC \u63d0\u4f9b\u7a0b\u5e8f
-label.enable.vpc.offering=\u542f\u7528 VPC \u65b9\u6848
-label.enable.vpn=\u542f\u7528\u8fdc\u7a0b\u8bbf\u95ee VPN
-label.enabling.vpn.access=\u6b63\u5728\u542f\u7528 VPN \u8bbf\u95ee
-label.enabling.vpn=\u6b63\u5728\u542f\u7528 VPN
-label.end.IP=\u7ed3\u675f IP
-label.endpoint.or.operation=\u7aef\u70b9\u6216\u64cd\u4f5c
-label.endpoint=\u7aef\u70b9
-label.end.port=\u7ed3\u675f\u7aef\u53e3
-label.end.reserved.system.IP=\u7ed3\u675f\u9884\u7559\u7cfb\u7edf IP
-label.end.vlan=\u7ed3\u675f VLAN
-label.end.vxlan=\u7ed3\u675f VXLAN
-label.enter.token=\u8f93\u5165\u4ee4\u724c
-label.error.code=\u9519\u8bef\u4ee3\u7801
-label.error=\u9519\u8bef
-label.error.upper=\u9519\u8bef
-label.ESP.encryption=ESP \u52a0\u5bc6\u7b97\u6cd5
-label.ESP.hash=ESP \u54c8\u5e0c\u7b97\u6cd5
-label.ESP.lifetime=ESP \u4f7f\u7528\u671f\u9650(\u7b2c\u4e8c\u9636\u6bb5)
-label.ESP.policy=ESP \u7b56\u7565
-label.esx.host=ESX/ESXi \u4e3b\u673a
-label.event.archived=\u4e8b\u4ef6\u5df2\u5b58\u6863
-label.event.deleted=\u4e8b\u4ef6\u5df2\u5220\u9664
-label.event=\u4e8b\u4ef6
-label.every=\u6bcf
-label.example=\u793a\u4f8b
-label.expunge=\u5220\u9664
-label.external.link=\u5916\u90e8\u94fe\u63a5
-label.extractable.lower=\u53ef\u63d0\u53d6
-label.extractable=\u53ef\u63d0\u53d6
-label.f5.details=F5 \u8be6\u7ec6\u4fe1\u606f
-label.f5=F5
-label.failed=\u5931\u8d25
-label.featured=\u7cbe\u9009
-label.fetch.latest=\u63d0\u53d6\u6700\u65b0\u5185\u5bb9
-label.filterBy=\u8fc7\u6ee4\u4f9d\u636e
-label.fingerprint=\u6307\u7eb9
-label.firewall=\u9632\u706b\u5899
-label.firstname.lower=\u540d\u5b57
-label.first.name=\u540d\u5b57
-label.format.lower=\u683c\u5f0f
-label.format=\u683c\u5f0f
-label.friday=\u661f\u671f\u4e94
-label.full.path=\u5b8c\u6574\u8def\u5f84
-label.full=\u6ee1\u8f7d
-label.gateway=\u7f51\u5173
-label.general.alerts=\u5e38\u89c4\u8b66\u62a5
-label.generating.url=\u6b63\u5728\u751f\u6210 URL
-label.globo.dns.configuration=\u5168\u5c40 DNS \u914d\u7f6e
-label.globo.dns=\u5168\u5c40DNS
-label.gluster.volume=\u5377
-label.go.step.2=\u8f6c\u81f3\u6b65\u9aa4 2
-label.go.step.3=\u8f6c\u81f3\u6b65\u9aa4 3
-label.go.step.4=\u8f6c\u81f3\u6b65\u9aa4 4
-label.go.step.5=\u8f6c\u81f3\u6b65\u9aa4 5
-label.gpu=GPU
-label.group.by.account=\u6309\u5e10\u6237\u5206\u7ec4
-label.group.by.cluster=\u6309\u7fa4\u96c6\u5206\u7ec4
-label.group.by.pod=\u6309\u63d0\u4f9b\u70b9\u5206\u7ec4
-label.group.by.zone=\u6309\u8d44\u6e90\u57df\u5206\u7ec4
-label.group.optional=\u7ec4(\u53ef\u9009)
-label.group=\u7ec4
-label.gslb.assigned.lb.more=\u5206\u914d\u66f4\u591a\u8d1f\u8f7d\u5e73\u8861
-label.gslb.assigned.lb=\u5df2\u5206\u914d\u8d1f\u8f7d\u5e73\u8861
-label.gslb.delete=\u5220\u9664 GSLB
-label.gslb.details=GSLB \u8be6\u7ec6\u4fe1\u606f
-label.gslb.domain.name=GSLB \u57df\u540d
-label.gslb=GSLB
-label.gslb.lb.details=\u8d1f\u8f7d\u5e73\u8861\u8be6\u7ec6\u4fe1\u606f
-label.gslb.lb.remove=\u4ece\u6b64 GSLB \u4e2d\u5220\u9664\u8d1f\u8f7d\u5e73\u8861
-label.gslb.lb.rule=\u8d1f\u8f7d\u5e73\u8861\u89c4\u5219
-label.gslb.service=GSLB \u670d\u52a1
-label.gslb.service.private.ip=GSLB \u670d\u52a1\u4e13\u7528 IP
-label.gslb.service.public.ip=GSLB \u670d\u52a1\u516c\u7528 IP
-label.gslb.servicetype=\u670d\u52a1\u7c7b\u578b
-label.guest.cidr=\u6765\u5bbe CIDR
-label.guest.end.ip=\u6765\u5bbe\u7ed3\u675f IP
-label.guest.gateway=\u6765\u5bbe\u7f51\u5173
-label.guest.ip.range=\u6765\u5bbe IP \u8303\u56f4
-label.guest.ip=\u6765\u5bbe IP \u5730\u5740
-label.guest.netmask=\u6765\u5bbe\u7f51\u7edc\u63a9\u7801
-label.guest.network.details=\u6765\u5bbe\u7f51\u7edc\u8be6\u7ec6\u4fe1\u606f
-label.guest.networks=\u6765\u5bbe\u7f51\u7edc
-label.guest.start.ip=\u6765\u5bbe\u8d77\u59cb IP
-label.guest.traffic=\u6765\u5bbe\u6d41\u91cf
-label.guest.traffic.vswitch.name=\u6765\u5bbe\u6d41\u91cf\u865a\u62df\u4ea4\u6362\u673a\u540d\u79f0
-label.guest.traffic.vswitch.type=\u6765\u5bbe\u6d41\u91cf\u865a\u62df\u4ea4\u6362\u673a\u7c7b\u578b
-label.guest.type=\u6765\u5bbe\u7c7b\u578b
-label.guest=\u6765\u5bbe
-label.ha.enabled=\u5df2\u542f\u7528\u9ad8\u53ef\u7528\u6027
-label.health.check.advanced.options=\u9ad8\u7ea7\u9009\u9879\:
-label.health.check.configurations.options=\u914d\u7f6e\u9009\u9879\:
-label.health.check.interval.in.sec=\u8fd0\u884c\u72b6\u51b5\u68c0\u67e5\u65f6\u95f4\u95f4\u9694(\u79d2)
-label.health.check.message.desc=\u8d1f\u8f7d\u5747\u8861\u5668\u4f1a\u81ea\u52a8\u5bf9\u5b9e\u4f8b\u8fdb\u884c\u72b6\u51b5\u68c0\u67e5\u5e76\u4e14\u53ea\u6709\u8def\u7531\u5668\u81f3\u5b9e\u4f8b\u7684\u94fe\u8def\u6b63\u5e38\u624d\u80fd\u901a\u8fc7\u68c0\u67e5
-label.health.check=\u8fd0\u884c\u72b6\u51b5\u68c0\u67e5
-label.health.check.wizard=\u8fd0\u884c\u68c0\u67e5\u5411\u5bfc
-label.healthy.threshold=\u6b63\u5e38\u9608\u503c
-label.help=\u5e2e\u52a9
-label.hide.ingress.rule=\u9690\u85cf\u5165\u53e3\u89c4\u5219
-label.hints=\u63d0\u793a
-label.home=\u9996\u9875
-label.host.MAC=\u4e3b\u673a MAC
-label.host.name=\u4e3b\u673a\u540d\u79f0
-label.hosts=\u4e3b\u673a
-label.host.tags=\u4e3b\u673a\u6807\u7b7e
-label.host.tag=\u5bbf\u4e3b\u673a\u6807\u7b7e
-label.host=\u4e3b\u673a
-label.hourly=\u6bcf\u5c0f\u65f6
-label.hvm=HVM
-label.hypervisor.capabilities=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u529f\u80fd
-label.hypervisor.snapshot.reserve=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u5feb\u7167\u9884\u7559
-label.hypervisors=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f
-label.hypervisor.type=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u7c7b\u578b
-label.hypervisor=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f
-label.hypervisor.version=\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u7248\u672c
-label.hyperv.traffic.label=HyperV \u6d41\u91cf\u6807\u7b7e
-label.id=ID
-label.IKE.DH=IKE DH \u7b97\u6cd5
-label.IKE.encryption=IKE \u52a0\u5bc6\u7b97\u6cd5
-label.IKE.hash=IKE \u54c8\u5e0c\u7b97\u6cd5
-label.IKE.lifetime=IKE \u4f7f\u7528\u671f\u9650(\u7b2c\u4e8c\u9636\u6bb5)
-label.IKE.policy=IKE \u7b56\u7565
-label.info=\u4fe1\u606f
-label.info.upper=\u4fe1\u606f
-label.ingress.rule=\u5165\u53e3\u89c4\u5219
-label.initiated.by=\u542f\u52a8\u8005
-label.inside.port.profile=\u5185\u90e8\u7aef\u53e3\u914d\u7f6e\u6587\u4ef6
-label.installWizard.addClusterIntro.subtitle=\u4ec0\u4e48\u662f\u7fa4\u96c6?
-label.installWizard.addClusterIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u7fa4\u96c6
-label.installWizard.addHostIntro.subtitle=\u4ec0\u4e48\u662f\u4e3b\u673a?
-label.installWizard.addHostIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u4e3b\u673a
-label.installWizard.addPodIntro.subtitle=\u4ec0\u4e48\u662f\u63d0\u4f9b\u70b9?
-label.installWizard.addPodIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u63d0\u4f9b\u70b9
-label.installWizard.addPrimaryStorageIntro.subtitle=\u4ec0\u4e48\u662f\u4e3b\u5b58\u50a8?
-label.installWizard.addPrimaryStorageIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u4e3b\u5b58\u50a8
-label.installWizard.addSecondaryStorageIntro.subtitle=\u4ec0\u4e48\u662f\u4e8c\u7ea7\u5b58\u50a8?
-label.installWizard.addSecondaryStorageIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u4e8c\u7ea7\u5b58\u50a8
-label.installWizard.addZoneIntro.subtitle=\u4ec0\u4e48\u662f\u8d44\u6e90\u57df?
-label.installWizard.addZoneIntro.title=\u6dfb\u52a0\u4e00\u4e2a\u8d44\u6e90\u57df
-label.installWizard.addZone.title=\u6dfb\u52a0\u8d44\u6e90\u57df
-label.installWizard.click.launch=\u8bf7\u5355\u51fb\u201c\u542f\u52a8\u201d\u6309\u94ae\u3002
-label.installWizard.subtitle=\u6b64\u6559\u7a0b\u5c06\u5e2e\u52a9\u60a8\u8bbe\u7f6e CloudStack&\#8482 \u5b89\u88c5
-label.installWizard.title=\u60a8\u597d\uff0c\u6b22\u8fce\u4f7f\u7528 CloudStack&\#8482
-label.instance.limits=\u5b9e\u4f8b\u9650\u5236
-label.instance.name=\u5b9e\u4f8b\u540d\u79f0
-label.instance.port=\u5b9e\u4f8b\u7aef\u53e3
-label.instance.scaled.up=\u63d0\u4f9b\u9700\u8981\u6269\u5c55\u7684\u5b9e\u4f8b
-label.instances=\u5b9e\u4f8b
-label.instance=\u5b9e\u4f8b
-label.instanciate.template.associate.profile.blade=\u5c06\u6a21\u677f\u5b9e\u4f8b\u5316\u5e76\u5c06\u914d\u7f6e\u6587\u4ef6\u4e0e\u5200\u7247\u5f0f\u670d\u52a1\u5668\u5173\u8054
-label.intermediate.certificate=\u4e2d\u95f4\u8bc1\u4e66 {0}
-label.internal.dns.1=\u5185\u90e8 DNS 1
-label.internal.dns.2=\u5185\u90e8 DNS 2
-label.internal.lb.details=\u5185\u90e8\u8d1f\u8f7d\u5e73\u8861\u5668\u8be6\u7ec6\u4fe1\u606f
-label.internal.lb=\u5185\u90e8\u8d1f\u8f7d\u5747\u8861\u5668
-label.internallbvm=InternalLbVm
-label.internal.name=\u5185\u90e8\u540d\u79f0
-label.interval.type=\u95f4\u9694\u7c7b\u578b
-label.introduction.to.cloudstack=CloudStack&\#8482 \u7b80\u4ecb
-label.invalid.integer=\u65e0\u6548\u6574\u6570
-label.invalid.number=\u65e0\u6548\u6570\u5b57
-label.invitations=\u9080\u8bf7
-label.invited.accounts=\u5df2\u9080\u8bf7\u7684\u5e10\u6237
-label.invite.to=\u9080\u8bf7\u52a0\u5165
-label.invite=\u9080\u8bf7
-label.ip.address=IP \u5730\u5740
-label.ipaddress=IP \u5730\u5740
-label.ip.allocations=IP \u5206\u914d
-label.ip=IP
-label.ip.limits=\u516c\u7528 IP \u9650\u5236
-label.ip.or.fqdn=IP \u6216 FQDN
-label.ip.range=IP \u8303\u56f4
-label.ip.ranges=IP \u8303\u56f4
-label.IPsec.preshared.key=IPsec \u9884\u5171\u4eab\u5bc6\u94a5
-label.ips=IP
-label.ipv4.cidr=IPv4 CIDR
-label.ipv4.dns1=IPv4 DNS1
-label.ipv4.dns2=IPv4 DNS2
-label.ipv4.end.ip=IPv4 \u7ed3\u675f IP
-label.ipv4.gateway=IPv4 \u7f51\u5173
-label.ipv4.netmask=IPv4 \u7f51\u7edc\u63a9\u7801
-label.ipv4.start.ip=IPv4 \u8d77\u59cb IP
-label.ipv6.address=IPv6 IP \u5730\u5740
-label.ipv6.CIDR=IPv6 CIDR
-label.ipv6.dns1=IPv6 DNS1
-label.ipv6.dns2=IPv6 DNS2
-label.ipv6.end.ip=IPv6 \u7ed3\u675f IP
-label.ipv6.gateway=IPv6 \u7f51\u5173
-label.ipv6.start.ip=IPv6 \u8d77\u59cb IP
-label.iscsi=iSCSI
-label.is.default=\u662f\u5426\u4e3a\u9ed8\u8ba4\u8bbe\u7f6e
-label.iso.boot=ISO \u542f\u52a8
-label.iso=ISO
-label.isolated.networks=\u9694\u79bb\u7f51\u7edc
-label.isolation.method=\u9694\u79bb\u65b9\u6cd5
-label.isolation.mode=\u9694\u79bb\u6a21\u5f0f
-label.isolation.uri=\u9694\u79bb URI
-label.is.redundant.router=\u5197\u4f59
-label.is.shared=\u662f\u5426\u5171\u4eab
-label.is.system=\u662f\u5426\u4e3a\u7cfb\u7edf
-label.item.listing=\u9879\u76ee\u5217\u8868
-label.japanese.keyboard=\u65e5\u5f0f\u952e\u76d8
-label.keep.colon=\u4fdd\u7559
-label.keep=\u4fdd\u7559
-label.keyboard.language=\u952e\u76d8\u8bed\u8a00
-label.keyboard.type=\u952e\u76d8\u7c7b\u578b
-label.key=\u5bc6\u94a5
-label.kvm.traffic.label=KVM \u6d41\u91cf\u6807\u7b7e
-label.label=\u6807\u7b7e
-label.lang.arabic=\u963f\u62c9\u4f2f\u8bed
-label.lang.brportugese=\u8461\u8404\u7259\u8bed(\u5df4\u897f)
-label.lang.catalan=\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed
-label.lang.chinese=\u7b80\u4f53\u4e2d\u6587
-label.lang.dutch=\u8377\u5170\u8bed(\u8377\u5170)
-label.lang.english=\u82f1\u8bed
-label.lang.french=\u6cd5\u8bed
-label.lang.german=\u5fb7\u8bed
-label.lang.hungarian=\u5308\u7259\u5229
-label.lang.italian=\u610f\u5927\u5229\u8bed
-label.lang.japanese=\u65e5\u8bed
-label.lang.korean=\u97e9\u8bed
-label.lang.norwegian=\u632a\u5a01\u8bed
-label.lang.polish=\u6ce2\u5170\u8bed
-label.lang.russian=\u4fc4\u8bed
-label.lang.spanish=\u897f\u73ed\u7259\u8bed
-label.last.disconnected=\u4e0a\u6b21\u65ad\u5f00\u8fde\u63a5\u65f6\u95f4
-label.lastname.lower=\u59d3\u6c0f
-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\u8d44\u6e90\u57df
-label.lb.algorithm.leastconn=\u6700\u5c11\u8fde\u63a5\u7b97\u6cd5
-label.lb.algorithm.roundrobin=\u8f6e\u5faa
-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.link.type=\u7c7b\u578b
-label.ldap.port=LDAP \u7aef\u53e3
-label.level=\u7ea7\u522b
-label.link.domain.to.ldap=\u57df\u94fe\u63a5\u81f3 LDAP
-label.linklocal.ip=\u94fe\u63a5\u672c\u5730 IP \u5730\u5740
-label.load.balancer.type=\u8d1f\u8f7d\u5e73\u8861\u5668\u7c7b\u578b
-label.load.balancer=\u8d1f\u8f7d\u5e73\u8861\u5668
-label.load.balancing.policies=\u8d1f\u8f7d\u5e73\u8861\u7b56\u7565
-label.load.balancing=\u8d1f\u8f7d\u5e73\u8861
-label.loading=\u6b63\u5728\u52a0\u8f7d
-label.local.file=\u672c\u5730\u6587\u4ef6
-label.local.storage.enabled.system.vms=\u4e3a\u7cfb\u7edf\u5b9e\u4f8b\u5f00\u542f\u672c\u5730\u5b58\u50a8
-label.local.storage.enabled=\u4e3a\u7528\u6237\u5b9e\u4f8b\u5f00\u542f\u672c\u5730\u5b58\u50a8
-label.local.storage=\u672c\u5730\u5b58\u50a8
-label.local=\u672c\u5730
-label.login=\u767b\u5f55
-label.logout=\u6ce8\u9500
-label.lun=LUN
-label.LUN.number=LUN \u53f7
-label.lxc.traffic.label=LXC \u6d41\u91cf\u6807\u7b7e
-label.make.project.owner=\u8bbe\u4e3a\u5e10\u6237\u9879\u76ee\u6240\u6709\u8005
-label.make.redundant=\u5197\u4f59
-label.managed=\u6258\u7ba1
-label.management.ips=\u7ba1\u7406\u7c7b IP \u5730\u5740
-label.management.server=\u7ba1\u7406\u670d\u52a1\u5668
-label.management=\u7ba1\u7406
-label.manage.resources=\u7ba1\u7406\u8d44\u6e90
-label.manage=\u6258\u7ba1
-label.max.cpus=\u6700\u5927 CPU \u5185\u6838\u6570
-label.max.guest.limit=\u6700\u5927\u6765\u5bbe\u6570\u9650\u5236
-label.maximum=\u6700\u5927\u503c
-label.max.instances=\u6700\u5927\u5b9e\u4f8b\u6570
-label.max.memory=\u6700\u5927\u5185\u5b58(MiB)
-label.max.networks=\u6700\u5927\u7f51\u7edc\u6570
-label.max.primary.storage=\u6700\u5927\u4e3b\u5b58\u50a8(GiB)
-label.max.public.ips=\u6700\u5927\u516c\u7528 IP \u6570
-label.max.secondary.storage=\u6700\u5927\u4e8c\u7ea7\u5b58\u50a8(GiB)
-label.max.snapshots=\u6700\u5927\u5feb\u7167\u6570
-label.max.templates=\u6700\u5927\u6a21\u677f\u6570
-label.max.vms=\u6700\u5927\u7528\u6237 VM \u6570
-label.max.volumes=\u6700\u5927\u5377\u6570
-label.max.vpcs=\u6700\u5927 VPC \u6570
-label.may.continue=\u60a8\u73b0\u5728\u53ef\u4ee5\u7ee7\u7eed\u8fdb\u884c\u64cd\u4f5c\u3002
-label.md5.checksum=MD5 \u6821\u9a8c\u548c
-label.memory.allocated=\u5df2\u5206\u914d\u7684\u5185\u5b58
-label.memory.limits=\u5185\u5b58\u9650\u5236(MiB)
-label.memory.mb=\u5185\u5b58(MB)
-label.memory.total=\u5185\u5b58\u603b\u91cf
-label.memory=\u5185\u5b58
-label.memory.used=\u5df2\u4f7f\u7528\u7684\u5185\u5b58
-label.menu.accounts=\u5e10\u6237
-label.menu.alerts=\u8b66\u62a5
-label.menu.all.accounts=\u6240\u6709\u5e10\u6237
-label.menu.all.instances=\u6240\u6709\u5b9e\u4f8b
-label.menu.community.isos=\u793e\u533a ISO
-label.menu.community.templates=\u793e\u533a\u6a21\u677f
-label.menu.configuration=\u914d\u7f6e
-label.menu.dashboard=\u63a7\u5236\u677f
-label.menu.destroyed.instances=\u5df2\u9500\u6bc1\u7684\u5b9e\u4f8b
-label.menu.disk.offerings=\u78c1\u76d8\u65b9\u6848
-label.menu.domains=\u57df
-label.menu.events=\u4e8b\u4ef6
-label.menu.featured.isos=\u7cbe\u9009 ISO
-label.menu.featured.templates=\u7cbe\u9009\u6a21\u677f
-label.menu.global.settings=\u5168\u5c40\u8bbe\u7f6e
-label.menu.infrastructure=\u57fa\u7840\u67b6\u6784
-label.menu.instances=\u5b9e\u4f8b
-label.menu.ipaddresses=IP \u5730\u5740
-label.menu.isos=ISO
-label.menu.my.accounts=\u6211\u7684\u5e10\u6237
-label.menu.my.instances=\u6211\u7684\u5b9e\u4f8b
-label.menu.my.isos=\u6211\u7684 ISO
-label.menu.my.templates=\u6211\u7684\u6a21\u677f
-label.menu.network.offerings=\u7f51\u7edc\u65b9\u6848
-label.menu.network=\u7f51\u7edc
-label.menu.physical.resources=\u7269\u7406\u8d44\u6e90
-label.menu.regions=\u5730\u7406\u533a\u57df
-label.menu.running.instances=\u6b63\u5728\u8fd0\u884c\u7684\u5b9e\u4f8b
-label.menu.security.groups=\u5b89\u5168\u7ec4
-label.menu.service.offerings=\u670d\u52a1\u65b9\u6848
-label.menu.snapshots=\u5feb\u7167
-label.menu.sshkeypair=SSH \u5bc6\u94a5\u5bf9
-label.menu.stopped.instances=\u5df2\u505c\u6b62\u7684\u5b9e\u4f8b
-label.menu.storage=\u5b58\u50a8
-label.menu.system.service.offerings=\u7cfb\u7edf\u65b9\u6848
-label.menu.system=\u7cfb\u7edf
-label.menu.system.vms=\u7cfb\u7edf VM
-label.menu.templates=\u6a21\u677f
-label.menu.virtual.appliances=\u865a\u62df\u8bbe\u5907
-label.menu.virtual.resources=\u865a\u62df\u8d44\u6e90
-label.menu.volumes=\u5377
-label.menu.vpc.offerings=VPC \u65b9\u6848
-label.metrics.allocated=\u5df2\u5206\u914d
-label.metrics.clusters=\u7fa4\u96c6
-label.metrics.cpu.used.avg=\u5df2\u4f7f\u7528
-label.metrics.disk.allocated=\u5df2\u5206\u914d
-label.metrics.disk.size=\u5927\u5c0f
-label.metrics.disk.storagetype=\u7c7b\u578b
-label.metrics.disk.used=\u5df2\u4f7f\u7528
-label.metrics.hosts=\u4e3b\u673a
-label.metrics.memory.used.avg=\u5df2\u4f7f\u7528
-label.metrics.name=\u540d\u79f0
-label.metrics.scope=\u8303\u56f4
-label.metrics.state=\u72b6\u6001
-label.metrics.storagepool=\u5b58\u50a8\u6c60
-label.migrate.instance.to.host=\u5c06\u5b9e\u4f8b\u8fc1\u79fb\u5230\u5176\u4ed6\u4e3b\u673a
-label.migrate.instance.to.ps=\u5c06\u5b9e\u4f8b\u8fc1\u79fb\u5230\u5176\u4ed6\u4e3b\u5b58\u50a8
-label.migrate.instance.to=\u8fc1\u79fb\u5b9e\u4f8b\u81f3
-label.migrate.lb.vm=\u8fc1\u79fb LB VM
-label.migrate.router.to=\u8fc1\u79fb\u8def\u7531\u5668\u81f3
-label.migrate.systemvm.to=\u8fc1\u79fb\u7cfb\u7edf VM \u81f3
-label.migrate.to.host=\u8fc1\u79fb\u5230\u4e3b\u673a
-label.migrate.to.storage=\u8fc1\u79fb\u5230\u5b58\u50a8
-label.migrate.volume.to.primary.storage=\u5c06\u5377\u8fc1\u79fb\u5230\u5176\u4ed6\u4e3b\u5b58\u50a8
-label.migrate.volume=\u8fc1\u79fb\u5377
-label.minimum=\u6700\u5c0f\u503c
-label.min.instances=\u6700\u5c0f\u5b9e\u4f8b\u6570
-label.min.past.the.hr=\u5206 \u6bcf\u5c0f\u65f6
-label.minute.past.hour=\u5206\u949f\u65f6
-label.minutes.past.hour=\u5206 (\u6bcf\u5c0f\u65f6)
-label.mode=\u6a21\u5f0f
-label.monday=\u661f\u671f\u4e00
-label.monthly=\u6bcf\u6708
-label.more.templates=\u66f4\u591a\u6a21\u677f
-label.move.down.row=\u5411\u4e0b\u79fb\u52a8\u4e00\u884c
-label.move.to.bottom=\u79fb\u81f3\u5e95\u90e8
-label.move.to.top=\u79fb\u81f3\u9876\u90e8
-label.move.up.row=\u5411\u4e0a\u79fb\u52a8\u4e00\u884c
-label.my.account=\u6211\u7684\u5e10\u6237
-label.my.network=\u6211\u7684\u7f51\u7edc
-label.my.templates=\u6211\u7684\u6a21\u677f
-label.name.lower=\u540d\u79f0
-label.name.optional=\u540d\u79f0(\u53ef\u9009)
-label.name=\u540d\u79f0
-label.nat.port.range=NAT \u7aef\u53e3\u8303\u56f4
-label.na=\u65e0
-label.netmask=\u7f51\u7edc\u63a9\u7801
-label.netscaler.details=NetScaler \u8be6\u7ec6\u4fe1\u606f
-label.netScaler=NetScaler
-label.network.ACLs=\u7f51\u7edc ACL
-label.network.ACL.total=\u7f51\u7edc ACL \u603b\u6570
-label.network.ACL=\u7f51\u7edc ACL
-label.network.addVM=\u5c06\u7f51\u7edc\u6dfb\u52a0\u5230 VM
-label.network.cidr=\u7f51\u7edc CIDR
-label.network.desc=\u7f51\u7edc\u63cf\u8ff0
-label.network.details=\u7f51\u7edc\u8be6\u60c5
-label.network.device.type=\u7f51\u7edc\u8bbe\u5907\u7c7b\u578b
-label.network.device=\u7f51\u7edc\u8bbe\u5907
-label.network.domain.text=\u7f51\u7edc\u57df
-label.network.domain=\u7f51\u7edc\u57df
-label.network.id=\u7f51\u7edc ID
-label.networking.and.security=\u7f51\u7edc\u8fde\u63a5\u4e0e\u5b89\u5168
-label.network.label.display.for.blank.value=\u4f7f\u7528\u9ed8\u8ba4\u7f51\u5173
-label.network.limits=\u7f51\u7edc\u9650\u5236
-label.network.name=\u7f51\u7edc\u540d\u79f0
-label.network.offering.details=\u7f51\u7edc\u65b9\u6848\u8be6\u60c5
-label.network.offering.display.text=\u7f51\u7edc\u65b9\u6848\u663e\u793a\u6587\u672c
-label.network.offering.id=\u7f51\u7edc\u65b9\u6848 ID
-label.network.offering.name=\u7f51\u7edc\u65b9\u6848\u540d\u79f0
-label.network.offering=\u7f51\u7edc\u65b9\u6848
-label.network.rate.megabytes=\u7f51\u7edc\u901f\u7387(MB/\u79d2)
-label.network.rate=\u7f51\u7edc\u901f\u7387(MB/\u79d2)
-label.network.read=\u7f51\u7edc\u8bfb\u53d6\u91cf
-label.network.service.providers=\u7f51\u7edc\u670d\u52a1\u63d0\u4f9b\u7a0b\u5e8f
-label.networks=\u7f51\u7edc
-label.network.type=\u7f51\u7edc\u7c7b\u578b
-label.network=\u7f51\u7edc
-label.network.write=\u7f51\u7edc\u5199\u5165\u91cf
-label.new.password=\u65b0\u5bc6\u7801
-label.new.project=\u65b0\u5efa\u9879\u76ee
-label.new.ssh.key.pair=\u65b0SSH\u5bc6\u94a5\u5bf9
-label.new=\u65b0\u5efa
-label.new.vm=\u65b0\u5efa VM
-label.next=\u4e0b\u4e00\u6b65
-label.nexusVswitch=Nexus 1000v
-label.nfs=NFS
-label.nfs.server=NFS \u670d\u52a1\u5668
-label.nfs.storage=NFS \u5b58\u50a8
-label.nic.adapter.type=NIC \u9002\u914d\u5668\u7c7b\u578b
-label.nicira.controller.address=\u63a7\u5236\u5668\u5730\u5740
-label.nicira.l3gatewayserviceuuid=L3 Gateway Service UUID
-label.nicira.nvp.details=Nicira NVP \u8be6\u7ec6\u4fe1\u606f
-label.nicira.transportzoneuuid=\u4f20\u8f93\u8d44\u6e90\u57df UUID
-label.nics=NIC
-label.no.actions=\u65e0\u53ef\u7528\u64cd\u4f5c
-label.no.alerts=\u65e0\u6700\u8fd1\u53d1\u51fa\u7684\u8b66\u62a5
-label.no.data=\u65e0\u53ef\u663e\u793a\u7684\u6570\u636e
-label.no.errors=\u65e0\u6700\u8fd1\u51fa\u73b0\u7684\u9519\u8bef
-label.no.grouping=(\u672a\u5206\u7ec4)
-label.no.isos=\u65e0\u53ef\u7528 ISO
-label.no.items=\u65e0\u53ef\u7528\u9879\u76ee
-label.none=\u65e0
-label.no.security.groups=\u65e0\u53ef\u7528\u5b89\u5168\u7ec4
-label.not.found=\u672a\u627e\u5230
-label.no.thanks=\u4e0d\uff0c\u8c22\u8c22
-label.notifications=\u901a\u77e5
-label.no=\u5426
-label.number.of.clusters=\u7fa4\u96c6\u6570\u91cf
-label.number.of.cpu.sockets=CPU \u63d2\u69fd\u6570
-label.number.of.hosts=\u4e3b\u673a\u6570\u91cf
-label.number.of.pods=\u63d0\u4f9b\u70b9\u6570\u91cf
-label.number.of.system.vms=\u7cfb\u7edf VM \u6570
-label.number.of.virtual.routers=\u865a\u62df\u8def\u7531\u5668\u6570
-label.number.of.zones=\u8d44\u6e90\u57df\u6570\u91cf
-label.num.cpu.cores=CPU \u5185\u6838\u6570
-label.numretries=\u91cd\u8bd5\u6b21\u6570
-label.ocfs2=OCFS2
-label.offer.ha=\u63d0\u4f9b\u9ad8\u53ef\u7528\u6027
-label.of.month=\u6708
-label.ok=\u786e\u5b9a
-label.opendaylight.controllerdetail=OpenDaylight \u63a7\u5236\u5668\u8be6\u7ec6\u4fe1\u606f
-label.opendaylight.controller=OpenDaylight \u63a7\u5236\u5668
-label.opendaylight.controllers=OpenDaylight \u63a7\u5236\u5668
-label.openDaylight=OpenDaylight
-label.operator=\u8fd0\u7b97\u7b26
-label.optional=\u53ef\u9009
-label.order=\u6392\u5e8f
-label.os.preference=\u64cd\u4f5c\u7cfb\u7edf\u9996\u9009\u9879
-label.os.type=\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b
-label.other=\u5176\u4ed6
-label.outofbandmanagement.action=\u64cd\u4f5c
-label.outofbandmanagement.password=\u5bc6\u7801
-label.outofbandmanagement.port=\u7aef\u53e3
-label.outofbandmanagement.username=\u7528\u6237\u540d
-label.override.guest.traffic=\u66ff\u4ee3\u6765\u5bbe\u6d41\u91cf
-label.override.public.traffic=\u66ff\u4ee3\u516c\u5171\u6d41\u91cf
-label.ovm3.cluster=\u672c\u5730\u96c6\u7fa4
-label.ovm3.pool=\u539f\u751f\u6c60
-label.ovm3.vip=\u4e3b\u865a\u62dfIP
-label.ovm.traffic.label=OVM \u6d41\u91cf\u6807\u7b7e
-label.ovs=OVS
-label.owned.public.ips=\u62e5\u6709\u7684\u516c\u7528 IP \u5730\u5740\u6570
-label.owner.account=\u6240\u6709\u8005\u5e10\u6237
-label.owner.domain=\u6240\u6709\u8005\u57df
-label.palo.alto.details=Palo Alto \u8be6\u7ec6\u4fe1\u606f
-label.PA.log.profile=Palo Alto \u65e5\u5fd7\u914d\u7f6e\u6587\u4ef6
-label.PA=Palo Alto
-label.parent.domain=\u7236\u57df
-label.passive=\u88ab\u52a8
-label.password.enabled=\u5df2\u542f\u7528\u5bc6\u7801
-label.password.lower=\u5bc6\u7801
-label.password.reset.confirm=\u5bc6\u7801\u5df2\u91cd\u7f6e\u4e3a
-label.password=\u5bc6\u7801
-label.PA.threat.profile=Palo Alto \u5a01\u80c1\u914d\u7f6e\u6587\u4ef6
-label.path=\u8def\u5f84
-label.perfect.forward.secrecy=\u5b8c\u5168\u6b63\u5411\u4fdd\u5bc6
-label.persistent=\u6c38\u4e45
-label.physical.network.ID=\u7269\u7406\u7f51\u7edc ID
-label.physical.network.name=\u7269\u7406\u7f51\u7edc\u540d\u79f0
-label.physical.network=\u7269\u7406\u7f51\u7edc
-label.PING.CIFS.password=PING CIFS \u5bc6\u7801
-label.PING.CIFS.username=PING CIFS \u7528\u6237\u540d
-label.PING.dir=PING \u76ee\u5f55
-label.ping.path=Ping \u8def\u5f84
-label.PING.storage.IP=PING \u5b58\u50a8 IP
-label.planner.mode=\u89c4\u5212\u5668\u6a21\u5f0f
-label.please.complete.the.following.fields=\u8bf7\u5b8c\u6210\u4ee5\u4e0b\u5185\u5bb9
-label.please.specify.netscaler.info=\u8bf7\u6307\u5b9a NetScaler \u4fe1\u606f
-label.please.wait=\u8bf7\u7a0d\u5019
-label.plugin.details=\u63d2\u4ef6\u8be6\u7ec6\u4fe1\u606f
-label.plugins=\u63d2\u4ef6
-label.pod.dedicated=\u63d0\u4f9b\u70b9\u5df2\u4e13\u7528
-label.pod.name=\u63d0\u4f9b\u70b9\u540d\u79f0
-label.pods=\u63d0\u4f9b\u70b9
-label.pod=\u63d0\u4f9b\u70b9
-label.polling.interval.sec=\u8f6e\u8be2\u65f6\u95f4\u95f4\u9694(\u79d2)
-label.portable.ip.range.details=\u53ef\u79fb\u690d IP \u8303\u56f4\u8be6\u7ec6\u4fe1\u606f
-label.portable.ip.ranges=\u53ef\u79fb\u690d IP \u8303\u56f4
-label.portable.ips=\u53ef\u79fb\u690d IP
-label.portable.ip=\u53ef\u79fb\u690d IP
-label.port.forwarding.policies=\u7aef\u53e3\u8f6c\u53d1\u7b56\u7565
-label.port.forwarding=\u7aef\u53e3\u8f6c\u53d1
-label.port.range=\u7aef\u53e3\u8303\u56f4
-label.port=\u7aef\u53e3
-label.PreSetup=PreSetup
-label.previous=\u4e0a\u4e00\u6b65
-label.prev=\u4e0a\u4e00\u9875
-label.primary.allocated=\u5df2\u5206\u914d\u7684\u4e3b\u5b58\u50a8
-label.primary.network=\u4e3b\u7f51\u7edc
-label.primary.storage.count=\u4e3b\u5b58\u50a8\u6c60
-label.primary.storage.limits=\u4e3b\u5b58\u50a8\u9650\u5236(GiB)
-label.primary.storage=\u4e3b\u5b58\u50a8
-label.primary.used=\u5df2\u4f7f\u7528\u7684\u4e3b\u5b58\u50a8
-label.private.Gateway=\u4e13\u7528\u7f51\u5173
-label.private.interface=\u4e13\u7528\u63a5\u53e3
-label.private.ip.range=\u4e13\u7528 IP \u8303\u56f4
-label.private.ips=\u4e13\u7528 IP \u5730\u5740
-label.private.ip=\u4e13\u7528 IP \u5730\u5740
-label.privatekey=PKCS\#8 \u79c1\u94a5
-label.private.key=\u79c1\u94a5
-label.private.network=\u4e13\u7528\u7f51\u7edc
-label.private.port=\u4e13\u7528\u7aef\u53e3
-label.private.zone=\u4e13\u7528\u8d44\u6e90\u57df
-label.profile=\u914d\u7f6e\u6587\u4ef6
-label.project.dashboard=\u9879\u76ee\u63a7\u5236\u677f
-label.project.id=\u9879\u76ee ID
-label.project.invite=\u9080\u8bf7\u52a0\u5165\u9879\u76ee
-label.project.name=\u9879\u76ee\u540d\u79f0
-label.projects=\u9879\u76ee
-label.project=\u9879\u76ee
-label.project.view=\u9879\u76ee\u89c6\u56fe
-label.protocol.number=\u534f\u8bae\u7f16\u53f7
-label.protocol=\u534f\u8bae
-label.providers=\u63d0\u4f9b\u7a0b\u5e8f
-label.provider=\u63d0\u4f9b\u7a0b\u5e8f
-label.public.interface=\u516c\u7528\u63a5\u53e3
-label.public.ips=\u516c\u7528 IP \u5730\u5740
-label.public.ip=\u516c\u7528 IP \u5730\u5740
-label.public.key=\u516c\u94a5
-label.public.lb=\u516c\u5171\u8d1f\u8f7d\u5747\u8861\u5668
-label.public.load.balancer.provider=\u516c\u7528\u8d1f\u8f7d\u5e73\u8861\u5668\u63d0\u4f9b\u7a0b\u5e8f
-label.public.network=\u516c\u7528\u7f51\u7edc
-label.public.port=\u516c\u7528\u7aef\u53e3
-label.public.traffic=\u516c\u5171\u6d41\u91cf
-label.public.traffic.vswitch.name=\u516c\u5171\u6d41\u91cf\u865a\u62df\u4ea4\u6362\u673a\u540d\u79f0
-label.public.traffic.vswitch.type=\u516c\u5171\u6d41\u91cf\u865a\u62df\u4ea4\u6362\u673a\u7c7b\u578b
-label.public=\u516c\u7528
-label.public.zone=\u516c\u7528\u8d44\u6e90\u57df
-label.purpose=\u76ee\u7684
-label.Pxe.server.type=Pxe \u670d\u52a1\u5668\u7c7b\u578b
-label.qos.type=QoS \u7c7b\u578b
-label.quickview=\u5feb\u901f\u67e5\u770b
-label.quiesce.vm=\u9759\u9ed8 VM
-label.quiet.time.sec=\u5b89\u9759\u65f6\u95f4(\u79d2)
-label.quota.date=\u65e5\u671f
-label.quota.fullsummary=\u6240\u6709\u5e10\u6237
-label.quota.state=\u72b6\u6001
-label.rbd.id=Cephx \u7528\u6237
-label.rbd.monitor=Ceph \u76d1\u89c6\u5668
-label.rbd.pool=Ceph \u6c60
-label.rbd=RBD
-label.rbd.secret=Cephx \u5bc6\u94a5
-label.reboot=\u91cd\u65b0\u542f\u52a8
-label.recent.errors=\u6700\u8fd1\u51fa\u73b0\u7684\u9519\u8bef
-label.recover.vm=\u6062\u590d VM
-label.redundant.router.capability=\u5197\u4f59\u8def\u7531\u5668\u529f\u80fd
-label.redundant.router=\u5197\u4f59\u8def\u7531\u5668
-label.redundant.state=\u5197\u4f59\u72b6\u6001
-label.redundant.vpc=\u5197\u4f59VPC
-label.refresh.blades=\u5237\u65b0\u5200\u7247\u5f0f\u670d\u52a1\u5668
-label.refresh=\u5237\u65b0
-label.region.details=\u5730\u7406\u533a\u57df\u8be6\u60c5
-label.regionlevelvpc=\u5730\u7406\u533a\u57df\u7ea7 VPC
-label.region=\u5730\u7406\u533a\u57df
-label.reinstall.vm=\u91cd\u65b0\u5b89\u88c5 VM
-label.related=\u76f8\u5173\u8054
-label.release.account.lowercase=\u4ece\u5e10\u6237\u4e2d\u91ca\u653e
-label.release.account=\u4ece\u5e10\u6237\u4e2d\u91ca\u653e
-label.release.dedicated.cluster=\u91ca\u653e\u4e13\u7528\u7fa4\u96c6
-label.release.dedicated.host=\u91ca\u653e\u4e13\u7528\u4e3b\u673a
-label.release.dedicated.pod=\u91ca\u653e\u4e13\u7528\u63d0\u4f9b\u70b9
-label.release.dedicated.vlan.range=\u91ca\u653e\u4e13\u7528 VLAN \u8303\u56f4
-label.release.dedicated.zone=\u91ca\u653e\u4e13\u7528\u8d44\u6e90\u57df
-label.remind.later=\u4ee5\u540e\u63d0\u9192\u6211
-label.remove.ACL=\u5220\u9664 ACL
-label.remove.egress.rule=\u5220\u9664\u51fa\u53e3\u89c4\u5219
-label.remove.from.load.balancer=\u6b63\u5728\u4ece\u8d1f\u8f7d\u5e73\u8861\u5668\u4e2d\u5220\u9664\u5b9e\u4f8b
-label.remove.ingress.rule=\u5220\u9664\u5165\u53e3\u89c4\u5219
-label.remove.ip.range=\u5220\u9664 IP \u8303\u56f4
-label.remove.ldap=\u5220\u9664 LDAP
-label.remove.network.offering=\u5220\u9664\u7f51\u7edc\u65b9\u6848
-label.remove.pf=\u5220\u9664\u7aef\u53e3\u8f6c\u53d1\u89c4\u5219
-label.remove.project.account=\u4ece\u9879\u76ee\u4e2d\u5220\u9664\u5e10\u6237
-label.remove.region=\u5220\u9664\u5730\u7406\u533a\u57df
-label.remove.rule=\u5220\u9664\u89c4\u5219
-label.remove.ssh.key.pair=\u5220\u9664\u5bc6\u94a5\u5bf9
-label.remove.static.nat.rule=\u5220\u9664\u9759\u6001 NAT \u89c4\u5219
-label.remove.static.route=\u5220\u9664\u9759\u6001\u8def\u7531
-label.remove.this.physical.network=\u5220\u9664\u6b64\u7269\u7406\u7f51\u7edc
-label.remove.tier=\u5220\u9664\u5c42
-label.remove.vm.from.lb=\u4ece\u8d1f\u8f7d\u5e73\u8861\u5668\u89c4\u5219\u4e2d\u5220\u9664 VM
-label.remove.vm.load.balancer=\u4ece\u8d1f\u8f7d\u5e73\u8861\u5668\u4e2d\u5220\u9664 VM
-label.remove.vmware.datacenter=\u5220\u9664 VMware \u6570\u636e\u4e2d\u5fc3
-label.remove.vpc.offering=\u5220\u9664 VPC \u65b9\u6848
-label.remove.vpc=\u5220\u9664 VPC
-label.removing=\u6b63\u5728\u5220\u9664
-label.removing.user=\u6b63\u5728\u5220\u9664\u7528\u6237
-label.reource.id=\u8d44\u6e90 ID
-label.replace.acl.list=\u66ff\u6362 ACL \u5217\u8868
-label.replace.acl=\u66ff\u6362 ACL
-label.required=\u5fc5\u586b\u9879
-label.requires.upgrade=\u9700\u8981\u5347\u7ea7
-label.reserved.ip.range=\u9884\u7559 IP \u8303\u56f4
-label.reserved.system.gateway=\u9884\u7559\u7684\u7cfb\u7edf\u7f51\u5173
-label.reserved.system.ip=\u9884\u7559\u7684\u7cfb\u7edf IP
-label.reserved.system.netmask=\u9884\u7559\u7684\u7cfb\u7edf\u7f51\u7edc\u63a9\u7801
-label.reset.ssh.key.pair.on.vm=\u91cd\u7f6e\u5b9e\u4f8b\u7684SSH\u5bc6\u94a5\u5bf9
-label.reset.ssh.key.pair=\u91cd\u7f6eSSH\u5bc6\u94a5\u5bf9
-label.resetVM=\u91cd\u7f6e VM
-label.reset.VPN.connection=\u91cd\u7f6e VPN \u8fde\u63a5
-label.resize.new.offering.id=\u65b0\u65b9\u6848
-label.resize.new.size=\u65b0\u5efa\u5927\u5c0f(GB)
-label.resize.shrink.ok=\u662f\u5426\u786e\u5b9e\u8981\u7f29\u5c0f\u5377\u5927\u5c0f
-label.resource.limit.exceeded=\u5df2\u8d85\u51fa\u8d44\u6e90\u9650\u5236
-label.resource.limits=\u8d44\u6e90\u9650\u5236
-label.resource.name=\u8d44\u6e90\u540d\u79f0
-label.resource.state=\u8d44\u6e90\u72b6\u6001
-label.resources=\u8d44\u6e90
-label.resource=\u8d44\u6e90
-label.response.timeout.in.sec=\u54cd\u5e94\u8d85\u65f6(\u79d2)
-label.restart.network=\u91cd\u65b0\u542f\u52a8\u7f51\u7edc
-label.restart.required=\u9700\u8981\u91cd\u65b0\u542f\u52a8
-label.restart.vpc=\u91cd\u65b0\u542f\u52a8 VPC
-label.restore=\u8fd8\u539f
-label.retry.interval=\u91cd\u8bd5\u65f6\u95f4\u95f4\u9694
-label.review=\u6838\u5bf9
-label.revoke.project.invite=\u64a4\u9500\u9080\u8bf7
-label.roles=\u89d2\u8272
-label.role=\u89d2\u8272
-label.root.certificate=\u6839\u8bc1\u4e66
-label.root.disk.controller=\u6839\u78c1\u76d8\u63a7\u5236\u5668
-label.root.disk.offering=\u6839\u78c1\u76d8\u65b9\u6848
-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.rule.number=\u89c4\u5219\u7f16\u53f7
-label.rules=\u89c4\u5219
-label.rule=\u89c4\u5219
-label.running.vms=\u6b63\u5728\u8fd0\u884c\u7684 VM
-label.s3.access_key=\u8bbf\u95ee\u5bc6\u94a5
-label.s3.bucket=\u5b58\u50a8\u6876
-label.s3.connection_timeout=\u8fde\u63a5\u8d85\u65f6
-label.s3.endpoint=\u7aef\u70b9
-label.s3.max_error_retry=\u6700\u5927\u9519\u8bef\u91cd\u8bd5\u6b21\u6570
-label.s3.nfs.path=S3 NFS \u8def\u5f84
-label.s3.nfs.server=S3 NFS \u670d\u52a1\u5668
-label.s3.secret_key=\u5bc6\u94a5
-label.s3.socket_timeout=\u5957\u63a5\u5b57\u8d85\u65f6
-label.s3.use_https=\u4f7f\u7528 HTTPS
-label.saml.enable=\u6279\u51c6 SAML SSO
-label.saml.entity=\u8ba4\u8bc1\u65b9\u5f0f
-label.saturday=\u661f\u671f\u516d
-label.save.and.continue=\u4fdd\u5b58\u5e76\u7ee7\u7eed
-label.save.changes=\u4fdd\u5b58\u4fee\u6539
-label.save=\u4fdd\u5b58
-label.saving.processing=\u6b63\u5728\u4fdd\u5b58...
-label.scaledown.policy=\u51cf\u7f29\u7b56\u7565
-label.scale.up.policy=\u6269\u5c55\u7b56\u7565
-label.scaleup.policy=\u6269\u5c55\u7b56\u7565
-label.scope=\u8303\u56f4
-label.search=\u641c\u7d22
-label.secondary.ips=\u4e8c\u7ea7 IPs
-label.secondary.isolated.vlan.id=\u4e8c\u7ea7\u9694\u79bb VLAN ID
-label.secondary.staging.store.details=\u4e8c\u7ea7\u6682\u5b58\u5b58\u50a8\u8be6\u7ec6\u4fe1\u606f
-label.secondary.staging.store=\u4e8c\u7ea7\u6682\u5b58\u5b58\u50a8
-label.secondary.storage.count=\u4e8c\u7ea7\u5b58\u50a8\u6c60
-label.secondary.storage.details=\u4e8c\u7ea7\u5b58\u50a8\u8be6\u7ec6\u4fe1\u606f
-label.secondary.storage.limits=\u4e8c\u7ea7\u5b58\u50a8\u9650\u5236(GiB)
-label.secondary.storage=\u4e8c\u7ea7\u5b58\u50a8
-label.secondary.storage.vm=\u4e8c\u7ea7\u5b58\u50a8 VM
-label.secondary.used=\u5df2\u4f7f\u7528\u7684\u4e8c\u7ea7\u5b58\u50a8
-label.secret.key=\u5bc6\u94a5
-label.security.group.name=\u5b89\u5168\u7ec4\u540d\u79f0
-label.security.groups.enabled=\u5df2\u542f\u7528\u5b89\u5168\u7ec4
-label.security.groups=\u5b89\u5168\u7ec4
-label.security.group=\u5b89\u5168\u7ec4
-label.select.a.template=\u9009\u62e9\u4e00\u4e2a\u6a21\u677f
-label.select.a.zone=\u9009\u62e9\u4e00\u4e2a\u8d44\u6e90\u57df
-label.select.instance.to.attach.volume.to=\u9009\u62e9\u8981\u5c06\u5377\u9644\u52a0\u5230\u7684\u5b9e\u4f8b
-label.select.instance=\u9009\u62e9\u5b9e\u4f8b
-label.select.iso.or.template=\u9009\u62e9 ISO \u6216\u6a21\u677f
-label.select.offering=\u9009\u62e9\u65b9\u6848
-label.select.project=\u9009\u62e9\u9879\u76ee
-label.select.region=\u9009\u62e9\u5730\u7406\u533a\u57df
-label.select.template=\u9009\u62e9\u6a21\u677f
-label.select.tier=\u9009\u62e9\u5c42
-label.select=\u9009\u62e9
-label.select-view=\u9009\u62e9\u89c6\u56fe
-label.select.vm.for.static.nat=\u4e3a\u9759\u6001 NAT \u9009\u62e9 VM
-label.sent=\u5df2\u53d1\u9001
-label.server=\u670d\u52a1\u5668
-label.service.capabilities=\u670d\u52a1\u529f\u80fd
-label.service.offering.details=\u670d\u52a1\u65b9\u6848\u8be6\u60c5
-label.service.offering=\u670d\u52a1\u65b9\u6848
-label.service.state=\u670d\u52a1\u72b6\u6001
-label.services=\u670d\u52a1
-label.session.expired=\u4f1a\u8bdd\u5df2\u8fc7\u671f
-label.set.default.NIC=\u8bbe\u7f6e\u9ed8\u8ba4 NIC
-label.settings=\u8bbe\u7f6e
-label.setup.network=\u914d\u7f6e\u7f51\u7edc
-label.setup=\u8bbe\u7f6e
-label.set.up.zone.type=\u8bbe\u7f6e\u8d44\u6e90\u57df\u7c7b\u578b
-label.setup.zone=\u914d\u7f6e\u533a\u57df
-label.SharedMountPoint=SharedMountPoint
-label.shared=\u5df2\u5171\u4eab
-label.show.advanced.settings=\u663e\u793a\u9ad8\u7ea7\u8bbe\u7f6e
-label.show.ingress.rule=\u663e\u793a\u5165\u53e3\u89c4\u5219
-label.shutdown.provider=\u5173\u95ed\u63d0\u4f9b\u7a0b\u5e8f
-label.simplified.chinese.keyboard=\u7b80\u4f53\u4e2d\u6587\u952e\u76d8
-label.site.to.site.VPN=\u70b9\u5bf9\u70b9 VPN
-label.size=\u5927\u5c0f
-label.skip.guide=\u6211\u4ee5\u524d\u4f7f\u7528\u8fc7 CloudStack\uff0c\u8df3\u8fc7\u6b64\u6307\u5357
-label.smb.domain=SMB \u57df
-label.smb.password=SMB \u5bc6\u7801
-label.smb.username=SMB \u7528\u6237\u540d
-label.snapshot.limits=\u5feb\u7167\u9650\u5236
-label.snapshot.name=\u5feb\u7167\u540d\u79f0
-label.snapshot.schedule=\u8bbe\u7f6e\u91cd\u73b0\u5feb\u7167
-label.snapshot.s=\u5feb\u7167
-label.snapshots=\u5feb\u7167
-label.snapshot=\u5feb\u7167
-label.SNMP.community=SNMP \u793e\u533a
-label.SNMP.port=SNMP \u7aef\u53e3
-label.sockets=CPU \u63d2\u69fd
-label.source.ip.address=\u6e90 IP \u5730\u5740
-label.source.nat.supported=\u652f\u6301 SourceNAT
-label.source.nat=\u6e90 NAT
-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
-label.SR.name=SR \u540d\u79f0\u6807\u7b7e
-label.srx.details=SRX \u8be6\u7ec6\u4fe1\u606f
-label.srx=SRX
-label.ssh.key.pair.details=SSH\u5bc6\u94a5\u5bf9\u8be6\u60c5
-label.ssh.key.pair=SSH\u5bc6\u94a5\u5bf9
-label.ssh.key.pairs=SSH\u5bc6\u94a5\u5bf9
-label.standard.us.keyboard=\u6807\u51c6(US)\u952e\u76d8
-label.start.IP=\u8d77\u59cb IP
-label.start.lb.vm=\u542f\u52a8 LB VM
-label.start.port=\u8d77\u59cb\u7aef\u53e3
-label.start.reserved.system.IP=\u8d77\u59cb\u9884\u7559\u7cfb\u7edf IP
-label.start.vlan=\u8d77\u59cb VLAN
-label.start.vxlan=\u8d77\u59cb VXLAN
-label.state=\u72b6\u6001
-label.static.nat.enabled=\u5df2\u542f\u7528\u9759\u6001 NAT
-label.static.nat.to=\u9759\u6001 NAT \u76ee\u6807
-label.static.nat=\u9759\u6001 NAT
-label.static.nat.vm.details=\u9759\u6001 NAT VM \u8be6\u60c5
-label.static.routes=\u9759\u6001\u8def\u7531\u5668
-label.statistics=\u7edf\u8ba1\u6570\u636e
-label.status=\u72b6\u6001
-label.step.1.title=\u6b65\u9aa4 1\: <strong>\u9009\u62e9\u4e00\u4e2a\u6a21\u677f</strong>
-label.step.1=\u6b65\u9aa4 1
-label.step.2.title=\u6b65\u9aa4 2\: <strong>\u670d\u52a1\u65b9\u6848</strong>
-label.step.2=\u6b65\u9aa4 2
-label.step.3.title=\u6b65\u9aa4 3\: <strong id\="step3_label">\u9009\u62e9\u4e00\u79cd\u78c1\u76d8\u65b9\u6848</strong>
-label.step.3=\u6b65\u9aa4 3
-label.step.4.title=\u6b65\u9aa4 4\: <strong>\u7f51\u7edc</strong>
-label.step.4=\u6b65\u9aa4 4
-label.step.5.title=\u6b65\u9aa4 5\: <strong>\u6838\u5bf9</strong>
-label.step.5=\u6b65\u9aa4 5
-label.stickiness.method=\u7c98\u6027\u65b9\u6cd5
-label.stickiness=\u7c98\u6027
-label.sticky.cookie-name=Cookie \u540d\u79f0
-label.sticky.domain=\u57df
-label.sticky.expire=\u8fc7\u671f\u65e5\u671f
-label.sticky.holdtime=\u6301\u7eed\u65f6\u95f4
-label.sticky.indirect=indirect
-label.sticky.length=\u957f\u5ea6
-label.sticky.mode=\u6a21\u5f0f
-label.sticky.name=\u7c98\u6027\u540d\u79f0
-label.sticky.nocache=nocache
-label.sticky.postonly=postonly
-label.sticky.prefix=prefix
-label.sticky.request-learn=request-learn
-label.sticky.tablesize=\u8868\u5927\u5c0f
-label.stop.lb.vm=\u505c\u6b62 LB VM
-label.stopped.vms=\u5df2\u505c\u6b62\u7684 VM
-label.stop=\u505c\u6b62
-label.storage.pool=\u5b58\u50a8\u6c60
-label.storage.tags=\u5b58\u50a8\u6807\u7b7e
-label.storage.traffic=\u5b58\u50a8\u6d41\u91cf
-label.storage.type=\u5b58\u50a8\u7c7b\u578b
-label.storage=\u5b58\u50a8
-label.subdomain.access=\u5b50\u57df\u8bbf\u95ee
-label.submitted.by=[\u63d0\u4ea4\u8005\: <span id\="submitted_by"></span>]
-label.submit=\u63d0\u4ea4
-label.succeeded=\u6210\u529f
-label.sunday=\u661f\u671f\u65e5
-label.super.cidr.for.guest.networks=\u6765\u5bbe\u7f51\u7edc\u7684\u8d85\u7ea7 CIDR
-label.supported.services=\u652f\u6301\u7684\u670d\u52a1
-label.supported.source.NAT.type=\u652f\u6301\u7684\u6e90 NAT \u7c7b\u578b
-label.supportsstrechedl2subnet=\u652f\u6301\u6269\u5c55\u4e8c\u7ea7\u5b50\u7f51
-label.suspend.project=\u6682\u505c\u9879\u76ee
-label.switch.type=\u4ea4\u6362\u673a\u7c7b\u578b
-label.system.capacity=\u7cfb\u7edf\u5bb9\u91cf
-label.system.offering.for.router=\u8def\u7531\u5668\u7684\u7cfb\u7edf\u65b9\u6848
-label.system.offering=\u7cfb\u7edf\u65b9\u6848
-label.system.service.offering.details=\u7cfb\u7edf\u670d\u52a1\u65b9\u6848\u8be6\u60c5
-label.system.service.offering=\u7cfb\u7edf\u670d\u52a1\u65b9\u6848
-label.system.vm.details=\u7cfb\u7edf VM \u8be6\u7ec6\u4fe1\u606f
-label.system.vm.scaled.up=\u5df2\u6269\u5c55\u7cfb\u7edf VM
-label.system.vms=\u7cfb\u7edf VM
-label.system.vm.type=\u7cfb\u7edf VM \u7c7b\u578b
-label.system.vm=\u7cfb\u7edf VM
-label.system.wide.capacity=\u6574\u4e2a\u7cfb\u7edf\u7684\u5bb9\u91cf
-label.tagged=\u5df2\u6807\u8bb0
-label.tag.key=\u6807\u8bb0\u5bc6\u94a5
-label.tags=\u6807\u7b7e
-label.tag.value=\u6807\u8bb0\u503c
-label.target.iqn=\u76ee\u6807 IQN
-label.task.completed=\u5df2\u5b8c\u6210\u4efb\u52a1
-label.template.limits=\u6a21\u677f\u9650\u5236
-label.template=\u6a21\u677f
-label.TFTP.dir=TFTP \u76ee\u5f55
-label.tftp.root.directory=Tftp \u6839\u76ee\u5f55
-label.theme.default=\u9ed8\u8ba4\u4e3b\u9898
-label.theme.grey=\u81ea\u5b9a\u4e49 - \u7070\u8272
-label.theme.lightblue=\u81ea\u5b9a\u4e49 - \u6de1\u84dd\u8272
-label.threshold=\u9608\u503c
-label.thursday=\u661f\u671f\u56db
-label.tier.details=\u5c42\u8be6\u7ec6\u4fe1\u606f
-label.tier=\u5c42
-label.time.colon=\u65f6\u95f4\:
-label.timeout.in.second = \u8d85\u65f6(\u79d2)
-label.timeout=\u8d85\u65f6
-label.time=\u65f6\u95f4
-label.timezone.colon=\u65f6\u533a
-label.time.zone=\u65f6\u533a
-label.timezone=\u65f6\u533a
-label.token=\u4ee4\u724c
-label.total.cpu=CPU \u603b\u91cf
-label.total.CPU=CPU \u603b\u91cf
-label.total.hosts=\u603b\u4e3b\u673a\u6570
-label.total.memory=\u5185\u5b58\u603b\u91cf
-label.total.of.ip=IP\u5730\u5740\u603b\u6570
-label.total.of.vm=\u603b VM \u6570
-label.total.storage=\u5b58\u50a8\u603b\u91cf
-label.total.virtual.routers=\u865a\u62df\u8def\u7531\u5668\u603b\u6570
-label.total.virtual.routers.upgrade=\u9700\u8981\u5347\u7ea7\u7684\u865a\u62df\u8def\u7531\u5668\u603b\u6570
-label.total.vms=\u603b VM \u6570
-label.traffic.label=\u6d41\u91cf\u6807\u7b7e
-label.traffic.types=\u6d41\u91cf\u7c7b\u578b
-label.traffic.type=\u6d41\u91cf\u7c7b\u578b
-label.tuesday=\u661f\u671f\u4e8c
-label.type.id=\u7c7b\u578b ID
-label.type.lower=\u7c7b\u578b
-label.type=\u7c7b\u578b
-label.ucs=UCS
-label.uk.keyboard=\u7f8e\u5f0f\u952e\u76d8
-label.unavailable=\u4e0d\u53ef\u7528
-label.unhealthy.threshold=\u4e0d\u6b63\u5e38\u9608\u503c
-label.unlimited=\u65e0\u9650\u5236
-label.untagged=\u5df2\u53d6\u6d88\u6807\u8bb0
-label.update.project.resources=\u66f4\u65b0\u9879\u76ee\u8d44\u6e90
-label.update.ssl.cert= SSL \u8bc1\u4e66
-label.update.ssl= SSL \u8bc1\u4e66
-label.updating=\u6b63\u5728\u66f4\u65b0
-label.upgrade.required=\u9700\u8981\u5347\u7ea7
-label.upgrade.router.newer.template=\u5347\u7ea7\u8def\u7531\u5668\u4ee5\u4f7f\u7528\u66f4\u65b0\u7684\u6a21\u677f
-label.upload.from.local=\u901a\u8fc7\u672c\u5730\u4e0a\u4f20
-label.upload.template.from.local=\u901a\u8fc7\u672c\u5730\u4e0a\u4f20\u6a21\u677f
-label.upload=\u4e0a\u8f7d
-label.upload.volume.from.local=\u901a\u8fc7\u672c\u5730\u4e0a\u4f20\u5377
-label.upload.volume.from.url=\u901a\u8fc7URL\u4e0a\u4f20\u5377
-label.upload.volume=\u4e0a\u8f7d\u5377
-label.url=URL
-label.usage.interface=\u4f7f\u7528\u754c\u9762
-label.usage.sanity.result=\u4f7f\u7528\u5065\u5168\u6027\u68c0\u67e5\u7ed3\u679c
-label.usage.server=\u4f7f\u7528\u670d\u52a1\u5668
-label.used=\u5df2\u4f7f\u7528
-label.user.data=\u7528\u6237\u6570\u636e
-label.user.details=\u7528\u6237\u8be6\u60c5
-label.username.lower=\u7528\u6237\u540d
-label.username=\u7528\u6237\u540d
-label.users=\u7528\u6237
-label.user=\u7528\u6237
-label.user.vm=\u7528\u6237 VM
-label.use.vm.ips=\u4f7f\u7528 VM IP
-label.use.vm.ip=\u4f7f\u7528 VM IP\:
-label.value=\u503c
-label.vcdcname=vCenter DC \u540d\u79f0
-label.vcenter.cluster=vCenter \u7fa4\u96c6
-label.vcenter.datacenter=vCenter \u6570\u636e\u4e2d\u5fc3
-label.vcenter.datastore=vCenter \u6570\u636e\u5b58\u50a8
-label.vcenter.host=vCenter \u4e3b\u673a
-label.vcenter.password=vCenter \u5bc6\u7801
-label.vcenter.username=vCenter \u7528\u6237\u540d
-label.vcenter=vCenter
-label.vcipaddress=vCenter IP \u5730\u5740
-label.version=\u7248\u672c
-label.vgpu.max.resolution=\u6700\u5927\u5206\u8fa8\u7387
-label.vgpu.max.vgpu.per.gpu=\u6bcf\u4e2a GPU \u7684 vGPU \u6570
-label.vgpu.remaining.capacity=\u5269\u4f59\u5bb9\u91cf
-label.vgpu.type=vGPU \u7c7b\u578b
-label.vgpu=VGPU
-label.vgpu.video.ram=\u89c6\u9891 RAM
-label.view.all=\u67e5\u770b\u5168\u90e8
-label.view.console=\u67e5\u770b\u63a7\u5236\u53f0
-label.viewing=\u67e5\u770b
-label.view.more=\u67e5\u770b\u66f4\u591a
-label.view.secondary.ips=\u67e5\u770b\u4e8c\u7ea7 IP
-label.view=\u67e5\u770b
-label.virtual.appliance.details=\u865a\u62df\u8bbe\u5907\u8be6\u7ec6\u4fe1\u606f
-label.virtual.appliances=\u865a\u62df\u8bbe\u5907
-label.virtual.appliance=\u865a\u62df\u8bbe\u5907
-label.virtual.machines=\u865a\u62df\u673a
-label.virtual.machine=\u865a\u62df\u673a
-label.virtual.networking=\u865a\u62df\u7f51\u7edc\u8fde\u63a5
-label.virtual.network=\u865a\u62df\u7f51\u7edc
-label.virtual.routers.group.account=\u865a\u62df\u8def\u7531\u5668(\u6309\u5e10\u6237\u5206\u7ec4)
-label.virtual.routers.group.cluster=\u865a\u62df\u8def\u7531\u5668(\u6309\u7fa4\u96c6\u5206\u7ec4)
-label.virtual.routers.group.pod=\u865a\u62df\u8def\u7531\u5668(\u6309\u63d0\u4f9b\u70b9\u5206\u7ec4)
-label.virtual.routers.group.zone=\u865a\u62df\u8def\u7531\u5668(\u6309\u8d44\u6e90\u57df\u5206\u7ec4)
-label.virtual.routers=\u865a\u62df\u8def\u7531\u5668
-label.virtual.router=\u865a\u62df\u8def\u7531\u5668
-label.vlan.id=VLAN/VNI ID
-label.vlan.only=VLAN
-label.vlan.range.details=VLAN \u8303\u56f4\u8be6\u7ec6\u4fe1\u606f
-label.vlan.ranges=VLAN \u8303\u56f4
-label.vlan.range=VLAN/VNI \u8303\u56f4
-label.vlan=VLAN/VNI
-label.vlan.vni.ranges=VLAN/VNI \u8303\u56f4
-label.vlan.vni.range=VLAN/VNI \u8303\u56f4
-label.vm.add=\u6dfb\u52a0\u5b9e\u4f8b
-label.vm.destroy=\u9500\u6bc1
-label.vm.display.name=VM \u663e\u793a\u540d\u79f0
-label.VMFS.datastore=VMFS \u6570\u636e\u5b58\u50a8
-label.vmfs=VMFS
-label.vm.id=VM ID
-label.vm.ip=VM IP \u5730\u5740
-label.vm.name=VM \u540d\u79f0
-label.vm.password=VM \u7684\u5bc6\u7801
-label.vm.reboot=\u91cd\u65b0\u542f\u52a8
-label.VMs.in.tier=\u5c42\u4e2d\u7684 VM
-label.vmsnapshot.current=\u6700\u65b0\u7248\u672c
-label.vmsnapshot.memory=\u5feb\u7167\u5185\u5b58
-label.vmsnapshot.parentname=\u7236\u540d\u79f0
-label.vmsnapshot.type=\u7c7b\u578b
-label.vmsnapshot=VM \u5feb\u7167
-label.vm.start=\u542f\u52a8
-label.vm.state=VM \u72b6\u6001
-label.vm.stop=\u505c\u6b62
-label.vms=VM
-label.vmware.datacenter.id=VMware \u6570\u636e\u4e2d\u5fc3 ID
-label.vmware.datacenter.name=VMware \u6570\u636e\u4e2d\u5fc3\u540d\u79f0
-label.vmware.datacenter.vcenter=VMware \u6570\u636e\u4e2d\u5fc3 vCenter
-label.vmware.traffic.label=VMware \u6d41\u91cf\u6807\u7b7e
-label.vnet.id=VLAN/VNI ID
-label.vnet=VLAN/VNI
-label.vnmc.devices=VNMC \u8bbe\u5907
-label.vnmc=VNMC
-label.volatile=\u53ef\u53d8
-label.volgroup=\u5377\u7ec4
-label.volume.details=\u5377\u8be6\u7ec6\u4fe1\u606f
-label.volume.limits=\u5377\u9650\u5236
-label.volume.migrated=\u5377\u5df2\u8fc1\u79fb
-label.volume.name=\u5377\u540d\u79f0
-label.volumes=\u5377
-label.volume=\u5377
-label.vpc.distributedvpcrouter=\u5206\u5e03\u5f0f VPC \u8def\u7531\u5668
-label.vpc.id=VPC ID
-label.VPC.limits=VPC \u9650\u5236
-label.vpc.offering.details=VPC \u65b9\u6848\u8be6\u7ec6\u4fe1\u606f
-label.vpc.offering=VPC \u65b9\u6848
-label.vpc.router.details=VPC \u8def\u7531\u5668\u8be6\u7ec6\u4fe1\u606f
-label.VPC.router.details=VPC \u8def\u7531\u5668\u8be6\u7ec6\u4fe1\u606f
-label.vpc.supportsregionlevelvpc=\u652f\u6301\u5730\u7406\u533a\u57df\u7ea7 VPC
-label.vpc.virtual.router=VPC \u865a\u62df\u8def\u7531\u5668
-label.vpc=VPC
-label.VPN.connection=VPN \u8fde\u63a5
-label.vpn.customer.gateway=VPN \u5ba2\u6237\u7f51\u5173
-label.VPN.customer.gateway=VPN \u5ba2\u6237\u7f51\u5173
-label.VPN.gateway=VPN \u7f51\u5173
-label.vpn=VPN
-label.vsmctrlvlanid=\u63a7\u5236 VLAN ID
-label.vsmpktvlanid=\u6570\u636e\u5305 VLAN ID
-label.vsmstoragevlanid=\u5b58\u50a8 VLAN ID
-label.vsphere.managed=\u7531 vSphere \u7ba1\u7406
-label.vswitch.name=vSwitch \u540d\u79f0
-label.vSwitch.type=vSwitch \u7c7b\u578b
-label.vxlan.id=VXLAN ID
-label.vxlan.range=VXLAN \u8303\u56f4
-label.vxlan=VXLAN
-label.waiting=\u6b63\u5728\u7b49\u5f85
-label.warning=\u8b66\u544a
-label.warn=\u8b66\u544a
-label.warn.upper=\u8b66\u544a
-label.wednesday=\u661f\u671f\u4e09
-label.weekly=\u6bcf\u5468
-label.welcome.cloud.console=\u6b22\u8fce\u4f7f\u7528\u7ba1\u7406\u63a7\u5236\u53f0
-label.welcome=\u6b22\u8fce
-label.what.is.cloudstack=\u4ec0\u4e48\u662f CloudStack&\#8482?
-label.xenserver.tools.version.61.plus=\u539f\u59cb XS \u7248\u672c\u4e3a 6.1+
-label.Xenserver.Tools.Version61plus=\u539f\u59cb XS \u7248\u672c\u4e3a 6.1+
-label.xenserver.traffic.label=XenServer \u6d41\u91cf\u6807\u7b7e
-label.yes=\u662f
-label.zone.dedicated=\u8d44\u6e90\u57df\u5df2\u4e13\u7528
-label.zone.details=\u8d44\u6e90\u57df\u8be6\u7ec6\u4fe1\u606f
-label.zone.id=\u8d44\u6e90\u57df ID
-label.zone.lower=\u8d44\u6e90\u57df
-label.zone.name=\u533a\u57df\u540d\u79f0
-label.zone.step.1.title=\u6b65\u9aa4 1\: <strong>\u9009\u62e9\u4e00\u4e2a\u7f51\u7edc</strong>
-label.zone.step.2.title=\u6b65\u9aa4 2\: <strong>\u6dfb\u52a0\u4e00\u4e2a\u8d44\u6e90\u57df</strong>
-label.zone.step.3.title=\u6b65\u9aa4 3\: <strong>\u6dfb\u52a0\u4e00\u4e2a\u63d0\u4f9b\u70b9</strong>
-label.zone.step.4.title=\u6b65\u9aa4 4\: <strong>\u6dfb\u52a0\u4e00\u4e2a IP \u8303\u56f4</strong>
-label.zones=\u8d44\u6e90\u57df
-label.zone.type=\u8d44\u6e90\u57df\u7c7b\u578b
-label.zone=\u8d44\u6e90\u57df
-label.zone.wide=\u6574\u4e2a\u8d44\u6e90\u57df
-label.zoneWizard.trafficType.guest=\u6765\u5bbe\: \u6700\u7ec8\u7528\u6237\u865a\u62df\u673a\u4e4b\u95f4\u7684\u6d41\u91cf
-label.zoneWizard.trafficType.management=\u7ba1\u7406\: CloudStack \u7684\u5185\u90e8\u8d44\u6e90(\u5305\u62ec\u4e0e\u7ba1\u7406\u670d\u52a1\u5668\u901a\u4fe1\u7684\u4efb\u4f55\u7ec4\u4ef6\uff0c\u4f8b\u5982\u4e3b\u673a\u548c CloudStack \u7cfb\u7edf VM)\u4e4b\u95f4\u7684\u6d41\u91cf
-label.zoneWizard.trafficType.public=\u516c\u7528\: \u4e91\u4e2d Internet \u4e0e\u865a\u62df\u673a\u4e4b\u95f4\u7684\u6d41\u91cf\u3002
-label.zoneWizard.trafficType.storage=\u5b58\u50a8\: \u4e3b\u5b58\u50a8\u670d\u52a1\u5668\u4e0e\u4e8c\u7ea7\u5b58\u50a8\u670d\u52a1\u5668(\u4f8b\u5982 VM \u6a21\u677f\u4e0e\u5feb\u7167)\u4e4b\u95f4\u7684\u6d41\u91cf
-managed.state=\u6258\u7ba1\u72b6\u6001
-message.acquire.ip.nic=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u83b7\u53d6\u6b64 NIC \u7684\u65b0\u4e8c\u7ea7 IP\u3002<br/>\u6ce8\u610f\: \u60a8\u9700\u8981\u5728\u865a\u62df\u673a\u5185\u90e8\u624b\u52a8\u914d\u7f6e\u65b0\u83b7\u53d6\u7684\u4e8c\u7ea7 IP\u3002
-message.acquire.new.ip=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e3a\u6b64\u7f51\u7edc\u83b7\u53d6\u4e00\u4e2a\u65b0 IP\u3002
-message.acquire.new.ip.vpc=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e3a\u6b64 VPC \u83b7\u53d6\u4e00\u4e2a\u65b0 IP\u3002
-message.acquire.public.ip=\u8bf7\u9009\u62e9\u4e00\u4e2a\u8981\u4ece\u4e2d\u83b7\u53d6\u65b0 IP \u7684\u8d44\u6e90\u57df\u3002
-message.action.cancel.maintenance.mode=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u53d6\u6d88\u6b64\u7ef4\u62a4\u6a21\u5f0f\u3002
-message.action.cancel.maintenance=\u5df2\u6210\u529f\u53d6\u6d88\u7ef4\u62a4\u60a8\u7684\u4e3b\u673a\u3002\u6b64\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u957f\u8fbe\u51e0\u5206\u949f\u65f6\u95f4\u3002
-message.action.change.service.warning.for.instance=\u5fc5\u987b\u5148\u7981\u7528\u60a8\u7684\u5b9e\u4f8b\uff0c\u7136\u540e\u518d\u5c1d\u8bd5\u66f4\u6539\u5176\u5f53\u524d\u7684\u670d\u52a1\u65b9\u6848\u3002
-message.action.change.service.warning.for.router=\u5fc5\u987b\u5148\u505c\u6b62\u60a8\u7684\u8def\u7531\u5668\uff0c\u7136\u540e\u518d\u5c1d\u8bd5\u66f4\u6539\u5176\u5f53\u524d\u7684\u670d\u52a1\u65b9\u6848\u3002
-message.action.delete.cluster=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u7fa4\u96c6\u3002
-message.action.delete.disk.offering=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u78c1\u76d8\u65b9\u6848\u3002
-message.action.delete.domain=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u57df\u3002
-message.action.delete.external.firewall=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5916\u90e8\u9632\u706b\u5899\u3002\u8b66\u544a\: \u5982\u679c\u60a8\u8ba1\u5212\u91cd\u65b0\u6dfb\u52a0\u540c\u4e00\u4e2a\u5916\u90e8\u9632\u706b\u5899\uff0c\u5219\u5fc5\u987b\u5728\u8bbe\u5907\u4e0a\u91cd\u7f6e\u4f7f\u7528\u6570\u636e\u3002
-message.action.delete.external.load.balancer=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5916\u90e8\u8d1f\u8f7d\u5e73\u8861\u5668\u3002\u8b66\u544a\: \u5982\u679c\u60a8\u8ba1\u5212\u91cd\u65b0\u6dfb\u52a0\u540c\u4e00\u4e2a\u5916\u90e8\u8d1f\u8f7d\u5e73\u8861\u5668\uff0c\u5219\u5fc5\u987b\u5728\u8bbe\u5907\u4e0a\u91cd\u7f6e\u4f7f\u7528\u6570\u636e\u3002
-message.action.delete.ingress.rule=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5165\u53e3\u89c4\u5219\u3002
-message.action.delete.ISO.for.all.zones=\u6b64 ISO \u7531\u6240\u6709\u8d44\u6e90\u57df\u4f7f\u7528\u3002\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06\u5176\u4ece\u6240\u6709\u8d44\u6e90\u57df\u4e2d\u5220\u9664\u3002
-message.action.delete.ISO=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64 ISO\u3002
-message.action.delete.network=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u7f51\u7edc\u3002
-message.action.delete.nexusVswitch=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64 Nexus 1000v
-message.action.delete.nic=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u79fb\u9664\u6b64 NIC\uff0c\u6b64\u64cd\u4f5c\u8fd8\u5c06\u4ece VM \u4e2d\u79fb\u9664\u5173\u8054\u7684\u7f51\u7edc\u3002
-message.action.delete.physical.network=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u7269\u7406\u7f51\u7edc
-message.action.delete.pod=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u63d0\u4f9b\u70b9\u3002
-message.action.delete.primary.storage=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u4e3b\u5b58\u50a8\u3002
-message.action.delete.secondary.storage=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u4e8c\u7ea7\u5b58\u50a8\u3002
-message.action.delete.security.group=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5b89\u5168\u7ec4\u3002
-message.action.delete.service.offering=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u670d\u52a1\u65b9\u6848\u3002
-message.action.delete.snapshot=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5feb\u7167\u3002
-message.action.delete.system.service.offering=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u7cfb\u7edf\u670d\u52a1\u65b9\u6848\u3002
-message.action.delete.template.for.all.zones=\u6b64\u6a21\u677f\u7531\u6240\u6709\u8d44\u6e90\u57df\u4f7f\u7528\u3002\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06\u5176\u4ece\u6240\u6709\u8d44\u6e90\u57df\u4e2d\u5220\u9664\u3002
-message.action.delete.template=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u6a21\u677f\u3002
-message.action.delete.volume=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5377\u3002
-message.action.delete.zone=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u8d44\u6e90\u57df\u3002
-message.action.destroy.instance=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u9500\u6bc1\u6b64\u5b9e\u4f8b\u3002
-message.action.destroy.systemvm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u9500\u6bc1\u6b64\u7cfb\u7edf VM\u3002
-message.action.disable.cluster=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64\u7fa4\u96c6\u3002
-message.action.disable.nexusVswitch=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64 Nexus 1000v
-message.action.disable.physical.network=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64\u7269\u7406\u7f51\u7edc\u3002
-message.action.disable.pod=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64\u63d0\u4f9b\u70b9\u3002
-message.action.disable.static.NAT=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u9759\u6001 NAT\u3002
-message.action.disable.zone=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64\u8d44\u6e90\u57df\u3002
-message.action.downloading.template=\u6b63\u5728\u4e0b\u8f7d\u6a21\u677f\u3002
-message.action.download.iso=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e0b\u8f7d\u6b64 ISO\u3002
-message.action.download.template=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e0b\u8f7d\u6b64\u6a21\u677f\u3002
-message.action.enable.cluster=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u6b64\u7fa4\u96c6\u3002
-message.action.enable.maintenance=\u5df2\u6210\u529f\u51c6\u5907\u597d\u7ef4\u62a4\u60a8\u7684\u4e3b\u673a\u3002\u6b64\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u957f\u8fbe\u51e0\u5206\u949f\u6216\u66f4\u957f\u65f6\u95f4\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u5f53\u524d\u6b64\u4e3b\u673a\u4e0a\u7684 VM \u6570\u91cf\u3002
-message.action.enable.nexusVswitch=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u6b64 Nexus 1000v
-message.action.enable.physical.network=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u6b64\u7269\u7406\u7f51\u7edc\u3002
-message.action.enable.pod=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u6b64\u63d0\u4f9b\u70b9\u3002
-message.action.enable.zone=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u6b64\u8d44\u6e90\u57df\u3002
-message.action.expunge.instance=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5b9e\u4f8b\u3002
-message.action.force.reconnect=\u5df2\u6210\u529f\u5f3a\u5236\u91cd\u65b0\u8fde\u63a5\u60a8\u7684\u4e3b\u673a\u3002\u6b64\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u957f\u8fbe\u51e0\u5206\u949f\u65f6\u95f4\u3002
-message.action.host.enable.maintenance.mode=\u542f\u7528\u7ef4\u62a4\u6a21\u5f0f\u4f1a\u5bfc\u81f4\u5c06\u6b64\u4e3b\u673a\u4e0a\u6b63\u5728\u8fd0\u884c\u7684\u6240\u6709\u5b9e\u4f8b\u5b9e\u65f6\u8fc1\u79fb\u5230\u4efb\u4f55\u53ef\u7528\u7684\u4e3b\u673a\u3002
-message.action.instance.reset.password=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u66f4\u6539\u6b64\u865a\u62df\u673a\u7684 ROOT \u7528\u6237\u5bc6\u7801\u3002
-message.action.manage.cluster=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u6258\u7ba1\u6b64\u7fa4\u96c6\u3002
-message.action.primarystorage.enable.maintenance.mode=\u8b66\u544a\: \u5c06\u4e3b\u5b58\u50a8\u7f6e\u4e8e\u7ef4\u62a4\u6a21\u5f0f\u5c06\u5bfc\u81f4\u4f7f\u7528\u4e3b\u5b58\u50a8\u4e2d\u7684\u5377\u7684\u6240\u6709 VM \u505c\u6b62\u8fd0\u884c\u3002\u662f\u5426\u8981\u7ee7\u7eed?
-message.action.reboot.instance=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91cd\u65b0\u542f\u52a8\u6b64\u5b9e\u4f8b\u3002
-message.action.reboot.router=\u6b64\u865a\u62df\u8def\u7531\u5668\u63d0\u4f9b\u7684\u6240\u6709\u670d\u52a1\u90fd\u5c06\u4e2d\u65ad\u3002\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91cd\u65b0\u542f\u52a8\u6b64\u8def\u7531\u5668\u3002
-message.action.reboot.systemvm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91cd\u65b0\u542f\u52a8\u6b64\u7cfb\u7edf VM\u3002
-message.action.release.ip=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91ca\u653e\u6b64 IP\u3002
-message.action.remove.host=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u4e3b\u673a\u3002
-message.action.reset.password.off=\u60a8\u7684\u5b9e\u4f8b\u5f53\u524d\u4e0d\u652f\u6301\u6b64\u529f\u80fd\u3002
-message.action.reset.password.warning=\u5fc5\u987b\u5148\u505c\u6b62\u60a8\u7684\u5b9e\u4f8b\uff0c\u7136\u540e\u518d\u5c1d\u8bd5\u66f4\u6539\u5176\u5f53\u524d\u7684\u5bc6\u7801\u3002
-message.action.restore.instance=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u8fd8\u539f\u6b64\u5b9e\u4f8b\u3002
-message.action.revert.snapshot=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06\u62e5\u6709\u7684\u5377\u8fd8\u539f\u4e3a\u6b64\u5feb\u7167\u3002
-message.action.start.instance=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u52a8\u6b64\u5b9e\u4f8b\u3002
-message.action.start.router=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u52a8\u6b64\u8def\u7531\u5668\u3002
-message.action.start.systemvm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u52a8\u6b64\u7cfb\u7edf VM\u3002
-message.action.stop.instance=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u505c\u6b62\u6b64\u5b9e\u4f8b\u3002
-message.action.stop.router=\u6b64\u865a\u62df\u8def\u7531\u5668\u63d0\u4f9b\u7684\u6240\u6709\u670d\u52a1\u90fd\u5c06\u4e2d\u65ad\u3002\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u505c\u6b62\u6b64\u8def\u7531\u5668\u3002
-message.action.stop.systemvm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u505c\u6b62\u6b64\u7cfb\u7edf VM\u3002
-message.action.take.snapshot=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u521b\u5efa\u6b64\u5377\u7684\u5feb\u7167\u3002
-message.action.unmanage.cluster=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u53d6\u6d88\u6258\u7ba1\u6b64\u7fa4\u96c6\u3002
-message.action.vmsnapshot.delete=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64 VM \u5feb\u7167\u3002
-message.action.vmsnapshot.revert=\u8fd8\u539f VM \u5feb\u7167
-message.activate.project=\u662f\u5426\u786e\u5b9e\u8981\u6fc0\u6d3b\u6b64\u9879\u76ee?
-message.add.cluster=\u5411\u8d44\u6e90\u57df <b><span id\="zone_name"></span></b>\u3001\u63d0\u4f9b\u70b9 <b><span id\="pod_name"></span></b> \u4e2d\u6dfb\u52a0\u4e00\u4e2a\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u6258\u7ba1\u7684\u7fa4\u96c6
-message.add.cluster.zone=\u5411\u8d44\u6e90\u57df <b><span id\="zone_name"></span></b> \u4e2d\u6dfb\u52a0\u4e00\u4e2a\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u6258\u7ba1\u7684\u7fa4\u96c6
-message.add.disk.offering=\u8bf7\u6307\u5b9a\u4ee5\u4e0b\u53c2\u6570\u4ee5\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u78c1\u76d8\u65b9\u6848
-message.add.domain=\u8bf7\u6307\u5b9a\u8981\u5728\u6b64\u57df\u4e0b\u521b\u5efa\u7684\u5b50\u57df
-message.added.new.nuage.vsp.controller=\u6dfb\u52a0\u65b0 Nuage Vsp \u63a7\u5236\u5668
-message.added.vpc.offering=\u6dfb\u52a0 VPC \u65b9\u6848
-message.add.firewall=\u5411\u8d44\u6e90\u57df\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u9632\u706b\u5899
-message.add.guest.network=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u6dfb\u52a0\u4e00\u4e2a\u6765\u5bbe\u7f51\u7edc
-message.add.host=\u8bf7\u6307\u5b9a\u4ee5\u4e0b\u53c2\u6570\u4ee5\u6dfb\u52a0\u4e00\u53f0\u65b0\u4e3b\u673a
-message.adding.host=\u6b63\u5728\u6dfb\u52a0\u4e3b\u673a
-message.adding.Netscaler.device=\u6b63\u5728\u6dfb\u52a0 NetScaler \u8bbe\u5907
-message.adding.Netscaler.provider=\u6b63\u5728\u6dfb\u52a0 NetScaler \u63d0\u4f9b\u7a0b\u5e8f
-message.add.ip.range.direct.network=\u5411\u8d44\u6e90\u57df <b><span id\="zone_name"></span></b> \u4e2d\u7684\u76f4\u63a5\u7f51\u7edc <b><span id\="directnetwork_name"></span></b> \u6dfb\u52a0\u4e00\u4e2a IP \u8303\u56f4
-message.add.ip.range.to.pod=<p>\u5411\u63d0\u4f9b\u70b9\u6dfb\u52a0\u4e00\u4e2a IP \u8303\u56f4\: <b><span id\="pod_name_label"></span></b></p>
-message.add.ip.range=\u5411\u8d44\u6e90\u57df\u4e2d\u7684\u516c\u7528\u7f51\u7edc\u6dfb\u52a0\u4e00\u4e2a IP \u8303\u56f4
-message.additional.networks.desc=\u8bf7\u9009\u62e9\u865a\u62df\u673a\u8981\u8fde\u63a5\u5230\u7684\u5176\u4ed6\u7f51\u7edc\u3002
-message.add.load.balancer=\u5411\u8d44\u6e90\u57df\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u8d1f\u8f7d\u5e73\u8861\u5668
-message.add.load.balancer.under.ip=\u5df2\u5728\u4ee5\u4e0b IP \u4e0b\u6dfb\u52a0\u8d1f\u8f7d\u5e73\u8861\u5668\u89c4\u5219\:
-message.add.network=\u4e3a\u8d44\u6e90\u57df <b><span id\="zone_name"></span></b> \u6dfb\u52a0\u4e00\u4e2a\u65b0\u7f51\u7edc
-message.add.new.gateway.to.vpc=\u8bf7\u6307\u5b9a\u5c06\u65b0\u7f51\u5173\u6dfb\u52a0\u5230\u6b64 VPC \u6240\u9700\u7684\u4fe1\u606f\u3002
-message.add.pod.during.zone.creation=\u6bcf\u4e2a\u8d44\u6e90\u57df\u4e2d\u5fc5\u987b\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u63d0\u4f9b\u70b9\uff0c\u73b0\u5728\u6211\u4eec\u5c06\u6dfb\u52a0\u7b2c\u4e00\u4e2a\u63d0\u4f9b\u70b9\u3002\u63d0\u4f9b\u70b9\u4e2d\u5305\u542b\u4e3b\u673a\u548c\u4e3b\u5b58\u50a8\u670d\u52a1\u5668\uff0c\u60a8\u5c06\u5728\u968f\u540e\u7684\u67d0\u4e2a\u6b65\u9aa4\u4e2d\u6dfb\u52a0\u8fd9\u4e9b\u4e3b\u673a\u548c\u670d\u52a1\u5668\u3002\u9996\u5148\uff0c\u8bf7\u4e3a CloudStack \u7684\u5185\u90e8\u7ba1\u7406\u6d41\u91cf\u914d\u7f6e\u4e00\u4e2a\u9884\u7559 IP \u5730\u5740\u8303\u56f4\u3002\u9884\u7559\u7684 IP \u8303\u56f4\u5bf9\u4e91\u4e2d\u7684\u6bcf\u4e2a\u8d44\u6e90\u57df\u6765\u8bf4\u5fc5\u987b\u552f\u4e00\u3002
-message.add.pod=\u4e3a\u8d44\u6e90\u57df <b><span id\="add_pod_zone_name"></span></b> \u6dfb\u52a0\u4e00\u4e2a\u65b0\u63d0\u4f9b\u70b9
-message.add.primary.storage=\u4e3a\u8d44\u6e90\u57df <b><span id\="add_pod_zone_name"></span></b>\u3001\u63d0\u4f9b\u70b9 <b><span id\="pod_name"></span></b> \u6dfb\u52a0\u4e00\u4e2a\u65b0\u4e3b\u5b58\u50a8
-message.add.primary=\u8bf7\u6307\u5b9a\u4ee5\u4e0b\u53c2\u6570\u4ee5\u6dfb\u52a0\u4e00\u4e2a\u65b0\u4e3b\u5b58\u50a8
-message.add.region=\u8bf7\u6307\u5b9a\u6dfb\u52a0\u65b0\u5730\u7406\u533a\u57df\u6240\u9700\u7684\u4fe1\u606f\u3002
-message.add.secondary.storage=\u4e3a\u8d44\u6e90\u57df <b><span id\="zone_name"></span></b> \u6dfb\u52a0\u4e00\u4e2a\u65b0\u5b58\u50a8
-message.add.service.offering=\u8bf7\u586b\u5199\u4ee5\u4e0b\u6570\u636e\u4ee5\u6dfb\u52a0\u4e00\u4e2a\u65b0\u8ba1\u7b97\u65b9\u6848\u3002
-message.add.system.service.offering=\u8bf7\u586b\u5199\u4ee5\u4e0b\u6570\u636e\u4ee5\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u7cfb\u7edf\u670d\u52a1\u65b9\u6848\u3002
-message.add.template=\u8bf7\u8f93\u5165\u4ee5\u4e0b\u6570\u636e\u4ee5\u521b\u5efa\u65b0\u6a21\u677f
-message.add.volume=\u8bf7\u586b\u5199\u4ee5\u4e0b\u6570\u636e\u4ee5\u6dfb\u52a0\u4e00\u4e2a\u65b0\u5377\u3002
-message.add.VPN.gateway=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u6dfb\u52a0 VPN \u7f51\u5173
-message.admin.guide.read=\u5bf9\u4e8e\u57fa\u4e8e VMware \u7684 VM\uff0c\u8bf7\u5148\u9605\u8bfb\u7ba1\u7406\u6307\u5357\u4e2d\u7684\u52a8\u6001\u6269\u5c55\u90e8\u5206\uff0c\u7136\u540e\u518d\u8fdb\u884c\u6269\u5c55\u3002\u662f\u5426\u8981\u7ee7\u7eed?\\,
-message.advanced.mode.desc=\u5982\u679c\u8981\u542f\u7528 VLAN \u652f\u6301\uff0c\u8bf7\u9009\u62e9\u6b64\u7f51\u7edc\u6a21\u5f0f\u3002\u6b64\u7f51\u7edc\u6a21\u5f0f\u5728\u5141\u8bb8\u7ba1\u7406\u5458\u63d0\u4f9b\u9632\u706b\u5899\u3001VPN \u6216\u8d1f\u8f7d\u5e73\u8861\u5668\u652f\u6301\u7b49\u81ea\u5b9a\u4e49\u7f51\u7edc\u65b9\u6848\u4ee5\u53ca\u542f\u7528\u76f4\u63a5\u7f51\u7edc\u8fde\u63a5\u4e0e\u865a\u62df\u7f51\u7edc\u8fde\u63a5\u7b49\u65b9\u9762\u63d0\u4f9b\u4e86\u6700\u5927\u7684\u7075\u6d3b\u6027\u3002
-message.advanced.security.group=\u5982\u679c\u8981\u4f7f\u7528\u5b89\u5168\u7ec4\u63d0\u4f9b\u6765\u5bbe VM \u9694\u79bb\uff0c\u8bf7\u9009\u62e9\u6b64\u6a21\u5f0f\u3002
-message.advanced.virtual=\u5982\u679c\u8981\u4f7f\u7528\u6574\u4e2a\u8d44\u6e90\u57df\u7684 VLAN \u63d0\u4f9b\u6765\u5bbe VM \u9694\u79bb\uff0c\u8bf7\u9009\u62e9\u6b64\u6a21\u5f0f\u3002
-message.after.enable.s3=\u5df2\u914d\u7f6e S3 \u652f\u6301\u7684\u4e8c\u7ea7\u5b58\u50a8\u3002\u6ce8\u610f\: \u9000\u51fa\u6b64\u9875\u9762\u540e\uff0c\u60a8\u5c06\u65e0\u6cd5\u518d\u6b21\u91cd\u65b0\u914d\u7f6e S3\u3002
-message.after.enable.swift=\u5df2\u914d\u7f6e SWIFT\u3002\u6ce8\u610f\: \u9000\u51fa\u6b64\u9875\u9762\u540e\uff0c\u60a8\u5c06\u65e0\u6cd5\u518d\u6b21\u91cd\u65b0\u914d\u7f6e SWIFT\u3002
-message.alert.state.detected=\u68c0\u6d4b\u5230\u8b66\u62a5\u72b6\u6001
-message.allow.vpn.access=\u8bf7\u8f93\u5165\u8981\u5141\u8bb8\u8fdb\u884c VPN \u8bbf\u95ee\u7684\u7528\u6237\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002
-message.apply.snapshot.policy=\u60a8\u5df2\u6210\u529f\u66f4\u65b0\u5f53\u524d\u7684\u5feb\u7167\u7b56\u7565\u3002
-message.attach.iso.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06\u6b64 ISO \u9644\u52a0\u5230\u6b64\u865a\u62df\u5b9e\u4f8b\u3002
-message.attach.volume=\u8bf7\u586b\u5199\u4ee5\u4e0b\u6570\u636e\u4ee5\u9644\u52a0\u4e00\u4e2a\u65b0\u5377\u3002\u5982\u679c\u8981\u5c06\u78c1\u76d8\u5377\u9644\u52a0\u5230\u57fa\u4e8e Windows \u7684\u865a\u62df\u673a\uff0c\u9700\u8981\u91cd\u65b0\u542f\u52a8\u6b64\u5b9e\u4f8b\u624d\u80fd\u663e\u793a\u5df2\u8fde\u63a5\u7684\u78c1\u76d8\u3002
-message.basic.mode.desc=\u5982\u679c\u60a8<b>*<u>\u4e0d</u>*</b>\u5e0c\u671b\u542f\u7528\u4efb\u4f55 VLAN \u652f\u6301\uff0c\u8bf7\u9009\u62e9\u6b64\u7f51\u7edc\u6a21\u5f0f\u3002\u5c06\u76f4\u63a5\u4ece\u6b64\u7f51\u7edc\u4e2d\u4e3a\u5728\u6b64\u7f51\u7edc\u6a21\u5f0f\u4e0b\u521b\u5efa\u7684\u6240\u6709\u865a\u62df\u673a\u5b9e\u4f8b\u5206\u914d\u4e00\u4e2a IP\uff0c\u5e76\u4f7f\u7528\u5b89\u5168\u7ec4\u63d0\u4f9b\u5b89\u5168\u6027\u548c\u9694\u79bb\u3002
-message.change.offering.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u66f4\u6539\u6b64\u865a\u62df\u5b9e\u4f8b\u7684\u670d\u52a1\u65b9\u6848\u3002
-message.change.password=\u8bf7\u66f4\u6539\u60a8\u7684\u5bc6\u7801\u3002
-message.cluster.dedicated=\u7fa4\u96c6\u5df2\u4e13\u7528
-message.cluster.dedication.released=\u5df2\u91ca\u653e\u4e13\u7528\u7fa4\u96c6
-message.configure.all.traffic.types=\u60a8\u6709\u591a\u4e2a\u7269\u7406\u7f51\u7edc\uff0c\u8bf7\u5355\u51fb\u201c\u7f16\u8f91\u201d\u6309\u94ae\u4e3a\u6bcf\u79cd\u6d41\u91cf\u7c7b\u578b\u914d\u7f6e\u6807\u7b7e\u3002
-message.configure.firewall.rules.allow.traffic=\u914d\u7f6e\u5141\u8bb8\u901a\u4fe1\u7684\u89c4\u5219
-message.configure.firewall.rules.block.traffic=\u914d\u7f6e\u62d2\u7edd\u901a\u4fe1\u7684\u89c4\u5219
-message.configure.ldap=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u914d\u7f6e LDAP\u3002
-message.configuring.guest.traffic=\u6b63\u5728\u914d\u7f6e\u6765\u5bbe\u6d41\u91cf
-message.configuring.physical.networks=\u6b63\u5728\u914d\u7f6e\u7269\u7406\u7f51\u7edc
-message.configuring.public.traffic=\u6b63\u5728\u914d\u7f6e\u516c\u5171\u6d41\u91cf
-message.configuring.storage.traffic=\u6b63\u5728\u914d\u7f6e\u5b58\u50a8\u6d41\u91cf
-message.confirm.action.force.reconnect=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5f3a\u5236\u91cd\u65b0\u8fde\u63a5\u6b64\u4e3b\u673a\u3002
-message.confirm.add.vnmc.provider=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u6dfb\u52a0 VNMC \u63d0\u4f9b\u7a0b\u5e8f\u3002
-message.confirm.archive.alert=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5b58\u6863\u6b64\u8b66\u62a5\u3002
-message.confirm.archive.event=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5b58\u6863\u6b64\u4e8b\u4ef6\u3002
-message.confirm.archive.selected.alerts=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5b58\u6863\u9009\u5b9a\u8b66\u62a5
-message.confirm.archive.selected.events=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5b58\u6863\u9009\u5b9a\u4e8b\u4ef6
-message.confirm.attach.disk=\u662f\u5426\u786e\u5b9e\u8981\u9644\u52a0\u78c1\u76d8?
-message.confirm.create.volume=\u662f\u5426\u786e\u5b9e\u8981\u521b\u5efa\u5377?
-message.confirm.current.guest.CIDR.unchanged=\u662f\u5426\u8981\u4f7f\u5f53\u524d\u6765\u5bbe\u7f51\u7edc CIDR \u4fdd\u6301\u4e0d\u53d8?
-message.confirm.dedicate.cluster.domain.account=\u662f\u5426\u786e\u5b9e\u8981\u5c06\u6b64\u7fa4\u96c6\u4e13\u7528\u4e8e\u57df/\u5e10\u6237?
-message.confirm.dedicate.host.domain.account=\u662f\u5426\u786e\u5b9e\u8981\u5c06\u6b64\u4e3b\u673a\u4e13\u7528\u4e8e\u57df/\u5e10\u6237?
-message.confirm.dedicate.pod.domain.account=\u662f\u5426\u786e\u5b9e\u8981\u5c06\u6b64\u63d0\u4f9b\u70b9\u4e13\u7528\u4e8e\u57df/\u5e10\u6237?
-message.confirm.dedicate.zone=\u662f\u5426\u8981\u5c06\u6b64\u8d44\u6e90\u57df\u4e13\u7528\u4e8e\u57df/\u5e10\u6237?
-message.confirm.delete.acl.list=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u6b64 ACL \u5217\u8868?
-message.confirm.delete.alert=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u6b64\u8b66\u62a5?
-message.confirm.delete.baremetal.rack.configuration=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 Baremetal Rack \u914d\u7f6e
-message.confirm.delete.BigSwitchBcf=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64BigSwitch BCF \u63a7\u5236\u5668
-message.confirm.delete.BrocadeVcs=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 Brocade Vcs \u4ea4\u6362\u673a
-message.confirm.delete.ciscoASA1000v=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 CiscoASA1000v
-message.confirm.delete.ciscovnmc.resource=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 Cisco VNMC \u8d44\u6e90
-message.confirm.delete.F5=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 F5
-message.confirm.delete.internal.lb=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u5185\u90e8\u8d1f\u8f7d\u5e73\u8861\u5668
-message.confirm.delete.NetScaler=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 NetScaler
-message.confirm.delete.NuageVsp=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 Nuage \u865a\u62df\u670d\u52a1\u76ee\u5f55
-message.confirm.delete.PA=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 Palo Alto
-message.confirm.delete.secondary.staging.store=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u4e8c\u7ea7\u6682\u5b58\u5b58\u50a8\u3002
-message.confirm.delete.SRX=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 SRX
-message.confirm.delete.ucs.manager=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 UCS Manager
-message.confirm.destroy.router=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u9500\u6bc1\u6b64\u8def\u7531\u5668
-message.confirm.disable.host=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u4e3b\u673a
-message.confirm.disable.network.offering=\u662f\u5426\u786e\u5b9e\u8981\u7981\u7528\u6b64\u7f51\u7edc\u65b9\u6848?
-message.confirm.disable.provider=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64\u63d0\u4f9b\u7a0b\u5e8f
-message.confirm.disable.vnmc.provider=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528 VNMC \u63d0\u4f9b\u7a0b\u5e8f\u3002
-message.confirm.disable.vpc.offering=\u662f\u5426\u786e\u5b9e\u8981\u7981\u7528\u6b64 VPC \u65b9\u6848?
-message.confirm.enable.host=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u4e3b\u673a
-message.confirm.enable.network.offering=\u662f\u5426\u786e\u5b9e\u8981\u542f\u7528\u6b64\u7f51\u7edc\u65b9\u6848?
-message.confirm.enable.provider=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u6b64\u63d0\u4f9b\u7a0b\u5e8f
-message.confirm.enable.vnmc.provider=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528 VNMC \u63d0\u4f9b\u7a0b\u5e8f\u3002
-message.confirm.enable.vpc.offering=\u662f\u5426\u786e\u5b9e\u8981\u542f\u7528\u6b64 VPC \u65b9\u6848?
-message.confirm.join.project=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u52a0\u5165\u6b64\u9879\u76ee\u3002
-message.confirm.migrate.volume=\u662f\u5426\u8981\u8fc1\u79fb\u6b64\u5377?
-message.confirm.refresh.blades=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5237\u65b0\u5200\u7247\u5f0f\u670d\u52a1\u5668\u3002
-message.confirm.release.dedicated.cluster=\u662f\u5426\u8981\u91ca\u653e\u6b64\u4e13\u7528\u7fa4\u96c6?
-message.confirm.release.dedicated.host=\u662f\u5426\u8981\u91ca\u653e\u6b64\u4e13\u7528\u4e3b\u673a?
-message.confirm.release.dedicated.pod=\u662f\u5426\u8981\u91ca\u653e\u6b64\u4e13\u7528\u63d0\u4f9b\u70b9?
-message.confirm.release.dedicated.zone=\u662f\u5426\u8981\u91ca\u653e\u6b64\u4e13\u7528\u8d44\u6e90\u57df?
-message.confirm.release.dedicate.vlan.range=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91ca\u653e\u4e13\u7528 VLAN \u8303\u56f4
-message.confirm.remove.event=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u6b64\u4e8b\u4ef6?
-message.confirm.remove.IP.range=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64 IP \u8303\u56f4\u3002
-message.confirm.remove.load.balancer=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4ece\u8d1f\u8f7d\u5e73\u8861\u5668\u4e2d\u5220\u9664 VM
-message.confirm.remove.network.offering=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u6b64\u7f51\u7edc\u65b9\u6848?
-message.confirm.remove.selected.alerts=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u9009\u5b9a\u8b66\u62a5
-message.confirm.remove.selected.events=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u9009\u5b9a\u4e8b\u4ef6
-message.confirm.remove.vmware.datacenter=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 VMware \u6570\u636e\u4e2d\u5fc3
-message.confirm.remove.vpc.offering=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u6b64 VPC \u65b9\u6848?
-message.confirm.replace.acl.new.one=\u662f\u5426\u8981\u5c06\u6b64 ACL \u66ff\u6362\u4e3a\u65b0 ACL?
-message.confirm.scale.up.router.vm=\u662f\u5426\u786e\u5b9e\u8981\u6269\u5c55\u8def\u7531\u5668 VM?
-message.confirm.scale.up.system.vm=\u662f\u5426\u786e\u5b9e\u8981\u6269\u5c55\u7cfb\u7edf VM?
-message.confirm.shutdown.provider=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5173\u95ed\u6b64\u63d0\u4f9b\u7a0b\u5e8f
-message.confirm.start.lb.vm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u52a8 LB VM
-message.confirm.stop.lb.vm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u505c\u6b62 LB VM
-message.confirm.upgrade.router.newer.template=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5347\u7ea7\u8def\u7531\u5668\u4ee5\u4f7f\u7528\u66f4\u65b0\u7684\u6a21\u677f
-message.confirm.upgrade.routers.account.newtemplate=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5347\u7ea7\u6b64\u5e10\u6237\u4e2d\u7684\u6240\u6709\u8def\u7531\u5668\u4ee5\u4f7f\u7528\u66f4\u65b0\u7684\u6a21\u677f
-message.confirm.upgrade.routers.cluster.newtemplate=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5347\u7ea7\u6b64\u7fa4\u96c6\u4e2d\u7684\u6240\u6709\u8def\u7531\u5668\u4ee5\u4f7f\u7528\u66f4\u65b0\u7684\u6a21\u677f
-message.confirm.upgrade.routers.newtemplate=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5347\u7ea7\u6b64\u8d44\u6e90\u57df\u4e2d\u7684\u6240\u6709\u8def\u7531\u5668\u4ee5\u4f7f\u7528\u66f4\u65b0\u7684\u6a21\u677f
-message.confirm.upgrade.routers.pod.newtemplate=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5347\u7ea7\u6b64\u63d0\u4f9b\u70b9\u4e2d\u7684\u6240\u6709\u8def\u7531\u5668\u4ee5\u4f7f\u7528\u66f4\u65b0\u7684\u6a21\u677f
-message.copy.iso.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06 ISO \u590d\u5236\u5230
-message.copy.template.confirm=\u662f\u5426\u786e\u5b9e\u8981\u590d\u5236\u6a21\u677f?
-message.copy.template=\u5c06\u6a21\u677f <b id\="copy_template_name_text">XXX</b> \u4ece\u8d44\u6e90\u57df <b id\="copy_template_source_zone_text"></b> \u590d\u5236\u5230
-message.create.template=\u662f\u5426\u786e\u5b9e\u8981\u521b\u5efa\u6a21\u677f?
-message.create.template.vm=\u57fa\u4e8e\u6a21\u677f <b id\="p_name"></b> \u521b\u5efa VM
-message.create.template.volume=\u8bf7\u5148\u6307\u5b9a\u4ee5\u4e0b\u4fe1\u606f\uff0c\u7136\u540e\u518d\u521b\u5efa\u78c1\u76d8\u5377 <b><span id\="volume_name"></span></b> \u7684\u6a21\u677f\u3002\u521b\u5efa\u6a21\u677f\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\u5230\u66f4\u957f\u7684\u65f6\u95f4\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u78c1\u76d8\u5377\u7684\u5927\u5c0f\u3002
-message.creating.cluster=\u6b63\u5728\u521b\u5efa\u7fa4\u96c6
-message.creating.guest.network=\u6b63\u5728\u521b\u5efa\u6765\u5bbe\u7f51\u7edc
-message.creating.physical.networks=\u6b63\u5728\u521b\u5efa\u7269\u7406\u7f51\u7edc
-message.creating.pod=\u6b63\u5728\u521b\u5efa\u63d0\u4f9b\u70b9
-message.creating.primary.storage=\u6b63\u5728\u521b\u5efa\u4e3b\u5b58\u50a8
-message.creating.secondary.storage=\u6b63\u5728\u521b\u5efa\u4e8c\u7ea7\u5b58\u50a8
-message.creating.systemVM=\u6b63\u5728\u521b\u5efa\u7cfb\u7edf VM (\u6b64\u64cd\u4f5c\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4)
-message.creating.zone=\u6b63\u5728\u521b\u5efa\u8d44\u6e90\u57df
-message.decline.invitation=\u662f\u5426\u786e\u5b9e\u8981\u62d2\u7edd\u6b64\u9879\u76ee\u9080\u8bf7?
-message.dedicated.zone.released=\u5df2\u91ca\u653e\u4e13\u7528\u8d44\u6e90\u57df
-message.dedicate.zone=\u6b63\u5728\u5c06\u8d44\u6e90\u57df\u4e13\u7528
-message.delete.account=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5e10\u6237\u3002
-message.delete.affinity.group=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u5173\u8054\u6027\u7ec4\u3002
-message.delete.gateway=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u7f51\u5173
-message.delete.project=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u6b64\u9879\u76ee?
-message.delete.user=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64\u7528\u6237\u3002
-message.delete.VPN.connection=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 VPN \u8fde\u63a5
-message.delete.VPN.customer.gateway=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64 VPN \u5ba2\u6237\u7f51\u5173
-message.delete.VPN.gateway=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64 VPN \u7f51\u5173
-message.desc.add.new.lb.sticky.rule=\u6dfb\u52a0\u65b0\u8d1f\u8f7d\u5747\u8861\u7c98\u6ede\u89c4\u5219
-message.desc.advanced.zone=\u9002\u7528\u4e8e\u66f4\u52a0\u590d\u6742\u7684\u7f51\u7edc\u62d3\u6251\u3002\u6b64\u7f51\u7edc\u6a21\u5f0f\u5728\u5b9a\u4e49\u6765\u5bbe\u7f51\u7edc\u5e76\u63d0\u4f9b\u9632\u706b\u5899\u3001VPN \u6216\u8d1f\u8f7d\u5e73\u8861\u5668\u652f\u6301\u7b49\u81ea\u5b9a\u4e49\u7f51\u7edc\u65b9\u6848\u65b9\u9762\u63d0\u4f9b\u4e86\u6700\u5927\u7684\u7075\u6d3b\u6027\u3002
-message.desc.basic.zone=\u63d0\u4f9b\u4e00\u4e2a\u7f51\u7edc\uff0c\u5c06\u76f4\u63a5\u4ece\u6b64\u7f51\u7edc\u4e2d\u4e3a\u6bcf\u4e2a VM \u5b9e\u4f8b\u5206\u914d\u4e00\u4e2a IP\u3002\u53ef\u4ee5\u901a\u8fc7\u5b89\u5168\u7ec4\u7b49\u7b2c 3 \u5c42\u65b9\u5f0f\u63d0\u4f9b\u6765\u5bbe\u9694\u79bb(IP \u5730\u5740\u6e90\u8fc7\u6ee4)\u3002
-message.desc.cluster=\u6bcf\u4e2a\u63d0\u4f9b\u70b9\u4e2d\u5fc5\u987b\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u7fa4\u96c6\uff0c\u73b0\u5728\u6211\u4eec\u5c06\u6dfb\u52a0\u7b2c\u4e00\u4e2a\u7fa4\u96c6\u3002\u7fa4\u96c6\u63d0\u4f9b\u4e86\u4e00\u79cd\u7f16\u7ec4\u4e3b\u673a\u7684\u65b9\u6cd5\u3002\u7fa4\u96c6\u4e2d\u7684\u6240\u6709\u4e3b\u673a\u90fd\u5177\u6709\u76f8\u540c\u7684\u786c\u4ef6\uff0c\u8fd0\u884c\u76f8\u540c\u7684\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\uff0c\u4f4d\u4e8e\u76f8\u540c\u7684\u5b50\u7f51\u4e2d\uff0c\u5e76\u8bbf\u95ee\u76f8\u540c\u7684\u5171\u4eab\u5b58\u50a8\u3002\u6bcf\u4e2a\u7fa4\u96c6\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u4e3b\u673a\u4ee5\u53ca\u4e00\u4e2a\u6216\u591a\u4e2a\u4e3b\u5b58\u50a8\u670d\u52a1\u5668\u7ec4\u6210\u3002
-message.desc.created.ssh.key.pair=\u5df2\u751f\u6210\u7684SSH\u5bc6\u94a5\u5bf9
-message.desc.create.ssh.key.pair=\u8bf7\u586b\u5199\u4ee5\u4e0b\u5185\u5bb9\u4ee5\u521b\u5efa\u6216\u751f\u6210\u4e00\u4e2assh\u5bc6\u94a5\u5bf9.<br><br>(1) \u5982\u679c\u516c\u94a5\u5df2\u914d\u7f6e, cloudstack \u5c06\u6ce8\u518c\u6b64\u516c\u94a5. \u60a8\u53ef\u4ee5\u901a\u8fc7\u60a8\u7684\u79c1\u94a5\u6765\u8bbf\u95ee.<br><br>(2)\u5982\u679c\u516c\u94a5\u672a\u914d\u7f6e,cloudstack\u5c06\u521b\u5efa\u65b0\u7684\u5bc6\u94a5\u5bf9,\u8bf7\u590d\u5236\u5e76\u4fdd\u5b58\u79c1\u94a5,cloudstack\u5c06\u4e0d\u4f1a\u66ff\u60a8\u4fdd\u5b58<br>
-message.desc.host=\u6bcf\u4e2a\u7fa4\u96c6\u4e2d\u5fc5\u987b\u81f3\u5c11\u5305\u542b\u4e00\u4e2a\u4e3b\u673a\u4ee5\u4f9b\u6765\u5bbe VM \u5728\u4e0a\u9762\u8fd0\u884c\uff0c\u73b0\u5728\u6211\u4eec\u5c06\u6dfb\u52a0\u7b2c\u4e00\u4e2a\u4e3b\u673a\u3002\u8981\u4f7f\u4e3b\u673a\u5728 CloudStack \u4e2d\u8fd0\u884c\uff0c\u5fc5\u987b\u5728\u6b64\u4e3b\u673a\u4e0a\u5b89\u88c5\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u8f6f\u4ef6\uff0c\u4e3a\u5176\u5206\u914d\u4e00\u4e2a IP \u5730\u5740\uff0c\u5e76\u786e\u4fdd\u5c06\u5176\u8fde\u63a5\u5230 CloudStack \u7ba1\u7406\u670d\u52a1\u5668\u3002<br/><br/>\u8bf7\u63d0\u4f9b\u4e3b\u673a\u7684 DNS \u6216 IP \u5730\u5740\u3001\u7528\u6237\u540d(\u901a\u5e38\u4e3a root)\u548c\u5bc6\u7801\uff0c\u4ee5\u53ca\u7528\u4e8e\u5bf9\u4e3b\u673a\u8fdb\u884c\u5206\u7c7b\u7684\u4efb\u4f55\u6807\u7b7e\u3002
-message.desc.primary.storage=\u6bcf\u4e2a\u7fa4\u96c6\u4e2d\u5fc5\u987b\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u4e3b\u5b58\u50a8\u670d\u52a1\u5668\uff0c\u73b0\u5728\u6211\u4eec\u5c06\u6dfb\u52a0\u7b2c\u4e00\u4e2a\u4e3b\u5b58\u50a8\u670d\u52a1\u5668\u3002\u4e3b\u5b58\u50a8\u4e2d\u5305\u542b\u5728\u7fa4\u96c6\u4e2d\u7684\u4e3b\u673a\u4e0a\u8fd0\u884c\u7684\u6240\u6709 VM \u7684\u78c1\u76d8\u5377\u3002\u8bf7\u4f7f\u7528\u5e95\u5c42\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u652f\u6301\u7684\u7b26\u5408\u6807\u51c6\u7684\u534f\u8bae\u3002
-message.desc.reset.ssh.key.pair=\u8bf7\u6307\u5b9a\u60a8\u60f3\u6dfb\u52a0\u5230\u8fd9\u4e2aVM\u4e2d\u7684SSH\u5bc6\u94a5\u5bf9.\u8bf7\u6ce8\u610f,\u5982\u679c\u542f\u7528\u4e86\u5bc6\u7801\u7ba1\u7406,\u8d85\u7ea7\u7528\u6237\u53e3\u4ee4\u5c06\u4f1a\u88ab\u91cd\u7f6e\u3002
-message.desc.secondary.storage=\u6bcf\u4e2a\u8d44\u6e90\u57df\u4e2d\u5fc5\u987b\u81f3\u5c11\u5305\u542b\u4e00\u4e2a NFS \u6216\u4e8c\u7ea7\u5b58\u50a8\u670d\u52a1\u5668\uff0c\u73b0\u5728\u6211\u4eec\u5c06\u6dfb\u52a0\u7b2c\u4e00\u4e2a NFS \u6216\u4e8c\u7ea7\u5b58\u50a8\u670d\u52a1\u5668\u3002\u4e8c\u7ea7\u5b58\u50a8\u7528\u4e8e\u5b58\u50a8 VM \u6a21\u677f\u3001ISO \u6620\u50cf\u548c VM \u78c1\u76d8\u5377\u5feb\u7167\u3002\u6b64\u670d\u52a1\u5668\u5fc5\u987b\u5bf9\u8d44\u6e90\u57df\u4e2d\u7684\u6240\u6709\u670d\u52a1\u5668\u53ef\u7528\u3002<br/><br/>\u8bf7\u63d0\u4f9b IP \u5730\u5740\u548c\u5bfc\u51fa\u8def\u5f84\u3002
-message.desc.zone=\u8d44\u6e90\u57df\u662f CloudStack \u4e2d\u6700\u5927\u7684\u7ec4\u7ec7\u5355\u4f4d\uff0c\u4e00\u4e2a\u8d44\u6e90\u57df\u901a\u5e38\u4e0e\u4e00\u4e2a\u6570\u636e\u4e2d\u5fc3\u76f8\u5bf9\u5e94\u3002\u8d44\u6e90\u57df\u53ef\u63d0\u4f9b\u7269\u7406\u9694\u79bb\u548c\u5197\u4f59\u3002\u4e00\u4e2a\u8d44\u6e90\u57df\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u63d0\u4f9b\u70b9\u4ee5\u53ca\u7531\u8d44\u6e90\u57df\u4e2d\u7684\u6240\u6709\u63d0\u4f9b\u70b9\u5171\u4eab\u7684\u4e00\u4e2a\u4e8c\u7ea7\u5b58\u50a8\u670d\u52a1\u5668\u7ec4\u6210\uff0c\u5176\u4e2d\u6bcf\u4e2a\u63d0\u4f9b\u70b9\u4e2d\u5305\u542b\u591a\u4e2a\u4e3b\u673a\u548c\u4e3b\u5b58\u50a8\u670d\u52a1\u5668\u3002
-message.detach.disk=\u662f\u5426\u786e\u5b9e\u8981\u53d6\u6d88\u9644\u52a0\u6b64\u78c1\u76d8?
-message.detach.iso.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4ece\u6b64\u865a\u62df\u673a\u4e2d\u53d6\u6d88\u9644\u52a0\u6b64 ISO\u3002
-message.disable.account=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64\u5e10\u6237\u3002\u7981\u7528\u540e\uff0c\u6b64\u5e10\u6237\u7684\u6240\u6709\u7528\u6237\u5c06\u4e0d\u518d\u6709\u6743\u8bbf\u95ee\u5404\u81ea\u7684\u4e91\u8d44\u6e90\u3002\u6240\u6709\u6b63\u5728\u8fd0\u884c\u7684\u865a\u62df\u673a\u5c06\u7acb\u5373\u5173\u95ed\u3002
-message.disable.snapshot.policy=\u60a8\u5df2\u6210\u529f\u7981\u7528\u5f53\u524d\u7684\u5feb\u7167\u7b56\u7565\u3002
-message.disable.user=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u6b64\u7528\u6237\u3002
-message.disable.vpn.access=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u7981\u7528\u8fdc\u7a0b\u8bbf\u95ee VPN\u3002
-message.disable.vpn=\u662f\u5426\u786e\u5b9e\u8981\u7981\u7528 VPN?
-message.disabling.network.offering=\u6b63\u5728\u7981\u7528\u7f51\u7edc\u65b9\u6848
-message.disabling.vpc.offering=\u6b63\u5728\u7981\u7528 VPC \u65b9\u6848
-message.disallowed.characters=\u7981\u7528\u5b57\u7b26\: <,>
-message.download.ISO=\u8bf7\u5355\u51fb <a href\="\#">00000</a> \u4e0b\u8f7d ISO
-message.download.template=\u8bf7\u5355\u51fb <a href\="\#">00000</a> \u4e0b\u8f7d\u6a21\u677f
-message.download.volume.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e0b\u8f7d\u6b64\u5377
-message.download.volume=\u8bf7\u5355\u51fb <a href\="\#">00000</a> \u4e0b\u8f7d\u5377
-message.edit.account=\u7f16\u8f91(\u201c-1\u201d\u8868\u793a\u5bf9\u8981\u521b\u5efa\u7684\u8d44\u6e90\u6570\u91cf\u6ca1\u6709\u4efb\u4f55\u9650\u5236)
-message.edit.confirm=\u5728\u70b9\u51fb\u201c\u4fdd\u5b58\u201d\u524d\u8bf7\u5148\u786e\u8ba4\u60a8\u6240\u505a\u7684\u66f4\u6539\u3002
-message.edit.limits=\u8bf7\u6307\u5b9a\u5bf9\u4ee5\u4e0b\u8d44\u6e90\u7684\u9650\u5236\u3002\u201c-1\u201d\u8868\u793a\u4e0d\u9650\u5236\u8981\u521b\u5efa\u7684\u8d44\u6e90\u6570\u3002
-message.edit.traffic.type=\u8bf7\u6307\u5b9a\u60a8\u5e0c\u671b\u4e0e\u6b64\u6d41\u91cf\u7c7b\u578b\u5173\u8054\u7684\u6d41\u91cf\u6807\u7b7e\u3002
-message.enable.account=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u6b64\u5e10\u6237\u3002
-message.enabled.vpn.ip.sec=\u60a8\u7684 IPSec \u9884\u5171\u4eab\u5bc6\u94a5
-message.enabled.vpn=\u60a8\u7684\u8fdc\u7a0b\u8bbf\u95ee VPN \u5f53\u524d\u5df2\u542f\u7528\uff0c\u53ef\u4ee5\u901a\u8fc7 IP \u8fdb\u884c\u8bbf\u95ee
-message.enable.user=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u542f\u7528\u6b64\u7528\u6237\u3002
-message.enable.vpn.access=\u5f53\u524d\u5df2\u5bf9\u6b64 IP \u5730\u5740\u7981\u7528\u4e86 VPN\u3002\u662f\u5426\u8981\u542f\u7528 VPN \u8bbf\u95ee?
-message.enable.vpn=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5bf9\u6b64 IP \u5730\u5740\u542f\u7528\u8fdc\u7a0b\u8bbf\u95ee VPN\u3002
-message.enabling.network.offering=\u6b63\u5728\u542f\u7528\u7f51\u7edc\u65b9\u6848
-message.enabling.security.group.provider=\u6b63\u5728\u542f\u7528\u5b89\u5168\u7ec4\u63d0\u4f9b\u7a0b\u5e8f
-message.enabling.vpc.offering=\u6b63\u5728\u542f\u7528 VPC \u65b9\u6848
-message.enabling.zone.dots=\u6b63\u5728\u542f\u7528\u8d44\u6e90\u57df...
-message.enabling.zone=\u6b63\u5728\u542f\u7528\u8d44\u6e90\u57df
-message.enter.seperated.list.multiple.cidrs=\u5982\u679c\u5b58\u5728\u591a\u4e2a CIDR\uff0c\u8bf7\u8f93\u5165\u7528\u9017\u53f7\u5206\u9694\u7684 CIDR \u5217\u8868
-message.enter.token=\u8bf7\u8f93\u5165\u60a8\u5728\u9080\u8bf7\u7535\u5b50\u90ae\u4ef6\u4e2d\u6536\u5230\u7684\u4ee4\u724c\u3002
-message.generate.keys=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e3a\u6b64\u7528\u6237\u751f\u6210\u65b0\u5bc6\u94a5\u3002
-message.gslb.delete.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64 GSLB
-message.gslb.lb.remove.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4ece GSLB \u4e2d\u5220\u9664\u8d1f\u8f7d\u5e73\u8861
-message.guest.traffic.in.advanced.zone=\u6765\u5bbe\u7f51\u7edc\u6d41\u91cf\u662f\u6307\u6700\u7ec8\u7528\u6237\u865a\u62df\u673a\u4e4b\u95f4\u7684\u901a\u4fe1\u3002\u6307\u5b9a\u4e00\u4e2a VLAN ID \u8303\u56f4\u53ef\u4f20\u9001\u6bcf\u4e2a\u7269\u7406\u7f51\u7edc\u7684\u6765\u5bbe\u6d41\u91cf\u3002
-message.guest.traffic.in.basic.zone=\u6765\u5bbe\u7f51\u7edc\u6d41\u91cf\u662f\u6307\u6700\u7ec8\u7528\u6237\u865a\u62df\u673a\u4e4b\u95f4\u7684\u901a\u4fe1\u3002\u5e94\u6307\u5b9a\u4e00\u4e2a CloudStack \u53ef\u4ee5\u5206\u914d\u7ed9\u6765\u5bbe VM \u7684 IP \u5730\u5740\u8303\u56f4\u3002\u8bf7\u786e\u4fdd\u6b64\u8303\u56f4\u4e0e\u9884\u7559\u7684\u7cfb\u7edf IP \u8303\u56f4\u4e0d\u91cd\u53e0\u3002
-message.host.dedicated=\u4e3b\u673a\u5df2\u4e13\u7528
-message.host.dedication.released=\u5df2\u91ca\u653e\u4e13\u7528\u4e3b\u673a
-message.installWizard.click.retry=\u8bf7\u5355\u51fb\u6b64\u6309\u94ae\u91cd\u65b0\u5c1d\u8bd5\u542f\u52a8\u3002
-message.installWizard.copy.whatIsACluster=\u7fa4\u96c6\u63d0\u4f9b\u4e86\u4e00\u79cd\u7f16\u7ec4\u4e3b\u673a\u7684\u65b9\u6cd5\u3002\u7fa4\u96c6\u4e2d\u7684\u6240\u6709\u4e3b\u673a\u90fd\u5177\u6709\u76f8\u540c\u7684\u786c\u4ef6\uff0c\u8fd0\u884c\u76f8\u540c\u7684\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\uff0c\u4f4d\u4e8e\u540c\u4e00\u5b50\u7f51\u4e2d\uff0c\u5e76\u8bbf\u95ee\u76f8\u540c\u7684\u5171\u4eab\u5b58\u50a8\u3002\u53ef\u4ee5\u5b9e\u65f6\u5c06\u865a\u62df\u673a\u5b9e\u4f8b(VM)\u4ece\u4e00\u53f0\u4e3b\u673a\u8fc1\u79fb\u5230\u540c\u4e00\u7fa4\u96c6\u5185\u7684\u5176\u4ed6\u4e3b\u673a\uff0c\u800c\u65e0\u9700\u4e2d\u65ad\u5411\u7528\u6237\u63d0\u4f9b\u670d\u52a1\u3002\u7fa4\u96c6\u662f CloudStack&\#8482; \u90e8\u7f72\u4e2d\u7684\u7b2c\u4e09\u5927\u7ec4\u7ec7\u5355\u4f4d\u3002\u7fa4\u96c6\u5305\u542b\u5728\u63d0\u4f9b\u70b9\u4e2d\uff0c\u63d0\u4f9b\u70b9\u5305\u542b\u5728\u8d44\u6e90\u57df\u4e2d\u3002<br/><br/>CloudStack&\#8482; \u5141\u8bb8\u4e91\u90e8\u7f72\u4e2d\u5b58\u5728\u591a\u4e2a\u7fa4\u96c6\uff0c\u4f46\u5bf9\u4e8e\u57fa\u672c\u5b89\u88c5\uff0c\u6211\u4eec\u53ea\u9700\u8981\u4e00\u4e2a\u7fa4\u96c6\u3002
-message.installWizard.copy.whatIsAHost=\u4e3b\u673a\u662f\u6307\u4e00\u53f0\u8ba1\u7b97\u673a\u3002\u4e3b\u673a\u63d0\u4f9b\u8fd0\u884c\u6765\u5bbe\u865a\u62df\u673a\u7684\u8ba1\u7b97\u8d44\u6e90\u3002\u6bcf\u53f0\u4e3b\u673a\u4e0a\u90fd\u5b89\u88c5\u6709\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u8f6f\u4ef6\uff0c\u7528\u4e8e\u7ba1\u7406\u6765\u5bbe VM (\u88f8\u673a\u4e3b\u673a\u9664\u5916\uff0c\u5c06\u5728\u201c\u9ad8\u7ea7\u5b89\u88c5\u6307\u5357\u201d\u4e2d\u8ba8\u8bba\u8fd9\u4e00\u7279\u6b8a\u6848\u4f8b)\u3002\u4f8b\u5982\uff0c\u542f\u7528\u4e86 KVM \u7684 Linux \u670d\u52a1\u5668\u3001Citrix XenServer \u670d\u52a1\u5668\u548c ESXi \u670d\u52a1\u5668\u90fd\u53ef\u7528\u4f5c\u4e3b\u673a\u3002\u5728\u57fa\u672c\u5b89\u88c5\u4e2d\uff0c\u6211\u4eec\u5c06\u4f7f\u7528\u4e00\u53f0\u8fd0\u884c XenServer \u7684\u4e3b\u673a\u3002<br/><br/>\u4e3b\u673a\u662f CloudStack&\#8482; \u90e8\u7f72\u4e2d\u6700\u5c0f\u7684\u7ec4\u7ec7\u5355\u4f4d\u3002\u4e3b\u673a\u5305\u542b\u5728\u7fa4\u96c6\u4e2d\uff0c\u7fa4\u96c6\u5305\u542b\u5728\u63d0\u4f9b\u70b9\u4e2d\uff0c\u63d0\u4f9b\u70b9\u5305\u542b\u5728\u8d44\u6e90\u57df\u4e2d\u3002
-message.installWizard.copy.whatIsAPod=\u4e00\u4e2a\u63d0\u4f9b\u70b9\u901a\u5e38\u4ee3\u8868\u4e00\u4e2a\u673a\u67b6\u3002\u540c\u4e00\u63d0\u4f9b\u70b9\u4e2d\u7684\u4e3b\u673a\u4f4d\u4e8e\u540c\u4e00\u5b50\u7f51\u4e2d\u3002<br/><br/>\u63d0\u4f9b\u70b9\u662f CloudStack&\#8482; \u90e8\u7f72\u4e2d\u7684\u7b2c\u4e8c\u5927\u7ec4\u7ec7\u5355\u4f4d\u3002\u63d0\u4f9b\u70b9\u5305\u542b\u5728\u8d44\u6e90\u57df\u4e2d\u3002\u6bcf\u4e2a\u8d44\u6e90\u57df\u4e2d\u53ef\u4ee5\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u63d0\u4f9b\u70b9\uff1b\u5728\u57fa\u672c\u5b89\u88c5\u4e2d\uff0c\u60a8\u7684\u8d44\u6e90\u57df\u4e2d\u5c06\u4ec5\u5305\u542b\u4e00\u4e2a\u63d0\u4f9b\u70b9\u3002
-message.installWizard.copy.whatIsAZone=\u8d44\u6e90\u57df\u662f CloudStack&\#8482; \u90e8\u7f72\u4e2d\u6700\u5927\u7684\u7ec4\u7ec7\u5355\u4f4d\u3002\u867d\u7136\u5141\u8bb8\u4e00\u4e2a\u6570\u636e\u4e2d\u5fc3\u4e2d\u5b58\u5728\u591a\u4e2a\u8d44\u6e90\u57df\uff0c\u4f46\u662f\u4e00\u4e2a\u8d44\u6e90\u57df\u901a\u5e38\u4e0e\u4e00\u4e2a\u6570\u636e\u4e2d\u5fc3\u76f8\u5bf9\u5e94\u3002\u5c06\u57fa\u7840\u67b6\u6784\u7f16\u7ec4\u5230\u8d44\u6e90\u57df\u4e2d\u7684\u597d\u5904\u662f\u53ef\u4ee5\u63d0\u4f9b\u7269\u7406\u9694\u79bb\u548c\u5197\u4f59\u3002\u4f8b\u5982\uff0c\u6bcf\u4e2a\u8d44\u6e90\u57df\u90fd\u53ef\u4ee5\u62e5\u6709\u5404\u81ea\u7684\u7535\u6e90\u4f9b\u5e94\u548c\u7f51\u7edc\u4e0a\u884c\u65b9\u6848\uff0c\u5e76\u4e14\u5404\u8d44\u6e90\u57df\u53ef\u4ee5\u5728\u5730\u7406\u4f4d\u7f6e\u4e0a\u76f8\u9694\u5f88\u8fdc(\u867d\u7136\u5e76\u975e\u5fc5\u987b\u76f8\u9694\u5f88\u8fdc)\u3002
-message.installWizard.copy.whatIsCloudStack=CloudStack&\#8482 \u662f\u4e00\u4e2a\u8f6f\u4ef6\u5e73\u53f0\uff0c\u53ef\u5c06\u8ba1\u7b97\u8d44\u6e90\u96c6\u4e2d\u5728\u4e00\u8d77\u4ee5\u6784\u5efa\u516c\u6709\u3001\u79c1\u6709\u548c\u6df7\u5408\u57fa\u7840\u8bbe\u65bd\u5373\u670d\u52a1(IaaS)\u4e91\u3002CloudStack&\#8482 \u8d1f\u8d23\u7ba1\u7406\u7ec4\u6210\u4e91\u57fa\u7840\u67b6\u6784\u7684\u7f51\u7edc\u3001\u5b58\u50a8\u548c\u8ba1\u7b97\u8282\u70b9\u3002\u4f7f\u7528 CloudStack&\#8482 \u53ef\u4ee5\u90e8\u7f72\u3001\u7ba1\u7406\u548c\u914d\u7f6e\u4e91\u8ba1\u7b97\u73af\u5883\u3002<br/><br/>CloudStack&\#8482 \u901a\u8fc7\u6269\u5c55\u5546\u7528\u786c\u4ef6\u4e0a\u8fd0\u884c\u7684\u6bcf\u4e2a\u865a\u62df\u673a\u6620\u50cf\u7684\u8303\u56f4\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5b9e\u65f6\u53ef\u7528\u7684\u4e91\u57fa\u7840\u67b6\u6784\u8f6f\u4ef6\u5806\u6808\u7528\u4e8e\u4ee5\u670d\u52a1\u65b9\u5f0f\u4ea4\u4ed8\u865a\u62df\u6570\u636e\u4e2d\u5fc3\uff0c\u5373\u4ea4\u4ed8\u6784\u5efa\u3001\u90e8\u7f72\u548c\u7ba1\u7406\u591a\u5c42\u6b21\u548c\u591a\u79df\u6237\u4e91\u5e94\u7528\u7a0b\u5e8f\u5fc5\u9700\u7684\u6240\u6709\u7ec4\u4ef6\u3002\u5f00\u6e90\u7248\u672c\u548c Premium \u7248\u672c\u90fd\u5df2\u53ef\u7528\uff0c\u4e14\u63d0\u4f9b\u7684\u529f\u80fd\u51e0\u4e4e\u5b8c\u5168\u76f8\u540c\u3002
-message.installWizard.copy.whatIsPrimaryStorage=CloudStack&\#8482; \u4e91\u57fa\u7840\u67b6\u6784\u4f7f\u7528\u4ee5\u4e0b\u4e24\u79cd\u7c7b\u578b\u7684\u5b58\u50a8\: \u4e3b\u5b58\u50a8\u548c\u4e8c\u7ea7\u5b58\u50a8\u3002\u8fd9\u4e24\u79cd\u7c7b\u578b\u7684\u5b58\u50a8\u53ef\u4ee5\u662f iSCSI \u6216 NFS \u670d\u52a1\u5668\uff0c\u4e5f\u53ef\u4ee5\u662f\u672c\u5730\u78c1\u76d8\u3002<br/><br/><strong>\u4e3b\u5b58\u50a8</strong>\u4e0e\u7fa4\u96c6\u76f8\u5173\u8054\uff0c\u7528\u4e8e\u5b58\u50a8\u8be5\u7fa4\u96c6\u4e2d\u7684\u4e3b\u673a\u4e0a\u6b63\u5728\u8fd0\u884c\u7684\u6240\u6709 VM \u5bf9\u5e94\u7684\u6bcf\u4e2a\u6765\u5bbe VM \u7684\u78c1\u76d8\u5377\u3002\u4e3b\u5b58\u50a8\u670d\u52a1\u5668\u901a\u5e38\u4f4d\u4e8e\u9760\u8fd1\u4e3b\u673a\u7684\u4f4d\u7f6e\u3002
-message.installWizard.copy.whatIsSecondaryStorage=\u4e8c\u7ea7\u5b58\u50a8\u4e0e\u8d44\u6e90\u57df\u76f8\u5173\u8054\uff0c\u7528\u4e8e\u5b58\u50a8\u4ee5\u4e0b\u9879\u76ee\:<ul><li>\u6a21\u677f - \u53ef\u7528\u4e8e\u542f\u52a8 VM \u5e76\u53ef\u4ee5\u5305\u542b\u5176\u4ed6\u914d\u7f6e\u4fe1\u606f(\u4f8b\u5982\uff0c\u5df2\u5b89\u88c5\u7684\u5e94\u7528\u7a0b\u5e8f)\u7684\u64cd\u4f5c\u7cfb\u7edf\u6620\u50cf</li><li>ISO \u6620\u50cf - \u53ef\u91cd\u65b0\u542f\u52a8\u6216\u4e0d\u53ef\u91cd\u65b0\u542f\u52a8\u7684\u64cd\u4f5c\u7cfb\u7edf\u6620\u50cf</li><li>\u78c1\u76d8\u5377\u5feb\u7167 - \u5df2\u4fdd\u5b58\u7684 VM \u6570\u636e\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u6267\u884c\u6570\u636e\u6062\u590d\u6216\u521b\u5efa\u65b0\u6a21\u677f</ul>
-message.installWizard.now.building=\u73b0\u5728\u6b63\u5728\u6784\u5efa\u60a8\u7684\u4e91...
-message.installWizard.tooltip.addCluster.name=\u7fa4\u96c6\u7684\u540d\u79f0\u3002\u6b64\u540d\u79f0\u53ef\u4ee5\u662f\u60a8\u9009\u62e9\u7684\u6587\u672c\uff0c\u4e14\u672a\u7531 CloudStack \u4f7f\u7528\u3002
-message.installWizard.tooltip.addHost.hostname=\u4e3b\u673a\u7684 DNS \u540d\u79f0\u6216 IP \u5730\u5740\u3002
-message.installWizard.tooltip.addHost.password=\u6b64\u4e3a\u4e0a\u8ff0\u7528\u6237\u7684\u5bc6\u7801(\u6765\u81ea XenServer \u5b89\u88c5)\u3002
-message.installWizard.tooltip.addHost.username=\u901a\u5e38\u4e3a root\u3002
-message.installWizard.tooltip.addPod.name=\u63d0\u4f9b\u70b9\u7684\u540d\u79f0
-message.installWizard.tooltip.addPod.reservedSystemEndIp=\u6b64\u4e3a CloudStack \u7528\u4e8e\u7ba1\u7406\u4e8c\u7ea7\u5b58\u50a8 VM \u548c\u63a7\u5236\u53f0\u4ee3\u7406 VM \u7684\u4e13\u7528\u7f51\u7edc\u4e2d\u7684 IP \u8303\u56f4\u3002\u8fd9\u4e9b IP \u5730\u5740\u6765\u81ea\u4e0e\u8ba1\u7b97\u670d\u52a1\u5668\u76f8\u540c\u7684\u5b50\u7f51\u3002
-message.installWizard.tooltip.addPod.reservedSystemGateway=\u8be5\u63d0\u4f9b\u70b9\u4e2d\u7684\u4e3b\u673a\u7f51\u5173\u3002
-message.installWizard.tooltip.addPod.reservedSystemNetmask=\u6765\u5bbe\u5c06\u8981\u4f7f\u7528\u7684\u5b50\u7f51\u4e0a\u6b63\u5728\u4f7f\u7528\u7684\u7f51\u7edc\u63a9\u7801\u3002
-message.installWizard.tooltip.addPod.reservedSystemStartIp=\u6b64\u4e3a CloudStack \u7528\u4e8e\u7ba1\u7406\u4e8c\u7ea7\u5b58\u50a8 VM \u548c\u63a7\u5236\u53f0\u4ee3\u7406 VM \u7684\u4e13\u7528\u7f51\u7edc\u4e2d\u7684 IP \u8303\u56f4\u3002\u8fd9\u4e9b IP \u5730\u5740\u6765\u81ea\u4e0e\u8ba1\u7b97\u670d\u52a1\u5668\u76f8\u540c\u7684\u5b50\u7f51\u3002
-message.installWizard.tooltip.addPrimaryStorage.name=\u5b58\u50a8\u8bbe\u5907\u7684\u540d\u79f0\u3002
-message.installWizard.tooltip.addPrimaryStorage.path=(\u9002\u7528\u4e8e NFS)\u5728 NFS \u4e2d\uff0c\u6b64\u8def\u5f84\u4e3a\u670d\u52a1\u5668\u7684\u5bfc\u51fa\u8def\u5f84\u3002\u8def\u5f84(\u9488\u5bf9 SharedMountPoint)\u3002\u5bf9\u4e8e KVM\uff0c\u6b64\u8def\u5f84\u4e3a\u88c5\u8f7d\u4e86\u4e8c\u7ea7\u5b58\u50a8\u7684\u6bcf\u4e2a\u4e3b\u673a\u4e0a\u7684\u8def\u5f84\u3002\u4f8b\u5982\uff0c/mnt/primary\u3002
-message.installWizard.tooltip.addPrimaryStorage.server=(\u9002\u7528\u4e8e NFS\u3001iSCSI \u6216 PreSetup)\u5b58\u50a8\u8bbe\u5907\u7684 IP \u5730\u5740\u6216 DNS \u540d\u79f0\u3002
-message.installWizard.tooltip.addSecondaryStorage.nfsServer=\u6258\u7ba1\u4e8c\u7ea7\u5b58\u50a8\u7684 NFS \u670d\u52a1\u5668\u7684 IP \u5730\u5740
-message.installWizard.tooltip.addSecondaryStorage.path=\u5bfc\u51fa\u8def\u5f84(\u4f4d\u4e8e\u4e0a\u8ff0\u6307\u5b9a\u670d\u52a1\u5668\u4e0a)
-message.installWizard.tooltip.addZone.dns1=\u8fd9\u4e9b\u670d\u52a1\u5668\u662f\u4f9b\u6b64\u8d44\u6e90\u57df\u4e2d\u7684\u6765\u5bbe VM \u4f7f\u7528\u7684 DNS \u670d\u52a1\u5668\uff0c\u5c06\u901a\u8fc7\u60a8\u7a0d\u540e\u8981\u6dfb\u52a0\u7684\u516c\u7528\u7f51\u7edc\u8fdb\u884c\u8bbf\u95ee\u3002\u6b64\u8d44\u6e90\u57df\u7684\u516c\u7528 IP \u5730\u5740\u5fc5\u987b\u8def\u7531\u5230\u5728\u6b64\u5904\u6307\u5b9a\u7684 DNS \u670d\u52a1\u5668\u3002
-message.installWizard.tooltip.addZone.dns2=\u8fd9\u4e9b\u670d\u52a1\u5668\u662f\u4f9b\u6b64\u8d44\u6e90\u57df\u4e2d\u7684\u6765\u5bbe VM \u4f7f\u7528\u7684 DNS \u670d\u52a1\u5668\uff0c\u5c06\u901a\u8fc7\u60a8\u7a0d\u540e\u8981\u6dfb\u52a0\u7684\u516c\u7528\u7f51\u7edc\u8fdb\u884c\u8bbf\u95ee\u3002\u6b64\u8d44\u6e90\u57df\u7684\u516c\u7528 IP \u5730\u5740\u5fc5\u987b\u8def\u7531\u5230\u5728\u6b64\u5904\u6307\u5b9a\u7684 DNS \u670d\u52a1\u5668\u3002
-message.installWizard.tooltip.addZone.internaldns1=\u8fd9\u4e9b\u670d\u52a1\u5668\u662f\u4f9b\u6b64\u8d44\u6e90\u57df\u4e2d\u7684\u7cfb\u7edf VM \u4f7f\u7528\u7684 DNS \u670d\u52a1\u5668\uff0c\u5c06\u901a\u8fc7\u7cfb\u7edf VM \u7684\u4e13\u7528\u7f51\u7edc\u63a5\u53e3\u8fdb\u884c\u8bbf\u95ee\u3002\u60a8\u4e3a\u63d0\u4f9b\u70b9\u63d0\u4f9b\u7684\u4e13\u7528 IP \u5730\u5740\u5fc5\u987b\u8def\u7531\u5230\u5728\u6b64\u5904\u6307\u5b9a\u7684 DNS \u670d\u52a1\u5668\u3002
-message.installWizard.tooltip.addZone.internaldns2=\u8fd9\u4e9b\u670d\u52a1\u5668\u662f\u4f9b\u6b64\u8d44\u6e90\u57df\u4e2d\u7684\u7cfb\u7edf VM \u4f7f\u7528\u7684 DNS \u670d\u52a1\u5668\uff0c\u5c06\u901a\u8fc7\u7cfb\u7edf VM \u7684\u4e13\u7528\u7f51\u7edc\u63a5\u53e3\u8fdb\u884c\u8bbf\u95ee\u3002\u60a8\u4e3a\u63d0\u4f9b\u70b9\u63d0\u4f9b\u7684\u4e13\u7528 IP \u5730\u5740\u5fc5\u987b\u8def\u7531\u5230\u5728\u6b64\u5904\u6307\u5b9a\u7684 DNS \u670d\u52a1\u5668\u3002
-message.installWizard.tooltip.addZone.name=\u8d44\u6e90\u57df\u540d\u79f0
-message.installWizard.tooltip.configureGuestTraffic.description=\u60a8\u7684\u7f51\u7edc\u8bf4\u660e
-message.installWizard.tooltip.configureGuestTraffic.guestEndIp=\u80fd\u591f\u5206\u914d\u7ed9\u6b64\u8d44\u6e90\u57df\u4e2d\u7684\u6765\u5bbe\u7684 IP \u5730\u5740\u8303\u56f4\u3002\u5982\u679c\u4f7f\u7528\u4e00\u4e2a NIC\uff0c\u8fd9\u4e9b IP \u5e94\u4f4d\u4e8e\u4e0e\u63d0\u4f9b\u70b9 CIDR \u76f8\u540c\u7684  CIDR \u4e2d\u3002
-message.installWizard.tooltip.configureGuestTraffic.guestGateway=\u6765\u5bbe\u5e94\u4f7f\u7528\u7684\u7f51\u5173
-message.installWizard.tooltip.configureGuestTraffic.guestNetmask=\u6765\u5bbe\u5e94\u4f7f\u7528\u7684\u5b50\u7f51\u4e0a\u6b63\u5728\u4f7f\u7528\u7684\u7f51\u7edc\u63a9\u7801
-message.installWizard.tooltip.configureGuestTraffic.guestStartIp=\u80fd\u591f\u5206\u914d\u7ed9\u6b64\u8d44\u6e90\u57df\u4e2d\u7684\u6765\u5bbe\u7684 IP \u5730\u5740\u8303\u56f4\u3002\u5982\u679c\u4f7f\u7528\u4e00\u4e2a NIC\uff0c\u8fd9\u4e9b IP \u5e94\u4f4d\u4e8e\u4e0e\u63d0\u4f9b\u70b9 CIDR \u76f8\u540c\u7684  CIDR \u4e2d\u3002
-message.installWizard.tooltip.configureGuestTraffic.name=\u60a8\u7684\u7f51\u7edc\u540d\u79f0
-message.instance.scaled.up.confirm=\u662f\u5426\u786e\u5b9e\u8981\u6269\u5c55\u60a8\u7684\u5b9e\u4f8b?
-message.instanceWizard.noTemplates=\u60a8\u6ca1\u6709\u4efb\u4f55\u53ef\u7528\u6a21\u677f\uff1b\u8bf7\u6dfb\u52a0\u4e00\u4e2a\u517c\u5bb9\u7684\u6a21\u677f\uff0c\u7136\u540e\u91cd\u65b0\u542f\u52a8\u5b9e\u4f8b\u5411\u5bfc\u3002
-message.ip.address.changed=\u60a8\u7684 IP \u5730\u5740\u53ef\u80fd\u5df2\u53d1\u751f\u53d8\u5316\uff1b\u662f\u5426\u8981\u5237\u65b0\u6b64\u5217\u8868? \u8bf7\u6ce8\u610f\uff0c\u5237\u65b0\u6b64\u5217\u8868\u65f6\uff0c\u201c\u8be6\u7ec6\u4fe1\u606f\u201d\u7a97\u683c\u5c06\u5173\u95ed\u3002
-message.iso.desc=\u78c1\u76d8\u6620\u50cf\uff0c\u5176\u4e2d\u5305\u542b\u64cd\u4f5c\u7cfb\u7edf\u7684\u6570\u636e\u6216\u53ef\u542f\u52a8\u4ecb\u8d28
-message.join.project=\u60a8\u73b0\u5728\u5df2\u52a0\u5165\u4e86\u4e00\u4e2a\u9879\u76ee\u3002\u8bf7\u5207\u6362\u5230\u201c\u9879\u76ee\u89c6\u56fe\u201d\u4ee5\u67e5\u770b\u9879\u76ee\u3002
-message.launch.vm.on.private.network=\u662f\u5426\u8981\u5728\u60a8\u7684\u79c1\u4eba\u4e13\u7528\u7f51\u7edc\u4e2d\u542f\u52a8\u5b9e\u4f8b?
-message.launch.zone=\u8d44\u6e90\u57df\u5df2\u51c6\u5907\u5c31\u7eea\uff0c\u53ef\u968f\u65f6\u542f\u52a8\uff1b\u8bf7\u7ee7\u7eed\u6267\u884c\u4e0b\u4e00\u6b65\u9aa4\u3002
-message.link.domain.to.ldap=\u4e3a\u6b64\u57df\u5f00\u542f LDAP \u540c\u6b65
-message.listView.subselect.multi=(\u6309\u4f4f Ctrl/Cmd \u5e76\u5355\u51fb)
-message.lock.account=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u9501\u5b9a\u6b64\u5e10\u6237\u3002\u901a\u8fc7\u9501\u5b9a\u6b64\u5e10\u6237\uff0c\u6b64\u5e10\u6237\u7684\u6240\u6709\u7528\u6237\u5c06\u4e0d\u518d\u80fd\u591f\u7ba1\u7406\u5404\u81ea\u7684\u4e91\u8d44\u6e90\uff0c\u4f46\u4ecd\u7136\u53ef\u4ee5\u8bbf\u95ee\u73b0\u6709\u8d44\u6e90\u3002
-message.migrate.instance.confirm=\u8bf7\u786e\u8ba4\u8981\u5c06\u865a\u62df\u5b9e\u4f8b\u8fc1\u79fb\u5230\u7684\u4e3b\u673a\u3002
-message.migrate.instance.to.host=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06\u5b9e\u4f8b\u8fc1\u79fb\u5230\u5176\u4ed6\u4e3b\u673a\u3002
-message.migrate.instance.to.ps=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06\u5b9e\u4f8b\u8fc1\u79fb\u5230\u5176\u4ed6\u4e3b\u5b58\u50a8\u3002
-message.migrate.router.confirm=\u8bf7\u786e\u8ba4\u60a8\u8981\u5c06\u8def\u7531\u5668\u8fc1\u79fb\u5230\u7684\u4e3b\u673a\:
-message.migrate.systemvm.confirm=\u8bf7\u786e\u8ba4\u60a8\u8981\u5c06\u7cfb\u7edf VM \u8fc1\u79fb\u5230\u7684\u4e3b\u673a\:
-message.migrate.volume=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06\u5377\u8fc1\u79fb\u5230\u5176\u4ed6\u4e3b\u5b58\u50a8\u3002
-message.network.addVM.desc=\u8bf7\u6307\u5b9a\u8981\u5c06\u6b64 VM \u6dfb\u52a0\u5230\u7684\u7f51\u7edc\u3002\u5c06\u4e3a\u6b64\u7f51\u7edc\u6dfb\u52a0\u4e00\u4e2a\u65b0 NIC\u3002
-message.network.addVMNIC=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e3a\u6b64\u7f51\u7edc\u6dfb\u52a0\u4e00\u4e2a\u65b0 VM NIC\u3002
-message.network.remote.access.vpn.configuration=\u8fdc\u7a0b\u8bbf\u95eeVPN\u914d\u7f6e\u5df2\u7ecf\u4ea7\u751f\uff0c\u4f46\u65e0\u6cd5\u5e94\u7528\u3002\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\u72b6\u51b5\uff0c\u7136\u540e\u91cd\u65b0\u5c1d\u8bd5\u3002
-message.new.user=\u8bf7\u6307\u5b9a\u4ee5\u4e0b\u4fe1\u606f\u4ee5\u5411\u5e10\u6237\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7528\u6237
-message.no.affinity.groups=\u60a8\u6ca1\u6709\u4efb\u4f55\u5173\u8054\u6027\u7ec4\u3002\u8bf7\u7ee7\u7eed\u6267\u884c\u4e0b\u4e00\u6b65\u64cd\u4f5c\u3002
-message.no.host.available=\u6ca1\u6709\u53ef\u7528\u4e8e\u8fc1\u79fb\u7684\u4e3b\u673a
-message.no.network.support.configuration.not.true=\u60a8\u7684\u6240\u6709\u8d44\u6e90\u57df\u90fd\u672a\u542f\u7528\u5b89\u5168\u7ec4\uff0c\u56e0\u6b64\u65e0\u5176\u4ed6\u7f51\u7edc\u529f\u80fd\u3002\u8bf7\u7ee7\u7eed\u6267\u884c\u6b65\u9aa4 5\u3002
-message.no.network.support=\u60a8\u9009\u62e9\u7684\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f vSphere \u6ca1\u6709\u4efb\u4f55\u5176\u4ed6\u7f51\u7edc\u529f\u80fd\u3002\u8bf7\u7ee7\u7eed\u6267\u884c\u6b65\u9aa4 5\u3002
-message.no.projects.adminOnly=\u60a8\u6ca1\u6709\u4efb\u4f55\u9879\u76ee\u3002<br/>\u8bf7\u8981\u6c42\u7ba1\u7406\u5458\u521b\u5efa\u4e00\u4e2a\u65b0\u9879\u76ee\u3002
-message.no.projects=\u60a8\u6ca1\u6709\u4efb\u4f55\u9879\u76ee\u3002<br/>\u8bf7\u4ece\u201c\u9879\u76ee\u201d\u90e8\u5206\u4e2d\u521b\u5efa\u4e00\u4e2a\u65b0\u9879\u76ee\u3002
-message.number.clusters=<h2>\u7fa4\u96c6<span>\u6570</span></h2>
-message.number.hosts=<h2>\u4e3b\u673a<span>\u6570</span></h2>
-message.number.pods=<h2>\u63d0\u4f9b\u70b9<span>\u6570</span></h2>
-message.number.storage=<h2>\u4e3b\u5b58\u50a8\u5377<span>\u6570</span></h2>
-message.number.zones=<h2>\u8d44\u6e90\u57df<span>\u6570</span></h2>
-message.password.has.been.reset.to=\u5bc6\u7801\u5df2\u91cd\u7f6e\u4e3a
-message.password.of.the.vm.has.been.reset.to=\u5b9e\u4f8b\u7684\u5bc6\u7801\u4ee5\u91cd\u7f6e\u4e3a
-message.pending.projects.1=\u60a8\u6709\u5f85\u5b9a\u9879\u76ee\u9080\u8bf7\:
-message.pending.projects.2=\u8981\u67e5\u770b\uff0c\u8bf7\u8f6c\u81f3\u201c\u9879\u76ee\u201d\u90e8\u5206\uff0c\u7136\u540e\u4ece\u4e0b\u62c9\u5217\u8868\u4e2d\u9009\u62e9\u201c\u9080\u8bf7\u201d\u3002
-message.please.add.at.lease.one.traffic.range=\u8bf7\u81f3\u5c11\u6dfb\u52a0\u4e00\u4e2a\u6d41\u91cf\u8303\u56f4\u3002
-message.please.confirm.remove.ssh.key.pair=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u6b64SSH\u5bc6\u94a5\u5bf9
-message.please.proceed=\u8bf7\u7ee7\u7eed\u6267\u884c\u4e0b\u4e2a\u6b65\u9aa4\u3002
-message.please.select.a.configuration.for.your.zone=\u8bf7\u4e3a\u60a8\u7684\u8d44\u6e90\u57df\u9009\u62e9\u4e00\u79cd\u914d\u7f6e\u3002
-message.please.select.a.different.public.and.management.network.before.removing=\u8bf7\u5148\u9009\u62e9\u5176\u4ed6\u516c\u7528\u7ba1\u7406\u7f51\u7edc\uff0c\u7136\u540e\u518d\u5220\u9664
-message.please.select.networks=\u8bf7\u4e3a\u60a8\u7684\u865a\u62df\u673a\u9009\u62e9\u7f51\u7edc\u3002
-message.please.select.ssh.key.pair.use.with.this.vm=\u8bf7\u4e3a\u6b64\u5b9e\u4f8b\u9009\u62e9\u4e00\u4e2a\u5bc6\u94a5\u5bf9
-message.please.wait.while.zone.is.being.created=\u6b63\u5728\u521b\u5efa\u8d44\u6e90\u57df\uff0c\u8bf7\u7a0d\u5019\uff1b\u6b64\u64cd\u4f5c\u53ef\u80fd\u9700\u8981\u4e00\u6bb5\u65f6\u95f4\u624d\u80fd\u5b8c\u6210...
-message.pod.dedication.released=\u5df2\u91ca\u653e\u4e13\u7528\u63d0\u4f9b\u70b9
-message.portable.ip.delete.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u53ef\u79fb\u690d IP \u8303\u56f4
-message.project.invite.sent=\u53d1\u9001\u7ed9\u7528\u6237\u7684\u9080\u8bf7\uff1b\u7528\u6237\u63a5\u53d7\u9080\u8bf7\u540e\uff0c\u5c06\u52a0\u5165\u5230\u9879\u76ee\u4e2d
-message.public.traffic.in.advanced.zone=\u4e91\u4e2d\u7684 VM \u8bbf\u95ee Internet \u65f6\u5c06\u751f\u6210\u516c\u5171\u6d41\u91cf\uff0c\u4f46\u5fc5\u987b\u5206\u914d\u53ef\u516c\u5f00\u8bbf\u95ee\u7684 IP \u624d\u80fd\u5b9e\u73b0\u3002\u6700\u7ec8\u7528\u6237\u53ef\u4ee5\u4f7f\u7528 CloudStack UI \u83b7\u53d6\u8fd9\u4e9b IP\uff0c\u4ee5\u5728\u5176\u6765\u5bbe\u7f51\u7edc\u4e0e\u516c\u7528\u7f51\u7edc\u4e4b\u95f4\u6267\u884c NAT\u3002<br/><br/>\u8bf7\u81f3\u5c11\u4e3a Internet \u6d41\u91cf\u63d0\u4f9b\u4e00\u4e2a IP \u5730\u5740\u8303\u56f4\u3002
-message.public.traffic.in.basic.zone=\u4e91\u4e2d\u7684 VM \u8bbf\u95ee Internet \u6216\u901a\u8fc7 Internet \u5411\u5ba2\u6237\u7aef\u63d0\u4f9b\u670d\u52a1\u65f6\u5c06\u751f\u6210\u516c\u5171\u6d41\u91cf\uff0c\u4f46\u5fc5\u987b\u5206\u914d\u53ef\u516c\u5f00\u8bbf\u95ee\u7684 IP \u624d\u80fd\u5b9e\u73b0\u3002\u521b\u5efa\u5b9e\u4f8b\u65f6\uff0c\u5c06\u628a\u8fd9\u4e00\u7ec4\u516c\u7528 IP \u4e2d\u7684 IP (\u6765\u5bbe IP \u5730\u5740\u9664\u5916)\u5206\u914d\u7ed9\u6b64\u5b9e\u4f8b\u3002\u9759\u6001 1-1 NAT \u5c06\u5728\u516c\u7528 IP \u4e0e\u6765\u5bbe IP \u4e4b\u95f4\u81ea\u52a8\u8bbe\u7f6e\u3002\u6700\u7ec8\u7528\u6237\u8fd8\u53ef\u4ee5\u4f7f\u7528 CloudStack UI \u83b7\u53d6\u5176\u4ed6 IP\uff0c\u4ee5\u5728\u5176\u5b9e\u4f8b\u4e0e\u516c\u7528 IP \u4e4b\u95f4\u6267\u884c\u9759\u6001 NAT\u3002
-message.question.are.you.sure.you.want.to.add=\u60a8\u786e\u5b9a\u8981\u6dfb\u52a0
-message.read.admin.guide.scaling.up=\u5f00\u59cb\u6269\u5c55\u4e4b\u524d\uff0c\u8bf7\u9605\u8bfb\u7ba1\u7406\u6307\u5357\u4e2d\u7684\u52a8\u6001\u6269\u5c55\u90e8\u5206\u3002
-message.recover.vm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u6062\u590d\u6b64 VM\u3002
-message.redirecting.region=\u6b63\u5728\u91cd\u5b9a\u5411\u5230\u5730\u7406\u533a\u57df...
-message.reinstall.vm=\u6ce8\u610f\: \u8bf7\u8c28\u614e\u64cd\u4f5c\u3002\u8fd9\u5c06\u5bfc\u81f4\u4ece\u6a21\u677f\u91cd\u65b0\u5b89\u88c5 VM\uff0c\u5e76\u4e14\u5f15\u5bfc\u78c1\u76d8\u4e0a\u5b58\u50a8\u7684\u6570\u636e\u5c06\u4e22\u5931\u3002\u989d\u5916\u7684\u6570\u636e\u5377(\u5982\u679c\u5b58\u5728)\u5c06\u65e0\u6cd5\u8bbf\u95ee\u3002
-message.removed.ssh.key.pair=\u5df2\u79fb\u9664\u7684SSH\u5bc6\u94a5\u5bf9
-message.remove.ldap=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664 LDAP \u914d\u7f6e?
-message.remove.region=\u662f\u5426\u786e\u5b9e\u8981\u4ece\u6b64\u7ba1\u7406\u670d\u52a1\u5668\u4e2d\u5220\u9664\u6b64\u5730\u7406\u533a\u57df?
-message.remove.vpc=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664 VPC
-message.remove.vpn.access=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5220\u9664\u4ee5\u4e0b\u7528\u6237\u7684 VPN \u8bbf\u95ee\u3002
-message.reset.password.warning.notPasswordEnabled=\u521b\u5efa\u6b64\u5b9e\u4f8b\u7684\u6a21\u677f\u65f6\u672a\u542f\u7528\u5bc6\u7801
-message.reset.password.warning.notStopped=\u5fc5\u987b\u5148\u505c\u6b62\u60a8\u7684\u5b9e\u4f8b\uff0c\u624d\u80fd\u5c1d\u8bd5\u66f4\u6539\u5176\u5f53\u524d\u5bc6\u7801
-message.reset.VPN.connection=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91cd\u7f6e VPN \u8fde\u63a5
-message.restart.mgmt.server=\u8bf7\u91cd\u65b0\u542f\u52a8\u7ba1\u7406\u670d\u52a1\u5668\u4ee5\u4f7f\u60a8\u7684\u65b0\u8bbe\u7f6e\u751f\u6548\u3002
-message.restart.mgmt.usage.server=\u8bf7\u91cd\u65b0\u542f\u52a8\u7ba1\u7406\u670d\u52a1\u5668\u548c\u4f7f\u7528\u670d\u52a1\u5668\u4ee5\u4f7f\u60a8\u7684\u65b0\u8bbe\u7f6e\u751f\u6548\u3002
-message.restart.network=\u6b64\u7f51\u7edc\u63d0\u4f9b\u7684\u6240\u6709\u670d\u52a1\u90fd\u5c06\u4e2d\u65ad\u3002\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91cd\u65b0\u542f\u52a8\u6b64\u7f51\u7edc\u3002
-message.restart.vpc.remark=\u8bf7\u786e\u5b9a\u60a8\u8981\u91cd\u542fVPC  <p><small><i> \u8b66\u544a\: \u91cd\u542f\u975e\u5197\u4f59\u7684VPC\u5c06\u4f1a\u5bfc\u81f4\u7f51\u7edc\u4e2d\u65ad,\u76f4\u81f3VPC\u91cd\u542f\u5b8c\u6210</i>.</small></p>
-message.restart.vpc=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u91cd\u65b0\u542f\u52a8 VPC
-message.restoreVM=\u662f\u5426\u8981\u8fd8\u539f\u6b64 VM?
-message.security.group.usage=(<strong>\u6309\u4f4f Ctrl \u952e\u5e76\u5355\u51fb\u9f20\u6807</strong>\u53ef\u9009\u62e9\u6240\u6709\u9002\u7528\u7684\u5b89\u5168\u7ec4)
-message.select.affinity.groups=\u8bf7\u9009\u62e9\u60a8\u5e0c\u671b\u6b64 VM \u6240\u5c5e\u7684\u4efb\u4f55\u5173\u8054\u6027\u7ec4\:
-message.select.a.zone=\u4e00\u4e2a\u8d44\u6e90\u57df\u901a\u5e38\u4e0e\u4e00\u4e2a\u6570\u636e\u4e2d\u5fc3\u76f8\u5bf9\u5e94\u3002\u591a\u4e2a\u8d44\u6e90\u57df\u53ef\u4ee5\u63d0\u4f9b\u7269\u7406\u9694\u79bb\u548c\u5197\u4f59\uff0c\u6709\u52a9\u4e8e\u4f7f\u4e91\u66f4\u52a0\u53ef\u9760\u3002
-message.select.instance=\u8bf7\u9009\u62e9\u4e00\u4e2a\u5b9e\u4f8b\u3002
-message.select.iso=\u8bf7\u4e3a\u60a8\u7684\u65b0\u865a\u62df\u5b9e\u4f8b\u9009\u62e9\u4e00\u4e2a ISO\u3002
-message.select.item=\u8bf7\u9009\u62e9\u4e00\u4e2a\u9879\u76ee\u3002
-message.select.security.groups=\u8bf7\u4e3a\u60a8\u7684\u65b0 VM \u9009\u62e9\u5b89\u5168\u7ec4
-message.select.template=\u8bf7\u4e3a\u60a8\u7684\u65b0\u865a\u62df\u5b9e\u4f8b\u9009\u62e9\u4e00\u4e2a\u6a21\u677f\u3002
-message.select.tier=\u8bf7\u9009\u62e9\u4e00\u4e2a\u5c42
-message.set.default.NIC.manual=\u8bf7\u7acb\u5373\u624b\u52a8\u66f4\u65b0\u6b64 VM \u4e0a\u7684\u9ed8\u8ba4 NIC\u3002
-message.set.default.NIC=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u5c06\u6b64 NIC \u8bbe\u7f6e\u4e3a\u6b64 VM \u7684\u9ed8\u8ba4 NIC\u3002
-message.setup.physical.network.during.zone.creation.basic=\u6dfb\u52a0\u57fa\u7840\u8d44\u6e90\u57df\u65f6\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e2a\u7269\u7406\u7f51\u7edc\uff0c\u6b64\u7f51\u7edc\u5e94\u4e0e\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u4e2d\u7684 NIC \u76f8\u5bf9\u5e94\u3002\u6b64\u7f51\u7edc\u53ef\u4ee5\u627f\u8f7d\u591a\u79cd\u6d41\u91cf\u7c7b\u578b\u3002<br/><br/>\u6b64\u5916\uff0c\u8fd8\u53ef\u4ee5\u5c06\u5176\u4ed6\u6d41\u91cf\u7c7b\u578b<strong>\u62d6\u653e</strong>\u5230\u6b64\u7269\u7406\u7f51\u7edc\u3002
-message.setup.physical.network.during.zone.creation=\u6dfb\u52a0\u9ad8\u7ea7\u8d44\u6e90\u57df\u65f6\uff0c\u9700\u8981\u8bbe\u7f6e\u4e00\u4e2a\u6216\u591a\u4e2a\u7269\u7406\u7f51\u7edc\u3002\u6bcf\u4e2a\u7f51\u7edc\u90fd\u4e0e\u865a\u62df\u673a\u7ba1\u7406\u7a0b\u5e8f\u4e2d\u7684\u4e00\u4e2a NIC \u76f8\u5bf9\u5e94\u3002\u6bcf\u4e2a\u7269\u7406\u7f51\u7edc\u4e2d\u53ef\u4ee5\u5305\u542b\u4e00\u79cd\u6216\u591a\u79cd\u6d41\u91cf\u7c7b\u578b\uff0c\u5e76\u5bf9\u8fd9\u4e9b\u6d41\u91cf\u7c7b\u578b\u53ef\u80fd\u7684\u7ec4\u5408\u65b9\u5f0f\u8bbe\u7f6e\u4e86\u67d0\u4e9b\u9650\u5236\u3002<br/><br/><strong>\u53ef\u4ee5\u5c06\u4e00\u79cd\u6216\u591a\u79cd\u6d41\u91cf\u7c7b\u578b\u62d6\u653e</strong>\u5230\u6bcf\u4e2a\u7269\u7406\u7f51\u7edc\u4e2d\u3002
-message.setup.successful=\u5df2\u6210\u529f\u8bbe\u7f6e\u4e91\!
-message.snapshot.schedule=\u53ef\u4ee5\u901a\u8fc7\u4ece\u4ee5\u4e0b\u53ef\u7528\u9009\u9879\u4e2d\u8fdb\u884c\u9009\u62e9\u5e76\u5e94\u7528\u60a8\u7684\u7b56\u7565\u9996\u9009\u9879\u6765\u8bbe\u7f6e\u91cd\u73b0\u5feb\u7167\u8ba1\u5212
-message.specifiy.tag.key.value=\u8bf7\u6307\u5b9a\u6807\u8bb0\u5bc6\u94a5\u548c\u503c
-message.specify.url=\u8bf7\u6307\u5b9a URL
-message.step.1.continue=\u8bf7\u9009\u62e9\u4e00\u4e2a\u6a21\u677f\u6216 ISO \u4ee5\u7ee7\u7eed
-message.step.1.desc=\u8bf7\u4e3a\u60a8\u7684\u65b0\u865a\u62df\u5b9e\u4f8b\u9009\u62e9\u4e00\u4e2a\u6a21\u677f\u3002\u8fd8\u53ef\u4ee5\u9009\u62e9\u4e00\u4e2a\u53ef\u5c06 ISO \u6620\u50cf\u5b89\u88c5\u5230\u5176\u4e2d\u7684\u7a7a\u6a21\u677f\u3002
-message.step.2.continue=\u8bf7\u9009\u62e9\u4e00\u79cd\u670d\u52a1\u65b9\u6848\u4ee5\u7ee7\u7eed
-message.step.3.continue=\u8bf7\u9009\u62e9\u4e00\u4e2a\u78c1\u76d8\u65b9\u6848\u4ee5\u7ee7\u7eed
-message.step.4.continue=\u8bf7\u81f3\u5c11\u9009\u62e9\u4e00\u4e2a\u7f51\u7edc\u4ee5\u7ee7\u7eed
-message.step.4.desc=\u8bf7\u9009\u62e9\u865a\u62df\u5b9e\u4f8b\u8981\u8fde\u63a5\u5230\u7684\u4e3b\u7f51\u7edc\u3002
-message.storage.traffic=CloudStack \u5185\u90e8\u8d44\u6e90(\u5305\u62ec\u4e0e\u7ba1\u7406\u670d\u52a1\u5668\u901a\u4fe1\u7684\u4efb\u4f55\u7ec4\u4ef6\uff0c\u4f8b\u5982\u4e3b\u673a\u548c CloudStack \u7cfb\u7edf VM)\u4e4b\u95f4\u7684\u6d41\u91cf\u3002\u8bf7\u5728\u6b64\u5904\u914d\u7f6e\u5b58\u50a8\u6d41\u91cf\u3002
-message.suspend.project=\u662f\u5426\u786e\u5b9e\u8981\u6682\u505c\u6b64\u9879\u76ee?
-message.systems.vms.ready=\u7cfb\u7edf VM \u5df2\u5c31\u7eea\u3002
-message.template.copying=\u6b63\u5728\u590d\u5236\u6a21\u677f\u3002
-message.template.desc=\u64cd\u4f5c\u7cfb\u7edf\u6620\u50cf\uff0c\u53ef\u7528\u4e8e\u542f\u52a8 VM
-message.tier.required=\u201c\u5c42\u201d\u4e3a\u5fc5\u586b\u9879
-message.tooltip.dns.1=\u4f9b\u8d44\u6e90\u57df\u4e2d\u7684 VM \u4f7f\u7528\u7684 DNS \u670d\u52a1\u5668\u540d\u79f0\u3002\u8d44\u6e90\u57df\u7684\u516c\u7528 IP \u5730\u5740\u5fc5\u987b\u8def\u7531\u5230\u6b64\u670d\u52a1\u5668\u3002
-message.tooltip.dns.2=\u4f9b\u8d44\u6e90\u57df\u4e2d\u7684 VM \u4f7f\u7528\u7684\u4e8c\u7ea7 DNS \u670d\u52a1\u5668\u540d\u79f0\u3002\u8d44\u6e90\u57df\u7684\u516c\u7528 IP \u5730\u5740\u5fc5\u987b\u8def\u7531\u5230\u6b64\u670d\u52a1\u5668\u3002
-message.tooltip.internal.dns.1=\u4f9b\u8d44\u6e90\u57df\u4e2d\u7684 CloudStack \u5185\u90e8\u7cfb\u7edf VM \u4f7f\u7528\u7684 DNS \u670d\u52a1\u5668\u540d\u79f0\u3002\u63d0\u4f9b\u70b9\u7684\u4e13\u7528 IP \u5730\u5740\u5fc5\u987b\u8def\u7531\u5230\u6b64\u670d\u52a1\u5668\u3002
-message.tooltip.internal.dns.2=\u4f9b\u8d44\u6e90\u57df\u4e2d\u7684 CloudStack \u5185\u90e8\u7cfb\u7edf VM \u4f7f\u7528\u7684 DNS \u670d\u52a1\u5668\u540d\u79f0\u3002\u63d0\u4f9b\u70b9\u7684\u4e13\u7528 IP \u5730\u5740\u5fc5\u987b\u8def\u7531\u5230\u6b64\u670d\u52a1\u5668\u3002
-message.tooltip.network.domain=DNS \u540e\u7f00\uff0c\u5c06\u4e3a\u7531\u6765\u5bbe VM \u8bbf\u95ee\u7684\u7f51\u7edc\u521b\u5efa\u4e00\u4e2a\u81ea\u5b9a\u4e49\u57df\u540d\u3002
-message.tooltip.pod.name=\u6b64\u63d0\u4f9b\u70b9\u7684\u540d\u79f0\u3002
-message.tooltip.reserved.system.gateway=\u63d0\u4f9b\u70b9\u4e2d\u7684\u4e3b\u673a\u7f51\u5173\u3002
-message.tooltip.reserved.system.netmask=\u7528\u4e8e\u5b9a\u4e49\u63d0\u4f9b\u70b9\u5b50\u7f51\u7684\u7f51\u7edc\u524d\u7f00\u3002\u8bf7\u4f7f\u7528 CIDR \u7b26\u53f7\u3002
-message.tooltip.zone.name=\u8d44\u6e90\u57df\u540d\u79f0\u3002
-message.update.os.preference=\u8bf7\u4e3a\u6b64\u4e3b\u673a\u9009\u62e9\u4e00\u4e2a\u64cd\u4f5c\u7cfb\u7edf\u9996\u9009\u9879\u3002\u9996\u5148\u5c06\u5177\u6709\u76f8\u4f3c\u9996\u9009\u9879\u7684\u6240\u6709\u865a\u62df\u5b9e\u4f8b\u5206\u914d\u81f3\u6b64\u4e3b\u673a\uff0c\u7136\u540e\u518d\u9009\u62e9\u5176\u4ed6\u5b9e\u4f8b\u3002
-message.update.resource.count=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u66f4\u65b0\u6b64\u5e10\u6237\u7684\u8d44\u6e90\u6570\u3002
-message.update.ssl.failed=\u65e0\u6cd5\u66f4\u65b0 SSL \u8bc1\u4e66\u3002
-message.update.ssl.succeeded=\u5df2\u6210\u529f\u66f4\u65b0 SSL \u8bc1\u4e66
-message.update.ssl=\u8bf7\u63d0\u4ea4\u4e00\u4e2a X.509 \u517c\u5bb9\u7684\u65b0 SSL \u8bc1\u4e66\uff0c\u4ee5\u4fbf\u5c06\u5176\u66f4\u65b0\u5230\u6bcf\u4e2a\u63a7\u5236\u53f0\u4ee3\u7406\u548c\u4e8c\u7ea7\u5b58\u50a8\u865a\u62df\u5b9e\u4f8b\:
-message.validate.accept=\u8bf7\u8f93\u5165\u4e00\u4e2a\u5e26\u6709\u6709\u6548\u6269\u5c55\u540d\u7684\u503c\u3002
-message.validate.creditcard=\u8bf7\u8f93\u5165\u4e00\u4e2a\u6709\u6548\u7684\u4fe1\u7528\u5361\u5361\u53f7\u3002
-message.validate.date.ISO=\u8bf7\u8f93\u5165\u6709\u6548\u7684\u65e5\u671f(ISO)\u3002
-message.validate.date=\u8bf7\u8f93\u5165\u6709\u6548\u7684\u65e5\u671f\u3002
-message.validate.digits=\u8bf7\u4ec5\u8f93\u5165\u6570\u5b57\u3002
-message.validate.email.address=\u8bf7\u8f93\u5165\u4e00\u4e2a\u6709\u6548\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u3002
-message.validate.equalto=\u8bf7\u91cd\u65b0\u8f93\u5165\u76f8\u540c\u7684\u503c\u3002
-message.validate.fieldrequired=\u6b64\u5b57\u6bb5\u4e3a\u5fc5\u586b\u5b57\u6bb5\u3002
-message.validate.fixfield=\u8bf7\u4fee\u590d\u6b64\u5b57\u6bb5\u3002
-message.validate.instance.name=\u5b9e\u4f8b\u540d\u79f0\u4e0d\u5f97\u8d85\u8fc7 63 \u4e2a\u5b57\u7b26\u3002\u4ec5\u5141\u8bb8\u4f7f\u7528 ASCII \u5b57\u6bcd a - z \u6216 A - Z\u3001\u6570\u5b57 0 - 9 \u4ee5\u53ca\u8fde\u5b57\u7b26\u3002\u5b9e\u4f8b\u540d\u79f0\u5fc5\u987b\u4ee5\u5b57\u6bcd\u5f00\u5934\u5e76\u4ee5\u5b57\u6bcd\u6216\u6570\u5b57\u7ed3\u675f\u3002
-message.validate.invalid.characters=\u67e5\u627e\u5230\u65e0\u6548\u5b57\u7b26\uff0c\u8bf7\u66f4\u6b63\u3002
-message.validate.maxlength=\u8bf7\u6700\u591a\u8f93\u5165 {0} \u4e2a\u5b57\u7b26\u3002
-message.validate.max=\u8bf7\u8f93\u5165\u4e00\u4e2a\u5c0f\u4e8e\u6216\u7b49\u4e8e {0} \u7684\u503c\u3002
-message.validate.minlength=\u8bf7\u81f3\u5c11\u8f93\u5165 {0} \u4e2a\u5b57\u7b26\u3002
-message.validate.number=\u8bf7\u8f93\u5165\u4e00\u4e2a\u6709\u6548\u6570\u5b57\u3002
-message.validate.range.length=\u8bf7\u8f93\u5165\u4e00\u4e2a\u957f\u5ea6\u4ecb\u4e8e {0} \u5230 {1} \u4e4b\u95f4\u7684\u503c\u3002
-message.validate.range=\u8bf7\u8f93\u5165\u4e00\u4e2a\u4ecb\u4e8e {0} \u5230 {1} \u4e4b\u95f4\u7684\u503c\u3002
-message.validate.URL=\u8bf7\u8f93\u5165\u6709\u6548\u7684 URL\u3002
-message.virtual.network.desc=\u60a8\u7684\u5e10\u6237\u7684\u4e13\u7528\u865a\u62df\u7f51\u7edc\u3002\u5e7f\u64ad\u57df\u5305\u542b\u5728 VLAN \u4e2d\uff0c\u5e76\u4e14\u6240\u6709\u516c\u7528\u7f51\u7edc\u8bbf\u95ee\u90fd\u7531\u865a\u62df\u8def\u7531\u5668\u8def\u7531\u51fa\u53bb\u3002
-message.vm.create.template.confirm=\u521b\u5efa\u6a21\u677f\u5c06\u81ea\u52a8\u91cd\u65b0\u542f\u52a8 VM\u3002
-message.vm.review.launch=\u8bf7\u5148\u6838\u5bf9\u4ee5\u4e0b\u4fe1\u606f\uff0c\u786e\u8ba4\u60a8\u7684\u865a\u62df\u5b9e\u4f8b\u6b63\u786e\u65e0\u8bef\uff0c\u7136\u540e\u518d\u542f\u52a8\u3002
-message.vnmc.available.list=\u63d0\u4f9b\u7a0b\u5e8f\u5217\u8868\u4e2d\u672a\u63d0\u4f9b VNMC\u3002
-message.vnmc.not.available.list=\u63d0\u4f9b\u7a0b\u5e8f\u5217\u8868\u4e2d\u672a\u63d0\u4f9b VNMC\u3002
-message.volume.create.template.confirm=\u8bf7\u786e\u8ba4\u60a8\u786e\u5b9e\u8981\u4e3a\u6b64\u78c1\u76d8\u5377\u521b\u5efa\u4e00\u4e2a\u6a21\u677f\u3002\u521b\u5efa\u6a21\u677f\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\u5230\u66f4\u957f\u7684\u65f6\u95f4\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u5377\u7684\u5927\u5c0f\u3002
-message.waiting.for.builtin.templates.to.load=\u6b63\u5728\u7b49\u5f85\u52a0\u8f7d\u5185\u7f6e\u6a21\u677f...
-message.XSTools61plus.update.failed=\u65e0\u6cd5\u66f4\u65b0\u201c\u539f\u59cb XS \u7248\u672c\u4e3a 6.1+\u201d\u5b57\u6bb5\u3002\u9519\u8bef\:
-message.you.must.have.at.least.one.physical.network=\u60a8\u5fc5\u987b\u81f3\u5c11\u62e5\u6709\u4e00\u4e2a\u7269\u7406\u7f51\u7edc
-message.your.cloudstack.is.ready=\u60a8\u7684 CloudStack \u5df2\u5c31\u7eea\!
-message.Zone.creation.complete=\u5df2\u5b8c\u6210\u521b\u5efa\u8d44\u6e90\u57df
-message.zone.creation.complete.would.you.like.to.enable.this.zone=\u5df2\u5b8c\u6210\u521b\u5efa\u8d44\u6e90\u57df\u3002\u662f\u5426\u8981\u542f\u7528\u6b64\u8d44\u6e90\u57df?
-message.zone.no.network.selection=\u6240\u9009\u8d44\u6e90\u57df\u65e0\u4efb\u4f55\u7f51\u7edc\u9009\u9879\u3002
-message.zone.step.1.desc=\u8bf7\u4e3a\u60a8\u7684\u8d44\u6e90\u57df\u9009\u62e9\u4e00\u79cd\u7f51\u7edc\u6a21\u5f0f\u3002
-message.zone.step.2.desc=\u8bf7\u8f93\u5165\u4ee5\u4e0b\u4fe1\u606f\u4ee5\u6dfb\u52a0\u4e00\u4e2a\u65b0\u8d44\u6e90\u57df
-message.zone.step.3.desc=\u8bf7\u8f93\u5165\u4ee5\u4e0b\u4fe1\u606f\u4ee5\u6dfb\u52a0\u4e00\u4e2a\u65b0\u63d0\u4f9b\u70b9
-message.zoneWizard.enable.local.storage=\u8b66\u544a\: \u5982\u679c\u4e3a\u6b64\u8d44\u6e90\u57df\u542f\u7528\u4e86\u672c\u5730\u5b58\u50a8\uff0c\u5219\u5fc5\u987b\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff0c\u5177\u4f53\u53d6\u51b3\u4e8e\u60a8\u5e0c\u671b\u542f\u52a8\u7cfb\u7edf VM \u7684\u4f4d\u7f6e\:<br/><br/>1. \u5982\u679c\u9700\u8981\u5728\u5171\u4eab\u4e3b\u5b58\u50a8\u4e2d\u542f\u52a8\u7cfb\u7edf VM\uff0c\u5219\u5fc5\u987b\u5728\u5b8c\u6210\u521b\u5efa\u540e\u5c06\u5171\u4eab\u4e3b\u5b58\u50a8\u6dfb\u52a0\u5230\u6b64\u8d44\u6e90\u57df\u3002<br/><br/>2. \u5982\u679c\u9700\u8981\u5728\u672c\u5730\u4e3b\u5b58\u50a8\u4e2d\u542f\u52a8\u7cfb\u7edf VM\uff0c\u5219\u5fc5\u987b\u5728\u542f\u7528\u6b64\u8d44\u6e90\u57df\u4e4b\u524d\u5c06 system.vm.use.local.storage \u8bbe\u7f6e\u4e3a true\u3002<br/><br/><br/>\u662f\u5426\u8981\u7ee7\u7eed?
-messgae.validate.min=\u8bf7\u8f93\u5165\u4e00\u4e2a\u5927\u4e8e\u6216\u7b49\u4e8e {0} \u7684\u503c\u3002
-mode=\u6a21\u5f0f
-network.rate=\u7f51\u7edc\u901f\u7387
-notification.reboot.instance=\u91cd\u65b0\u542f\u52a8\u5b9e\u4f8b
-notification.start.instance=\u542f\u52a8\u5b9e\u4f8b
-notification.stop.instance=\u505c\u6b62\u5b9e\u4f8b
-side.by.side=\u5e76\u884c
-state.Accepted=\u5df2\u63a5\u53d7
-state.Active=\u6d3b\u52a8
-state.Allocated=\u5df2\u5206\u914d
-state.Allocating=\u6b63\u5728\u5206\u914d
-state.BackedUp=\u5df2\u5907\u4efd
-state.BackingUp=\u6b63\u5728\u5907\u4efd
-state.Completed=\u5df2\u5b8c\u6210
-state.Creating=\u6b63\u5728\u521b\u5efa
-state.Declined=\u5df2\u62d2\u7edd
-state.Destroyed=\u5df2\u9500\u6bc1
-state.detached=\u5df2\u53d6\u6d88\u9644\u52a0
-state.Disabled=\u5df2\u7981\u7528
-state.Enabled=\u5df2\u542f\u7528
-state.Error=\u9519\u8bef
-state.Expunging=\u6b63\u5728\u5220\u9664
-state.Migrating=\u6b63\u5728\u8fc1\u79fb
-state.Pending=\u5f85\u5b9a
-state.Ready=\u5df2\u5c31\u7eea
-state.Running=\u6b63\u5728\u8fd0\u884c
-state.Starting=\u6b63\u5728\u542f\u52a8
-state.Stopped=\u5df2\u505c\u6b62
-state.Stopping=\u6b63\u5728\u505c\u6b62
-state.Suspended=\u5df2\u6682\u505c
-title.upload.volume=\u4e0a\u4f20\u5377
-ui.listView.filters.all=\u5168\u90e8
-ui.listView.filters.mine=\u672c\u7528\u6237
diff --git a/client/WEB-INF/web.xml b/client/WEB-INF/web.xml
index a384f06..73a755b 100644
--- a/client/WEB-INF/web.xml
+++ b/client/WEB-INF/web.xml
@@ -80,7 +80,7 @@
 
     <error-page>
       <exception-type>java.lang.Exception</exception-type>
-      <location>/error.jsp</location>
+      <location>/error.html</location>
     </error-page>
 
 </web-app>
diff --git a/client/pom.xml b/client/pom.xml
index 38660a7..6dbffc4 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -17,9 +17,16 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
 
+  <repositories>
+    <repository>
+      <id>juniper-contrail</id>
+      <url>http://juniper.github.io/contrail-maven/snapshots</url>
+    </repository>
+  </repositories>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
@@ -143,11 +150,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
-      <artifactId>cloud-plugin-network-midonet</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-plugin-network-ssp</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -173,6 +175,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
+      <artifactId>cloud-plugin-network-vsp</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-plugin-hypervisor-xenserver</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -512,11 +519,6 @@
                     <include name="web.xml"/>
                   </fileset>
                 </copy>
-                <copy todir="${basedir}/target/generated-webapp/WEB-INF/classes">
-                  <fileset dir="${basedir}/WEB-INF/classes">
-                    <include name="resources/**/*"/>
-                  </fileset>
-                </copy>
                 <copy todir="${basedir}/target/generated-webapp">
                   <fileset dir="${basedir}/../ui"/>
                 </copy>
@@ -1001,16 +1003,16 @@
       </dependencies>
     </profile>
     <profile>
-      <id>nuagevsp</id>
+      <id>midonet</id>
       <activation>
         <property>
-          <name>noredist</name>
+          <name>midonet</name>
         </property>
       </activation>
       <dependencies>
         <dependency>
           <groupId>org.apache.cloudstack</groupId>
-          <artifactId>cloud-plugin-network-vsp</artifactId>
+          <artifactId>cloud-plugin-network-midonet</artifactId>
           <version>${project.version}</version>
         </dependency>
       </dependencies>
diff --git a/client/resources/META-INF/cloudstack/webApplicationContext.xml b/client/resources/META-INF/cloudstack/webApplicationContext.xml
index fea2709..3b3c6db 100644
--- a/client/resources/META-INF/cloudstack/webApplicationContext.xml
+++ b/client/resources/META-INF/cloudstack/webApplicationContext.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
     <!-- There is no reason to put anything here -->
diff --git a/client/tomcatconf/classpath.conf.in b/client/tomcatconf/classpath.conf.in
index e2c5da4..ecdd12a 100644
--- a/client/tomcatconf/classpath.conf.in
+++ b/client/tomcatconf/classpath.conf.in
@@ -34,8 +34,8 @@
 	CLASSPATH=$vendorconf:$CLASSPATH
 done
 export CLASSPATH
-if ([ -z "$JAVA_HOME" ] || [ ! -d "$JAVA_HOME" ]) && [ -d /usr/lib/jvm/jre-1.7.0 ]; then
-     export JAVA_HOME=/usr/lib/jvm/jre-1.7.0
+if ([ -z "$JAVA_HOME" ] || [ ! -d "$JAVA_HOME" ]) && [ -d /usr/lib/jvm/jre-1.8.0 ]; then
+     export JAVA_HOME=/usr/lib/jvm/jre-1.8.0
 fi
 PATH=$JAVA_HOME/bin:/sbin:/usr/sbin:$PATH
 export PATH
diff --git a/client/tomcatconf/web.xml.in b/client/tomcatconf/web.xml.in
index 44b6eab..8645a64 100644
--- a/client/tomcatconf/web.xml.in
+++ b/client/tomcatconf/web.xml.in
@@ -1182,7 +1182,6 @@
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
         <welcome-file>index.htm</welcome-file>
-        <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
 
 </web-app>
diff --git a/core/pom.xml b/core/pom.xml
index d15ad89..5e6521e 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>
@@ -50,7 +50,7 @@
       <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
-          <version>1.10</version>
+          <version>1.12</version>
       </dependency>
   </dependencies>
 
diff --git a/core/resources/META-INF/cloudstack/allocator/spring-core-allocator-context.xml b/core/resources/META-INF/cloudstack/allocator/spring-core-allocator-context.xml
index 700b906..0e00fda 100644
--- a/core/resources/META-INF/cloudstack/allocator/spring-core-allocator-context.xml
+++ b/core/resources/META-INF/cloudstack/allocator/spring-core-allocator-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
     <bean id="usageEventUtils" class="com.cloud.event.UsageEventUtils" />
diff --git a/core/resources/META-INF/cloudstack/allocator/spring-core-lifecycle-allocator-context-inheritable.xml b/core/resources/META-INF/cloudstack/allocator/spring-core-lifecycle-allocator-context-inheritable.xml
index e6ed961..cd98a63 100644
--- a/core/resources/META-INF/cloudstack/allocator/spring-core-lifecycle-allocator-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/allocator/spring-core-lifecycle-allocator-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/api/spring-core-lifecycle-api-context-inheritable.xml b/core/resources/META-INF/cloudstack/api/spring-core-lifecycle-api-context-inheritable.xml
index 1a33fa2..7ab5523 100644
--- a/core/resources/META-INF/cloudstack/api/spring-core-lifecycle-api-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/api/spring-core-lifecycle-api-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context-inheritable.xml b/core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context-inheritable.xml
index 84c301c..62826c8 100644
--- a/core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <context:annotation-config />
diff --git a/core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context.xml b/core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context.xml
index 7a586a2..6e78e2e 100644
--- a/core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context.xml
+++ b/core/resources/META-INF/cloudstack/bootstrap/spring-bootstrap-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.CloudStackLog4jSetup" />
diff --git a/core/resources/META-INF/cloudstack/compute/spring-core-lifecycle-compute-context-inheritable.xml b/core/resources/META-INF/cloudstack/compute/spring-core-lifecycle-compute-context-inheritable.xml
index f757e7e..293834e 100644
--- a/core/resources/META-INF/cloudstack/compute/spring-core-lifecycle-compute-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/compute/spring-core-lifecycle-compute-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/core/spring-core-context.xml b/core/resources/META-INF/cloudstack/core/spring-core-context.xml
index 242f72c..d6f7187 100644
--- a/core/resources/META-INF/cloudstack/core/spring-core-context.xml
+++ b/core/resources/META-INF/cloudstack/core/spring-core-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="componentContext" class="com.cloud.utils.component.ComponentContext">
diff --git a/core/resources/META-INF/cloudstack/core/spring-core-lifecycle-core-context-inheritable.xml b/core/resources/META-INF/cloudstack/core/spring-core-lifecycle-core-context-inheritable.xml
index 515249d..b754d6b 100644
--- a/core/resources/META-INF/cloudstack/core/spring-core-lifecycle-core-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/core/spring-core-lifecycle-core-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml b/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
index d36f98d..a9124d3 100644
--- a/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
+++ b/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="userAuthenticatorsRegistry"
diff --git a/core/resources/META-INF/cloudstack/discoverer/spring-core-lifecycle-discoverer-context-inheritable.xml b/core/resources/META-INF/cloudstack/discoverer/spring-core-lifecycle-discoverer-context-inheritable.xml
index 640d17e..1a0e679 100644
--- a/core/resources/META-INF/cloudstack/discoverer/spring-core-lifecycle-discoverer-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/discoverer/spring-core-lifecycle-discoverer-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml b/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml
index 1986777..8dbaf61 100644
--- a/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/outofbandmanagement/spring-core-lifecycle-outofbandmanagement-context-inheritable.xml b/core/resources/META-INF/cloudstack/outofbandmanagement/spring-core-lifecycle-outofbandmanagement-context-inheritable.xml
index 6a25a2e..3a21e72 100644
--- a/core/resources/META-INF/cloudstack/outofbandmanagement/spring-core-lifecycle-outofbandmanagement-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/outofbandmanagement/spring-core-lifecycle-outofbandmanagement-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/planner/spring-core-lifecycle-planner-context-inheritable.xml b/core/resources/META-INF/cloudstack/planner/spring-core-lifecycle-planner-context-inheritable.xml
index 2548308..51da662 100644
--- a/core/resources/META-INF/cloudstack/planner/spring-core-lifecycle-planner-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/planner/spring-core-lifecycle-planner-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/storage/spring-lifecycle-storage-context-inheritable.xml b/core/resources/META-INF/cloudstack/storage/spring-lifecycle-storage-context-inheritable.xml
index 7b86e93..2771dfe 100644
--- a/core/resources/META-INF/cloudstack/storage/spring-lifecycle-storage-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/storage/spring-lifecycle-storage-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
diff --git a/core/resources/META-INF/cloudstack/system/spring-core-system-context-inheritable.xml b/core/resources/META-INF/cloudstack/system/spring-core-system-context-inheritable.xml
index 2d454ac..4a59e95 100644
--- a/core/resources/META-INF/cloudstack/system/spring-core-system-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/system/spring-core-system-context-inheritable.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
   <!--
diff --git a/core/resources/META-INF/cloudstack/system/spring-core-system-context.xml b/core/resources/META-INF/cloudstack/system/spring-core-system-context.xml
index 96b627e..03f3622 100644
--- a/core/resources/META-INF/cloudstack/system/spring-core-system-context.xml
+++ b/core/resources/META-INF/cloudstack/system/spring-core-system-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
   <!--
diff --git a/core/src/com/cloud/agent/api/MigrateWithStorageReceiveCommand.java b/core/src/com/cloud/agent/api/MigrateWithStorageReceiveCommand.java
index 66aecdb..3d413fc 100644
--- a/core/src/com/cloud/agent/api/MigrateWithStorageReceiveCommand.java
+++ b/core/src/com/cloud/agent/api/MigrateWithStorageReceiveCommand.java
@@ -21,26 +21,25 @@
 
 import java.util.List;
 
-import com.cloud.agent.api.to.StorageFilerTO;
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.agent.api.to.VolumeTO;
 import com.cloud.utils.Pair;
 
 public class MigrateWithStorageReceiveCommand extends Command {
     VirtualMachineTO vm;
-    List<Pair<VolumeTO, StorageFilerTO>> volumeToFiler;
+    List<Pair<VolumeTO, String>> volumeToStorageUuid;
 
-    public MigrateWithStorageReceiveCommand(VirtualMachineTO vm, List<Pair<VolumeTO, StorageFilerTO>> volumeToFiler) {
+    public MigrateWithStorageReceiveCommand(VirtualMachineTO vm, List<Pair<VolumeTO, String>> volumeToStorageUuid) {
         this.vm = vm;
-        this.volumeToFiler = volumeToFiler;
+        this.volumeToStorageUuid = volumeToStorageUuid;
     }
 
     public VirtualMachineTO getVirtualMachine() {
         return vm;
     }
 
-    public List<Pair<VolumeTO, StorageFilerTO>> getVolumeToFiler() {
-        return volumeToFiler;
+    public List<Pair<VolumeTO, String>> getVolumeToStorageUuid() {
+        return volumeToStorageUuid;
     }
 
     @Override
diff --git a/core/src/com/cloud/agent/api/RestoreVMSnapshotAnswer.java b/core/src/com/cloud/agent/api/RestoreVMSnapshotAnswer.java
new file mode 100644
index 0000000..390f49a
--- /dev/null
+++ b/core/src/com/cloud/agent/api/RestoreVMSnapshotAnswer.java
@@ -0,0 +1,63 @@
+//
+// 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.agent.api;
+
+import java.util.List;
+
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+
+import com.cloud.vm.VirtualMachine;
+
+public class RestoreVMSnapshotAnswer extends Answer {
+
+    private List<VolumeObjectTO> volumeTOs;
+    private VirtualMachine.PowerState vmState;
+
+    public RestoreVMSnapshotAnswer(RestoreVMSnapshotCommand cmd, boolean result, String message) {
+        super(cmd, result, message);
+    }
+
+    public RestoreVMSnapshotAnswer() {
+        super();
+    }
+
+    public RestoreVMSnapshotAnswer(RestoreVMSnapshotCommand cmd, List<VolumeObjectTO> volumeTOs, VirtualMachine.PowerState vmState) {
+        super(cmd, true, "");
+        this.volumeTOs = volumeTOs;
+        this.vmState = vmState;
+    }
+
+    public VirtualMachine.PowerState getVmState() {
+        return vmState;
+    }
+
+    public List<VolumeObjectTO> getVolumeTOs() {
+        return volumeTOs;
+    }
+
+    public void setVolumeTOs(List<VolumeObjectTO> volumeTOs) {
+        this.volumeTOs = volumeTOs;
+    }
+
+    public void setVmState(VirtualMachine.PowerState vmState) {
+        this.vmState = vmState;
+    }
+
+}
diff --git a/core/src/com/cloud/agent/api/RestoreVMSnapshotCommand.java b/core/src/com/cloud/agent/api/RestoreVMSnapshotCommand.java
new file mode 100644
index 0000000..2769475
--- /dev/null
+++ b/core/src/com/cloud/agent/api/RestoreVMSnapshotCommand.java
@@ -0,0 +1,52 @@
+//
+// 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.agent.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+
+public class RestoreVMSnapshotCommand extends VMSnapshotBaseCommand {
+
+    List<VMSnapshotTO> snapshots;
+    Map<Long, VMSnapshotTO> snapshotAndParents;
+
+    public RestoreVMSnapshotCommand(String vmName, VMSnapshotTO snapshot, List<VolumeObjectTO> volumeTOs, String guestOSType) {
+        super(vmName, snapshot, volumeTOs, guestOSType);
+    }
+
+    public List<VMSnapshotTO> getSnapshots() {
+            return snapshots;
+    }
+
+    public void setSnapshots(List<VMSnapshotTO> snapshots) {
+        this.snapshots = snapshots;
+    }
+
+    public Map<Long, VMSnapshotTO> getSnapshotAndParents() {
+        return snapshotAndParents;
+    }
+
+    public void setSnapshotAndParents(Map<Long, VMSnapshotTO> snapshotAndParents) {
+        this.snapshotAndParents = snapshotAndParents;
+    }
+
+}
diff --git a/core/src/com/cloud/agent/api/SecurityGroupRulesCmd.java b/core/src/com/cloud/agent/api/SecurityGroupRulesCmd.java
index 09f9266..fe4ac1c 100644
--- a/core/src/com/cloud/agent/api/SecurityGroupRulesCmd.java
+++ b/core/src/com/cloud/agent/api/SecurityGroupRulesCmd.java
@@ -41,6 +41,7 @@
     private static final Logger LOGGER = Logger.getLogger(SecurityGroupRulesCmd.class);
 
     private final String guestIp;
+    private final String guestIp6;
     private final String vmName;
     private final String guestMac;
     private final String signature;
@@ -93,6 +94,7 @@
 
     public SecurityGroupRulesCmd(
             final String guestIp,
+            final String guestIp6,
             final String guestMac,
             final String vmName,
             final Long vmId,
@@ -102,6 +104,7 @@
             final IpPortAndProto[] egressRuleSet,
             final List<String> secIps) {
         this.guestIp = guestIp;
+        this.guestIp6 = guestIp6;
         this.vmName = vmName;
         setIngressRuleSet(ingressRuleSet);
         this.setEgressRuleSet(egressRuleSet);
@@ -148,6 +151,10 @@
         return guestIp;
     }
 
+    public String getGuestIp6() {
+        return guestIp6;
+    }
+
     public List<String> getSecIps() {
         return secIps;
     }
diff --git a/core/src/com/cloud/agent/api/StopCommand.java b/core/src/com/cloud/agent/api/StopCommand.java
index 869af3a..e1d68f8 100644
--- a/core/src/com/cloud/agent/api/StopCommand.java
+++ b/core/src/com/cloud/agent/api/StopCommand.java
@@ -28,6 +28,7 @@
     private String publicConsoleProxyIpAddress = null;
     private GPUDeviceTO gpuDevice;
     boolean checkBeforeCleanup = false;
+    String controlIp = null;
     boolean forceStop = false;
 
     protected StopCommand() {
@@ -90,6 +91,14 @@
         return this.checkBeforeCleanup;
     }
 
+    public String getControlIp(){
+        return controlIp;
+    }
+
+    public void setControlIp(String controlIp){
+        this.controlIp = controlIp;
+    }
+
     public boolean isForceStop() {
         return forceStop;
     }
diff --git a/core/src/com/cloud/agent/api/routing/NetworkElementCommand.java b/core/src/com/cloud/agent/api/routing/NetworkElementCommand.java
index 6e62e81..a7b5b5e 100644
--- a/core/src/com/cloud/agent/api/routing/NetworkElementCommand.java
+++ b/core/src/com/cloud/agent/api/routing/NetworkElementCommand.java
@@ -38,6 +38,7 @@
     public static final String VPC_PRIVATE_GATEWAY = "vpc.gateway.private";
     public static final String FIREWALL_EGRESS_DEFAULT = "firewall.egress.default";
     public static final String ROUTER_MONITORING_ENABLE = "router.monitor.enable";
+    public static final String NETWORK_PUB_LAST_IP = "network.public.last.ip";
 
     private String routerAccessIp;
 
diff --git a/core/src/com/cloud/agent/api/routing/SetFirewallRulesCommand.java b/core/src/com/cloud/agent/api/routing/SetFirewallRulesCommand.java
index 1f8d4cf..7078885 100644
--- a/core/src/com/cloud/agent/api/routing/SetFirewallRulesCommand.java
+++ b/core/src/com/cloud/agent/api/routing/SetFirewallRulesCommand.java
@@ -56,13 +56,13 @@
             if (fwTO.revoked()) {
                 StringBuilder sb = new StringBuilder();
                 /* This entry is added just to make sure atleast there will one entry in the list to get the ipaddress */
-                sb.append(fwTO.getSrcIp()).append(":reverted:0:0:0:");
+                sb.append(fwTO.getSrcIp()).append(":reverted:0:0:0:0:").append(fwTO.getId()).append(":");
                 String fwRuleEntry = sb.toString();
                 toAdd.add(fwRuleEntry);
                 continue;
             }
 
-            List<String> cidr;
+            List<String> sCidr, dCidr;
             StringBuilder sb = new StringBuilder();
             sb.append(fwTO.getSrcIp()).append(":").append(fwTO.getProtocol()).append(":");
             if ("icmp".compareTo(fwTO.getProtocol()) == 0) {
@@ -73,12 +73,13 @@
             else
                 sb.append(fwTO.getStringSrcPortRange()).append(":");
 
-            cidr = fwTO.getSourceCidrList();
-            if (cidr == null || cidr.isEmpty()) {
-                sb.append("0.0.0.0/0");
+            sCidr = fwTO.getSourceCidrList();
+            dCidr = fwTO.getDestCidrList();
+            if (sCidr == null || sCidr.isEmpty()) {
+                sb.append("0.0.0.0/0");  //check if this is necessary because we are providing the source cidr by default???
             } else {
                 boolean firstEntry = true;
-                for (String tag : cidr) {
+                for (String tag : sCidr) {
                     if (!firstEntry)
                         sb.append("-");
                     sb.append(tag);
@@ -86,8 +87,23 @@
                 }
             }
             sb.append(":");
-            String fwRuleEntry = sb.toString();
 
+            if(dCidr == null || dCidr.isEmpty()){
+                sb.append("");
+            }
+            else{
+                boolean firstEntry = true;
+                for(String cidr : dCidr){
+                    if(!firstEntry)
+                        sb.append("-");
+                    sb.append(cidr);
+                    firstEntry = false;
+                }
+            }
+            sb.append(":");
+            sb.append(fwTO.getId());
+            sb.append(":");
+            String fwRuleEntry = sb.toString();
             toAdd.add(fwRuleEntry);
 
         }
diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
index e424bac..75f55f9 100644
--- a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
+++ b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
@@ -182,7 +182,7 @@
         boolean finalResult = false;
         for (ConfigItem configItem : cfg) {
             long startTimestamp = System.currentTimeMillis();
-            ExecutionResult result = applyConfigToVR(cmd.getRouterAccessIp(), configItem);
+            ExecutionResult result = applyConfigToVR(cmd.getRouterAccessIp(), configItem, VRScripts.VR_SCRIPT_EXEC_TIMEOUT);
             if (s_logger.isDebugEnabled()) {
                 long elapsed = System.currentTimeMillis() - startTimestamp;
                 s_logger.debug("Processing " + configItem + " took " + elapsed + "ms");
@@ -394,7 +394,7 @@
                     s_logger.debug("Aggregate action timeout in seconds is " + timeout.getStandardSeconds());
                 }
 
-                ExecutionResult result = applyConfigToVR(cmd.getRouterAccessIp(), fileConfigItem);
+                ExecutionResult result = applyConfigToVR(cmd.getRouterAccessIp(), fileConfigItem, timeout);
                 if (!result.isSuccess()) {
                     return new Answer(cmd, false, result.getDetails());
                 }
diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetFirewallRulesConfigItem.java b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetFirewallRulesConfigItem.java
index 3327afa..bdf8fc4 100644
--- a/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetFirewallRulesConfigItem.java
+++ b/core/src/com/cloud/agent/resource/virtualnetwork/facade/SetFirewallRulesConfigItem.java
@@ -40,7 +40,7 @@
         final List<FirewallRule> rules = new ArrayList<FirewallRule>();
         for (final FirewallRuleTO rule : command.getRules()) {
             final FirewallRule fwRule = new FirewallRule(rule.getId(), rule.getSrcVlanTag(), rule.getSrcIp(), rule.getProtocol(), rule.getSrcPortRange(), rule.revoked(),
-                    rule.isAlreadyAdded(), rule.getSourceCidrList(), rule.getPurpose().toString(), rule.getIcmpType(), rule.getIcmpCode(), rule.getTrafficType().toString(),
+                    rule.isAlreadyAdded(), rule.getSourceCidrList(), rule.getDestCidrList(), rule.getPurpose().toString(), rule.getIcmpType(), rule.getIcmpCode(), rule.getTrafficType().toString(),
                     rule.getGuestCidr(), rule.isDefaultEgressPolicy());
             rules.add(fwRule);
         }
diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/model/FirewallRule.java b/core/src/com/cloud/agent/resource/virtualnetwork/model/FirewallRule.java
index 0543094..44ec9be 100644
--- a/core/src/com/cloud/agent/resource/virtualnetwork/model/FirewallRule.java
+++ b/core/src/com/cloud/agent/resource/virtualnetwork/model/FirewallRule.java
@@ -30,6 +30,7 @@
     private boolean revoked;
     private boolean alreadyAdded;
     private List<String> sourceCidrList;
+    private List<String> destCidrList;
     private String purpose;
     private Integer icmpType;
     private Integer icmpCode;
@@ -43,7 +44,7 @@
     }
 
     public FirewallRule(long id, String srcVlanTag, String srcIp, String protocol, int[] srcPortRange, boolean revoked, boolean alreadyAdded, List<String> sourceCidrList,
-            String purpose, Integer icmpType, Integer icmpCode, String trafficType, String guestCidr, boolean defaultEgressPolicy) {
+                        List<String> destCidrList, String purpose, Integer icmpType, Integer icmpCode, String trafficType, String guestCidr, boolean defaultEgressPolicy) {
         this.id = id;
         this.srcVlanTag = srcVlanTag;
         this.srcIp = srcIp;
@@ -58,6 +59,7 @@
         this.trafficType = trafficType;
         this.guestCidr = guestCidr;
         this.defaultEgressPolicy = defaultEgressPolicy;
+        this.destCidrList = destCidrList;
     }
 
     public long getId() {
diff --git a/core/src/com/cloud/agent/transport/Request.java b/core/src/com/cloud/agent/transport/Request.java
index 7b8dd0d..f78a96c 100644
--- a/core/src/com/cloud/agent/transport/Request.java
+++ b/core/src/com/cloud/agent/transport/Request.java
@@ -399,7 +399,7 @@
                 try {
                     _cmds = s_gson.fromJson(_content, this instanceof Response ? Answer[].class : Command[].class);
                 } catch (RuntimeException e) {
-                    s_logger.error("Unable to convert to json: " + _content);
+                    s_logger.error("Unable to deserialize from json: " + _content);
                     throw e;
                 }
             }
diff --git a/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java b/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java
index 9b711bc..1572efe 100644
--- a/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java
+++ b/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java
@@ -19,13 +19,12 @@
 
 package org.apache.cloudstack.storage.to;
 
-import java.util.Map;
-
-import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
-
 import com.cloud.agent.api.to.DataStoreTO;
 import com.cloud.storage.DataStoreRole;
 import com.cloud.storage.Storage.StoragePoolType;
+import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
+
+import java.util.Map;
 
 public class PrimaryDataStoreTO implements DataStoreTO {
     public static final String MANAGED = PrimaryDataStore.MANAGED;
@@ -51,6 +50,8 @@
     private final String url;
     private Map<String, String> details;
     private static final String pathSeparator = "/";
+    private Boolean fullCloneFlag;
+    private final boolean isManaged;
 
     public PrimaryDataStoreTO(PrimaryDataStore dataStore) {
         this.uuid = dataStore.getUuid();
@@ -62,6 +63,7 @@
         this.setPort(dataStore.getPort());
         this.url = dataStore.getUri();
         this.details = dataStore.getDetails();
+        this.isManaged = dataStore.isManaged();
     }
 
     public long getId() {
@@ -144,4 +146,16 @@
             .append("]")
             .toString();
     }
+
+    public Boolean isFullCloneFlag() {
+        return fullCloneFlag;
+    }
+
+    public void setFullCloneFlag(Boolean fullCloneFlag) {
+        this.fullCloneFlag = fullCloneFlag;
+    }
+
+    public boolean isManaged() {
+        return isManaged;
+    }
 }
diff --git a/core/test/com/cloud/agent/api/SecurityGroupRulesCmdTest.java b/core/test/com/cloud/agent/api/SecurityGroupRulesCmdTest.java
index 37b15eb..aba2460 100644
--- a/core/test/com/cloud/agent/api/SecurityGroupRulesCmdTest.java
+++ b/core/test/com/cloud/agent/api/SecurityGroupRulesCmdTest.java
@@ -45,6 +45,7 @@
     @Before
     public void setUp() throws Exception {
         final String guestIp = "10.10.10.10";
+        final String guestIp6 = "2001:db8::cad:40ff:fefd:75c4";
         final String guestMac = "aa:aa:aa:aa:aa:aa";
         final String vmName = "vm";
         final Long vmId = 1L;
@@ -57,7 +58,7 @@
         final IpPortAndProto[] ingressRuleSet = new IpPortAndProto[]{new IpPortAndProto(proto, startPort, endPort, allowedCidrs)};
         final IpPortAndProto[] egressRuleSet = new IpPortAndProto[]{new IpPortAndProto(proto, startPort, endPort, allowedCidrs)};
         final List<String> secIps = new Vector<String>();
-        securityGroupRulesCmd = new SecurityGroupRulesCmd(guestIp, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
+        securityGroupRulesCmd = new SecurityGroupRulesCmd(guestIp, guestIp6, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
     }
 
     /**
diff --git a/core/test/org/apache/cloudstack/api/agent/test/BackupSnapshotCommandTest.java b/core/test/org/apache/cloudstack/api/agent/test/BackupSnapshotCommandTest.java
index bdcda38..edc90aa 100644
--- a/core/test/org/apache/cloudstack/api/agent/test/BackupSnapshotCommandTest.java
+++ b/core/test/org/apache/cloudstack/api/agent/test/BackupSnapshotCommandTest.java
@@ -135,6 +135,9 @@
         };
 
         @Override
+        public boolean isManaged() { return false; }
+
+        @Override
         public Long getPodId() {
             return 0L;
         }
diff --git a/core/test/org/apache/cloudstack/api/agent/test/CheckNetworkAnswerTest.java b/core/test/org/apache/cloudstack/api/agent/test/CheckNetworkAnswerTest.java
index d6f0bfc..4d49c99 100644
--- a/core/test/org/apache/cloudstack/api/agent/test/CheckNetworkAnswerTest.java
+++ b/core/test/org/apache/cloudstack/api/agent/test/CheckNetworkAnswerTest.java
@@ -174,6 +174,9 @@
             };
 
             @Override
+            public boolean isManaged() { return false; }
+
+            @Override
             public Long getPodId() {
                 return 0L;
             }
diff --git a/core/test/org/apache/cloudstack/api/agent/test/SnapshotCommandTest.java b/core/test/org/apache/cloudstack/api/agent/test/SnapshotCommandTest.java
index 629669a..576419a 100644
--- a/core/test/org/apache/cloudstack/api/agent/test/SnapshotCommandTest.java
+++ b/core/test/org/apache/cloudstack/api/agent/test/SnapshotCommandTest.java
@@ -136,6 +136,9 @@
         };
 
         @Override
+        public boolean isManaged() { return false; }
+
+        @Override
         public Long getPodId() {
             return 0L;
         }
diff --git a/debian/changelog b/debian/changelog
index 81baf19..27e6dbc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,47 +1,17 @@
-cloudstack (4.9.4.0-SNAPSHOT) unstable; urgency=low
+cloudstack (4.10.1.0-SNAPSHOT) unstable; urgency=low
 
-  * Update the version to 4.9.4.0-SNAPSHOT
+  * Update the version to 4.10.1.0-SNAPSHOT
 
- -- the Apache CloudStack project <dev@cloudstack.apache.org>  Fri, 06 Dec 2016 10:38:00 +0530
+ -- the Apache CloudStack project <dev@cloudstack.apache.org>  Mon, 03 Jul 2017 10:06:42 +0530
 
-cloudstack (4.9.3.0) unstable; urgency=low
+cloudstack (4.10.1.0-SNAPSHOT-SNAPSHOT) unstable; urgency=low
 
-  * Update the version to 4.9.3.0
+  * Update the version to 4.10.0.snapshot
 
- -- the Apache CloudStack project <dev@cloudstack.apache.org>  Mon, 28 Aug 2017 14:52:37 +0200
-
-cloudstack (4.9.3.0-SNAPSHOT) unstable; urgency=low
-
-  * Update the version to 4.9.3.0-SNAPSHOT
-
- -- the Apache CloudStack project <dev@cloudstack.apache.org>  Fri, 06 Dec 2016 10:38:00 +0530
-
-cloudstack (4.9.2.0) unstable; urgency=low
-
-  * Update the version to 4.9.2.0
-
- -- the Apache CloudStack project <dev@cloudstack.apache.org>  Tue, 03 Jan 2017 12:28:47 +0530
-
-cloudstack (4.9.2.0-SNAPSHOT) unstable; urgency=low
-
-  * Update the version to 4.9.2.0-SNAPSHOT
-
- -- the Apache CloudStack project <dev@cloudstack.apache.org>  Sat, 10 Dec 2016 08:38:03 +0530
-
-cloudstack (4.9.2.0-SNAPSHOT) unstable; urgency=low
-
-  * Update the version to 4.9.2.0-SNAPSHOT
-
- -- the Apache CloudStack project <dev@cloudstack.apache.org>  Fri, 19 Aug 2016 13:48:00 +0530
+ -- the Apache CloudStack project <dev@cloudstack.apache.org>  Mon, 08 Aug 2016 11:22:34 +0530
 
 cloudstack (4.9.0) unstable; urgency=low
 
-  * Update the version to 4.9.0
-
- -- the Apache CloudStack project <dev@cloudstack.apache.org>  Mon, 25 Jul 2016 16:56:03 -0400
-
-cloudstack (4.9.0-SNAPSHOT) unstable; urgency=low
-
   [ Remi Bergsma ]
   * Update the version to 4.9.0.snapshot
 
diff --git a/debian/cloudstack-management.install b/debian/cloudstack-management.install
index c669382..9c3f04e 100644
--- a/debian/cloudstack-management.install
+++ b/debian/cloudstack-management.install
@@ -21,7 +21,8 @@
 /etc/cloudstack/management/ehcache.xml
 /etc/cloudstack/management/server-ssl.xml
 /etc/cloudstack/management/server-nonssl.xml
-/etc/cloudstack/management/server.xml
+/etc/cloudstack/management/server7-ssl.xml
+/etc/cloudstack/management/server7-nonssl.xml
 /etc/cloudstack/management/classpath.conf
 /etc/cloudstack/management/db.properties
 /etc/cloudstack/management/tomcat6-ssl.conf
@@ -33,6 +34,7 @@
 /etc/cloudstack/management/log4j-cloud.xml
 /etc/cloudstack/management/tomcat-users.xml
 /etc/cloudstack/management/context.xml
+/etc/default/cloudstack-management
 /etc/init.d/cloudstack-management
 /etc/security/limits.d/cloudstack-limits.conf
 /etc/sudoers.d/cloudstack
diff --git a/debian/cloudstack-management.postinst b/debian/cloudstack-management.postinst
index e70a1a4..240224d 100644
--- a/debian/cloudstack-management.postinst
+++ b/debian/cloudstack-management.postinst
@@ -60,7 +60,26 @@
 
     chmod 0640 ${CONFDIR}/${DBPROPS}
     chgrp cloud ${CONFDIR}/${DBPROPS}
-    invoke-rc.d tomcat6 stop || true
+
+    if [ -d "/usr/share/tomcat7" ]; then
+        rm -f /usr/share/cloudstack-management/bin
+        rm -f /usr/share/cloudstack-management/lib
+        ln -s /usr/share/tomcat7/bin /usr/share/cloudstack-management/bin
+        ln -s /usr/share/tomcat7/lib /usr/share/cloudstack-management/lib
+        invoke-rc.d tomcat7 stop || true
+        if [ ! -f "/etc/cloudstack/management/server.xml" ]; then
+            ln -s /etc/cloudstack/management/server7-nonssl.xml /etc/cloudstack/management/server.xml
+        fi
+    elif [ -d "/usr/share/tomcat6" ]; then
+        rm -f /usr/share/cloudstack-management/bin
+        rm -f /usr/share/cloudstack-management/lib
+        ln -s /usr/share/tomcat6/bin /usr/share/cloudstack-management/bin
+        ln -s /usr/share/tomcat6/lib /usr/share/cloudstack-management/lib
+        invoke-rc.d tomcat6 stop || true
+        if [ ! -f "/etc/cloudstack/management/server.xml" ]; then
+            ln -s /etc/cloudstack/management/server-nonssl.xml /etc/cloudstack/management/server.xml
+        fi
+    fi
 
     # Add jdbc MySQL driver settings to db.properties if not present
     grep -s -q "db.cloud.driver=jdbc:mysql" ${CONFDIR}/${DBPROPS} || sed -i -e "\$adb.cloud.driver=jdbc:mysql" ${CONFDIR}/${DBPROPS}
diff --git a/debian/control b/debian/control
index 9855bed..fed6622 100644
--- a/debian/control
+++ b/debian/control
@@ -2,28 +2,27 @@
 Section: libs
 Priority: extra
 Maintainer: Wido den Hollander <wido@widodh.nl>
-Build-Depends: debhelper (>= 9), openjdk-8-jdk | java8-sdk | java8-jdk | openjdk-7-jdk, genisoimage,
- python-mysql.connector, maven (>= 3) | maven3, python (>= 2.7), lsb-release, dh-systemd
+Build-Depends: debhelper (>= 9), openjdk-8-jdk | java8-sdk | java8-jdk, genisoimage,
+ python-mysql.connector, maven (>= 3) | maven3, python (>= 2.7), lsb-release, dh-systemd, python-setuptools
 Standards-Version: 3.8.1
 Homepage: http://www.cloudstack.org/
 
 Package: cloudstack-common
 Architecture: all
-Depends: ${misc:Depends}, ${python:Depends}, genisoimage, nfs-common
+Depends: ${misc:Depends}, ${python:Depends}, genisoimage, nfs-common, python-netaddr
 Conflicts: cloud-scripts, cloud-utils, cloud-system-iso, cloud-console-proxy, cloud-daemonize, cloud-deps, cloud-python, cloud-setup
 Description: A common package which contains files which are shared by several CloudStack packages
 
 Package: cloudstack-management
 Architecture: all
-Depends: ${misc:Depends}, ${python:Depends}, cloudstack-common (= ${source:Version}), tomcat6 | tomcat7, sudo, jsvc, python-mysql.connector, libmysql-java, augeas-tools, mysql-client, adduser, bzip2, ipmitool, lsb-release
+Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), tomcat6 | tomcat7, sudo, jsvc, python-mysql.connector, libmysql-java, augeas-tools, mysql-client, adduser, bzip2, ipmitool, lsb-release, init-system-helpers (>= 1.14~)
 Conflicts: cloud-server, cloud-client, cloud-client-ui
 Description: CloudStack server library
  The CloudStack management server
 
 Package: cloudstack-agent
 Architecture: all
-Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 0.9.8), uuid-runtime, iproute, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release
-Recommends: init-system-helpers
+Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 0.9.8), uuid-runtime, iproute, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release, init-system-helpers (>= 1.14~)
 Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, cloud-agent-scripts
 Description: CloudStack agent
  The CloudStack agent is in charge of managing shared computing resources in
@@ -32,8 +31,7 @@
 
 Package: cloudstack-usage
 Architecture: all
-Depends: openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), jsvc, libmysql-java
-Recommends: init-system-helpers
+Depends: openjdk-8-jre-headless | java8-runtime-headless | java8-runtime, cloudstack-common (= ${source:Version}), jsvc, libmysql-java, init-system-helpers (>= 1.14~)
 Description: CloudStack usage monitor
  The CloudStack usage monitor provides usage accounting across the entire cloud for
  cloud operators to charge based on usage parameters.
diff --git a/debian/rules b/debian/rules
index 8983c97..82a4023 100755
--- a/debian/rules
+++ b/debian/rules
@@ -86,19 +86,20 @@
 	chmod 0440 $(DESTDIR)/$(SYSCONFDIR)/sudoers.d/$(PACKAGE)
 
 	ln -s tomcat6-nonssl.conf $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/tomcat6.conf
-	ln -s server-nonssl.xml $(DESTDIR)/$(SYSCONFDIR)/$(PACKAGE)/management/server.xml
 	install -D packaging/debian/init/cloud-management $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-management
 	install -D client/target/utilities/bin/cloud-update-xenserver-licenses $(DESTDIR)/usr/bin/cloudstack-update-xenserver-licenses
-	ln -s /usr/share/tomcat6/bin $(DESTDIR)/usr/share/$(PACKAGE)-management/bin
 	# Remove configuration in /ur/share/cloudstack-management/webapps/client/WEB-INF
 	# This should all be in /etc/cloudstack/management
 	rm $(DESTDIR)/usr/share/$(PACKAGE)-management/webapps/client/WEB-INF/classes/*.*
 	ln -s ../../..$(SYSCONFDIR)/$(PACKAGE)/management $(DESTDIR)/usr/share/$(PACKAGE)-management/conf
-	ln -s ../../../usr/share/tomcat6/lib $(DESTDIR)/usr/share/$(PACKAGE)-management/lib
 	ln -s ../../../var/log/$(PACKAGE)/management $(DESTDIR)/usr/share/$(PACKAGE)-management/logs
 	ln -s ../../../var/cache/$(PACKAGE)/management/temp $(DESTDIR)/usr/share/$(PACKAGE)-management/temp
 	ln -s ../../../var/cache/$(PACKAGE)/management/work $(DESTDIR)/usr/share/$(PACKAGE)-management/work
 
+	install -d -m0755 debian/$(PACKAGE)-management/lib/systemd/system
+	install -m0644 packaging/systemd/$(PACKAGE)-management.service.ubuntu debian/$(PACKAGE)-management/lib/systemd/system/$(PACKAGE)-management.service
+	install -m0644 packaging/systemd/$(PACKAGE)-management.default.ubuntu $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-management
+
 	# cloudstack-common
 	mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-common
 	mkdir $(DESTDIR)/usr/share/$(PACKAGE)-common/scripts
@@ -150,7 +151,7 @@
 	dh_installinit -pcloudstack-management -pcloudstack-agent -pcloudstack-usage --onlyscripts --no-start
 
 override_dh_systemd_enable:
-	dh_systemd_enable -pcloudstack-agent -pcloudstack-usage
+	dh_systemd_enable -pcloudstack-management -pcloudstack-agent -pcloudstack-usage
 
 override_dh_installdocs:
 	dh_installdocs -A tools/whisker/LICENSE tools/whisker/NOTICE INSTALL.md
diff --git a/developer/pom.xml b/developer/pom.xml
index 2baeb35..128ae17 100644
--- a/developer/pom.xml
+++ b/developer/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>
diff --git a/engine/api/pom.xml b/engine/api/pom.xml
index 4605ad1..fa10d6c 100644
--- a/engine/api/pom.xml
+++ b/engine/api/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/api/resources/META-INF/cloudstack/core/spring-engine-api-core-context.xml b/engine/api/resources/META-INF/cloudstack/core/spring-engine-api-core-context.xml
index 1cb8829..0213367 100644
--- a/engine/api/resources/META-INF/cloudstack/core/spring-engine-api-core-context.xml
+++ b/engine/api/resources/META-INF/cloudstack/core/spring-engine-api-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="clusterRestService"
diff --git a/engine/api/src/com/cloud/vm/VirtualMachineGuru.java b/engine/api/src/com/cloud/vm/VirtualMachineGuru.java
index afc1e85..9c3f421 100644
--- a/engine/api/src/com/cloud/vm/VirtualMachineGuru.java
+++ b/engine/api/src/com/cloud/vm/VirtualMachineGuru.java
@@ -20,7 +20,6 @@
 import com.cloud.agent.manager.Commands;
 import com.cloud.deploy.DeployDestination;
 import com.cloud.exception.ResourceUnavailableException;
-
 /**
  * A VirtualMachineGuru knows how to process a certain type of virtual machine.
  *
diff --git a/engine/api/src/com/cloud/vm/VirtualMachineManager.java b/engine/api/src/com/cloud/vm/VirtualMachineManager.java
index b205415..4b61caa 100644
--- a/engine/api/src/com/cloud/vm/VirtualMachineManager.java
+++ b/engine/api/src/com/cloud/vm/VirtualMachineManager.java
@@ -110,7 +110,7 @@
 
     void advanceExpunge(String vmUuid) throws ResourceUnavailableException, OperationTimedoutException, ConcurrentOperationException;
 
-    void destroy(String vmUuid) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException;
+    void destroy(String vmUuid, boolean expunge) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException;
 
     void migrateAway(String vmUuid, long hostId) throws InsufficientServerCapacityException;
 
diff --git a/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java b/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java
index 1c3af62..c004514 100644
--- a/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java
+++ b/engine/api/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntity.java
@@ -106,7 +106,8 @@
      * @param reservationId reservation id from reserve call.
      *
      */
-    void deploy(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException;
+    void deploy(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params, boolean deployOnGivenHost)
+            throws InsufficientCapacityException, ResourceUnavailableException;
 
     /**
      * Stop the virtual machine
@@ -129,8 +130,9 @@
 
     /**
      * Destroys the VM.
+     * @param expunge indicates if vm should be expunged
      */
-    boolean destroy(String caller) throws AgentUnavailableException, CloudException, ConcurrentOperationException;
+    boolean destroy(String caller, boolean expunge) throws AgentUnavailableException, CloudException, ConcurrentOperationException;
 
     /**
      * Duplicate this VM in the database so that it will start new
diff --git a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
index b71aa96..b59c9ca 100644
--- a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
+++ b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
@@ -23,7 +23,6 @@
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.ConfigKey.Scope;
-
 import com.cloud.deploy.DataCenterDeployment;
 import com.cloud.deploy.DeployDestination;
 import com.cloud.deploy.DeploymentPlan;
@@ -39,6 +38,7 @@
 import com.cloud.network.NetworkProfile;
 import com.cloud.network.PhysicalNetwork;
 import com.cloud.network.element.DhcpServiceProvider;
+import com.cloud.network.element.DnsServiceProvider;
 import com.cloud.network.element.LoadBalancingServiceProvider;
 import com.cloud.network.element.StaticNatServiceProvider;
 import com.cloud.network.element.UserDataServiceProvider;
@@ -65,7 +65,7 @@
     static final String NetworkThrottlingRateCK = "network.throttling.rate";
     static final String MinVRVersionCK = "minreq.sysvmtemplate.version";
 
-    static final ConfigKey<String> MinVRVersion = new ConfigKey<String>(String.class, MinVRVersionCK, "Advanced", "4.6.0",
+    static final ConfigKey<String> MinVRVersion = new ConfigKey<String>(String.class, MinVRVersionCK, "Advanced", "4.10.0",
             "What version should the Virtual Routers report", true, ConfigKey.Scope.Zone, null);
 
     static final ConfigKey<Integer> NetworkLockTimeout = new ConfigKey<Integer>(Integer.class, NetworkLockTimeoutCK, "Network", "600",
@@ -213,15 +213,29 @@
 
     boolean isSecondaryIpSetForNic(long nicId);
 
-    List<? extends Nic> listVmNics(long vmId, Long nicId, Long networkId);
+    List<? extends Nic> listVmNics(long vmId, Long nicId, Long networkId, String keyword);
 
     Nic savePlaceholderNic(Network network, String ip4Address, String ip6Address, Type vmType);
 
     DhcpServiceProvider getDhcpServiceProvider(Network network);
 
+    DnsServiceProvider getDnsServiceProvider(Network network);
+
     void removeDhcpServiceInSubnet(Nic nic);
 
     boolean resourceCountNeedsUpdate(NetworkOffering ntwkOff, ACLType aclType);
 
     void prepareAllNicsForMigration(VirtualMachineProfile vm, DeployDestination dest);
+
+    boolean canUpdateInSequence(Network network, boolean forced);
+
+    List<String> getServicesNotSupportedInNewOffering(Network network, long newNetworkOfferingId);
+
+    void cleanupConfigForServicesInNetwork(List<String> services, Network network);
+
+    void configureUpdateInSequence(Network network);
+
+    int getResourceCount(Network network);
+
+    void finalizeUpdateInSequence(Network network, boolean success);
 }
diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java
index 6dcdf4f..8749589 100644
--- a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java
+++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java
@@ -25,6 +25,13 @@
 import com.cloud.storage.StoragePool;
 
 public interface PrimaryDataStoreDriver extends DataStoreDriver {
+    String BASIC_CREATE = "basicCreate";
+    String BASIC_DELETE = "basicDelete";
+    String BASIC_DELETE_FAILURE = "basicDeleteFailure";
+    String BASIC_GRANT_ACCESS = "basicGrantAccess";
+    String BASIC_REVOKE_ACCESS = "basicRevokeAccess";
+    String BASIC_IQN = "basicIqn";
+
     ChapInfo getChapInfo(DataObject dataObject);
 
     boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore);
diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/SnapshotResult.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/SnapshotResult.java
index ca505aa..7622693 100644
--- a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/SnapshotResult.java
+++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/SnapshotResult.java
@@ -21,21 +21,21 @@
 import com.cloud.agent.api.Answer;
 
 public class SnapshotResult extends CommandResult {
-    private SnapshotInfo snashot;
+    private SnapshotInfo snapshot;
     private Answer answer;
 
     public SnapshotResult(SnapshotInfo snapshot, Answer answer) {
         super();
-        this.setSnashot(snapshot);
+        this.setSnapshot(snapshot);
         this.setAnswer(answer);
     }
 
-    public SnapshotInfo getSnashot() {
-        return snashot;
+    public SnapshotInfo getSnapshot() {
+        return snapshot;
     }
 
-    public void setSnashot(SnapshotInfo snashot) {
-        this.snashot = snashot;
+    public void setSnapshot(SnapshotInfo snapshot) {
+        this.snapshot = snapshot;
     }
 
     public Answer getAnswer() {
diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VMSnapshotStrategy.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VMSnapshotStrategy.java
index 239ba87..38f633a 100644
--- a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VMSnapshotStrategy.java
+++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VMSnapshotStrategy.java
@@ -28,4 +28,12 @@
     boolean revertVMSnapshot(VMSnapshot vmSnapshot);
 
     StrategyPriority canHandle(VMSnapshot vmSnapshot);
+
+    /**
+     * Delete vm snapshot only from database. Introduced as a Vmware optimization in which vm snapshots are deleted when
+     * the vm gets deleted on hypervisor (no need to delete each vm snapshot before deleting vm, just mark them as deleted on DB)
+     * @param vmSnapshot vm snapshot to be marked as deleted.
+     * @return true if vm snapshot removed from DB, false if not.
+     */
+    boolean deleteVMSnapshotFromDB(VMSnapshot vmSnapshot);
 }
diff --git a/engine/components-api/pom.xml b/engine/components-api/pom.xml
index cf662cf..27013d4 100644
--- a/engine/components-api/pom.xml
+++ b/engine/components-api/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/components-api/resources/META-INF/cloudstack/core/spring-engine-components-api-core-context.xml b/engine/components-api/resources/META-INF/cloudstack/core/spring-engine-components-api-core-context.xml
index fd7f967..b644176 100644
--- a/engine/components-api/resources/META-INF/cloudstack/core/spring-engine-components-api-core-context.xml
+++ b/engine/components-api/resources/META-INF/cloudstack/core/spring-engine-components-api-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
 </beans>
diff --git a/engine/components-api/src/com/cloud/capacity/CapacityManager.java b/engine/components-api/src/com/cloud/capacity/CapacityManager.java
index 3db6e57..98287bb 100644
--- a/engine/components-api/src/com/cloud/capacity/CapacityManager.java
+++ b/engine/components-api/src/com/cloud/capacity/CapacityManager.java
@@ -35,6 +35,7 @@
     static final String StorageCapacityDisableThresholdCK = "pool.storage.capacity.disablethreshold";
     static final String StorageOverprovisioningFactorCK = "storage.overprovisioning.factor";
     static final String StorageAllocatedCapacityDisableThresholdCK = "pool.storage.allocated.capacity.disablethreshold";
+    static final String VmwareCreateCloneFullCK = "vmware.create.full.clone";
 
     static final ConfigKey<Float> CpuOverprovisioningFactor = new ConfigKey<Float>(Float.class, CpuOverprovisioningFactorCK, "Advanced", "1.0",
         "Used for CPU overprovisioning calculation; available CPU will be (actualCpuCapacity * cpu.overprovisioning.factor)", true, ConfigKey.Scope.Cluster, null);
@@ -63,6 +64,25 @@
                     true,
                     ConfigKey.Scope.Cluster,
                     null);
+    static final ConfigKey<Boolean> VmwareCreateCloneFull =
+            new ConfigKey<Boolean>(
+                    "Storage",
+                    Boolean.class,
+                    VmwareCreateCloneFullCK,
+                    "false",
+                    "If set to true, creates VMs as full clones on ESX hypervisor",
+                    true,
+                    ConfigKey.Scope.StoragePool);
+    static final ConfigKey<Integer> ImageStoreNFSVersion =
+            new ConfigKey<Integer>(
+                    Integer.class,
+                    "secstorage.nfs.version",
+                    "Advanced",
+                    null,
+                    "Enforces specific NFS version when mounting Secondary Storage. If NULL default selection is performed",
+                    true,
+                    ConfigKey.Scope.ImageStore,
+                    null);
 
     public boolean releaseVmCapacity(VirtualMachine vm, boolean moveFromReserved, boolean moveToReservered, Long hostId);
 
diff --git a/engine/components-api/src/com/cloud/network/IpAddressManager.java b/engine/components-api/src/com/cloud/network/IpAddressManager.java
index 1df23ba..0ab5ccc 100644
--- a/engine/components-api/src/com/cloud/network/IpAddressManager.java
+++ b/engine/components-api/src/com/cloud/network/IpAddressManager.java
@@ -43,6 +43,9 @@
         "If true, when account has dedicated public ip range(s), once the ips dedicated to the account have been consumed ips will be acquired from the system pool",
         true, ConfigKey.Scope.Account);
 
+    static final ConfigKey<Boolean> RulesContinueOnError = new ConfigKey<Boolean>("Advanced", Boolean.class, "network.rule.delete.ignoreerror", "true",
+            "When true, ip address delete (ipassoc) failures are  ignored", true);
+
     /**
      * Assigns a new public ip address.
      *
diff --git a/engine/components-api/src/com/cloud/network/addr/PublicIp.java b/engine/components-api/src/com/cloud/network/addr/PublicIp.java
index 49cae4b..8e9d799 100644
--- a/engine/components-api/src/com/cloud/network/addr/PublicIp.java
+++ b/engine/components-api/src/com/cloud/network/addr/PublicIp.java
@@ -20,6 +20,7 @@
 
 import com.cloud.dc.VlanVO;
 import com.cloud.network.IpAddress;
+import com.cloud.network.NetworkModel;
 import com.cloud.network.PublicIpAddress;
 import com.cloud.network.dao.IPAddressVO;
 import com.cloud.utils.net.Ip;
@@ -39,7 +40,7 @@
     }
 
     public static PublicIp createFromAddrAndVlan(IPAddressVO addr, VlanVO vlan) {
-        return new PublicIp(addr, vlan, NetUtils.createSequenceBasedMacAddress(addr.getMacAddress()));
+        return new PublicIp(addr, vlan, NetUtils.createSequenceBasedMacAddress(addr.getMacAddress(), NetworkModel.MACIdentifier.value()));
     }
 
     @Override
@@ -249,7 +250,18 @@
     }
 
     @Override
-    public Class<?> getEntityType() {
+    public Class<?> getEntityType()
+    {
         return IpAddress.class;
     }
+
+    @Override
+    public State getRuleState() {
+        return _addr.getRuleState();
+    }
+
+    @Override
+    public void setRuleState(State ruleState) {
+        _addr.setRuleState(ruleState);
+    }
 }
diff --git a/engine/components-api/src/com/cloud/network/rules/StaticNatRuleImpl.java b/engine/components-api/src/com/cloud/network/rules/StaticNatRuleImpl.java
index d21159b..96950a1 100644
--- a/engine/components-api/src/com/cloud/network/rules/StaticNatRuleImpl.java
+++ b/engine/components-api/src/com/cloud/network/rules/StaticNatRuleImpl.java
@@ -150,6 +150,11 @@
     }
 
     @Override
+    public List<String> getDestinationCidrList(){
+        return null;
+    }
+
+    @Override
     public Class<?> getEntityType() {
         return FirewallRule.class;
     }
diff --git a/engine/components-api/src/com/cloud/vm/VmWorkTakeVolumeSnapshot.java b/engine/components-api/src/com/cloud/vm/VmWorkTakeVolumeSnapshot.java
index 3160be1..495dc46 100644
--- a/engine/components-api/src/com/cloud/vm/VmWorkTakeVolumeSnapshot.java
+++ b/engine/components-api/src/com/cloud/vm/VmWorkTakeVolumeSnapshot.java
@@ -16,6 +16,8 @@
 // under the License.
 package com.cloud.vm;
 
+import com.cloud.storage.Snapshot;
+
 public class VmWorkTakeVolumeSnapshot extends VmWork {
 
     private static final long serialVersionUID = 341816293003023823L;
@@ -24,14 +26,16 @@
     private Long policyId;
     private Long snapshotId;
     private boolean quiesceVm;
+    private Snapshot.LocationType locationType;
 
     public VmWorkTakeVolumeSnapshot(long userId, long accountId, long vmId, String handlerName,
-            Long volumeId, Long policyId, Long snapshotId, boolean quiesceVm) {
+            Long volumeId, Long policyId, Long snapshotId, boolean quiesceVm, Snapshot.LocationType locationType) {
         super(userId, accountId, vmId, handlerName);
         this.volumeId = volumeId;
         this.policyId = policyId;
         this.snapshotId = snapshotId;
         this.quiesceVm = quiesceVm;
+        this.locationType = locationType;
     }
 
     public Long getVolumeId() {
@@ -49,4 +53,6 @@
     public boolean isQuiesceVm() {
         return quiesceVm;
     }
+
+    public Snapshot.LocationType getLocationType() { return locationType; }
 }
diff --git a/engine/components-api/src/com/cloud/vm/snapshot/VMSnapshotManager.java b/engine/components-api/src/com/cloud/vm/snapshot/VMSnapshotManager.java
index e7e3372..ce8a818 100644
--- a/engine/components-api/src/com/cloud/vm/snapshot/VMSnapshotManager.java
+++ b/engine/components-api/src/com/cloud/vm/snapshot/VMSnapshotManager.java
@@ -17,7 +17,11 @@
 
 package com.cloud.vm.snapshot;
 
+import java.util.List;
+
+import com.cloud.agent.api.RestoreVMSnapshotCommand;
 import com.cloud.utils.component.Manager;
+import com.cloud.vm.UserVmVO;
 import com.cloud.vm.VMInstanceVO;
 
 public interface VMSnapshotManager extends VMSnapshotService, Manager {
@@ -42,4 +46,7 @@
     boolean syncVMSnapshot(VMInstanceVO vm, Long hostId);
 
     boolean hasActiveVMSnapshotTasks(Long vmId);
+
+    RestoreVMSnapshotCommand createRestoreCommand(UserVmVO userVm, List<VMSnapshotVO> vmSnapshotVOs);
+
 }
diff --git a/engine/network/pom.xml b/engine/network/pom.xml
index 2b0d90a..34b1d67 100644
--- a/engine/network/pom.xml
+++ b/engine/network/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/orchestration/pom.xml b/engine/orchestration/pom.xml
index 1e816b3..4487b6c 100755
--- a/engine/orchestration/pom.xml
+++ b/engine/orchestration/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/orchestration/resources/META-INF/cloudstack/core/spring-engine-orchestration-core-context.xml b/engine/orchestration/resources/META-INF/cloudstack/core/spring-engine-orchestration-core-context.xml
index fd5299c..df885b2 100644
--- a/engine/orchestration/resources/META-INF/cloudstack/core/spring-engine-orchestration-core-context.xml
+++ b/engine/orchestration/resources/META-INF/cloudstack/core/spring-engine-orchestration-core-context.xml
@@ -23,13 +23,13 @@
        xmlns:util="http://www.springframework.org/schema/util"
        
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/aop 
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd
+                      http://www.springframework.org/schema/context/spring-context.xsd
                       http://www.springframework.org/schema/util
-                      http://www.springframework.org/schema/util/spring-util-3.0.xsd"
+                      http://www.springframework.org/schema/util/spring-util.xsd"
                       >
 
     <bean id="clusterBasedAgentLoadBalancerPlanner"
diff --git a/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java b/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
index ba90ede..597ea67 100644
--- a/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
@@ -449,6 +449,7 @@
 
         final Command[] cmds = checkForCommandsAndTag(commands);
 
+        //check what agent is returned.
         final AgentAttache agent = getAttache(hostId);
         if (agent == null || agent.isClosed()) {
             throw new AgentUnavailableException("agent not logged into this management server", hostId);
@@ -1234,9 +1235,9 @@
                 } else if (cmd instanceof PingCommand) {
                     logD = false;
                     s_logger.debug("Ping from " + hostId + "(" + hostName + ")");
-                    s_logger.trace("SeqA " + attache.getId() + "-" + request.getSequence() + ": Processing " + request);
+                    s_logger.trace("SeqA " + hostId + "-" + request.getSequence() + ": Processing " + request);
                 } else {
-                    s_logger.debug("SeqA " + attache.getId() + "-" + request.getSequence() + ": Processing " + request);
+                    s_logger.debug("SeqA " + hostId + "-" + request.getSequence() + ": Processing " + request);
                 }
             }
 
diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
old mode 100644
new mode 100755
index f5bdf38..8cc8de1
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -85,6 +85,8 @@
 import com.cloud.agent.api.PrepareForMigrationCommand;
 import com.cloud.agent.api.RebootAnswer;
 import com.cloud.agent.api.RebootCommand;
+import com.cloud.agent.api.RestoreVMSnapshotAnswer;
+import com.cloud.agent.api.RestoreVMSnapshotCommand;
 import com.cloud.agent.api.ScaleVmCommand;
 import com.cloud.agent.api.StartAnswer;
 import com.cloud.agent.api.StartCommand;
@@ -201,6 +203,7 @@
 import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 import com.cloud.vm.snapshot.VMSnapshotManager;
+import com.cloud.vm.snapshot.VMSnapshotVO;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
 
 public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMachineManager, VmWorkJobHandler, Listener, Configurable {
@@ -1056,6 +1059,13 @@
                                 _resourceMgr.updateGPUDetails(destHostId, gpuDevice.getGroupDetails());
                             }
 
+                            // Remove the information on whether it was a deploy vm request.The deployvm=true information
+                            // is set only when the vm is being deployed. When a vm is started from a stop state the
+                            // information isn't set,
+                            if (_uservmDetailsDao.findDetail(vm.getId(), "deployvm") != null) {
+                                _uservmDetailsDao.removeDetail(vm.getId(), "deployvm");
+                            }
+
                             startedVm = vm;
                             if (s_logger.isDebugEnabled()) {
                                 s_logger.debug("Start completed for VM " + vm);
@@ -1065,8 +1075,9 @@
                             if (s_logger.isDebugEnabled()) {
                                 s_logger.info("The guru did not like the answers so stopping " + vm);
                             }
-
-                            final StopCommand cmd = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), false);
+                            StopCommand stopCmd = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), false);
+                            stopCmd.setControlIp(getControlNicIpForVM(vm));
+                            final StopCommand cmd = stopCmd;
                             final Answer answer = _agentMgr.easySend(destHostId, cmd);
                             if (answer != null && answer instanceof StopAnswer) {
                                 final StopAnswer stopAns = (StopAnswer)answer;
@@ -1271,7 +1282,9 @@
 
     protected boolean sendStop(final VirtualMachineGuru guru, final VirtualMachineProfile profile, final boolean force, final boolean checkBeforeCleanup) {
         final VirtualMachine vm = profile.getVirtualMachine();
-        final StopCommand stop = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), checkBeforeCleanup);
+        StopCommand stpCmd = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), checkBeforeCleanup);
+        stpCmd.setControlIp(getControlNicIpForVM(vm));
+        final StopCommand stop = stpCmd;
         try {
             Answer answer = null;
             if(vm.getHostId() != null) {
@@ -1540,6 +1553,7 @@
         vmGuru.prepareStop(profile);
 
         final StopCommand stop = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), false, cleanUpEvenIfUnableToStop);
+        stop.setControlIp(getControlNicIpForVM(vm));
 
         boolean stopped = false;
         Answer answer = null;
@@ -1676,7 +1690,7 @@
     }
 
     @Override
-    public void destroy(final String vmUuid) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException {
+    public void destroy(final String vmUuid, final boolean expunge) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException {
         VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
         if (vm == null || vm.getState() == State.Destroyed || vm.getState() == State.Expunging || vm.getRemoved() != null) {
             if (s_logger.isDebugEnabled()) {
@@ -1686,15 +1700,12 @@
         }
 
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Destroying vm " + vm);
+            s_logger.debug("Destroying vm " + vm + ", expunge flag " + (expunge ? "on" : "off"));
         }
 
         advanceStop(vmUuid, VmDestroyForcestop.value());
 
-        if (!_vmSnapshotMgr.deleteAllVMSnapshots(vm.getId(), null)) {
-            s_logger.debug("Unable to delete all snapshots for " + vm);
-            throw new CloudRuntimeException("Unable to delete vm snapshots for " + vm);
-        }
+        deleteVMSnapshots(vm, expunge);
 
         // reload the vm object from db
         vm = _vmDao.findByUuid(vmUuid);
@@ -1709,6 +1720,27 @@
         }
     }
 
+    /**
+     * Delete vm snapshots depending on vm's hypervisor type. For Vmware, vm snapshots removal is delegated to vm cleanup thread
+     * to reduce tasks sent to hypervisor (one tasks to delete vm snapshots and vm itself
+     * instead of one task for each vm snapshot plus another for the vm)
+     * @param vm vm
+     * @param expunge indicates if vm should be expunged
+     */
+    private void deleteVMSnapshots(VMInstanceVO vm, boolean expunge) {
+        if (! vm.getHypervisorType().equals(HypervisorType.VMware)) {
+            if (!_vmSnapshotMgr.deleteAllVMSnapshots(vm.getId(), null)) {
+                s_logger.debug("Unable to delete all snapshots for " + vm);
+                throw new CloudRuntimeException("Unable to delete vm snapshots for " + vm);
+            }
+        }
+        else {
+            if (expunge) {
+                _vmSnapshotMgr.deleteVMSnapshotsFromDB(vm.getId());
+            }
+        }
+    }
+
     protected boolean checkVmOnHost(final VirtualMachine vm, final long hostId) throws AgentUnavailableException, OperationTimedoutException {
         final Answer answer = _agentMgr.send(hostId, new CheckVirtualMachineCommand(vm.getInstanceName()));
         if (answer == null || !answer.getResult()) {
@@ -1721,6 +1753,18 @@
             }
         }
 
+        UserVmVO userVm = _userVmDao.findById(vm.getId());
+        if (userVm != null) {
+            List<VMSnapshotVO> vmSnapshots = _vmSnapshotDao.findByVm(vm.getId());
+            RestoreVMSnapshotCommand command = _vmSnapshotMgr.createRestoreCommand(userVm, vmSnapshots);
+            if (command != null) {
+                RestoreVMSnapshotAnswer restoreVMSnapshotAnswer = (RestoreVMSnapshotAnswer) _agentMgr.send(hostId, command);
+                if (restoreVMSnapshotAnswer == null || !restoreVMSnapshotAnswer.getResult()) {
+                    s_logger.warn("Unable to restore the vm snapshot from image file after live migration of vm with vmsnapshots: " + restoreVMSnapshotAnswer.getDetails());
+                }
+            }
+        }
+
         return true;
     }
 
@@ -2069,62 +2113,74 @@
 
     private Map<Volume, StoragePool> getPoolListForVolumesForMigration(final VirtualMachineProfile profile, final Host host, final Map<Long, Long> volumeToPool) {
         final List<VolumeVO> allVolumes = _volsDao.findUsableVolumesForInstance(profile.getId());
-        final Map<Volume, StoragePool> volumeToPoolObjectMap = new HashMap<Volume, StoragePool> ();
+        final Map<Volume, StoragePool> volumeToPoolObjectMap = new HashMap<>();
+
         for (final VolumeVO volume : allVolumes) {
             final Long poolId = volumeToPool.get(Long.valueOf(volume.getId()));
-            final StoragePoolVO pool = _storagePoolDao.findById(poolId);
+            final StoragePoolVO destPool = _storagePoolDao.findById(poolId);
             final StoragePoolVO currentPool = _storagePoolDao.findById(volume.getPoolId());
             final DiskOfferingVO diskOffering = _diskOfferingDao.findById(volume.getDiskOfferingId());
-            if (pool != null) {
+
+            if (destPool != null) {
                 // Check if pool is accessible from the destination host and disk offering with which the volume was
                 // created is compliant with the pool type.
-                if (_poolHostDao.findByPoolHost(pool.getId(), host.getId()) == null || pool.isLocal() != diskOffering.getUseLocalStorage()) {
+                if (_poolHostDao.findByPoolHost(destPool.getId(), host.getId()) == null || destPool.isLocal() != diskOffering.getUseLocalStorage()) {
                     // Cannot find a pool for the volume. Throw an exception.
-                    throw new CloudRuntimeException("Cannot migrate volume " + volume + " to storage pool " + pool + " while migrating vm to host " + host +
+                    throw new CloudRuntimeException("Cannot migrate volume " + volume + " to storage pool " + destPool + " while migrating vm to host " + host +
                             ". Either the pool is not accessible from the host or because of the offering with which the volume is created it cannot be placed on " +
                             "the given pool.");
-                } else if (pool.getId() == currentPool.getId()) {
-                    // If the pool to migrate too is the same as current pool, the volume doesn't need to be migrated.
+                } else if (destPool.getId() == currentPool.getId()) {
+                    // If the pool to migrate to is the same as current pool, the volume doesn't need to be migrated.
                 } else {
-                    volumeToPoolObjectMap.put(volume, pool);
+                    volumeToPoolObjectMap.put(volume, destPool);
                 }
             } else {
-                // Find a suitable pool for the volume. Call the storage pool allocator to find the list of pools.
-                final DiskProfile diskProfile = new DiskProfile(volume, diskOffering, profile.getHypervisorType());
-                final DataCenterDeployment plan = new DataCenterDeployment(host.getDataCenterId(), host.getPodId(), host.getClusterId(), host.getId(), null, null);
-                final ExcludeList avoid = new ExcludeList();
-                boolean currentPoolAvailable = false;
+                if (currentPool.isManaged()) {
+                    volumeToPoolObjectMap.put(volume, currentPool);
+                } else {
+                    // Find a suitable pool for the volume. Call the storage pool allocator to find the list of pools.
 
-                final List<StoragePool> poolList = new ArrayList<StoragePool>();
-                for (final StoragePoolAllocator allocator : _storagePoolAllocators) {
-                    final List<StoragePool> poolListFromAllocator = allocator.allocateToPool(diskProfile, profile, plan, avoid, StoragePoolAllocator.RETURN_UPTO_ALL);
-                    if (poolListFromAllocator != null && !poolListFromAllocator.isEmpty()) {
-                        poolList.addAll(poolListFromAllocator);
-                    }
-                }
+                    final DiskProfile diskProfile = new DiskProfile(volume, diskOffering, profile.getHypervisorType());
+                    final DataCenterDeployment plan = new DataCenterDeployment(host.getDataCenterId(), host.getPodId(), host.getClusterId(), host.getId(), null, null);
 
-                if (poolList != null && !poolList.isEmpty()) {
-                    // Volume needs to be migrated. Pick the first pool from the list. Add a mapping to migrate the
-                    // volume to a pool only if it is required; that is the current pool on which the volume resides
-                    // is not available on the destination host.
-                    final Iterator<StoragePool> iter = poolList.iterator();
-                    while (iter.hasNext()) {
-                        if (currentPool.getId() == iter.next().getId()) {
-                            currentPoolAvailable = true;
-                            break;
+                    final List<StoragePool> poolList = new ArrayList<>();
+                    final ExcludeList avoid = new ExcludeList();
+
+                    for (final StoragePoolAllocator allocator : _storagePoolAllocators) {
+                        final List<StoragePool> poolListFromAllocator = allocator.allocateToPool(diskProfile, profile, plan, avoid, StoragePoolAllocator.RETURN_UPTO_ALL);
+
+                        if (poolListFromAllocator != null && !poolListFromAllocator.isEmpty()) {
+                            poolList.addAll(poolListFromAllocator);
                         }
                     }
 
-                    if (!currentPoolAvailable) {
-                        volumeToPoolObjectMap.put(volume, _storagePoolDao.findByUuid(poolList.get(0).getUuid()));
+                    boolean currentPoolAvailable = false;
+
+                    if (poolList != null && !poolList.isEmpty()) {
+                        // Volume needs to be migrated. Pick the first pool from the list. Add a mapping to migrate the
+                        // volume to a pool only if it is required; that is the current pool on which the volume resides
+                        // is not available on the destination host.
+
+                        final Iterator<StoragePool> iter = poolList.iterator();
+
+                        while (iter.hasNext()) {
+                            if (currentPool.getId() == iter.next().getId()) {
+                                currentPoolAvailable = true;
+
+                                break;
+                            }
+                        }
+
+                        if (!currentPoolAvailable) {
+                            volumeToPoolObjectMap.put(volume, _storagePoolDao.findByUuid(poolList.get(0).getUuid()));
+                        }
                     }
-                }
 
-
-                if (!currentPoolAvailable && !volumeToPoolObjectMap.containsKey(volume)) {
-                    // Cannot find a pool for the volume. Throw an exception.
-                    throw new CloudRuntimeException("Cannot find a storage pool which is available for volume " + volume + " while migrating virtual machine " +
-                            profile.getVirtualMachine() + " to host " + host);
+                    if (!currentPoolAvailable && !volumeToPoolObjectMap.containsKey(volume)) {
+                        // Cannot find a pool for the volume. Throw an exception.
+                        throw new CloudRuntimeException("Cannot find a storage pool which is available for volume " + volume + " while migrating virtual machine " +
+                                profile.getVirtualMachine() + " to host " + host);
+                    }
                 }
             }
         }
@@ -2598,7 +2654,11 @@
     private void orchestrateReboot(final String vmUuid, final Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ConcurrentOperationException,
     ResourceUnavailableException {
         final VMInstanceVO vm = _vmDao.findByUuid(vmUuid);
-
+        // if there are active vm snapshots task, state change is not allowed
+        if(_vmSnapshotMgr.hasActiveVMSnapshotTasks(vm.getId())){
+            s_logger.error("Unable to reboot VM " + vm + " due to: " + vm.getInstanceName() + " has active VM snapshots tasks");
+            throw new CloudRuntimeException("Unable to reboot VM " + vm + " due to: " + vm.getInstanceName() + " has active VM snapshots tasks");
+        }
         final DataCenter dc = _entityMgr.findById(DataCenter.class, vm.getDataCenterId());
         final Host host = _hostDao.findById(vm.getHostId());
         if (host == null) {
@@ -2627,12 +2687,24 @@
     }
 
     public Command cleanup(final VirtualMachine vm) {
-        return new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), false);
+        StopCommand cmd = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), false);
+        cmd.setControlIp(getControlNicIpForVM(vm));
+        return cmd;
     }
 
+    private String getControlNicIpForVM(VirtualMachine vm) {
+        if (vm.getType() == VirtualMachine.Type.ConsoleProxy || vm.getType() == VirtualMachine.Type.SecondaryStorageVm) {
+            NicVO nic = _nicsDao.getControlNicForVM(vm.getId());
+            return nic.getIPv4Address();
+        } else if (vm.getType() == VirtualMachine.Type.DomainRouter) return vm.getPrivateIpAddress();
+        else return null;
+    }
     public Command cleanup(final String vmName) {
-        return new StopCommand(vmName, getExecuteInSequence(null), false);
+        VirtualMachine vm = _vmDao.findVMByInstanceName(vmName);
 
+        StopCommand cmd = new StopCommand(vmName, getExecuteInSequence(null), false);
+        cmd.setControlIp(getControlNicIpForVM(vm));
+        return cmd;
     }
 
 
@@ -3382,7 +3454,7 @@
         }
 
         if (fromHost.getClusterId().longValue() != dest.getCluster().getId()) {
-            s_logger.info("Source and destination host are not in same cluster, unable to migrate to host: " + dest.getHost().getId());
+            s_logger.info("Source and destination host are not in same cluster, unable to migrate to host: " + dstHostId);
             throw new CloudRuntimeException("Source and destination host are not in same cluster, unable to migrate to host: " + dest.getHost().getId());
         }
 
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
index 0c357ca..a87072e 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
@@ -39,12 +39,12 @@
     String reserveVirtualMachine(VMEntityVO vmEntityVO, DeploymentPlanner plannerToUse, DeploymentPlan plan, ExcludeList exclude) throws InsufficientCapacityException,
         ResourceUnavailableException;
 
-    void deployVirtualMachine(String reservationId, VMEntityVO vmEntityVO, String caller, Map<VirtualMachineProfile.Param, Object> params)
+    void deployVirtualMachine(String reservationId, VMEntityVO vmEntityVO, String caller, Map<VirtualMachineProfile.Param, Object> params, boolean deployOnGivenHost)
         throws InsufficientCapacityException, ResourceUnavailableException;
 
     boolean stopvirtualmachine(VMEntityVO vmEntityVO, String caller) throws ResourceUnavailableException;
 
     boolean stopvirtualmachineforced(VMEntityVO vmEntityVO, String caller) throws ResourceUnavailableException;
 
-    boolean destroyVirtualMachine(VMEntityVO vmEntityVO, String caller) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException;
+    boolean destroyVirtualMachine(VMEntityVO vmEntityVO, String caller, boolean expunge) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException;
 }
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
index a944b93..ef9c44a 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
@@ -218,7 +218,7 @@
     }
 
     @Override
-    public void deployVirtualMachine(String reservationId, VMEntityVO vmEntityVO, String caller, Map<VirtualMachineProfile.Param, Object> params)
+    public void deployVirtualMachine(String reservationId, VMEntityVO vmEntityVO, String caller, Map<VirtualMachineProfile.Param, Object> params, boolean deployOnGivenHost)
         throws InsufficientCapacityException, ResourceUnavailableException {
         //grab the VM Id and destination using the reservationId.
 
@@ -233,13 +233,17 @@
                 _itMgr.start(vm.getUuid(), params, reservedPlan, _planningMgr.getDeploymentPlannerByName(vmReservation.getDeploymentPlanner()));
             } catch (Exception ex) {
                 // Retry the deployment without using the reservation plan
-                DataCenterDeployment plan = new DataCenterDeployment(0, null, null, null, null, null);
+                // Retry is only done if host id is not passed in deploy virtual machine api. Otherwise
+                // the instance may be started on another host instead of the intended one.
+                if (!deployOnGivenHost) {
+                    DataCenterDeployment plan = new DataCenterDeployment(0, null, null, null, null, null);
 
-                if (reservedPlan.getAvoids() != null) {
-                    plan.setAvoids(reservedPlan.getAvoids());
+                    if (reservedPlan.getAvoids() != null) {
+                        plan.setAvoids(reservedPlan.getAvoids());
+                    }
+
+                    _itMgr.start(vm.getUuid(), params, plan, null);
                 }
-
-                _itMgr.start(vm.getUuid(), params, plan, null);
             }
         } else {
             // no reservation found. Let VirtualMachineManager retry
@@ -261,10 +265,10 @@
     }
 
     @Override
-    public boolean destroyVirtualMachine(VMEntityVO vmEntityVO, String caller) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException {
+    public boolean destroyVirtualMachine(VMEntityVO vmEntityVO, String caller, boolean expunge) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException {
 
         VMInstanceVO vm = _vmDao.findByUuid(vmEntityVO.getUuid());
-        _itMgr.destroy(vm.getUuid());
+        _itMgr.destroy(vm.getUuid(), expunge);
         return true;
     }
 
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
index 2f4de36..598e619 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
@@ -207,9 +207,9 @@
     }
 
     @Override
-    public void deploy(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException,
+    public void deploy(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params, boolean deployOnGivenHost) throws InsufficientCapacityException,
         ResourceUnavailableException {
-        manager.deployVirtualMachine(reservationId, this.vmEntityVO, caller, params);
+        manager.deployVirtualMachine(reservationId, this.vmEntityVO, caller, params, deployOnGivenHost);
     }
 
     @Override
@@ -229,8 +229,8 @@
     }
 
     @Override
-    public boolean destroy(String caller) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException {
-        return manager.destroyVirtualMachine(this.vmEntityVO, caller);
+    public boolean destroy(String caller, boolean expunge) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException {
+        return manager.destroyVirtualMachine(this.vmEntityVO, caller, expunge);
     }
 
     @Override
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
index c4c344d..37f5330 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
@@ -32,10 +32,18 @@
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
-
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import com.cloud.network.dao.NetworkDetailsDao;
+import com.cloud.network.dao.RemoteAccessVpnDao;
+import com.cloud.network.dao.RemoteAccessVpnVO;
+import com.cloud.network.dao.VpnUserDao;
+import com.cloud.network.element.RedundantResource;
+import com.cloud.network.router.VirtualRouter;
+import com.cloud.vm.DomainRouterVO;
+import com.cloud.vm.dao.DomainRouterDao;
+import org.apache.log4j.Logger;
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.cloud.entity.api.db.VMNetworkMapVO;
@@ -50,8 +58,6 @@
 import org.apache.cloudstack.framework.messagebus.PublishScope;
 import org.apache.cloudstack.managed.context.ManagedContextRunnable;
 import org.apache.cloudstack.region.PortableIpDao;
-import org.apache.log4j.Logger;
-
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.Listener;
 import com.cloud.agent.api.AgentControlAnswer;
@@ -134,6 +140,7 @@
 import com.cloud.network.dao.PhysicalNetworkVO;
 import com.cloud.network.element.AggregatedCommandExecutor;
 import com.cloud.network.element.DhcpServiceProvider;
+import com.cloud.network.element.DnsServiceProvider;
 import com.cloud.network.element.IpDeployer;
 import com.cloud.network.element.LoadBalancingServiceProvider;
 import com.cloud.network.element.NetworkElement;
@@ -265,9 +272,16 @@
     MessageBus _messageBus;
     @Inject
     VMNetworkMapDao _vmNetworkMapDao;
+    @Inject
+    DomainRouterDao _rotuerDao;
+    @Inject
+    RemoteAccessVpnDao _remoteAccessVpnDao;
+    @Inject
+    VpnUserDao _vpnUserDao;
 
     List<NetworkGuru> networkGurus;
 
+
     public List<NetworkGuru> getNetworkGurus() {
         return networkGurus;
     }
@@ -350,6 +364,8 @@
     PortableIpDao _portableIpDao;
     @Inject
     ConfigDepot _configDepot;
+    @Inject
+    NetworkDetailsDao _networkDetailsDao;
 
     protected StateMachine2<Network.State, Network.Event, Network> _stateMachine;
     ScheduledExecutorService _executor;
@@ -1260,6 +1276,18 @@
                     return false;
                 }
             }
+            if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dns)
+                    && _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dns, element.getProvider()) && element instanceof DnsServiceProvider) {
+                final DnsServiceProvider sp = (DnsServiceProvider)element;
+                if (profile.getIPv6Address() == null) {
+                    if (!sp.configDnsSupportForSubnet(network, profile, vmProfile, dest, context)) {
+                        return false;
+                    }
+                }
+                if(!sp.addDnsEntry(network, profile, vmProfile, dest, context)) {
+                    return false;
+                }
+            }
             if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.UserData)
                     && _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.UserData, element.getProvider()) && element instanceof UserDataServiceProvider) {
                 final UserDataServiceProvider sp = (UserDataServiceProvider)element;
@@ -1271,6 +1299,175 @@
         return true;
     }
 
+    @Override
+    public boolean canUpdateInSequence(Network network, boolean forced){
+        List<Provider> providers = getNetworkProviders(network.getId());
+
+        //check if the there are no service provider other than virtualrouter.
+        for(Provider provider :providers){
+            if(provider!=Provider.VirtualRouter)
+                throw new UnsupportedOperationException("Cannot update the network resources in sequence when providers other than virtualrouter are used");
+        }
+        //check if routers are in correct state before proceeding with the update
+        List<DomainRouterVO> routers=_rotuerDao.listByNetworkAndRole(network.getId(), VirtualRouter.Role.VIRTUAL_ROUTER);
+        for(DomainRouterVO router :routers){
+            if(router.getRedundantState()== VirtualRouter.RedundantState.UNKNOWN){
+                if(!forced){
+                    throw new CloudRuntimeException("Domain router: "+router.getInstanceName()+" is in unknown state, Cannot update network. set parameter forced to true for forcing an update");
+                }
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public List<String> getServicesNotSupportedInNewOffering(Network network,long newNetworkOfferingId){
+        NetworkOffering offering =_networkOfferingDao.findById(newNetworkOfferingId);
+        List<String> services=_ntwkOfferingSrvcDao.listServicesForNetworkOffering(offering.getId());
+        List<NetworkServiceMapVO> serviceMap= _ntwkSrvcDao.getServicesInNetwork(network.getId());
+        List<String> servicesNotInNewOffering=new ArrayList<>();
+        for(NetworkServiceMapVO serviceVO :serviceMap){
+            boolean inlist=false;
+            for(String service: services){
+                if(serviceVO.getService().equalsIgnoreCase(service)){
+                    inlist=true;
+                    break;
+                }
+            }
+            if(!inlist){
+                //ignore Gateway service as this has no effect on the
+                //behaviour of network.
+                if(!serviceVO.getService().equalsIgnoreCase(Service.Gateway.getName()))
+                    servicesNotInNewOffering.add(serviceVO.getService());
+            }
+        }
+        return servicesNotInNewOffering;
+    }
+
+    @Override
+    public void cleanupConfigForServicesInNetwork(List<String> services, final Network network){
+        long networkId=network.getId();
+        Account caller=_accountDao.findById(Account.ACCOUNT_ID_SYSTEM);
+        long userId=User.UID_SYSTEM;
+        //remove all PF/Static Nat rules for the network
+        s_logger.info("Services:"+services+" are no longer supported in network:"+network.getUuid()+
+                " after applying new network offering:"+network.getNetworkOfferingId()+" removing the related configuration");
+        if(services.contains(Service.StaticNat.getName())|| services.contains(Service.PortForwarding.getName())) {
+            try {
+                if (_rulesMgr.revokeAllPFStaticNatRulesForNetwork(networkId, userId, caller)) {
+                    s_logger.debug("Successfully cleaned up portForwarding/staticNat rules for network id=" + networkId);
+                } else {
+                    s_logger.warn("Failed to release portForwarding/StaticNat rules as a part of network id=" + networkId + " cleanup");
+                }
+                if(services.contains(Service.StaticNat.getName())){
+                    //removing static nat configured on ips.
+                    //optimizing the db operations using transaction.
+                    Transaction.execute(new TransactionCallbackNoReturn() {
+                        @Override
+                        public void doInTransactionWithoutResult(TransactionStatus status) {
+                            List<IPAddressVO> ips = _ipAddressDao.listStaticNatPublicIps(network.getId());
+                            for (IPAddressVO ip : ips) {
+                                ip.setOneToOneNat(false);
+                                ip.setAssociatedWithVmId(null);
+                                ip.setVmIp(null);
+                                _ipAddressDao.update(ip.getId(),ip);
+                            }
+                        }
+                    });
+                }
+            } catch (ResourceUnavailableException ex) {
+                s_logger.warn("Failed to release portForwarding/StaticNat rules as a part of network id=" + networkId + " cleanup due to resourceUnavailable ", ex);
+            }
+        }
+        if(services.contains(Service.SourceNat.getName())){
+            Transaction.execute(new TransactionCallbackNoReturn() {
+                @Override
+                public void doInTransactionWithoutResult(TransactionStatus status) {
+                    List<IPAddressVO> ips = _ipAddressDao.listByAssociatedNetwork(network.getId(),true);
+                    //removing static nat configured on ips.
+                    for (IPAddressVO ip : ips) {
+                        ip.setSourceNat(false);
+                        _ipAddressDao.update(ip.getId(),ip);
+                    }
+                }
+            });
+        }
+        if(services.contains(Service.Lb.getName())){
+            //remove all LB rules for the network
+            if (_lbMgr.removeAllLoadBalanacersForNetwork(networkId, caller, userId)) {
+                s_logger.debug("Successfully cleaned up load balancing rules for network id=" + networkId);
+            } else {
+                s_logger.warn("Failed to cleanup LB rules as a part of network id=" + networkId + " cleanup");
+            }
+        }
+
+        if(services.contains(Service.Firewall.getName())){
+            //revoke all firewall rules for the network
+            try {
+                if (_firewallMgr.revokeAllFirewallRulesForNetwork(networkId, userId, caller)) {
+                    s_logger.debug("Successfully cleaned up firewallRules rules for network id=" + networkId);
+                } else {
+                    s_logger.warn("Failed to cleanup Firewall rules as a part of network id=" + networkId + " cleanup");
+                }
+            } catch (ResourceUnavailableException ex) {
+                s_logger.warn("Failed to cleanup Firewall rules as a part of network id=" + networkId + " cleanup due to resourceUnavailable ", ex);
+            }
+        }
+
+        //do not remove vpn service for vpc networks.
+        if(services.contains(Service.Vpn.getName()) && network.getVpcId()==null){
+            RemoteAccessVpnVO vpn = _remoteAccessVpnDao.findByAccountAndNetwork(network.getAccountId(),networkId);
+            try {
+                _vpnMgr.destroyRemoteAccessVpnForIp(vpn.getServerAddressId(), caller, true);
+            } catch (ResourceUnavailableException ex) {
+                s_logger.warn("Failed to cleanup remote access vpn resources of network:"+network.getUuid() + " due to Exception: ", ex);
+            }
+        }
+    }
+
+    @Override
+    public void configureUpdateInSequence(Network network) {
+        List<Provider> providers = getNetworkProviders(network.getId());
+        for (NetworkElement element : networkElements) {
+            if (providers.contains(element.getProvider())) {
+                if (element instanceof RedundantResource) {
+                    ((RedundantResource) element).configureResource(network);
+                }
+            }
+        }
+    }
+
+    @Override
+    public int getResourceCount(Network network){
+        List<Provider> providers = getNetworkProviders(network.getId());
+        int resourceCount=0;
+        for (NetworkElement element : networkElements) {
+            if (providers.contains(element.getProvider())) {
+                //currently only one element implements the redundant resource interface
+                if (element instanceof RedundantResource) {
+                    resourceCount= ((RedundantResource) element).getResourceCount(network);
+                    break;
+                    }
+                }
+            }
+        return resourceCount;
+        }
+
+    @Override
+    public void finalizeUpdateInSequence(Network network, boolean success) {
+        List<Provider> providers = getNetworkProviders(network.getId());
+        for (NetworkElement element : networkElements) {
+            if (providers.contains(element.getProvider())) {
+                //currently only one element implements the redundant resource interface
+                if (element instanceof RedundantResource) {
+                    ((RedundantResource) element).finalize(network,success);
+                    break;
+                }
+            }
+        }
+    }
+
+
     @DB
     protected void updateNic(final NicVO nic, final long networkId, final int count) {
         Transaction.execute(new TransactionCallbackNoReturn() {
@@ -1725,15 +1922,29 @@
         }
 
         if (vm.getType() == Type.User
-                && _networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dhcp)
                 && network.getTrafficType() == TrafficType.Guest
                 && network.getGuestType() == GuestType.Shared
                 && isLastNicInSubnet(nic)) {
-            // remove the dhcpservice ip if this is the last nic in subnet.
-            final DhcpServiceProvider dhcpServiceProvider = getDhcpServiceProvider(network);
-            if (dhcpServiceProvider != null
-                    && isDhcpAccrossMultipleSubnetsSupported(dhcpServiceProvider)) {
-                removeDhcpServiceInSubnet(nic);
+            if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dhcp)) {
+                // remove the dhcpservice ip if this is the last nic in subnet.
+                final DhcpServiceProvider dhcpServiceProvider = getDhcpServiceProvider(network);
+                if (dhcpServiceProvider != null
+                        && isDhcpAccrossMultipleSubnetsSupported(dhcpServiceProvider)) {
+                    removeDhcpServiceInSubnet(nic);
+                }
+            }
+            if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dns)){
+                final DnsServiceProvider dnsServiceProvider = getDnsServiceProvider(network);
+                if (dnsServiceProvider != null) {
+                    try {
+                        if(!dnsServiceProvider.removeDnsSupportForSubnet(network)) {
+                            s_logger.warn("Failed to remove the ip alias on the dns server");
+                        }
+                    } catch (final ResourceUnavailableException e) {
+                        //failed to remove the dnsconfig.
+                        s_logger.info("Unable to delete the ip alias due to unable to contact the dns server.");
+                    }
+                }
             }
         }
 
@@ -2647,6 +2858,18 @@
         }
     }
 
+    @Override
+    public DnsServiceProvider getDnsServiceProvider(final Network network) {
+        final String dnsProvider = _ntwkSrvcDao.getProviderForServiceInNetwork(network.getId(), Service.Dns);
+
+        if (dnsProvider == null) {
+            s_logger.debug("Network " + network + " doesn't support service " + Service.Dhcp.getName());
+            return null;
+        }
+
+        return  (DnsServiceProvider) _networkModel.getElementImplementingProvider(dnsProvider);
+    }
+
     protected boolean isSharedNetworkWithServices(final Network network) {
         assert network != null;
         final DataCenter zone = _entityMgr.findById(DataCenter.class, network.getDataCenterId());
@@ -2671,12 +2894,17 @@
     }
 
     @Override
-    public List<? extends Nic> listVmNics(final long vmId, final Long nicId, final Long networkId) {
+    public List<? extends Nic> listVmNics(final long vmId, final Long nicId, final Long networkId, String keyword) {
         List<NicVO> result = null;
-        if (nicId == null && networkId == null) {
-            result = _nicDao.listByVmId(vmId);
+
+        if (keyword == null || keyword.isEmpty()) {
+            if (nicId == null && networkId == null) {
+                result = _nicDao.listByVmId(vmId);
+            } else {
+                result = _nicDao.listByVmIdAndNicIdAndNtwkId(vmId, nicId, networkId);
+            }
         } else {
-            result = _nicDao.listByVmIdAndNicIdAndNtwkId(vmId, nicId, networkId);
+            result = _nicDao.listByVmIdAndKeyword(vmId, keyword);
         }
 
         for (final NicVO nic : result) {
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
index ea6a66d..018c62e 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
@@ -72,6 +72,7 @@
 import com.cloud.agent.api.to.DiskTO;
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.agent.manager.allocator.PodAllocator;
+import com.cloud.capacity.CapacityManager;
 import com.cloud.cluster.ClusterManager;
 import com.cloud.configuration.Resource.ResourceType;
 import com.cloud.dc.DataCenter;
@@ -123,6 +124,7 @@
 import com.cloud.utils.fsm.NoTransitionException;
 import com.cloud.utils.fsm.StateMachine2;
 import com.cloud.vm.DiskProfile;
+import com.cloud.vm.UserVmCloneSettingVO;
 import com.cloud.vm.UserVmVO;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachine.State;
@@ -132,9 +134,15 @@
 import com.cloud.vm.VmWorkMigrateVolume;
 import com.cloud.vm.VmWorkSerializer;
 import com.cloud.vm.VmWorkTakeVolumeSnapshot;
+import com.cloud.vm.dao.UserVmCloneSettingDao;
 import com.cloud.vm.dao.UserVmDao;
 
 public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrationService, Configurable {
+
+    public enum UserVmCloneType {
+        full, linked
+    }
+
     private static final Logger s_logger = Logger.getLogger(VolumeOrchestrator.class);
 
     @Inject
@@ -182,6 +190,8 @@
     @Inject
     StorageManager storageMgr;
     @Inject
+    protected UserVmCloneSettingDao _vmCloneSettingDao;
+    @Inject
     StorageStrategyFactory _storageStrategyFactory;
 
     private final StateMachine2<Volume.State, Volume.Event, Volume> _volStateMachine;
@@ -1376,6 +1386,33 @@
             disk.setDetails(getDetails(volumeInfo, dataStore));
 
             vm.addDisk(disk);
+
+            // If hypervisor is vSphere, check for clone type setting.
+            if (vm.getHypervisorType().equals(HypervisorType.VMware)) {
+                // retrieve clone flag.
+                UserVmCloneType cloneType = UserVmCloneType.linked;
+                Boolean value = CapacityManager.VmwareCreateCloneFull.valueIn(vol.getPoolId());
+                if (value != null && value) {
+                    cloneType = UserVmCloneType.full;
+                }
+                try {
+                    UserVmCloneSettingVO cloneSettingVO = _vmCloneSettingDao.findByVmId(vm.getId());
+                    if (cloneSettingVO != null){
+                        if (! cloneSettingVO.getCloneType().equals(cloneType.toString())){
+                            cloneSettingVO.setCloneType(cloneType.toString());
+                            _vmCloneSettingDao.update(cloneSettingVO.getVmId(), cloneSettingVO);
+                        }
+                    }
+                    else {
+                        UserVmCloneSettingVO vmCloneSettingVO = new UserVmCloneSettingVO(vm.getId(), cloneType.toString());
+                        _vmCloneSettingDao.persist(vmCloneSettingVO);
+                    }
+                }
+                catch (Throwable e){
+                    s_logger.debug("[NSX_PLUGIN_LOG] ERROR: " + e.getMessage());
+                }
+            }
+
         }
     }
 
@@ -1422,7 +1459,7 @@
         return true;
     }
 
-    private void cleanupVolumeDuringAttachFailure(Long volumeId) {
+    private void cleanupVolumeDuringAttachFailure(Long volumeId, Long vmId) {
         VolumeVO volume = _volsDao.findById(volumeId);
         if (volume == null) {
             return;
@@ -1432,6 +1469,13 @@
             s_logger.debug("Remove volume: " + volume.getId() + ", as it's leftover from last mgt server stop");
             _volsDao.remove(volume.getId());
         }
+
+        if(volume.getState().equals(Volume.State.Attaching)) {
+            s_logger.warn("Vol: " + volume.getName() + " failed to attach to VM: " + _userVmDao.findById(vmId).getHostName() +
+                    " on last mgt server stop, changing state back to Ready");
+            volume.setState(Volume.State.Ready);
+            _volsDao.update(volumeId, volume);
+        }
     }
 
     private void cleanupVolumeDuringMigrationFailure(Long volumeId, Long destPoolId) {
@@ -1475,7 +1519,7 @@
             try {
                 if (job.getCmd().equalsIgnoreCase(VmWorkAttachVolume.class.getName())) {
                     VmWorkAttachVolume work = VmWorkSerializer.deserialize(VmWorkAttachVolume.class, job.getCmdInfo());
-                    cleanupVolumeDuringAttachFailure(work.getVolumeId());
+                    cleanupVolumeDuringAttachFailure(work.getVolumeId(), work.getVmId());
                 } else if (job.getCmd().equalsIgnoreCase(VmWorkMigrateVolume.class.getName())) {
                     VmWorkMigrateVolume work = VmWorkSerializer.deserialize(VmWorkMigrateVolume.class, job.getCmdInfo());
                     cleanupVolumeDuringMigrationFailure(work.getVolumeId(), work.getDestPoolId());
diff --git a/engine/orchestration/test/resource/provisioningContext.xml b/engine/orchestration/test/resource/provisioningContext.xml
index 0320be3..4fff3bf 100644
--- a/engine/orchestration/test/resource/provisioningContext.xml
+++ b/engine/orchestration/test/resource/provisioningContext.xml
@@ -21,13 +21,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                        http://www.springframework.org/schema/beans/spring-beans.xsd
                          http://www.springframework.org/schema/tx 

-       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+       http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop

-       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+       http://www.springframework.org/schema/aop/spring-aop.xsd
                                  http://www.springframework.org/schema/context

-                                          http://www.springframework.org/schema/context/spring-context-3.0.xsd">

+                                          http://www.springframework.org/schema/context/spring-context.xsd">
   <context:annotation-config />

   <context:component-scan base-package="org.apache.cloudstack.engine" />

   

diff --git a/engine/pom.xml b/engine/pom.xml
index cbecefc..d9b7fe5 100644
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>
@@ -46,6 +46,7 @@
   <modules>
     <module>api</module>
     <module>orchestration</module>
+    <module>schema</module>
     <module>storage</module>
     <module>storage/volume</module>
     <module>storage/image</module>
@@ -53,7 +54,6 @@
     <module>storage/cache</module>
     <module>storage/snapshot</module>
     <module>components-api</module>
-    <module>schema</module>
     <module>network</module>
     <module>service</module>
   </modules>
diff --git a/engine/schema/pom.xml b/engine/schema/pom.xml
index 4bca9ee..848ed64 100644
--- a/engine/schema/pom.xml
+++ b/engine/schema/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml b/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
index 6916478..1173707 100644
--- a/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
+++ b/engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
   <!--
@@ -158,8 +158,9 @@
   <bean id="externalFirewallDeviceDaoImpl" class="com.cloud.network.dao.ExternalFirewallDeviceDaoImpl" />
   <bean id="externalLoadBalancerDeviceDaoImpl" class="com.cloud.network.dao.ExternalLoadBalancerDeviceDaoImpl" />
   <bean id="externalPublicIpStatisticsDaoImpl" class="com.cloud.usage.dao.ExternalPublicIpStatisticsDaoImpl" />
-  <bean id="firewallRulesCidrsDaoImpl" class="com.cloud.network.dao.FirewallRulesCidrsDaoImpl" />
   <bean id="firewallRulesDaoImpl" class="com.cloud.network.dao.FirewallRulesDaoImpl" />
+  <bean id="firewallRulesCidrsDaoImpl" class="com.cloud.network.dao.FirewallRulesCidrsDaoImpl" />
+  <bean id="firewallRulesDcidrsDaoImpl" class="com.cloud.network.dao.FirewallRulesDcidrsDaoImpl" />
   <bean id="MonitoringServiceDaoImpl" class="com.cloud.network.dao.MonitoringServiceDaoImpl" />
   <bean id="OpRouterMonitorServiceDaoImpl" class="com.cloud.network.dao.OpRouterMonitorServiceDaoImpl" />
   <bean id="globalLoadBalancerDaoImpl" class="org.apache.cloudstack.region.gslb.GlobalLoadBalancerDaoImpl" />
@@ -176,8 +177,8 @@
   <bean id="hostTagsDaoImpl" class="com.cloud.host.dao.HostTagsDaoImpl" />
   <bean id="hostTransferMapDaoImpl" class="com.cloud.cluster.agentlb.dao.HostTransferMapDaoImpl" />
   <bean id="iPAddressDaoImpl" class="com.cloud.network.dao.IPAddressDaoImpl" />
-  <bean id="imageStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageStoreDaoImpl" />
-  <bean id="imageStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageStoreDetailsDaoImpl" />
+  <bean id="imageStoreDaoImpl" class="org.apache.cloudstack.storage.datastore.db.ImageStoreDaoImpl" />
+  <bean id="imageStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDaoImpl" />
   <bean id="imageStoreJoinDaoImpl" class="com.cloud.api.query.dao.ImageStoreJoinDaoImpl" />
   <bean id="snapshotDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.SnapshotDataStoreDaoImpl" />
   <bean id="templateDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.TemplateDataStoreDaoImpl" />
@@ -266,7 +267,7 @@
   <bean id="storageNetworkIpRangeDaoImpl" class="com.cloud.dc.dao.StorageNetworkIpRangeDaoImpl" />
   <bean id="storagePoolDetailsDaoImpl" class="com.cloud.storage.dao.StoragePoolDetailsDaoImpl" />
   <bean id="storagePoolJoinDaoImpl" class="com.cloud.api.query.dao.StoragePoolJoinDaoImpl" />
-  <bean id="storageTagDaoImpl" class="com.cloud.api.query.dao.StorageTagDaoImpl" />
+  <bean id="storagePoolTagsDaoImpl" class="com.cloud.storage.dao.StoragePoolTagsDaoImpl" />
   <bean id="hostTagDaoImpl" class="com.cloud.api.query.dao.HostTagDaoImpl" />
   <bean id="storagePoolWorkDaoImpl" class="com.cloud.storage.dao.StoragePoolWorkDaoImpl" />
   <bean id="templatePrimaryDataStoreDaoImpl" class="org.apache.cloudstack.storage.volume.db.TemplatePrimaryDataStoreDaoImpl" />
@@ -325,6 +326,7 @@
   <bean id="networkOfferingDetailsDaoImpl" class="com.cloud.offerings.dao.NetworkOfferingDetailsDaoImpl" />
   <bean id="serviceOfferingDetailsDaoImpl" class="com.cloud.service.dao.ServiceOfferingDetailsDaoImpl"/>
   <bean id="networkDetailsDaoImpl" class="com.cloud.network.dao.NetworkDetailsDaoImpl" />
+  <bean id="vlanDetailsDaoImpl" class="com.cloud.dc.dao.VlanDetailsDaoImpl" />
   <bean id="hostGpuGroupsDaoImpl" class="com.cloud.gpu.dao.HostGpuGroupsDaoImpl" />
   <bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
   <bean id="AffinityGroupDaoImpl" class="org.apache.cloudstack.affinity.dao.AffinityGroupDaoImpl" />
@@ -348,5 +350,5 @@
   <bean id="LBStickinessPolicyDetailsDaoImpl" class="org.apache.cloudstack.resourcedetail.dao.LBStickinessPolicyDetailsDaoImpl" />
   <bean id="LBHealthCheckPolicyDetailsDaoImpl" class="org.apache.cloudstack.resourcedetail.dao.LBHealthCheckPolicyDetailsDaoImpl" />
   <bean id="outOfBandManagementDaoImpl" class="org.apache.cloudstack.outofbandmanagement.dao.OutOfBandManagementDaoImpl" />
-
+  <bean id="GuestOsDetailsDaoImpl" class="org.apache.cloudstack.resourcedetail.dao.GuestOsDetailsDaoImpl" />
 </beans>
diff --git a/engine/schema/resources/META-INF/cloudstack/system/spring-engine-schema-system-checkers-context.xml b/engine/schema/resources/META-INF/cloudstack/system/spring-engine-schema-system-checkers-context.xml
index 2a30887..bfb3425 100644
--- a/engine/schema/resources/META-INF/cloudstack/system/spring-engine-schema-system-checkers-context.xml
+++ b/engine/schema/resources/META-INF/cloudstack/system/spring-engine-schema-system-checkers-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" />
diff --git a/engine/schema/src/com/cloud/dc/VlanDetailsVO.java b/engine/schema/src/com/cloud/dc/VlanDetailsVO.java
new file mode 100644
index 0000000..1a1db3a
--- /dev/null
+++ b/engine/schema/src/com/cloud/dc/VlanDetailsVO.java
@@ -0,0 +1,83 @@
+// 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.dc;
+
+import org.apache.cloudstack.api.ResourceDetail;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "vlan_details")
+public class VlanDetailsVO implements ResourceDetail {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id")
+    private long id;
+
+    @Column(name = "vlan_id")
+    private long resourceId;
+
+    @Column(name = "name")
+    private String name;
+
+    @Column(name = "value", length = 1024)
+    private String value;
+
+    @Column(name = "display")
+    private boolean display = true;
+
+    public VlanDetailsVO() {
+    }
+
+    public VlanDetailsVO(long networkId, String name, String value, boolean display) {
+        this.resourceId = networkId;
+        this.name = name;
+        this.value = value;
+        this.display = display;
+    }
+
+    @Override
+    public long getId() {
+        return id;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    @Override
+    public long getResourceId() {
+        return resourceId;
+    }
+
+    @Override
+    public boolean isDisplay() {
+        return display;
+    }
+
+}
diff --git a/engine/schema/src/com/cloud/dc/dao/VlanDao.java b/engine/schema/src/com/cloud/dc/dao/VlanDao.java
index 485593e..e92a5cc 100644
--- a/engine/schema/src/com/cloud/dc/dao/VlanDao.java
+++ b/engine/schema/src/com/cloud/dc/dao/VlanDao.java
@@ -49,6 +49,8 @@
 
     List<VlanVO> listVlansByNetworkId(long networkId);
 
+    List<VlanVO> listVlansByNetworkIdIncludingRemoved(long networkId);
+
     List<VlanVO> listVlansByPhysicalNetworkId(long physicalNetworkId);
 
     List<VlanVO> listZoneWideNonDedicatedVlans(long zoneId);
diff --git a/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java b/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java
index eabfbaa..0c59148 100644
--- a/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java
+++ b/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java
@@ -105,7 +105,7 @@
         ZoneTypeSearch.done();
 
         NetworkVlanSearch = createSearchBuilder();
-        NetworkVlanSearch.and("networkOfferingId", NetworkVlanSearch.entity().getNetworkId(), SearchCriteria.Op.EQ);
+        NetworkVlanSearch.and("networkId", NetworkVlanSearch.entity().getNetworkId(), SearchCriteria.Op.EQ);
         NetworkVlanSearch.done();
 
         PhysicalNetworkVlanSearch = createSearchBuilder();
@@ -330,12 +330,18 @@
     }
 
     @Override
-    public List<VlanVO> listVlansByNetworkId(long networkOfferingId) {
+    public List<VlanVO> listVlansByNetworkId(long networkId) {
         SearchCriteria<VlanVO> sc = NetworkVlanSearch.create();
-        sc.setParameters("networkOfferingId", networkOfferingId);
+        sc.setParameters("networkId", networkId);
         return listBy(sc);
     }
 
+    @Override public List<VlanVO> listVlansByNetworkIdIncludingRemoved(long networkId) {
+        SearchCriteria<VlanVO> sc = NetworkVlanSearch.create();
+        sc.setParameters("networkId", networkId);
+        return listIncludingRemovedBy(sc);
+    }
+
     @Override
     public List<VlanVO> listVlansByNetworkIdAndGateway(long networkid, String gateway) {
         SearchCriteria<VlanVO> sc = VlanGatewaysearch.create();
diff --git a/server/src/com/cloud/api/query/dao/StorageTagDao.java b/engine/schema/src/com/cloud/dc/dao/VlanDetailsDao.java
similarity index 60%
copy from server/src/com/cloud/api/query/dao/StorageTagDao.java
copy to engine/schema/src/com/cloud/dc/dao/VlanDetailsDao.java
index aa2d6e6..dfc72a0 100644
--- a/server/src/com/cloud/api/query/dao/StorageTagDao.java
+++ b/engine/schema/src/com/cloud/dc/dao/VlanDetailsDao.java
@@ -4,9 +4,9 @@
 // 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
+// the License.  You may obtain a copy of the License at
 //
-//   http://www.apache.org/licenses/LICENSE-2.0
+// 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
@@ -14,17 +14,12 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package com.cloud.api.query.dao;
+package com.cloud.dc.dao;
 
-import java.util.List;
-
-import org.apache.cloudstack.api.response.StorageTagResponse;
-
-import com.cloud.api.query.vo.StorageTagVO;
+import com.cloud.dc.VlanDetailsVO;
 import com.cloud.utils.db.GenericDao;
+import org.apache.cloudstack.resourcedetail.ResourceDetailsDao;
 
-public interface StorageTagDao extends GenericDao<StorageTagVO, Long> {
-    StorageTagResponse newStorageTagResponse(StorageTagVO storageTag);
+public interface VlanDetailsDao extends GenericDao<VlanDetailsVO, Long>, ResourceDetailsDao<VlanDetailsVO> {
 
-    List<StorageTagVO> searchByIds(Long... storageTagIds);
-}
+}
\ No newline at end of file
diff --git a/engine/schema/src/com/cloud/dc/dao/VlanDetailsDaoImpl.java b/engine/schema/src/com/cloud/dc/dao/VlanDetailsDaoImpl.java
new file mode 100644
index 0000000..43f9087
--- /dev/null
+++ b/engine/schema/src/com/cloud/dc/dao/VlanDetailsDaoImpl.java
@@ -0,0 +1,32 @@
+// 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
+// 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.dc.dao;
+
+
+import com.cloud.dc.VlanDetailsVO;
+import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;
+import org.springframework.stereotype.Component;
+
+@Component
+public class VlanDetailsDaoImpl extends ResourceDetailsDaoBase<VlanDetailsVO> implements VlanDetailsDao {
+
+    @Override
+    public void addDetail(long resourceId, String key, String value, boolean display) {
+        super.addDetail(new VlanDetailsVO(resourceId, key, value, display));
+    }
+
+}
\ No newline at end of file
diff --git a/engine/schema/src/com/cloud/host/dao/HostDao.java b/engine/schema/src/com/cloud/host/dao/HostDao.java
index 88a3547..7ffe1ed 100644
--- a/engine/schema/src/com/cloud/host/dao/HostDao.java
+++ b/engine/schema/src/com/cloud/host/dao/HostDao.java
@@ -98,5 +98,7 @@
 
     HostVO findByPublicIp(String publicIp);
 
+    List<Long> listClustersByHostTag(String hostTagOnOffering);
+
     List<HostVO> listByType(Type type);
 }
diff --git a/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java b/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java
index 46f8a4d..a74b908 100644
--- a/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java
+++ b/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java
@@ -77,6 +77,8 @@
     private static final Logger status_logger = Logger.getLogger(Status.class);
     private static final Logger state_logger = Logger.getLogger(ResourceState.class);
 
+    private static final String LIST_CLUSTERID_FOR_HOST_TAG = "select distinct cluster_id from host join host_tags on host.id = host_tags.host_id and host_tags.tag = ?";
+
     protected SearchBuilder<HostVO> TypePodDcStatusSearch;
 
     protected SearchBuilder<HostVO> IdStatusSearch;
@@ -1130,6 +1132,29 @@
     }
 
     @Override
+    public List<Long> listClustersByHostTag(String hostTagOnOffering) {
+        TransactionLegacy txn = TransactionLegacy.currentTxn();
+        PreparedStatement pstmt = null;
+        List<Long> result = new ArrayList<Long>();
+        StringBuilder sql = new StringBuilder(LIST_CLUSTERID_FOR_HOST_TAG);
+        // during listing the clusters that cross the threshold
+        // we need to check with disabled thresholds of each cluster if not defined at cluster consider the global value
+        try {
+            pstmt = txn.prepareAutoCloseStatement(sql.toString());
+            pstmt.setString(1, hostTagOnOffering);
+            ResultSet rs = pstmt.executeQuery();
+            while (rs.next()) {
+                result.add(rs.getLong(1));
+            }
+            return result;
+        } catch (SQLException e) {
+            throw new CloudRuntimeException("DB Exception on: " + sql, e);
+        } catch (Throwable e) {
+            throw new CloudRuntimeException("Caught: " + sql, e);
+        }
+    }
+
+    @Override
     public List<HostVO> listAllHostsByType(Host.Type type) {
         SearchCriteria<HostVO> sc = TypeSearch.create();
         sc.setParameters("type", type);
diff --git a/engine/schema/src/com/cloud/network/dao/FirewallRulesCidrsDaoImpl.java b/engine/schema/src/com/cloud/network/dao/FirewallRulesCidrsDaoImpl.java
index bfaf562..f618530 100644
--- a/engine/schema/src/com/cloud/network/dao/FirewallRulesCidrsDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/dao/FirewallRulesCidrsDaoImpl.java
@@ -71,8 +71,8 @@
         TransactionLegacy txn = TransactionLegacy.currentTxn();
 
         txn.start();
-        for (String tag : sourceCidrs) {
-            FirewallRulesCidrsVO vo = new FirewallRulesCidrsVO(firewallRuleId, tag);
+        for (String cidr : sourceCidrs) {
+            FirewallRulesCidrsVO vo = new FirewallRulesCidrsVO(firewallRuleId, cidr);
             persist(vo);
         }
         txn.commit();
diff --git a/engine/schema/src/com/cloud/network/dao/FirewallRulesDao.java b/engine/schema/src/com/cloud/network/dao/FirewallRulesDao.java
index 29e2ba2..f2e9bcb 100644
--- a/engine/schema/src/com/cloud/network/dao/FirewallRulesDao.java
+++ b/engine/schema/src/com/cloud/network/dao/FirewallRulesDao.java
@@ -64,4 +64,6 @@
     List<FirewallRuleVO> listByIpAndPurposeWithState(Long addressId, FirewallRule.Purpose purpose, FirewallRule.State state);
 
     void loadSourceCidrs(FirewallRuleVO rule);
+
+    void loadDestinationCidrs(FirewallRuleVO rule);
 }
diff --git a/engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java b/engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
index 45ab1f8..3ac860b 100644
--- a/engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
@@ -54,6 +54,8 @@
     @Inject
     protected FirewallRulesCidrsDao _firewallRulesCidrsDao;
     @Inject
+    protected FirewallRulesDcidrsDao _firewallRulesDcidrsDao;
+    @Inject
     ResourceTagDao _tagsDao;
     @Inject
     IPAddressDao _ipDao;
@@ -224,8 +226,17 @@
         txn.start();
 
         FirewallRuleVO dbfirewallRule = super.persist(firewallRule);
+
+        //Fill the firewall_rules_cidrs table
         saveSourceCidrs(firewallRule, firewallRule.getSourceCidrList());
+
+        //Fill the firewall_ruls_dcidrs table
+        saveDestinationCidrs(firewallRule, firewallRule.getDestinationCidrList());
+
+        //Add the source and dest cidrs into the dbfirewall rule to be returned.
+        //Have to read again from DB as the fields are transient.
         loadSourceCidrs(dbfirewallRule);
+        loadDestinationCidrs(dbfirewallRule);
 
         txn.commit();
         return dbfirewallRule;
@@ -238,6 +249,14 @@
         _firewallRulesCidrsDao.persist(firewallRule.getId(), cidrList);
     }
 
+    public void saveDestinationCidrs(FirewallRuleVO firewallRule, List<String> cidrList){
+        if(cidrList == null){
+            return;
+        }
+        _firewallRulesDcidrsDao.persist(firewallRule.getId(), cidrList);
+
+    }
+
     @Override
     public List<FirewallRuleVO> listByIpPurposeAndProtocolAndNotRevoked(long ipAddressId, Integer startPort, Integer endPort, String protocol,
         FirewallRule.Purpose purpose) {
@@ -360,4 +379,11 @@
         List<String> sourceCidrs = _firewallRulesCidrsDao.getSourceCidrs(rule.getId());
         rule.setSourceCidrList(sourceCidrs);
     }
+
+    @Override
+    public void loadDestinationCidrs(FirewallRuleVO rule){
+        List<String> destCidrs = _firewallRulesDcidrsDao.getDestCidrs(rule.getId());
+        rule.setDestinationCidrsList(destCidrs);
+    }
+
 }
diff --git a/server/src/com/cloud/api/query/dao/StorageTagDao.java b/engine/schema/src/com/cloud/network/dao/FirewallRulesDcidrsDao.java
similarity index 71%
rename from server/src/com/cloud/api/query/dao/StorageTagDao.java
rename to engine/schema/src/com/cloud/network/dao/FirewallRulesDcidrsDao.java
index aa2d6e6..bc7efc4 100644
--- a/server/src/com/cloud/api/query/dao/StorageTagDao.java
+++ b/engine/schema/src/com/cloud/network/dao/FirewallRulesDcidrsDao.java
@@ -14,17 +14,15 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package com.cloud.api.query.dao;
+package com.cloud.network.dao;
+
+import com.cloud.utils.db.GenericDao;
 
 import java.util.List;
 
-import org.apache.cloudstack.api.response.StorageTagResponse;
+public interface FirewallRulesDcidrsDao extends GenericDao<FirewallRulesDestCidrsVO, Long> {
 
-import com.cloud.api.query.vo.StorageTagVO;
-import com.cloud.utils.db.GenericDao;
+    void persist(long firewallRuleId, List<String> destCidrs);
 
-public interface StorageTagDao extends GenericDao<StorageTagVO, Long> {
-    StorageTagResponse newStorageTagResponse(StorageTagVO storageTag);
-
-    List<StorageTagVO> searchByIds(Long... storageTagIds);
-}
+    List<String> getDestCidrs(long firewallId);
+}
\ No newline at end of file
diff --git a/engine/schema/src/com/cloud/network/dao/FirewallRulesDcidrsDaoImpl.java b/engine/schema/src/com/cloud/network/dao/FirewallRulesDcidrsDaoImpl.java
new file mode 100644
index 0000000..24d142a
--- /dev/null
+++ b/engine/schema/src/com/cloud/network/dao/FirewallRulesDcidrsDaoImpl.java
@@ -0,0 +1,76 @@
+// 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.dao;
+
+import com.cloud.utils.db.DB;
+import com.cloud.utils.db.GenericDaoBase;
+import com.cloud.utils.db.SearchBuilder;
+import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.Transaction;
+import com.cloud.utils.db.TransactionCallbackNoReturn;
+import com.cloud.utils.db.TransactionStatus;
+import org.springframework.stereotype.Component;
+
+import javax.ejb.Local;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+@Local(value = FirewallRulesDcidrsDao.class)
+public class FirewallRulesDcidrsDaoImpl extends GenericDaoBase<FirewallRulesDestCidrsVO, Long> implements FirewallRulesDcidrsDao {
+
+    protected final SearchBuilder<FirewallRulesDestCidrsVO> cidrsSearch;
+
+    protected FirewallRulesDcidrsDaoImpl(){
+        cidrsSearch = createSearchBuilder();
+        cidrsSearch.and("firewallRuleId", cidrsSearch.entity().getFirewallRuleId(), SearchCriteria.Op.EQ);
+        cidrsSearch.done();
+
+    }
+
+    @Override
+    @DB
+     public List<String> getDestCidrs(long firewallRuleId){
+        SearchCriteria<FirewallRulesDestCidrsVO> sc =cidrsSearch.create();
+        sc.setParameters("firewallRuleId", firewallRuleId);
+
+        List<FirewallRulesDestCidrsVO> results = search(sc, null);
+
+        List<String> cidrs = new ArrayList<String>(results.size());
+        for (FirewallRulesDestCidrsVO result : results) {
+            cidrs.add(result.getCidr());
+        }
+
+        return cidrs;
+    }
+
+    @Override
+    @DB
+    public void persist(final long firewallRuleId, final List<String> destCidrs){
+        Transaction.execute(new TransactionCallbackNoReturn() {
+            @Override
+            public void doInTransactionWithoutResult(TransactionStatus status) {
+                for(String cidr: destCidrs){
+                    FirewallRulesDestCidrsVO vo = new FirewallRulesDestCidrsVO(firewallRuleId, cidr);
+                    persist(vo);
+                }
+            }
+        });
+    }
+
+
+}
diff --git a/engine/schema/src/com/cloud/network/dao/FirewallRulesDestCidrsVO.java b/engine/schema/src/com/cloud/network/dao/FirewallRulesDestCidrsVO.java
new file mode 100644
index 0000000..ce00e0e
--- /dev/null
+++ b/engine/schema/src/com/cloud/network/dao/FirewallRulesDestCidrsVO.java
@@ -0,0 +1,63 @@
+// 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.dao;
+
+import org.apache.cloudstack.api.InternalIdentity;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = ("firewall_rules_dcidrs"))
+public class FirewallRulesDestCidrsVO implements InternalIdentity{
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id")
+    private Long id;
+
+    @Column(name = "firewall_rule_id")
+    private long firewallRuleId;
+
+    @Column(name = "destination_cidr")
+    private String destCidr;
+
+    public FirewallRulesDestCidrsVO(){
+
+    }
+
+    public FirewallRulesDestCidrsVO(long firewallRuleId, String destCidr){
+        this.firewallRuleId = firewallRuleId;
+        this.destCidr = destCidr;
+    }
+
+    public long getFirewallRuleId(){
+        return firewallRuleId;
+    }
+
+    public String getCidr(){
+        return destCidr;
+    }
+
+    @Override
+    public long getId() {
+        return id;
+    }
+}
\ No newline at end of file
diff --git a/engine/schema/src/com/cloud/network/dao/IPAddressVO.java b/engine/schema/src/com/cloud/network/dao/IPAddressVO.java
index 0be781b..95834a0 100644
--- a/engine/schema/src/com/cloud/network/dao/IPAddressVO.java
+++ b/engine/schema/src/com/cloud/network/dao/IPAddressVO.java
@@ -117,6 +117,11 @@
     @Column(name = "display", updatable = true, nullable = false)
     protected boolean display = true;
 
+    //static nat rule state
+    @Enumerated(value = EnumType.STRING)
+    @Column(name = "rule_state")
+    State ruleState;
+
     @Column(name= GenericDao.REMOVED_COLUMN)
     private Date removed;
 
@@ -367,4 +372,14 @@
     public Date getCreated() {
         return created;
     }
+
+    @Override
+    public State getRuleState() {
+        return ruleState;
+    }
+
+    @Override
+    public void setRuleState(State ruleState) {
+        this.ruleState = ruleState;
+    }
 }
diff --git a/engine/schema/src/com/cloud/network/dao/LoadBalancerDao.java b/engine/schema/src/com/cloud/network/dao/LoadBalancerDao.java
index 331f755..c639ef7 100644
--- a/engine/schema/src/com/cloud/network/dao/LoadBalancerDao.java
+++ b/engine/schema/src/com/cloud/network/dao/LoadBalancerDao.java
@@ -29,4 +29,6 @@
 
     List<LoadBalancerVO> listInTransitionStateByNetworkIdAndScheme(long networkId, Scheme scheme);
 
+    boolean isLoadBalancerRulesMappedToVmGuestIp(long instanceId, String instanceIp, long networkId);
+
 }
diff --git a/engine/schema/src/com/cloud/network/dao/LoadBalancerDaoImpl.java b/engine/schema/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
index 0ad768d..932c5c6 100644
--- a/engine/schema/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
@@ -20,6 +20,8 @@
 
 import javax.inject.Inject;
 
+import com.cloud.network.rules.FirewallRule;
+import com.cloud.utils.db.JoinBuilder;
 import org.springframework.stereotype.Component;
 
 import com.cloud.network.rules.FirewallRule.State;
@@ -36,6 +38,8 @@
 
     @Inject
     protected FirewallRulesCidrsDao _portForwardingRulesCidrsDao;
+    @Inject
+    LoadBalancerVMMapDao _loadBalancerVMMapDao;
 
     protected LoadBalancerDaoImpl() {
         ListByIp = createSearchBuilder();
@@ -75,4 +79,40 @@
         return listBy(sc);
     }
 
+    @Override
+    public boolean isLoadBalancerRulesMappedToVmGuestIp(long instanceId, String instanceIp, long networkId)
+    {
+        SearchBuilder<LoadBalancerVMMapVO> lbVmMapSearch = _loadBalancerVMMapDao.createSearchBuilder();
+        lbVmMapSearch.and("instanceIp", lbVmMapSearch.entity().getInstanceIp(),SearchCriteria.Op.EQ);
+        lbVmMapSearch.and("instanceId", lbVmMapSearch.entity().getInstanceId(), SearchCriteria.Op.EQ);
+
+        SearchBuilder<LoadBalancerVO> firewallRuleIdSearch = createSearchBuilder();
+        firewallRuleIdSearch.selectFields(firewallRuleIdSearch.entity().getId());
+        firewallRuleIdSearch.and("networkId",firewallRuleIdSearch.entity().getNetworkId(),Op.EQ);
+        firewallRuleIdSearch.and("purpose",firewallRuleIdSearch.entity().getPurpose(),Op.EQ);
+        firewallRuleIdSearch.and("state",firewallRuleIdSearch.entity().getState(),Op.NEQ);
+        firewallRuleIdSearch.join("LoadBalancerRuleList", lbVmMapSearch, lbVmMapSearch.entity().getLoadBalancerId(), firewallRuleIdSearch.entity().getId(), JoinBuilder.JoinType.INNER);
+
+        firewallRuleIdSearch.done();
+        lbVmMapSearch.done();
+
+        SearchCriteria<LoadBalancerVO> sc = firewallRuleIdSearch.create();
+        sc.setParameters("state", State.Revoke);
+        sc.setParameters("networkId", networkId);
+        sc.setParameters("purpose", FirewallRule.Purpose.LoadBalancing);
+
+        sc.setJoinParameters("LoadBalancerRuleList", "instanceIp", instanceIp);
+        sc.setJoinParameters("LoadBalancerRuleList", "instanceId", instanceId);
+
+        List<LoadBalancerVO> lbRuleList = customSearch(sc, null);
+
+        if(lbRuleList == null || lbRuleList.size() > 0) {
+            return true;
+        }
+
+        return false;
+    }
+
+
+
 }
diff --git a/engine/schema/src/com/cloud/network/dao/NetworkDao.java b/engine/schema/src/com/cloud/network/dao/NetworkDao.java
index 49c8015..684a94f 100644
--- a/engine/schema/src/com/cloud/network/dao/NetworkDao.java
+++ b/engine/schema/src/com/cloud/network/dao/NetworkDao.java
@@ -54,9 +54,10 @@
      *
      * @param networkConfigId
      *            id
+     * @param zoneMacIdentifier
      * @return mac address if there is one. null if not.
      */
-    String getNextAvailableMacAddress(long networkConfigId);
+    String getNextAvailableMacAddress(long networkConfigId, Integer zoneMacIdentifier);
 
     List<NetworkVO> listBy(long accountId, long networkId);
 
diff --git a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
index 0c4354b..29d0e8f 100644
--- a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
@@ -377,11 +377,15 @@
     }
 
     @Override
-    public String getNextAvailableMacAddress(final long networkConfigId) {
+    public String getNextAvailableMacAddress(final long networkConfigId, Integer zoneMacIdentifier) {
         final SequenceFetcher fetch = SequenceFetcher.getInstance();
-
         long seq = fetch.getNextSequence(Long.class, _tgMacAddress, networkConfigId);
-        seq = seq | _prefix << 40 | _rand.nextInt(Short.MAX_VALUE) << 16 & 0x00000000ffff0000l;
+        if(zoneMacIdentifier != null && zoneMacIdentifier.intValue() != 0 ){
+            seq = seq | _prefix << 40 | (long)zoneMacIdentifier << 32 | networkConfigId << 16 & 0x00000000ffff0000l;
+        }
+        else {
+            seq = seq | _prefix << 40 | _rand.nextInt(Short.MAX_VALUE) << 16 & 0x00000000ffff0000l;
+        }
         return NetUtils.long2Mac(seq);
     }
 
diff --git a/engine/schema/src/com/cloud/network/dao/SslCertVO.java b/engine/schema/src/com/cloud/network/dao/SslCertVO.java
index 2676d61..1d72180 100644
--- a/engine/schema/src/com/cloud/network/dao/SslCertVO.java
+++ b/engine/schema/src/com/cloud/network/dao/SslCertVO.java
@@ -23,7 +23,7 @@
 import javax.persistence.Id;
 import javax.persistence.Table;
 
-import com.cloud.network.lb.SslCert;
+import org.apache.cloudstack.network.tls.SslCert;
 import com.cloud.utils.db.Encrypt;
 
 @Entity
diff --git a/engine/schema/src/com/cloud/network/rules/FirewallRuleVO.java b/engine/schema/src/com/cloud/network/rules/FirewallRuleVO.java
index 169102a..282fa74 100644
--- a/engine/schema/src/com/cloud/network/rules/FirewallRuleVO.java
+++ b/engine/schema/src/com/cloud/network/rules/FirewallRuleVO.java
@@ -110,6 +110,9 @@
     @Transient
     List<String> sourceCidrs;
 
+    @Transient
+    List<String> destinationCidrs;
+
     @Column(name = "uuid")
     String uuid;
 
@@ -117,6 +120,15 @@
         this.sourceCidrs = sourceCidrs;
     }
 
+    public void setDestinationCidrsList(List<String> destinationCidrs){
+        this.destinationCidrs = destinationCidrs;
+    }
+
+    @Override
+    public List<String> getDestinationCidrList(){
+        return destinationCidrs;
+    }
+
     @Override
     public List<String> getSourceCidrList() {
         return sourceCidrs;
@@ -213,6 +225,9 @@
         this.icmpType = icmpType;
         this.sourceCidrs = sourceCidrs;
 
+        this.destinationCidrs = null;
+
+
         if (related != null) {
             assert (purpose == Purpose.Firewall) : "related field can be set for rule of purpose " + Purpose.Firewall + " only";
         }
@@ -224,7 +239,7 @@
     }
 
     public FirewallRuleVO(String xId, Long ipAddressId, Integer portStart, Integer portEnd, String protocol, long networkId, long accountId, long domainId,
-            Purpose purpose, List<String> sourceCidrs, Integer icmpCode, Integer icmpType, Long related, TrafficType trafficType, FirewallRuleType type) {
+            Purpose purpose, List<String> sourceCidrs, List<String> destinationCidrs, Integer icmpCode, Integer icmpType, Long related, TrafficType trafficType, FirewallRuleType type) {
         this(xId, ipAddressId, portStart, portEnd, protocol, networkId, accountId, domainId, purpose, sourceCidrs, icmpCode, icmpType, related, trafficType);
         this.type = type;
     }
@@ -234,6 +249,13 @@
         this(xId, ipAddressId, port, port, protocol, networkId, accountId, domainId, purpose, sourceCidrs, icmpCode, icmpType, related, null);
     }
 
+
+    public FirewallRuleVO(String xId, Long ipAddressId, Integer portStart, Integer portEnd, String protocol, long networkId, long accountId, long domainId,
+                          Purpose purpose, List<String> sourceCidrs, List<String> destCidrs, Integer icmpCode, Integer icmpType, Long related, TrafficType trafficType) {
+        this(xId,ipAddressId, portStart, portEnd, protocol, networkId, accountId, domainId, purpose, sourceCidrs, icmpCode, icmpType, related, trafficType);
+        this.destinationCidrs = destCidrs;
+    }
+
     @Override
     public String toString() {
         return new StringBuilder("Rule[").append(id).append("-").append(purpose).append("-").append(state).append("]").toString();
diff --git a/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java b/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java
index c3d849d..4325287 100644
--- a/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java
+++ b/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java
@@ -142,6 +142,9 @@
     @Column(name="supports_streched_l2")
     boolean supportsStrechedL2 = false;
 
+    @Column(name="supports_public_access")
+    boolean supportsPublicAccess = false;
+
     @Override
     public String getDisplayText() {
         return displayText;
@@ -334,7 +337,7 @@
     public NetworkOfferingVO(String name, String displayText, TrafficType trafficType, boolean systemOnly, boolean specifyVlan, Integer rateMbps,
             Integer multicastRateMbps, boolean isDefault, Availability availability, String tags, Network.GuestType guestType, boolean conserveMode, boolean dedicatedLb,
             boolean sharedSourceNat, boolean redundantRouter, boolean elasticIp, boolean elasticLb, boolean specifyIpRanges, boolean inline, boolean isPersistent,
-            boolean associatePublicIP, boolean publicLb, boolean internalLb, boolean egressdefaultpolicy, boolean supportsStrechedL2) {
+            boolean associatePublicIP, boolean publicLb, boolean internalLb, boolean egressdefaultpolicy, boolean supportsStrechedL2, boolean supportsPublicAccess) {
         this(name,
             displayText,
             trafficType,
@@ -360,6 +363,7 @@
         this.eipAssociatePublicIp = associatePublicIP;
         this.egressdefaultpolicy = egressdefaultpolicy;
         this.supportsStrechedL2 = supportsStrechedL2;
+        this.supportsPublicAccess = supportsPublicAccess;
     }
 
     public NetworkOfferingVO() {
@@ -495,4 +499,9 @@
     public boolean getSupportsStrechedL2() {
         return supportsStrechedL2;
     }
+
+    @Override
+    public boolean getSupportsPublicAccess() {
+        return supportsPublicAccess;
+    }
 }
diff --git a/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingServiceMapDao.java b/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingServiceMapDao.java
index 8616449..8fb5d6d 100644
--- a/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingServiceMapDao.java
+++ b/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingServiceMapDao.java
@@ -31,6 +31,8 @@
 public interface NetworkOfferingServiceMapDao extends GenericDao<NetworkOfferingServiceMapVO, Long> {
     boolean areServicesSupportedByNetworkOffering(long networkOfferingId, Service... services);
 
+    boolean canProviderSupportServiceInNetworkOffering(long networkOfferingId, Service service, Provider provider);
+
     List<NetworkOfferingServiceMapVO> listByNetworkOfferingId(long networkOfferingId);
 
     void deleteByOfferingId(long networkOfferingId);
diff --git a/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingServiceMapDaoImpl.java b/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingServiceMapDaoImpl.java
index b667e58..7868be2 100644
--- a/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingServiceMapDaoImpl.java
+++ b/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingServiceMapDaoImpl.java
@@ -104,6 +104,15 @@
     }
 
     @Override
+    public boolean canProviderSupportServiceInNetworkOffering(long networkOfferingId, Service service, Provider provider) {
+        SearchCriteria<NetworkOfferingServiceMapVO> sc = AllFieldsSearch.create();
+        sc.setParameters("networkOfferingId", networkOfferingId);
+        sc.setParameters("service", service.getName());
+        sc.setParameters("provider", provider.getName());
+        return findOneBy(sc) != null;
+    }
+
+    @Override
     public List<NetworkOfferingServiceMapVO> listByNetworkOfferingId(long networkOfferingId) {
         SearchCriteria<NetworkOfferingServiceMapVO> sc = AllFieldsSearch.create();
         sc.setParameters("networkOfferingId", networkOfferingId);
diff --git a/engine/schema/src/com/cloud/storage/SnapshotVO.java b/engine/schema/src/com/cloud/storage/SnapshotVO.java
index 950c5e9..8e5c0b6 100644
--- a/engine/schema/src/com/cloud/storage/SnapshotVO.java
+++ b/engine/schema/src/com/cloud/storage/SnapshotVO.java
@@ -16,8 +16,9 @@
 // under the License.
 package com.cloud.storage;
 
-import java.util.Date;
-import java.util.UUID;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.utils.db.GenericDao;
+import com.google.gson.annotations.Expose;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -27,11 +28,8 @@
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Table;
-
-import com.google.gson.annotations.Expose;
-
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.utils.db.GenericDao;
+import java.util.Date;
+import java.util.UUID;
 
 @Entity
 @Table(name = "snapshots")
@@ -69,6 +67,11 @@
     @Column(name = "snapshot_type")
     short snapshotType;
 
+    @Expose
+    @Column(name = "location_type", updatable = true, nullable = true)
+    @Enumerated(value = EnumType.STRING)
+    private LocationType locationType;
+
     @Column(name = "type_description")
     String typeDescription;
 
@@ -103,7 +106,7 @@
     }
 
     public SnapshotVO(long dcId, long accountId, long domainId, Long volumeId, Long diskOfferingId, String name, short snapshotType, String typeDescription, long size,
-            Long minIops, Long maxIops, HypervisorType hypervisorType) {
+            Long minIops, Long maxIops, HypervisorType hypervisorType, LocationType locationType) {
         dataCenterId = dcId;
         this.accountId = accountId;
         this.domainId = domainId;
@@ -119,6 +122,7 @@
         this.hypervisorType = hypervisorType;
         version = "2.2";
         uuid = UUID.randomUUID().toString();
+        this.locationType = locationType;
     }
 
     @Override
@@ -172,6 +176,15 @@
     }
 
     @Override
+    public LocationType getLocationType() {
+        return locationType;
+    }
+
+    public void setLocationType(LocationType locationType) {
+        this.locationType = locationType;
+    }
+
+    @Override
     public HypervisorType getHypervisorType() {
         return hypervisorType;
     }
diff --git a/server/src/com/cloud/api/query/vo/StorageTagVO.java b/engine/schema/src/com/cloud/storage/StoragePoolTagVO.java
old mode 100644
new mode 100755
similarity index 69%
rename from server/src/com/cloud/api/query/vo/StorageTagVO.java
rename to engine/schema/src/com/cloud/storage/StoragePoolTagVO.java
index f8d29fd..18c0dc3
--- a/server/src/com/cloud/api/query/vo/StorageTagVO.java
+++ b/engine/schema/src/com/cloud/storage/StoragePoolTagVO.java
@@ -14,48 +14,51 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package com.cloud.api.query.vo;
+package com.cloud.storage;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Table;
 
 import org.apache.cloudstack.api.InternalIdentity;
 
-/**
- * Storage Tags DB view.
- *
- */
 @Entity
-@Table(name = "storage_tag_view")
-public class StorageTagVO extends BaseViewVO implements InternalIdentity {
-    private static final long serialVersionUID = 1L;
+@Table(name = "storage_pool_tags")
+public class StoragePoolTagVO implements InternalIdentity {
+
+    protected StoragePoolTagVO() {
+    }
 
     @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "id")
     private long id;
 
-    @Column(name = "name")
-    private String name;
-
     @Column(name = "pool_id")
-    long poolId;
+    private long poolId;
+
+    @Column(name = "tag")
+    private String tag;
+
+    public StoragePoolTagVO(long poolId, String tag) {
+        this.poolId = poolId;
+        this.tag = tag;
+    }
 
     @Override
     public long getId() {
-        return id;
-    }
-
-    public String getName() {
-        return name;
+        return this.id;
     }
 
     public long getPoolId() {
         return poolId;
     }
 
-    public void setPoolId(long poolId) {
-        this.poolId = poolId;
+    public String getTag() {
+        return tag;
     }
-}
\ No newline at end of file
+
+}
diff --git a/engine/schema/src/com/cloud/storage/VMTemplateDetailVO.java b/engine/schema/src/com/cloud/storage/VMTemplateDetailVO.java
old mode 100644
new mode 100755
index f988aba..5010edf
--- a/engine/schema/src/com/cloud/storage/VMTemplateDetailVO.java
+++ b/engine/schema/src/com/cloud/storage/VMTemplateDetailVO.java
@@ -79,4 +79,20 @@
     public boolean isDisplay() {
         return display;
     }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public void setResourceId(long resourceId) {
+        this.resourceId = resourceId;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
 }
diff --git a/engine/schema/src/com/cloud/storage/dao/SnapshotDao.java b/engine/schema/src/com/cloud/storage/dao/SnapshotDao.java
old mode 100644
new mode 100755
index ff2e445..fe63558
--- a/engine/schema/src/com/cloud/storage/dao/SnapshotDao.java
+++ b/engine/schema/src/com/cloud/storage/dao/SnapshotDao.java
@@ -37,6 +37,8 @@
 
     List<SnapshotVO> listByVolumeIdType(long volumeId, Type type);
 
+    List<SnapshotVO> listByVolumeIdTypeNotDestroyed(long volumeId, Type type);
+
     List<SnapshotVO> listByVolumeIdIncludingRemoved(long volumeId);
 
     List<SnapshotVO> listByBackupUuid(long volumeId, String backupUuid);
diff --git a/engine/schema/src/com/cloud/storage/dao/SnapshotDaoImpl.java b/engine/schema/src/com/cloud/storage/dao/SnapshotDaoImpl.java
old mode 100644
new mode 100755
index 9483f1c..a6941cf
--- a/engine/schema/src/com/cloud/storage/dao/SnapshotDaoImpl.java
+++ b/engine/schema/src/com/cloud/storage/dao/SnapshotDaoImpl.java
@@ -62,6 +62,7 @@
 
     private SearchBuilder<SnapshotVO> VolumeIdSearch;
     private SearchBuilder<SnapshotVO> VolumeIdTypeSearch;
+    private SearchBuilder<SnapshotVO> VolumeIdTypeNotDestroyedSearch;
     private SearchBuilder<SnapshotVO> ParentIdSearch;
     private SearchBuilder<SnapshotVO> backupUuidSearch;
     private SearchBuilder<SnapshotVO> VolumeIdVersionSearch;
@@ -96,6 +97,15 @@
     }
 
     @Override
+    public List<SnapshotVO> listByVolumeIdTypeNotDestroyed(long volumeId, Type type) {
+        SearchCriteria<SnapshotVO> sc = VolumeIdTypeNotDestroyedSearch.create();
+        sc.setParameters("volumeId", volumeId);
+        sc.setParameters("type", type.ordinal());
+        sc.setParameters("status", State.Destroyed);
+        return listBy(sc, null);
+    }
+
+    @Override
     public List<SnapshotVO> listByVolumeIdVersion(long volumeId, String version) {
         return listByVolumeIdVersion(null, volumeId, version);
     }
@@ -147,6 +157,12 @@
         VolumeIdTypeSearch.and("type", VolumeIdTypeSearch.entity().getsnapshotType(), SearchCriteria.Op.EQ);
         VolumeIdTypeSearch.done();
 
+        VolumeIdTypeNotDestroyedSearch = createSearchBuilder();
+        VolumeIdTypeNotDestroyedSearch.and("volumeId", VolumeIdTypeNotDestroyedSearch.entity().getVolumeId(), SearchCriteria.Op.EQ);
+        VolumeIdTypeNotDestroyedSearch.and("type", VolumeIdTypeNotDestroyedSearch.entity().getsnapshotType(), SearchCriteria.Op.EQ);
+        VolumeIdTypeNotDestroyedSearch.and("status", VolumeIdTypeNotDestroyedSearch.entity().getState(), SearchCriteria.Op.NEQ);
+        VolumeIdTypeNotDestroyedSearch.done();
+
         VolumeIdVersionSearch = createSearchBuilder();
         VolumeIdVersionSearch.and("volumeId", VolumeIdVersionSearch.entity().getVolumeId(), SearchCriteria.Op.EQ);
         VolumeIdVersionSearch.and("version", VolumeIdVersionSearch.entity().getVersion(), SearchCriteria.Op.EQ);
diff --git a/server/src/com/cloud/api/query/dao/StorageTagDao.java b/engine/schema/src/com/cloud/storage/dao/StoragePoolTagsDao.java
old mode 100644
new mode 100755
similarity index 68%
copy from server/src/com/cloud/api/query/dao/StorageTagDao.java
copy to engine/schema/src/com/cloud/storage/dao/StoragePoolTagsDao.java
index aa2d6e6..946b46b
--- a/server/src/com/cloud/api/query/dao/StorageTagDao.java
+++ b/engine/schema/src/com/cloud/storage/dao/StoragePoolTagsDao.java
@@ -14,17 +14,21 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package com.cloud.api.query.dao;
+package com.cloud.storage.dao;
 
 import java.util.List;
 
 import org.apache.cloudstack.api.response.StorageTagResponse;
 
-import com.cloud.api.query.vo.StorageTagVO;
+import com.cloud.storage.StoragePoolTagVO;
 import com.cloud.utils.db.GenericDao;
 
-public interface StorageTagDao extends GenericDao<StorageTagVO, Long> {
-    StorageTagResponse newStorageTagResponse(StorageTagVO storageTag);
+public interface StoragePoolTagsDao extends GenericDao<StoragePoolTagVO, Long> {
 
-    List<StorageTagVO> searchByIds(Long... storageTagIds);
+    void persist(long poolId, List<String> storagePoolTags);
+    List<String> getStoragePoolTags(long poolId);
+    void deleteTags(long poolId);
+    List<StoragePoolTagVO> searchByIds(Long... stIds);
+    StorageTagResponse newStorageTagResponse(StoragePoolTagVO tag);
+
 }
diff --git a/engine/schema/src/com/cloud/storage/dao/StoragePoolTagsDaoImpl.java b/engine/schema/src/com/cloud/storage/dao/StoragePoolTagsDaoImpl.java
new file mode 100755
index 0000000..f20e0c4
--- /dev/null
+++ b/engine/schema/src/com/cloud/storage/dao/StoragePoolTagsDaoImpl.java
@@ -0,0 +1,160 @@
+// 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.storage.dao;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.cloudstack.api.response.StorageTagResponse;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+
+import com.cloud.storage.StoragePoolTagVO;
+import com.cloud.utils.db.GenericDaoBase;
+import com.cloud.utils.db.SearchBuilder;
+import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.TransactionLegacy;
+
+public class StoragePoolTagsDaoImpl extends GenericDaoBase<StoragePoolTagVO, Long> implements StoragePoolTagsDao {
+
+    @Inject
+    private ConfigurationDao _configDao;
+
+    protected final SearchBuilder<StoragePoolTagVO> StoragePoolSearch;
+    private final SearchBuilder<StoragePoolTagVO> StoragePoolIdsSearch;
+
+    private static final int DEFAULT_BATCH_QUERY_SIZE = 2000;
+
+    public StoragePoolTagsDaoImpl() {
+        StoragePoolSearch = createSearchBuilder();
+        StoragePoolSearch.and("poolId", StoragePoolSearch.entity().getPoolId(), SearchCriteria.Op.EQ);
+        StoragePoolSearch.done();
+        StoragePoolIdsSearch = createSearchBuilder();
+        StoragePoolIdsSearch.and("idIN", StoragePoolIdsSearch.entity().getId(), SearchCriteria.Op.IN);
+        StoragePoolIdsSearch.done();
+    }
+
+    @Override
+    public void persist(long poolId, List<String> storagePoolTags) {
+        TransactionLegacy txn = TransactionLegacy.currentTxn();
+
+        txn.start();
+        SearchCriteria<StoragePoolTagVO> sc = StoragePoolSearch.create();
+        sc.setParameters("poolId", poolId);
+        expunge(sc);
+
+        for (String tag : storagePoolTags) {
+            tag = tag.trim();
+            if (tag.length() > 0) {
+                StoragePoolTagVO vo = new StoragePoolTagVO(poolId, tag);
+                persist(vo);
+            }
+        }
+        txn.commit();
+    }
+
+    @Override
+    public List<String> getStoragePoolTags(long poolId) {
+        SearchCriteria<StoragePoolTagVO> sc = StoragePoolSearch.create();
+        sc.setParameters("poolId", poolId);
+
+        List<StoragePoolTagVO> results = search(sc, null);
+        List<String> storagePoolTags = new ArrayList<String>(results.size());
+        for (StoragePoolTagVO result : results) {
+            storagePoolTags.add(result.getTag());
+        }
+
+        return storagePoolTags;
+    }
+
+    @Override
+    public void deleteTags(long poolId) {
+        TransactionLegacy txn = TransactionLegacy.currentTxn();
+        txn.start();
+        SearchCriteria<StoragePoolTagVO> sc = StoragePoolSearch.create();
+        sc.setParameters("poolId", poolId);
+        expunge(sc);
+        txn.commit();
+    }
+
+    @Override
+    public List<StoragePoolTagVO> searchByIds(Long... stIds) {
+        final int detailsBatchSize = getDetailsBatchSize();
+
+        // query details by batches
+        List<StoragePoolTagVO> uvList = new ArrayList<StoragePoolTagVO>();
+        int curr_index = 0;
+
+        while ((curr_index + detailsBatchSize) <= stIds.length) {
+            searchForStoragePoolIdsInternal(curr_index, detailsBatchSize, stIds, uvList);
+            curr_index += detailsBatchSize;
+        }
+
+        if (curr_index < stIds.length) {
+            int batch_size = (stIds.length - curr_index);
+            searchForStoragePoolIdsInternal(curr_index, batch_size, stIds, uvList);
+        }
+
+        return uvList;
+    }
+
+    /**
+     * Search for storage pools based on their IDs.
+     * The search is executed in batch, this means that we will load a batch of size {@link StoragePoolTagsDaoImpl#getDetailsBatchSize()}
+     * {@link StoragePoolTagVO} at each time.
+     * The loaded storage pools are added in the pools parameter.
+     * @param currIndex current index
+     * @param batchSize batch size
+     * @param stIds storage tags array
+     * @param pools list in which storage pools are added
+     */
+    protected void searchForStoragePoolIdsInternal(int currIndex, int batchSize, Long[] stIds, List<StoragePoolTagVO> pools) {
+        Long[] ids = new Long[batchSize];
+        for (int k = 0, j = currIndex; j < currIndex + batchSize; j++, k++) {
+            ids[k] = stIds[j];
+        }
+        SearchCriteria<StoragePoolTagVO> sc = StoragePoolIdsSearch.create();
+        sc.setParameters("idIN", (Object[])ids);
+        List<StoragePoolTagVO> vms = searchIncludingRemoved(sc, null, null, false);
+        if (vms != null) {
+            pools.addAll(vms);
+        }
+    }
+
+    /**
+     * Retrieve {@code detail.batch.query.size} configuration value. If not available, return default value {@link StoragePoolTagsDaoImpl#DEFAULT_BATCH_QUERY_SIZE}
+     * @return detail.batch.query.size configuration value
+     */
+    protected int getDetailsBatchSize() {
+        String batchCfg = _configDao.getValue("detail.batch.query.size");
+        return batchCfg != null ? Integer.parseInt(batchCfg) : DEFAULT_BATCH_QUERY_SIZE;
+    }
+
+    @Override
+    public StorageTagResponse newStorageTagResponse(StoragePoolTagVO tag) {
+        StorageTagResponse tagResponse = new StorageTagResponse();
+
+        tagResponse.setName(tag.getTag());
+        tagResponse.setPoolId(tag.getPoolId());
+
+        tagResponse.setObjectName("storagetag");
+
+        return tagResponse;
+    }
+
+}
diff --git a/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java b/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
index 968c7a0..ccdf077 100644
--- a/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
+++ b/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
@@ -66,6 +66,7 @@
 import com.cloud.upgrade.dao.Upgrade490to4910;
 import com.cloud.upgrade.dao.Upgrade4910to4920;
 import com.cloud.upgrade.dao.Upgrade4920to4930;
+import com.cloud.upgrade.dao.Upgrade4930to41000;
 import com.cloud.upgrade.dao.UpgradeSnapshot217to224;
 import com.cloud.upgrade.dao.UpgradeSnapshot223to224;
 import com.cloud.upgrade.dao.VersionDao;
@@ -88,16 +89,12 @@
 import java.io.FileReader;
 import java.io.IOException;
 import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.TreeMap;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.collect.Lists.newArrayList;
@@ -124,7 +121,7 @@
             new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
             new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(),
             new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
-            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.1.8"), new DbUpgrade[] {new Upgrade218to22(), new Upgrade221to222(), new UpgradeSnapshot217to224(),
             new Upgrade222to224(), new Upgrade218to224DomainVlans(), new Upgrade224to225(), new Upgrade225to226(),
@@ -132,7 +129,7 @@
             new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
             new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
             new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.1.9"), new DbUpgrade[] {new Upgrade218to22(), new Upgrade221to222(), new UpgradeSnapshot217to224(),
             new Upgrade222to224(), new Upgrade218to224DomainVlans(), new Upgrade224to225(), new Upgrade225to226(),
@@ -140,175 +137,177 @@
             new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
             new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(),
             new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
-            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.1"), new DbUpgrade[] {new Upgrade221to222(), new UpgradeSnapshot223to224(), new Upgrade222to224(),
             new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(),
             new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
             new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
             new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
-            new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.2"), new DbUpgrade[] {new Upgrade222to224(), new UpgradeSnapshot223to224(), new Upgrade224to225(),
             new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(),
             new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
             new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.3"), new DbUpgrade[] {new Upgrade222to224(), new UpgradeSnapshot223to224(), new Upgrade224to225(),
             new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(),
             new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
             new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.4"), new DbUpgrade[] {new Upgrade224to225(), new Upgrade225to226(), new Upgrade227to228(),
             new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(),
             new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(),
             new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.5"), new DbUpgrade[] {new Upgrade225to226(), new Upgrade227to228(), new Upgrade228to229(),
             new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
             new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(),
             new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.6"), new DbUpgrade[] {new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(),
             new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(),
             new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
             new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.7"), new DbUpgrade[] {new Upgrade227to228(), new Upgrade228to229(), new Upgrade229to2210(),
             new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
             new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(),
             new Upgrade410to420(),
             new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(),
-            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.8"), new DbUpgrade[] {new Upgrade228to229(), new Upgrade229to2210(), new Upgrade2210to2211(),
             new Upgrade2211to2212(), new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30()
             , new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.9"), new DbUpgrade[] {new Upgrade229to2210(), new Upgrade2210to2211(), new Upgrade2211to2212(),
             new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(),
             new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.10"), new DbUpgrade[] {new Upgrade2210to2211(), new Upgrade2211to2212(), new Upgrade2212to2213(),
             new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
             new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(),
-            new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.12"), new DbUpgrade[] {new Upgrade2212to2213(), new Upgrade2213to2214(), new Upgrade2214to30(),
             new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.13"), new DbUpgrade[] {new Upgrade2213to2214(), new Upgrade2214to30(), new Upgrade30to301(),
             new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.14"), new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(),
             new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("3.0.0"), new DbUpgrade[] {new Upgrade30to301(), new Upgrade301to302(), new Upgrade302to40(),
             new Upgrade40to41(), new Upgrade410to420(),
-            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("3.0.1"), new DbUpgrade[] {new Upgrade301to302(), new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("3.0.2"), new DbUpgrade[] {new Upgrade302to40(), new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.0.0"), new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.0.0"), new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.0.1"), new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.0.1"), new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.0.2"), new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.0.2"), new DbUpgrade[] {new Upgrade40to41(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.1.0"), new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.1.0"), new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.1.1"), new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.1.1"), new DbUpgrade[] {new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.2.0"), new DbUpgrade[] {new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.2.0"), new DbUpgrade[] {new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.2.1"), new DbUpgrade[] {new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.2.1"), new DbUpgrade[] {new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.3.0"), new DbUpgrade[] {new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.3.0"), new DbUpgrade[] {new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.3.1"), new DbUpgrade[] {new Upgrade431to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.3.1"), new DbUpgrade[] {new Upgrade431to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.3.2"), new DbUpgrade[] {new Upgrade432to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.3.2"), new DbUpgrade[] {new Upgrade432to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.4.0"), new DbUpgrade[] {new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.4.0"), new DbUpgrade[] {new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.4.1"), new DbUpgrade[] {new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930() });
+        _upgradeMap.put(CloudStackVersion.parse("4.4.1"), new DbUpgrade[] {new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000() });
 
-        _upgradeMap.put(CloudStackVersion.parse("4.4.2"), new DbUpgrade[] {new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.4.2"), new DbUpgrade[] {new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.4.3"), new DbUpgrade[] {new Upgrade443to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.4.3"), new DbUpgrade[] {new Upgrade443to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.4.4"), new DbUpgrade[] {new Upgrade444to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.4.4"), new DbUpgrade[] {new Upgrade444to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.5.0"), new DbUpgrade[] {new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.5.0"), new DbUpgrade[] {new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.5.1"), new DbUpgrade[] {new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.5.1"), new DbUpgrade[] {new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.5.2"), new DbUpgrade[] {new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.5.2"), new DbUpgrade[] {new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.5.3"), new DbUpgrade[] {new Upgrade453to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.5.3"), new DbUpgrade[] {new Upgrade453to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.6.0"), new DbUpgrade[] {new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.6.0"), new DbUpgrade[] {new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.6.1"), new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.6.1"), new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.6.2"), new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.6.2"), new DbUpgrade[] {new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.7.0"), new DbUpgrade[] {new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.7.0"), new DbUpgrade[] {new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.7.1"), new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.7.1"), new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.7.2"), new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.7.2"), new DbUpgrade[] {new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.8.0"), new DbUpgrade[] {new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.8.0"), new DbUpgrade[] {new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.8.1"), new DbUpgrade[] {new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.8.1"), new DbUpgrade[] {new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.8.2.0"), new DbUpgrade[] {new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.8.2.0"), new DbUpgrade[] {new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.9.0"), new DbUpgrade[] {new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.9.0"), new DbUpgrade[] {new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.9.1.0"), new DbUpgrade[] {new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.9.1.0"), new DbUpgrade[] {new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("4.9.2.0"), new DbUpgrade[] {new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("4.9.2.0"), new DbUpgrade[] {new Upgrade4920to4930(), new Upgrade4930to41000()});
+
+        _upgradeMap.put(CloudStackVersion.parse("4.9.3.0"), new DbUpgrade[] {new Upgrade4930to41000()});
 
         //CP Upgrades
         _upgradeMap.put(CloudStackVersion.parse("3.0.3"), new DbUpgrade[] {new Upgrade303to304(), new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(),
-            new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("3.0.4"), new DbUpgrade[] {new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(),
-            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("3.0.5"), new DbUpgrade[] {new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(),
-            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("3.0.6"), new DbUpgrade[] {new Upgrade306to307(), new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(),
-            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
-        _upgradeMap.put(CloudStackVersion.parse("3.0.7"), new DbUpgrade[] {new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+        _upgradeMap.put(CloudStackVersion.parse("3.0.7"), new DbUpgrade[] {new Upgrade307to410(), new Upgrade410to420(), new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.15"), new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(),
             new Upgrade302to303(), new Upgrade303to304(), new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(),
             new Upgrade410to420(),
-            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         _upgradeMap.put(CloudStackVersion.parse("2.2.16"), new DbUpgrade[] {new Upgrade2214to30(), new Upgrade30to301(), new Upgrade301to302(),
             new Upgrade302to303(), new Upgrade303to304(), new Upgrade304to305(), new Upgrade305to306(), new Upgrade306to307(), new Upgrade307to410(),
             new Upgrade410to420(),
-            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930()});
+            new Upgrade420to421(), new Upgrade421to430(), new Upgrade430to440(), new Upgrade440to441(), new Upgrade441to442(), new Upgrade442to450(), new Upgrade450to451(), new Upgrade451to452(), new Upgrade452to460(), new Upgrade460to461(), new Upgrade461to470(), new Upgrade470to471(), new Upgrade471to480(), new Upgrade480to481(), new Upgrade481to490(), new Upgrade490to4910(), new Upgrade4910to4920(), new Upgrade4920to4930(), new Upgrade4930to41000()});
 
         final List<CloudStackVersion> sortedVersions = newArrayList(_upgradeMap.keySet());
         sort(sortedVersions);
@@ -406,6 +405,7 @@
         }
 
         for (DbUpgrade upgrade : upgrades) {
+            VersionVO version;
             s_logger.debug("Running upgrade " + upgrade.getClass().getSimpleName() + " to upgrade from " + upgrade.getUpgradableVersionRange()[0] + "-" +
                     upgrade.getUpgradableVersionRange()[1] + " to " + upgrade.getUpgradedVersion());
             TransactionLegacy txn = TransactionLegacy.open("Upgrade");
@@ -427,27 +427,9 @@
                 }
 
                 upgrade.performDataMigration(conn);
-                boolean upgradeVersion = true;
 
-                if (upgrade.getUpgradedVersion().equals("2.1.8")) {
-                    // we don't have VersionDao in 2.1.x
-                    upgradeVersion = false;
-                } else if (upgrade.getUpgradedVersion().equals("2.2.4")) {
-                    try(PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM version WHERE version='2.2.4'");
-                            ResultSet rs = pstmt.executeQuery();) {
-                        // specifically for domain vlan update from 2.1.8 to 2.2.4
-                        if (rs.next()) {
-                            upgradeVersion = false;
-                        }
-                    } catch (SQLException e) {
-                        throw new CloudRuntimeException("Unable to update the version table", e);
-                    }
-                }
-
-                if (upgradeVersion) {
-                    VersionVO version = new VersionVO(upgrade.getUpgradedVersion());
-                    _dao.persist(version);
-                }
+                version = new VersionVO(upgrade.getUpgradedVersion());
+                version = _dao.persist(version);
 
                 txn.commit();
             } catch (CloudRuntimeException e) {
@@ -457,71 +439,41 @@
             } finally {
                 txn.close();
             }
-        }
 
-        if (true) { // FIXME Needs to detect if management servers are running
-            // !ClusterManagerImpl.arePeersRunning(trimmedCurrentVersion)) {
-            s_logger.info("Cleaning upgrades because all management server are now at the same version");
-            TreeMap<String, List<DbUpgrade>> upgradedVersions = new TreeMap<String, List<DbUpgrade>>();
+            // Run the corresponding '-cleanup.sql' script
+            txn = TransactionLegacy.open("Cleanup");
+            try {
+                s_logger.info("Cleanup upgrade " + upgrade.getClass().getSimpleName() + " to upgrade from " + upgrade.getUpgradableVersionRange()[0] + "-" +
+                        upgrade.getUpgradableVersionRange()[1] + " to " + upgrade.getUpgradedVersion());
 
-            List<String> upgradeVersionsList = new ArrayList<>();
-            for (DbUpgrade upgrade : upgrades) {
-                String upgradedVerson = upgrade.getUpgradedVersion();
-                List<DbUpgrade> upgradeList = upgradedVersions.get(upgradedVerson);
-                if (upgradeList == null) {
-                    upgradeList = new ArrayList<DbUpgrade>();
-                }
-                upgradeList.add(upgrade);
-                upgradedVersions.put(upgradedVerson, upgradeList);
-                upgradeVersionsList.add(upgradedVerson);
-            }
-
-            for (String upgradedVersion : upgradeVersionsList) {
-                List<DbUpgrade> versionUpgrades = upgradedVersions.get(upgradedVersion);
-                VersionVO version = _dao.findByVersion(upgradedVersion, Step.Upgrade);
-                s_logger.debug("Upgrading to version " + upgradedVersion + "...");
-
-                TransactionLegacy txn = TransactionLegacy.open("Cleanup");
+                txn.start();
+                Connection conn;
                 try {
-                    if (version != null) {
-                        for (DbUpgrade upgrade : versionUpgrades) {
-                            s_logger.info("Cleanup upgrade " + upgrade.getClass().getSimpleName() + " to upgrade from " + upgrade.getUpgradableVersionRange()[0] + "-" +
-                                    upgrade.getUpgradableVersionRange()[1] + " to " + upgrade.getUpgradedVersion());
-
-                            txn.start();
-
-                            Connection conn;
-                            try {
-                                conn = txn.getConnection();
-                            } catch (SQLException e) {
-                                String errorMessage = "Unable to cleanup the database";
-                                s_logger.error(errorMessage, e);
-                                throw new CloudRuntimeException(errorMessage, e);
-                            }
-
-                            File[] scripts = upgrade.getCleanupScripts();
-                            if (scripts != null) {
-                                for (File script : scripts) {
-                                    runScript(conn, script);
-                                    s_logger.debug("Cleanup script " + script.getAbsolutePath() + " is executed successfully");
-                                }
-                            }
-                            txn.commit();
-                        }
-
-                        txn.start();
-                        version.setStep(Step.Complete);
-                        s_logger.debug("Upgrade completed for version " + upgradedVersion);
-                        version.setUpdated(new Date());
-                        _dao.update(version.getId(), version);
-                        txn.commit();
-                    }
-                } finally {
-                    txn.close();
+                    conn = txn.getConnection();
+                } catch (SQLException e) {
+                    s_logger.error("Unable to cleanup the database", e);
+                    throw new CloudRuntimeException("Unable to cleanup the database", e);
                 }
+
+                File[] scripts = upgrade.getCleanupScripts();
+                if (scripts != null) {
+                    for (File script : scripts) {
+                        runScript(conn, script);
+                        s_logger.debug("Cleanup script " + script.getAbsolutePath() + " is executed successfully");
+                    }
+                }
+                txn.commit();
+
+                txn.start();
+                version.setStep(Step.Complete);
+                version.setUpdated(new Date());
+                _dao.update(version.getId(), version);
+                txn.commit();
+                s_logger.debug("Upgrade completed for version " + version.getVersion());
+            } finally {
+                txn.close();
             }
         }
-
     }
 
     @Override
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade452to460.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade452to460.java
index 6b78a7e..f699977 100644
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade452to460.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade452to460.java
@@ -23,15 +23,10 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 import org.apache.log4j.Logger;
 
-import com.cloud.hypervisor.Hypervisor;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.script.Script;
 
@@ -65,7 +60,6 @@
 
     @Override
     public void performDataMigration(final Connection conn) {
-        updateSystemVmTemplates(conn);
         updateVMInstanceUserId(conn);
         addIndexForVMInstance(conn);
     }
@@ -170,174 +164,4 @@
 
         return new File[] { new File(script) };
     }
-
-    @SuppressWarnings("serial")
-    private void updateSystemVmTemplates(final Connection conn) {
-        s_logger.debug("Updating System Vm template IDs");
-        // Get all hypervisors in use
-        final Set<Hypervisor.HypervisorType> hypervisorsListInUse = new HashSet<Hypervisor.HypervisorType>();
-        try (PreparedStatement pstmt = conn.prepareStatement("select distinct(hypervisor_type) from `cloud`.`cluster` where removed is null"); ResultSet rs = pstmt.executeQuery()) {
-            while (rs.next()) {
-                switch (Hypervisor.HypervisorType.getType(rs.getString(1))) {
-                case XenServer:
-                    hypervisorsListInUse.add(Hypervisor.HypervisorType.XenServer);
-                    break;
-                case KVM:
-                    hypervisorsListInUse.add(Hypervisor.HypervisorType.KVM);
-                    break;
-                case VMware:
-                    hypervisorsListInUse.add(Hypervisor.HypervisorType.VMware);
-                    break;
-                case Hyperv:
-                    hypervisorsListInUse.add(Hypervisor.HypervisorType.Hyperv);
-                    break;
-                case LXC:
-                    hypervisorsListInUse.add(Hypervisor.HypervisorType.LXC);
-                    break;
-                case Ovm3:
-                    hypervisorsListInUse.add(Hypervisor.HypervisorType.Ovm3);
-                    break;
-                default: // no action on cases Any, BareMetal, None, Ovm,
-                    // Parralels, Simulator and VirtualBox:
-                    break;
-                }
-            }
-        } catch (final SQLException e) {
-            s_logger.error("updateSystemVmTemplates:Exception while getting hypervisor types from clusters: " + e.getMessage());
-            throw new CloudRuntimeException("updateSystemVmTemplates:Exception while getting hypervisor types from clusters", e);
-        }
-
-        final Map<Hypervisor.HypervisorType, String> NewTemplateNameList = new HashMap<Hypervisor.HypervisorType, String>() {
-            {
-                put(Hypervisor.HypervisorType.XenServer, "systemvm-xenserver-4.6");
-                put(Hypervisor.HypervisorType.VMware, "systemvm-vmware-4.6");
-                put(Hypervisor.HypervisorType.KVM, "systemvm-kvm-4.6");
-                put(Hypervisor.HypervisorType.LXC, "systemvm-lxc-4.6");
-                put(Hypervisor.HypervisorType.Hyperv, "systemvm-hyperv-4.6");
-                put(Hypervisor.HypervisorType.Ovm3, "systemvm-ovm3-4.6");
-            }
-        };
-
-        final Map<Hypervisor.HypervisorType, String> routerTemplateConfigurationNames = new HashMap<Hypervisor.HypervisorType, String>() {
-            {
-                put(Hypervisor.HypervisorType.XenServer, "router.template.xenserver");
-                put(Hypervisor.HypervisorType.VMware, "router.template.vmware");
-                put(Hypervisor.HypervisorType.KVM, "router.template.kvm");
-                put(Hypervisor.HypervisorType.LXC, "router.template.lxc");
-                put(Hypervisor.HypervisorType.Hyperv, "router.template.hyperv");
-                put(Hypervisor.HypervisorType.Ovm3, "router.template.ovm3");
-            }
-        };
-
-        final Map<Hypervisor.HypervisorType, String> newTemplateUrl = new HashMap<Hypervisor.HypervisorType, String>() {
-            {
-                put(Hypervisor.HypervisorType.XenServer, "http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-xen.vhd.bz2");
-                put(Hypervisor.HypervisorType.VMware, "http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-vmware.ova");
-                put(Hypervisor.HypervisorType.KVM, "http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-kvm.qcow2.bz2");
-                put(Hypervisor.HypervisorType.LXC, "http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-kvm.qcow2.bz2");
-                put(Hypervisor.HypervisorType.Hyperv, "http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-hyperv.vhd.zip");
-                put(Hypervisor.HypervisorType.Ovm3, "http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-ovm.raw.bz2");
-            }
-        };
-
-        final Map<Hypervisor.HypervisorType, String> newTemplateChecksum = new HashMap<Hypervisor.HypervisorType, String>() {
-            {
-                put(Hypervisor.HypervisorType.XenServer, "8886f554a499ec5405b6f203d9d36460");
-                put(Hypervisor.HypervisorType.VMware, "4b415224fe00b258f66cad9fce9f73fc");
-                put(Hypervisor.HypervisorType.KVM, "c059b0d051e0cd6fbe9d5d4fc40c7e5d");
-                put(Hypervisor.HypervisorType.LXC, "c059b0d051e0cd6fbe9d5d4fc40c7e5d");
-                put(Hypervisor.HypervisorType.Hyperv, "53e24bddfa56ea3139ed37af4b519013");
-                put(Hypervisor.HypervisorType.Ovm3, "c8577d27b2daafb2d9a4ed307ce2f00f");
-            }
-        };
-
-        for (final Map.Entry<Hypervisor.HypervisorType, String> hypervisorAndTemplateName : NewTemplateNameList.entrySet()) {
-            s_logger.debug("Updating " + hypervisorAndTemplateName.getKey() + " System Vms");
-            try (PreparedStatement pstmt = conn.prepareStatement("select id from `cloud`.`vm_template` where name = ? and removed is null order by id desc limit 1")) {
-                // Get 4.6.0 system Vm template Id for corresponding hypervisor
-                long templateId = -1;
-                pstmt.setString(1, hypervisorAndTemplateName.getValue());
-                try (ResultSet rs = pstmt.executeQuery()) {
-                    if (rs.next()) {
-                        templateId = rs.getLong(1);
-                    }
-                } catch (final SQLException e) {
-                    s_logger.error("updateSystemVmTemplates:Exception while getting ids of templates: " + e.getMessage());
-                    throw new CloudRuntimeException("updateSystemVmTemplates:Exception while getting ids of templates", e);
-                }
-
-                // change template type to SYSTEM
-                if (templateId != -1) {
-                    try (PreparedStatement templ_type_pstmt = conn.prepareStatement("update `cloud`.`vm_template` set type='SYSTEM' where id = ?");) {
-                        templ_type_pstmt.setLong(1, templateId);
-                        templ_type_pstmt.executeUpdate();
-                    } catch (final SQLException e) {
-                        s_logger.error("updateSystemVmTemplates:Exception while updating template with id " + templateId + " to be marked as 'system': " + e.getMessage());
-                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception while updating template with id " + templateId + " to be marked as 'system'", e);
-                    }
-                    // update template ID of system Vms
-                    try (PreparedStatement update_templ_id_pstmt = conn
-                            .prepareStatement("update `cloud`.`vm_instance` set vm_template_id = ? where type <> 'User' and hypervisor_type = ?");) {
-                        update_templ_id_pstmt.setLong(1, templateId);
-                        update_templ_id_pstmt.setString(2, hypervisorAndTemplateName.getKey().toString());
-                        update_templ_id_pstmt.executeUpdate();
-                    } catch (final Exception e) {
-                        s_logger.error("updateSystemVmTemplates:Exception while setting template for " + hypervisorAndTemplateName.getKey().toString() + " to " + templateId
-                                + ": " + e.getMessage());
-                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception while setting template for " + hypervisorAndTemplateName.getKey().toString() + " to "
-                                + templateId, e);
-                    }
-
-                    // Change value of global configuration parameter
-                    // router.template.* for the corresponding hypervisor
-                    try (PreparedStatement update_pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value = ? WHERE name = ?");) {
-                        update_pstmt.setString(1, hypervisorAndTemplateName.getValue());
-                        update_pstmt.setString(2, routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()));
-                        update_pstmt.executeUpdate();
-                    } catch (final SQLException e) {
-                        s_logger.error("updateSystemVmTemplates:Exception while setting " + routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()) + " to "
-                                + hypervisorAndTemplateName.getValue() + ": " + e.getMessage());
-                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception while setting "
-                                + routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()) + " to " + hypervisorAndTemplateName.getValue(), e);
-                    }
-
-                    // Change value of global configuration parameter
-                    // minreq.sysvmtemplate.version for the ACS version
-                    try (PreparedStatement update_pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value = ? WHERE name = ?");) {
-                        update_pstmt.setString(1, getUpgradedVersion());
-                        update_pstmt.setString(2, "minreq.sysvmtemplate.version");
-                        update_pstmt.executeUpdate();
-                    } catch (final SQLException e) {
-                        s_logger.error("updateSystemVmTemplates:Exception while setting 'minreq.sysvmtemplate.version' to 4.6.0: " + e.getMessage());
-                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception while setting 'minreq.sysvmtemplate.version' to 4.6.0", e);
-                    }
-                } else {
-                    if (hypervisorsListInUse.contains(hypervisorAndTemplateName.getKey())) {
-                        throw new CloudRuntimeException(getUpgradedVersion() + hypervisorAndTemplateName.getKey() + " SystemVm template not found. Cannot upgrade system Vms");
-                    } else {
-                        s_logger.warn(getUpgradedVersion() + hypervisorAndTemplateName.getKey() + " SystemVm template not found. " + hypervisorAndTemplateName.getKey()
-                                + " hypervisor is not used, so not failing upgrade");
-                        // Update the latest template URLs for corresponding
-                        // hypervisor
-                        try (PreparedStatement update_templ_url_pstmt = conn
-                                .prepareStatement("UPDATE `cloud`.`vm_template` SET url = ? , checksum = ? WHERE hypervisor_type = ? AND type = 'SYSTEM' AND removed is null order by id desc limit 1");) {
-                            update_templ_url_pstmt.setString(1, newTemplateUrl.get(hypervisorAndTemplateName.getKey()));
-                            update_templ_url_pstmt.setString(2, newTemplateChecksum.get(hypervisorAndTemplateName.getKey()));
-                            update_templ_url_pstmt.setString(3, hypervisorAndTemplateName.getKey().toString());
-                            update_templ_url_pstmt.executeUpdate();
-                        } catch (final SQLException e) {
-                            s_logger.error("updateSystemVmTemplates:Exception while updating 'url' and 'checksum' for hypervisor type "
-                                    + hypervisorAndTemplateName.getKey().toString() + ": " + e.getMessage());
-                            throw new CloudRuntimeException("updateSystemVmTemplates:Exception while updating 'url' and 'checksum' for hypervisor type "
-                                    + hypervisorAndTemplateName.getKey().toString(), e);
-                        }
-                    }
-                }
-            } catch (final SQLException e) {
-                s_logger.error("updateSystemVmTemplates:Exception while getting ids of templates: " + e.getMessage());
-                throw new CloudRuntimeException("updateSystemVmTemplates:Exception while getting ids of templates", e);
-            }
-        }
-        s_logger.debug("Updating System Vm Template IDs Complete");
-    }
 }
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade4930to41000.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade4930to41000.java
new file mode 100644
index 0000000..53a910e
--- /dev/null
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade4930to41000.java
@@ -0,0 +1,510 @@
+// 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.upgrade.dao;
+
+import com.cloud.hypervisor.Hypervisor;
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.script.Script;
+import org.apache.log4j.Logger;
+
+import java.io.File;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+public class Upgrade4930to41000 implements DbUpgrade {
+    final static Logger LOG = Logger.getLogger(Upgrade4930to41000.class);
+
+    public static class MemoryValues {
+        long max;
+        long min;
+
+        public MemoryValues(final long min, final long max) {
+            this.min = min * 1024 * 1024;
+            this.max = max * 1024 * 1024;
+        }
+
+        public long getMax() {
+            return max;
+        }
+
+        public long getMin() {
+            return min;
+        }
+    }
+
+    @Override
+    public String[] getUpgradableVersionRange() {
+        return new String[] {"4.9.3.0", "4.10.0.0"};
+    }
+
+    @Override
+    public String getUpgradedVersion() {
+        return "4.10.0.0";
+    }
+
+    @Override
+    public boolean supportsRollingUpgrade() {
+        return false;
+    }
+
+    @Override
+    public File[] getPrepareScripts() {
+        String script = Script.findScript("", "db/schema-4930to41000.sql");
+        if (script == null) {
+            throw new CloudRuntimeException("Unable to find db/schema-4930to41000.sql");
+        }
+        return new File[] {new File(script)};
+    }
+
+    @Override
+    public void performDataMigration(Connection conn) {
+        updateSystemVmTemplates(conn);
+        populateGuestOsDetails(conn);
+        updateSourceCidrs(conn);
+    }
+
+    @SuppressWarnings("serial")
+    private void updateSystemVmTemplates(final Connection conn) {
+        LOG.debug("Updating System Vm template IDs");
+        // Get all hypervisors in use
+        final Set<Hypervisor.HypervisorType> hypervisorsListInUse = new HashSet<Hypervisor.HypervisorType>();
+        try (PreparedStatement pstmt = conn.prepareStatement("select distinct(hypervisor_type) from `cloud`.`cluster` where removed is null"); ResultSet rs = pstmt.executeQuery()) {
+            while (rs.next()) {
+                switch (Hypervisor.HypervisorType.getType(rs.getString(1))) {
+                    case XenServer:
+                        hypervisorsListInUse.add(Hypervisor.HypervisorType.XenServer);
+                        break;
+                    case KVM:
+                        hypervisorsListInUse.add(Hypervisor.HypervisorType.KVM);
+                        break;
+                    case VMware:
+                        hypervisorsListInUse.add(Hypervisor.HypervisorType.VMware);
+                        break;
+                    case Hyperv:
+                        hypervisorsListInUse.add(Hypervisor.HypervisorType.Hyperv);
+                        break;
+                    case LXC:
+                        hypervisorsListInUse.add(Hypervisor.HypervisorType.LXC);
+                        break;
+                    case Ovm3:
+                        hypervisorsListInUse.add(Hypervisor.HypervisorType.Ovm3);
+                        break;
+                    default: // no action on cases Any, BareMetal, None, Ovm,
+                        // Parralels, Simulator and VirtualBox:
+                        break;
+                }
+            }
+        } catch (final SQLException e) {
+            LOG.error("updateSystemVmTemplates:Exception while getting hypervisor types from clusters: " + e.getMessage());
+            throw new CloudRuntimeException("updateSystemVmTemplates:Exception while getting hypervisor types from clusters", e);
+        }
+
+        final Map<Hypervisor.HypervisorType, String> NewTemplateNameList = new HashMap<Hypervisor.HypervisorType, String>() {
+            {
+                put(Hypervisor.HypervisorType.XenServer, "systemvm-xenserver-4.10");
+                put(Hypervisor.HypervisorType.VMware, "systemvm-vmware-4.10");
+                put(Hypervisor.HypervisorType.KVM, "systemvm-kvm-4.10");
+                put(Hypervisor.HypervisorType.Hyperv, "systemvm-hyperv-4.10");
+                put(Hypervisor.HypervisorType.LXC, "systemvm-lxc-4.10");
+                put(Hypervisor.HypervisorType.Ovm3, "systemvm-ovm3-4.10");
+            }
+        };
+
+        final Map<Hypervisor.HypervisorType, String> routerTemplateConfigurationNames = new HashMap<Hypervisor.HypervisorType, String>() {
+            {
+                put(Hypervisor.HypervisorType.XenServer, "router.template.xenserver");
+                put(Hypervisor.HypervisorType.VMware, "router.template.vmware");
+                put(Hypervisor.HypervisorType.KVM, "router.template.kvm");
+                put(Hypervisor.HypervisorType.Hyperv, "router.template.hyperv");
+                put(Hypervisor.HypervisorType.LXC, "router.template.lxc");
+                put(Hypervisor.HypervisorType.Ovm3, "router.template.ovm3");
+            }
+        };
+
+        final Map<Hypervisor.HypervisorType, String> newTemplateUrl = new HashMap<Hypervisor.HypervisorType, String>() {
+            {
+                put(Hypervisor.HypervisorType.XenServer, "https://download.cloudstack.org/systemvm/4.10/systemvm64template-master-4.10.0-xen.vhd.bz2");
+                put(Hypervisor.HypervisorType.VMware, "https://download.cloudstack.org/systemvm/4.10/systemvm64template-master-4.10.0-vmware.ova");
+                put(Hypervisor.HypervisorType.KVM, "https://download.cloudstack.org/systemvm/4.10/systemvm64template-master-4.10.0-kvm.qcow2.bz2");
+                put(Hypervisor.HypervisorType.Hyperv, "https://download.cloudstack.org/systemvm/4.10/systemvm64template-master-4.10.0-hyperv.vhd.zip");
+                put(Hypervisor.HypervisorType.LXC, "https://download.cloudstack.org/systemvm/4.10/systemvm64template-master-4.10.0-kvm.qcow2.bz2");
+                put(Hypervisor.HypervisorType.Ovm3, "https://download.cloudstack.org/systemvm/4.10/systemvm64template-master-4.10.0-ovm.raw.bz2");
+            }
+        };
+
+        final Map<Hypervisor.HypervisorType, String> newTemplateChecksum = new HashMap<Hypervisor.HypervisorType, String>() {
+            {
+                put(Hypervisor.HypervisorType.XenServer, "908c28a8d4c232f960e0f84af7f86c80");
+                put(Hypervisor.HypervisorType.VMware, "970bfb070a80bd74820881d8149643c1");
+                put(Hypervisor.HypervisorType.KVM, "bc2eac46f16a2ece6c19d4b89db41de3");
+                put(Hypervisor.HypervisorType.Hyperv, "0adb35bd9f92e80d3fc63fcdd9bb55e5");
+                put(Hypervisor.HypervisorType.LXC, "bc2eac46f16a2ece6c19d4b89db41de3");
+                put(Hypervisor.HypervisorType.Ovm3, "94a41f0a5361933813bb34a51df56f56");
+            }
+        };
+
+        for (final Map.Entry<Hypervisor.HypervisorType, String> hypervisorAndTemplateName : NewTemplateNameList.entrySet()) {
+            LOG.debug("Updating " + hypervisorAndTemplateName.getKey() + " System Vms");
+            try (PreparedStatement pstmt = conn.prepareStatement("select id from `cloud`.`vm_template` where name = ? and removed is null order by id desc limit 1")) {
+                // Get 4.10.0 system Vm template Id for corresponding hypervisor
+                long templateId = -1;
+                pstmt.setString(1, hypervisorAndTemplateName.getValue());
+                try (ResultSet rs = pstmt.executeQuery()) {
+                    if (rs.next()) {
+                        templateId = rs.getLong(1);
+                    }
+                } catch (final SQLException e) {
+                    LOG.error("updateSystemVmTemplates:Exception while getting ids of templates: " + e.getMessage());
+                    throw new CloudRuntimeException("updateSystemVmTemplates:Exception while getting ids of templates", e);
+                }
+
+                // change template type to SYSTEM
+                if (templateId != -1) {
+                    try (PreparedStatement templ_type_pstmt = conn.prepareStatement("update `cloud`.`vm_template` set type='SYSTEM' where id = ?");) {
+                        templ_type_pstmt.setLong(1, templateId);
+                        templ_type_pstmt.executeUpdate();
+                    } catch (final SQLException e) {
+                        LOG.error("updateSystemVmTemplates:Exception while updating template with id " + templateId + " to be marked as 'system': " + e.getMessage());
+                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception while updating template with id " + templateId + " to be marked as 'system'", e);
+                    }
+                    // update template ID of system Vms
+                    try (PreparedStatement update_templ_id_pstmt = conn
+                            .prepareStatement("update `cloud`.`vm_instance` set vm_template_id = ? where type <> 'User' and hypervisor_type = ?");) {
+                        update_templ_id_pstmt.setLong(1, templateId);
+                        update_templ_id_pstmt.setString(2, hypervisorAndTemplateName.getKey().toString());
+                        update_templ_id_pstmt.executeUpdate();
+                    } catch (final Exception e) {
+                        LOG.error("updateSystemVmTemplates:Exception while setting template for " + hypervisorAndTemplateName.getKey().toString() + " to " + templateId
+                                + ": " + e.getMessage());
+                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception while setting template for " + hypervisorAndTemplateName.getKey().toString() + " to "
+                                + templateId, e);
+                    }
+
+                    // Change value of global configuration parameter
+                    // router.template.* for the corresponding hypervisor
+                    try (PreparedStatement update_pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value = ? WHERE name = ?");) {
+                        update_pstmt.setString(1, hypervisorAndTemplateName.getValue());
+                        update_pstmt.setString(2, routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()));
+                        update_pstmt.executeUpdate();
+                    } catch (final SQLException e) {
+                        LOG.error("updateSystemVmTemplates:Exception while setting " + routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()) + " to "
+                                + hypervisorAndTemplateName.getValue() + ": " + e.getMessage());
+                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception while setting "
+                                + routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()) + " to " + hypervisorAndTemplateName.getValue(), e);
+                    }
+
+                    // Change value of global configuration parameter
+                    // minreq.sysvmtemplate.version for the ACS version
+                    try (PreparedStatement update_pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value = ? WHERE name = ?");) {
+                        update_pstmt.setString(1, "4.10.0");
+                        update_pstmt.setString(2, "minreq.sysvmtemplate.version");
+                        update_pstmt.executeUpdate();
+                    } catch (final SQLException e) {
+                        LOG.error("updateSystemVmTemplates:Exception while setting 'minreq.sysvmtemplate.version' to 4.10.0: " + e.getMessage());
+                        throw new CloudRuntimeException("updateSystemVmTemplates:Exception while setting 'minreq.sysvmtemplate.version' to 4.10.0", e);
+                    }
+                } else {
+                    if (hypervisorsListInUse.contains(hypervisorAndTemplateName.getKey())) {
+                        throw new CloudRuntimeException(getUpgradedVersion() + hypervisorAndTemplateName.getKey() + " SystemVm template not found. Cannot upgrade system Vms");
+                    } else {
+                        LOG.warn(getUpgradedVersion() + hypervisorAndTemplateName.getKey() + " SystemVm template not found. " + hypervisorAndTemplateName.getKey()
+                                + " hypervisor is not used, so not failing upgrade");
+                        // Update the latest template URLs for corresponding
+                        // hypervisor
+                        try (PreparedStatement update_templ_url_pstmt = conn
+                                .prepareStatement("UPDATE `cloud`.`vm_template` SET url = ? , checksum = ? WHERE hypervisor_type = ? AND type = 'SYSTEM' AND removed is null order by id desc limit 1");) {
+                            update_templ_url_pstmt.setString(1, newTemplateUrl.get(hypervisorAndTemplateName.getKey()));
+                            update_templ_url_pstmt.setString(2, newTemplateChecksum.get(hypervisorAndTemplateName.getKey()));
+                            update_templ_url_pstmt.setString(3, hypervisorAndTemplateName.getKey().toString());
+                            update_templ_url_pstmt.executeUpdate();
+                        } catch (final SQLException e) {
+                            LOG.error("updateSystemVmTemplates:Exception while updating 'url' and 'checksum' for hypervisor type "
+                                    + hypervisorAndTemplateName.getKey().toString() + ": " + e.getMessage());
+                            throw new CloudRuntimeException("updateSystemVmTemplates:Exception while updating 'url' and 'checksum' for hypervisor type "
+                                    + hypervisorAndTemplateName.getKey().toString(), e);
+                        }
+                    }
+                }
+            } catch (final SQLException e) {
+                LOG.error("updateSystemVmTemplates:Exception while getting ids of templates: " + e.getMessage());
+                throw new CloudRuntimeException("updateSystemVmTemplates:Exception while getting ids of templates", e);
+            }
+        }
+        LOG.debug("Updating System Vm Template IDs Complete");
+    }
+
+
+    @Override
+    public File[] getCleanupScripts() {
+        String script = Script.findScript("", "db/schema-4930to41000-cleanup.sql");
+        if (script == null) {
+            throw new CloudRuntimeException("Unable to find db/schema-4930to41000-cleanup.sql");
+        }
+        return new File[] {new File(script)};
+    }
+
+    private void populateGuestOsDetails(Connection conn){
+        final HashMap<String, MemoryValues> xenServerGuestOsMemoryMap = new HashMap<String, MemoryValues>(70);
+
+        xenServerGuestOsMemoryMap.put("CentOS 4.5 (32-bit)", new MemoryValues(256l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 4.6 (32-bit)", new MemoryValues(256l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 4.7 (32-bit)", new MemoryValues(256l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 4.8 (32-bit)", new MemoryValues(256l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.0 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.0 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.1 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.1 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.2 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.3 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.4 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.5 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.6 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.6 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.7 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.7 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.8 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.8 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.9 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.9 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.10 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 5.10 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6 (32-bit)", new MemoryValues(512l, 8 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6 (64-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.0 (32-bit)", new MemoryValues(512l, 8 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.0 (64-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.1 (32-bit)", new MemoryValues(512l, 8 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.1 (64-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.5 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.6 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.6 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.7 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 6.7 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 7", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 7.1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 7.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CentOS 7.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.0 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.0 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.1 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.2 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.3 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.4 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.5 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.5 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.6 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.6 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.7 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.7 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.8 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.8 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.9 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.9 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.10 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.10 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.0 (32-bit)", new MemoryValues(512l, 8 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.0 (64-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.1 (32-bit)", new MemoryValues(512l, 8 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.1 (64-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.5 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 4.5 (32-bit)", new MemoryValues(256l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 4.6 (32-bit)", new MemoryValues(256l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 4.7 (32-bit)", new MemoryValues(256l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 4.8 (32-bit)", new MemoryValues(256l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.0 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.0 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.1 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.1 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.2 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.3 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.4 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.5 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.6 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.6 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.7 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.7 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.8 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.8 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.9 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.9 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.10 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.10 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6 (32-bit)", new MemoryValues(512l, 8 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6 (64-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.0 (32-bit)", new MemoryValues(512l, 8 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.0 (64-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.1 (32-bit)", new MemoryValues(512l, 8 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.1 (64-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.5 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.6 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.6 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.7 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.7 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 7", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 7.1", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 7.2", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Debian GNU/Linux 5.0 (64-bit)", new MemoryValues(128l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Debian GNU/Linux 5(64-bit)", new MemoryValues(128l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Debian GNU/Linux 6(32-bit)", new MemoryValues(128l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Debian GNU/Linux 6(64-bit)", new MemoryValues(128l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Debian GNU/Linux 7(32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Debian GNU/Linux 7(64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Debian GNU/Linux 8(32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Debian GNU/Linux 8(64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10(32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10(64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP1 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP1 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 12 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 12 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows 7 (32-bit)", new MemoryValues(1024l, 4 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows 7 (64-bit)", new MemoryValues(2 * 1024l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows 8 (32-bit)", new MemoryValues(1024l, 4 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows 8 (64-bit)", new MemoryValues(2 * 1024l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2003 Enterprise Edition(32-bit)", new MemoryValues(256l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2003 Enterprise Edition(64-bit)", new MemoryValues(256l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2003 SP2 (32-bit)", new MemoryValues(256l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2003 SP2 (64-bit)", new MemoryValues(256l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2008 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2008 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2008 SP2 (32-bit)", new MemoryValues(512l, 64 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2008 SP2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2008 R2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2008 R2 SP1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2012 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Server 2012 R2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Vista (32-bit)", new MemoryValues(1024l, 4 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Vista (64-bit)", new MemoryValues(1024l, 4 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows Vista SP2 (32-bit)", new MemoryValues(1024l, 4 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows XP (32-bit)", new MemoryValues(256l, 4 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows XP (64-bit)", new MemoryValues(256l, 4 * 1024l));
+        xenServerGuestOsMemoryMap.put("Windows XP SP3 (32-bit)", new MemoryValues(256l, 4 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 10.04 (32-bit)", new MemoryValues(128l, 512l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 10.04 (64-bit)", new MemoryValues(128l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 10.10 (32-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 10.10 (64-bit)", new MemoryValues(512l, 16 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 12.04 (32-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 12.04 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 14.04 (32-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 14.04 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 16.04 (32-bit)", new MemoryValues(512l, 32 * 1024l));
+        xenServerGuestOsMemoryMap.put("Ubuntu 16.04 (64-bit)", new MemoryValues(512l, 128 * 1024l));
+        xenServerGuestOsMemoryMap.put("CoreOS", new MemoryValues(512l, 128 * 1024l));
+
+        final String insertDynamicMemoryVal = "insert into guest_os_details(guest_os_id, name, value, display) select id,?, ?, 0 from guest_os where display_name = ?";
+
+
+        PreparedStatement ps = null;
+        try{
+            ps = conn.prepareStatement(insertDynamicMemoryVal);
+
+            for (String key: xenServerGuestOsMemoryMap.keySet()){
+                ps.setString(1,"xenserver.dynamicMin");
+                ps.setString(2,String.valueOf(xenServerGuestOsMemoryMap.get(key).getMin()));
+                ps.setString(3, key);
+                ps.executeUpdate();
+
+                ps.setString(1,"xenserver.dynamicMax");
+                ps.setString(2,String.valueOf(xenServerGuestOsMemoryMap.get(key).getMax()));
+                ps.setString(3, key);
+                ps.executeUpdate();
+            }
+
+
+        }catch(SQLException e){
+            throw new CloudRuntimeException("Unable to update guestOs details", e);
+        }finally {
+            try {
+                if (ps != null && !ps.isClosed())  {
+                    ps.close();
+                }
+            } catch (SQLException e) {
+            }
+        }
+
+    }
+
+    private void updateSourceCidrs(Connection conn){
+        //with ipset the value for source cidr 0.0.0.0/0 can't be added in ipset. So changing it to network cidr.
+        try(PreparedStatement pstmt = conn.prepareStatement("UPDATE `cloud`.`firewall_rules_cidrs` AS s, (SELECT IFNULL(networks.network_cidr,networks.cidr) cidr," +
+                "`firewall_rules_cidrs`.`id`, `firewall_rules`.`traffic_type` "+
+                "FROM `cloud`.`networks`, `cloud`.`firewall_rules`,`cloud`.`firewall_rules_cidrs` WHERE `cloud`.`networks`.`id`=`cloud`.`firewall_rules`.`network_id` " +
+                "AND `cloud`.`firewall_rules`.`id` = `cloud`.`firewall_rules_cidrs`.`firewall_rule_id`) AS p " +
+                "SET `s`.`source_cidr` = `p`.`cidr` WHERE `s`.`source_cidr`=\"0.0.0.0/0\" AND `s`.`id`=`p`.`id` AND `p`.`traffic_type`=\"Egress\" ;")){
+            pstmt.execute();
+        }catch (SQLException e) {
+            throw new CloudRuntimeException("updateSourceCidrs:Exception:" + e.getMessage(), e);
+        }
+    }
+}
diff --git a/engine/schema/src/com/cloud/vm/DomainRouterVO.java b/engine/schema/src/com/cloud/vm/DomainRouterVO.java
index 2596d24..2a7aa49 100644
--- a/engine/schema/src/com/cloud/vm/DomainRouterVO.java
+++ b/engine/schema/src/com/cloud/vm/DomainRouterVO.java
@@ -69,6 +69,11 @@
     @Column(name = "vpc_id")
     private Long vpcId;
 
+
+    @Column(name= "update_state")
+    @Enumerated(EnumType.STRING)
+    private UpdateState updateState;
+
     public DomainRouterVO(final long id, final long serviceOfferingId, final long elementId, final String name, final long templateId, final HypervisorType hypervisorType, final long guestOSId, final long domainId,
             final long accountId, final long userId, final boolean isRedundantRouter, final RedundantState redundantState, final boolean haEnabled, final boolean stopPending,
             final Long vpcId) {
@@ -193,4 +198,13 @@
         return vpcId;
     }
 
+    public UpdateState getUpdateState() {
+        return updateState;
+    }
+
+    public void setUpdateState(UpdateState updateState) {
+        this.updateState = updateState;
+    }
+
+
 }
diff --git a/engine/schema/src/com/cloud/vm/UserVmCloneSettingVO.java b/engine/schema/src/com/cloud/vm/UserVmCloneSettingVO.java
index 91b4918..adca686 100644
--- a/engine/schema/src/com/cloud/vm/UserVmCloneSettingVO.java
+++ b/engine/schema/src/com/cloud/vm/UserVmCloneSettingVO.java
@@ -46,4 +46,8 @@
     public String getCloneType() {
         return this.cloneType;
     }
+
+    public void setCloneType(String cloneType) {
+        this.cloneType = cloneType;
+    }
 }
diff --git a/engine/schema/src/com/cloud/vm/UserVmDetailVO.java b/engine/schema/src/com/cloud/vm/UserVmDetailVO.java
old mode 100644
new mode 100755
index 2b169a3..81bb6dd
--- a/engine/schema/src/com/cloud/vm/UserVmDetailVO.java
+++ b/engine/schema/src/com/cloud/vm/UserVmDetailVO.java
@@ -80,4 +80,11 @@
         return display;
     }
 
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
 }
diff --git a/engine/schema/src/com/cloud/vm/dao/NicDao.java b/engine/schema/src/com/cloud/vm/dao/NicDao.java
index 2c7895a..d31a165 100644
--- a/engine/schema/src/com/cloud/vm/dao/NicDao.java
+++ b/engine/schema/src/com/cloud/vm/dao/NicDao.java
@@ -74,4 +74,8 @@
     List<NicVO> listByNetworkIdTypeAndGatewayAndBroadcastUri(long networkId, VirtualMachine.Type vmType, String gateway, URI broadcastUri);
 
     int countNicsForStartingVms(long networkId);
+
+    NicVO getControlNicForVM(long vmId);
+
+    List<NicVO> listByVmIdAndKeyword(long instanceId, String keyword);
 }
diff --git a/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java
index f27088a..a5edf58 100644
--- a/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java
+++ b/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java
@@ -60,12 +60,13 @@
         AllFieldsSearch.and("network", AllFieldsSearch.entity().getNetworkId(), Op.EQ);
         AllFieldsSearch.and("gateway", AllFieldsSearch.entity().getIPv4Gateway(), Op.EQ);
         AllFieldsSearch.and("vmType", AllFieldsSearch.entity().getVmType(), Op.EQ);
-        AllFieldsSearch.and("address", AllFieldsSearch.entity().getIPv4Address(), Op.EQ);
+        AllFieldsSearch.and("address", AllFieldsSearch.entity().getIPv4Address(), Op.LIKE);
         AllFieldsSearch.and("isDefault", AllFieldsSearch.entity().isDefaultNic(), Op.EQ);
         AllFieldsSearch.and("broadcastUri", AllFieldsSearch.entity().getBroadcastUri(), Op.EQ);
         AllFieldsSearch.and("secondaryip", AllFieldsSearch.entity().getSecondaryIp(), Op.EQ);
         AllFieldsSearch.and("nicid", AllFieldsSearch.entity().getId(), Op.EQ);
         AllFieldsSearch.and("strategy", AllFieldsSearch.entity().getReservationStrategy(), Op.EQ);
+        AllFieldsSearch.and("reserverName",AllFieldsSearch.entity().getReserver(),Op.EQ);
         AllFieldsSearch.done();
 
         IpSearch = createSearchBuilder(String.class);
@@ -199,6 +200,14 @@
     }
 
     @Override
+    public NicVO getControlNicForVM(long vmId){
+        SearchCriteria<NicVO> sc = AllFieldsSearch.create();
+        sc.setParameters("instance", vmId);
+        sc.setParameters("reserverName", "ControlNetworkGuru");
+        return findOneBy(sc);
+    }
+
+    @Override
     public NicVO findNonReleasedByInstanceIdAndNetworkId(long networkId, long instanceId) {
         SearchCriteria<NicVO> sc = NonReleasedSearch.create();
         sc.setParameters("network", networkId);
@@ -302,4 +311,12 @@
         List<Integer> results = customSearch(sc, null);
         return results.get(0);
     }
+
+    @Override
+    public List<NicVO> listByVmIdAndKeyword(long instanceId, String keyword) {
+        SearchCriteria<NicVO> sc = AllFieldsSearch.create();
+        sc.setParameters("instance", instanceId);
+        sc.setParameters("address", "%" + keyword + "%");
+        return listBy(sc);
+    }
 }
diff --git a/engine/schema/src/com/cloud/vm/dao/NicSecondaryIpDao.java b/engine/schema/src/com/cloud/vm/dao/NicSecondaryIpDao.java
index 39b8470..2a0f751 100644
--- a/engine/schema/src/com/cloud/vm/dao/NicSecondaryIpDao.java
+++ b/engine/schema/src/com/cloud/vm/dao/NicSecondaryIpDao.java
@@ -53,4 +53,6 @@
     List<String> getSecondaryIpAddressesForNic(long nicId);
 
     Long countByNicId(long nicId);
+
+    List<NicSecondaryIpVO> listSecondaryIpUsingKeyword(long nicId, String keyword);
 }
diff --git a/engine/schema/src/com/cloud/vm/dao/NicSecondaryIpDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/NicSecondaryIpDaoImpl.java
index 8cd6195..55c3c8a 100644
--- a/engine/schema/src/com/cloud/vm/dao/NicSecondaryIpDaoImpl.java
+++ b/engine/schema/src/com/cloud/vm/dao/NicSecondaryIpDaoImpl.java
@@ -40,7 +40,7 @@
         AllFieldsSearch = createSearchBuilder();
         AllFieldsSearch.and("instanceId", AllFieldsSearch.entity().getVmId(), Op.EQ);
         AllFieldsSearch.and("network", AllFieldsSearch.entity().getNetworkId(), Op.EQ);
-        AllFieldsSearch.and("address", AllFieldsSearch.entity().getIp4Address(), Op.EQ);
+        AllFieldsSearch.and("address", AllFieldsSearch.entity().getIp4Address(), Op.LIKE);
         AllFieldsSearch.and("nicId", AllFieldsSearch.entity().getNicId(), Op.EQ);
         AllFieldsSearch.done();
 
@@ -146,4 +146,13 @@
         sc.setParameters("nic", nicId);
         return customSearch(sc, null).get(0);
     }
+
+    @Override
+    public List<NicSecondaryIpVO> listSecondaryIpUsingKeyword(long nicId, String keyword)
+    {
+        SearchCriteria<NicSecondaryIpVO> sc = AllFieldsSearch.create();
+        sc.setParameters("nicId", nicId);
+        sc.setParameters("address", "%" + keyword + "%");
+        return listBy(sc);
+    }
 }
diff --git a/engine/schema/src/com/cloud/vm/dao/UserVmCloneSettingDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/UserVmCloneSettingDaoImpl.java
index d76f6d4..0761f56 100644
--- a/engine/schema/src/com/cloud/vm/dao/UserVmCloneSettingDaoImpl.java
+++ b/engine/schema/src/com/cloud/vm/dao/UserVmCloneSettingDaoImpl.java
@@ -45,7 +45,7 @@
     public void init() {
         // Initialize the search builders.
         vmIdSearch = createSearchBuilder();
-        vmIdSearch.and("vmId", vmIdSearch.entity().getCloneType(), Op.EQ);
+        vmIdSearch.and("vmId", vmIdSearch.entity().getVmId(), Op.EQ);
         vmIdSearch.done();
 
         cloneTypeSearch = createSearchBuilder();
diff --git a/engine/schema/src/com/cloud/vm/snapshot/VMSnapshotVO.java b/engine/schema/src/com/cloud/vm/snapshot/VMSnapshotVO.java
index df2966d..c48396a 100644
--- a/engine/schema/src/com/cloud/vm/snapshot/VMSnapshotVO.java
+++ b/engine/schema/src/com/cloud/vm/snapshot/VMSnapshotVO.java
@@ -72,6 +72,9 @@
     @Column(name = "domain_id")
     long domainId;
 
+    @Column(name = "service_offering_id")
+    private long serviceOfferingId;
+
     @Column(name = "vm_snapshot_type")
     @Enumerated(EnumType.STRING)
     VMSnapshot.Type type;
@@ -139,6 +142,7 @@
         displayName = vsDisplayName;
         this.type = type;
         this.current = current;
+        this.serviceOfferingId = serviceOfferingId;
     }
 
     @Override
@@ -248,4 +252,9 @@
     public Class<?> getEntityType() {
         return VMSnapshot.class;
     }
+
+    @Override
+    public long getServiceOfferingId() {
+        return serviceOfferingId;
+    }
 }
diff --git a/engine/schema/src/org/apache/cloudstack/resourcedetail/GuestOsDetailVO.java b/engine/schema/src/org/apache/cloudstack/resourcedetail/GuestOsDetailVO.java
new file mode 100644
index 0000000..0ab252a
--- /dev/null
+++ b/engine/schema/src/org/apache/cloudstack/resourcedetail/GuestOsDetailVO.java
@@ -0,0 +1,81 @@
+// 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 org.apache.cloudstack.resourcedetail;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.apache.cloudstack.api.ResourceDetail;
+
+@Entity
+@Table(name = "guest_os_details")
+public class GuestOsDetailVO implements ResourceDetail {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id")
+    private long id;
+
+    @Column(name = "guest_os_id")
+    private long resourceId;
+
+    @Column(name = "name")
+    private String name;
+
+    @Column(name = "value", length = 1024)
+    private String value;
+
+    @Column(name = "display")
+    private boolean display = true;
+
+    public GuestOsDetailVO() {
+    }
+
+    public GuestOsDetailVO(long id, String name, String value) {
+        this.resourceId = id;
+        this.name = name;
+        this.value = value;
+    }
+
+    @Override
+    public long getId() {
+        return id;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    @Override
+    public long getResourceId() {
+        return resourceId;
+    }
+
+    @Override
+    public boolean isDisplay() {
+        return display;
+    }
+}
diff --git a/server/src/com/cloud/api/query/dao/StorageTagDao.java b/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/GuestOsDetailsDao.java
similarity index 69%
copy from server/src/com/cloud/api/query/dao/StorageTagDao.java
copy to engine/schema/src/org/apache/cloudstack/resourcedetail/dao/GuestOsDetailsDao.java
index aa2d6e6..4b1d5a8 100644
--- a/server/src/com/cloud/api/query/dao/StorageTagDao.java
+++ b/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/GuestOsDetailsDao.java
@@ -14,17 +14,13 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package com.cloud.api.query.dao;
+package org.apache.cloudstack.resourcedetail.dao;
 
-import java.util.List;
+import org.apache.cloudstack.resourcedetail.GuestOsDetailVO;
+import org.apache.cloudstack.resourcedetail.ResourceDetailsDao;
 
-import org.apache.cloudstack.api.response.StorageTagResponse;
-
-import com.cloud.api.query.vo.StorageTagVO;
 import com.cloud.utils.db.GenericDao;
 
-public interface StorageTagDao extends GenericDao<StorageTagVO, Long> {
-    StorageTagResponse newStorageTagResponse(StorageTagVO storageTag);
+public interface GuestOsDetailsDao extends GenericDao<GuestOsDetailVO, Long>, ResourceDetailsDao<GuestOsDetailVO> {
 
-    List<StorageTagVO> searchByIds(Long... storageTagIds);
 }
diff --git a/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/GuestOsDetailsDaoImpl.java b/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/GuestOsDetailsDaoImpl.java
new file mode 100644
index 0000000..519d8f2
--- /dev/null
+++ b/engine/schema/src/org/apache/cloudstack/resourcedetail/dao/GuestOsDetailsDaoImpl.java
@@ -0,0 +1,33 @@
+// 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 org.apache.cloudstack.resourcedetail.dao;
+
+import javax.ejb.Local;
+
+import org.apache.cloudstack.resourcedetail.GuestOsDetailVO;
+import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;
+import org.springframework.stereotype.Component;
+
+@Component
+@Local(value = {GuestOsDetailsDao.class})
+public class GuestOsDetailsDaoImpl extends ResourceDetailsDaoBase<GuestOsDetailVO> implements GuestOsDetailsDao {
+
+    @Override
+    public void addDetail(long resourceId, String key, String value, boolean display) {
+        super.addDetail(new GuestOsDetailVO(resourceId, key, value));
+    }
+}
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDaoImpl.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDaoImpl.java
similarity index 96%
rename from engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDaoImpl.java
rename to engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDaoImpl.java
index 13a7f47..9d53262 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDaoImpl.java
+++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDaoImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.cloudstack.storage.image.db;
+package org.apache.cloudstack.storage.datastore.db;
 
 import java.util.List;
 import java.util.Map;
@@ -26,8 +26,6 @@
 import org.springframework.stereotype.Component;
 
 import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
-import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
-import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
 
 import com.cloud.storage.DataStoreRole;
 import com.cloud.storage.ScopeType;
diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailVO.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailVO.java
index 6601437..fdfb734 100644
--- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailVO.java
+++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailVO.java
@@ -23,18 +23,18 @@
 import javax.persistence.Id;
 import javax.persistence.Table;
 
-import org.apache.cloudstack.api.InternalIdentity;
+import org.apache.cloudstack.api.ResourceDetail;
 
 @Entity
 @Table(name = "image_store_details")
-public class ImageStoreDetailVO implements InternalIdentity {
+public class ImageStoreDetailVO implements ResourceDetail {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "id")
     long id;
 
     @Column(name = "store_id")
-    long storeId;
+    long resourceId;
 
     @Column(name = "name")
     String name;
@@ -42,13 +42,17 @@
     @Column(name = "value")
     String value;
 
+    @Column(name = "display")
+    private boolean display = true;
+
     public ImageStoreDetailVO() {
     }
 
-    public ImageStoreDetailVO(long storeId, String name, String value) {
-        this.storeId = storeId;
+    public ImageStoreDetailVO(long storeId, String name, String value, boolean display) {
+        this.resourceId = storeId;
         this.name = name;
         this.value = value;
+        this.display = display;
     }
 
     @Override
@@ -56,28 +60,24 @@
         return id;
     }
 
-    public long getStoreId() {
-        return storeId;
+    @Override
+    public long getResourceId() {
+        return resourceId;
     }
 
-    public void setStoreId(long storeId) {
-        this.storeId = storeId;
-    }
-
+    @Override
     public String getName() {
         return name;
     }
 
-    public void setName(String name) {
-        this.name = name;
-    }
-
+    @Override
     public String getValue() {
         return value;
     }
 
-    public void setValue(String value) {
-        this.value = value;
+    @Override
+    public boolean isDisplay() {
+        return display;
     }
 
 }
diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailsDao.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailsDao.java
index 91fff28..04cd703 100644
--- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailsDao.java
+++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailsDao.java
@@ -18,9 +18,11 @@
 
 import java.util.Map;
 
+import org.apache.cloudstack.resourcedetail.ResourceDetailsDao;
+
 import com.cloud.utils.db.GenericDao;
 
-public interface ImageStoreDetailsDao extends GenericDao<ImageStoreDetailVO, Long> {
+public interface ImageStoreDetailsDao extends GenericDao<ImageStoreDetailVO, Long>, ResourceDetailsDao<ImageStoreDetailVO> {
 
     void update(long storeId, Map<String, String> details);
 
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDetailsDaoImpl.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailsDaoImpl.java
similarity index 65%
rename from engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDetailsDaoImpl.java
rename to engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailsDaoImpl.java
index 2bfc38e..8e5ce77 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDetailsDaoImpl.java
+++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreDetailsDaoImpl.java
@@ -14,34 +14,36 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package org.apache.cloudstack.storage.image.db;
+package org.apache.cloudstack.storage.datastore.db;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-
 import org.springframework.stereotype.Component;
 
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailVO;
-import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDao;
-
 import com.cloud.utils.crypt.DBEncryptionUtil;
-import com.cloud.utils.db.GenericDaoBase;
+import com.cloud.utils.db.QueryBuilder;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.SearchCriteria.Op;
 import com.cloud.utils.db.TransactionLegacy;
 
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.ConfigKey.Scope;
+import org.apache.cloudstack.framework.config.ScopedConfigStorage;
+import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;
+
 @Component
-public class ImageStoreDetailsDaoImpl extends GenericDaoBase<ImageStoreDetailVO, Long> implements ImageStoreDetailsDao {
+public class ImageStoreDetailsDaoImpl extends ResourceDetailsDaoBase<ImageStoreDetailVO> implements ImageStoreDetailsDao, ScopedConfigStorage {
 
     protected final SearchBuilder<ImageStoreDetailVO> storeSearch;
 
-    protected ImageStoreDetailsDaoImpl() {
+    public ImageStoreDetailsDaoImpl() {
         super();
         storeSearch = createSearchBuilder();
-        storeSearch.and("store", storeSearch.entity().getStoreId(), SearchCriteria.Op.EQ);
+        storeSearch.and("store", storeSearch.entity().getResourceId(), SearchCriteria.Op.EQ);
         storeSearch.done();
     }
 
@@ -54,7 +56,7 @@
         txn.start();
         expunge(sc);
         for (Map.Entry<String, String> entry : details.entrySet()) {
-            ImageStoreDetailVO detail = new ImageStoreDetailVO(storeId, entry.getKey(), entry.getValue());
+            ImageStoreDetailVO detail = new ImageStoreDetailVO(storeId, entry.getKey(), entry.getValue(), true);
             persist(detail);
         }
         txn.commit();
@@ -88,7 +90,30 @@
         for (ImageStoreDetailVO result : results) {
             remove(result.getId());
         }
+    }
 
+    @Override
+    public Scope getScope() {
+        return ConfigKey.Scope.ImageStore;
+    }
+
+    @Override
+    public ImageStoreDetailVO findDetail(long storeId, String name) {
+        QueryBuilder<ImageStoreDetailVO> sc = QueryBuilder.create(ImageStoreDetailVO.class);
+        sc.and(sc.entity().getResourceId(), Op.EQ, storeId);
+        sc.and(sc.entity().getName(), Op.EQ, name);
+        return sc.find();
+    }
+
+    @Override
+    public String getConfigValue(long id, ConfigKey<?> key) {
+        ImageStoreDetailVO vo = findDetail(id, key.key());
+        return vo == null ? null : vo.getValue();
+    }
+
+    @Override
+    public void addDetail(long resourceId, String key, String value, boolean display) {
+        super.addDetail(new ImageStoreDetailVO(resourceId, key, value, display));
     }
 
 }
diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
index 32d1d79..2398e91 100644
--- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
+++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
@@ -53,7 +53,7 @@
      */
     void updateCapacityIops(long id, long capacityIops);
 
-    StoragePoolVO persist(StoragePoolVO pool, Map<String, String> details);
+    StoragePoolVO persist(StoragePoolVO pool, Map<String, String> details, List<String> tags);
 
     /**
      * Find pool by name.
@@ -100,7 +100,7 @@
 
     Map<String, String> getDetails(long poolId);
 
-    List<String> searchForStoragePoolDetails(long poolId, String value);
+    List<String> searchForStoragePoolTags(long poolId);
 
     List<StoragePoolVO> findIfDuplicatePoolsExistByUUID(String uuid);
 
@@ -121,4 +121,6 @@
     List<StoragePoolVO> findLocalStoragePoolsByHostAndTags(long hostId, String[] tags);
 
     List<StoragePoolVO> listLocalStoragePoolByPath(long datacenterId, String path);
+
+    void deletePoolTags(long poolId);
 }
diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java
index c451e1d..5a3c229 100644
--- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java
+++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java
@@ -20,19 +20,22 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.commons.collections.CollectionUtils;
+
 import com.cloud.host.Status;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.storage.ScopeType;
 import com.cloud.storage.StoragePoolHostVO;
 import com.cloud.storage.StoragePoolStatus;
+import com.cloud.storage.StoragePoolTagVO;
 import com.cloud.storage.dao.StoragePoolHostDao;
+import com.cloud.storage.dao.StoragePoolTagsDao;
 import com.cloud.utils.db.DB;
 import com.cloud.utils.db.GenericDaoBase;
 import com.cloud.utils.db.GenericSearchBuilder;
@@ -58,15 +61,28 @@
     protected StoragePoolDetailsDao _detailsDao;
     @Inject
     protected StoragePoolHostDao _hostDao;
+    @Inject
+    protected StoragePoolTagsDao _tagsDao;
 
-    private final String DetailsSqlPrefix =
+    protected final String DetailsSqlPrefix =
         "SELECT storage_pool.* from storage_pool LEFT JOIN storage_pool_details ON storage_pool.id = storage_pool_details.pool_id WHERE storage_pool.removed is null and storage_pool.status = 'Up' and storage_pool.data_center_id = ? and (storage_pool.pod_id = ? or storage_pool.pod_id is null) and storage_pool.scope = ? and (";
-    private final String DetailsSqlSuffix = ") GROUP BY storage_pool_details.pool_id HAVING COUNT(storage_pool_details.name) >= ?";
-    private final String ZoneWideDetailsSqlPrefix =
-        "SELECT storage_pool.* from storage_pool LEFT JOIN storage_pool_details ON storage_pool.id = storage_pool_details.pool_id WHERE storage_pool.removed is null and storage_pool.status = 'Up' and storage_pool.data_center_id = ? and storage_pool.scope = ? and (";
-    private final String ZoneWideDetailsSqlSuffix = ") GROUP BY storage_pool_details.pool_id HAVING COUNT(storage_pool_details.name) >= ?";
+    protected final String DetailsSqlSuffix = ") GROUP BY storage_pool_details.pool_id HAVING COUNT(storage_pool_details.name) >= ?";
+    protected final String ZoneWideTagsSqlPrefix =
+        "SELECT storage_pool.* from storage_pool LEFT JOIN storage_pool_tags ON storage_pool.id = storage_pool_tags.pool_id WHERE storage_pool.removed is null and storage_pool.status = 'Up' and storage_pool.data_center_id = ? and storage_pool.scope = ? and (";
+    protected final String ZoneWideTagsSqlSuffix = ") GROUP BY storage_pool_tags.pool_id HAVING COUNT(storage_pool_tags.tag) >= ?";
 
-    private final String FindPoolTagDetails = "SELECT storage_pool_details.name FROM storage_pool_details WHERE pool_id = ? and value = ?";
+    // Storage tags are now separate from storage_pool_details, leaving only details on that table
+    protected final String TagsSqlPrefix = "SELECT storage_pool.* from storage_pool LEFT JOIN storage_pool_tags ON storage_pool.id = storage_pool_tags.pool_id WHERE storage_pool.removed is null and storage_pool.status = 'Up' and storage_pool.data_center_id = ? and (storage_pool.pod_id = ? or storage_pool.pod_id is null) and storage_pool.scope = ? and (";
+    protected final String TagsSqlSuffix = ") GROUP BY storage_pool_tags.pool_id HAVING COUNT(storage_pool_tags.tag) >= ?";
+
+    protected final String FindPoolTags = "SELECT storage_pool_tags.tag FROM storage_pool_tags WHERE pool_id = ?";
+
+    /**
+     * Used in method findPoolsByDetailsOrTagsInternal
+     */
+    protected enum ValueType {
+        DETAILS, TAGS;
+    }
 
     public PrimaryDataStoreDaoImpl() {
         AllFieldSearch = createSearchBuilder();
@@ -256,7 +272,7 @@
 
     @Override
     @DB
-    public StoragePoolVO persist(StoragePoolVO pool, Map<String, String> details) {
+    public StoragePoolVO persist(StoragePoolVO pool, Map<String, String> details, List<String> tags) {
         TransactionLegacy txn = TransactionLegacy.currentTxn();
         txn.start();
         pool = super.persist(pool);
@@ -266,57 +282,132 @@
                 _detailsDao.persist(vo);
             }
         }
+        if (CollectionUtils.isNotEmpty(tags)) {
+            _tagsDao.persist(pool.getId(), tags);
+        }
         txn.commit();
         return pool;
     }
 
+    /**
+     * Internal helper method to retrieve storage pools by given details or storage tags.
+     * @param dcId data center id
+     * @param podId pod id
+     * @param clusterId cluster id
+     * @param scope score
+     * @param sqlValues sql string containing details or storage tags values required to query
+     * @param valuesType enumerate to indicate if values are related to details or storage tags
+     * @param valuesLength values length
+     * @return list of storage pools matching conditions
+     */
+    protected List<StoragePoolVO> findPoolsByDetailsOrTagsInternal(long dcId, long podId, Long clusterId, ScopeType scope, String sqlValues, ValueType valuesType, int valuesLength) {
+        String sqlPrefix = valuesType.equals(ValueType.DETAILS) ? DetailsSqlPrefix : TagsSqlPrefix;
+        String sqlSuffix = valuesType.equals(ValueType.DETAILS) ? DetailsSqlSuffix : TagsSqlSuffix;
+        String sql = getSqlPreparedStatement(sqlPrefix, sqlSuffix, sqlValues, clusterId);
+        return searchStoragePoolsPreparedStatement(sql, dcId, podId, clusterId, scope, valuesLength);
+    }
+
+    /**
+     * Search storage pools in a transaction
+     * @param sql prepared statement sql
+     * @param dcId data center id
+     * @param podId pod id
+     * @param clusterId cluster id
+     * @param scope scope
+     * @param valuesLength values length
+     * @return storage pools matching criteria
+     */
     @DB
-    @Override
-    public List<StoragePoolVO> findPoolsByDetails(long dcId, long podId, Long clusterId, Map<String, String> details, ScopeType scope) {
-        StringBuilder sql = new StringBuilder(DetailsSqlPrefix);
+    protected List<StoragePoolVO> searchStoragePoolsPreparedStatement(String sql, long dcId, Long podId, Long clusterId, ScopeType scope, int valuesLength) {
+        TransactionLegacy txn = TransactionLegacy.currentTxn();
+        List<StoragePoolVO> pools = new ArrayList<StoragePoolVO>();
+        try (PreparedStatement pstmt = txn.prepareStatement(sql);){
+            if (pstmt != null) {
+                int i = 1;
+                pstmt.setLong(i++, dcId);
+                if (podId != null) {
+                    pstmt.setLong(i++, podId);
+                }
+                pstmt.setString(i++, scope.toString());
+                if (clusterId != null) {
+                    pstmt.setLong(i++, clusterId);
+                }
+                pstmt.setInt(i++, valuesLength);
+                try(ResultSet rs = pstmt.executeQuery();) {
+                    while (rs.next()) {
+                        pools.add(toEntityBean(rs, false));
+                    }
+                }catch (SQLException e) {
+                    throw new CloudRuntimeException("Unable to execute :" + e.getMessage(), e);
+                }
+            }
+        } catch (SQLException e) {
+            throw new CloudRuntimeException("Unable to execute :" + e.getMessage(), e);
+        }
+        return pools;
+    }
+
+    /**
+     * Return SQL prepared statement given prefix, values and suffix
+     * @param sqlPrefix prefix
+     * @param sqlSuffix suffix
+     * @param sqlValues tags or details values
+     * @param clusterId cluster id
+     * @return sql prepared statement
+     */
+    protected String getSqlPreparedStatement(String sqlPrefix, String sqlSuffix, String sqlValues, Long clusterId) {
+        StringBuilder sql = new StringBuilder(sqlPrefix);
         if (clusterId != null) {
             sql.append("storage_pool.cluster_id = ? OR storage_pool.cluster_id IS NULL) AND (");
         }
+        sql.append(sqlValues);
+        sql.append(sqlSuffix);
+        return sql.toString();
+    }
 
+    /**
+     * Return SQL string from details, to be placed between SQL Prefix and SQL Suffix when creating storage tags PreparedStatement.
+     * @param details storage pool details
+     * @return SQL string containing storage tag values to be Prefix and Suffix when creating PreparedStatement.
+     * @throws NullPointerException if details is null
+     * @throws IndexOutOfBoundsException if details is not null, but empty
+     */
+    protected String getSqlValuesFromDetails(Map<String, String> details) {
+        StringBuilder sqlValues = new StringBuilder();
         for (Map.Entry<String, String> detail : details.entrySet()) {
-            sql.append("((storage_pool_details.name='")
+            sqlValues.append("((storage_pool_details.name='")
                 .append(detail.getKey())
                 .append("') AND (storage_pool_details.value='")
                 .append(detail.getValue())
                 .append("')) OR ");
         }
-        sql.delete(sql.length() - 4, sql.length());
-        sql.append(DetailsSqlSuffix);
-        TransactionLegacy txn = TransactionLegacy.currentTxn();
-        try (PreparedStatement pstmt = txn.prepareStatement(sql.toString());){
-            List<StoragePoolVO> pools = new ArrayList<StoragePoolVO>();
-            int i = 1;
-            pstmt.setLong(i++, dcId);
-            pstmt.setLong(i++, podId);
-            pstmt.setString(i++, scope.toString());
-            if (clusterId != null) {
-                pstmt.setLong(i++, clusterId);
-            }
-            pstmt.setInt(i++, details.size());
-            try(ResultSet rs = pstmt.executeQuery();) {
-                while (rs.next()) {
-                    pools.add(toEntityBean(rs, false));
-                }
-            }catch (SQLException e) {
-                throw new CloudRuntimeException("Unable to execute :" + e.getMessage(), e);
-            }
-            return pools;
-        } catch (SQLException e) {
-            throw new CloudRuntimeException("Unable to execute :" + e.getMessage(), e);
-        }
+        sqlValues.delete(sqlValues.length() - 4, sqlValues.length());
+        return sqlValues.toString();
     }
 
-    protected Map<String, String> tagsToDetails(String[] tags) {
-        Map<String, String> details = new HashMap<String, String>(tags.length);
+    /**
+     * Return SQL string from storage tags, to be placed between SQL Prefix and SQL Suffix when creating storage tags PreparedStatement.
+     * @param tags storage tags array
+     * @return SQL string containing storage tag values to be placed between Prefix and Suffix when creating PreparedStatement.
+     * @throws NullPointerException if tags is null
+     * @throws IndexOutOfBoundsException if tags is not null, but empty
+     */
+    protected String getSqlValuesFromStorageTags(String[] tags) throws NullPointerException, IndexOutOfBoundsException {
+        StringBuilder sqlValues = new StringBuilder();
         for (String tag : tags) {
-            details.put(tag, "true");
+            sqlValues.append("(storage_pool_tags.tag='")
+                .append(tag)
+                .append("') OR ");
         }
-        return details;
+        sqlValues.delete(sqlValues.length() - 4, sqlValues.length());
+        return sqlValues.toString();
+    }
+
+    @DB
+    @Override
+    public List<StoragePoolVO> findPoolsByDetails(long dcId, long podId, Long clusterId, Map<String, String> details, ScopeType scope) {
+        String sqlValues = getSqlValuesFromDetails(details);
+        return findPoolsByDetailsOrTagsInternal(dcId, podId, clusterId, scope, sqlValues, ValueType.DETAILS, details.size());
     }
 
     @Override
@@ -325,8 +416,8 @@
         if (tags == null || tags.length == 0) {
             storagePools = listBy(dcId, podId, clusterId, ScopeType.CLUSTER);
         } else {
-            Map<String, String> details = tagsToDetails(tags);
-            storagePools = findPoolsByDetails(dcId, podId, clusterId, details, ScopeType.CLUSTER);
+            String sqlValues = getSqlValuesFromStorageTags(tags);
+            storagePools = findPoolsByDetailsOrTagsInternal(dcId, podId, clusterId, ScopeType.CLUSTER, sqlValues, ValueType.TAGS, tags.length);
         }
 
         return storagePools;
@@ -358,8 +449,8 @@
         if (tags == null || tags.length == 0) {
             storagePools = listBy(dcId, podId, clusterId, ScopeType.HOST);
         } else {
-            Map<String, String> details = tagsToDetails(tags);
-            storagePools = findPoolsByDetails(dcId, podId, clusterId, details, ScopeType.HOST);
+            String sqlValues = getSqlValuesFromStorageTags(tags);
+            storagePools = findPoolsByDetailsOrTagsInternal(dcId, podId, clusterId, ScopeType.HOST, sqlValues, ValueType.TAGS, tags.length);
         }
 
         return storagePools;
@@ -369,7 +460,7 @@
     public List<StoragePoolVO> findLocalStoragePoolsByHostAndTags(long hostId, String[] tags) {
         SearchBuilder<StoragePoolVO> hostSearch = createSearchBuilder();
         SearchBuilder<StoragePoolHostVO> hostPoolSearch = _hostDao.createSearchBuilder();
-        SearchBuilder<StoragePoolDetailVO> tagPoolSearch = _detailsDao.createSearchBuilder();;
+        SearchBuilder<StoragePoolTagVO> tagPoolSearch = _tagsDao.createSearchBuilder();;
 
         // Search for pools on the host
         hostPoolSearch.and("hostId", hostPoolSearch.entity().getHostId(), Op.EQ);
@@ -380,9 +471,8 @@
         hostSearch.join("hostJoin", hostPoolSearch, hostSearch.entity().getId(), hostPoolSearch.entity().getPoolId(), JoinBuilder.JoinType.INNER);
 
         if (!(tags == null || tags.length == 0 )) {
-            tagPoolSearch.and("name", tagPoolSearch.entity().getName(), Op.EQ);
-            tagPoolSearch.and("value", tagPoolSearch.entity().getValue(), Op.EQ);
-            hostSearch.join("tagJoin", tagPoolSearch, hostSearch.entity().getId(), tagPoolSearch.entity().getResourceId(), JoinBuilder.JoinType.INNER);
+            tagPoolSearch.and("tag", tagPoolSearch.entity().getTag(), Op.EQ);
+            hostSearch.join("tagJoin", tagPoolSearch, hostSearch.entity().getId(), tagPoolSearch.entity().getPoolId(), JoinBuilder.JoinType.INNER);
         }
 
         SearchCriteria<StoragePoolVO> sc = hostSearch.create();
@@ -391,10 +481,8 @@
         sc.setParameters("status", Status.Up.toString());
 
         if (!(tags == null || tags.length == 0 )) {
-            Map<String, String> details = tagsToDetails(tags);
-            for (Map.Entry<String, String> detail : details.entrySet()) {
-                sc.setJoinParameters("tagJoin","name", detail.getKey());
-                sc.setJoinParameters("tagJoin", "value", detail.getValue());
+            for (String tag : tags) {
+                sc.setJoinParameters("tagJoin", "tag", tag);
             }
         }
         return listBy(sc);
@@ -409,68 +497,15 @@
             sc.and(sc.entity().getScope(), Op.EQ, ScopeType.ZONE);
             return sc.list();
         } else {
-            Map<String, String> details = tagsToDetails(tags);
-
-            StringBuilder sql = new StringBuilder(ZoneWideDetailsSqlPrefix);
-
-            for (int i=0;i<details.size();i++){
-                sql.append("((storage_pool_details.name=?) AND (storage_pool_details.value=?)) OR ");
-            }
-            sql.delete(sql.length() - 4, sql.length());
-            sql.append(ZoneWideDetailsSqlSuffix);
-            TransactionLegacy txn = TransactionLegacy.currentTxn();
-            try (PreparedStatement pstmt = txn.prepareStatement(sql.toString());){
-                List<StoragePoolVO> pools = new ArrayList<StoragePoolVO>();
-                if (pstmt != null) {
-                    int i = 1;
-
-                    pstmt.setLong(i++, dcId);
-                    pstmt.setString(i++, ScopeType.ZONE.toString());
-
-                    for (Map.Entry<String, String> detail : details.entrySet()) {
-                        pstmt.setString(i++, detail.getKey());
-                        pstmt.setString(i++, detail.getValue());
-                    }
-
-                    pstmt.setInt(i++, details.size());
-
-                    try(ResultSet rs = pstmt.executeQuery();) {
-                        while (rs.next()) {
-                            pools.add(toEntityBean(rs, false));
-                        }
-                    }catch (SQLException e) {
-                        throw new CloudRuntimeException("findZoneWideStoragePoolsByTags:Exception:" + e.getMessage(), e);
-                    }
-                }
-                return pools;
-            } catch (SQLException e) {
-                throw new CloudRuntimeException("findZoneWideStoragePoolsByTags:Exception:" + e.getMessage(), e);
-            }
+            String sqlValues = getSqlValuesFromStorageTags(tags);
+            String sql = getSqlPreparedStatement(ZoneWideTagsSqlPrefix, ZoneWideTagsSqlSuffix, sqlValues, null);
+            return searchStoragePoolsPreparedStatement(sql, dcId, null, null, ScopeType.ZONE, tags.length);
         }
     }
 
     @Override
-    @DB
-    public List<String> searchForStoragePoolDetails(long poolId, String value) {
-        StringBuilder sql = new StringBuilder(FindPoolTagDetails);
-        TransactionLegacy txn = TransactionLegacy.currentTxn();
-        List<String> tags = new ArrayList<String>();
-        try(PreparedStatement pstmt = txn.prepareStatement(sql.toString());) {
-            if (pstmt != null) {
-                pstmt.setLong(1, poolId);
-                pstmt.setString(2, value);
-                try(ResultSet rs = pstmt.executeQuery();) {
-                    while (rs.next()) {
-                        tags.add(rs.getString("name"));
-                    }
-                }catch (SQLException e) {
-                    throw new CloudRuntimeException("searchForStoragePoolDetails:Exception:" + e.getMessage(), e);
-                }
-            }
-            return tags;
-        } catch (SQLException e) {
-            throw new CloudRuntimeException("searchForStoragePoolDetails:Exception:" + e.getMessage(), e);
-        }
+    public List<String> searchForStoragePoolTags(long poolId) {
+        return _tagsDao.getStoragePoolTags(poolId);
     }
 
     @Override
@@ -530,4 +565,10 @@
         sc.and(sc.entity().getHypervisor(), Op.EQ, hypervisorType);
         return sc.list();
     }
+
+    @Override
+    public void deletePoolTags(long poolId) {
+        _tagsDao.deleteTags(poolId);
+    }
+
 }
diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/SnapshotDataStoreDao.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/SnapshotDataStoreDao.java
index 4b83e31..20cff56 100644
--- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/SnapshotDataStoreDao.java
+++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/SnapshotDataStoreDao.java
@@ -63,4 +63,5 @@
 
     SnapshotDataStoreVO findByVolume(long volumeId, DataStoreRole role);
 
+    List<SnapshotDataStoreVO> listByState(ObjectInDataStoreStateMachine.State... states);
 }
diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/StoragePoolVO.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/StoragePoolVO.java
index ad2ad41..24fcaa0 100644
--- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/StoragePoolVO.java
+++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/StoragePoolVO.java
@@ -231,6 +231,7 @@
         this.managed = managed;
     }
 
+    @Override
     public boolean isManaged() {
         return managed;
     }
diff --git a/engine/schema/test/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java b/engine/schema/test/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java
new file mode 100755
index 0000000..dcbd665
--- /dev/null
+++ b/engine/schema/test/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java
@@ -0,0 +1,128 @@
+// 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.storage.dao;
+
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import com.cloud.storage.StoragePoolTagVO;
+import com.cloud.utils.db.Filter;
+import com.cloud.utils.db.SearchBuilder;
+import com.cloud.utils.db.SearchCriteria;
+
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.doNothing;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+@RunWith(PowerMockRunner.class)
+public class StoragePoolTagsDaoImplTest extends TestCase {
+
+    @Mock
+    ConfigurationDao _configDao;
+    @Mock
+    SearchBuilder<StoragePoolTagVO> StoragePoolIdsSearch;
+
+    @Spy
+    @InjectMocks
+    private StoragePoolTagsDaoImpl _storagePoolTagsDaoImpl = new StoragePoolTagsDaoImpl();
+
+    @Mock
+    StoragePoolTagVO storagePoolTag1;
+    @Mock
+    StoragePoolTagVO storagePoolTag2;
+
+    private final String batchSizeConfigurationKey = "detail.batch.query.size";
+    private final String batchSizeValue = "2800";
+    private final String batchSizeDefaultValue = "2000";
+    private final String batchSizeLow = "2";
+
+    private final Long[] storageTagsIds = {1l,2l,3l,4l,5l};
+    private final List<StoragePoolTagVO> storagePoolTagList = Arrays.asList(storagePoolTag1, storagePoolTag2);
+
+    @Before
+    public void setup() {
+        when(_configDao.getValue(batchSizeConfigurationKey)).thenReturn(batchSizeValue);
+        doReturn(storagePoolTagList).when(_storagePoolTagsDaoImpl).searchIncludingRemoved(
+                Matchers.any(SearchCriteria.class), Matchers.isNull(Filter.class), Matchers.isNull(Boolean.class), Matchers.eq(false));
+    }
+
+    @Test
+    public void testGetDetailsBatchSizeNotNull() {
+        assertEquals(Integer.parseInt(batchSizeValue), _storagePoolTagsDaoImpl.getDetailsBatchSize());
+    }
+
+    @Test
+    public void testGetDetailsBatchSizeNull() {
+        when(_configDao.getValue(batchSizeConfigurationKey)).thenReturn(null);
+        assertEquals(Integer.parseInt(batchSizeDefaultValue), _storagePoolTagsDaoImpl.getDetailsBatchSize());
+    }
+
+    @Test
+    public void testSearchForStoragePoolIdsInternalStorageTagsNotNullSearch() {
+        List<StoragePoolTagVO> storagePoolTags = new ArrayList<StoragePoolTagVO>();
+
+        _storagePoolTagsDaoImpl.searchForStoragePoolIdsInternal(0, storageTagsIds.length, storageTagsIds, storagePoolTags);
+        verify(_storagePoolTagsDaoImpl).searchIncludingRemoved(Matchers.any(SearchCriteria.class), Matchers.isNull(Filter.class), Matchers.isNull(Boolean.class), Matchers.eq(false));
+        assertEquals(2, storagePoolTags.size());
+    }
+
+    @Test
+    public void testSearchForStoragePoolIdsInternalStorageTagsNullSearch() {
+        List<StoragePoolTagVO> storagePoolTags = new ArrayList<StoragePoolTagVO>();
+        doReturn(null).when(_storagePoolTagsDaoImpl).searchIncludingRemoved(
+                Matchers.any(SearchCriteria.class), Matchers.isNull(Filter.class), Matchers.isNull(Boolean.class), Matchers.eq(false));
+
+        _storagePoolTagsDaoImpl.searchForStoragePoolIdsInternal(0, storageTagsIds.length, storageTagsIds, storagePoolTags);
+        verify(_storagePoolTagsDaoImpl).searchIncludingRemoved(Matchers.any(SearchCriteria.class), Matchers.isNull(Filter.class), Matchers.isNull(Boolean.class), Matchers.eq(false));
+        assertEquals(0, storagePoolTags.size());
+    }
+
+    @Test
+    public void testSearchByIdsStorageTagsIdsGreaterOrEqualThanBatchSize() {
+        when(_configDao.getValue(batchSizeConfigurationKey)).thenReturn(batchSizeLow);
+        doNothing().when(_storagePoolTagsDaoImpl).searchForStoragePoolIdsInternal(Matchers.anyInt(), Matchers.anyInt(), Matchers.any(Long[].class), Matchers.anyList());
+        _storagePoolTagsDaoImpl.searchByIds(storageTagsIds);
+
+        int batchSize = Integer.parseInt(batchSizeLow);
+        int difference = storageTagsIds.length - 2 * batchSize;
+        verify(_storagePoolTagsDaoImpl, Mockito.times(2)).searchForStoragePoolIdsInternal(Matchers.anyInt(), Matchers.eq(batchSize), Matchers.any(Long[].class), Matchers.anyList());
+        verify(_storagePoolTagsDaoImpl).searchForStoragePoolIdsInternal(Matchers.eq(2 * batchSize), Matchers.eq(difference), Matchers.any(Long[].class), Matchers.anyList());
+    }
+
+    @Test
+    public void testSearchByIdsStorageTagsIdsLowerThanBatchSize() {
+        doNothing().when(_storagePoolTagsDaoImpl).searchForStoragePoolIdsInternal(Matchers.anyInt(), Matchers.anyInt(), Matchers.any(Long[].class), Matchers.anyList());
+        _storagePoolTagsDaoImpl.searchByIds(storageTagsIds);
+
+        verify(_storagePoolTagsDaoImpl).searchForStoragePoolIdsInternal(Matchers.eq(0), Matchers.eq(storageTagsIds.length), Matchers.any(Long[].class), Matchers.anyList());
+    }
+}
diff --git a/engine/schema/test/com/cloud/vm/dao/VMInstanceDaoImplTest.java b/engine/schema/test/com/cloud/vm/dao/VMInstanceDaoImplTest.java
index 767b414..95a57ed 100644
--- a/engine/schema/test/com/cloud/vm/dao/VMInstanceDaoImplTest.java
+++ b/engine/schema/test/com/cloud/vm/dao/VMInstanceDaoImplTest.java
@@ -68,3 +68,5 @@
     }
 
 }
+
+
diff --git a/engine/schema/test/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImplTest.java b/engine/schema/test/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImplTest.java
new file mode 100755
index 0000000..5b3d5d3
--- /dev/null
+++ b/engine/schema/test/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImplTest.java
@@ -0,0 +1,151 @@
+// 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 org.apache.cloudstack.storage.datastore.db;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl.ValueType;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import com.cloud.storage.ScopeType;
+import com.cloud.storage.dao.StoragePoolHostDao;
+import com.cloud.storage.dao.StoragePoolTagsDao;
+
+import junit.framework.TestCase;
+
+@RunWith(PowerMockRunner.class)
+public class PrimaryDataStoreDaoImplTest extends TestCase {
+
+    @Mock
+    StoragePoolDetailsDao _detailsDao;
+    @Mock
+    StoragePoolHostDao _hostDao;
+    @Mock
+    StoragePoolTagsDao _tagsDao;
+
+    @Spy
+    @InjectMocks
+    private static PrimaryDataStoreDaoImpl primaryDataStoreDao = new PrimaryDataStoreDaoImpl();
+
+    @Mock
+    StoragePoolVO storagePoolVO;
+
+    private static final String STORAGE_TAG_1 = "NFS-A";
+    private static final String STORAGE_TAG_2 = "NFS-B";
+    private static final String[] STORAGE_TAGS_ARRAY = {STORAGE_TAG_1, STORAGE_TAG_2};
+
+    private static final String DETAIL_KEY = "storage.overprovisioning.factor";
+    private static final String DETAIL_VALUE = "2.0";
+    private static final Map<String, String> STORAGE_POOL_DETAILS = new HashMap<String, String>(){{ put(DETAIL_KEY, DETAIL_VALUE); }};
+
+    private static final String EXPECTED_RESULT_SQL_STORAGE_TAGS = "(storage_pool_tags.tag='" + STORAGE_TAG_1 + "') OR (storage_pool_tags.tag='" + STORAGE_TAG_2 + "')";
+    private static final String EXPECTED_RESULT_SQL_DETAILS = "((storage_pool_details.name='" + DETAIL_KEY + "') AND (storage_pool_details.value='" + DETAIL_VALUE +"'))";
+
+    private static final String SQL_PREFIX = "XXXXXXXXXXXXXXXX";
+    private static final String SQL_SUFFIX = "ZZZZZZZZZZZZZZZZ";
+    private static final String SQL_VALUES = "YYYYYYYYYYYYYYYY";
+
+    private static final Long DATACENTER_ID = 1l;
+    private static final Long POD_ID = 1l;
+    private static final Long CLUSTER_ID = null;
+    private static final ScopeType SCOPE = ScopeType.ZONE;
+
+    @Before
+    public void setup() {
+        doReturn(Arrays.asList(storagePoolVO)).when(primaryDataStoreDao).
+            searchStoragePoolsPreparedStatement(Matchers.anyString(), Matchers.anyLong(), Matchers.anyLong(), Matchers.anyLong(),
+                    Matchers.any(ScopeType.class), Matchers.anyInt());
+    }
+
+    @Test
+    public void testGetSqlValuesFromStorageTagsNotNullStorageTags() {
+        assertEquals(EXPECTED_RESULT_SQL_STORAGE_TAGS, primaryDataStoreDao.getSqlValuesFromStorageTags(STORAGE_TAGS_ARRAY));
+    }
+
+    @Test(expected=NullPointerException.class)
+    public void testGetSqlValuesFromStorageTagsNullStorageTags() {
+        primaryDataStoreDao.getSqlValuesFromStorageTags(null);
+    }
+
+    @Test(expected=IndexOutOfBoundsException.class)
+    public void testGetSqlValuesFromStorageTagsEmptyStorageTags() {
+        String[] emptyStorageTags = {};
+        primaryDataStoreDao.getSqlValuesFromStorageTags(emptyStorageTags);
+    }
+
+    @Test
+    public void testGetSqlValuesFromDetailsNotNullDetails() {
+        assertEquals(EXPECTED_RESULT_SQL_DETAILS, primaryDataStoreDao.getSqlValuesFromDetails(STORAGE_POOL_DETAILS));
+    }
+
+    @Test(expected=NullPointerException.class)
+    public void testGetSqlValuesFromDetailsNullDetails() {
+        primaryDataStoreDao.getSqlValuesFromDetails(null);
+    }
+
+    @Test(expected=IndexOutOfBoundsException.class)
+    public void testGetSqlValuesFromDetailsEmptyDetailss() {
+        Map<String,String> emptyDetails = new HashMap<String, String>();
+        primaryDataStoreDao.getSqlValuesFromDetails(emptyDetails);
+    }
+
+    @Test
+    public void testGetSqlPreparedStatementNullClusterId() {
+        String sqlPreparedStatement = primaryDataStoreDao.getSqlPreparedStatement(SQL_PREFIX, SQL_SUFFIX, SQL_VALUES, null);
+        assertEquals(SQL_PREFIX + SQL_VALUES + SQL_SUFFIX, sqlPreparedStatement);
+    }
+
+    @Test
+    public void testGetSqlPreparedStatementNotNullClusterId() {
+        String clusterSql = "storage_pool.cluster_id = ? OR storage_pool.cluster_id IS NULL) AND (";
+        String sqlPreparedStatement = primaryDataStoreDao.getSqlPreparedStatement(SQL_PREFIX, SQL_SUFFIX, SQL_VALUES, 1l);
+        assertEquals(SQL_PREFIX + clusterSql + SQL_VALUES + SQL_SUFFIX, sqlPreparedStatement);
+    }
+
+    @Test
+    public void testFindPoolsByDetailsOrTagsInternalStorageTagsType() {
+        List<StoragePoolVO> storagePools = primaryDataStoreDao.findPoolsByDetailsOrTagsInternal(DATACENTER_ID, POD_ID, CLUSTER_ID, SCOPE, SQL_VALUES, ValueType.TAGS, STORAGE_TAGS_ARRAY.length);
+        assertEquals(Arrays.asList(storagePoolVO), storagePools);
+        verify(primaryDataStoreDao).getSqlPreparedStatement(
+                primaryDataStoreDao.TagsSqlPrefix, primaryDataStoreDao.TagsSqlSuffix, SQL_VALUES, CLUSTER_ID);
+        String expectedSql = primaryDataStoreDao.TagsSqlPrefix + SQL_VALUES + primaryDataStoreDao.TagsSqlSuffix;
+        verify(primaryDataStoreDao).searchStoragePoolsPreparedStatement(expectedSql, DATACENTER_ID, POD_ID, CLUSTER_ID, SCOPE, STORAGE_TAGS_ARRAY.length);
+    }
+
+    @Test
+    public void testFindPoolsByDetailsOrTagsInternalDetailsType() {
+        List<StoragePoolVO> storagePools = primaryDataStoreDao.findPoolsByDetailsOrTagsInternal(DATACENTER_ID, POD_ID, CLUSTER_ID, SCOPE, SQL_VALUES, ValueType.DETAILS, STORAGE_POOL_DETAILS.size());
+        assertEquals(Arrays.asList(storagePoolVO), storagePools);
+        verify(primaryDataStoreDao).getSqlPreparedStatement(
+                primaryDataStoreDao.DetailsSqlPrefix, primaryDataStoreDao.DetailsSqlSuffix, SQL_VALUES, CLUSTER_ID);
+        String expectedSql = primaryDataStoreDao.DetailsSqlPrefix + SQL_VALUES + primaryDataStoreDao.DetailsSqlSuffix;
+        verify(primaryDataStoreDao).searchStoragePoolsPreparedStatement(expectedSql, DATACENTER_ID, POD_ID, CLUSTER_ID, SCOPE, STORAGE_POOL_DETAILS.size());
+    }
+}
diff --git a/engine/service/pom.xml b/engine/service/pom.xml
index 6bcf01e..3adbb0b 100644
--- a/engine/service/pom.xml
+++ b/engine/service/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <artifactId>cloud-engine-service</artifactId>
   <packaging>war</packaging>
diff --git a/engine/storage/cache/pom.xml b/engine/storage/cache/pom.xml
index ab99e55..6bb3fae 100644
--- a/engine/storage/cache/pom.xml
+++ b/engine/storage/cache/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/storage/cache/resources/META-INF/cloudstack/core/spring-engine-storage-cache-core-context.xml b/engine/storage/cache/resources/META-INF/cloudstack/core/spring-engine-storage-cache-core-context.xml
index 7b8e2a4..f98b06d 100644
--- a/engine/storage/cache/resources/META-INF/cloudstack/core/spring-engine-storage-cache-core-context.xml
+++ b/engine/storage/cache/resources/META-INF/cloudstack/core/spring-engine-storage-cache-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="storageCacheRandomAllocator"
diff --git a/engine/storage/datamotion/pom.xml b/engine/storage/datamotion/pom.xml
index 39a3d51..91494aa 100644
--- a/engine/storage/datamotion/pom.xml
+++ b/engine/storage/datamotion/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/storage/datamotion/resources/META-INF/cloudstack/core/spring-engine-storage-datamotion-core-context.xml b/engine/storage/datamotion/resources/META-INF/cloudstack/core/spring-engine-storage-datamotion-core-context.xml
index 3bde768..3b09a85 100644
--- a/engine/storage/datamotion/resources/META-INF/cloudstack/core/spring-engine-storage-datamotion-core-context.xml
+++ b/engine/storage/datamotion/resources/META-INF/cloudstack/core/spring-engine-storage-datamotion-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="dataMotionServiceImpl"
diff --git a/engine/storage/datamotion/resources/META-INF/cloudstack/storage/spring-engine-storage-datamotion-storage-context.xml b/engine/storage/datamotion/resources/META-INF/cloudstack/storage/spring-engine-storage-datamotion-storage-context.xml
index fb69da5..1cefc51 100644
--- a/engine/storage/datamotion/resources/META-INF/cloudstack/storage/spring-engine-storage-datamotion-storage-context.xml
+++ b/engine/storage/datamotion/resources/META-INF/cloudstack/storage/spring-engine-storage-datamotion-storage-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
     <bean id="ancientDataMotionStrategy"
         class="org.apache.cloudstack.storage.motion.AncientDataMotionStrategy" />
diff --git a/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java b/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
index 3124666..57e4181 100644
--- a/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
+++ b/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
@@ -45,6 +45,7 @@
 import org.apache.cloudstack.storage.RemoteHostEndPoint;
 import org.apache.cloudstack.storage.command.CopyCommand;
 import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
+import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -56,8 +57,10 @@
 import com.cloud.agent.api.to.DataTO;
 import com.cloud.agent.api.to.NfsTO;
 import com.cloud.agent.api.to.VirtualMachineTO;
+import com.cloud.capacity.CapacityManager;
 import com.cloud.configuration.Config;
 import com.cloud.host.Host;
+import com.cloud.hypervisor.Hypervisor;
 import com.cloud.storage.DataStoreRole;
 import com.cloud.storage.Storage.StoragePoolType;
 import com.cloud.storage.StoragePool;
@@ -153,7 +156,7 @@
                 srcForCopy = cacheData = cacheMgr.createCacheObject(srcData, destScope);
             }
 
-            CopyCommand cmd = new CopyCommand(srcForCopy.getTO(), destData.getTO(), _primaryStorageDownloadWait, VirtualMachineManager.ExecuteInSequence.value());
+            CopyCommand cmd = new CopyCommand(srcForCopy.getTO(), addFullCloneFlagOnVMwareDest(destData.getTO()), _primaryStorageDownloadWait, VirtualMachineManager.ExecuteInSequence.value());
             EndPoint ep = destHost != null ? RemoteHostEndPoint.getHypervisorHostEndPoint(destHost) : selector.select(srcForCopy, destData);
             if (ep == null) {
                 String errMsg = "No remote endpoint to send command, check if host or ssvm is down?";
@@ -201,6 +204,23 @@
         }
     }
 
+    /**
+     * Adds {@code 'vmware.create.full.clone'} value for a given primary storage, whose HV is VMware, on datastore's {@code fullCloneFlag} field
+     * @param dataTO Dest data store TO
+     * @return dataTO including fullCloneFlag, if provided
+     */
+    protected DataTO addFullCloneFlagOnVMwareDest(DataTO dataTO) {
+        if (dataTO != null && dataTO.getHypervisorType().equals(Hypervisor.HypervisorType.VMware)){
+            DataStoreTO dataStoreTO = dataTO.getDataStore();
+            if (dataStoreTO != null && dataStoreTO instanceof PrimaryDataStoreTO){
+                PrimaryDataStoreTO primaryDataStoreTO = (PrimaryDataStoreTO) dataStoreTO;
+                Boolean value = CapacityManager.VmwareCreateCloneFull.valueIn(primaryDataStoreTO.getId());
+                primaryDataStoreTO.setFullCloneFlag(value);
+            }
+        }
+        return dataTO;
+    }
+
     protected Answer copyObject(DataObject srcData, DataObject destData) {
         return copyObject(srcData, destData, null);
     }
@@ -257,7 +277,7 @@
                 ep = selector.select(srcData, volObj);
             }
 
-            CopyCommand cmd = new CopyCommand(srcData.getTO(), volObj.getTO(), _createVolumeFromSnapshotWait, VirtualMachineManager.ExecuteInSequence.value());
+            CopyCommand cmd = new CopyCommand(srcData.getTO(), addFullCloneFlagOnVMwareDest(volObj.getTO()), _createVolumeFromSnapshotWait, VirtualMachineManager.ExecuteInSequence.value());
             Answer answer = null;
             if (ep == null) {
                 String errMsg = "No remote endpoint to send command, check if host or ssvm is down?";
@@ -280,7 +300,7 @@
     }
 
     protected Answer cloneVolume(DataObject template, DataObject volume) {
-        CopyCommand cmd = new CopyCommand(template.getTO(), volume.getTO(), 0, VirtualMachineManager.ExecuteInSequence.value());
+        CopyCommand cmd = new CopyCommand(template.getTO(), addFullCloneFlagOnVMwareDest(volume.getTO()), 0, VirtualMachineManager.ExecuteInSequence.value());
         try {
             EndPoint ep = selector.select(volume.getDataStore());
             Answer answer = null;
@@ -330,7 +350,7 @@
 
             objOnImageStore.processEvent(Event.CopyingRequested);
 
-            CopyCommand cmd = new CopyCommand(objOnImageStore.getTO(), destData.getTO(), _copyvolumewait, VirtualMachineManager.ExecuteInSequence.value());
+            CopyCommand cmd = new CopyCommand(objOnImageStore.getTO(), addFullCloneFlagOnVMwareDest(destData.getTO()), _copyvolumewait, VirtualMachineManager.ExecuteInSequence.value());
             EndPoint ep = selector.select(objOnImageStore, destData);
             if (ep == null) {
                 String errMsg = "No remote endpoint to send command, check if host or ssvm is down?";
@@ -477,7 +497,7 @@
             ep = selector.select(srcData, destData);
         }
 
-        CopyCommand cmd = new CopyCommand(srcData.getTO(), destData.getTO(), _createprivatetemplatefromsnapshotwait, VirtualMachineManager.ExecuteInSequence.value());
+        CopyCommand cmd = new CopyCommand(srcData.getTO(), addFullCloneFlagOnVMwareDest(destData.getTO()), _createprivatetemplatefromsnapshotwait, VirtualMachineManager.ExecuteInSequence.value());
         Answer answer = null;
         if (ep == null) {
             String errMsg = "No remote endpoint to send command, check if host or ssvm is down?";
@@ -513,7 +533,7 @@
                 Scope selectedScope = pickCacheScopeForCopy(srcData, destData);
                 cacheData = cacheMgr.getCacheObject(srcData, selectedScope);
 
-                CopyCommand cmd = new CopyCommand(srcData.getTO(), destData.getTO(), _backupsnapshotwait, VirtualMachineManager.ExecuteInSequence.value());
+                CopyCommand cmd = new CopyCommand(srcData.getTO(), addFullCloneFlagOnVMwareDest(destData.getTO()), _backupsnapshotwait, VirtualMachineManager.ExecuteInSequence.value());
                 cmd.setCacheTO(cacheData.getTO());
                 cmd.setOptions(options);
                 EndPoint ep = selector.select(srcData, destData);
@@ -525,6 +545,7 @@
                     answer = ep.sendMessage(cmd);
                 }
             } else {
+                addFullCloneFlagOnVMwareDest(destData.getTO());
                 CopyCommand cmd = new CopyCommand(srcData.getTO(), destData.getTO(), _backupsnapshotwait, VirtualMachineManager.ExecuteInSequence.value());
                 cmd.setOptions(options);
                 EndPoint ep = selector.select(srcData, destData, StorageAction.BACKUPSNAPSHOT);
diff --git a/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java b/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java
index 7a59ad0..2b72290 100644
--- a/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java
+++ b/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java
@@ -18,53 +18,16 @@
  */
 package org.apache.cloudstack.storage.motion;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.concurrent.ExecutionException;
-
-import javax.inject.Inject;
-
+import com.cloud.agent.AgentManager;
+import com.cloud.agent.api.to.DataStoreTO;
+import com.cloud.agent.api.to.DataTO;
+import com.cloud.agent.api.to.DiskTO;
+import com.cloud.agent.api.to.NfsTO;
+import com.cloud.agent.api.to.VirtualMachineTO;
+import com.cloud.configuration.Config;
 import com.cloud.dc.dao.ClusterDao;
 import com.cloud.exception.AgentUnavailableException;
 import com.cloud.exception.OperationTimedoutException;
-
-import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataMotionStrategy;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.StrategyPriority;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService.VolumeApiResult;
-import org.apache.cloudstack.framework.async.AsyncCallFuture;
-import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.storage.command.CopyCmdAnswer;
-import org.apache.cloudstack.storage.command.CopyCommand;
-import org.apache.cloudstack.storage.command.ResignatureAnswer;
-import org.apache.cloudstack.storage.command.ResignatureCommand;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.cloudstack.storage.to.VolumeObjectTO;
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.to.DiskTO;
-import com.cloud.agent.api.to.VirtualMachineTO;
-import com.cloud.configuration.Config;
 import com.cloud.host.Host;
 import com.cloud.host.HostVO;
 import com.cloud.host.dao.HostDao;
@@ -73,6 +36,7 @@
 import com.cloud.server.ManagementService;
 import com.cloud.storage.DataStoreRole;
 import com.cloud.storage.DiskOfferingVO;
+import com.cloud.storage.Snapshot;
 import com.cloud.storage.SnapshotVO;
 import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.VolumeDetailVO;
@@ -86,8 +50,54 @@
 import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.vm.VirtualMachineManager;
-
 import com.google.common.base.Preconditions;
+import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.ClusterScope;
+import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataMotionStrategy;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
+import org.apache.cloudstack.engine.subsystem.api.storage.HostScope;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
+import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.StorageCacheManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.StrategyPriority;
+import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService.VolumeApiResult;
+import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
+import org.apache.cloudstack.framework.async.AsyncCallFuture;
+import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.storage.command.CopyCmdAnswer;
+import org.apache.cloudstack.storage.command.CopyCommand;
+import org.apache.cloudstack.storage.command.ResignatureAnswer;
+import org.apache.cloudstack.storage.command.ResignatureCommand;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import javax.inject.Inject;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 @Component
 public class StorageSystemDataMotionStrategy implements DataMotionStrategy {
@@ -109,7 +119,8 @@
     @Inject private VolumeDataFactory _volumeDataFactory;
     @Inject private VolumeDetailsDao volumeDetailsDao;
     @Inject private VolumeService _volumeService;
-
+    @Inject private StorageCacheManager cacheMgr;
+    @Inject private EndPointSelector selector;
     @Override
     public StrategyPriority canHandle(DataObject srcData, DataObject destData) {
         if (srcData instanceof SnapshotInfo) {
@@ -180,9 +191,9 @@
 
             boolean canHandleSrc = canHandle(srcData);
 
-            if (canHandleSrc && destData instanceof TemplateInfo &&
+            if (canHandleSrc && (destData instanceof TemplateInfo || destData instanceof SnapshotInfo) &&
                     (destData.getDataStore().getRole() == DataStoreRole.Image || destData.getDataStore().getRole() == DataStoreRole.ImageCache)) {
-                handleCreateTemplateFromSnapshot(snapshotInfo, (TemplateInfo)destData, callback);
+                handleCopyDataToSecondaryStorage(snapshotInfo, destData, callback);
 
                 return;
             }
@@ -207,16 +218,13 @@
                     }
                 }
 
-                if (canHandleSrc) {
-                    String errMsg = "This operation is not supported (DataStoreCapabilities.STORAGE_SYSTEM_SNAPSHOT " +
-                            "not supported by destination storage plug-in). " + getDestDataStoreMsg(destData);
+                if (canHandleDest) {
+                    handleCreateVolumeFromSnapshotOnSecondaryStorage(snapshotInfo, volumeInfo, callback);
 
-                    LOGGER.warn(errMsg);
-
-                    throw new UnsupportedOperationException(errMsg);
+                    return;
                 }
 
-                if (canHandleDest) {
+                if (canHandleSrc) {
                     String errMsg = "This operation is not supported (DataStoreCapabilities.STORAGE_SYSTEM_SNAPSHOT " +
                             "not supported by source storage plug-in). " + getSrcDataStoreMsg(srcData);
 
@@ -280,7 +288,72 @@
         return Boolean.parseBoolean(property);
     }
 
-    private void handleCreateTemplateFromSnapshot(SnapshotInfo snapshotInfo, TemplateInfo templateInfo, AsyncCompletionCallback<CopyCommandResult> callback) {
+    protected boolean needCacheStorage(DataObject srcData, DataObject destData) {
+        DataTO srcTO = srcData.getTO();
+        DataStoreTO srcStoreTO = srcTO.getDataStore();
+        DataTO destTO = destData.getTO();
+        DataStoreTO destStoreTO = destTO.getDataStore();
+
+        // both snapshot and volume are on primary datastore. No need for a cache storage as
+        // hypervisor will copy directly
+        if (srcStoreTO instanceof PrimaryDataStoreTO && destStoreTO instanceof PrimaryDataStoreTO) {
+            return false;
+        }
+
+        if (srcStoreTO instanceof NfsTO || srcStoreTO.getRole() == DataStoreRole.ImageCache) {
+            return false;
+        }
+
+
+        if (destStoreTO instanceof NfsTO || destStoreTO.getRole() == DataStoreRole.ImageCache) {
+            return false;
+        }
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("needCacheStorage true, dest at " + destTO.getPath() + " dest role " + destStoreTO.getRole().toString() + srcTO.getPath() + " src role " +
+                srcStoreTO.getRole().toString());
+        }
+        return true;
+    }
+
+    private Scope pickCacheScopeForCopy(DataObject srcData, DataObject destData) {
+        Scope srcScope = srcData.getDataStore().getScope();
+        Scope destScope = destData.getDataStore().getScope();
+
+        Scope selectedScope = null;
+        if (srcScope.getScopeId() != null) {
+            selectedScope = getZoneScope(srcScope);
+        } else if (destScope.getScopeId() != null) {
+            selectedScope = getZoneScope(destScope);
+        } else {
+            LOGGER.warn("Cannot find a zone-wide scope for movement that needs a cache storage");
+        }
+        return selectedScope;
+    }
+
+    private Scope getZoneScope(Scope scope) {
+        ZoneScope zoneScope;
+        if (scope instanceof ClusterScope) {
+            ClusterScope clusterScope = (ClusterScope)scope;
+            zoneScope = new ZoneScope(clusterScope.getZoneId());
+        } else if (scope instanceof HostScope) {
+            HostScope hostScope = (HostScope)scope;
+            zoneScope = new ZoneScope(hostScope.getZoneId());
+        } else {
+            zoneScope = (ZoneScope)scope;
+        }
+        return zoneScope;
+    }
+
+    /**
+     * This function is responsible for copying a volume from the managed store to a secondary store. This is used in two cases
+     * 1) When creating a template from a snapshot
+     * 2) When createSnapshot is called with location=SECONDARY
+     *
+     * @param snapshotInfo Source snapshot
+     * @param destData destination (can be template or snapshot)
+     * @param callback callback for async
+     */
+    private void handleCopyDataToSecondaryStorage(SnapshotInfo snapshotInfo, DataObject destData, AsyncCompletionCallback<CopyCommandResult> callback) {
         try {
             snapshotInfo.processEvent(Event.CopyingRequested);
         }
@@ -292,6 +365,16 @@
 
         boolean usingBackendSnapshot = usingBackendSnapshotFor(snapshotInfo);
         boolean computeClusterSupportsResign = clusterDao.getSupportsResigning(hostVO.getClusterId());
+        boolean needCache = needCacheStorage(snapshotInfo, destData);
+
+        DataObject destOnStore = destData;
+
+        if (needCache) {
+            // creates an object in the DB for data to be cached
+            Scope selectedScope = pickCacheScopeForCopy(snapshotInfo, destData);
+            destOnStore = cacheMgr.getCacheObject(snapshotInfo, selectedScope);
+            destOnStore.processEvent(Event.CreateOnlyRequested);
+        }
 
         if (usingBackendSnapshot && !computeClusterSupportsResign) {
             String noSupportForResignErrMsg = "Unable to locate an applicable host with which to perform a resignature operation : Cluster ID = " + hostVO.getClusterId();
@@ -310,16 +393,15 @@
 
             String value = _configDao.getValue(Config.PrimaryStorageDownloadWait.toString());
             int primaryStorageDownloadWait = NumbersUtil.parseInt(value, Integer.parseInt(Config.PrimaryStorageDownloadWait.getDefaultValue()));
-            CopyCommand copyCommand = new CopyCommand(snapshotInfo.getTO(), templateInfo.getTO(), primaryStorageDownloadWait, VirtualMachineManager.ExecuteInSequence.value());
+            CopyCommand copyCommand = new CopyCommand(snapshotInfo.getTO(), destOnStore.getTO(), primaryStorageDownloadWait, VirtualMachineManager.ExecuteInSequence.value());
 
             String errMsg = null;
-
             CopyCmdAnswer copyCmdAnswer = null;
 
             try {
                 // If we are using a back-end snapshot, then we should still have access to it from the hosts in the cluster that hostVO is in
                 // (because we passed in true as the third parameter to createVolumeFromSnapshot above).
-                if (usingBackendSnapshot == false) {
+                if (!usingBackendSnapshot) {
                     _volumeService.grantAccess(snapshotInfo, hostVO, srcDataStore);
                 }
 
@@ -328,25 +410,56 @@
                 copyCommand.setOptions(srcDetails);
 
                 copyCmdAnswer = (CopyCmdAnswer)_agentMgr.send(hostVO.getId(), copyCommand);
-            }
-            catch (CloudRuntimeException | AgentUnavailableException | OperationTimedoutException ex) {
+
+                if (!copyCmdAnswer.getResult()) {
+                    // We were not able to copy. Handle it.
+                    errMsg = copyCmdAnswer.getDetails();
+
+                    throw new CloudRuntimeException(errMsg);
+                }
+
+                if (needCache) {
+                    // If cached storage was needed (in case of object store as secondary
+                    // storage), at this point, the data has been copied from the primary
+                    // to the NFS cache by the hypervisor. We now invoke another copy
+                    // command to copy this data from cache to secondary storage. We
+                    // then cleanup the cache
+
+                    destOnStore.processEvent(Event.OperationSuccessed, copyCmdAnswer);
+
+                    CopyCommand cmd = new CopyCommand(destOnStore.getTO(), destData.getTO(), primaryStorageDownloadWait, VirtualMachineManager.ExecuteInSequence.value());
+                    EndPoint ep = selector.select(destOnStore, destData);
+
+                    if (ep == null) {
+                        errMsg = "No remote endpoint to send command, check if host or ssvm is down?";
+
+                        LOGGER.error(errMsg);
+
+                        copyCmdAnswer = new CopyCmdAnswer(errMsg);
+                    } else {
+                        copyCmdAnswer = (CopyCmdAnswer)ep.sendMessage(cmd);
+                    }
+
+                    // clean up snapshot copied to staging
+                    cacheMgr.deleteCacheObject(destOnStore);
+                }
+
+            } catch (CloudRuntimeException | AgentUnavailableException | OperationTimedoutException ex) {
                 String msg = "Failed to create template from snapshot (Snapshot ID = " + snapshotInfo.getId() + ") : ";
 
                 LOGGER.warn(msg, ex);
 
                 throw new CloudRuntimeException(msg + ex.getMessage());
-            }
-            finally {
-                try {
-                    _volumeService.revokeAccess(snapshotInfo, hostVO, srcDataStore);
-                }
-                catch (Exception ex) {
-                    LOGGER.warn("Error revoking access to snapshot (Snapshot ID = " + snapshotInfo.getId() + "): " + ex.getMessage(), ex);
-                }
+            } finally {
+                _volumeService.revokeAccess(snapshotInfo, hostVO, srcDataStore);
 
                 if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
                     if (copyCmdAnswer != null && !StringUtils.isEmpty(copyCmdAnswer.getDetails())) {
                         errMsg = copyCmdAnswer.getDetails();
+
+                        if (needCache) {
+                            cacheMgr.deleteCacheObject(destOnStore);
+                        }
                     }
                     else {
                         errMsg = "Unable to create template from snapshot";
@@ -380,6 +493,66 @@
     }
 
     /**
+     * Creates a volume on the storage from a snapshot that resides on the secondary storage (archived snapshot).
+     * @param snapshotInfo snapshot on secondary
+     * @param volumeInfo volume to be created on the storage
+     * @param callback  for async
+     */
+    private void handleCreateVolumeFromSnapshotOnSecondaryStorage(SnapshotInfo snapshotInfo, VolumeInfo volumeInfo, AsyncCompletionCallback<CopyCommandResult> callback) {
+        // at this point, the snapshotInfo and volumeInfo should have the same disk offering ID (so either one should be OK to get a DiskOfferingVO instance)
+        DiskOfferingVO diskOffering = _diskOfferingDao.findByIdIncludingRemoved(volumeInfo.getDiskOfferingId());
+        SnapshotVO snapshot = _snapshotDao.findById(snapshotInfo.getId());
+
+        // update the volume's hv_ss_reserve (hypervisor snapshot reserve) from a disk offering (used for managed storage)
+        _volumeService.updateHypervisorSnapshotReserveForVolume(diskOffering, volumeInfo.getId(), snapshot.getHypervisorType());
+
+        CopyCmdAnswer copyCmdAnswer = null;
+        String errMsg = null;
+
+        HostVO hostVO = null;
+
+        try {
+            // create a volume on the storage
+            AsyncCallFuture<VolumeApiResult> future = _volumeService.createVolumeAsync(volumeInfo, volumeInfo.getDataStore());
+            VolumeApiResult result = future.get();
+
+            if (result.isFailed()) {
+                LOGGER.error("Failed to create a volume: " + result.getResult());
+                throw new CloudRuntimeException(result.getResult());
+            }
+
+            volumeInfo = _volumeDataFactory.getVolume(volumeInfo.getId(), volumeInfo.getDataStore());
+
+            volumeInfo.processEvent(Event.MigrationRequested);
+
+            volumeInfo = _volumeDataFactory.getVolume(volumeInfo.getId(), volumeInfo.getDataStore());
+
+            hostVO = getHost(snapshotInfo.getDataCenterId(), false);
+
+            // copy the volume from secondary via the hypervisor
+            copyCmdAnswer = performCopyOfVdi(volumeInfo, snapshotInfo, hostVO);
+
+            if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
+                if (copyCmdAnswer != null && !StringUtils.isEmpty(copyCmdAnswer.getDetails())) {
+                    errMsg = copyCmdAnswer.getDetails();
+                }
+                else {
+                    errMsg = "Unable to create volume from snapshot";
+                }
+            }
+        }
+        catch (Exception ex) {
+            errMsg = ex.getMessage() != null ? ex.getMessage() : "Copy operation failed in 'StorageSystemDataMotionStrategy.handleCreateVolumeFromSnapshotBothOnStorageSystem'";
+        }
+
+        CopyCommandResult result = new CopyCommandResult(null, copyCmdAnswer);
+
+        result.setResult(errMsg);
+
+        callback.complete(result);
+    }
+
+    /**
      * Clones a template present on the storage to a new volume and resignatures it.
      *
      * @param templateInfo   source template
@@ -418,7 +591,9 @@
             volumeDetail = volumeDetailsDao.persist(volumeDetail);
 
             AsyncCallFuture<VolumeApiResult> future = _volumeService.createVolumeAsync(volumeInfo, volumeInfo.getDataStore());
-            VolumeApiResult result = future.get();
+            int storagePoolMaxWaitSeconds = NumbersUtil.parseInt(_configDao.getValue(Config.StoragePoolMaxWaitSeconds.key()), 3600);
+
+            VolumeApiResult result = future.get(storagePoolMaxWaitSeconds, TimeUnit.SECONDS);
 
             if (volumeDetail != null) {
                 volumeDetailsDao.remove(volumeDetail.getId());
@@ -426,14 +601,11 @@
 
             if (result.isFailed()) {
                 LOGGER.warn("Failed to create a volume: " + result.getResult());
-
                 throw new CloudRuntimeException(result.getResult());
             }
 
             volumeInfo = _volumeDataFactory.getVolume(volumeInfo.getId(), volumeInfo.getDataStore());
-
             volumeInfo.processEvent(Event.MigrationRequested);
-
             volumeInfo = _volumeDataFactory.getVolume(volumeInfo.getId(), volumeInfo.getDataStore());
 
             copyCmdAnswer = performResignature(volumeInfo, hostVO);
@@ -441,12 +613,11 @@
             if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
                 if (copyCmdAnswer != null && !StringUtils.isEmpty(copyCmdAnswer.getDetails())) {
                     throw new CloudRuntimeException(copyCmdAnswer.getDetails());
-                }
-                else {
+                } else {
                     throw new CloudRuntimeException("Unable to create a volume from a template");
                 }
             }
-        } catch (InterruptedException | ExecutionException ex) {
+        } catch (InterruptedException | ExecutionException | TimeoutException ex ) {
             volumeInfo.getDataStore().getDriver().deleteAsync(volumeInfo.getDataStore(), volumeInfo, null);
 
             throw new CloudRuntimeException("Create volume from template (ID = " + templateInfo.getId() + ") failed " + ex.getMessage());
@@ -574,8 +745,7 @@
         if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
             if (copyCmdAnswer != null && !StringUtils.isEmpty(copyCmdAnswer.getDetails())) {
                 throw new CloudRuntimeException(copyCmdAnswer.getDetails());
-            }
-            else {
+            } else {
                 throw new CloudRuntimeException("Unable to create volume from snapshot");
             }
         }
@@ -656,7 +826,7 @@
     }
 
     private Map<String, String> getSnapshotDetails(SnapshotInfo snapshotInfo) {
-        Map<String, String> snapshotDetails = new HashMap<String, String>();
+        Map<String, String> snapshotDetails = new HashMap<>();
 
         long storagePoolId = snapshotInfo.getDataStore().getId();
         StoragePoolVO storagePoolVO = _storagePoolDao.findById(storagePoolId);
@@ -802,21 +972,56 @@
         return new CopyCmdAnswer(newVolume);
     }
 
+    protected DataObject cacheSnapshotChain(SnapshotInfo snapshot, Scope scope) {
+        DataObject leafData = null;
+        DataStore store = cacheMgr.getCacheStorage(snapshot, scope);
+        while (snapshot != null) {
+            DataObject cacheData = cacheMgr.createCacheObject(snapshot, store);
+            if (leafData == null) {
+                leafData = cacheData;
+            }
+            snapshot = snapshot.getParent();
+        }
+        return leafData;
+    }
+
+    /**
+     * Copies data from secondary storage to a primary volume
+     * @param volumeInfo The primary volume
+     * @param snapshotInfo  destination of the copy
+     * @param hostVO the host used to copy the data
+     * @return result of the copy
+     */
     private CopyCmdAnswer performCopyOfVdi(VolumeInfo volumeInfo, SnapshotInfo snapshotInfo, HostVO hostVO) {
+        Snapshot.LocationType locationType = snapshotInfo.getLocationType();
+
         String value = _configDao.getValue(Config.PrimaryStorageDownloadWait.toString());
         int primaryStorageDownloadWait = NumbersUtil.parseInt(value, Integer.parseInt(Config.PrimaryStorageDownloadWait.getDefaultValue()));
-        CopyCommand copyCommand = new CopyCommand(snapshotInfo.getTO(), volumeInfo.getTO(), primaryStorageDownloadWait, VirtualMachineManager.ExecuteInSequence.value());
 
+        DataObject srcData = snapshotInfo;
         CopyCmdAnswer copyCmdAnswer = null;
+        DataObject cacheData = null;
+
+        boolean needCacheStorage = needCacheStorage(snapshotInfo, volumeInfo);
+
+        if (needCacheStorage) {
+            cacheData = cacheSnapshotChain(snapshotInfo, new ZoneScope(volumeInfo.getDataCenterId()));
+            srcData = cacheData;
+        }
+
+        CopyCommand copyCommand = new CopyCommand(srcData.getTO(), volumeInfo.getTO(), primaryStorageDownloadWait, VirtualMachineManager.ExecuteInSequence.value());
 
         try {
-            _volumeService.grantAccess(snapshotInfo, hostVO, snapshotInfo.getDataStore());
+            if (Snapshot.LocationType.PRIMARY.equals(locationType)) {
+                _volumeService.grantAccess(snapshotInfo, hostVO, snapshotInfo.getDataStore());
+
+                Map<String, String> srcDetails = getSnapshotDetails(snapshotInfo);
+
+                copyCommand.setOptions(srcDetails);
+            }
+
             _volumeService.grantAccess(volumeInfo, hostVO, volumeInfo.getDataStore());
 
-            Map<String, String> srcDetails = getSnapshotDetails(snapshotInfo);
-
-            copyCommand.setOptions(srcDetails);
-
             Map<String, String> destDetails = getVolumeDetails(volumeInfo);
 
             copyCommand.setOptions2(destDetails);
@@ -831,8 +1036,15 @@
             throw new CloudRuntimeException(msg + ex.getMessage());
         }
         finally {
-            _volumeService.revokeAccess(snapshotInfo, hostVO, snapshotInfo.getDataStore());
+            if (Snapshot.LocationType.PRIMARY.equals(locationType)) {
+                _volumeService.revokeAccess(snapshotInfo, hostVO, snapshotInfo.getDataStore());
+            }
+
             _volumeService.revokeAccess(volumeInfo, hostVO, volumeInfo.getDataStore());
+
+            if (needCacheStorage && copyCmdAnswer != null && copyCmdAnswer.getResult()) {
+                cacheMgr.deleteCacheObject(cacheData);
+            }
         }
 
         return copyCmdAnswer;
diff --git a/engine/storage/datamotion/test/org/apache/cloudstack/storage/motion/AncientDataMotionStrategyTest.java b/engine/storage/datamotion/test/org/apache/cloudstack/storage/motion/AncientDataMotionStrategyTest.java
new file mode 100755
index 0000000..dccb6b4
--- /dev/null
+++ b/engine/storage/datamotion/test/org/apache/cloudstack/storage/motion/AncientDataMotionStrategyTest.java
@@ -0,0 +1,99 @@
+/*
+ * 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 org.apache.cloudstack.storage.motion;
+
+import static org.mockito.Mockito.when;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.any;
+
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import com.cloud.agent.api.to.DataTO;
+import com.cloud.capacity.CapacityManager;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(CapacityManager.class)
+public class AncientDataMotionStrategyTest {
+
+    @Spy
+    @InjectMocks
+    private AncientDataMotionStrategy strategy = new AncientDataMotionStrategy();
+
+    @Mock
+    DataTO dataTO;
+    @Mock
+    PrimaryDataStoreTO dataStoreTO;
+    @Mock
+    ConfigKey<Boolean> vmwareKey;
+
+    private static final long POOL_ID = 1l;
+    private static final Boolean FULL_CLONE_FLAG = true;
+
+    @Before
+    public void setup() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        replaceVmwareCreateCloneFullField();
+
+        when(vmwareKey.valueIn(POOL_ID)).thenReturn(FULL_CLONE_FLAG);
+
+        when(dataTO.getHypervisorType()).thenReturn(HypervisorType.VMware);
+        when(dataTO.getDataStore()).thenReturn(dataStoreTO);
+        when(dataStoreTO.getId()).thenReturn(POOL_ID);
+    }
+
+    private void replaceVmwareCreateCloneFullField() throws Exception {
+        Field field = CapacityManager.class.getDeclaredField("VmwareCreateCloneFull");
+        field.setAccessible(true);
+        // remove final modifier from field
+        Field modifiersField = Field.class.getDeclaredField("modifiers");
+        modifiersField.setAccessible(true);
+        modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
+        field.set(null, vmwareKey);
+    }
+
+    @Test
+    public void testAddFullCloneFlagOnVMwareDest(){
+        strategy.addFullCloneFlagOnVMwareDest(dataTO);
+        verify(dataStoreTO).setFullCloneFlag(FULL_CLONE_FLAG);
+    }
+
+    @Test
+    public void testAddFullCloneFlagOnNotVmwareDest(){
+        when(dataTO.getHypervisorType()).thenReturn(HypervisorType.Any);
+        verify(dataStoreTO, never()).setFullCloneFlag(any(Boolean.class));
+    }
+
+}
diff --git a/engine/storage/image/pom.xml b/engine/storage/image/pom.xml
index 86f50f6..d194487 100644
--- a/engine/storage/image/pom.xml
+++ b/engine/storage/image/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/storage/image/resources/META-INF/cloudstack/core/spring-engine-storage-image-core-context.xml b/engine/storage/image/resources/META-INF/cloudstack/core/spring-engine-storage-image-core-context.xml
index 51be9d9..5c7b05b 100644
--- a/engine/storage/image/resources/META-INF/cloudstack/core/spring-engine-storage-image-core-context.xml
+++ b/engine/storage/image/resources/META-INF/cloudstack/core/spring-engine-storage-image-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="templateServiceImpl"
diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java b/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
index df277d0..7c1695e 100644
--- a/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
+++ b/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
@@ -18,64 +18,17 @@
  */
 package org.apache.cloudstack.storage.image;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.inject.Inject;
-
-import com.cloud.configuration.Resource;
-import com.cloud.event.EventTypes;
-import com.cloud.event.UsageEventUtils;
-import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
-import org.apache.cloudstack.framework.messagebus.MessageBus;
-import org.apache.cloudstack.framework.messagebus.PublishScope;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
-import org.apache.cloudstack.engine.subsystem.api.storage.CreateCmdResult;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataMotionService;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
-import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
-import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
-import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
-import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.State;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.StorageCacheManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateService;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
-import org.apache.cloudstack.framework.async.AsyncCallFuture;
-import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
-import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcContext;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.storage.command.CommandResult;
-import org.apache.cloudstack.storage.command.DeleteCommand;
-import org.apache.cloudstack.storage.datastore.DataObjectManager;
-import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager;
-import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
-import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
-import org.apache.cloudstack.storage.image.store.TemplateObject;
-import org.apache.cloudstack.storage.to.TemplateObjectTO;
-
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.storage.ListTemplateAnswer;
 import com.cloud.agent.api.storage.ListTemplateCommand;
 import com.cloud.alert.AlertManager;
 import com.cloud.configuration.Config;
+import com.cloud.configuration.Resource;
 import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.dao.ClusterDao;
 import com.cloud.dc.dao.DataCenterDao;
+import com.cloud.event.EventTypes;
+import com.cloud.event.UsageEventUtils;
 import com.cloud.exception.ResourceAllocationException;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.storage.DataStoreRole;
@@ -102,6 +55,51 @@
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.fsm.NoTransitionException;
 import com.cloud.utils.fsm.StateMachine2;
+import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
+import org.apache.cloudstack.engine.subsystem.api.storage.CreateCmdResult;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataMotionService;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.State;
+import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.StorageCacheManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.TemplateService;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
+import org.apache.cloudstack.framework.async.AsyncCallFuture;
+import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
+import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.framework.messagebus.MessageBus;
+import org.apache.cloudstack.framework.messagebus.PublishScope;
+import org.apache.cloudstack.storage.command.CommandResult;
+import org.apache.cloudstack.storage.command.DeleteCommand;
+import org.apache.cloudstack.storage.datastore.DataObjectManager;
+import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager;
+import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
+import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
+import org.apache.cloudstack.storage.image.store.TemplateObject;
+import org.apache.cloudstack.storage.to.TemplateObjectTO;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import javax.inject.Inject;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 @Component
 public class TemplateServiceImpl implements TemplateService {
@@ -369,8 +367,10 @@
                                             etype = EventTypes.EVENT_ISO_CREATE;
                                         }
 
-                                        UsageEventUtils.publishUsageEvent(etype, tmplt.getAccountId(), zoneId, tmplt.getId(), tmplt.getName(), null, null,
-                                                tmpltInfo.getPhysicalSize(), tmpltInfo.getSize(), VirtualMachineTemplate.class.getName(), tmplt.getUuid());
+                                        if (zoneId != null) {
+                                            UsageEventUtils.publishUsageEvent(etype, tmplt.getAccountId(), zoneId, tmplt.getId(), tmplt.getName(), null, null,
+                                                    tmpltInfo.getPhysicalSize(), tmpltInfo.getSize(), VirtualMachineTemplate.class.getName(), tmplt.getUuid());
+                                        }
                                     }
 
                                     tmpltStore.setDownloadPercent(100);
diff --git a/engine/storage/integration-test/pom.xml b/engine/storage/integration-test/pom.xml
index 1d35f0f..60b7dda 100644
--- a/engine/storage/integration-test/pom.xml
+++ b/engine/storage/integration-test/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/storage/integration-test/test/resource/fakeDriverTestContext.xml b/engine/storage/integration-test/test/resource/fakeDriverTestContext.xml
index b7ef363..48a99e6 100644
--- a/engine/storage/integration-test/test/resource/fakeDriverTestContext.xml
+++ b/engine/storage/integration-test/test/resource/fakeDriverTestContext.xml
@@ -13,13 +13,13 @@
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                        http://www.springframework.org/schema/beans/spring-beans.xsd
                          http://www.springframework.org/schema/tx
-       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+       http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
-       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+       http://www.springframework.org/schema/aop/spring-aop.xsd
                                  http://www.springframework.org/schema/context
-                                          http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                                          http://www.springframework.org/schema/context/spring-context.xsd">
     <context:annotation-config />
 
     <bean id="componentContext" class="com.cloud.utils.component.ComponentContext" />
@@ -35,8 +35,8 @@
         </property>
     </bean>
 
-    <bean id="imageStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageStoreDaoImpl" />
-    <bean id="imageStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageStoreDetailsDaoImpl" />
+    <bean id="imageStoreDaoImpl" class="org.apache.cloudstack.storage.datastore.db.ImageStoreDaoImpl" />
+    <bean id="imageStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDaoImpl" />
     <bean id="snapshotDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.SnapshotDataStoreDaoImpl" />
     <bean id="templateDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.TemplateDataStoreDaoImpl" />
     <bean id="volumeDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.VolumeDataStoreDaoImpl" />
diff --git a/engine/storage/integration-test/test/resources/StorageAllocatorTestContext.xml b/engine/storage/integration-test/test/resources/StorageAllocatorTestContext.xml
index a981b8e..58074c2 100644
--- a/engine/storage/integration-test/test/resources/StorageAllocatorTestContext.xml
+++ b/engine/storage/integration-test/test/resources/StorageAllocatorTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:annotation-config />
   <context:component-scan base-package="org.apache.cloudstack.storage" />
diff --git a/engine/storage/integration-test/test/resources/component.xml b/engine/storage/integration-test/test/resources/component.xml
index 0981841..66a4aa8 100644
--- a/engine/storage/integration-test/test/resources/component.xml
+++ b/engine/storage/integration-test/test/resources/component.xml
@@ -22,13 +22,13 @@
   xmlns:tx="http://www.springframework.org/schema/tx" 
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">                     
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 
   <!--
diff --git a/engine/storage/integration-test/test/resources/s3_testng.xml b/engine/storage/integration-test/test/resources/s3_testng.xml
index 017cc9b..c46e5a2 100644
--- a/engine/storage/integration-test/test/resources/s3_testng.xml
+++ b/engine/storage/integration-test/test/resources/s3_testng.xml
@@ -23,7 +23,7 @@
   <parameter name="devcloud-host-ip" value="192.168.56.2"/>
   <parameter name="devcloud-host-gateway" value="192.168.56.1"/>
   <parameter name="devcloud-host-cidr" value="192.168.56.0/24"/>
-  <parameter name="template-url" value="http://download.cloud.com/templates/acton/acton-systemvm-02062012.vhd.bz2"/>
+  <parameter name="template-url" value="http://download.cloudstack.org/templates/acton/acton-systemvm-02062012.vhd.bz2"/>
   <parameter name="primary-storage-want-to-add" value="nfs://192.168.56.2/opt/storage/primarynfs"/>
   <parameter name="devcloud-local-storage-uuid" value="cd10cac1-4772-92e5-5da6-c2bc16b1ce1b"/>
   <parameter name="devcloud-host-uuid" value="759ee4c9-a15a-297b-67c6-ac267d8aa429"/>
diff --git a/engine/storage/integration-test/test/resources/storageContext.xml b/engine/storage/integration-test/test/resources/storageContext.xml
index c984515..9154eda 100644
--- a/engine/storage/integration-test/test/resources/storageContext.xml
+++ b/engine/storage/integration-test/test/resources/storageContext.xml
@@ -13,13 +13,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                        http://www.springframework.org/schema/beans/spring-beans.xsd
                          http://www.springframework.org/schema/tx 
-       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+       http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
-       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+       http://www.springframework.org/schema/aop/spring-aop.xsd
                                  http://www.springframework.org/schema/context
-                                          http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                                          http://www.springframework.org/schema/context/spring-context.xsd">
   <context:annotation-config />
     
    <bean id="componentContext" class="com.cloud.utils.component.ComponentContext" />
@@ -35,8 +35,8 @@
     </property>
   </bean>
 
-<bean id="imageStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageStoreDaoImpl" />
-  <bean id="imageStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.image.db.ImageStoreDetailsDaoImpl" /> 
+<bean id="imageStoreDaoImpl" class="org.apache.cloudstack.storage.datastore.db.ImageStoreDaoImpl" />
+  <bean id="imageStoreDetailsDaoImpl" class="org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDaoImpl" /> 
   <bean id="snapshotDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.SnapshotDataStoreDaoImpl" /> 
   <bean id="templateDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.TemplateDataStoreDaoImpl" /> 
   <bean id="volumeDataStoreDaoImpl" class="org.apache.cloudstack.storage.image.db.VolumeDataStoreDaoImpl" />   
diff --git a/engine/storage/pom.xml b/engine/storage/pom.xml
index ccfd074..1c8ce4e 100644
--- a/engine/storage/pom.xml
+++ b/engine/storage/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/storage/resources/META-INF/cloudstack/core/spring-engine-storage-core-context.xml b/engine/storage/resources/META-INF/cloudstack/core/spring-engine-storage-core-context.xml
index a45e4ee..33385b5 100644
--- a/engine/storage/resources/META-INF/cloudstack/core/spring-engine-storage-core-context.xml
+++ b/engine/storage/resources/META-INF/cloudstack/core/spring-engine-storage-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <!--Image formats-->
diff --git a/engine/storage/resources/META-INF/cloudstack/storage-allocator/spring-engine-storage-storage-allocator-context.xml b/engine/storage/resources/META-INF/cloudstack/storage-allocator/spring-engine-storage-storage-allocator-context.xml
index e4e02aa..783c98a 100644
--- a/engine/storage/resources/META-INF/cloudstack/storage-allocator/spring-engine-storage-storage-allocator-context.xml
+++ b/engine/storage/resources/META-INF/cloudstack/storage-allocator/spring-engine-storage-storage-allocator-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="LocalStoragePoolAllocator"
diff --git a/engine/storage/snapshot/pom.xml b/engine/storage/snapshot/pom.xml
index 8f71d0a..f074e25 100644
--- a/engine/storage/snapshot/pom.xml
+++ b/engine/storage/snapshot/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/storage/snapshot/resources/META-INF/cloudstack/core/spring-engine-storage-snapshot-core-context.xml b/engine/storage/snapshot/resources/META-INF/cloudstack/core/spring-engine-storage-snapshot-core-context.xml
index 3088992..cb33f88 100644
--- a/engine/storage/snapshot/resources/META-INF/cloudstack/core/spring-engine-storage-snapshot-core-context.xml
+++ b/engine/storage/snapshot/resources/META-INF/cloudstack/core/spring-engine-storage-snapshot-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="snapshotServiceImpl"
diff --git a/engine/storage/snapshot/resources/META-INF/cloudstack/storage/spring-engine-storage-snapshot-storage-context.xml b/engine/storage/snapshot/resources/META-INF/cloudstack/storage/spring-engine-storage-snapshot-storage-context.xml
index de8d11e..e94ee07 100644
--- a/engine/storage/snapshot/resources/META-INF/cloudstack/storage/spring-engine-storage-snapshot-storage-context.xml
+++ b/engine/storage/snapshot/resources/META-INF/cloudstack/storage/spring-engine-storage-snapshot-storage-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="xenserverSnapshotStrategy"
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java
index 60ff31e..b47f0cf 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java
@@ -191,7 +191,9 @@
             s_logger.debug("Failed to update state:" + e.toString());
             throw new CloudRuntimeException("Failed to update state: " + e.toString());
         } finally {
-            if (event == ObjectInDataStoreStateMachine.Event.OperationFailed) {
+            DataObjectInStore obj = objectInStoreMgr.findObject(this, this.getDataStore());
+            if (event == ObjectInDataStoreStateMachine.Event.OperationFailed && !obj.getState().equals(ObjectInDataStoreStateMachine.State.Destroying)) {
+                // Don't delete db entry if snapshot is successfully removed.
                 objectInStoreMgr.deleteIfNotReady(this);
             }
         }
@@ -239,6 +241,9 @@
     }
 
     @Override
+    public LocationType getLocationType() { return snapshot.getLocationType(); }
+
+    @Override
     public State getState() {
         return snapshot.getState();
     }
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java
index f7f044f..d13df92 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java
@@ -284,7 +284,7 @@
             if (res.isFailed()) {
                 throw new CloudRuntimeException(res.getResult());
             }
-            SnapshotInfo destSnapshot = res.getSnashot();
+            SnapshotInfo destSnapshot = res.getSnapshot();
             return destSnapshot;
         } catch (InterruptedException e) {
             s_logger.debug("failed copy snapshot", e);
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotStateMachineManagerImpl.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotStateMachineManagerImpl.java
index 1cec2dc..9c6e379 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotStateMachineManagerImpl.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotStateMachineManagerImpl.java
@@ -52,6 +52,7 @@
         stateMachine.addTransition(Snapshot.State.Copying, Event.OperationFailed, Snapshot.State.BackedUp);
         stateMachine.addTransition(Snapshot.State.Destroying, Event.OperationSucceeded, Snapshot.State.Destroyed);
         stateMachine.addTransition(Snapshot.State.Destroying, Event.OperationFailed, State.BackedUp);
+        stateMachine.addTransition(Snapshot.State.Destroying, Event.DestroyRequested, Snapshot.State.Destroying);
 
         stateMachine.registerListener(new SnapshotStateListener());
     }
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotStrategyBase.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotStrategyBase.java
index b08a837..ba16e75 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotStrategyBase.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotStrategyBase.java
@@ -28,7 +28,7 @@
 
     @Override
     public SnapshotInfo takeSnapshot(SnapshotInfo snapshot) {
-        return snapshotSvr.takeSnapshot(snapshot).getSnashot();
+        return snapshotSvr.takeSnapshot(snapshot).getSnapshot();
     }
 
     @Override
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java
index 02691ff..2742da6 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java
@@ -16,36 +16,6 @@
 // under the License.
 package org.apache.cloudstack.storage.snapshot;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-
-import javax.inject.Inject;
-
-import org.apache.log4j.Logger;
-import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotResult;
-import org.apache.cloudstack.engine.subsystem.api.storage.StrategyPriority;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
-import org.apache.cloudstack.storage.command.SnapshotAndCopyAnswer;
-import org.apache.cloudstack.storage.command.SnapshotAndCopyCommand;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-
-import org.springframework.stereotype.Component;
-
-import com.google.common.base.Optional;
-
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.to.DiskTO;
 import com.cloud.dc.dao.ClusterDao;
@@ -57,6 +27,7 @@
 import com.cloud.org.Grouping.AllocationState;
 import com.cloud.resource.ResourceState;
 import com.cloud.server.ManagementService;
+import com.cloud.storage.CreateSnapshotPayload;
 import com.cloud.storage.DataStoreRole;
 import com.cloud.storage.Snapshot;
 import com.cloud.storage.SnapshotVO;
@@ -72,6 +43,33 @@
 import com.cloud.utils.fsm.NoTransitionException;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.dao.VMInstanceDao;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotResult;
+import org.apache.cloudstack.engine.subsystem.api.storage.StrategyPriority;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
+import org.apache.cloudstack.storage.command.SnapshotAndCopyAnswer;
+import org.apache.cloudstack.storage.command.SnapshotAndCopyCommand;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import javax.inject.Inject;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
 
 @Component
 public class StorageSystemSnapshotStrategy extends SnapshotStrategyBase {
@@ -92,7 +90,32 @@
 
     @Override
     public SnapshotInfo backupSnapshot(SnapshotInfo snapshotInfo) {
-        return snapshotInfo;
+        Preconditions.checkArgument(snapshotInfo != null, "backupSnapshot expects a valid snapshot");
+
+        if (snapshotInfo.getLocationType() != Snapshot.LocationType.SECONDARY) {
+            markAsBackedUp((SnapshotObject)snapshotInfo);
+
+            return snapshotInfo;
+        }
+
+        // At this point, the snapshot is either taken as a native
+        // snapshot on the storage or exists as a volume on the storage (clone).
+        // If archive flag is passed in, we should copy this snapshot to secondary
+        // storage and delete it from the primary storage.
+
+        HostVO host = getHost(snapshotInfo.getVolumeId());
+        boolean canStorageSystemCreateVolumeFromSnapshot = canStorageSystemCreateVolumeFromSnapshot(snapshotInfo.getBaseVolume().getPoolId());
+        boolean computeClusterSupportsResign = clusterDao.getSupportsResigning(host.getClusterId());
+
+        if (!canStorageSystemCreateVolumeFromSnapshot || !computeClusterSupportsResign) {
+            String msg = "Cannot archive snapshot: canStorageSystemCreateVolumeFromSnapshot and/or computeClusterSupportsResign were false.";
+
+            s_logger.warn(msg);
+
+            throw new CloudRuntimeException(msg);
+        }
+
+        return snapshotSvr.backupSnapshot(snapshotInfo);
     }
 
     @Override
@@ -113,6 +136,19 @@
             throw new InvalidParameterValueException("Unable to delete snapshotshot " + snapshotId + " because it is in the following state: " + snapshotVO.getState());
         }
 
+        return cleanupSnapshotOnPrimaryStore(snapshotId);
+    }
+
+    /**
+     * Cleans up a snapshot which was taken on a primary store. This function
+     * removes
+     *
+     * @param snapshotId: ID of snapshot that needs to be removed
+     * @return true if snapshot is removed, false otherwise
+     */
+
+    private boolean cleanupSnapshotOnPrimaryStore(long snapshotId) {
+
         SnapshotObject snapshotObj = (SnapshotObject)snapshotDataFactory.getSnapshot(snapshotId, DataStoreRole.Primary);
 
         if (snapshotObj == null) {
@@ -153,7 +189,6 @@
 
             return false;
         }
-
         return true;
     }
 
@@ -178,6 +213,8 @@
         }
 
         SnapshotResult result = null;
+        SnapshotInfo snapshotOnPrimary = null;
+        SnapshotInfo backedUpSnapshot = null;
 
         try {
             volumeInfo.stateTransit(Volume.Event.SnapshotRequested);
@@ -212,20 +249,46 @@
                 performSnapshotAndCopyOnHostSide(volumeInfo, snapshotInfo);
             }
 
-            markAsBackedUp((SnapshotObject)result.getSnashot());
+            snapshotOnPrimary = result.getSnapshot();
+            backedUpSnapshot = backupSnapshot(snapshotOnPrimary);
+
+            updateLocationTypeInDb(backedUpSnapshot);
         }
         finally {
             if (result != null && result.isSuccess()) {
                 volumeInfo.stateTransit(Volume.Event.OperationSucceeded);
-            }
-            else {
+
+                if (snapshotOnPrimary != null && snapshotInfo.getLocationType() == Snapshot.LocationType.SECONDARY) {
+                    // remove the snapshot on primary storage
+                    try {
+                        snapshotSvr.deleteSnapshot(snapshotOnPrimary);
+                    } catch (Exception e) {
+                        s_logger.warn("Failed to clean up snapshot on primary Id:" + snapshotOnPrimary.getId() + " "
+                                + e.getMessage());
+                    }
+                }
+            } else {
                 volumeInfo.stateTransit(Volume.Event.OperationFailed);
             }
-
-            snapshotDao.releaseFromLockTable(snapshotInfo.getId());
         }
 
-        return snapshotInfo;
+        snapshotDao.releaseFromLockTable(snapshotInfo.getId());
+
+        return backedUpSnapshot;
+    }
+
+    private void updateLocationTypeInDb(SnapshotInfo snapshotInfo) {
+        Object objPayload = snapshotInfo.getPayload();
+
+        if (objPayload instanceof CreateSnapshotPayload) {
+            CreateSnapshotPayload payload = (CreateSnapshotPayload)objPayload;
+
+            SnapshotVO snapshot = snapshotDao.findById(snapshotInfo.getId());
+
+            snapshot.setLocationType(payload.getLocationType());
+
+            snapshotDao.update(snapshotInfo.getId(), snapshot);
+        }
     }
 
     private boolean canStorageSystemCreateVolumeFromSnapshot(long storagePoolId) {
@@ -519,6 +582,13 @@
 
         DataStore dataStore = dataStoreMgr.getDataStore(storagePoolId, DataStoreRole.Primary);
 
+        Snapshot.LocationType locationType = snapshot.getLocationType();
+
+        // If the snapshot exists on Secondary Storage, we can't delete it.
+        if (SnapshotOperation.DELETE.equals(op) && Snapshot.LocationType.SECONDARY.equals(locationType)) {
+            return StrategyPriority.CANT_HANDLE;
+        }
+
         if (dataStore != null) {
             Map<String, String> mapCapabilities = dataStore.getDriver().getCapabilities();
 
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/XenserverSnapshotStrategy.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/XenserverSnapshotStrategy.java
index 06e05ec..165d356 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/XenserverSnapshotStrategy.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/XenserverSnapshotStrategy.java
@@ -194,18 +194,23 @@
                     }
                 }
                 if (!deleted) {
-                    boolean r = snapshotSvr.deleteSnapshot(snapshot);
-                    if (r) {
-                        // delete snapshot in cache if there is
-                        List<SnapshotInfo> cacheSnaps = snapshotDataFactory.listSnapshotOnCache(snapshot.getId());
-                        for (SnapshotInfo cacheSnap : cacheSnaps) {
-                            s_logger.debug("Delete snapshot " + snapshot.getId() + " from image cache store: " + cacheSnap.getDataStore().getName());
-                            cacheSnap.delete();
+                    try {
+                        boolean r = snapshotSvr.deleteSnapshot(snapshot);
+                        if (r) {
+                            // delete snapshot in cache if there is
+                            List<SnapshotInfo> cacheSnaps = snapshotDataFactory.listSnapshotOnCache(snapshot.getId());
+                            for (SnapshotInfo cacheSnap : cacheSnaps) {
+                                s_logger.debug("Delete snapshot " + snapshot.getId() + " from image cache store: " + cacheSnap.getDataStore().getName());
+                                cacheSnap.delete();
+                            }
                         }
-                    }
-                    if (!resultIsSet) {
-                        result = r;
-                        resultIsSet = true;
+                        if (!resultIsSet) {
+                            result = r;
+                            resultIsSet = true;
+                        }
+                    } catch (Exception e) {
+                        // Snapshots which are not successfully deleted will be retried again.
+                        s_logger.debug("Failed to delete snapshot on storage. ", e);
                     }
                 }
                 snapshot = parent;
@@ -219,6 +224,12 @@
     @Override
     public boolean deleteSnapshot(Long snapshotId) {
         SnapshotVO snapshotVO = snapshotDao.findById(snapshotId);
+
+        if (snapshotVO.getState() == Snapshot.State.Allocated) {
+            snapshotDao.remove(snapshotId);
+            return true;
+        }
+
         if (snapshotVO.getState() == Snapshot.State.Destroyed) {
             return true;
         }
@@ -239,7 +250,8 @@
             return true;
         }
 
-        if (!Snapshot.State.BackedUp.equals(snapshotVO.getState()) && !Snapshot.State.Error.equals(snapshotVO.getState())) {
+        if (!Snapshot.State.BackedUp.equals(snapshotVO.getState()) && !Snapshot.State.Error.equals(snapshotVO.getState()) &&
+                !Snapshot.State.Destroying.equals(snapshotVO.getState())) {
             throw new InvalidParameterValueException("Can't delete snapshotshot " + snapshotId + " due to it is in " + snapshotVO.getState() + " Status");
         }
 
@@ -293,7 +305,7 @@
 
     @Override
     public boolean revertSnapshot(SnapshotInfo snapshot) {
-        if (canHandle(snapshot,SnapshotOperation.REVERT) == StrategyPriority.CANT_HANDLE) {
+        if (canHandle(snapshot, SnapshotOperation.REVERT) == StrategyPriority.CANT_HANDLE) {
             throw new CloudRuntimeException("Reverting not supported. Create a template or volume based on the snapshot instead.");
         }
 
@@ -375,7 +387,7 @@
                 }
             }
 
-            snapshot = result.getSnashot();
+            snapshot = result.getSnapshot();
             DataStore primaryStore = snapshot.getDataStore();
             boolean backupFlag = Boolean.parseBoolean(configDao.getValue(Config.BackupSnapshotAfterTakingSnapshot.toString()));
 
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/vmsnapshot/DefaultVMSnapshotStrategy.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/vmsnapshot/DefaultVMSnapshotStrategy.java
index 13fd54c..71a5e10 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/vmsnapshot/DefaultVMSnapshotStrategy.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/vmsnapshot/DefaultVMSnapshotStrategy.java
@@ -392,4 +392,15 @@
     public StrategyPriority canHandle(VMSnapshot vmSnapshot) {
         return StrategyPriority.DEFAULT;
     }
+
+    @Override
+    public boolean deleteVMSnapshotFromDB(VMSnapshot vmSnapshot) {
+        try {
+            vmSnapshotHelper.vmSnapshotStateTransitTo(vmSnapshot, VMSnapshot.Event.ExpungeRequested);
+        } catch (NoTransitionException e) {
+            s_logger.debug("Failed to change vm snapshot state with event ExpungeRequested");
+            throw new CloudRuntimeException("Failed to change vm snapshot state with event ExpungeRequested: " + e.getMessage());
+        }
+        return vmSnapshotDao.remove(vmSnapshot.getId());
+    }
 }
diff --git a/engine/storage/snapshot/test/resources/SnapshotManagerTestContext.xml b/engine/storage/snapshot/test/resources/SnapshotManagerTestContext.xml
index d99c2e2..a06ba6a 100644
--- a/engine/storage/snapshot/test/resources/SnapshotManagerTestContext.xml
+++ b/engine/storage/snapshot/test/resources/SnapshotManagerTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:annotation-config />
 
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/NfsImageStoreDriverImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/NfsImageStoreDriverImpl.java
index 28d9d46..c7aad89 100755
--- a/engine/storage/src/org/apache/cloudstack/storage/image/NfsImageStoreDriverImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/NfsImageStoreDriverImpl.java
@@ -24,22 +24,23 @@
 
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDao;
 
+import com.cloud.capacity.CapacityManager;
+
 public abstract class NfsImageStoreDriverImpl extends BaseImageStoreDriverImpl {
 
     @Inject
     ImageStoreDetailsDao _imageStoreDetailsDao;
 
-    private static final String NFS_VERSION_DETAILS_KEY = "nfs.version";
-
     /**
      * Retrieve NFS version to be used for imgStoreId store, if provided in image_store_details table
      * @param imgStoreId store id
-     * @return "nfs.version" associated value for imgStoreId in image_store_details table if exists, null if not
+     * @return "secstorage.nfs.version" associated value for imgStoreId in image_store_details table if exists, null if not
      */
     protected Integer getNfsVersion(long imgStoreId){
         Map<String, String> imgStoreDetails = _imageStoreDetailsDao.getDetails(imgStoreId);
-        if (imgStoreDetails != null && imgStoreDetails.containsKey(NFS_VERSION_DETAILS_KEY)){
-            String nfsVersionParam = imgStoreDetails.get(NFS_VERSION_DETAILS_KEY);
+        String nfsVersionKey = CapacityManager.ImageStoreNFSVersion.key();
+        if (imgStoreDetails != null && imgStoreDetails.containsKey(nfsVersionKey)){
+            String nfsVersionParam = imgStoreDetails.get(nfsVersionKey);
             return (nfsVersionParam != null ? Integer.valueOf(nfsVersionParam) : null);
         }
         return null;
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageStoreHelper.java b/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageStoreHelper.java
index 5e29f71..dbb606b 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageStoreHelper.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageStoreHelper.java
@@ -129,15 +129,12 @@
             Iterator<String> keyIter = details.keySet().iterator();
             while (keyIter.hasNext()) {
                 String key = keyIter.next().toString();
-                ImageStoreDetailVO detail = new ImageStoreDetailVO();
-                detail.setStoreId(store.getId());
-                detail.setName(key);
                 String value = details.get(key);
                 // encrypt swift key or s3 secret key
                 if (key.equals(ApiConstants.KEY) || key.equals(ApiConstants.S3_SECRET_KEY)) {
                     value = DBEncryptionUtil.encrypt(value);
                 }
-                detail.setValue(value);
+                ImageStoreDetailVO detail = new ImageStoreDetailVO(store.getId(), key, value, true);
                 imageStoreDetailsDao.persist(detail);
             }
         }
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java
index fea0b77..9ffeae0 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java
@@ -16,25 +16,6 @@
 // under the License.
 package org.apache.cloudstack.storage.image.db;
 
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectInStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
-import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
-import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.State;
-import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
-
 import com.cloud.storage.DataStoreRole;
 import com.cloud.utils.db.DB;
 import com.cloud.utils.db.GenericDaoBase;
@@ -43,6 +24,22 @@
 import com.cloud.utils.db.SearchCriteria.Op;
 import com.cloud.utils.db.TransactionLegacy;
 import com.cloud.utils.db.UpdateBuilder;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectInStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.State;
+import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import javax.naming.ConfigurationException;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 @Component
 public class SnapshotDataStoreDaoImpl extends GenericDaoBase<SnapshotDataStoreVO, Long> implements SnapshotDataStoreDao {
@@ -56,6 +53,7 @@
     private SearchBuilder<SnapshotDataStoreVO> snapshotIdSearch;
     private SearchBuilder<SnapshotDataStoreVO> volumeIdSearch;
     private SearchBuilder<SnapshotDataStoreVO> volumeSearch;
+    private SearchBuilder<SnapshotDataStoreVO> stateSearch;
 
     private final String parentSearch = "select store_id, store_role, snapshot_id from cloud.snapshot_store_ref where store_id = ? "
         + " and store_role = ? and volume_id = ? and state = 'Ready'" + " order by created DESC " + " limit 1";
@@ -103,6 +101,7 @@
         snapshotSearch = createSearchBuilder();
         snapshotSearch.and("snapshot_id", snapshotSearch.entity().getSnapshotId(), SearchCriteria.Op.EQ);
         snapshotSearch.and("store_role", snapshotSearch.entity().getRole(), SearchCriteria.Op.EQ);
+        snapshotSearch.and("state", snapshotSearch.entity().getState(), SearchCriteria.Op.EQ);
         snapshotSearch.done();
 
         storeSnapshotSearch = createSearchBuilder();
@@ -125,6 +124,10 @@
         volumeSearch.and("store_role", volumeSearch.entity().getRole(), SearchCriteria.Op.EQ);
         volumeSearch.done();
 
+        stateSearch = createSearchBuilder();
+        stateSearch.and("state", stateSearch.entity().getState(), SearchCriteria.Op.IN);
+        stateSearch.done();
+
         return true;
     }
 
@@ -294,6 +297,7 @@
         SearchCriteria<SnapshotDataStoreVO> sc = snapshotSearch.create();
         sc.setParameters("snapshot_id", snapshotId);
         sc.setParameters("store_role", role);
+        sc.setParameters("state", State.Ready);
         return findOneBy(sc);
     }
 
@@ -408,4 +412,11 @@
         UpdateBuilder ub = getUpdateBuilder(snapshot);
         update(ub, sc, null);
     }
+
+    @Override
+    public List<SnapshotDataStoreVO> listByState(ObjectInDataStoreStateMachine.State... states) {
+        SearchCriteria<SnapshotDataStoreVO> sc = stateSearch.create();
+        sc.setParameters("state", (Object[])states);
+        return listBy(sc, null);
+    }
 }
diff --git a/engine/storage/src/org/apache/cloudstack/storage/snapshot/SnapshotEntityImpl.java b/engine/storage/src/org/apache/cloudstack/storage/snapshot/SnapshotEntityImpl.java
index a660f41..3cea3ea 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/snapshot/SnapshotEntityImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/snapshot/SnapshotEntityImpl.java
@@ -185,6 +185,11 @@
     }
 
     @Override
+    public LocationType getLocationType() {
+        return null;
+    }
+
+    @Override
     public Class<?> getEntityType() {
         return Snapshot.class;
     }
diff --git a/engine/storage/src/org/apache/cloudstack/storage/volume/datastore/PrimaryDataStoreHelper.java b/engine/storage/src/org/apache/cloudstack/storage/volume/datastore/PrimaryDataStoreHelper.java
index 8752c19..31b5708 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/volume/datastore/PrimaryDataStoreHelper.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/volume/datastore/PrimaryDataStoreHelper.java
@@ -20,6 +20,7 @@
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -118,6 +119,8 @@
             dataStoreVO.setPath(updatedPath);
         }
         String tags = params.getTags();
+        List<String> storageTags = new ArrayList<String>();
+
         if (tags != null) {
             String[] tokens = tags.split(",");
 
@@ -126,10 +129,10 @@
                 if (tag.length() == 0) {
                     continue;
                 }
-                details.put(tag, "true");
+                storageTags.add(tag);
             }
         }
-        dataStoreVO = dataStoreDao.persist(dataStoreVO, details);
+        dataStoreVO = dataStoreDao.persist(dataStoreVO, details, storageTags);
         return dataStoreMgr.getDataStore(dataStoreVO.getId(), DataStoreRole.Primary);
     }
 
@@ -231,6 +234,7 @@
         poolVO.setUuid(null);
         this.dataStoreDao.update(poolVO.getId(), poolVO);
         dataStoreDao.remove(poolVO.getId());
+        dataStoreDao.deletePoolTags(poolVO.getId());
         deletePoolStats(poolVO.getId());
         // Delete op_host_capacity entries
         this._capacityDao.removeBy(Capacity.CAPACITY_TYPE_STORAGE_ALLOCATED, null, null, null, poolVO.getId());
diff --git a/engine/storage/volume/pom.xml b/engine/storage/volume/pom.xml
index 83a555c..0b5b6bb 100644
--- a/engine/storage/volume/pom.xml
+++ b/engine/storage/volume/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-engine</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/engine/storage/volume/resources/META-INF/cloudstack/core/spring-engine-storage-volume-core-context.xml b/engine/storage/volume/resources/META-INF/cloudstack/core/spring-engine-storage-volume-core-context.xml
index ba9afb5..860929c 100644
--- a/engine/storage/volume/resources/META-INF/cloudstack/core/spring-engine-storage-volume-core-context.xml
+++ b/engine/storage/volume/resources/META-INF/cloudstack/core/spring-engine-storage-volume-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <!--Filesystem types -->
diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
index 5bf49a9..b7f4592 100644
--- a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
+++ b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java
@@ -174,11 +174,11 @@
     }
 
     @Override
-    public boolean  stateTransit(Volume.Event event) {
+    public boolean stateTransit(Volume.Event event) {
         boolean result = false;
         try {
             volumeVO = volumeDao.findById(volumeVO.getId());
-            if(volumeVO != null) {
+            if (volumeVO != null) {
                 result = _volStateMachine.transitTo(volumeVO, event, null, volumeDao);
                 volumeVO = volumeDao.findById(volumeVO.getId());
             }
@@ -332,8 +332,9 @@
             throw new CloudRuntimeException("Failed to update state:" + e.toString());
         } finally {
             // in case of OperationFailed, expunge the entry
+            // state transit call reloads the volume from DB and so check for null as well
             if (event == ObjectInDataStoreStateMachine.Event.OperationFailed &&
-                (volumeVO.getState() != Volume.State.Copying && volumeVO.getState() != Volume.State.Uploaded && volumeVO.getState() != Volume.State.UploadError)) {
+                (volumeVO != null && volumeVO.getState() != Volume.State.Copying && volumeVO.getState() != Volume.State.Uploaded && volumeVO.getState() != Volume.State.UploadError)) {
                 objectInStoreMgr.deleteIfNotReady(this);
             }
         }
diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
index 0796ce0..8818724 100644
--- a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
+++ b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
@@ -28,14 +28,6 @@
 
 import javax.inject.Inject;
 
-import com.cloud.dc.dao.ClusterDao;
-import com.cloud.offering.DiskOffering;
-import com.cloud.org.Cluster;
-import com.cloud.org.Grouping.AllocationState;
-import com.cloud.resource.ResourceState;
-import com.cloud.server.ManagementService;
-import com.cloud.storage.RegisterVolumePayload;
-import com.cloud.utils.Pair;
 import org.apache.cloudstack.engine.cloud.entity.api.VolumeEntity;
 import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
 import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
@@ -70,6 +62,7 @@
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
 import org.apache.cloudstack.storage.image.store.TemplateObject;
@@ -87,6 +80,7 @@
 import com.cloud.alert.AlertManager;
 import com.cloud.configuration.Config;
 import com.cloud.configuration.Resource.ResourceType;
+import com.cloud.dc.dao.ClusterDao;
 import com.cloud.event.EventTypes;
 import com.cloud.event.UsageEventUtils;
 import com.cloud.exception.ConcurrentOperationException;
@@ -96,7 +90,13 @@
 import com.cloud.host.dao.HostDao;
 import com.cloud.host.dao.HostDetailsDao;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.offering.DiskOffering;
+import com.cloud.org.Cluster;
+import com.cloud.org.Grouping.AllocationState;
+import com.cloud.resource.ResourceState;
+import com.cloud.server.ManagementService;
 import com.cloud.storage.DataStoreRole;
+import com.cloud.storage.RegisterVolumePayload;
 import com.cloud.storage.ScopeType;
 import com.cloud.storage.Storage.StoragePoolType;
 import com.cloud.storage.StoragePool;
@@ -113,9 +113,12 @@
 import com.cloud.user.AccountManager;
 import com.cloud.user.ResourceLimitService;
 import com.cloud.utils.NumbersUtil;
+import com.cloud.utils.Pair;
 import com.cloud.utils.db.DB;
 import com.cloud.utils.db.GlobalLock;
 import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.storage.dao.VolumeDetailsDao;
+
 
 @Component
 public class VolumeServiceImpl implements VolumeService {
@@ -158,6 +161,10 @@
     private ManagementService mgr;
     @Inject
     private ClusterDao clusterDao;
+    @Inject
+    private VolumeDetailsDao _volumeDetailsDao;
+
+    private final static String SNAPSHOT_ID = "SNAPSHOT_ID";
 
     public VolumeServiceImpl() {
     }
@@ -320,10 +327,13 @@
         }
 
         VolumeVO vol = volDao.findById(volume.getId());
+        if (vol == null) {
+            s_logger.debug("Volume " + volume.getId() + " is not found");
+            future.complete(result);
+            return future;
+        }
 
-        String volumePath = vol.getPath();
-        Long poolId = vol.getPoolId();
-        if (poolId == null || volumePath == null || volumePath.trim().isEmpty()) {
+        if (!volumeExistsOnPrimary(vol)) {
             // not created on primary store
             if (volumeStore == null) {
                 // also not created on secondary store
@@ -352,6 +362,32 @@
         return future;
     }
 
+    private boolean volumeExistsOnPrimary(VolumeVO vol) {
+        Long poolId = vol.getPoolId();
+
+        if (poolId == null) {
+            return false;
+        }
+
+        PrimaryDataStore primaryStore = dataStoreMgr.getPrimaryDataStore(poolId);
+
+        if (primaryStore == null) {
+            return false;
+        }
+
+        if (primaryStore.isManaged()) {
+            return true;
+        }
+
+        String volumePath = vol.getPath();
+
+        if (volumePath == null || volumePath.trim().isEmpty()) {
+            return false;
+        }
+
+        return true;
+    }
+
     public Void deleteVolumeCallback(AsyncCallbackDispatcher<VolumeServiceImpl, CommandResult> callback, DeleteVolumeContext<VolumeApiResult> context) {
         CommandResult result = callback.getResult();
         VolumeObject vo = context.getVolume();
@@ -363,9 +399,27 @@
                     s_logger.info("Volume " + vo.getId() + " is not referred anywhere, remove it from volumes table");
                     volDao.remove(vo.getId());
                 }
+
                 SnapshotDataStoreVO snapStoreVo = _snapshotStoreDao.findByVolume(vo.getId(), DataStoreRole.Primary);
-                if(snapStoreVo != null){
-                    _snapshotStoreDao.remove(snapStoreVo.getId());
+
+                if (snapStoreVo != null) {
+                    long storagePoolId = snapStoreVo.getDataStoreId();
+                    StoragePoolVO storagePoolVO = storagePoolDao.findById(storagePoolId);
+
+                    if (storagePoolVO.isManaged()) {
+                        DataStore primaryDataStore = dataStoreMgr.getPrimaryDataStore(storagePoolId);
+                        Map<String, String> mapCapabilities = primaryDataStore.getDriver().getCapabilities();
+
+                        String value = mapCapabilities.get(DataStoreCapabilities.STORAGE_SYSTEM_SNAPSHOT.toString());
+                        Boolean supportsStorageSystemSnapshots = new Boolean(value);
+
+                        if (!supportsStorageSystemSnapshots) {
+                            _snapshotStoreDao.remove(snapStoreVo.getId());
+                        }
+                    }
+                    else {
+                        _snapshotStoreDao.remove(snapStoreVo.getId());
+                    }
                 }
             } else {
                 vo.processEvent(Event.OperationFailed);
@@ -1157,7 +1211,8 @@
         try {
             DataObject volumeOnStore = store.create(volume);
             volumeOnStore.processEvent(Event.CreateOnlyRequested);
-            snapshot.processEvent(Event.CopyingRequested);
+            _volumeDetailsDao.addDetail(volume.getId(), SNAPSHOT_ID, Long.toString(snapshot.getId()), false);
+
             CreateVolumeFromBaseImageContext<VolumeApiResult> context =
                     new CreateVolumeFromBaseImageContext<VolumeApiResult>(null, volume, store, volumeOnStore, future, snapshot);
             AsyncCallbackDispatcher<VolumeServiceImpl, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this);
@@ -1193,7 +1248,8 @@
             } else {
                 volume.processEvent(event);
             }
-            snapshot.processEvent(event);
+            _volumeDetailsDao.removeDetail(volume.getId(), SNAPSHOT_ID);
+
         } catch (Exception e) {
             s_logger.debug("create volume from snapshot failed", e);
             apiResult.setResult(e.toString());
@@ -1973,8 +2029,13 @@
         SnapshotInfo snapshot = null;
         try {
             snapshot = snapshotMgr.takeSnapshot(volume);
+        } catch (CloudRuntimeException cre) {
+            s_logger.error("Take snapshot: " + volume.getId() + " failed", cre);
+            throw cre;
         } catch (Exception e) {
-            s_logger.debug("Take snapshot: " + volume.getId() + " failed", e);
+            if(s_logger.isDebugEnabled()) {
+                s_logger.debug("unknown exception while taking snapshot for volume " + volume.getId() + " was caught", e);
+            }
             throw new CloudRuntimeException("Failed to take snapshot", e);
         }
 
diff --git a/engine/storage/volume/test/resource/testContext.xml b/engine/storage/volume/test/resource/testContext.xml
index 67c28fa..da2f5a2 100644
--- a/engine/storage/volume/test/resource/testContext.xml
+++ b/engine/storage/volume/test/resource/testContext.xml
@@ -21,13 +21,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                        http://www.springframework.org/schema/beans/spring-beans.xsd
                          http://www.springframework.org/schema/tx 
-       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+       http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
-       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+       http://www.springframework.org/schema/aop/spring-aop.xsd
                                  http://www.springframework.org/schema/context
-                                          http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                                          http://www.springframework.org/schema/context/spring-context.xsd">
   <context:annotation-config />
   <context:component-scan base-package="org.apache.cloudstack.storage" />
   <context:component-scan
diff --git a/framework/cluster/pom.xml b/framework/cluster/pom.xml
index c6089b8..fadffc5 100644
--- a/framework/cluster/pom.xml
+++ b/framework/cluster/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/framework/cluster/resources/META-INF/cloudstack/core/spring-framework-cluster-core-context.xml b/framework/cluster/resources/META-INF/cloudstack/core/spring-framework-cluster-core-context.xml
index 13353b0..539c9e9 100644
--- a/framework/cluster/resources/META-INF/cloudstack/core/spring-framework-cluster-core-context.xml
+++ b/framework/cluster/resources/META-INF/cloudstack/core/spring-framework-cluster-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="clusterServiceServletAdapter" class="com.cloud.cluster.ClusterServiceServletAdapter" />
diff --git a/framework/config/pom.xml b/framework/config/pom.xml
index db02bd3..27a36eb 100644
--- a/framework/config/pom.xml
+++ b/framework/config/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/framework/config/resources/META-INF/cloudstack/system/spring-framework-config-system-context-inheritable.xml b/framework/config/resources/META-INF/cloudstack/system/spring-framework-config-system-context-inheritable.xml
index c887531..e176ec5 100644
--- a/framework/config/resources/META-INF/cloudstack/system/spring-framework-config-system-context-inheritable.xml
+++ b/framework/config/resources/META-INF/cloudstack/system/spring-framework-config-system-context-inheritable.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
   <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle" >
diff --git a/framework/config/resources/META-INF/cloudstack/system/spring-framework-config-system-context.xml b/framework/config/resources/META-INF/cloudstack/system/spring-framework-config-system-context.xml
index 8d75d27..be116fc 100644
--- a/framework/config/resources/META-INF/cloudstack/system/spring-framework-config-system-context.xml
+++ b/framework/config/resources/META-INF/cloudstack/system/spring-framework-config-system-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="configurationDaoImpl"
diff --git a/framework/config/src/org/apache/cloudstack/config/Configuration.java b/framework/config/src/org/apache/cloudstack/config/Configuration.java
index a8031a5..1921930 100644
--- a/framework/config/src/org/apache/cloudstack/config/Configuration.java
+++ b/framework/config/src/org/apache/cloudstack/config/Configuration.java
@@ -81,4 +81,10 @@
      * parameter is no longer used and can be deleted.
      */
     Date getUpdated();
+
+    /**
+     *
+     * @return returns true if the configuration is encrypted else false.
+     */
+    boolean isEncrypted();
 }
diff --git a/framework/config/src/org/apache/cloudstack/framework/config/ConfigKey.java b/framework/config/src/org/apache/cloudstack/framework/config/ConfigKey.java
index 09e143e..4a41306 100644
--- a/framework/config/src/org/apache/cloudstack/framework/config/ConfigKey.java
+++ b/framework/config/src/org/apache/cloudstack/framework/config/ConfigKey.java
@@ -31,7 +31,7 @@
 public class ConfigKey<T> {
 
     public static enum Scope {
-        Global, Zone, Cluster, StoragePool, Account, ManagementServer
+        Global, Zone, Cluster, StoragePool, Account, ManagementServer, ImageStore
     }
 
     private final String _category;
diff --git a/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java b/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java
index 4631bb9..e68fd3c 100644
--- a/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java
+++ b/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java
@@ -84,6 +84,7 @@
         _scopeLevelConfigsMap.put(ConfigKey.Scope.Cluster, new HashSet<ConfigKey<?>>());
         _scopeLevelConfigsMap.put(ConfigKey.Scope.StoragePool, new HashSet<ConfigKey<?>>());
         _scopeLevelConfigsMap.put(ConfigKey.Scope.Account, new HashSet<ConfigKey<?>>());
+        _scopeLevelConfigsMap.put(ConfigKey.Scope.ImageStore, new HashSet<ConfigKey<?>>());
     }
 
     @Override
diff --git a/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigurationVO.java b/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigurationVO.java
index b317ea2..7cd9afb 100644
--- a/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigurationVO.java
+++ b/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigurationVO.java
@@ -122,7 +122,7 @@
 
     @Override
     public String getValue() {
-        if(isEncryptedConfig()) {
+        if(isEncrypted()) {
             return DBEncryptionUtil.decrypt(value);
         } else {
             return value;
@@ -130,14 +130,15 @@
     }
 
     public void setValue(String value) {
-        if(isEncryptedConfig()) {
+        if(isEncrypted()) {
             this.value = DBEncryptionUtil.encrypt(value);
         } else {
             this.value = value;
         }
     }
 
-    private boolean isEncryptedConfig() {
+    @Override
+    public boolean isEncrypted() {
         return "Hidden".equals(getCategory()) || "Secure".equals(getCategory());
     }
 
diff --git a/framework/db/pom.xml b/framework/db/pom.xml
index c50d06f..e2bd79a 100644
--- a/framework/db/pom.xml
+++ b/framework/db/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/framework/db/resources/META-INF/cloudstack/system/spring-framework-db-system-context.xml b/framework/db/resources/META-INF/cloudstack/system/spring-framework-db-system-context.xml
index 651b874..f532a5c 100644
--- a/framework/db/resources/META-INF/cloudstack/system/spring-framework-db-system-context.xml
+++ b/framework/db/resources/META-INF/cloudstack/system/spring-framework-db-system-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="entityManagerImpl" class="com.cloud.dao.EntityManagerImpl" />
diff --git a/framework/events/pom.xml b/framework/events/pom.xml
index 3785761..0dc4ca6 100644
--- a/framework/events/pom.xml
+++ b/framework/events/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/framework/ipc/pom.xml b/framework/ipc/pom.xml
index 14e0831..43fdd0f 100644
--- a/framework/ipc/pom.xml
+++ b/framework/ipc/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/framework/ipc/resources/META-INF/cloudstack/core/spring-framework-ipc-core-context.xml b/framework/ipc/resources/META-INF/cloudstack/core/spring-framework-ipc-core-context.xml
index effa23e..15b6f80 100644
--- a/framework/ipc/resources/META-INF/cloudstack/core/spring-framework-ipc-core-context.xml
+++ b/framework/ipc/resources/META-INF/cloudstack/core/spring-framework-ipc-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
   <!--
diff --git a/framework/ipc/test/resources/MessageBusTestContext.xml b/framework/ipc/test/resources/MessageBusTestContext.xml
index fcfcb08..ba44edf 100644
--- a/framework/ipc/test/resources/MessageBusTestContext.xml
+++ b/framework/ipc/test/resources/MessageBusTestContext.xml
@@ -22,13 +22,13 @@
   xmlns:tx="http://www.springframework.org/schema/tx" 
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">                     
+                      http://www.springframework.org/schema/context/spring-context.xsd">
   <context:annotation-config />
 
   <bean id="onwireRegistry" class="org.apache.cloudstack.framework.serializer.OnwireClassRegistry"
diff --git a/framework/ipc/test/resources/SampleManagementServerAppContext.xml b/framework/ipc/test/resources/SampleManagementServerAppContext.xml
index 2fbb082..fb21f2c 100644
--- a/framework/ipc/test/resources/SampleManagementServerAppContext.xml
+++ b/framework/ipc/test/resources/SampleManagementServerAppContext.xml
@@ -23,13 +23,13 @@
   xmlns:tx="http://www.springframework.org/schema/tx" 
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">                     
+                      http://www.springframework.org/schema/context/spring-context.xsd">
   <context:annotation-config />
   <context:component-scan base-package="org.apache.cloudstack, com.cloud" />
 
diff --git a/framework/jobs/pom.xml b/framework/jobs/pom.xml
index ab4cb6a..0811137 100644
--- a/framework/jobs/pom.xml
+++ b/framework/jobs/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>  
   <dependencies>
diff --git a/framework/jobs/resources/META-INF/cloudstack/core/spring-framework-jobs-core-context.xml b/framework/jobs/resources/META-INF/cloudstack/core/spring-framework-jobs-core-context.xml
index 2d1eba0..227718a 100644
--- a/framework/jobs/resources/META-INF/cloudstack/core/spring-framework-jobs-core-context.xml
+++ b/framework/jobs/resources/META-INF/cloudstack/core/spring-framework-jobs-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="asyncJobDaoImpl"
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
index 121246b..9b6aa7c 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
@@ -33,6 +33,8 @@
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import com.cloud.storage.dao.VolumeDetailsDao;
+import org.apache.cloudstack.api.ApiCommandJobType;
 import org.apache.log4j.Logger;
 import org.apache.log4j.NDC;
 import org.apache.cloudstack.api.ApiErrorCode;
@@ -85,9 +87,9 @@
 
 public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, ClusterManagerListener, Configurable {
     // Advanced
-    private static final ConfigKey<Long> JobExpireMinutes = new ConfigKey<Long>("Advanced", Long.class, "job.expire.minutes", "1440",
+    public static final ConfigKey<Long> JobExpireMinutes = new ConfigKey<Long>("Advanced", Long.class, "job.expire.minutes", "1440",
         "Time (in minutes) for async-jobs to be kept in system", true, ConfigKey.Scope.Global);
-    private static final ConfigKey<Long> JobCancelThresholdMinutes = new ConfigKey<Long>("Advanced", Long.class, "job.cancel.threshold.minutes", "60",
+    public static final ConfigKey<Long> JobCancelThresholdMinutes = new ConfigKey<Long>("Advanced", Long.class, "job.cancel.threshold.minutes", "60",
         "Time (in minutes) for async-jobs to be forcely cancelled if it has been in process for long", true, ConfigKey.Scope.Global);
     private static final ConfigKey<Integer> VmJobLockTimeout = new ConfigKey<Integer>("Advanced",
             Integer.class, "vm.job.lock.timeout", "1800",
@@ -119,6 +121,8 @@
     private AsyncJobMonitor _jobMonitor;
     @Inject
     private VMInstanceDao _vmInstanceDao;
+    @Inject
+    private VolumeDetailsDao _volumeDetailsDao;
 
     private volatile long _executionRunNumber = 1;
 
@@ -1012,6 +1016,14 @@
                             s_logger.debug("Purge queue item for cancelled job-" + job.getId());
                         }
                         _queueMgr.purgeAsyncJobQueueItemId(job.getId());
+                        if (job.getInstanceType().equals(ApiCommandJobType.Volume.toString())) {
+
+                            try {
+                                _volumeDetailsDao.removeDetail(job.getInstanceId(), "SNAPSHOT_ID");
+                            } catch (Exception e) {
+                                s_logger.error("Unexpected exception while removing concurrent request meta data :" + e.getLocalizedMessage());
+                            }
+                        }
                     }
                 }
             });
diff --git a/framework/jobs/test/resources/AsyncJobManagerTestContext.xml b/framework/jobs/test/resources/AsyncJobManagerTestContext.xml
index fd5db30..4e5d767 100644
--- a/framework/jobs/test/resources/AsyncJobManagerTestContext.xml
+++ b/framework/jobs/test/resources/AsyncJobManagerTestContext.xml
@@ -21,13 +21,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
     <import resource="commonContext.xml"/>
     <import resource="classpath*:spring-framework-jobs-core-context.xml"/>
     <bean id="AsyncJobManagerTestConfiguration"
diff --git a/framework/jobs/test/resources/commonContext.xml b/framework/jobs/test/resources/commonContext.xml
index 6c3ca75..80d57f1 100644
--- a/framework/jobs/test/resources/commonContext.xml
+++ b/framework/jobs/test/resources/commonContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:annotation-config />
   <bean id="transactionContextBuilder" class="com.cloud.utils.db.TransactionContextBuilder" />
diff --git a/framework/managed-context/pom.xml b/framework/managed-context/pom.xml
index 4cf1d53..919e22b 100644
--- a/framework/managed-context/pom.xml
+++ b/framework/managed-context/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-maven-standard</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../maven-standard/pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/framework/pom.xml b/framework/pom.xml
index 3e038e4..5ee2be0 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <build>
     <defaultGoal>install</defaultGoal>
diff --git a/framework/quota/pom.xml b/framework/quota/pom.xml
index 10823c0..372b987 100644
--- a/framework/quota/pom.xml
+++ b/framework/quota/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/framework/quota/resources/META-INF/cloudstack/quota/spring-framework-quota-context.xml b/framework/quota/resources/META-INF/cloudstack/quota/spring-framework-quota-context.xml
index f7a3acc..1be5894 100644
--- a/framework/quota/resources/META-INF/cloudstack/quota/spring-framework-quota-context.xml
+++ b/framework/quota/resources/META-INF/cloudstack/quota/spring-framework-quota-context.xml
@@ -12,10 +12,10 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 	xmlns:aop="http://www.springframework.org/schema/aop"
 	xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 	<bean id="QuotaTariffDao" class="org.apache.cloudstack.quota.dao.QuotaTariffDaoImpl" />
     <bean id="QuotaAccountDao" class="org.apache.cloudstack.quota.dao.QuotaAccountDaoImpl" />
diff --git a/framework/rest/pom.xml b/framework/rest/pom.xml
index 8548d25..e50bfe2 100644
--- a/framework/rest/pom.xml
+++ b/framework/rest/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-framework-rest</artifactId>
diff --git a/framework/security/pom.xml b/framework/security/pom.xml
index c9a6d89..fe6bb4b 100644
--- a/framework/security/pom.xml
+++ b/framework/security/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-framework</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/framework/security/resources/META-INF/cloudstack/core/spring-framework-security-core-context.xml b/framework/security/resources/META-INF/cloudstack/core/spring-framework-security-core-context.xml
index fe05bc1..a862236 100644
--- a/framework/security/resources/META-INF/cloudstack/core/spring-framework-security-core-context.xml
+++ b/framework/security/resources/META-INF/cloudstack/core/spring-framework-security-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
     <bean id="keystoreManagerImpl" class="org.apache.cloudstack.framework.security.keystore.KeystoreManagerImpl" />
     <bean id="keystoreDaoImpl" class="org.apache.cloudstack.framework.security.keystore.KeystoreDaoImpl" />
diff --git a/framework/spring/lifecycle/pom.xml b/framework/spring/lifecycle/pom.xml
index 9e8e239..45ba4de 100644
--- a/framework/spring/lifecycle/pom.xml
+++ b/framework/spring/lifecycle/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-maven-standard</artifactId>
-        <version>4.9.4.0-SNAPSHOT</version>
+        <version>4.10.1.0-SNAPSHOT</version>
         <relativePath>../../../maven-standard/pom.xml</relativePath>
     </parent>
     <dependencies>
diff --git a/framework/spring/module/pom.xml b/framework/spring/module/pom.xml
index 3748a5e..39b9be1 100644
--- a/framework/spring/module/pom.xml
+++ b/framework/spring/module/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-maven-standard</artifactId>
-        <version>4.9.4.0-SNAPSHOT</version>
+        <version>4.10.1.0-SNAPSHOT</version>
         <relativePath>../../../maven-standard/pom.xml</relativePath>
     </parent>
     <dependencies>
diff --git a/framework/spring/module/src/main/resources/org/apache/cloudstack/spring/module/model/impl/defaults-context.xml b/framework/spring/module/src/main/resources/org/apache/cloudstack/spring/module/model/impl/defaults-context.xml
index 8c133ec..fce88d7 100644
--- a/framework/spring/module/src/main/resources/org/apache/cloudstack/spring/module/model/impl/defaults-context.xml
+++ b/framework/spring/module/src/main/resources/org/apache/cloudstack/spring/module/model/impl/defaults-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="DefaultConfigResources" class="java.util.ArrayList" />
     <bean id="DefaultConfigProperties" class="java.util.Properties" />
diff --git a/framework/spring/module/src/test/resources/testfiles/all/empty-context-inheritable.xml b/framework/spring/module/src/test/resources/testfiles/all/empty-context-inheritable.xml
index 7c6b8fd..97659d0 100644
--- a/framework/spring/module/src/test/resources/testfiles/all/empty-context-inheritable.xml
+++ b/framework/spring/module/src/test/resources/testfiles/all/empty-context-inheritable.xml
@@ -19,8 +19,8 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 </beans>
diff --git a/framework/spring/module/src/test/resources/testfiles/all/empty-context.xml b/framework/spring/module/src/test/resources/testfiles/all/empty-context.xml
index 7c6b8fd..97659d0 100644
--- a/framework/spring/module/src/test/resources/testfiles/all/empty-context.xml
+++ b/framework/spring/module/src/test/resources/testfiles/all/empty-context.xml
@@ -19,8 +19,8 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 </beans>
diff --git a/framework/spring/module/src/test/resources/testfiles/all/empty2-context-inheritable.xml b/framework/spring/module/src/test/resources/testfiles/all/empty2-context-inheritable.xml
index 7c6b8fd..97659d0 100644
--- a/framework/spring/module/src/test/resources/testfiles/all/empty2-context-inheritable.xml
+++ b/framework/spring/module/src/test/resources/testfiles/all/empty2-context-inheritable.xml
@@ -19,8 +19,8 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 </beans>
diff --git a/framework/spring/module/src/test/resources/testfiles/all/empty2-context.xml b/framework/spring/module/src/test/resources/testfiles/all/empty2-context.xml
index 7c6b8fd..97659d0 100644
--- a/framework/spring/module/src/test/resources/testfiles/all/empty2-context.xml
+++ b/framework/spring/module/src/test/resources/testfiles/all/empty2-context.xml
@@ -19,8 +19,8 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 </beans>
diff --git a/framework/spring/module/src/test/resources/testfiles/good/empty-context.xml b/framework/spring/module/src/test/resources/testfiles/good/empty-context.xml
index 7c6b8fd..97659d0 100644
--- a/framework/spring/module/src/test/resources/testfiles/good/empty-context.xml
+++ b/framework/spring/module/src/test/resources/testfiles/good/empty-context.xml
@@ -19,8 +19,8 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 </beans>
diff --git a/framework/spring/module/src/test/resources/testhierarchy/base/test-context-inheritable.xml b/framework/spring/module/src/test/resources/testhierarchy/base/test-context-inheritable.xml
index 188301e..d15e8a9 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/base/test-context-inheritable.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/base/test-context-inheritable.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="count" class="org.apache.cloudstack.spring.module.factory.ModuleBasedContextFactoryTest.InstantiationCounter" />
     
diff --git a/framework/spring/module/src/test/resources/testhierarchy/base/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/base/test-context.xml
index a72d8c6..b79711e 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/base/test-context.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/base/test-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="name" class="java.lang.String" >
         <constructor-arg value="base" />
diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1-1/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/child1-1/test-context.xml
index 7a2a9ad..4e8f2db 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/child1-1/test-context.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/child1-1/test-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="name" class="java.lang.String" >
         <constructor-arg value="child1-1" />
diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml b/framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml
index ceffeb5..0ea8893 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
     
     <bean id="override" class="java.lang.String" >
         <constructor-arg value="a string" />
diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/child1/test-context.xml
index f906183..98b663e 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/child1/test-context.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/child1/test-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <context:annotation-config/>
 
diff --git a/framework/spring/module/src/test/resources/testhierarchy/child2/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/child2/test-context.xml
index 24bac54..1c44046 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/child2/test-context.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/child2/test-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="name" class="java.lang.String" >
         <constructor-arg value="child2" />
diff --git a/framework/spring/module/src/test/resources/testhierarchy/excluded/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/excluded/test-context.xml
index 57e68dd..2cd049c 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/excluded/test-context.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/excluded/test-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="name" class="java.lang.String" >
         <constructor-arg value="excluded" />
diff --git a/framework/spring/module/src/test/resources/testhierarchy/excluded2/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/excluded2/test-context.xml
index 55fd9b4..192a376 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/excluded2/test-context.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/excluded2/test-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="name" class="java.lang.String" >
         <constructor-arg value="excluded2" />
diff --git a/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/test-context.xml
index 6495e1b..08bd33c 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/test-context.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/test-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="name" class="java.lang.String" >
         <constructor-arg value="orphan-of-excluded" />
diff --git a/framework/spring/module/src/test/resources/testhierarchy/orphan1/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/orphan1/test-context.xml
index 658beea..38e0e32 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/orphan1/test-context.xml
+++ b/framework/spring/module/src/test/resources/testhierarchy/orphan1/test-context.xml
@@ -19,9 +19,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="name" class="java.lang.String" >
         <constructor-arg value="orphan1" />
diff --git a/maven-standard/pom.xml b/maven-standard/pom.xml
index c8ae320..1b2531f 100644
--- a/maven-standard/pom.xml
+++ b/maven-standard/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>
diff --git a/packaging/build-deb.sh b/packaging/build-deb.sh
index aa17dc5..d8f2f8f 100755
--- a/packaging/build-deb.sh
+++ b/packaging/build-deb.sh
@@ -16,7 +16,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-set -e
+#set -e
 
 #
 # This script builds Debian packages for CloudStack and does
@@ -34,20 +34,30 @@
 # Assume that the cloudstack source is present in /tmp/cloudstack
 #
 # Ubuntu 16.04
-# docker run -ti -v /tmp:/src ubuntu:16.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-8-jdk genisoimage python-mysql.connector maven lsb-release devscripts && /src/cloudstack/packaging/build-deb.sh"
+# docker run -ti -v /tmp:/src ubuntu:16.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-8-jdk genisoimage python-mysql.connector maven lsb-release devscripts dh-systemd python-setuptools && /src/cloudstack/packaging/build-deb.sh"
 #
 # Ubuntu 14.04
-# docker run -ti -v /tmp:/src ubuntu:14.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-7-jdk genisoimage python-mysql.connector maven lsb-release devscripts && /src/cloudstack/packaging/build-deb.sh"
+# docker run -ti -v /tmp:/src ubuntu:14.04 /bin/bash -c "apt-get update && apt-get install -y dpkg-dev python debhelper openjdk-8-jdk genisoimage python-mysql.connector maven lsb-release devscripts dh-systemd python-setuptools && /src/cloudstack/packaging/build-deb.sh"
 #
 
 cd `dirname $0`
 cd ..
 
-dpkg-checkbuilddeps
+DCH=$(which dch)
+if [ -z "$DCH" ] ; then
+    echo -e "dch not found, please install devscripts at first. \nDEB Build Failed"
+    exit
+fi
 
-VERSION=$(grep '^  <version>' pom.xml| cut -d'>' -f2 |cut -d'<' -f1)
+VERSION=$(head -n1 debian/changelog  |awk -F [\(\)] '{print $2}')
 DISTCODE=$(lsb_release -sc)
 
-dch -b -v "${VERSION}~${DISTCODE}" -u low -m "Apache CloudStack Release ${VERSION}"
+/bin/cp debian/changelog /tmp/changelog.orig
 
-dpkg-buildpackage -j2 -b -uc -us
+dch -b -v "${VERSION}~${DISTCODE}" -u low -m "Apache CloudStack Release ${VERSION}"
+sed -i '0,/ UNRELEASED;/s// unstable;/g' debian/changelog
+
+dpkg-checkbuilddeps
+dpkg-buildpackage -uc -us -b
+
+/bin/mv /tmp/changelog.orig debian/changelog
diff --git a/packaging/centos63/cloud-agent.rc b/packaging/centos63/cloud-agent.rc
index 870a35a..8fa6de2 100755
--- a/packaging/centos63/cloud-agent.rc
+++ b/packaging/centos63/cloud-agent.rc
@@ -50,7 +50,7 @@
 [ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME"
 
 # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun"
+JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-1.8.0 /usr/lib/jvm/java-8-openjdk /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-openjdk-amd64"
 
 for jdir in $JDK_DIRS; do
     if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
index 729747c..abe50bc 100644
--- a/packaging/centos63/cloud.spec
+++ b/packaging/centos63/cloud.spec
@@ -43,7 +43,7 @@
 Source0:   %{name}-%{_maventag}.tgz
 BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build
 
-BuildRequires: java-1.7.0-openjdk-devel
+BuildRequires: java-1.8.0-openjdk-devel
 BuildRequires: tomcat6
 BuildRequires: ws-commons-util
 BuildRequires: jpackage-utils
@@ -60,7 +60,7 @@
 %package management
 Summary:   CloudStack management server UI
 Requires: tomcat6
-Requires: java-1.7.0-openjdk
+Requires: java-1.8.0-openjdk
 Requires: python
 Requires: bash
 Requires: bzip2
@@ -97,6 +97,7 @@
 Summary: Apache CloudStack common files and scripts
 Requires: python
 Requires: python-argparse
+Requires: python-netaddr
 Obsoletes: cloud-test < 4.1.0 
 Obsoletes: cloud-scripts < 4.1.0
 Obsoletes: cloud-utils < 4.1.0
@@ -113,7 +114,7 @@
 %package agent
 Summary: CloudStack Agent for KVM hypervisors
 Requires: openssh-clients
-Requires: java-1.7.0-openjdk
+Requires: java-1.8.0-openjdk
 Requires: %{name}-common = %{_ver}
 Requires: libvirt
 Requires: bridge-utils
@@ -152,7 +153,7 @@
 
 %package usage
 Summary: CloudStack Usage calculation server
-Requires: java-1.7.0-openjdk
+Requires: java-1.8.0-openjdk
 Requires: jsvc
 Requires: jakarta-commons-daemon
 Requires: jakarta-commons-daemon-jsvc
@@ -442,7 +443,7 @@
 grep -s -q "db.simulator.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.simulator.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
 
 if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
-    echo Please download vhd-util from http://download.cloud.com.s3.amazonaws.com/tools/vhd-util and put it in 
+    echo Please download vhd-util from http://download.cloudstack.org/tools/vhd-util and put it in
     echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/
 fi
 
diff --git a/packaging/centos7/cloud-agent.rc b/packaging/centos7/cloud-agent.rc
index 870a35a..5882780 100755
--- a/packaging/centos7/cloud-agent.rc
+++ b/packaging/centos7/cloud-agent.rc
@@ -50,7 +50,7 @@
 [ -r /etc/sysconfig/"$SHORTNAME" ] && source /etc/sysconfig/"$SHORTNAME"
 
 # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun"
+JDK_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/java-1.8.0-openjdk /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-openjdk-amd64"
 
 for jdir in $JDK_DIRS; do
     if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
diff --git a/packaging/centos7/cloud.spec b/packaging/centos7/cloud.spec
index 14f5742..cc63f5f 100644
--- a/packaging/centos7/cloud.spec
+++ b/packaging/centos7/cloud.spec
@@ -43,7 +43,7 @@
 Source0:   %{name}-%{_maventag}.tgz
 BuildRoot: %{_tmppath}/%{name}-%{_maventag}-%{release}-build
 
-BuildRequires: java-1.7.0-openjdk-devel
+BuildRequires: java-1.8.0-openjdk-devel
 BuildRequires: tomcat => 7.0
 BuildRequires: ws-commons-util
 BuildRequires: jpackage-utils
@@ -60,7 +60,7 @@
 %package management
 Summary:   CloudStack management server UI
 Requires: tomcat => 7.0
-Requires: java => 1.7.0
+Requires: java => 1.8.0
 Requires: python
 Requires: bash
 Requires: bzip2
@@ -92,6 +92,7 @@
 Summary: Apache CloudStack common files and scripts
 Requires: python
 Requires: python-argparse
+Requires: python-netaddr
 Group:   System Environment/Libraries
 %description common
 The Apache CloudStack files shared between agent and management server
@@ -99,7 +100,7 @@
 %package agent
 Summary: CloudStack Agent for KVM hypervisors
 Requires: openssh-clients
-Requires: java => 1.7.0
+Requires: java => 1.8.0
 Requires: %{name}-common = %{_ver}
 Requires: libvirt
 Requires: bridge-utils
@@ -131,7 +132,7 @@
 
 %package usage
 Summary: CloudStack Usage calculation server
-Requires: java => 1.7.0
+Requires: java => 1.8.0
 Requires: mysql-connector-java
 Group: System Environment/Libraries
 %description usage
@@ -399,7 +400,7 @@
 grep -s -q "db.simulator.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.simulator.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
 
 if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
-    echo Please download vhd-util from http://download.cloud.com.s3.amazonaws.com/tools/vhd-util and put it in
+    echo Please download vhd-util from http://download.cloudstack.org/tools/vhd-util and put it in
     echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/
 fi
 
diff --git a/packaging/centos7/tomcat7/web.xml b/packaging/centos7/tomcat7/web.xml
index 44b6eab..8645a64 100644
--- a/packaging/centos7/tomcat7/web.xml
+++ b/packaging/centos7/tomcat7/web.xml
@@ -1182,7 +1182,6 @@
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
         <welcome-file>index.htm</welcome-file>
-        <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
 
 </web-app>
diff --git a/packaging/debian/cloudstack-agent.init b/packaging/debian/cloudstack-agent.init
index 0cae5f5..2610779 100755
--- a/packaging/debian/cloudstack-agent.init
+++ b/packaging/debian/cloudstack-agent.init
@@ -50,7 +50,7 @@
 mkdir -m 0755 -p "$TMP"
 
 # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun"
+JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-oracle"
 
 for jdir in $JDK_DIRS; do
     if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
diff --git a/packaging/debian/cloudstack-usage.init b/packaging/debian/cloudstack-usage.init
index e6129c2..0517450 100755
--- a/packaging/debian/cloudstack-usage.init
+++ b/packaging/debian/cloudstack-usage.init
@@ -64,7 +64,7 @@
 
   # If everything has failed, try hardcoded paths
   # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
-  JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-sun"
+  JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-oracle /usr/lib/jvm/java-8-openjdk"
   for jdir in $JDK_DIRS; do
     if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
       JAVA_HOME="$jdir"
diff --git a/packaging/debian/init/cloud-management b/packaging/debian/init/cloud-management
index 90052c9..05c38be 100755
--- a/packaging/debian/init/cloud-management
+++ b/packaging/debian/init/cloud-management
@@ -65,7 +65,7 @@
 
 # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
 # defined in $DEFAULT)
-JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-sun"
+JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-oracle /usr/lib/jvm/java-8-openjdk"
 
 # Look for the right JVM to use
 for jdir in $JDK_DIRS; do
diff --git a/packaging/fedora20/cloud.spec b/packaging/fedora20/cloud.spec
index 0a80991..546e439 100644
--- a/packaging/fedora20/cloud.spec
+++ b/packaging/fedora20/cloud.spec
@@ -408,7 +408,7 @@
 fi
 
 if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
-    echo Please download vhd-util from http://download.cloud.com.s3.amazonaws.com/tools/vhd-util and put it in 
+    echo Please download vhd-util from http://download.cloudstack.org/tools/vhd-util and put it in
     echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/
 fi
 
diff --git a/packaging/fedora21/cloud.spec b/packaging/fedora21/cloud.spec
index a749d13..a79d172 100644
--- a/packaging/fedora21/cloud.spec
+++ b/packaging/fedora21/cloud.spec
@@ -408,7 +408,7 @@
 fi
 
 if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util ] ; then
-    echo Please download vhd-util from http://download.cloud.com.s3.amazonaws.com/tools/vhd-util and put it in 
+    echo Please download vhd-util from http://download.cloudstack.org/tools/vhd-util and put it in
     echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/
 fi
 
diff --git a/packaging/systemd/cloudstack-management.default.ubuntu b/packaging/systemd/cloudstack-management.default.ubuntu
new file mode 100644
index 0000000..0087495
--- /dev/null
+++ b/packaging/systemd/cloudstack-management.default.ubuntu
@@ -0,0 +1,50 @@
+# 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.
+
+# Required for a tocmat cloned service
+SERVICE_NAME=cloudstack-management
+
+# Where your java installation lives
+#JAVA_HOME="/usr/lib/jvm/java"
+
+# Where your cloudstack-management installation lives
+CATALINA_BASE="/usr/share/cloudstack-management"
+CATALINA_HOME="/usr/share/cloudstack-management"
+JASPER_HOME="/usr/share/cloudstack-management"
+CATALINA_TMPDIR="/usr/share/cloudstack-management/temp"
+
+
+if [ -r "/etc/cloudstack/management/cloudmanagementserver.keystore" ] ; then
+  JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m -Djavax.net.ssl.trustStore=/etc/cloudstack/management/cloudmanagementserver.keystore -Djavax.net.ssl.trustStorePassword=vmops.com "
+else
+  JAVA_OPTS="-Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:PermSize=512M -XX:MaxPermSize=800m"
+fi
+
+TOMCAT_USER="cloud"
+
+SECURITY_MANAGER="false"
+
+SHUTDOWN_WAIT="30"
+
+SHUTDOWN_VERBOSE="false"
+
+# Set the TOMCAT_PID location
+CATALINA_PID="/var/run/cloudstack-management.pid"
+
+CLASSPATH=/usr/share/java/commons-daemon.jar:/usr/share/cloudstack-management/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar:/etc/cloudstack/management:/usr/share/cloudstack-common:/usr/share/cloudstack-management/setup
+
+BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
diff --git a/packaging/systemd/cloudstack-management.service.ubuntu b/packaging/systemd/cloudstack-management.service.ubuntu
new file mode 100644
index 0000000..2fd7767
--- /dev/null
+++ b/packaging/systemd/cloudstack-management.service.ubuntu
@@ -0,0 +1,40 @@
+# 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.
+
+# Systemd unit file for CloudStack Management server
+#
+# clone tomcat service, see /usr/lib/systemd/system/tomcat.service
+
+[Unit]
+Description=CloudStack Management Server
+After=syslog.target network.target
+
+[Service]
+UMask=0022
+Type=forking
+Environment="NAME=cloudstack-management"
+EnvironmentFile=-/etc/default/cloudstack-management
+ExecStartPre=/bin/bash -c "/bin/systemctl set-environment JAVA_HOME=$( readlink -f $( which java ) | sed s:bin/.*$:: )"
+ExecStart=/usr/bin/jsvc -user "${TOMCAT_USER}" -cp "$CLASSPATH" \
+    -outfile SYSLOG -errfile SYSLOG \
+    -pidfile "${CATALINA_PID}" ${JAVA_OPTS} \
+    -Dcatalina.base="${CATALINA_BASE}" -Dcatalina.home="${CATALINA_HOME}" -Djava.io.tmpdir="${CATALINA_TMPDIR}" "${BOOTSTRAP_CLASS}"
+ExecStop=/usr/bin/jsvc -cp "$CLASSPATH" -pidfile "$CATALINA_PID" \
+    -stop "$BOOTSTRAP_CLASS"
+
+[Install]
+WantedBy=multi-user.target
diff --git a/plugins/acl/dynamic-role-based/pom.xml b/plugins/acl/dynamic-role-based/pom.xml
index 0d3d6ff..f6ceffe 100644
--- a/plugins/acl/dynamic-role-based/pom.xml
+++ b/plugins/acl/dynamic-role-based/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/acl/dynamic-role-based/resources/META-INF/cloudstack/acl-dynamic-role-based/spring-acl-dynamic-role-based-context.xml b/plugins/acl/dynamic-role-based/resources/META-INF/cloudstack/acl-dynamic-role-based/spring-acl-dynamic-role-based-context.xml
index 9ffe465..e270743 100644
--- a/plugins/acl/dynamic-role-based/resources/META-INF/cloudstack/acl-dynamic-role-based/spring-acl-dynamic-role-based-context.xml
+++ b/plugins/acl/dynamic-role-based/resources/META-INF/cloudstack/acl-dynamic-role-based/spring-acl-dynamic-role-based-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="DynamicRoleBasedAPIAccessChecker" class="org.apache.cloudstack.acl.DynamicRoleBasedAPIAccessChecker" >
diff --git a/plugins/acl/static-role-based/pom.xml b/plugins/acl/static-role-based/pom.xml
index 3f31282..a05454c 100644
--- a/plugins/acl/static-role-based/pom.xml
+++ b/plugins/acl/static-role-based/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/acl/static-role-based/resources/META-INF/cloudstack/acl-static-role-based/spring-acl-static-role-based-context.xml b/plugins/acl/static-role-based/resources/META-INF/cloudstack/acl-static-role-based/spring-acl-static-role-based-context.xml
index 0b22283..633602e 100644
--- a/plugins/acl/static-role-based/resources/META-INF/cloudstack/acl-static-role-based/spring-acl-static-role-based-context.xml
+++ b/plugins/acl/static-role-based/resources/META-INF/cloudstack/acl-static-role-based/spring-acl-static-role-based-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
     <bean id="StaticRoleBasedAPIAccessChecker" class="org.apache.cloudstack.acl.StaticRoleBasedAPIAccessChecker" >
diff --git a/plugins/affinity-group-processors/explicit-dedication/pom.xml b/plugins/affinity-group-processors/explicit-dedication/pom.xml
index 03d4a90..4a0b6c6 100644
--- a/plugins/affinity-group-processors/explicit-dedication/pom.xml
+++ b/plugins/affinity-group-processors/explicit-dedication/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>
diff --git a/plugins/affinity-group-processors/explicit-dedication/resources/META-INF/cloudstack/explicit-dedication/spring-explicit-dedication-context.xml b/plugins/affinity-group-processors/explicit-dedication/resources/META-INF/cloudstack/explicit-dedication/spring-explicit-dedication-context.xml
index 5864f94..7e98c38 100644
--- a/plugins/affinity-group-processors/explicit-dedication/resources/META-INF/cloudstack/explicit-dedication/spring-explicit-dedication-context.xml
+++ b/plugins/affinity-group-processors/explicit-dedication/resources/META-INF/cloudstack/explicit-dedication/spring-explicit-dedication-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="ExplicitDedicationProcessor"
diff --git a/plugins/affinity-group-processors/host-anti-affinity/pom.xml b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
index 99701b9..463110d 100644
--- a/plugins/affinity-group-processors/host-anti-affinity/pom.xml
+++ b/plugins/affinity-group-processors/host-anti-affinity/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>
diff --git a/plugins/affinity-group-processors/host-anti-affinity/resources/META-INF/cloudstack/host-anti-affinity/spring-host-anti-affinity-context.xml b/plugins/affinity-group-processors/host-anti-affinity/resources/META-INF/cloudstack/host-anti-affinity/spring-host-anti-affinity-context.xml
index bc09cc3..362bb47 100644
--- a/plugins/affinity-group-processors/host-anti-affinity/resources/META-INF/cloudstack/host-anti-affinity/spring-host-anti-affinity-context.xml
+++ b/plugins/affinity-group-processors/host-anti-affinity/resources/META-INF/cloudstack/host-anti-affinity/spring-host-anti-affinity-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="HostAntiAffinityProcessor"
diff --git a/plugins/alert-handlers/snmp-alerts/pom.xml b/plugins/alert-handlers/snmp-alerts/pom.xml
index f5d2873..fd20c52 100644
--- a/plugins/alert-handlers/snmp-alerts/pom.xml
+++ b/plugins/alert-handlers/snmp-alerts/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <artifactId>cloudstack-plugins</artifactId>
     <groupId>org.apache.cloudstack</groupId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/plugins/alert-handlers/syslog-alerts/pom.xml b/plugins/alert-handlers/syslog-alerts/pom.xml
index 7630cd8..a019cef 100644
--- a/plugins/alert-handlers/syslog-alerts/pom.xml
+++ b/plugins/alert-handlers/syslog-alerts/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <artifactId>cloudstack-plugins</artifactId>
     <groupId>org.apache.cloudstack</groupId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/plugins/api/discovery/pom.xml b/plugins/api/discovery/pom.xml
index 4f104e6..daf56ef 100644
--- a/plugins/api/discovery/pom.xml
+++ b/plugins/api/discovery/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/api/rate-limit/pom.xml b/plugins/api/rate-limit/pom.xml
index ef8dd7b..41a1a47 100644
--- a/plugins/api/rate-limit/pom.xml
+++ b/plugins/api/rate-limit/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>
diff --git a/plugins/api/rate-limit/resources/META-INF/cloudstack/rate-limit/spring-rate-limit-context.xml b/plugins/api/rate-limit/resources/META-INF/cloudstack/rate-limit/spring-rate-limit-context.xml
index 17153cf..d25c57c 100644
--- a/plugins/api/rate-limit/resources/META-INF/cloudstack/rate-limit/spring-rate-limit-context.xml
+++ b/plugins/api/rate-limit/resources/META-INF/cloudstack/rate-limit/spring-rate-limit-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
       <bean id="apiRateLimitServiceImpl" class="org.apache.cloudstack.ratelimit.ApiRateLimitServiceImpl"/>
diff --git a/plugins/api/solidfire-intg-test/pom.xml b/plugins/api/solidfire-intg-test/pom.xml
index c4567f3..c7dd597 100644
--- a/plugins/api/solidfire-intg-test/pom.xml
+++ b/plugins/api/solidfire-intg-test/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/api/solidfire-intg-test/resources/META-INF/cloudstack/solidfire-intg-test/spring-solidfire-intg-test-context.xml b/plugins/api/solidfire-intg-test/resources/META-INF/cloudstack/solidfire-intg-test/spring-solidfire-intg-test-context.xml
index 2fe875a..28d1e1a 100644
--- a/plugins/api/solidfire-intg-test/resources/META-INF/cloudstack/solidfire-intg-test/spring-solidfire-intg-test-context.xml
+++ b/plugins/api/solidfire-intg-test/resources/META-INF/cloudstack/solidfire-intg-test/spring-solidfire-intg-test-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
       <bean id="sfIntgTestUtil" class="org.apache.cloudstack.util.solidfire.SolidFireIntegrationTestUtil"/>
diff --git a/plugins/database/mysql-ha/pom.xml b/plugins/database/mysql-ha/pom.xml
index dab4bfdb..fdfb52b 100644
--- a/plugins/database/mysql-ha/pom.xml
+++ b/plugins/database/mysql-ha/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/database/quota/pom.xml b/plugins/database/quota/pom.xml
index 3f4004f..585cda2 100644
--- a/plugins/database/quota/pom.xml
+++ b/plugins/database/quota/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/database/quota/resources/META-INF/cloudstack/quota/spring-quota-context.xml b/plugins/database/quota/resources/META-INF/cloudstack/quota/spring-quota-context.xml
index 15bc144..86a7da5 100644
--- a/plugins/database/quota/resources/META-INF/cloudstack/quota/spring-quota-context.xml
+++ b/plugins/database/quota/resources/META-INF/cloudstack/quota/spring-quota-context.xml
@@ -20,10 +20,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="QuotaService" class="org.apache.cloudstack.quota.QuotaServiceImpl" />
     <bean id="QuotaResponseBuilder" class="org.apache.cloudstack.api.response.QuotaResponseBuilderImpl"/>
diff --git a/plugins/dedicated-resources/pom.xml b/plugins/dedicated-resources/pom.xml
index 4cf2859..097e2df 100644
--- a/plugins/dedicated-resources/pom.xml
+++ b/plugins/dedicated-resources/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/dedicated-resources/resources/META-INF/cloudstack/core/spring-dedicated-resources-core-context.xml b/plugins/dedicated-resources/resources/META-INF/cloudstack/core/spring-dedicated-resources-core-context.xml
index e2879f7..c35031d 100644
--- a/plugins/dedicated-resources/resources/META-INF/cloudstack/core/spring-dedicated-resources-core-context.xml
+++ b/plugins/dedicated-resources/resources/META-INF/cloudstack/core/spring-dedicated-resources-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="DedicatedResourceManagerImpl"
diff --git a/plugins/dedicated-resources/test/resource/dedicatedContext.xml b/plugins/dedicated-resources/test/resource/dedicatedContext.xml
index 9ce8362..62219be 100644
--- a/plugins/dedicated-resources/test/resource/dedicatedContext.xml
+++ b/plugins/dedicated-resources/test/resource/dedicatedContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
      <context:annotation-config />
      <context:component-scan
diff --git a/plugins/deployment-planners/implicit-dedication/pom.xml b/plugins/deployment-planners/implicit-dedication/pom.xml
index 00bfeeb..1b7afe4 100644
--- a/plugins/deployment-planners/implicit-dedication/pom.xml
+++ b/plugins/deployment-planners/implicit-dedication/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/deployment-planners/implicit-dedication/resources/META-INF/cloudstack/implicit-dedication/spring-implicit-dedication-context.xml b/plugins/deployment-planners/implicit-dedication/resources/META-INF/cloudstack/implicit-dedication/spring-implicit-dedication-context.xml
index d14b450..3f1a715 100644
--- a/plugins/deployment-planners/implicit-dedication/resources/META-INF/cloudstack/implicit-dedication/spring-implicit-dedication-context.xml
+++ b/plugins/deployment-planners/implicit-dedication/resources/META-INF/cloudstack/implicit-dedication/spring-implicit-dedication-context.xml
@@ -12,10 +12,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="ImplicitDedicationPlanner" class="com.cloud.deploy.ImplicitDedicationPlanner">
         <property name="name" value="ImplicitDedicationPlanner" />
diff --git a/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java b/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java
index 754f36e..79cb1b4 100644
--- a/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java
+++ b/plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java
@@ -94,6 +94,7 @@
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachineProfileImpl;
 import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
 @RunWith(SpringJUnit4ClassRunner.class)
@@ -121,6 +122,8 @@
     @Inject
     UserVmDao vmDao;
     @Inject
+    UserVmDetailsDao vmDetailsDao;
+    @Inject
     VMInstanceDao vmInstanceDao;
     @Inject
     VolumeDao volsDao;
@@ -521,6 +524,11 @@
         }
 
         @Bean
+        public UserVmDetailsDao userVmDetailsDao() {
+            return Mockito.mock(UserVmDetailsDao.class);
+        }
+
+        @Bean
         public VMInstanceDao vmInstanceDao() {
             return Mockito.mock(VMInstanceDao.class);
         }
diff --git a/plugins/deployment-planners/user-concentrated-pod/pom.xml b/plugins/deployment-planners/user-concentrated-pod/pom.xml
index b1152fb..45e549d 100644
--- a/plugins/deployment-planners/user-concentrated-pod/pom.xml
+++ b/plugins/deployment-planners/user-concentrated-pod/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/deployment-planners/user-concentrated-pod/resources/META-INF/cloudstack/user-concentrated-pod/spring-user-concentrated-pod-context.xml b/plugins/deployment-planners/user-concentrated-pod/resources/META-INF/cloudstack/user-concentrated-pod/spring-user-concentrated-pod-context.xml
index e26cb2b..89246a4 100644
--- a/plugins/deployment-planners/user-concentrated-pod/resources/META-INF/cloudstack/user-concentrated-pod/spring-user-concentrated-pod-context.xml
+++ b/plugins/deployment-planners/user-concentrated-pod/resources/META-INF/cloudstack/user-concentrated-pod/spring-user-concentrated-pod-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
   <bean id="UserConcentratedPodPlanner" class="com.cloud.deploy.UserConcentratedPodPlanner">
diff --git a/plugins/deployment-planners/user-dispersing/pom.xml b/plugins/deployment-planners/user-dispersing/pom.xml
index efc10ce..789c29d 100644
--- a/plugins/deployment-planners/user-dispersing/pom.xml
+++ b/plugins/deployment-planners/user-dispersing/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/event-bus/inmemory/pom.xml b/plugins/event-bus/inmemory/pom.xml
index 3cc5798..52f330e 100644
--- a/plugins/event-bus/inmemory/pom.xml
+++ b/plugins/event-bus/inmemory/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/event-bus/kafka/pom.xml b/plugins/event-bus/kafka/pom.xml
index a1735ce..f273bfa 100644
--- a/plugins/event-bus/kafka/pom.xml
+++ b/plugins/event-bus/kafka/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
@@ -36,7 +36,7 @@
     <dependency>
       <groupId>org.apache.kafka</groupId>
       <artifactId>kafka-clients</artifactId>
-      <version>0.9.0.1</version>
+      <version>0.10.1.1</version>
     </dependency>
   </dependencies>
   <build>
diff --git a/plugins/event-bus/rabbitmq/pom.xml b/plugins/event-bus/rabbitmq/pom.xml
index 961a63d..6179582 100644
--- a/plugins/event-bus/rabbitmq/pom.xml
+++ b/plugins/event-bus/rabbitmq/pom.xml
@@ -24,14 +24,14 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
     <dependency>
     <groupId>com.rabbitmq</groupId>
       <artifactId>amqp-client</artifactId>
-        <version>3.6.1</version>
+        <version>3.6.6</version>
     </dependency>
     <dependency>
     <groupId>org.apache.cloudstack</groupId>
diff --git a/plugins/file-systems/netapp/pom.xml b/plugins/file-systems/netapp/pom.xml
index e024a68..3251dea 100644
--- a/plugins/file-systems/netapp/pom.xml
+++ b/plugins/file-systems/netapp/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/ha-planners/skip-heurestics/pom.xml b/plugins/ha-planners/skip-heurestics/pom.xml
index f9388cd..dfddfb2 100644
--- a/plugins/ha-planners/skip-heurestics/pom.xml
+++ b/plugins/ha-planners/skip-heurestics/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/ha-planners/skip-heurestics/resources/META-INF/cloudstack/skip-heurestics/spring-skip-heurestics-context.xml b/plugins/ha-planners/skip-heurestics/resources/META-INF/cloudstack/skip-heurestics/spring-skip-heurestics-context.xml
index 93a0158..21a5064 100644
--- a/plugins/ha-planners/skip-heurestics/resources/META-INF/cloudstack/skip-heurestics/spring-skip-heurestics-context.xml
+++ b/plugins/ha-planners/skip-heurestics/resources/META-INF/cloudstack/skip-heurestics/spring-skip-heurestics-context.xml
@@ -12,10 +12,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="SkipHeuresticsPlanner" class="com.cloud.deploy.SkipHeuresticsPlanner">
         <property name="name" value="SkipHeuresticsPlanner" />
diff --git a/plugins/host-allocators/random/pom.xml b/plugins/host-allocators/random/pom.xml
index 48786ee..4fd225e 100644
--- a/plugins/host-allocators/random/pom.xml
+++ b/plugins/host-allocators/random/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/host-allocators/random/resources/META-INF/cloudstack/host-allocator-random/spring-host-allocator-random-context.xml b/plugins/host-allocators/random/resources/META-INF/cloudstack/host-allocator-random/spring-host-allocator-random-context.xml
index 8df1bdb..979ccc4 100644
--- a/plugins/host-allocators/random/resources/META-INF/cloudstack/host-allocator-random/spring-host-allocator-random-context.xml
+++ b/plugins/host-allocators/random/resources/META-INF/cloudstack/host-allocator-random/spring-host-allocator-random-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="randomAllocator"
diff --git a/plugins/hypervisors/baremetal/pom.xml b/plugins/hypervisors/baremetal/pom.xml
index 94a629b..49988c7 100755
--- a/plugins/hypervisors/baremetal/pom.xml
+++ b/plugins/hypervisors/baremetal/pom.xml
@@ -21,7 +21,7 @@
   <parent>

     <groupId>org.apache.cloudstack</groupId>

     <artifactId>cloudstack-plugins</artifactId>

-    <version>4.9.4.0-SNAPSHOT</version>

+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>

   </parent>

   <artifactId>cloud-plugin-hypervisor-baremetal</artifactId>

diff --git a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-compute/spring-baremetal-compute-context.xml b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-compute/spring-baremetal-compute-context.xml
index d0b52a1..b8cd53f 100644
--- a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-compute/spring-baremetal-compute-context.xml
+++ b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-compute/spring-baremetal-compute-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="BaremetalGuru" class="com.cloud.baremetal.manager.BareMetalGuru">
diff --git a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-discoverer/spring-baremetal-discoverer-context.xml b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-discoverer/spring-baremetal-discoverer-context.xml
index c01d9c6..12b2877 100644
--- a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-discoverer/spring-baremetal-discoverer-context.xml
+++ b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-discoverer/spring-baremetal-discoverer-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="BareMetalDiscoverer" class="com.cloud.baremetal.manager.BareMetalDiscoverer">
diff --git a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-network/spring-baremetal-network-context.xml b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-network/spring-baremetal-network-context.xml
index c5068e7..2ce81c2 100644
--- a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-network/spring-baremetal-network-context.xml
+++ b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-network/spring-baremetal-network-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="BareMetalDhcp"
diff --git a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-planner/spring-baremetal-planner-context.xml b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-planner/spring-baremetal-planner-context.xml
index 046aca6..90ff7aa 100644
--- a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-planner/spring-baremetal-planner-context.xml
+++ b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-planner/spring-baremetal-planner-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="BareMetalPlanner" class="com.cloud.baremetal.manager.BareMetalPlanner">
diff --git a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-storage/spring-baremetal-storage-context.xml b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-storage/spring-baremetal-storage-context.xml
index e0a9e36..56ede99 100644
--- a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-storage/spring-baremetal-storage-context.xml
+++ b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/baremetal-storage/spring-baremetal-storage-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="BareMetalTemplateAdapter" class="com.cloud.baremetal.manager.BareMetalTemplateAdapter" />
diff --git a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/core/spring-baremetal-core-context.xml b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/core/spring-baremetal-core-context.xml
index a153e7f..993fe40 100755
--- a/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/core/spring-baremetal-core-context.xml
+++ b/plugins/hypervisors/baremetal/resources/META-INF/cloudstack/core/spring-baremetal-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="BaremetalManager" class="com.cloud.baremetal.manager.BaremetalManagerImpl" />
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BareMetalTemplateAdapter.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BareMetalTemplateAdapter.java
index 53683fd..d2d0029 100644
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BareMetalTemplateAdapter.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BareMetalTemplateAdapter.java
@@ -84,20 +84,22 @@
     @Override
     public VMTemplateVO create(TemplateProfile profile) {
         VMTemplateVO template = persistTemplate(profile, State.Active);
-        Long zoneId = profile.getZoneId();
+        List<Long> zones = profile.getZoneIdList();
 
         // create an entry at template_store_ref with store_id = null to represent that this template is ready for use.
         TemplateDataStoreVO vmTemplateHost =
             new TemplateDataStoreVO(null, template.getId(), new Date(), 100, Status.DOWNLOADED, null, null, null, null, template.getUrl());
         this._tmpltStoreDao.persist(vmTemplateHost);
 
-        if (zoneId == null || zoneId == -1) {
+        if (zones == null) {
             List<DataCenterVO> dcs = _dcDao.listAllIncludingRemoved();
             if (dcs != null && dcs.size() > 0) {
                 templateCreateUsage(template, dcs.get(0).getId());
             }
         } else {
-            templateCreateUsage(template, zoneId);
+            for (Long zoneId: zones) {
+                templateCreateUsage(template, zoneId);
+            }
         }
 
         _resourceLimitMgr.incrementResourceCount(profile.getAccountId(), ResourceType.template);
@@ -123,8 +125,12 @@
         boolean success = true;
         String zoneName;
 
-        if (!template.isCrossZones() && profile.getZoneId() != null) {
-            zoneName = profile.getZoneId().toString();
+        if (profile.getZoneIdList() != null && profile.getZoneIdList().size() > 1)
+            throw new CloudRuntimeException("Operation is not supported for more than one zone id at a time");
+
+        if (!template.isCrossZones() && profile.getZoneIdList() != null) {
+            //get the first element in the list
+            zoneName = profile.getZoneIdList().get(0).toString();
         } else {
             zoneName = "all zones";
         }
@@ -154,9 +160,16 @@
             }
         }
 
-        if (profile.getZoneId() != null) {
-            UsageEventVO usageEvent = new UsageEventVO(eventType, account.getId(), profile.getZoneId(), templateId, null);
+        if (profile.getZoneIdList() != null) {
+            UsageEventVO usageEvent = new UsageEventVO(eventType, account.getId(), profile.getZoneIdList().get(0),
+                                            templateId, null);
             _usageEventDao.persist(usageEvent);
+
+            VMTemplateZoneVO templateZone = _tmpltZoneDao.findByZoneTemplate(profile.getZoneIdList().get(0), templateId);
+
+            if (templateZone != null) {
+                _tmpltZoneDao.remove(templateZone.getId());
+            }
         } else {
             List<DataCenterVO> dcs = _dcDao.listAllIncludingRemoved();
             for (DataCenterVO dc : dcs) {
@@ -165,12 +178,6 @@
             }
         }
 
-        VMTemplateZoneVO templateZone = _tmpltZoneDao.findByZoneTemplate(profile.getZoneId(), templateId);
-
-        if (templateZone != null) {
-            _tmpltZoneDao.remove(templateZone.getId());
-        }
-
         s_logger.debug("Successfully marked template host refs for template: " + template.getName() + " as destroyed in zone: " + zoneName);
 
         // If there are no more non-destroyed template host entries for this template, delete it
diff --git a/plugins/hypervisors/hyperv/pom.xml b/plugins/hypervisors/hyperv/pom.xml
index c7cad0b..f465283 100644
--- a/plugins/hypervisors/hyperv/pom.xml
+++ b/plugins/hypervisors/hyperv/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <properties>
diff --git a/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/core/spring-hyperv-core-context.xml b/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/core/spring-hyperv-core-context.xml
index 84d50ca..75bdaa1 100644
--- a/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/core/spring-hyperv-core-context.xml
+++ b/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/core/spring-hyperv-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="HypervManager" class="com.cloud.hypervisor.hyperv.manager.HypervManagerImpl" />
diff --git a/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/hyperv-compute/spring-hyperv-compute-context.xml b/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/hyperv-compute/spring-hyperv-compute-context.xml
index a128fbc..ffb6440 100644
--- a/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/hyperv-compute/spring-hyperv-compute-context.xml
+++ b/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/hyperv-compute/spring-hyperv-compute-context.xml
@@ -12,10 +12,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="HypervGuru" class="com.cloud.hypervisor.hyperv.guru.HypervGuru">
         <property name="name" value="HypervGuru" />
diff --git a/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/hyperv-discoverer/spring-hyperv-discoverer-context.xml b/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/hyperv-discoverer/spring-hyperv-discoverer-context.xml
index ee394f0..1fcdd64 100644
--- a/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/hyperv-discoverer/spring-hyperv-discoverer-context.xml
+++ b/plugins/hypervisors/hyperv/resources/META-INF/cloudstack/hyperv-discoverer/spring-hyperv-discoverer-context.xml
@@ -12,10 +12,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="HypervServerDiscoverer"
         class="com.cloud.hypervisor.hyperv.discoverer.HypervServerDiscoverer">
diff --git a/plugins/hypervisors/kvm/pom.xml b/plugins/hypervisors/kvm/pom.xml
index a319859..b4bb371 100644
--- a/plugins/hypervisors/kvm/pom.xml
+++ b/plugins/hypervisors/kvm/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml b/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml
index ce596f2..3c51a23 100644
--- a/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml
+++ b/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="KVMInvestigator" class="com.cloud.ha.KVMInvestigator">
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAChecker.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAChecker.java
index c2af191..565673e 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAChecker.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAChecker.java
@@ -57,7 +57,7 @@
             s_logger.debug("reture: " + result);
             s_logger.debug("parser: " + parser.getLine());
             if (result == null && parser.getLine().contains("> DEAD <")) {
-                s_logger.debug("read heartbeat failed: " + result);
+                s_logger.debug("read heartbeat failed: ");
                 results.add(false);
             } else {
                 results.add(true);
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index db47f46..9659ad4 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -22,6 +22,7 @@
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.Reader;
+import java.io.StringReader;
 import java.net.InetAddress;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -44,7 +45,11 @@
 
 import javax.ejb.Local;
 import javax.naming.ConfigurationException;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
 
+import com.google.common.base.Strings;
 import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
 import org.apache.cloudstack.storage.to.VolumeObjectTO;
 import org.apache.cloudstack.utils.hypervisor.HypervisorUtils;
@@ -61,7 +66,14 @@
 import org.libvirt.DomainBlockStats;
 import org.libvirt.DomainInfo;
 import org.libvirt.DomainInfo.DomainState;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
 import org.libvirt.DomainInterfaceStats;
+import org.libvirt.DomainSnapshot;
 import org.libvirt.LibvirtException;
 import org.libvirt.MemoryStatistic;
 import org.libvirt.NodeInfo;
@@ -96,6 +108,7 @@
 import com.cloud.exception.InternalErrorException;
 import com.cloud.host.Host.Type;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ChannelDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ClockDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ConsoleDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.CpuModeDef;
@@ -103,6 +116,7 @@
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DevicesDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef.DeviceType;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef.DiscardType;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef.DiskProtocol;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.FeaturesDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.FilesystemDef;
@@ -112,10 +126,12 @@
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InputDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef.GuestNetType;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.SCSIDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.SerialDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.TermPolicy;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.VideoDef;
-import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.VirtioSerialDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.RngDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.RngDef.RngBackendModel;
 import com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper;
 import com.cloud.hypervisor.kvm.resource.wrapper.LibvirtUtilitiesHelper;
 import com.cloud.hypervisor.kvm.storage.KVMPhysicalDisk;
@@ -136,8 +152,10 @@
 import com.cloud.storage.resource.StorageSubsystemCommandHandlerBase;
 import com.cloud.utils.ExecutionResult;
 import com.cloud.utils.NumbersUtil;
+import com.cloud.utils.StringUtils;
 import com.cloud.utils.Pair;
 import com.cloud.utils.PropertiesUtil;
+import com.cloud.utils.Ternary;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.net.NetUtils;
 import com.cloud.utils.script.OutputInterpreter;
@@ -146,6 +164,7 @@
 import com.cloud.utils.ssh.SshHelper;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachine.PowerState;
+import com.cloud.vm.VmDetailConstants;
 
 /**
  * LibvirtComputingResource execute requests on the computing/routing host using
@@ -245,6 +264,14 @@
     protected long _diskActivityCheckFileSizeMin = 10485760; // 10MB
     protected int _diskActivityCheckTimeoutSeconds = 120; // 120s
     protected long _diskActivityInactiveThresholdMilliseconds = 30000; // 30s
+    protected boolean _rngEnable = false;
+    protected RngBackendModel _rngBackendModel = RngBackendModel.RANDOM;
+    protected String _rngPath = "/dev/random";
+    protected int _rngRatePeriod = 1000;
+    protected int _rngRateBytes = 2048;
+    private File _qemuSocketsPath;
+    private final String _qemuGuestAgentSocketName = "org.qemu.guest_agent.0";
+    private long _totalMemory;
 
     private final Map <String, String> _pifs = new HashMap<String, String>();
     private final Map<String, VmStats> _vmStats = new ConcurrentHashMap<String, VmStats>();
@@ -769,6 +796,13 @@
             _localStoragePath = "/var/lib/libvirt/images/";
         }
 
+        /* Directory to use for Qemu sockets like for the Qemu Guest Agent */
+        _qemuSocketsPath = new File("/var/lib/libvirt/qemu");
+        String _qemuSocketsPathVar = (String)params.get("qemu.sockets.path");
+        if (_qemuSocketsPathVar != null && StringUtils.isNotBlank(_qemuSocketsPathVar)) {
+            _qemuSocketsPath = new File(_qemuSocketsPathVar);
+        }
+
         final File storagePath = new File(_localStoragePath);
         _localStoragePath = storagePath.getAbsolutePath();
 
@@ -804,6 +838,27 @@
             _noKvmClock = true;
         }
 
+        value = (String) params.get("vm.rng.enable");
+        if (Boolean.parseBoolean(value)) {
+            _rngEnable = true;
+
+            value = (String) params.get("vm.rng.model");
+            if (!Strings.isNullOrEmpty(value)) {
+                _rngBackendModel = RngBackendModel.valueOf(value.toUpperCase());
+            }
+
+            value = (String) params.get("vm.rng.path");
+            if (!Strings.isNullOrEmpty(value)) {
+                _rngPath = value;
+            }
+
+            value = (String) params.get("vm.rng.rate.bytes");
+            _rngRateBytes = NumbersUtil.parseInt(value, new Integer(_rngRateBytes));
+
+            value = (String) params.get("vm.rng.rate.period");
+            _rngRatePeriod = NumbersUtil.parseInt(value, new Integer(_rngRatePeriod));
+        }
+
         LibvirtConnection.initialize(_hypervisorURI);
         Connect conn = null;
         try {
@@ -1672,6 +1727,7 @@
 
         final String routerName = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
         final String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+        final String lastIp = cmd.getAccessDetail(NetworkElementCommand.NETWORK_PUB_LAST_IP);
         Connect conn;
 
 
@@ -1708,9 +1764,12 @@
                 }
                 nicNum = broadcastUriAllocatedToVM.get(ip.getBroadcastUri());
 
-                if (numOfIps == 1 && !ip.isAdd()) {
-                    vifHotUnPlug(conn, routerName, ip.getVifMacAddress());
-                    networkUsage(routerIp, "deleteVif", "eth" + nicNum);
+                if (org.apache.commons.lang.StringUtils.equalsIgnoreCase(lastIp, "true") && !ip.isAdd()) {
+                    // in isolated network eth2 is the default public interface. We don't want to delete it.
+                    if (nicNum != 2) {
+                        vifHotUnPlug(conn, routerName, ip.getVifMacAddress());
+                        networkUsage(routerIp, "deleteVif", "eth" + nicNum);
+                    }
                 }
             }
 
@@ -1974,11 +2033,21 @@
         final SerialDef serial = new SerialDef("pty", null, (short)0);
         devices.addDevice(serial);
 
+        /* Add a VirtIO channel for SystemVMs for communication and provisioning */
         if (vmTO.getType() != VirtualMachine.Type.User) {
-            final VirtioSerialDef vserial = new VirtioSerialDef(vmTO.getName(), null);
-            devices.addDevice(vserial);
+            devices.addDevice(new ChannelDef(vmTO.getName() + ".vport", ChannelDef.ChannelType.UNIX,
+                              new File(_qemuSocketsPath + "/" + vmTO.getName() + ".agent")));
         }
 
+        if (_rngEnable) {
+            final RngDef rngDevice = new RngDef(_rngPath, _rngBackendModel, _rngRateBytes, _rngRatePeriod);
+            devices.addDevice(rngDevice);
+        }
+
+        /* Add a VirtIO channel for the Qemu Guest Agent tools */
+        devices.addDevice(new ChannelDef(_qemuGuestAgentSocketName, ChannelDef.ChannelType.UNIX,
+                          new File(_qemuSocketsPath + "/" + vmTO.getName() + "." + _qemuGuestAgentSocketName)));
+
         final VideoDef videoCard = new VideoDef(_videoHw, _videoRam);
         devices.addDevice(videoCard);
 
@@ -1993,6 +2062,19 @@
         final InputDef input = new InputDef("tablet", "usb");
         devices.addDevice(input);
 
+
+        DiskDef.DiskBus busT = getDiskModelFromVMDetail(vmTO);
+
+        if (busT == null) {
+            busT = getGuestDiskModel(vmTO.getPlatformEmulator());
+        }
+
+        // If we're using virtio scsi, then we need to add a virtual scsi controller
+        if (busT == DiskDef.DiskBus.SCSI) {
+            final SCSIDef sd = new SCSIDef((short)0, 0, 0, 9, 0);
+            devices.addDevice(sd);
+        }
+
         vm.addComp(devices);
 
         return vm;
@@ -2076,23 +2158,16 @@
             }
 
             // if params contains a rootDiskController key, use its value (this is what other HVs are doing)
-            DiskDef.DiskBus diskBusType = null;
-            final Map <String, String> params = vmSpec.getDetails();
-            if (params != null && params.get("rootDiskController") != null && !params.get("rootDiskController").isEmpty()) {
-                final String rootDiskController = params.get("rootDiskController");
-                s_logger.debug("Passed custom disk bus " + rootDiskController);
-                for (final DiskDef.DiskBus bus : DiskDef.DiskBus.values()) {
-                    if (bus.toString().equalsIgnoreCase(rootDiskController)) {
-                        s_logger.debug("Found matching enum for disk bus " + rootDiskController);
-                        diskBusType = bus;
-                        break;
-                    }
-                }
-            }
+            DiskDef.DiskBus diskBusType = getDiskModelFromVMDetail(vmSpec);
 
             if (diskBusType == null) {
                 diskBusType = getGuestDiskModel(vmSpec.getPlatformEmulator());
             }
+
+            // I'm not sure why previously certain DATADISKs were hard-coded VIRTIO and others not, however this
+            // maintains existing functionality with the exception that SCSI will override VIRTIO.
+            DiskDef.DiskBus diskBusTypeData = (diskBusType == DiskDef.DiskBus.SCSI) ? diskBusType : DiskDef.DiskBus.VIRTIO;
+
             final DiskDef disk = new DiskDef();
             if (volume.getType() == Volume.Type.ISO) {
                 if (volPath == null) {
@@ -2104,6 +2179,11 @@
             } else {
                 final int devId = volume.getDiskSeq().intValue();
 
+                if (diskBusType == DiskDef.DiskBus.SCSI ) {
+                    disk.setQemuDriver(true);
+                    disk.setDiscard(DiscardType.UNMAP);
+                }
+
                 if (pool.getType() == StoragePoolType.RBD) {
                     /*
                             For RBD pools we use the secret mechanism in libvirt.
@@ -2122,7 +2202,7 @@
                     disk.defBlockBasedDisk(physicalDisk.getPath(), devId, diskBusType);
                 } else {
                     if (volume.getType() == Volume.Type.DATADISK) {
-                        disk.defFileBasedDisk(physicalDisk.getPath(), devId, DiskDef.DiskBus.VIRTIO, DiskDef.DiskFmtType.QCOW2);
+                        disk.defFileBasedDisk(physicalDisk.getPath(), devId, diskBusTypeData, DiskDef.DiskFmtType.QCOW2);
                     } else {
                         disk.defFileBasedDisk(physicalDisk.getPath(), devId, diskBusType, DiskDef.DiskFmtType.QCOW2);
                     }
@@ -2150,6 +2230,7 @@
                     disk.setCacheMode(DiskDef.DiskCacheMode.valueOf(volumeObjectTO.getCacheMode().toString().toUpperCase()));
                 }
             }
+
             vm.getDevices().addDevice(disk);
         }
 
@@ -2268,13 +2349,13 @@
         DiskDef diskdef = null;
         final KVMStoragePool attachingPool = attachingDisk.getPool();
         try {
-            if (!attach) {
-                dm = conn.domainLookupByName(vmName);
-                final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
-                final String xml = dm.getXMLDesc(0);
-                parser.parseDomainXML(xml);
-                disks = parser.getDisks();
+            dm = conn.domainLookupByName(vmName);
+            final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
+            final String domXml = dm.getXMLDesc(0);
+            parser.parseDomainXML(domXml);
+            disks = parser.getDisks();
 
+            if (!attach) {
                 for (final DiskDef disk : disks) {
                     final String file = disk.getDiskPath();
                     if (file != null && file.equalsIgnoreCase(attachingDisk.getPath())) {
@@ -2286,17 +2367,31 @@
                     throw new InternalErrorException("disk: " + attachingDisk.getPath() + " is not attached before");
                 }
             } else {
+                DiskDef.DiskBus busT = DiskDef.DiskBus.VIRTIO;
+                for (final DiskDef disk : disks) {
+                    if (disk.getDeviceType() == DeviceType.DISK) {
+                        if (disk.getBusType() == DiskDef.DiskBus.SCSI) {
+                            busT = DiskDef.DiskBus.SCSI;
+                        }
+                        break;
+                    }
+                }
+
                 diskdef = new DiskDef();
+                if (busT == DiskDef.DiskBus.SCSI) {
+                    diskdef.setQemuDriver(true);
+                    diskdef.setDiscard(DiscardType.UNMAP);
+                }
                 if (attachingPool.getType() == StoragePoolType.RBD) {
                     diskdef.defNetworkBasedDisk(attachingDisk.getPath(), attachingPool.getSourceHost(), attachingPool.getSourcePort(), attachingPool.getAuthUserName(),
-                            attachingPool.getUuid(), devId, DiskDef.DiskBus.VIRTIO, DiskProtocol.RBD, DiskDef.DiskFmtType.RAW);
+                            attachingPool.getUuid(), devId, busT, DiskProtocol.RBD, DiskDef.DiskFmtType.RAW);
                 } else if (attachingPool.getType() == StoragePoolType.Gluster) {
                     diskdef.defNetworkBasedDisk(attachingDisk.getPath(), attachingPool.getSourceHost(), attachingPool.getSourcePort(), null,
-                            null, devId, DiskDef.DiskBus.VIRTIO, DiskProtocol.GLUSTER, DiskDef.DiskFmtType.QCOW2);
+                            null, devId, busT, DiskProtocol.GLUSTER, DiskDef.DiskFmtType.QCOW2);
                 } else if (attachingDisk.getFormat() == PhysicalDiskFormat.QCOW2) {
-                    diskdef.defFileBasedDisk(attachingDisk.getPath(), devId, DiskDef.DiskBus.VIRTIO, DiskDef.DiskFmtType.QCOW2);
+                    diskdef.defFileBasedDisk(attachingDisk.getPath(), devId, busT, DiskDef.DiskFmtType.QCOW2);
                 } else if (attachingDisk.getFormat() == PhysicalDiskFormat.RAW) {
-                    diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId, DiskDef.DiskBus.VIRTIO);
+                    diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId, busT);
                 }
                 if (bytesReadRate != null && bytesReadRate > 0) {
                     diskdef.setBytesReadRate(bytesReadRate);
@@ -2387,6 +2482,7 @@
     public StartupCommand[] initialize() {
 
         final List<Object> info = getHostInfo();
+        _totalMemory = (Long)info.get(2);
 
         final StartupRoutingCommand cmd =
                 new StartupRoutingCommand((Integer)info.get(0), (Long)info.get(1), (Long)info.get(2), (Long)info.get(4), (String)info.get(3), _hypervisorType,
@@ -2722,6 +2818,22 @@
         DomainState state = null;
         Domain dm = null;
 
+        // delete the metadata of vm snapshots before stopping
+        try {
+            dm = conn.domainLookupByName(vmName);
+            cleanVMSnapshotMetadata(dm);
+        } catch (LibvirtException e) {
+            s_logger.debug("Failed to get vm :" + e.getMessage());
+        } finally {
+            try {
+                if (dm != null) {
+                    dm.free();
+                }
+            } catch (LibvirtException l) {
+                s_logger.trace("Ignoring libvirt error.", l);
+            }
+        }
+
         s_logger.debug("Try to stop the vm at first");
         if (forceStop) {
             return stopVMInternal(conn, vmName, true);
@@ -2882,19 +2994,8 @@
     }
 
     boolean isGuestPVEnabled(final String guestOSName) {
-        if (guestOSName == null) {
-            return false;
-        }
-        if (guestOSName.startsWith("Ubuntu") || guestOSName.startsWith("Fedora 13") || guestOSName.startsWith("Fedora 12") || guestOSName.startsWith("Fedora 11") ||
-                guestOSName.startsWith("Fedora 10") || guestOSName.startsWith("Fedora 9") || guestOSName.startsWith("CentOS 5.3") || guestOSName.startsWith("CentOS 5.4") ||
-                guestOSName.startsWith("CentOS 5.5") || guestOSName.startsWith("CentOS") || guestOSName.startsWith("Fedora") ||
-                guestOSName.startsWith("Red Hat Enterprise Linux 5.3") || guestOSName.startsWith("Red Hat Enterprise Linux 5.4") ||
-                guestOSName.startsWith("Red Hat Enterprise Linux 5.5") || guestOSName.startsWith("Red Hat Enterprise Linux 6") || guestOSName.startsWith("Debian GNU/Linux") ||
-                guestOSName.startsWith("FreeBSD 10") || guestOSName.startsWith("Oracle") || guestOSName.startsWith("Other PV")) {
-            return true;
-        } else {
-            return false;
-        }
+        DiskDef.DiskBus db = getGuestDiskModel(guestOSName);
+        return db != DiskDef.DiskBus.IDE;
     }
 
     public boolean isCentosHost() {
@@ -2905,14 +3006,42 @@
         }
     }
 
+    public DiskDef.DiskBus getDiskModelFromVMDetail(final VirtualMachineTO vmTO) {
+        Map<String, String> details = vmTO.getDetails();
+        if (details == null) {
+            return null;
+        }
+
+        final String rootDiskController = details.get(VmDetailConstants.ROOT_DISK_CONTROLLER);
+        if (StringUtils.isNotBlank(rootDiskController)) {
+            s_logger.debug("Passed custom disk bus " + rootDiskController);
+            for (final DiskDef.DiskBus bus : DiskDef.DiskBus.values()) {
+                if (bus.toString().equalsIgnoreCase(rootDiskController)) {
+                    s_logger.debug("Found matching enum for disk bus " + rootDiskController);
+                    return bus;
+                }
+            }
+        }
+        return null;
+    }
+
     private DiskDef.DiskBus getGuestDiskModel(final String platformEmulator) {
-        if (isGuestPVEnabled(platformEmulator)) {
+        if (platformEmulator == null) {
+            return DiskDef.DiskBus.IDE;
+        } else if (platformEmulator.startsWith("Other PV Virtio-SCSI")) {
+            return DiskDef.DiskBus.SCSI;
+        } else if (platformEmulator.startsWith("Ubuntu") || platformEmulator.startsWith("Fedora 13") || platformEmulator.startsWith("Fedora 12") || platformEmulator.startsWith("Fedora 11") ||
+                platformEmulator.startsWith("Fedora 10") || platformEmulator.startsWith("Fedora 9") || platformEmulator.startsWith("CentOS 5.3") || platformEmulator.startsWith("CentOS 5.4") ||
+                platformEmulator.startsWith("CentOS 5.5") || platformEmulator.startsWith("CentOS") || platformEmulator.startsWith("Fedora") ||
+                platformEmulator.startsWith("Red Hat Enterprise Linux 5.3") || platformEmulator.startsWith("Red Hat Enterprise Linux 5.4") ||
+                platformEmulator.startsWith("Red Hat Enterprise Linux 5.5") || platformEmulator.startsWith("Red Hat Enterprise Linux 6") || platformEmulator.startsWith("Debian GNU/Linux") ||
+                platformEmulator.startsWith("FreeBSD 10") || platformEmulator.startsWith("Oracle") || platformEmulator.startsWith("Other PV")) {
             return DiskDef.DiskBus.VIRTIO;
         } else {
             return DiskDef.DiskBus.IDE;
         }
-    }
 
+    }
     private void cleanupVMNetworks(final Connect conn, final List<InterfaceDef> nics) {
         if (nics != null) {
             for (final InterfaceDef nic : nics) {
@@ -3206,6 +3335,9 @@
         if (nic.getIp() != null) {
             cmd.add("--vmip", nic.getIp());
         }
+        if (nic.getIp6Address() != null) {
+            cmd.add("--vmip6", nic.getIp6Address());
+        }
         cmd.add("--vmmac", nic.getMac());
         cmd.add("--vif", vif);
         cmd.add("--brname", brname);
@@ -3268,7 +3400,7 @@
         return true;
     }
 
-    public boolean addNetworkRules(final String vmName, final String vmId, final String guestIP, final String sig, final String seq, final String mac, final String rules, final String vif, final String brname,
+    public boolean addNetworkRules(final String vmName, final String vmId, final String guestIP, final String guestIP6, final String sig, final String seq, final String mac, final String rules, final String vif, final String brname,
             final String secIps) {
         if (!_canBridgeFirewall) {
             return false;
@@ -3280,6 +3412,7 @@
         cmd.add("--vmname", vmName);
         cmd.add("--vmid", vmId);
         cmd.add("--vmip", guestIP);
+        cmd.add("--vmip6", guestIP6);
         cmd.add("--sig", sig);
         cmd.add("--seq", seq);
         cmd.add("--vmmac", mac);
@@ -3433,4 +3566,81 @@
         }
         return device;
     }
+
+    public List<Ternary<String, Boolean, String>> cleanVMSnapshotMetadata(Domain dm) throws LibvirtException {
+        s_logger.debug("Cleaning the metadata of vm snapshots of vm " + dm.getName());
+        List<Ternary<String, Boolean, String>> vmsnapshots = new ArrayList<Ternary<String, Boolean, String>>();
+        if (dm.snapshotNum() == 0) {
+            return vmsnapshots;
+        }
+        String currentSnapshotName = null;
+        try {
+            DomainSnapshot snapshotCurrent = dm.snapshotCurrent();
+            String snapshotXML = snapshotCurrent.getXMLDesc();
+            snapshotCurrent.free();
+            DocumentBuilder builder;
+            try {
+                builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+
+                InputSource is = new InputSource();
+                is.setCharacterStream(new StringReader(snapshotXML));
+                Document doc = builder.parse(is);
+                Element rootElement = doc.getDocumentElement();
+
+                currentSnapshotName = getTagValue("name", rootElement);
+            } catch (ParserConfigurationException e) {
+                s_logger.debug(e.toString());
+            } catch (SAXException e) {
+                s_logger.debug(e.toString());
+            } catch (IOException e) {
+                s_logger.debug(e.toString());
+            }
+        } catch (LibvirtException e) {
+            s_logger.debug("Fail to get the current vm snapshot for vm: " + dm.getName() + ", continue");
+        }
+        int flags = 2; // VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY = 2
+        String[] snapshotNames = dm.snapshotListNames();
+        Arrays.sort(snapshotNames);
+        for (String snapshotName: snapshotNames) {
+            DomainSnapshot snapshot = dm.snapshotLookupByName(snapshotName);
+            Boolean isCurrent = (currentSnapshotName != null && currentSnapshotName.equals(snapshotName)) ? true: false;
+            vmsnapshots.add(new Ternary<String, Boolean, String>(snapshotName, isCurrent, snapshot.getXMLDesc()));
+        }
+        for (String snapshotName: snapshotNames) {
+            DomainSnapshot snapshot = dm.snapshotLookupByName(snapshotName);
+            snapshot.delete(flags); // clean metadata of vm snapshot
+        }
+        return vmsnapshots;
+    }
+
+    private static String getTagValue(String tag, Element eElement) {
+        NodeList nlList = eElement.getElementsByTagName(tag).item(0).getChildNodes();
+        Node nValue = nlList.item(0);
+
+        return nValue.getNodeValue();
+    }
+
+    public void restoreVMSnapshotMetadata(Domain dm, String vmName, List<Ternary<String, Boolean, String>> vmsnapshots) {
+        s_logger.debug("Restoring the metadata of vm snapshots of vm " + vmName);
+        for (Ternary<String, Boolean, String> vmsnapshot: vmsnapshots) {
+            String snapshotName = vmsnapshot.first();
+            Boolean isCurrent = vmsnapshot.second();
+            String snapshotXML = vmsnapshot.third();
+            s_logger.debug("Restoring vm snapshot " + snapshotName + " on " + vmName + " with XML:\n " + snapshotXML);
+            try {
+                int flags = 1; // VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE = 1
+                if (isCurrent) {
+                    flags += 2; // VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT = 2
+                }
+                dm.snapshotCreateXML(snapshotXML, flags);
+            } catch (LibvirtException e) {
+                s_logger.debug("Failed to restore vm snapshot " + snapshotName + ", continue");
+                continue;
+            }
+        }
+    }
+
+    public long getTotalMemory() {
+        return _totalMemory;
+    }
 }
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParser.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParser.java
index 0b6b9d9..3c4dc11 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParser.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParser.java
@@ -16,15 +16,18 @@
 // under the License.
 package com.cloud.hypervisor.kvm.resource;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.StringReader;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import com.google.common.base.Strings;
 import org.apache.log4j.Logger;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -33,14 +36,20 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
+import com.cloud.utils.StringUtils;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ChannelDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef.NicModel;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.RngDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.RngDef.RngBackendModel;
 
 public class LibvirtDomainXMLParser {
     private static final Logger s_logger = Logger.getLogger(LibvirtDomainXMLParser.class);
     private final List<InterfaceDef> interfaces = new ArrayList<InterfaceDef>();
     private final List<DiskDef> diskDefs = new ArrayList<DiskDef>();
+    private final List<RngDef> rngDefs = new ArrayList<RngDef>();
+    private final List<ChannelDef> channels = new ArrayList<ChannelDef>();
     private Integer vncPort;
     private String desc;
 
@@ -171,6 +180,26 @@
                 interfaces.add(def);
             }
 
+            NodeList ports = devices.getElementsByTagName("channel");
+            for (int i = 0; i < ports.getLength(); i++) {
+                Element channel = (Element)ports.item(i);
+
+                String type = channel.getAttribute("type");
+                String path = getAttrValue("source", "path", channel);
+                String name = getAttrValue("target", "name", channel);
+                String state = getAttrValue("target", "state", channel);
+
+                ChannelDef def = null;
+                if (!StringUtils.isNotBlank(state)) {
+                    def = new ChannelDef(name, ChannelDef.ChannelType.valueOf(type.toUpperCase()), new File(path));
+                } else {
+                    def = new ChannelDef(name, ChannelDef.ChannelType.valueOf(type.toUpperCase()),
+                            ChannelDef.ChannelState.valueOf(state.toUpperCase()), new File(path));
+                }
+
+                channels.add(def);
+            }
+
             Element graphic = (Element)devices.getElementsByTagName("graphics").item(0);
 
             if (graphic != null) {
@@ -189,6 +218,25 @@
                 }
             }
 
+            NodeList rngs = devices.getElementsByTagName("rng");
+            for (int i = 0; i < rngs.getLength(); i++) {
+                RngDef def = null;
+                Element rng = (Element)rngs.item(i);
+                String backendModel = getAttrValue("backend", "model", rng);
+                String path = getTagValue("backend", rng);
+                String bytes = getAttrValue("rate", "bytes", rng);
+                String period = getAttrValue("rate", "period", rng);
+
+                if (Strings.isNullOrEmpty(backendModel)) {
+                    def = new RngDef(path, Integer.parseInt(bytes), Integer.parseInt(period));
+                } else {
+                    def = new RngDef(path, RngBackendModel.valueOf(backendModel.toUpperCase()),
+                                     Integer.parseInt(bytes), Integer.parseInt(period));
+                }
+
+                rngDefs.add(def);
+            }
+
             return true;
         } catch (ParserConfigurationException e) {
             s_logger.debug(e.toString());
@@ -234,6 +282,14 @@
         return diskDefs;
     }
 
+    public List<RngDef> getRngs() {
+        return rngDefs;
+    }
+
+    public List<ChannelDef> getChannels() {
+        return Collections.unmodifiableList(channels);
+    }
+
     public String getDescription() {
         return desc;
     }
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
index 7d44ae4..ffc93de 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
@@ -20,6 +20,7 @@
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.log4j.Logger;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -544,6 +545,23 @@
             }
         }
 
+        public enum DiscardType {
+            IGNORE("ignore"), UNMAP("unmap");
+            String _discardType;
+            DiscardType(String discardType) {
+                _discardType = discardType;
+            }
+
+            @Override
+            public String toString() {
+                if (_discardType == null) {
+                    return "ignore";
+                }
+                return _discardType;
+            }
+
+        }
+
         private DeviceType _deviceType; /* floppy, disk, cdrom */
         private DiskType _diskType;
         private DiskProtocol _diskProtocol;
@@ -565,6 +583,15 @@
         private DiskCacheMode _diskCacheMode;
         private String _serial;
         private boolean qemuDriver = true;
+        private DiscardType _discard = DiscardType.IGNORE;
+
+        public DiscardType getDiscard() {
+            return _discard;
+        }
+
+        public void setDiscard(DiscardType discard) {
+            this._discard = discard;
+        }
 
         public void setDeviceType(DeviceType deviceType) {
             _deviceType = deviceType;
@@ -776,7 +803,11 @@
             diskBuilder.append(">\n");
             if(qemuDriver) {
                 diskBuilder.append("<driver name='qemu'" + " type='" + _diskFmtType
-                        + "' cache='" + _diskCacheMode + "' " + "/>\n");
+                        + "' cache='" + _diskCacheMode + "' ");
+                if(_discard != null && _discard != DiscardType.IGNORE) {
+                    diskBuilder.append("discard='" + _discard.toString() + "' ");
+                }
+                diskBuilder.append("/>\n");
             }
 
             if (_diskType == DiskType.FILE) {
@@ -1222,25 +1253,95 @@
         }
     }
 
-    public static class VirtioSerialDef {
-        private final String _name;
-        private String _path;
+    public final static class ChannelDef {
+        enum ChannelType {
+            UNIX("unix"), SERIAL("serial");
+            String type;
 
-        public VirtioSerialDef(String name, String path) {
-            _name = name;
-            _path = path;
+            ChannelType(String type) {
+                this.type = type;
+            }
+
+            @Override
+            public String toString() {
+                return this.type;
+            }
+        }
+
+        enum ChannelState {
+            DISCONNECTED("disconnected"), CONNECTED("connected");
+            String type;
+
+            ChannelState(String type) {
+                this.type = type;
+            }
+
+            @Override
+            public String toString() {
+                return type;
+            }
+        }
+
+        private final String name;
+        private File path = new File("");
+        private final ChannelType type;
+        private ChannelState state;
+
+        public ChannelDef(String name, ChannelType type) {
+            this.name = name;
+            this.type = type;
+        }
+
+        public ChannelDef(String name, ChannelType type, File path) {
+            this.name = name;
+            this.path = path;
+            this.type = type;
+        }
+
+        public ChannelDef(String name, ChannelType type, ChannelState state) {
+            this.name = name;
+            this.state = state;
+            this.type = type;
+        }
+
+        public ChannelDef(String name, ChannelType type, ChannelState state, File path) {
+            this.name = name;
+            this.path = path;
+            this.state = state;
+            this.type = type;
+        }
+
+        public ChannelType getChannelType() {
+            return type;
+        }
+
+        public ChannelState getChannelState() {
+            return state;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public File getPath() {
+            return path;
         }
 
         @Override
         public String toString() {
             StringBuilder virtioSerialBuilder = new StringBuilder();
-            if (_path == null) {
-                _path = "/var/lib/libvirt/qemu";
+            virtioSerialBuilder.append("<channel type='" + type.toString() + "'>\n");
+            if (path == null) {
+                virtioSerialBuilder.append("<source mode='bind'/>\n");
+            } else {
+                virtioSerialBuilder.append("<source mode='bind' path='" + path.toString() + "'/>\n");
             }
-            virtioSerialBuilder.append("<channel type='unix'>\n");
-            virtioSerialBuilder.append("<source mode='bind' path='" + _path + "/" + _name + ".agent'/>\n");
-            virtioSerialBuilder.append("<target type='virtio' name='" + _name + ".vport'/>\n");
             virtioSerialBuilder.append("<address type='virtio-serial'/>\n");
+            if (state == null) {
+                virtioSerialBuilder.append("<target type='virtio' name='" + name + "'/>\n");
+            } else {
+                virtioSerialBuilder.append("<target type='virtio' name='" + name + "' state='" + state.toString() + "'/>\n");
+            }
             virtioSerialBuilder.append("</channel>\n");
             return virtioSerialBuilder.toString();
         }
@@ -1287,6 +1388,37 @@
         }
     }
 
+    public static class SCSIDef {
+        private short index = 0;
+        private int domain = 0;
+        private int bus = 0;
+        private int slot = 9;
+        private int function = 0;
+
+        public SCSIDef(short index, int domain, int bus, int slot, int function) {
+            this.index = index;
+            this.domain = domain;
+            this.bus = bus;
+            this.slot = slot;
+            this.function = function;
+        }
+
+        public SCSIDef() {
+
+        }
+
+        @Override
+        public String toString() {
+            StringBuilder scsiBuilder = new StringBuilder();
+
+            scsiBuilder.append(String.format("<controller type='scsi' index='%d' mode='virtio-scsi'>\n", this.index ));
+            scsiBuilder.append(String.format("<address type='pci' domain='0x%04X' bus='0x%02X' slot='0x%02X' function='0x%01X'/>\n",
+                    this.domain, this.bus, this.slot, this.function ) );
+            scsiBuilder.append("</controller>");
+            return scsiBuilder.toString();
+        }
+    }
+
     public static class InputDef {
         private final String _type; /* tablet, mouse */
         private final String _bus; /* ps2, usb, xen */
@@ -1379,6 +1511,107 @@
         }
     }
 
+    public static class RngDef {
+        enum RngModel {
+            VIRTIO("virtio");
+            String model;
+
+            RngModel(String model) {
+                this.model = model;
+            }
+
+            @Override
+            public String toString() {
+                return model;
+            }
+        }
+
+        enum RngBackendModel {
+            RANDOM("random"), EGD("egd");
+            String model;
+
+            RngBackendModel(String model) {
+                this.model = model;
+            }
+
+            @Override
+            public String toString() {
+                return model;
+            }
+        }
+
+        private String path = "/dev/random";
+        private RngModel rngModel = RngModel.VIRTIO;
+        private RngBackendModel rngBackendModel = RngBackendModel.RANDOM;
+        private int rngRateBytes = 2048;
+        private int rngRatePeriod = 1000;
+
+        public RngDef(String path) {
+            this.path = path;
+        }
+
+        public RngDef(String path, int rngRateBytes, int rngRatePeriod) {
+            this.path = path;
+            this.rngRateBytes = rngRateBytes;
+            this.rngRatePeriod = rngRatePeriod;
+        }
+
+        public RngDef(RngModel rngModel) {
+            this.rngModel = rngModel;
+        }
+
+        public RngDef(RngBackendModel rngBackendModel) {
+            this.rngBackendModel = rngBackendModel;
+        }
+
+        public RngDef(String path, RngBackendModel rngBackendModel) {
+            this.path = path;
+            this.rngBackendModel = rngBackendModel;
+        }
+
+        public RngDef(String path, RngBackendModel rngBackendModel, int rngRateBytes, int rngRatePeriod) {
+            this.path = path;
+            this.rngBackendModel = rngBackendModel;
+            this.rngRateBytes = rngRateBytes;
+            this.rngRatePeriod = rngRatePeriod;
+        }
+
+        public RngDef(String path, RngModel rngModel) {
+            this.path = path;
+            this.rngModel = rngModel;
+        }
+
+        public String getPath() {
+           return path;
+        }
+
+        public RngBackendModel getRngBackendModel() {
+            return rngBackendModel;
+        }
+
+        public RngModel getRngModel() {
+            return rngModel;
+        }
+
+        public int getRngRateBytes() {
+            return rngRateBytes;
+        }
+
+        public int getRngRatePeriod() {
+            return rngRatePeriod;
+        }
+
+        @Override
+        public String toString() {
+            StringBuilder rngBuilder = new StringBuilder();
+            rngBuilder.append("<rng model='" + rngModel + "'>\n");
+            rngBuilder.append("<rate period='" + rngRatePeriod + "' bytes='" + rngRateBytes + "' />\n");
+            rngBuilder.append("<backend model='" + rngBackendModel + "'>" + path + "</backend>");
+            rngBuilder.append("</rng>\n");
+            return rngBuilder.toString();
+        }
+    }
+
     public void setHvsType(String hvs) {
         _hvsType = hvs;
     }
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCreateVMSnapshotCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCreateVMSnapshotCommandWrapper.java
new file mode 100644
index 0000000..c7941e7
--- /dev/null
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCreateVMSnapshotCommandWrapper.java
@@ -0,0 +1,82 @@
+//
+// 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.hypervisor.kvm.resource.wrapper;
+
+import org.apache.log4j.Logger;
+import org.libvirt.Connect;
+import org.libvirt.Domain;
+import org.libvirt.DomainInfo.DomainState;
+import org.libvirt.LibvirtException;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.CreateVMSnapshotAnswer;
+import com.cloud.agent.api.CreateVMSnapshotCommand;
+import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  CreateVMSnapshotCommand.class)
+public final class LibvirtCreateVMSnapshotCommandWrapper extends CommandWrapper<CreateVMSnapshotCommand, Answer, LibvirtComputingResource> {
+
+    private static final Logger s_logger = Logger.getLogger(LibvirtCreateVMSnapshotCommandWrapper.class);
+
+    @Override
+    public Answer execute(final CreateVMSnapshotCommand cmd, final LibvirtComputingResource libvirtComputingResource) {
+        String vmName = cmd.getVmName();
+        String vmSnapshotName = cmd.getTarget().getSnapshotName();
+
+        Domain dm = null;
+        try {
+            final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
+            Connect conn = libvirtUtilitiesHelper.getConnection();
+            dm = libvirtComputingResource.getDomain(conn, vmName);
+
+            if (dm == null) {
+                return new CreateVMSnapshotAnswer(cmd, false,
+                        "Create VM Snapshot Failed due to can not find vm: " + vmName);
+            }
+
+            DomainState domainState = dm.getInfo().state ;
+            if (domainState != DomainState.VIR_DOMAIN_RUNNING) {
+                return new CreateVMSnapshotAnswer(cmd, false,
+                        "Create VM Snapshot Failed due to  vm is not running: " + vmName + " with domainState = " + domainState);
+            }
+
+            String vmSnapshotXML = "<domainsnapshot>" + "  <name>" + vmSnapshotName + "</name>"
+                    + "  <memory snapshot='internal' />" + "</domainsnapshot>";
+
+            dm.snapshotCreateXML(vmSnapshotXML);
+
+            return new CreateVMSnapshotAnswer(cmd, cmd.getTarget(), cmd.getVolumeTOs());
+        } catch (LibvirtException e) {
+            String msg = " Create VM snapshot failed due to " + e.toString();
+            s_logger.warn(msg, e);
+            return new CreateVMSnapshotAnswer(cmd, false, msg);
+        } finally {
+            if (dm != null) {
+                try {
+                    dm.free();
+                } catch (LibvirtException l) {
+                    s_logger.trace("Ignoring libvirt error.", l);
+                };
+            }
+        }
+    }
+}
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtDeleteVMSnapshotCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtDeleteVMSnapshotCommandWrapper.java
new file mode 100644
index 0000000..9efec95
--- /dev/null
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtDeleteVMSnapshotCommandWrapper.java
@@ -0,0 +1,110 @@
+//
+// 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.hypervisor.kvm.resource.wrapper;
+
+import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.log4j.Logger;
+import org.libvirt.Connect;
+import org.libvirt.Domain;
+import org.libvirt.DomainSnapshot;
+import org.libvirt.LibvirtException;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.DeleteVMSnapshotAnswer;
+import com.cloud.agent.api.DeleteVMSnapshotCommand;
+import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
+import com.cloud.hypervisor.kvm.storage.KVMPhysicalDisk;
+import com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+import com.cloud.storage.Volume;
+import com.cloud.storage.Storage.ImageFormat;
+import com.cloud.utils.script.Script;
+
+@ResourceWrapper(handles =  DeleteVMSnapshotCommand.class)
+public final class LibvirtDeleteVMSnapshotCommandWrapper extends CommandWrapper<DeleteVMSnapshotCommand, Answer, LibvirtComputingResource> {
+
+    private static final Logger s_logger = Logger.getLogger(LibvirtDeleteVMSnapshotCommandWrapper.class);
+
+    @Override
+    public Answer execute(final DeleteVMSnapshotCommand cmd, final LibvirtComputingResource libvirtComputingResource) {
+        String vmName = cmd.getVmName();
+
+        final KVMStoragePoolManager storagePoolMgr = libvirtComputingResource.getStoragePoolMgr();
+        Domain dm = null;
+        DomainSnapshot snapshot = null;
+        try {
+            final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
+            Connect conn = libvirtUtilitiesHelper.getConnection();
+            dm = libvirtComputingResource.getDomain(conn, vmName);
+
+            snapshot = dm.snapshotLookupByName(cmd.getTarget().getSnapshotName());
+
+            snapshot.delete(0); // only remove this snapshot, not children
+
+            return new DeleteVMSnapshotAnswer(cmd, cmd.getVolumeTOs());
+        } catch (LibvirtException e) {
+            String msg = " Delete VM snapshot failed due to " + e.toString();
+
+            if (dm == null) {
+                s_logger.debug("Can not find running vm: " + vmName + ", now we are trying to delete the vm snapshot using qemu-img if the format of root volume is QCOW2");
+                VolumeObjectTO rootVolume = null;
+                for (VolumeObjectTO volume: cmd.getVolumeTOs()) {
+                    if (volume.getVolumeType() == Volume.Type.ROOT) {
+                        rootVolume = volume;
+                        break;
+                    }
+                }
+                if (rootVolume != null && ImageFormat.QCOW2.equals(rootVolume.getFormat())) {
+                    PrimaryDataStoreTO primaryStore = (PrimaryDataStoreTO) rootVolume.getDataStore();
+                    KVMPhysicalDisk rootDisk = storagePoolMgr.getPhysicalDisk(primaryStore.getPoolType(),
+                            primaryStore.getUuid(), rootVolume.getPath());
+                    String qemu_img_snapshot = Script.runSimpleBashScript("qemu-img snapshot -l " + rootDisk.getPath() + " | tail -n +3 | awk -F ' ' '{print $2}' | grep ^" + cmd.getTarget().getSnapshotName() + "$");
+                    if (qemu_img_snapshot == null) {
+                        s_logger.info("Cannot find snapshot " + cmd.getTarget().getSnapshotName() + " in file " + rootDisk.getPath() + ", return true");
+                        return new DeleteVMSnapshotAnswer(cmd, cmd.getVolumeTOs());
+                    }
+                    int result = Script.runSimpleBashScriptForExitValue("qemu-img snapshot -d " + cmd.getTarget().getSnapshotName() + " " + rootDisk.getPath());
+                    if (result != 0) {
+                        return new DeleteVMSnapshotAnswer(cmd, false,
+                                "Delete VM Snapshot Failed due to can not remove snapshot from image file " + rootDisk.getPath()  + " : " + result);
+                    } else {
+                        return new DeleteVMSnapshotAnswer(cmd, cmd.getVolumeTOs());
+                    }
+                }
+            } else if (snapshot == null) {
+                s_logger.debug("Can not find vm snapshot " + cmd.getTarget().getSnapshotName() + " on vm: " + vmName + ", return true");
+                return new DeleteVMSnapshotAnswer(cmd, cmd.getVolumeTOs());
+            }
+
+            s_logger.warn(msg, e);
+            return new DeleteVMSnapshotAnswer(cmd, false, msg);
+        } finally {
+            if (dm != null) {
+                try {
+                    dm.free();
+                } catch (LibvirtException l) {
+                    s_logger.trace("Ignoring libvirt error.", l);
+                };
+            }
+        }
+    }
+}
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetVmIpAddressCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetVmIpAddressCommandWrapper.java
new file mode 100644
index 0000000..1545214
--- /dev/null
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetVmIpAddressCommandWrapper.java
@@ -0,0 +1,82 @@
+//
+// 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.hypervisor.kvm.resource.wrapper;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.GetVmIpAddressCommand;
+import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+import com.cloud.utils.net.NetUtils;
+import com.cloud.utils.script.Script;
+import org.apache.log4j.Logger;
+
+@ResourceWrapper(handles =  GetVmIpAddressCommand.class)
+public final class LibvirtGetVmIpAddressCommandWrapper extends CommandWrapper<GetVmIpAddressCommand, Answer, LibvirtComputingResource> {
+
+    private static final Logger s_logger = Logger.getLogger(LibvirtGetVmIpAddressCommandWrapper.class);
+
+    @Override
+    public Answer execute(final GetVmIpAddressCommand command, final LibvirtComputingResource libvirtComputingResource) {
+        String ip = null;
+        boolean result = false;
+        String networkCidr = command.getVmNetworkCidr();
+        if(!command.isWindows()) {
+            //List all dhcp lease files inside guestVm
+            String leasesList = Script.runSimpleBashScript(new StringBuilder().append("virt-ls ").append(command.getVmName())
+                    .append(" /var/lib/dhclient/ | grep .*\\*.leases").toString());
+            if(leasesList != null) {
+                String[] leasesFiles = leasesList.split("\n");
+                for(String leaseFile : leasesFiles){
+                    //Read from each dhclient lease file inside guest Vm using virt-cat libguestfs ulitiy
+                    String ipAddr = Script.runSimpleBashScript(new StringBuilder().append("virt-cat ").append(command.getVmName())
+                            .append(" /var/lib/dhclient/" + leaseFile + " | tail -16 | grep 'fixed-address' | awk '{print $2}' | sed -e 's/;//'").toString());
+                    // Check if the IP belongs to the network
+                    if((ipAddr != null) && NetUtils.isIpWithtInCidrRange(ipAddr, networkCidr)){
+                        ip = ipAddr;
+                        break;
+                    }
+                    s_logger.debug("GetVmIp: "+command.getVmName()+ " Ip: "+ipAddr+" does not belong to network "+networkCidr);
+                }
+            }
+        } else {
+            // For windows, read from guest Vm registry using virt-win-reg libguestfs ulitiy. Registry Path: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\<service>\DhcpIPAddress
+            String ipList = Script.runSimpleBashScript(new StringBuilder().append("virt-win-reg --unsafe-printable-strings ").append(command.getVmName())
+                    .append(" 'HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters\\Interfaces' | grep DhcpIPAddress | awk -F : '{print $2}' | sed -e 's/^\"//' -e 's/\"$//'").toString());
+            if(ipList != null) {
+                s_logger.debug("GetVmIp: "+command.getVmName()+ "Ips: "+ipList);
+                String[] ips = ipList.split("\n");
+                for (String ipAddr : ips){
+                    // Check if the IP belongs to the network
+                    if((ipAddr != null) && NetUtils.isIpWithtInCidrRange(ipAddr, networkCidr)){
+                        ip = ipAddr;
+                        break;
+                    }
+                    s_logger.debug("GetVmIp: "+command.getVmName()+ " Ip: "+ipAddr+" does not belong to network "+networkCidr);
+                }
+            }
+        }
+        if(ip != null){
+            result = true;
+            s_logger.debug("GetVmIp: "+command.getVmName()+ " Found Ip: "+ip);
+        }
+        return new Answer(command, result, ip);
+    }
+}
\ No newline at end of file
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMigrateCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMigrateCommandWrapper.java
index 6736c51..9e7b78e 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMigrateCommandWrapper.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMigrateCommandWrapper.java
@@ -44,6 +44,7 @@
 import com.cloud.hypervisor.kvm.resource.VifDriver;
 import com.cloud.resource.CommandWrapper;
 import com.cloud.resource.ResourceWrapper;
+import com.cloud.utils.Ternary;
 
 @ResourceWrapper(handles =  MigrateCommand.class)
 public final class LibvirtMigrateCommandWrapper extends CommandWrapper<MigrateCommand, Answer, LibvirtComputingResource> {
@@ -67,6 +68,7 @@
         Domain destDomain = null;
         Connect conn = null;
         String xmlDesc = null;
+        List<Ternary<String, Boolean, String>> vmsnapshots = null;
         try {
             final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
 
@@ -99,6 +101,9 @@
             xmlDesc = dm.getXMLDesc(xmlFlag);
             xmlDesc = replaceIpForVNCInDescFile(xmlDesc, target);
 
+            // delete the metadata of vm snapshots before migration
+            vmsnapshots = libvirtComputingResource.cleanVMSnapshotMetadata(dm);
+
             dconn = libvirtUtilitiesHelper.retrieveQemuConnection("qemu+tcp://" + command.getDestinationIp() + "/system");
 
             //run migration in thread so we can monitor it
@@ -149,6 +154,7 @@
                     libvirtComputingResource.cleanupDisk(disk);
                 }
             }
+
         } catch (final LibvirtException e) {
             s_logger.debug("Can't migrate domain: " + e.getMessage());
             result = e.getMessage();
@@ -163,6 +169,12 @@
             result = e.getMessage();
         } finally {
             try {
+                if (dm != null && result != null) {
+                    // restore vm snapshots in case of failed migration
+                    if (vmsnapshots != null) {
+                        libvirtComputingResource.restoreVMSnapshotMetadata(dm, vmName, vmsnapshots);
+                    }
+                }
                 if (dm != null) {
                     if (dm.isPersistent() == 1) {
                         dm.undefine();
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreVMSnapshotCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreVMSnapshotCommandWrapper.java
new file mode 100644
index 0000000..ce8c209
--- /dev/null
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreVMSnapshotCommandWrapper.java
@@ -0,0 +1,96 @@
+//
+// 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.hypervisor.kvm.resource.wrapper;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.log4j.Logger;
+import org.libvirt.Connect;
+import org.libvirt.Domain;
+import org.libvirt.LibvirtException;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.RestoreVMSnapshotAnswer;
+import com.cloud.agent.api.RestoreVMSnapshotCommand;
+import com.cloud.agent.api.VMSnapshotTO;
+import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+import com.cloud.vm.VirtualMachine;
+
+@ResourceWrapper(handles =  RestoreVMSnapshotCommand.class)
+public final class LibvirtRestoreVMSnapshotCommandWrapper extends CommandWrapper<RestoreVMSnapshotCommand, Answer, LibvirtComputingResource> {
+
+    private static final Logger s_logger = Logger.getLogger(LibvirtRestoreVMSnapshotCommandWrapper.class);
+
+    @Override
+    public Answer execute(final RestoreVMSnapshotCommand cmd, final LibvirtComputingResource libvirtComputingResource) {
+        String vmName = cmd.getVmName();
+        List<VolumeObjectTO> listVolumeTo = cmd.getVolumeTOs();
+        VirtualMachine.PowerState vmState = VirtualMachine.PowerState.PowerOn;
+
+        Domain dm = null;
+        try {
+            final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
+            Connect conn = libvirtUtilitiesHelper.getConnection();
+            dm = libvirtComputingResource.getDomain(conn, vmName);
+
+            if (dm == null) {
+                return new RestoreVMSnapshotAnswer(cmd, false,
+                        "Restore VM Snapshot Failed due to can not find vm: " + vmName);
+            }
+            String xmlDesc = dm.getXMLDesc(0);
+
+            List<VMSnapshotTO> snapshots = cmd.getSnapshots();
+            Map<Long, VMSnapshotTO> snapshotAndParents = cmd.getSnapshotAndParents();
+            for (VMSnapshotTO snapshot: snapshots) {
+                VMSnapshotTO parent = snapshotAndParents.get(snapshot.getId());
+                String vmSnapshotXML = libvirtUtilitiesHelper.generateVMSnapshotXML(snapshot, parent, xmlDesc);
+                s_logger.debug("Restoring vm snapshot " + snapshot.getSnapshotName() + " on " + vmName + " with XML:\n " + vmSnapshotXML);
+                try {
+                    int flags = 1; // VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE = 1
+                    if (snapshot.getCurrent()) {
+                        flags += 2; // VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT = 2
+                    }
+                    dm.snapshotCreateXML(vmSnapshotXML, flags);
+                } catch (LibvirtException e) {
+                    s_logger.debug("Failed to restore vm snapshot " + snapshot.getSnapshotName() + " on " + vmName);
+                    return new RestoreVMSnapshotAnswer(cmd, false, e.toString());
+                }
+            }
+
+            return new RestoreVMSnapshotAnswer(cmd, listVolumeTo, vmState);
+        } catch (LibvirtException e) {
+            String msg = " Restore snapshot failed due to " + e.toString();
+            s_logger.warn(msg, e);
+            return new RestoreVMSnapshotAnswer(cmd, false, msg);
+        } finally {
+            if (dm != null) {
+                try {
+                    dm.free();
+                } catch (LibvirtException l) {
+                    s_logger.trace("Ignoring libvirt error.", l);
+                };
+            }
+        }
+    }
+}
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRevertToVMSnapshotCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRevertToVMSnapshotCommandWrapper.java
new file mode 100644
index 0000000..086d6ef
--- /dev/null
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRevertToVMSnapshotCommandWrapper.java
@@ -0,0 +1,95 @@
+//
+// 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.hypervisor.kvm.resource.wrapper;
+
+import java.util.List;
+
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.log4j.Logger;
+import org.libvirt.Connect;
+import org.libvirt.Domain;
+import org.libvirt.DomainSnapshot;
+import org.libvirt.LibvirtException;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.RevertToVMSnapshotAnswer;
+import com.cloud.agent.api.RevertToVMSnapshotCommand;
+import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+import com.cloud.vm.VirtualMachine;
+import com.cloud.vm.snapshot.VMSnapshot;
+
+@ResourceWrapper(handles =  RevertToVMSnapshotCommand.class)
+public final class LibvirtRevertToVMSnapshotCommandWrapper extends CommandWrapper<RevertToVMSnapshotCommand, Answer, LibvirtComputingResource> {
+
+    private static final Logger s_logger = Logger.getLogger(LibvirtRevertToVMSnapshotCommandWrapper.class);
+
+    @Override
+    public Answer execute(final RevertToVMSnapshotCommand cmd, final LibvirtComputingResource libvirtComputingResource) {
+        String vmName = cmd.getVmName();
+        List<VolumeObjectTO> listVolumeTo = cmd.getVolumeTOs();
+        VMSnapshot.Type vmSnapshotType = cmd.getTarget().getType();
+        Boolean snapshotMemory = vmSnapshotType == VMSnapshot.Type.DiskAndMemory;
+        VirtualMachine.PowerState vmState = null;
+
+        Domain dm = null;
+        try {
+            final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
+            Connect conn = libvirtUtilitiesHelper.getConnection();
+            dm = libvirtComputingResource.getDomain(conn, vmName);
+
+            if (dm == null) {
+                return new RevertToVMSnapshotAnswer(cmd, false,
+                        "Revert to VM Snapshot Failed due to can not find vm: " + vmName);
+            }
+
+            DomainSnapshot snapshot = dm.snapshotLookupByName(cmd.getTarget().getSnapshotName());
+            if (snapshot == null)
+                return new RevertToVMSnapshotAnswer(cmd, false, "Cannot find vmSnapshot with name: " + cmd.getTarget().getSnapshotName());
+
+            dm.revertToSnapshot(snapshot);
+            snapshot.free();
+
+            if (!snapshotMemory) {
+                dm.destroy();
+                if (dm.isPersistent() == 1)
+                    dm.undefine();
+                vmState = VirtualMachine.PowerState.PowerOff;
+            } else {
+                vmState = VirtualMachine.PowerState.PowerOn;
+            }
+
+            return new RevertToVMSnapshotAnswer(cmd, listVolumeTo, vmState);
+        } catch (LibvirtException e) {
+            String msg = " Revert to VM snapshot failed due to " + e.toString();
+            s_logger.warn(msg, e);
+            return new RevertToVMSnapshotAnswer(cmd, false, msg);
+        } finally {
+            if (dm != null) {
+                try {
+                    dm.free();
+                } catch (LibvirtException l) {
+                    s_logger.trace("Ignoring libvirt error.", l);
+                };
+            }
+        }
+    }
+}
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtSecurityGroupRulesCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtSecurityGroupRulesCommandWrapper.java
index ef9fd89..ded8ce3 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtSecurityGroupRulesCommandWrapper.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtSecurityGroupRulesCommandWrapper.java
@@ -54,7 +54,7 @@
             return new SecurityGroupRuleAnswer(command, false, e.toString());
         }
 
-        final boolean result = libvirtComputingResource.addNetworkRules(command.getVmName(), Long.toString(command.getVmId()), command.getGuestIp(), command.getSignature(),
+        final boolean result = libvirtComputingResource.addNetworkRules(command.getVmName(), Long.toString(command.getVmId()), command.getGuestIp(), command.getGuestIp6(), command.getSignature(),
                 Long.toString(command.getSeqNum()), command.getGuestMac(), command.stringifyRules(), vif, brname, command.getSecIpsString());
 
         if (!result) {
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtStartCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtStartCommandWrapper.java
index d960619..198b95d 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtStartCommandWrapper.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtStartCommandWrapper.java
@@ -24,6 +24,7 @@
 
 import org.apache.log4j.Logger;
 import org.libvirt.Connect;
+import org.libvirt.Domain;
 import org.libvirt.DomainInfo.DomainState;
 import org.libvirt.LibvirtException;
 
@@ -60,6 +61,17 @@
         final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
         Connect conn = null;
         try {
+
+            vm = libvirtComputingResource.createVMFromSpec(vmSpec);
+            conn = libvirtUtilitiesHelper.getConnectionByType(vm.getHvsType());
+
+            Long remainingMem = getFreeMemory(conn, libvirtComputingResource);
+            if (remainingMem == null){
+                return new StartAnswer(command, "failed to get free memory");
+            } else if (remainingMem < vmSpec.getMinRam()) {
+                return new StartAnswer(command, "Not enough memory on the host, remaining: " + remainingMem + ", asking: " + vmSpec.getMinRam());
+            }
+
             final NicTO[] nics = vmSpec.getNics();
 
             for (final NicTO nic : nics) {
@@ -68,8 +80,6 @@
                 }
             }
 
-            vm = libvirtComputingResource.createVMFromSpec(vmSpec);
-            conn = libvirtUtilitiesHelper.getConnectionByType(vm.getHvsType());
             libvirtComputingResource.createVbd(conn, vmSpec, vmName, vm);
 
             if (!storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)) {
@@ -150,4 +160,22 @@
             }
         }
     }
-}
\ No newline at end of file
+
+    private Long getFreeMemory(final Connect conn, final LibvirtComputingResource libvirtComputingResource){
+        try {
+            long allocatedMem = 0;
+            int[] ids = conn.listDomains();
+            for(int id :ids) {
+                Domain dm = conn.domainLookupByID(id);
+                allocatedMem += dm.getMaxMemory() * 1024L;
+                s_logger.debug("vm: " + dm.getName() + " mem: " + dm.getMaxMemory() * 1024L);
+            }
+            Long remainingMem = libvirtComputingResource.getTotalMemory() - allocatedMem;
+            s_logger.debug("remaining mem" + remainingMem);
+            return remainingMem;
+        } catch (Exception e) {
+            s_logger.debug("failed to get free memory", e);
+            return null;
+        }
+    }
+}
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtStopCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtStopCommandWrapper.java
index feec1c3..7e4ee22 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtStopCommandWrapper.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtStopCommandWrapper.java
@@ -20,12 +20,14 @@
 package com.cloud.hypervisor.kvm.resource.wrapper;
 
 import java.util.List;
+import java.io.File;
 
+import com.cloud.utils.Pair;
+import com.cloud.utils.ssh.SshHelper;
 import org.apache.log4j.Logger;
 import org.libvirt.Connect;
 import org.libvirt.Domain;
 import org.libvirt.DomainInfo.DomainState;
-import org.libvirt.LibvirtException;
 
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.StopAnswer;
@@ -36,11 +38,14 @@
 import com.cloud.hypervisor.kvm.resource.VifDriver;
 import com.cloud.resource.CommandWrapper;
 import com.cloud.resource.ResourceWrapper;
+import org.libvirt.LibvirtException;
 
 @ResourceWrapper(handles =  StopCommand.class)
 public final class LibvirtStopCommandWrapper extends CommandWrapper<StopCommand, Answer, LibvirtComputingResource> {
 
     private static final Logger s_logger = Logger.getLogger(LibvirtStopCommandWrapper.class);
+    private static final String CMDLINE_PATH = "/var/cache/cloud/cmdline";
+    private static final String CMDLINE_BACKUP_PATH = "/var/cache/cloud/cmdline.backup";
 
     @Override
     public Answer execute(final StopCommand command, final LibvirtComputingResource libvirtComputingResource) {
@@ -59,8 +64,21 @@
                 s_logger.debug("Failed to get vm status in case of checkboforecleanup is true", e);
             }
         }
-
+        File pemFile = new File(LibvirtComputingResource.SSHPRVKEYPATH);
         try {
+            if(vmName.startsWith("s-") || vmName.startsWith("v-")){
+                //move the command line file to backup.
+                s_logger.debug("backing up the cmdline");
+                try{
+                    Pair<Boolean, String> ret = SshHelper.sshExecute(command.getControlIp(), 3922, "root", pemFile, null,"mv -f "+CMDLINE_PATH+" "+CMDLINE_BACKUP_PATH);
+                    if(!ret.first()){
+                        s_logger.debug("Failed to backup cmdline file due to "+ret.second());
+                    }
+                } catch (Exception e){
+                    s_logger.debug("Failed to backup cmdline file due to "+e.getMessage());
+                }
+            }
+
             final Connect conn = libvirtUtilitiesHelper.getConnectionByVmName(vmName);
 
             final List<DiskDef> disks = libvirtComputingResource.getDisks(conn, vmName);
@@ -84,7 +102,18 @@
 
             return new StopAnswer(command, result, true);
         } catch (final LibvirtException e) {
+            s_logger.debug("unable to stop VM:"+vmName+" due to"+e.getMessage());
+            try{
+                if(vmName.startsWith("s-") || vmName.startsWith("v-"))
+                    s_logger.debug("restoring cmdline file from backup");
+                Pair<Boolean, String> ret = SshHelper.sshExecute(command.getControlIp(), 3922, "root", pemFile, null, "mv "+CMDLINE_BACKUP_PATH+" "+CMDLINE_PATH);
+                if(!ret.first()){
+                    s_logger.debug("unable to restore cmdline due to "+ret.second());
+                }
+            }catch (final Exception ex){
+                s_logger.debug("unable to restore cmdline due to:"+ex.getMessage());
+            }
             return new StopAnswer(command, e.getMessage(), false);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtUtilitiesHelper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtUtilitiesHelper.java
index 7a93e1f..2881ed0 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtUtilitiesHelper.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtUtilitiesHelper.java
@@ -25,6 +25,7 @@
 import org.libvirt.Connect;
 import org.libvirt.LibvirtException;
 
+import com.cloud.agent.api.VMSnapshotTO;
 import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource;
 import com.cloud.hypervisor.kvm.resource.LibvirtConnection;
 import com.cloud.storage.StorageLayer;
@@ -96,4 +97,16 @@
         final Script script = new Script(scriptPath, TIMEOUT);
         return script;
     }
+
+    public String generateVMSnapshotXML(VMSnapshotTO snapshot, VMSnapshotTO parent, String domainXmlDesc) {
+        String parentName = (parent == null)? "": ("  <parent><name>" + parent.getSnapshotName() + "</name></parent>\n");
+        String vmSnapshotXML = "<domainsnapshot>\n"
+                + "  <name>" + snapshot.getSnapshotName() + "</name>\n"
+                + "  <state>running</state>\n"
+                + parentName
+                + "  <creationTime>" + (int) Math.rint(snapshot.getCreateTime()/1000) + "</creationTime>\n"
+                + domainXmlDesc
+                + "</domainsnapshot>";
+        return vmSnapshotXML;
+    }
 }
\ No newline at end of file
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
index 29655d1..524fb35 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
@@ -88,6 +88,8 @@
 import com.cloud.hypervisor.kvm.resource.LibvirtConnection;
 import com.cloud.hypervisor.kvm.resource.LibvirtDomainXMLParser;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef.DeviceType;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef.DiscardType;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef.DiskProtocol;
 import com.cloud.storage.JavaStorageLayer;
 import com.cloud.storage.Storage.ImageFormat;
@@ -695,8 +697,10 @@
         final String secondaryStoragePoolUrl = nfsImageStore.getUrl();
         // NOTE: snapshot name is encoded in snapshot path
         final int index = snapshot.getPath().lastIndexOf("/");
+        final boolean isCreatedFromVmSnapshot = (index == -1) ? true: false; // -1 means the snapshot is created from existing vm snapshot
 
         final String snapshotName = snapshot.getPath().substring(index + 1);
+        String descName = snapshotName;
         final String volumePath = snapshot.getVolume().getPath();
         String snapshotDestPath = null;
         String snapshotRelPath = null;
@@ -737,10 +741,10 @@
                     final QemuImgFile srcFile =
                             new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(primaryPool.getSourceHost(), primaryPool.getSourcePort(), primaryPool.getAuthUserName(),
                                     primaryPool.getAuthSecret(), rbdSnapshot));
-                    srcFile.setFormat(PhysicalDiskFormat.RAW);
+                    srcFile.setFormat(snapshotDisk.getFormat());
 
                     final QemuImgFile destFile = new QemuImgFile(snapshotFile);
-                    destFile.setFormat(snapshotDisk.getFormat());
+                    destFile.setFormat(PhysicalDiskFormat.QCOW2);
 
                     s_logger.debug("Backing up RBD snapshot " + rbdSnapshot + " to " + snapshotFile);
                     final QemuImg q = new QemuImg(cmd.getWaitInMillSeconds());
@@ -768,20 +772,23 @@
                 command.add("-b", snapshotDisk.getPath());
                 command.add("-n", snapshotName);
                 command.add("-p", snapshotDestPath);
-                command.add("-t", snapshotName);
+                if (isCreatedFromVmSnapshot) {
+                    descName = UUID.randomUUID().toString();
+                }
+                command.add("-t", descName);
                 final String result = command.execute();
                 if (result != null) {
                     s_logger.debug("Failed to backup snaptshot: " + result);
                     return new CopyCmdAnswer(result);
                 }
-                final File snapFile = new File(snapshotDestPath + "/" + snapshotName);
+                final File snapFile = new File(snapshotDestPath + "/" + descName);
                 if(snapFile.exists()){
                     size = snapFile.length();
                 }
             }
 
             final SnapshotObjectTO newSnapshot = new SnapshotObjectTO();
-            newSnapshot.setPath(snapshotRelPath + File.separator + snapshotName);
+            newSnapshot.setPath(snapshotRelPath + File.separator + descName);
             newSnapshot.setPhysicalSize(size);
             return new CopyCmdAnswer(newSnapshot);
         } catch (final LibvirtException e) {
@@ -791,48 +798,52 @@
             s_logger.debug("Failed to backup snapshot: ", e);
             return new CopyCmdAnswer(e.toString());
         } finally {
-            try {
-                /* Delete the snapshot on primary */
-                DomainInfo.DomainState state = null;
-                Domain vm = null;
-                if (vmName != null) {
-                    try {
-                        vm = resource.getDomain(conn, vmName);
-                        state = vm.getInfo().state;
-                    } catch (final LibvirtException e) {
-                        s_logger.trace("Ignoring libvirt error.", e);
-                    }
-                }
-
-                final KVMStoragePool primaryStorage = storagePoolMgr.getStoragePool(primaryStore.getPoolType(),
-                        primaryStore.getUuid());
-                if (state == DomainInfo.DomainState.VIR_DOMAIN_RUNNING && !primaryStorage.isExternalSnapshot()) {
-                    final DomainSnapshot snap = vm.snapshotLookupByName(snapshotName);
-                    snap.delete(0);
-
-                    /*
-                     * libvirt on RHEL6 doesn't handle resume event emitted from
-                     * qemu
-                     */
-                    vm = resource.getDomain(conn, vmName);
-                    state = vm.getInfo().state;
-                    if (state == DomainInfo.DomainState.VIR_DOMAIN_PAUSED) {
-                        vm.resume();
-                    }
-                } else {
-                    if (primaryPool.getType() != StoragePoolType.RBD) {
-                        final Script command = new Script(_manageSnapshotPath, _cmdsTimeout, s_logger);
-                        command.add("-d", snapshotDisk.getPath());
-                        command.add("-n", snapshotName);
-                        final String result = command.execute();
-                        if (result != null) {
-                            s_logger.debug("Failed to delete snapshot on primary: " + result);
-                            // return new CopyCmdAnswer("Failed to backup snapshot: " + result);
+            if (isCreatedFromVmSnapshot) {
+                s_logger.debug("Ignoring removal of vm snapshot on primary as this snapshot is created from vm snapshot");
+            } else {
+                try {
+                    /* Delete the snapshot on primary */
+                    DomainInfo.DomainState state = null;
+                    Domain vm = null;
+                    if (vmName != null) {
+                        try {
+                            vm = resource.getDomain(conn, vmName);
+                            state = vm.getInfo().state;
+                        } catch (final LibvirtException e) {
+                            s_logger.trace("Ignoring libvirt error.", e);
                         }
                     }
+
+                    final KVMStoragePool primaryStorage = storagePoolMgr.getStoragePool(primaryStore.getPoolType(),
+                            primaryStore.getUuid());
+                    if (state == DomainInfo.DomainState.VIR_DOMAIN_RUNNING && !primaryStorage.isExternalSnapshot()) {
+                        final DomainSnapshot snap = vm.snapshotLookupByName(snapshotName);
+                        snap.delete(0);
+
+                        /*
+                         * libvirt on RHEL6 doesn't handle resume event emitted from
+                         * qemu
+                         */
+                        vm = resource.getDomain(conn, vmName);
+                        state = vm.getInfo().state;
+                        if (state == DomainInfo.DomainState.VIR_DOMAIN_PAUSED) {
+                            vm.resume();
+                        }
+                    } else {
+                        if (primaryPool.getType() != StoragePoolType.RBD) {
+                            final Script command = new Script(_manageSnapshotPath, _cmdsTimeout, s_logger);
+                            command.add("-d", snapshotDisk.getPath());
+                            command.add("-n", snapshotName);
+                            final String result = command.execute();
+                            if (result != null) {
+                                s_logger.debug("Failed to delete snapshot on primary: " + result);
+                                // return new CopyCmdAnswer("Failed to backup snapshot: " + result);
+                            }
+                        }
+                    }
+                } catch (final Exception ex) {
+                    s_logger.debug("Failed to delete snapshots on primary", ex);
                 }
-            } catch (final Exception ex) {
-                s_logger.debug("Failed to delete snapshots on primary", ex);
             }
 
             try {
@@ -963,13 +974,12 @@
         DiskDef diskdef = null;
         final KVMStoragePool attachingPool = attachingDisk.getPool();
         try {
+            dm = conn.domainLookupByName(vmName);
+            final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
+            final String domXml = dm.getXMLDesc(0);
+            parser.parseDomainXML(domXml);
+            disks = parser.getDisks();
             if (!attach) {
-                dm = conn.domainLookupByName(vmName);
-                final LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
-                final String xml = dm.getXMLDesc(0);
-                parser.parseDomainXML(xml);
-                disks = parser.getDisks();
-
                 if (attachingPool.getType() == StoragePoolType.RBD) {
                     if (resource.getHypervisorType() == Hypervisor.HypervisorType.LXC) {
                         final String device = resource.mapRbdDevice(attachingDisk);
@@ -991,7 +1001,20 @@
                     throw new InternalErrorException("disk: " + attachingDisk.getPath() + " is not attached before");
                 }
             } else {
+                DiskDef.DiskBus busT = DiskDef.DiskBus.VIRTIO;
+                for (final DiskDef disk : disks) {
+                    if (disk.getDeviceType() == DeviceType.DISK) {
+                        if (disk.getBusType() == DiskDef.DiskBus.SCSI) {
+                            busT = DiskDef.DiskBus.SCSI;
+                        }
+                        break;
+                    }
+                }
                 diskdef = new DiskDef();
+                if (busT == DiskDef.DiskBus.SCSI) {
+                    diskdef.setQemuDriver(true);
+                    diskdef.setDiscard(DiscardType.UNMAP);
+                }
                 diskdef.setSerial(serial);
                 if (attachingPool.getType() == StoragePoolType.RBD) {
                     if(resource.getHypervisorType() == Hypervisor.HypervisorType.LXC){
@@ -999,24 +1022,24 @@
                         final String device = resource.mapRbdDevice(attachingDisk);
                         if (device != null) {
                             s_logger.debug("RBD device on host is: "+device);
-                            diskdef.defBlockBasedDisk(device, devId, DiskDef.DiskBus.VIRTIO);
+                            diskdef.defBlockBasedDisk(device, devId, busT);
                         } else {
                             throw new InternalErrorException("Error while mapping disk "+attachingDisk.getPath()+" on host");
                         }
                     } else {
                         diskdef.defNetworkBasedDisk(attachingDisk.getPath(), attachingPool.getSourceHost(), attachingPool.getSourcePort(), attachingPool.getAuthUserName(),
-                                attachingPool.getUuid(), devId, DiskDef.DiskBus.VIRTIO, DiskProtocol.RBD, DiskDef.DiskFmtType.RAW);
+                                attachingPool.getUuid(), devId, busT, DiskProtocol.RBD, DiskDef.DiskFmtType.RAW);
                     }
                 } else if (attachingPool.getType() == StoragePoolType.Gluster) {
                     final String mountpoint = attachingPool.getLocalPath();
                     final String path = attachingDisk.getPath();
                     final String glusterVolume = attachingPool.getSourceDir().replace("/", "");
                     diskdef.defNetworkBasedDisk(glusterVolume + path.replace(mountpoint, ""), attachingPool.getSourceHost(), attachingPool.getSourcePort(), null,
-                            null, devId, DiskDef.DiskBus.VIRTIO, DiskProtocol.GLUSTER, DiskDef.DiskFmtType.QCOW2);
+                            null, devId, busT, DiskProtocol.GLUSTER, DiskDef.DiskFmtType.QCOW2);
                 } else if (attachingDisk.getFormat() == PhysicalDiskFormat.QCOW2) {
-                    diskdef.defFileBasedDisk(attachingDisk.getPath(), devId, DiskDef.DiskBus.VIRTIO, DiskDef.DiskFmtType.QCOW2);
+                    diskdef.defFileBasedDisk(attachingDisk.getPath(), devId, busT, DiskDef.DiskFmtType.QCOW2);
                 } else if (attachingDisk.getFormat() == PhysicalDiskFormat.RAW) {
-                    diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId, DiskDef.DiskBus.VIRTIO);
+                    diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId, busT);
                 }
 
                 if ((bytesReadRate != null) && (bytesReadRate > 0)) {
diff --git a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
index b4e1375..8992a5b 100644
--- a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
+++ b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
@@ -150,6 +150,7 @@
 import com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource;
 import com.cloud.exception.InternalErrorException;
 import com.cloud.hypervisor.kvm.resource.KVMHABase.NfsStoragePool;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ChannelDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
 import com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper;
@@ -336,6 +337,19 @@
         assertXpath(domainDoc, "/domain/devices/input/@type", "tablet");
         assertXpath(domainDoc, "/domain/devices/input/@bus", "usb");
 
+        assertNodeExists(domainDoc, "/domain/devices/channel");
+        assertXpath(domainDoc, "/domain/devices/channel/@type", ChannelDef.ChannelType.UNIX.toString());
+
+        /*
+           The configure() method of LibvirtComputingResource has not been called, so the default path for the sockets
+           hasn't been initialized. That's why we check for 'null'
+
+           Calling configure is also not possible since that looks for certain files on the system which are not present
+           during testing
+         */
+        assertXpath(domainDoc, "/domain/devices/channel/source/@path", "null/" + to.getName() + ".org.qemu.guest_agent.0");
+        assertXpath(domainDoc, "/domain/devices/channel/target/@name", "org.qemu.guest_agent.0");
+
         assertXpath(domainDoc, "/domain/memory/text()", String.valueOf( to.getMaxRam() / 1024 ));
         assertXpath(domainDoc, "/domain/currentMemory/text()", String.valueOf( to.getMinRam() / 1024 ));
 
@@ -2898,6 +2912,7 @@
     @Test
     public void testSecurityGroupRulesCmdFalse() {
         final String guestIp = "127.0.0.1";
+        final String guestIp6 = "2001:db8::cad:40ff:fefd:75c4";
         final String guestMac = "00:00:00:00";
         final String vmName = "Test";
         final Long vmId = 1l;
@@ -2909,7 +2924,7 @@
         final List<String> cidrs = new Vector<String>();
         cidrs.add("0.0.0.0/0");
 
-        final SecurityGroupRulesCmd command = new SecurityGroupRulesCmd(guestIp, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
+        final SecurityGroupRulesCmd command = new SecurityGroupRulesCmd(guestIp, guestIp6, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
 
         final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
         final Connect conn = Mockito.mock(Connect.class);
@@ -2953,6 +2968,7 @@
     @Test
     public void testSecurityGroupRulesCmdTrue() {
         final String guestIp = "127.0.0.1";
+        final String guestIp6 = "2001:db8::cad:40ff:fefd:75c4";
         final String guestMac = "00:00:00:00";
         final String vmName = "Test";
         final Long vmId = 1l;
@@ -2964,7 +2980,7 @@
         final List<String> cidrs = new Vector<String>();
         cidrs.add("0.0.0.0/0");
 
-        final SecurityGroupRulesCmd command = new SecurityGroupRulesCmd(guestIp, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
+        final SecurityGroupRulesCmd command = new SecurityGroupRulesCmd(guestIp, guestIp6, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
 
         final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
         final Connect conn = Mockito.mock(Connect.class);
@@ -2997,7 +3013,7 @@
         when(egressRuleSet[0].getEndPort()).thenReturn(22);
         when(egressRuleSet[0].getAllowedCidrs()).thenReturn(cidrs);
 
-        when(libvirtComputingResource.addNetworkRules(command.getVmName(), Long.toString(command.getVmId()), command.getGuestIp(), command.getSignature(),
+        when(libvirtComputingResource.addNetworkRules(command.getVmName(), Long.toString(command.getVmId()), command.getGuestIp(), command.getGuestIp6(), command.getSignature(),
                 Long.toString(command.getSeqNum()), command.getGuestMac(), command.stringifyRules(), vif, brname, command.getSecIpsString())).thenReturn(true);
 
         final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance();
@@ -3018,6 +3034,7 @@
     @Test
     public void testSecurityGroupRulesCmdException() {
         final String guestIp = "127.0.0.1";
+        final String guestIp6 = "2001:db8::cad:40ff:fefd:75c4";
         final String guestMac = "00:00:00:00";
         final String vmName = "Test";
         final Long vmId = 1l;
@@ -3027,7 +3044,7 @@
         final IpPortAndProto[] egressRuleSet = new IpPortAndProto[]{Mockito.mock(IpPortAndProto.class)};
         final List<String> secIps = new Vector<String>();
 
-        final SecurityGroupRulesCmd command = new SecurityGroupRulesCmd(guestIp, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
+        final SecurityGroupRulesCmd command = new SecurityGroupRulesCmd(guestIp, guestIp6, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
 
         final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
         final Connect conn = Mockito.mock(Connect.class);
@@ -4838,6 +4855,7 @@
 
         final NicTO nic = Mockito.mock(NicTO.class);
         final NicTO[] nics = new NicTO[]{nic};
+        final int[] vms = new int[0];
 
         final String vmName = "Test";
         final String controlIp = "127.0.0.1";
@@ -4851,6 +4869,7 @@
         when(libvirtComputingResource.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper);
         try {
             when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn);
+            when(conn.listDomains()).thenReturn(vms);
             doNothing().when(libvirtComputingResource).createVbd(conn, vmSpec, vmName, vmDef);
         } catch (final LibvirtException e) {
             fail(e.getMessage());
@@ -4910,6 +4929,7 @@
 
         final NicTO nic = Mockito.mock(NicTO.class);
         final NicTO[] nics = new NicTO[]{nic};
+        final int[] vms = new int[0];
 
         final String vmName = "Test";
         final String controlIp = "127.0.0.1";
@@ -4923,6 +4943,7 @@
         when(libvirtComputingResource.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper);
         try {
             when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn);
+            when(conn.listDomains()).thenReturn(vms);
             doNothing().when(libvirtComputingResource).createVbd(conn, vmSpec, vmName, vmDef);
         } catch (final LibvirtException e) {
             fail(e.getMessage());
@@ -4973,6 +4994,61 @@
     }
 
     @Test
+    public void testStartCommandHostMemory() {
+        final VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class);
+        final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class);
+        final boolean executeInSequence = false;
+
+        final StartCommand command = new StartCommand(vmSpec, host, executeInSequence);
+
+        final KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class);
+        final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
+        final Connect conn = Mockito.mock(Connect.class);
+        final LibvirtVMDef vmDef = Mockito.mock(LibvirtVMDef.class);
+
+        final NicTO nic = Mockito.mock(NicTO.class);
+        final NicTO[] nics = new NicTO[]{nic};
+        int vmId = 1;
+        final int[] vms = new int[]{vmId};
+        final Domain dm = Mockito.mock(Domain.class);
+
+        final String vmName = "Test";
+
+        when(libvirtComputingResource.getStoragePoolMgr()).thenReturn(storagePoolMgr);
+        when(vmSpec.getNics()).thenReturn(nics);
+        when(vmSpec.getType()).thenReturn(VirtualMachine.Type.User);
+        when(vmSpec.getName()).thenReturn(vmName);
+        when(vmSpec.getMaxRam()).thenReturn(512L);
+        when(libvirtComputingResource.createVMFromSpec(vmSpec)).thenReturn(vmDef);
+
+        when(libvirtComputingResource.getLibvirtUtilitiesHelper()).thenReturn(libvirtUtilitiesHelper);
+        try {
+            when(libvirtUtilitiesHelper.getConnectionByType(vmDef.getHvsType())).thenReturn(conn);
+            when(conn.listDomains()).thenReturn(vms);
+            when(conn.domainLookupByID(vmId)).thenReturn(dm);
+            when(dm.getMaxMemory()).thenReturn(1024L);
+            when(dm.getName()).thenReturn(vmName);
+            when(libvirtComputingResource.getTotalMemory()).thenReturn(2048*1024L);
+            doNothing().when(libvirtComputingResource).createVbd(conn, vmSpec, vmName, vmDef);
+        } catch (final LibvirtException e) {
+            fail(e.getMessage());
+        } catch (final InternalErrorException e) {
+            fail(e.getMessage());
+        } catch (final URISyntaxException e) {
+            fail(e.getMessage());
+        }
+
+        when(storagePoolMgr.connectPhysicalDisksViaVmSpec(vmSpec)).thenReturn(true);
+
+        final LibvirtRequestWrapper wrapper = LibvirtRequestWrapper.getInstance();
+        assertNotNull(wrapper);
+
+        final Answer answer = wrapper.execute(command, libvirtComputingResource);
+        assertTrue(answer.getResult());
+    }
+
+
+    @Test
     public void testUpdateHostPasswordCommand() {
         final LibvirtUtilitiesHelper libvirtUtilitiesHelper = Mockito.mock(LibvirtUtilitiesHelper.class);
         final Script script = Mockito.mock(Script.class);
diff --git a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParserTest.java b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParserTest.java
index eb28d8b..f32f7fd 100644
--- a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParserTest.java
+++ b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtDomainXMLParserTest.java
@@ -20,9 +20,13 @@
 package com.cloud.hypervisor.kvm.resource;
 
 import junit.framework.TestCase;
+
+import java.io.File;
 import java.util.List;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.RngDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ChannelDef;
 
 public class LibvirtDomainXMLParserTest extends TestCase {
 
@@ -38,6 +42,13 @@
         InterfaceDef.NicModel ifModel = InterfaceDef.NicModel.VIRTIO;
         InterfaceDef.GuestNetType ifType = InterfaceDef.GuestNetType.BRIDGE;
 
+        ChannelDef.ChannelType channelType = ChannelDef.ChannelType.UNIX;
+        ChannelDef.ChannelState channelState = ChannelDef.ChannelState.DISCONNECTED;
+        String ssvmAgentPath =  "/var/lib/libvirt/qemu/s-2970-VM.agent";
+        String ssvmAgentName = "s-2970-VM.vport";
+        String guestAgentPath = "/var/lib/libvirt/qemu/guest-agent.org.qemu.guest_agent.0";
+        String guestAgentName = "org.qemu.guest_agent.0";
+
         String diskLabel ="vda";
         String diskPath = "/var/lib/libvirt/images/my-test-image.qcow2";
 
@@ -144,7 +155,7 @@
                      "</console>" +
                      "<channel type='unix'>" +
                      "<source mode='bind' path='/var/lib/libvirt/qemu/s-2970-VM.agent'/>" +
-                     "<target type='virtio' name='s-2970-VM.vport'/>" +
+                     "<target type='virtio' name='s-2970-VM.vport' state='disconnected'/>" +
                      "<alias name='channel0'/>" +
                      "<address type='virtio-serial' controller='0' bus='0' port='1'/>" +
                      "</channel>" +
@@ -164,6 +175,16 @@
                      "<alias name='balloon0'/>" +
                      "<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>" +
                      "</memballoon>" +
+                     "<rng model='virtio'>" +
+                     "<rate period='5000' bytes='4096' />" +
+                     "<backend model='random'>/dev/random</backend>" +
+                     "</rng>" +
+                     "<channel type='unix'>" +
+                     "<source mode='bind' path='" + guestAgentPath + "'/>" +
+                     "<target type='virtio' name='" + guestAgentName + "'/>" +
+                     "<alias name='channel0'/>" +
+                     "<address type='virtio-serial' controller='0' bus='0' port='1'/>" +
+                     "</channel>" +
                      "</devices>" +
                      "<seclabel type='none'/>" +
                      "</domain>";
@@ -185,10 +206,31 @@
         assertEquals(deviceType, disks.get(diskId).getDeviceType());
         assertEquals(diskFormat, disks.get(diskId).getDiskFormatType());
 
+        List<ChannelDef> channels = parser.getChannels();
+        for (int i = 0; i < channels.size(); i++) {
+            assertEquals(channelType, channels.get(i).getChannelType());
+            assertEquals(channelType, channels.get(i).getChannelType());
+        }
+
+        /* SSVM provisioning port/channel */
+        assertEquals(channelState, channels.get(0).getChannelState());
+        assertEquals(new File(ssvmAgentPath), channels.get(0).getPath());
+        assertEquals(ssvmAgentName, channels.get(0).getName());
+
+        /* Qemu Guest Agent port/channel */
+        assertEquals(new File(guestAgentPath), channels.get(1).getPath());
+        assertEquals(guestAgentName, channels.get(1).getName());
+
         List<InterfaceDef> ifs = parser.getInterfaces();
         for (int i = 0; i < ifs.size(); i++) {
             assertEquals(ifModel, ifs.get(i).getModel());
             assertEquals(ifType, ifs.get(i).getNetType());
         }
+
+        List<RngDef> rngs = parser.getRngs();
+        assertEquals("/dev/random", rngs.get(0).getPath());
+        assertEquals(RngDef.RngBackendModel.RANDOM, rngs.get(0).getRngBackendModel());
+        assertEquals(4096, rngs.get(0).getRngRateBytes());
+        assertEquals(5000, rngs.get(0).getRngRatePeriod());
     }
-}
\ No newline at end of file
+}
diff --git a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtVMDefTest.java b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtVMDefTest.java
index a926129..b8ecdc3 100644
--- a/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtVMDefTest.java
+++ b/plugins/hypervisors/kvm/test/com/cloud/hypervisor/kvm/resource/LibvirtVMDefTest.java
@@ -21,8 +21,11 @@
 
 import junit.framework.TestCase;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ChannelDef;
 import com.cloud.utils.Pair;
 
+import java.io.File;
+
 public class LibvirtVMDefTest extends TestCase {
 
     public void testInterfaceEtehrnet() {
@@ -118,4 +121,32 @@
         assertTrue((hostOsVersion.first() == 6 && hostOsVersion.second() >= 5) || (hostOsVersion.first() >= 7));
     }
 
+    public void testRngDef() {
+        LibvirtVMDef.RngDef.RngBackendModel backendModel = LibvirtVMDef.RngDef.RngBackendModel.RANDOM;
+        String path = "/dev/random";
+        int period = 2000;
+        int bytes = 2048;
+
+        LibvirtVMDef.RngDef def = new LibvirtVMDef.RngDef(path, backendModel, bytes, period);
+        assertEquals(def.getPath(), path);
+        assertEquals(def.getRngBackendModel(), backendModel);
+        assertEquals(def.getRngModel(), LibvirtVMDef.RngDef.RngModel.VIRTIO);
+        assertEquals(def.getRngRateBytes(), bytes);
+        assertEquals(def.getRngRatePeriod(), period);
+    }
+
+    public void testChannelDef() {
+        ChannelDef.ChannelType type = ChannelDef.ChannelType.UNIX;
+        ChannelDef.ChannelState state = ChannelDef.ChannelState.CONNECTED;
+        String name = "v-136-VM.vport";
+        File path = new File("/var/lib/libvirt/qemu/" + name);
+
+        ChannelDef channelDef = new ChannelDef(name, type, state, path);
+
+        assertEquals(state, channelDef.getChannelState());
+        assertEquals(type, channelDef.getChannelType());
+        assertEquals(name, channelDef.getName());
+        assertEquals(path, channelDef.getPath());
+    }
+
 }
diff --git a/plugins/hypervisors/ovm/pom.xml b/plugins/hypervisors/ovm/pom.xml
index bb53d26..d99b3f9 100644
--- a/plugins/hypervisors/ovm/pom.xml
+++ b/plugins/hypervisors/ovm/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/hypervisors/ovm/resources/META-INF/cloudstack/ovm-compute/spring-ovm-compute-context.xml b/plugins/hypervisors/ovm/resources/META-INF/cloudstack/ovm-compute/spring-ovm-compute-context.xml
index b12672a..09a5964 100644
--- a/plugins/hypervisors/ovm/resources/META-INF/cloudstack/ovm-compute/spring-ovm-compute-context.xml
+++ b/plugins/hypervisors/ovm/resources/META-INF/cloudstack/ovm-compute/spring-ovm-compute-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="OvmFencer" class="com.cloud.ovm.hypervisor.OvmFencer">
diff --git a/plugins/hypervisors/ovm/resources/META-INF/cloudstack/ovm-discoverer/spring-ovm-discoverer-context.xml b/plugins/hypervisors/ovm/resources/META-INF/cloudstack/ovm-discoverer/spring-ovm-discoverer-context.xml
index b0f2a15..8a34047 100644
--- a/plugins/hypervisors/ovm/resources/META-INF/cloudstack/ovm-discoverer/spring-ovm-discoverer-context.xml
+++ b/plugins/hypervisors/ovm/resources/META-INF/cloudstack/ovm-discoverer/spring-ovm-discoverer-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="OvmDiscoverer" class="com.cloud.ovm.hypervisor.OvmDiscoverer">
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index c3b2175..72afe8b 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/hypervisors/ovm3/src/main/resources/META-INF/cloudstack/ovm3-compute/spring-ovm3-compute-context.xml b/plugins/hypervisors/ovm3/src/main/resources/META-INF/cloudstack/ovm3-compute/spring-ovm3-compute-context.xml
index 308015e..6880b478 100644
--- a/plugins/hypervisors/ovm3/src/main/resources/META-INF/cloudstack/ovm3-compute/spring-ovm3-compute-context.xml
+++ b/plugins/hypervisors/ovm3/src/main/resources/META-INF/cloudstack/ovm3-compute/spring-ovm3-compute-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="Ovm3Fencer" class="com.cloud.hypervisor.ovm3.resources.Ovm3FenceBuilder">
diff --git a/plugins/hypervisors/ovm3/src/main/resources/META-INF/cloudstack/ovm3-discoverer/spring-ovm3-discoverer-context.xml b/plugins/hypervisors/ovm3/src/main/resources/META-INF/cloudstack/ovm3-discoverer/spring-ovm3-discoverer-context.xml
index a28a2fc..a8a8253 100644
--- a/plugins/hypervisors/ovm3/src/main/resources/META-INF/cloudstack/ovm3-discoverer/spring-ovm3-discoverer-context.xml
+++ b/plugins/hypervisors/ovm3/src/main/resources/META-INF/cloudstack/ovm3-discoverer/spring-ovm3-discoverer-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="Ovm3Discoverer" class="com.cloud.hypervisor.ovm3.resources.Ovm3Discoverer">
diff --git a/plugins/hypervisors/simulator/pom.xml b/plugins/hypervisors/simulator/pom.xml
index cc96d97..b6a5b38 100644
--- a/plugins/hypervisors/simulator/pom.xml
+++ b/plugins/hypervisors/simulator/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack-plugins</artifactId>
-        <version>4.9.4.0-SNAPSHOT</version>
+        <version>4.10.1.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>cloud-plugin-hypervisor-simulator</artifactId>
diff --git a/plugins/hypervisors/simulator/resources/META-INF/cloudstack/core/spring-simulator-core-context.xml b/plugins/hypervisors/simulator/resources/META-INF/cloudstack/core/spring-simulator-core-context.xml
index 4905ae8..e0ed606 100644
--- a/plugins/hypervisors/simulator/resources/META-INF/cloudstack/core/spring-simulator-core-context.xml
+++ b/plugins/hypervisors/simulator/resources/META-INF/cloudstack/core/spring-simulator-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="mockConfigurationDaoImpl" class="com.cloud.simulator.dao.MockConfigurationDaoImpl" />
diff --git a/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-compute/spring-simulator-compute-context.xml b/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-compute/spring-simulator-compute-context.xml
index ba7581d..c95e4bb 100644
--- a/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-compute/spring-simulator-compute-context.xml
+++ b/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-compute/spring-simulator-compute-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="SimulatorGuru" class="com.cloud.simulator.SimulatorGuru">
diff --git a/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-discoverer/spring-simulator-discover-context.xml b/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-discoverer/spring-simulator-discover-context.xml
index 323f64f..20331bc 100644
--- a/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-discoverer/spring-simulator-discover-context.xml
+++ b/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-discoverer/spring-simulator-discover-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="SimulatorDiscoverer" class="com.cloud.resource.SimulatorDiscoverer">
diff --git a/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-storage/spring-simulator-storage-context.xml b/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-storage/spring-simulator-storage-context.xml
index 4cb73e6..198d04e 100644
--- a/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-storage/spring-simulator-storage-context.xml
+++ b/plugins/hypervisors/simulator/resources/META-INF/cloudstack/simulator-storage/spring-simulator-storage-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="SimulatorImageStoreProviderImpl"
diff --git a/plugins/hypervisors/ucs/pom.xml b/plugins/hypervisors/ucs/pom.xml
index a99e39a..4926bff 100755
--- a/plugins/hypervisors/ucs/pom.xml
+++ b/plugins/hypervisors/ucs/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>cloud-plugin-hypervisor-ucs</artifactId>
diff --git a/plugins/hypervisors/ucs/resources/META-INF/cloudstack/core/spring-ucs-core-context.xml b/plugins/hypervisors/ucs/resources/META-INF/cloudstack/core/spring-ucs-core-context.xml
index 47732f4..45f32ca 100644
--- a/plugins/hypervisors/ucs/resources/META-INF/cloudstack/core/spring-ucs-core-context.xml
+++ b/plugins/hypervisors/ucs/resources/META-INF/cloudstack/core/spring-ucs-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="UcsManager" class="com.cloud.ucs.manager.UcsManagerImpl" />
diff --git a/plugins/hypervisors/vmware/pom.xml b/plugins/hypervisors/vmware/pom.xml
index 931a254..42f14d7 100644
--- a/plugins/hypervisors/vmware/pom.xml
+++ b/plugins/hypervisors/vmware/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/core/spring-vmware-core-context.xml b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/core/spring-vmware-core-context.xml
index 406ffe1..3af2d1a 100644
--- a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/core/spring-vmware-core-context.xml
+++ b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/core/spring-vmware-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="VmwareManager"
diff --git a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-compute/spring-vmware-compute-context.xml b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-compute/spring-vmware-compute-context.xml
index 402640d..4b9fb85 100644
--- a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-compute/spring-vmware-compute-context.xml
+++ b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-compute/spring-vmware-compute-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="VmwareFencer" class="com.cloud.ha.VmwareFencer">
diff --git a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-discoverer/spring-vmware-discoverer-context.xml b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-discoverer/spring-vmware-discoverer-context.xml
index 933f0e8..90de1fb 100644
--- a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-discoverer/spring-vmware-discoverer-context.xml
+++ b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-discoverer/spring-vmware-discoverer-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="vmwareServerDiscoverer" class="com.cloud.hypervisor.vmware.VmwareServerDiscoverer">
diff --git a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-network/spring-vmware-network-context.xml b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-network/spring-vmware-network-context.xml
index 440356b..cdfe009 100644
--- a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-network/spring-vmware-network-context.xml
+++ b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-network/spring-vmware-network-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="CiscoNexus1000vVSM" class="com.cloud.network.element.CiscoNexusVSMElement">
diff --git a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-storage/spring-vmware-storage-context.xml b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-storage/spring-vmware-storage-context.xml
index bb428bf..af1387b 100644
--- a/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-storage/spring-vmware-storage-context.xml
+++ b/plugins/hypervisors/vmware/resources/META-INF/cloudstack/vmware-storage/spring-vmware-storage-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="vmwareStorageMotionStrategy"
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
index 986000a..64ca406 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
@@ -31,13 +31,13 @@
 import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.Configurable;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.storage.command.CopyCommand;
 import org.apache.cloudstack.storage.command.DeleteCommand;
 import org.apache.cloudstack.storage.command.StorageSubSystemCommand;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.commons.lang.BooleanUtils;
 import org.apache.log4j.Logger;
 
 import com.cloud.agent.api.BackupSnapshotCommand;
@@ -57,7 +57,6 @@
 import com.cloud.agent.api.to.NicTO;
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.cluster.ClusterManager;
-import com.cloud.configuration.Config;
 import com.cloud.exception.InsufficientAddressCapacityException;
 import com.cloud.host.Host;
 import com.cloud.host.HostVO;
@@ -127,8 +126,6 @@
     @Inject
     private NetworkModel _networkMgr;
     @Inject
-    private ConfigurationDao _configDao;
-    @Inject
     private NicDao _nicDao;
     @Inject
     private PhysicalNetworkTrafficTypeDao _physicalNetworkTrafficTypeDao;
@@ -155,6 +152,12 @@
         "Specify whether or not to reserve memory when not overprovisioning, In case of memory overprovisioning we will always reserve memory.", true,
         ConfigKey.Scope.Cluster, null);
 
+    protected ConfigKey<Boolean> VmwareEnableNestedVirtualization = new ConfigKey<Boolean>(Boolean.class, "vmware.nested.virtualization", "Advanced", "false",
+            "When set to true this will enable nested virtualization when this is supported by the hypervisor", true, ConfigKey.Scope.Global, null);
+
+    protected ConfigKey<Boolean> VmwareEnableNestedVirtualizationPerVM = new ConfigKey<Boolean>(Boolean.class, "vmware.nested.virtualization.perVM", "Advanced", "false",
+            "When set to true this will enable nested virtualization per vm", true, ConfigKey.Scope.Global, null);
+
     @Override
     public HypervisorType getHypervisorType() {
         return HypervisorType.VMware;
@@ -306,13 +309,7 @@
         // Don't do this if the virtual machine is one of the special types
         // Should only be done on user machines
         if (userVm) {
-            String nestedVirt = _configDao.getValue(Config.VmwareEnableNestedVirtualization.key());
-            if (nestedVirt != null) {
-                s_logger.debug("Nested virtualization requested, adding flag to vm configuration");
-                details.put(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG, nestedVirt);
-                to.setDetails(details);
-
-            }
+            configureNestedVirtualization(details, to);
         }
         // Determine the VM's OS description
         GuestOSVO guestOS = _guestOsDao.findByIdIncludingRemoved(vm.getVirtualMachine().getGuestOSId());
@@ -331,6 +328,50 @@
         return to;
     }
 
+    /**
+     * Decide in which cases nested virtualization should be enabled based on (1){@code globalNestedV}, (2){@code globalNestedVPerVM}, (3){@code localNestedV}<br/>
+     * Nested virtualization should be enabled when one of this cases:
+     * <ul>
+     * <li>(1)=TRUE, (2)=TRUE, (3) is NULL (missing)</li>
+     * <li>(1)=TRUE, (2)=TRUE, (3)=TRUE</li>
+     * <li>(1)=TRUE, (2)=FALSE</li>
+     * <li>(1)=FALSE, (2)=TRUE, (3)=TRUE</li>
+     * </ul>
+     * In any other case, it shouldn't be enabled
+     * @param globalNestedV value of {@code 'vmware.nested.virtualization'} global config
+     * @param globalNestedVPerVM value of {@code 'vmware.nested.virtualization.perVM'} global config
+     * @param localNestedV value of {@code 'nestedVirtualizationFlag'} key in vm details if present, null if not present
+     * @return "true" for cases in which nested virtualization is enabled, "false" if not
+     */
+    protected Boolean shouldEnableNestedVirtualization(Boolean globalNestedV, Boolean globalNestedVPerVM, String localNestedV){
+        if (globalNestedV == null || globalNestedVPerVM == null) {
+            return false;
+        }
+        boolean globalNV = globalNestedV.booleanValue();
+        boolean globalNVPVM = globalNestedVPerVM.booleanValue();
+
+        if (globalNVPVM){
+            return (localNestedV == null && globalNV) || BooleanUtils.toBoolean(localNestedV);
+        }
+        return globalNV;
+    }
+
+    /**
+     * Adds {@code 'nestedVirtualizationFlag'} value to {@code details} due to if it should be enabled or not
+     * @param details vm details
+     * @param to vm to
+     */
+    protected void configureNestedVirtualization(Map<String, String> details, VirtualMachineTO to) {
+        Boolean globalNestedV = VmwareEnableNestedVirtualization.value();
+        Boolean globalNestedVPerVM = VmwareEnableNestedVirtualizationPerVM.value();
+        String localNestedV = details.get(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG);
+
+        Boolean shouldEnableNestedVirtualization = shouldEnableNestedVirtualization(globalNestedV, globalNestedVPerVM, localNestedV);
+        s_logger.debug("Nested virtualization requested, adding flag to vm configuration");
+        details.put(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG, Boolean.toString(shouldEnableNestedVirtualization));
+        to.setDetails(details);
+    }
+
     private long getClusterId(long vmId) {
         long clusterId;
         Long hostId;
@@ -525,7 +566,7 @@
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {VmwareReserveCpu, VmwareReserveMemory};
+        return new ConfigKey<?>[] {VmwareReserveCpu, VmwareReserveMemory, VmwareEnableNestedVirtualization, VmwareEnableNestedVirtualizationPerVM};
     }
 
     @Override
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
index 6559050..12c48fe 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
@@ -22,6 +22,8 @@
 
 import com.vmware.vim25.ManagedObjectReference;
 
+import org.apache.cloudstack.framework.config.ConfigKey;
+
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.hypervisor.vmware.mo.HostMO;
 import com.cloud.hypervisor.vmware.util.VmwareContext;
@@ -30,6 +32,12 @@
 public interface VmwareManager {
     public final String CONTEXT_STOCK_NAME = "vmwareMgr";
 
+    public static final ConfigKey<Long> s_vmwareNicHotplugWaitTimeout = new ConfigKey<Long>("Advanced", Long.class, "vmware.nic.hotplug.wait.timeout", "15000",
+        "Wait timeout (milli seconds) for hot plugged NIC of VM to be detected by guest OS.", false, ConfigKey.Scope.Global);
+
+    public static final ConfigKey<Boolean> s_vmwareCleanOldWorderVMs = new ConfigKey<Boolean>("Advanced", Boolean.class, "vmware.clean.old.worker.vms", "false",
+            "If a worker vm is older then twice the 'job.expire.minutes' + 'job.cancel.threshold.minutes' , remove it.", true, ConfigKey.Scope.Global);
+
     String composeWorkerName();
 
     String getSystemVMIsoFileNameOnDatastore();
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
index 7d54ca4..b0f87af 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
@@ -22,6 +22,8 @@
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.rmi.RemoteException;
+import java.time.Duration;
+import java.time.Instant;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -35,6 +37,7 @@
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl;
 import org.apache.log4j.Logger;
 
 import com.vmware.vim25.AboutInfo;
@@ -45,6 +48,8 @@
 import org.apache.cloudstack.api.command.admin.zone.RemoveVmwareDcCmd;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.Configurable;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.utils.identity.ManagementServerNode;
 
@@ -123,12 +128,12 @@
 import com.cloud.utils.ssh.SshHelper;
 import com.cloud.vm.DomainRouterVO;
 
-public class VmwareManagerImpl extends ManagerBase implements VmwareManager, VmwareStorageMount, Listener, VmwareDatacenterService {
+public class VmwareManagerImpl extends ManagerBase implements VmwareManager, VmwareStorageMount, Listener, VmwareDatacenterService, Configurable {
     private static final Logger s_logger = Logger.getLogger(VmwareManagerImpl.class);
 
+    private static final long SECONDS_PER_MINUTE = 60;
     private static final int STARTUP_DELAY = 60000;                 // 60 seconds
     private static final long DEFAULT_HOST_SCAN_INTERVAL = 600000;     // every 10 minutes
-
     private long _hostScanInterval = DEFAULT_HOST_SCAN_INTERVAL;
     private int _timeout;
 
@@ -205,6 +210,16 @@
     }
 
     @Override
+    public String getConfigComponentName() {
+        return VmwareManagerImpl.class.getSimpleName();
+    }
+
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return new ConfigKey<?>[] {s_vmwareNicHotplugWaitTimeout, s_vmwareCleanOldWorderVMs};
+    }
+
+    @Override
     public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
         s_logger.info("Configure VmwareManagerImpl, manager name: " + name);
 
@@ -523,7 +538,7 @@
             return false;
         }
 
-        Long.parseLong(tokens[0]);
+        long startTick = Long.parseLong(tokens[0]);
         long msid = Long.parseLong(tokens[1]);
         long runid = Long.parseLong(tokens[2]);
 
@@ -539,15 +554,22 @@
             return true;
         }
 
-        // disable time-out check until we have found out a VMware API that can check if
-        // there are pending tasks on the subject VM
-        /*
-                if(System.currentTimeMillis() - startTick > _hungWorkerTimeout) {
-                    if(s_logger.isInfoEnabled())
-                        s_logger.info("Worker VM expired, seconds elapsed: " + (System.currentTimeMillis() - startTick) / 1000);
-                    return true;
-                }
-         */
+        // this time-out check was disabled
+        // "until we have found out a VMware API that can check if there are pending tasks on the subject VM"
+        // but as we expire jobs and those stale worker VMs stay around untill an MS reboot we opt in to have them removed anyway
+        Instant start = Instant.ofEpochMilli(startTick);
+        Instant end = start.plusSeconds(2 * (AsyncJobManagerImpl.JobExpireMinutes.value() + AsyncJobManagerImpl.JobCancelThresholdMinutes.value()) * SECONDS_PER_MINUTE);
+        Instant now = Instant.now();
+        if(s_vmwareCleanOldWorderVMs.value() && now.isAfter(end)) {
+            if(s_logger.isInfoEnabled()) {
+                s_logger.info("Worker VM expired, seconds elapsed: " + Duration.between(start,now).getSeconds());
+            }
+            return true;
+        }
+        if (s_logger.isTraceEnabled()) {
+            s_logger.trace("Worker VM with tag '" + workerTag + "' does not need recycling, yet." +
+                    "But in " + Duration.between(now,end).getSeconds() + " seconds, though");
+        }
         return false;
     }
 
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index 0ff50ac..5c87309 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -22,6 +22,7 @@
 import java.net.ConnectException;
 import java.net.InetSocketAddress;
 import java.net.URI;
+import java.net.URL;
 import java.nio.channels.SocketChannel;
 import java.rmi.RemoteException;
 import org.joda.time.Duration;
@@ -31,6 +32,7 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
+import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -102,6 +104,7 @@
 import org.apache.cloudstack.storage.command.CopyCommand;
 import org.apache.cloudstack.storage.command.StorageSubSystemCommand;
 import org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource;
+import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
 import org.apache.cloudstack.storage.to.TemplateObjectTO;
 import org.apache.cloudstack.storage.to.VolumeObjectTO;
 import org.apache.commons.lang.math.NumberUtils;
@@ -269,6 +272,7 @@
 import com.cloud.storage.resource.VmwareStorageLayoutHelper;
 import com.cloud.storage.resource.VmwareStorageProcessor;
 import com.cloud.storage.resource.VmwareStorageSubsystemCommandHandler;
+import com.cloud.storage.resource.VmwareStorageProcessor.VmwareStorageProcessorConfigurableFields;
 import com.cloud.storage.template.TemplateProp;
 import com.cloud.utils.DateUtil;
 import com.cloud.utils.ExecutionResult;
@@ -282,11 +286,15 @@
 import com.cloud.utils.mgmt.PropertyMapDynamicBean;
 import com.cloud.utils.net.NetUtils;
 import com.cloud.utils.nicira.nvp.plugin.NiciraNvpApiVersion;
+import com.cloud.utils.script.Script;
 import com.cloud.utils.ssh.SshHelper;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachine.PowerState;
 import com.cloud.vm.VirtualMachineName;
 import com.cloud.vm.VmDetailConstants;
+import com.vmware.vim25.GuestInfo;
+import com.vmware.vim25.VirtualMachineToolsStatus;
+import com.cloud.agent.api.GetVmIpAddressCommand;
 
 public class VmwareResource implements StoragePoolResource, ServerResource, VmwareHostService, VirtualRouterDeployer {
     private static final Logger s_logger = Logger.getLogger(VmwareResource.class);
@@ -346,6 +354,11 @@
         s_powerStatesTable.put(VirtualMachinePowerState.SUSPENDED, PowerState.PowerOn);
     }
 
+    protected static File s_systemVmKeyFile = null;
+    private static final Object s_syncLockObjectFetchKeyFile = new Object();
+    protected static final String s_relativePathSystemVmKeyFileInstallDir = "scripts/vm/systemvm/id_rsa.cloud";
+    protected static final String s_defaultPathSystemVmKeyFile = "/usr/share/cloudstack-common/scripts/vm/systemvm/id_rsa.cloud";
+
     public Gson getGson() {
         return _gson;
     }
@@ -487,6 +500,8 @@
                 return execute((ScaleVmCommand)cmd);
             } else if (clz == PvlanSetupCommand.class) {
                 return execute((PvlanSetupCommand)cmd);
+            } else if (clz == GetVmIpAddressCommand.class) {
+                return execute((GetVmIpAddressCommand)cmd);
             } else if (clz == UnregisterNicCommand.class) {
                 answer = execute((UnregisterNicCommand)cmd);
             } else {
@@ -540,15 +555,54 @@
     protected void checkStorageProcessorAndHandlerNfsVersionAttribute(StorageSubSystemCommand cmd) {
         if (storageNfsVersion != null) return;
         if (cmd instanceof CopyCommand){
-            examineStorageSubSystemCommandNfsVersion((CopyCommand) cmd);
+            EnumMap<VmwareStorageProcessorConfigurableFields,Object> params = new EnumMap<VmwareStorageProcessorConfigurableFields,Object>(VmwareStorageProcessorConfigurableFields.class);
+            examineStorageSubSystemCommandNfsVersion((CopyCommand) cmd, params);
+            params = examineStorageSubSystemCommandFullCloneFlagForVmware((CopyCommand) cmd, params);
+            reconfigureProcessorByHandler(params);
         }
     }
 
     /**
+     * Reconfigure processor by handler
+     * @param params params
+     */
+    protected void reconfigureProcessorByHandler(EnumMap<VmwareStorageProcessorConfigurableFields,Object> params) {
+        VmwareStorageSubsystemCommandHandler handler = (VmwareStorageSubsystemCommandHandler) storageHandler;
+        boolean success = handler.reconfigureStorageProcessor(params);
+        if (success){
+            s_logger.info("VmwareStorageProcessor and VmwareStorageSubsystemCommandHandler successfully reconfigured");
+        } else {
+            s_logger.error("Error while reconfiguring VmwareStorageProcessor and VmwareStorageSubsystemCommandHandler, params=" + _gson.toJson(params));
+        }
+    }
+
+    /**
+     * Examine StorageSubSystem command to get full clone flag, if provided
+     * @param cmd command to execute
+     * @param params params
+     * @return copy of params including new values, if suitable
+     */
+    protected EnumMap<VmwareStorageProcessorConfigurableFields,Object> examineStorageSubSystemCommandFullCloneFlagForVmware(CopyCommand cmd, EnumMap<VmwareStorageProcessorConfigurableFields,Object> params) {
+        EnumMap<VmwareStorageProcessorConfigurableFields, Object> paramsCopy = new EnumMap<VmwareStorageProcessorConfigurableFields, Object>(params);
+        HypervisorType hypervisor = cmd.getDestTO().getHypervisorType();
+        if (hypervisor != null && hypervisor.equals(HypervisorType.VMware)){
+            DataStoreTO destDataStore = cmd.getDestTO().getDataStore();
+            if (destDataStore instanceof PrimaryDataStoreTO){
+                PrimaryDataStoreTO dest = (PrimaryDataStoreTO) destDataStore;
+                if (dest.isFullCloneFlag() != null){
+                    paramsCopy.put(VmwareStorageProcessorConfigurableFields.FULL_CLONE_FLAG, dest.isFullCloneFlag().booleanValue());
+                }
+            }
+        }
+        return paramsCopy;
+    }
+
+    /**
      * Examine StorageSubSystem command to get storage NFS version, if provided
      * @param cmd command to execute
+     * @param params params
      */
-    protected void examineStorageSubSystemCommandNfsVersion(CopyCommand cmd){
+    protected void examineStorageSubSystemCommandNfsVersion(CopyCommand cmd, EnumMap<VmwareStorageProcessorConfigurableFields,Object> params){
         DataStoreTO srcDataStore = cmd.getSrcTO().getDataStore();
         boolean nfsVersionFound = false;
 
@@ -557,7 +611,7 @@
         }
 
         if (nfsVersionFound){
-            setCurrentNfsVersionInProcessorAndHandler();
+            params.put(VmwareStorageProcessorConfigurableFields.NFS_VERSION, storageNfsVersion);
         }
     }
 
@@ -575,20 +629,6 @@
     }
 
     /**
-     * Sets _storageNfsVersion into storage processor and storage handler by calling reconfigureNfsVersion on the storage handler,
-     * which will set NFS version into it and the storage processor.
-     */
-    protected void setCurrentNfsVersionInProcessorAndHandler() {
-        VmwareStorageSubsystemCommandHandler handler = (VmwareStorageSubsystemCommandHandler) storageHandler;
-        boolean success = handler.reconfigureNfsVersion(storageNfsVersion);
-        if (success){
-            s_logger.info("NFS version " + storageNfsVersion + " successfully set in VmwareStorageProcessor and VmwareStorageSubsystemCommandHandler");
-        } else {
-            s_logger.error("Error while setting NFS version " + storageNfsVersion);
-        }
-    }
-
-    /**
      * Registers the vm to the inventory given the vmx file.
      */
     private void registerVm(String vmName, DatastoreMO dsMo) throws Exception{
@@ -674,7 +714,17 @@
                             "Please re-try when virtual disk is attached to a VM using SCSI controller.");
             }
 
+            if (vdisk.second() != null && !vdisk.second().toLowerCase().startsWith("scsi"))
+            {
+                s_logger.error("Unsupported disk device bus "+ vdisk.second());
+                throw new Exception("Unsupported disk device bus "+ vdisk.second());
+            }
             VirtualDisk disk = vdisk.first();
+            if ((VirtualDiskFlatVer2BackingInfo)disk.getBacking() != null && ((VirtualDiskFlatVer2BackingInfo)disk.getBacking()).getParent() != null)
+            {
+                s_logger.error("Resize is not supported because Disk device has Parent "+ ((VirtualDiskFlatVer2BackingInfo)disk.getBacking()).getParent().getUuid());
+                throw new Exception("Resize is not supported because Disk device has Parent "+ ((VirtualDiskFlatVer2BackingInfo)disk.getBacking()).getParent().getUuid());
+            }
             String vmdkAbsFile = getAbsoluteVmdkFile(disk);
             if (vmdkAbsFile != null && !vmdkAbsFile.isEmpty()) {
                 vmMo.updateAdapterTypeIfRequired(vmdkAbsFile);
@@ -785,8 +835,7 @@
 
     @Override
     public ExecutionResult createFileInVR(String routerIp, String filePath, String fileName, String content) {
-        VmwareManager mgr = getServiceContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
-        File keyFile = mgr.getSystemVMKeyFile();
+        File keyFile = getSystemVmKeyFile();
         try {
             SshHelper.scpTo(routerIp, 3922, "root", keyFile, null, filePath, content.getBytes("UTF-8"), fileName, null);
         } catch (Exception e) {
@@ -831,18 +880,18 @@
     //
     //
     private int findRouterEthDeviceIndex(String domrName, String routerIp, String mac) throws Exception {
-        VmwareManager mgr = getServiceContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
-
+        File keyFile = getSystemVmKeyFile();
         s_logger.info("findRouterEthDeviceIndex. mac: " + mac);
         ArrayList<String> skipInterfaces = new ArrayList<String>(Arrays.asList("all", "default", "lo"));
 
         // when we dynamically plug in a new NIC into virtual router, it may take time to show up in guest OS
         // we use a waiting loop here as a workaround to synchronize activities in systems
         long startTick = System.currentTimeMillis();
-        while (System.currentTimeMillis() - startTick < 15000) {
+        long waitTimeoutMillis = VmwareManager.s_vmwareNicHotplugWaitTimeout.value();
+        while (System.currentTimeMillis() - startTick < waitTimeoutMillis) {
 
             // TODO : this is a temporary very inefficient solution, will refactor it later
-            Pair<Boolean, String> result = SshHelper.sshExecute(routerIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "ls /proc/sys/net/ipv4/conf");
+            Pair<Boolean, String> result = SshHelper.sshExecute(routerIp, DefaultDomRSshPort, "root", keyFile, null, "ls /proc/sys/net/ipv4/conf");
             if (result.first()) {
                 String[] tokens = result.second().split("\\s+");
                 for (String token : tokens) {
@@ -851,7 +900,7 @@
 
                         if (s_logger.isDebugEnabled())
                             s_logger.debug("Run domr script " + cmd);
-                        Pair<Boolean, String> result2 = SshHelper.sshExecute(routerIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null,
+                        Pair<Boolean, String> result2 = SshHelper.sshExecute(routerIp, DefaultDomRSshPort, "root", keyFile, null,
                                 // TODO need to find the dev index inside router based on IP address
                                 cmd);
                         if (s_logger.isDebugEnabled())
@@ -1283,8 +1332,7 @@
         }
 
         try {
-            VmwareManager mgr = getServiceContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
-            result = SshHelper.sshExecute(routerIP, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "/opt/cloud/bin/" + script + " " + args,
+            result = SshHelper.sshExecute(routerIP, DefaultDomRSshPort, "root", getSystemVmKeyFile(), null, "/opt/cloud/bin/" + script + " " + args,
                     VRScripts.CONNECTION_TIMEOUT, VRScripts.CONNECTION_TIMEOUT, timeout);
         } catch (Exception e) {
             String msg = "Command failed due to " + VmwareHelper.getExceptionMessage(e);
@@ -1486,7 +1534,7 @@
         String vmNameOnVcenter = names.second();
         String dataDiskController = vmSpec.getDetails().get(VmDetailConstants.DATA_DISK_CONTROLLER);
         String rootDiskController = vmSpec.getDetails().get(VmDetailConstants.ROOT_DISK_CONTROLLER);
-
+        DiskTO rootDiskTO = null;
         // If root disk controller is scsi, then data disk controller would also be scsi instead of using 'osdefault'
         // This helps avoid mix of different scsi subtype controllers in instance.
         if (DiskControllerType.lsilogic == DiskControllerType.getType(rootDiskController)) {
@@ -1859,6 +1907,8 @@
                             volumeDsDetails.first(),
                             (controllerKey == vmMo.getIDEControllerKey(ideUnitNumber)) ? ((ideUnitNumber++) % VmwareHelper.MAX_IDE_CONTROLLER_COUNT) : scsiUnitNumber++, i + 1);
 
+                    if (vol.getType() == Volume.Type.ROOT)
+                        rootDiskTO = vol;
                     deviceConfigSpecArray[i].setDevice(device);
                     deviceConfigSpecArray[i].setOperation(VirtualDeviceConfigSpecOperation.ADD);
 
@@ -1979,6 +2029,9 @@
             vmConfigSpec.getExtraConfig().addAll(
                     Arrays.asList(configureVnc(extraOptions.toArray(new OptionValue[0]), hyperHost, vmInternalCSName, vmSpec.getVncPassword(), keyboardLayout)));
 
+            // config video card
+            configureVideoCard(vmMo, vmSpec, vmConfigSpec);
+
             //
             // Configure VM
             //
@@ -1990,6 +2043,11 @@
                 hyperHost.setRestartPriorityForVM(vmMo, DasVmPriority.HIGH.value());
             }
 
+            //For resizing root disk.
+            if (rootDiskTO != null && !hasSnapshot) {
+                resizeRootDisk(vmMo, rootDiskTO, hyperHost, context);
+            }
+
             //
             // Post Configuration
             //
@@ -2001,8 +2059,6 @@
 
             postDiskConfigBeforeStart(vmMo, vmSpec, sortedDisks, ideControllerKey, scsiControllerKey, iqnToPath, hyperHost, context);
 
-            postVideoCardMemoryConfigBeforeStart(vmMo, vmSpec);
-
             //
             // Power-on VM
             //
@@ -2051,27 +2107,70 @@
         }
     }
 
+    private String appendFileType(String path, String fileType) {
+        if (path.toLowerCase().endsWith(fileType.toLowerCase())) {
+            return path;
+        }
+
+        return path + fileType;
+    }
+
+    private void resizeRootDisk(VirtualMachineMO vmMo, DiskTO rootDiskTO, VmwareHypervisorHost hyperHost, VmwareContext context) throws Exception
+    {
+        Pair<VirtualDisk, String> vdisk = getVirtualDiskInfo(vmMo, appendFileType(rootDiskTO.getPath(), ".vmdk"));
+        assert(vdisk != null);
+
+        Long reqSize=((VolumeObjectTO)rootDiskTO.getData()).getSize()/1024;
+        VirtualDisk disk = vdisk.first();
+        if (reqSize > disk.getCapacityInKB())
+        {
+            VirtualMachineDiskInfo diskInfo = getMatchingExistingDisk(vmMo.getDiskInfoBuilder(), rootDiskTO, hyperHost, context);
+            assert (diskInfo != null);
+            String[] diskChain = diskInfo.getDiskChain();
+
+            if (diskChain != null && diskChain.length>1)
+            {
+                s_logger.error("Unsupported Disk chain length "+ diskChain.length);
+                throw new Exception("Unsupported Disk chain length "+ diskChain.length);
+            }
+            if (diskInfo.getDiskDeviceBusName() == null || !diskInfo.getDiskDeviceBusName().toLowerCase().startsWith("scsi"))
+            {
+                s_logger.error("Unsupported root disk device bus "+ diskInfo.getDiskDeviceBusName() );
+                throw new Exception("Unsupported root disk device bus "+ diskInfo.getDiskDeviceBusName());
+            }
+
+            disk.setCapacityInKB(reqSize);
+            VirtualMachineConfigSpec vmConfigSpec = new VirtualMachineConfigSpec();
+            VirtualDeviceConfigSpec deviceConfigSpec = new VirtualDeviceConfigSpec();
+            deviceConfigSpec.setDevice(disk);
+            deviceConfigSpec.setOperation(VirtualDeviceConfigSpecOperation.EDIT);
+            vmConfigSpec.getDeviceChange().add(deviceConfigSpec);
+            if (!vmMo.configureVm(vmConfigSpec)) {
+                throw new Exception("Failed to configure VM for given root disk size. vmName: " + vmMo.getName());
+            }
+        }
+    }
+
+
     /**
-     * Sets video card memory to the one provided in detail svga.vramSize (if provided).
+     * Sets video card memory to the one provided in detail svga.vramSize (if provided) on {@code vmConfigSpec}.
      * 64MB was always set before.
      * Size must be in KB.
      * @param vmMo virtual machine mo
      * @param vmSpec virtual machine specs
+     * @param vmConfigSpec virtual machine config spec
+     * @throws Exception exception
      */
-    protected void postVideoCardMemoryConfigBeforeStart(VirtualMachineMO vmMo, VirtualMachineTO vmSpec) {
-        String paramVRamSize = "svga.vramSize";
-        if (vmSpec.getDetails().containsKey(paramVRamSize)){
-            String value = vmSpec.getDetails().get(paramVRamSize);
+    protected void configureVideoCard(VirtualMachineMO vmMo, VirtualMachineTO vmSpec, VirtualMachineConfigSpec vmConfigSpec) throws Exception {
+        if (vmSpec.getDetails().containsKey(VmDetailConstants.SVGA_VRAM_SIZE)){
+            String value = vmSpec.getDetails().get(VmDetailConstants.SVGA_VRAM_SIZE);
             try {
                 long svgaVmramSize = Long.parseLong(value);
-                setNewVRamSizeVmVideoCard(vmMo, svgaVmramSize);
+                setNewVRamSizeVmVideoCard(vmMo, svgaVmramSize, vmConfigSpec);
             }
             catch (NumberFormatException e){
                 s_logger.error("Unexpected value, cannot parse " + value + " to long due to: " + e.getMessage());
             }
-            catch (Exception e){
-                s_logger.error("Error while reconfiguring vm due to: " + e.getMessage());
-            }
         }
     }
 
@@ -2079,39 +2178,38 @@
      * Search for vm video card iterating through vm device list
      * @param vmMo virtual machine mo
      * @param svgaVmramSize new svga vram size (in KB)
+     * @param vmConfigSpec virtual machine config spec
      */
-    private void setNewVRamSizeVmVideoCard(VirtualMachineMO vmMo, long svgaVmramSize) throws Exception {
+    protected void setNewVRamSizeVmVideoCard(VirtualMachineMO vmMo, long svgaVmramSize, VirtualMachineConfigSpec vmConfigSpec) throws Exception {
         for (VirtualDevice device : vmMo.getAllDeviceList()){
             if (device instanceof VirtualMachineVideoCard){
                 VirtualMachineVideoCard videoCard = (VirtualMachineVideoCard) device;
-                modifyVmVideoCardVRamSize(videoCard, vmMo, svgaVmramSize);
+                modifyVmVideoCardVRamSize(videoCard, vmMo, svgaVmramSize, vmConfigSpec);
             }
         }
     }
 
     /**
-     * Modifies vm vram size if it was set to a different size to the one provided in svga.vramSize (user_vm_details or template_vm_details)
+     * Modifies vm vram size if it was set to a different size to the one provided in svga.vramSize (user_vm_details or template_vm_details) on {@code vmConfigSpec}
      * @param videoCard vm's video card device
      * @param vmMo virtual machine mo
      * @param svgaVmramSize new svga vram size (in KB)
+     * @param vmConfigSpec virtual machine config spec
      */
-    private void modifyVmVideoCardVRamSize(VirtualMachineVideoCard videoCard, VirtualMachineMO vmMo, long svgaVmramSize) throws Exception {
+    protected void modifyVmVideoCardVRamSize(VirtualMachineVideoCard videoCard, VirtualMachineMO vmMo, long svgaVmramSize, VirtualMachineConfigSpec vmConfigSpec) {
         if (videoCard.getVideoRamSizeInKB().longValue() != svgaVmramSize){
             s_logger.info("Video card memory was set " + videoCard.getVideoRamSizeInKB().longValue() + "kb instead of " + svgaVmramSize + "kb");
-            VirtualMachineConfigSpec newSizeSpecs = configSpecVideoCardNewVRamSize(videoCard, svgaVmramSize);
-            boolean res = vmMo.configureVm(newSizeSpecs);
-            if (res) {
-                s_logger.info("Video card memory successfully updated to " + svgaVmramSize + "kb");
-            }
+            configureSpecVideoCardNewVRamSize(videoCard, svgaVmramSize, vmConfigSpec);
         }
     }
 
     /**
-     * Returns a VirtualMachineConfigSpec to edit its svga vram size
+     * Add edit spec on {@code vmConfigSpec} to modify svga vram size
      * @param videoCard video card device to edit providing the svga vram size
      * @param svgaVmramSize new svga vram size (in KB)
+     * @param vmConfigSpec virtual machine spec
      */
-    private VirtualMachineConfigSpec configSpecVideoCardNewVRamSize(VirtualMachineVideoCard videoCard, long svgaVmramSize){
+    protected void configureSpecVideoCardNewVRamSize(VirtualMachineVideoCard videoCard, long svgaVmramSize, VirtualMachineConfigSpec vmConfigSpec){
         videoCard.setVideoRamSizeInKB(svgaVmramSize);
         videoCard.setUseAutoDetect(false);
 
@@ -2119,9 +2217,7 @@
         arrayVideoCardConfigSpecs.setDevice(videoCard);
         arrayVideoCardConfigSpecs.setOperation(VirtualDeviceConfigSpecOperation.EDIT);
 
-        VirtualMachineConfigSpec changeVideoCardSpecs = new VirtualMachineConfigSpec();
-        changeVideoCardSpecs.getDeviceChange().add(arrayVideoCardConfigSpecs);
-        return changeVideoCardSpecs;
+        vmConfigSpec.getDeviceChange().add(arrayVideoCardConfigSpecs);
     }
 
     private void tearDownVm(VirtualMachineMO vmMo) throws Exception{
@@ -2221,7 +2317,7 @@
         return new Pair<String, String>(vmInternalCSName, vmNameOnVcenter);
     }
 
-    private static void configNestedHVSupport(VirtualMachineMO vmMo, VirtualMachineTO vmSpec, VirtualMachineConfigSpec vmConfigSpec) throws Exception {
+    protected void configNestedHVSupport(VirtualMachineMO vmMo, VirtualMachineTO vmSpec, VirtualMachineConfigSpec vmConfigSpec) throws Exception {
 
         VmwareContext context = vmMo.getContext();
         if ("true".equals(vmSpec.getDetails().get(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG))) {
@@ -3211,11 +3307,17 @@
             s_logger.info("Executing resource RebootCommand: " + _gson.toJson(cmd));
         }
 
+        boolean toolsInstallerMounted = false;
+        VirtualMachineMO vmMo = null;
         VmwareContext context = getServiceContext();
         VmwareHypervisorHost hyperHost = getHyperHost(context);
         try {
-            VirtualMachineMO vmMo = hyperHost.findVmOnHyperHost(cmd.getVmName());
+            vmMo = hyperHost.findVmOnHyperHost(cmd.getVmName());
             if (vmMo != null) {
+                if (vmMo.isToolsInstallerMounted()) {
+                    toolsInstallerMounted = true;
+                    s_logger.trace("Detected mounted vmware tools installer for :[" + cmd.getVmName() + "]");
+                }
                 try {
                     vmMo.rebootGuest();
                     return new RebootAnswer(cmd, "reboot succeeded", true);
@@ -3247,6 +3349,15 @@
             String msg = "RebootCommand failed due to " + VmwareHelper.getExceptionMessage(e);
             s_logger.error(msg);
             return new RebootAnswer(cmd, msg, false);
+        } finally {
+            if (toolsInstallerMounted) {
+                try {
+                    vmMo.mountToolsInstaller();
+                    s_logger.debug("Successfully re-mounted vmware tools installer for :[" + cmd.getVmName() + "]");
+                } catch (Exception e) {
+                    s_logger.warn("Unabled to re-mount vmware tools installer for :[" + cmd.getVmName() + "]");
+                }
+            }
         }
     }
 
@@ -3503,7 +3614,7 @@
                 }
                 diskLocator = new VirtualMachineRelocateSpecDiskLocator();
                 diskLocator.setDatastore(morDsAtSource);
-                Pair<VirtualDisk, String> diskInfo = getVirtualDiskInfo(vmMo, volume.getPath() + ".vmdk");
+                Pair<VirtualDisk, String> diskInfo = getVirtualDiskInfo(vmMo, appendFileType(volume.getPath(), ".vmdk"));
                 String vmdkAbsFile = getAbsoluteVmdkFile(diskInfo.first());
                 if (vmdkAbsFile != null && !vmdkAbsFile.isEmpty()) {
                     vmMo.updateAdapterTypeIfRequired(vmdkAbsFile);
@@ -3676,7 +3787,7 @@
 
             DatastoreMO targetDsMo = new DatastoreMO(srcHyperHost.getContext(), morDs);
             String fullVolumePath = VmwareStorageLayoutHelper.getVmwareDatastorePathFromVmdkFileName(targetDsMo, vmName, volumePath + ".vmdk");
-            Pair<VirtualDisk, String> diskInfo = getVirtualDiskInfo(vmMo, volumePath + ".vmdk");
+            Pair<VirtualDisk, String> diskInfo = getVirtualDiskInfo(vmMo, appendFileType(volumePath, ".vmdk"));
             String vmdkAbsFile = getAbsoluteVmdkFile(diskInfo.first());
             if (vmdkAbsFile != null && !vmdkAbsFile.isEmpty()) {
                 vmMo.updateAdapterTypeIfRequired(vmdkAbsFile);
@@ -4300,8 +4411,7 @@
         if (controlIp != null) {
             String args = " -c 1 -n -q " + cmd.getPrivateIp();
             try {
-                VmwareManager mgr = getServiceContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
-                Pair<Boolean, String> result = SshHelper.sshExecute(controlIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "/bin/ping" + args);
+                Pair<Boolean, String> result = SshHelper.sshExecute(controlIp, DefaultDomRSshPort, "root", getSystemVmKeyFile(), null, "/bin/ping" + args);
                 if (result.first())
                     return new Answer(cmd);
             } catch (Exception e) {
@@ -4356,6 +4466,59 @@
     }
 
 
+    protected Answer execute(GetVmIpAddressCommand cmd) {
+        if (s_logger.isTraceEnabled()) {
+            s_logger.trace("Executing resource command GetVmIpAddressCommand: " + _gson.toJson(cmd));
+        }
+
+        String details = "Unable to find IP Address of VM. ";
+        String vmName = cmd.getVmName();
+        boolean result = false;
+        String ip = null;
+        Answer answer = null;
+
+        VmwareContext context = getServiceContext();
+        VmwareHypervisorHost hyperHost = getHyperHost(context);
+
+        if (vmName == null || vmName.isEmpty()) {
+            details += "Name of instance provided is NULL or empty.";
+            return new Answer(cmd, result, details);
+        }
+
+        try {
+            VirtualMachineMO vmMo = hyperHost.findVmOnHyperHost(vmName);
+            if (vmMo != null) {
+                GuestInfo guestInfo = vmMo.getGuestInfo();
+                VirtualMachineToolsStatus toolsStatus = guestInfo.getToolsStatus();
+                if (toolsStatus == VirtualMachineToolsStatus.TOOLS_NOT_INSTALLED) {
+                    details += "Vmware tools not installed.";
+                } else {
+                    ip = guestInfo.getIpAddress();
+                    if (ip != null) {
+                        result = true;
+                    }
+                    details = ip;
+                }
+            } else {
+                details += "VM " + vmName + " no longer exists on vSphere host: " + hyperHost.getHyperHostName();
+                s_logger.info(details);
+            }
+        } catch (Throwable e) {
+            if (e instanceof RemoteException) {
+                s_logger.warn("Encounter remote exception to vCenter, invalidate VMware session context");
+                invalidateServiceContext();
+            }
+            details += "Encountered exception : " + VmwareHelper.getExceptionMessage(e);
+            s_logger.error(details);
+        }
+
+        answer = new Answer(cmd, result, details);
+        if (s_logger.isTraceEnabled()) {
+            s_logger.trace("Returning GetVmIpAddressAnswer: " + _gson.toJson(answer));
+        }
+        return answer;
+    }
+
     @Override
     public PrimaryStorageDownloadAnswer execute(PrimaryStorageDownloadCommand cmd) {
         if (s_logger.isInfoEnabled()) {
@@ -5639,4 +5802,38 @@
         }
         return vmdkAbsFile;
     }
+
+    protected File getSystemVmKeyFile() {
+        if (s_systemVmKeyFile == null) {
+            syncFetchSystemVmKeyFile();
+        }
+        return s_systemVmKeyFile;
+    }
+
+    private static void syncFetchSystemVmKeyFile() {
+        synchronized (s_syncLockObjectFetchKeyFile) {
+            if (s_systemVmKeyFile == null) {
+                s_systemVmKeyFile = fetchSystemVmKeyFile();
+            }
+        }
+    }
+
+    private static File fetchSystemVmKeyFile() {
+        String filePath = s_relativePathSystemVmKeyFileInstallDir;
+        s_logger.debug("Looking for file [" + filePath + "] in the classpath.");
+        URL url = Script.class.getClassLoader().getResource(filePath);
+        File keyFile = null;
+        if (url != null) {
+            keyFile = new File(url.getPath());
+        }
+        if (keyFile == null || !keyFile.exists()) {
+            filePath = s_defaultPathSystemVmKeyFile;
+            keyFile = new File(filePath);
+            s_logger.debug("Looking for file [" + filePath + "] in the classpath.");
+        }
+        if (!keyFile.exists()) {
+            s_logger.error("Unable to locate id_rsa.cloud in your setup at " + keyFile.toString());
+        }
+        return keyFile;
+    }
 }
diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
index 30ad3ca..8026575 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
@@ -114,11 +114,25 @@
 
 public class VmwareStorageProcessor implements StorageProcessor {
 
+    public enum VmwareStorageProcessorConfigurableFields {
+        NFS_VERSION("nfsVersion"), FULL_CLONE_FLAG("fullCloneFlag");
+
+        private String name;
+
+        VmwareStorageProcessorConfigurableFields(String name){
+            this.name = name;
+        }
+
+        public String getName() {
+            return name;
+        }
+    }
+
     private static final Logger s_logger = Logger.getLogger(VmwareStorageProcessor.class);
     private static final int DEFAULT_NFS_PORT = 2049;
 
     private final VmwareHostService hostService;
-    private final boolean _fullCloneFlag;
+    private boolean _fullCloneFlag;
     private final VmwareStorageMount mountService;
     private final VmwareResource resource;
     private final Integer _timeout;
@@ -1677,9 +1691,6 @@
                             s_logger.info("Destroy root volume and VM itself. vmName " + vmName);
                         }
 
-                        // Remove all snapshots to consolidate disks for removal
-                        vmMo.removeAllSnapshots();
-
                         VirtualMachineDiskInfo diskInfo = null;
                         if (vol.getChainInfo() != null)
                             diskInfo = _gson.fromJson(vol.getChainInfo(), VirtualMachineDiskInfo.class);
@@ -2406,4 +2417,9 @@
         this._nfsVersion = nfsVersion;
         s_logger.debug("VmwareProcessor instance now using NFS version: " + nfsVersion);
     }
+
+    public void setFullCloneFlag(boolean value){
+        this._fullCloneFlag = value;
+        s_logger.debug("VmwareProcessor instance - create full clone = " + (value ? "TRUE" : "FALSE"));
+    }
 }
diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java
index 7252f51..fc19972 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageSubsystemCommandHandler.java
@@ -19,6 +19,7 @@
 package com.cloud.storage.resource;
 
 import java.io.File;
+import java.util.EnumMap;
 
 import org.apache.log4j.Logger;
 import org.apache.cloudstack.storage.command.CopyCmdAnswer;
@@ -37,6 +38,7 @@
 import com.cloud.agent.api.to.SwiftTO;
 import com.cloud.hypervisor.vmware.manager.VmwareStorageManager;
 import com.cloud.storage.DataStoreRole;
+import com.cloud.storage.resource.VmwareStorageProcessor.VmwareStorageProcessorConfigurableFields;
 
 public class VmwareStorageSubsystemCommandHandler extends StorageSubsystemCommandHandlerBase {
 
@@ -66,21 +68,25 @@
         this._nfsVersion = nfsVersion;
     }
 
-    /**
-     * Reconfigure NFS version for storage operations
-     * @param nfsVersion NFS version to set
-     * @return true if NFS version could be configured, false in other case
-     */
-    public boolean reconfigureNfsVersion(Integer nfsVersion){
-        try {
-            VmwareStorageProcessor processor = (VmwareStorageProcessor) this.processor;
-            processor.setNfsVersion(nfsVersion);
-            this._nfsVersion = nfsVersion;
-            return true;
-        } catch (Exception e){
-            s_logger.error("Error while reconfiguring NFS version " + nfsVersion);
-            return false;
+    public boolean reconfigureStorageProcessor(EnumMap<VmwareStorageProcessorConfigurableFields,Object> params) {
+        VmwareStorageProcessor processor = (VmwareStorageProcessor) this.processor;
+        for (VmwareStorageProcessorConfigurableFields key : params.keySet()){
+            switch (key){
+            case NFS_VERSION:
+                Integer nfsVersion = (Integer) params.get(key);
+                processor.setNfsVersion(nfsVersion);
+                this._nfsVersion = nfsVersion;
+                break;
+            case FULL_CLONE_FLAG:
+                boolean fullClone = (boolean) params.get(key);
+                processor.setFullCloneFlag(fullClone);
+                break;
+            default:
+                s_logger.error("Unknown reconfigurable field " + key.getName() + " for VmwareStorageProcessor");
+                return false;
+            }
         }
+        return true;
     }
 
     @Override
@@ -187,4 +193,5 @@
             return super.execute(cmd);
         }
     }
+
 }
diff --git a/plugins/hypervisors/vmware/test/com/cloud/hypervisor/guru/VMwareGuruTest.java b/plugins/hypervisors/vmware/test/com/cloud/hypervisor/guru/VMwareGuruTest.java
new file mode 100755
index 0000000..77042fd
--- /dev/null
+++ b/plugins/hypervisors/vmware/test/com/cloud/hypervisor/guru/VMwareGuruTest.java
@@ -0,0 +1,157 @@
+// 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.hypervisor.guru;
+
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.inOrder;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InOrder;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.support.AnnotationConfigContextLoader;
+
+import com.cloud.agent.api.to.VirtualMachineTO;
+import com.cloud.vm.VmDetailConstants;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ConfigKey.class, VMwareGuru.class})
+@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
+public class VMwareGuruTest {
+
+    @Mock(name="VmwareEnableNestedVirtualization")
+    private ConfigKey<Boolean> vmwareNestedVirtualizationConfig;
+
+    @Mock(name="VmwareEnableNestedVirtualizationPerVM")
+    private ConfigKey<Boolean> vmwareNestedVirtualizationPerVmConfig;
+
+    @Spy
+    @InjectMocks
+    private VMwareGuru _guru = new VMwareGuru();
+
+    @Mock
+    VirtualMachineTO vmTO;
+
+    private Map<String,String> vmDetails = new HashMap<String, String>();
+
+    @Before
+    public void testSetUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    private void setConfigValues(Boolean globalNV, Boolean globalNVPVM, String localNV){
+        when(vmwareNestedVirtualizationConfig.value()).thenReturn(globalNV);
+        when(vmwareNestedVirtualizationPerVmConfig.value()).thenReturn(globalNVPVM);
+        if (localNV != null) {
+            vmDetails.put(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG, localNV);
+        }
+    }
+
+    private void executeAndVerifyTest(Boolean globalNV, Boolean globalNVPVM, String localNV, Boolean expectedResult){
+        Boolean result = _guru.shouldEnableNestedVirtualization(globalNV, globalNVPVM, localNV);
+        assertEquals(expectedResult, result);
+    }
+
+    @Test
+    public void testConfigureNestedVirtualization(){
+        setConfigValues(true, true, null);
+        _guru.configureNestedVirtualization(vmDetails, vmTO);
+
+        InOrder inOrder = inOrder(_guru, vmTO);
+        inOrder.verify(_guru).shouldEnableNestedVirtualization(true, true, null);
+        inOrder.verify(vmTO).setDetails(vmDetails);
+
+        assertTrue(vmDetails.containsKey(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG));
+        assertEquals(Boolean.toString(true), vmDetails.get(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG));
+
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVTrueGlobalNVPVMTrueLocalNVNull(){
+        executeAndVerifyTest(true, true, null, true);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVTrueGlobalNVPVMTrueLocalNVTrue(){
+        executeAndVerifyTest(true, true, "true", true);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVTrueGlobalNVPVMTrueLocalNVFalse(){
+        executeAndVerifyTest(true, true, "false", false);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVTrueGlobalNVPVMFalseLocalNVNull(){
+        executeAndVerifyTest(true, false, null, true);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVTrueGlobalNVPVMFalseLocalNVTrue(){
+        executeAndVerifyTest(true, false, "true", true);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVTrueGlobalNVPVMFalseLocalNVNFalse(){
+        executeAndVerifyTest(true, false, "false", true);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVFalseGlobalNVPVMTrueLocalNVNull(){
+        executeAndVerifyTest(false, true, null, false);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVFalseGlobalNVPVMTrueLocalNVTrue(){
+        executeAndVerifyTest(false, true, "true", true);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVFalseGlobalNVPVMTrueLocalNVFalse(){
+        executeAndVerifyTest(false, true, "false", false);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVFalseGlobalNVPVMFalseLocalNVNull(){
+        executeAndVerifyTest(false, false, null, false);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVFalseGlobalNVPVMFalseLocalNVTrue(){
+        executeAndVerifyTest(false, false, "true", false);
+    }
+
+    @Test
+    public void testEnableNestedVirtualizationCaseGlobalNVFalseGlobalNVPVMFalseLocalNVFalse(){
+        executeAndVerifyTest(false, false, "false", false);
+    }
+
+}
diff --git a/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java b/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java
index a3e2daa..744c93a 100644
--- a/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java
+++ b/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java
@@ -19,33 +19,43 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.mock;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.never;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.times;
 
+import java.util.ArrayList;
 import static org.powermock.api.mockito.PowerMockito.whenNew;
 
 import java.util.Arrays;
+import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.cloudstack.storage.command.CopyCommand;
+import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.InOrder;
 import org.mockito.InjectMocks;
+import org.mockito.Matchers;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.mockito.Spy;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
+import com.vmware.vim25.HostCapability;
 import com.vmware.vim25.ManagedObjectReference;
+import com.vmware.vim25.VimPortType;
 import com.vmware.vim25.VirtualDevice;
+import com.vmware.vim25.VirtualDeviceConfigSpec;
 import com.vmware.vim25.VirtualMachineConfigSpec;
 import com.vmware.vim25.VirtualMachineVideoCard;
 import com.cloud.agent.api.Command;
@@ -56,11 +66,16 @@
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.agent.api.to.VolumeTO;
 import com.cloud.hypervisor.vmware.mo.DatacenterMO;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.hypervisor.vmware.mo.HostMO;
 import com.cloud.hypervisor.vmware.mo.VirtualMachineMO;
 import com.cloud.hypervisor.vmware.mo.VmwareHypervisorHost;
+import com.cloud.hypervisor.vmware.util.VmwareClient;
 import com.cloud.hypervisor.vmware.util.VmwareContext;
+import com.cloud.vm.VmDetailConstants;
 import com.cloud.storage.resource.VmwareStorageProcessor;
 import com.cloud.storage.resource.VmwareStorageSubsystemCommandHandler;
+import com.cloud.storage.resource.VmwareStorageProcessor.VmwareStorageProcessorConfigurableFields;
 
 import com.cloud.utils.exception.CloudRuntimeException;
 
@@ -108,6 +123,10 @@
     @Mock
     VirtualMachineTO vmSpec3dgpu;
     @Mock
+    VirtualMachineVideoCard videoCard;
+    @Mock
+    VirtualDevice virtualDevice;
+    @Mock
     DataTO srcDataTO;
     @Mock
     NfsTO srcDataNfsTO;
@@ -117,22 +136,65 @@
     ManagedObjectReference mor;
     @Mock
     DatacenterMO datacenter;
+    @Mock
+    DataTO destDataTO;
+    @Mock
+    PrimaryDataStoreTO destDataStoreTO;
+    @Mock
+    HostMO host;
+    @Mock
+    ManagedObjectReference hostRef;
+    @Mock
+    ManagedObjectReference computeRef;
+    @Mock
+    ManagedObjectReference envRef;
+    @Mock
+    VmwareClient client;
+    @Mock
+    VimPortType vimService;
+    @Mock
+    HostCapability hostCapability;
 
     CopyCommand storageCmd;
+    EnumMap<VmwareStorageProcessorConfigurableFields, Object> params = new EnumMap<VmwareStorageProcessorConfigurableFields,Object>(VmwareStorageProcessorConfigurableFields.class);
 
     private static final Integer NFS_VERSION = Integer.valueOf(3);
     private static final Integer NFS_VERSION_NOT_PRESENT = null;
+    private static final long VRAM_MEMORY_SIZE = 131072l;
+    private static final long VIDEO_CARD_MEMORY_SIZE = 65536l;
+    private static final Boolean FULL_CLONE_FLAG = true;
+
+    private Map<String,String> specsArray = new HashMap<String,String>();
 
     @Before
-    public void setup() {
+    public void setup() throws Exception {
         MockitoAnnotations.initMocks(this);
         storageCmd = PowerMockito.mock(CopyCommand.class);
         doReturn(context).when(_resource).getServiceContext(null);
         when(cmd.getVirtualMachine()).thenReturn(vmSpec);
+
         when(storageCmd.getSrcTO()).thenReturn(srcDataTO);
         when(srcDataTO.getDataStore()).thenReturn(srcDataNfsTO);
         when(srcDataNfsTO.getNfsVersion()).thenReturn(NFS_VERSION);
+        when(videoCard.getVideoRamSizeInKB()).thenReturn(VIDEO_CARD_MEMORY_SIZE);
         when(volume.getPath()).thenReturn(VOLUME_PATH);
+
+        when(storageCmd.getDestTO()).thenReturn(destDataTO);
+        when(destDataTO.getHypervisorType()).thenReturn(HypervisorType.VMware);
+        when(destDataTO.getDataStore()).thenReturn(destDataStoreTO);
+        when(destDataStoreTO.isFullCloneFlag()).thenReturn(FULL_CLONE_FLAG);
+        when(volume.getPath()).thenReturn(VOLUME_PATH);
+        when(vmSpec.getDetails()).thenReturn(specsArray);
+
+        when(vmMo.getContext()).thenReturn(context);
+        when(vmMo.getRunningHost()).thenReturn(host);
+        when(host.getMor()).thenReturn(hostRef);
+        when(context.getVimClient()).thenReturn(client);
+        when(client.getMoRefProp(hostRef, "parent")).thenReturn(computeRef);
+        when(client.getMoRefProp(computeRef, "environmentBrowser")).thenReturn(envRef);
+        when(context.getService()).thenReturn(vimService);
+        when(vimService.queryTargetCapabilities(envRef, hostRef)).thenReturn(hostCapability);
+        when(hostCapability.isNestedHVSupported()).thenReturn(true);
     }
 
     //Test successful scaling up the vm
@@ -154,19 +216,56 @@
     }
 
     @Test
-    public void testStartVm3dgpuEnabled() throws Exception{
+    public void testConfigureVideoCardSvgaVramProvided() throws Exception {
         Map<String, String> specDetails = new HashMap<String, String>();
-        specDetails.put("svga.vramSize", "131072");
+        specDetails.put("svga.vramSize", String.valueOf(VRAM_MEMORY_SIZE));
         when(vmSpec3dgpu.getDetails()).thenReturn(specDetails);
 
-        VirtualMachineVideoCard videoCard = mock(VirtualMachineVideoCard.class);
-        when(videoCard.getVideoRamSizeInKB()).thenReturn(65536l);
-        when(vmMo3dgpu.getAllDeviceList()).thenReturn(Arrays.asList((VirtualDevice) videoCard));
+        _resource.configureVideoCard(vmMo3dgpu, vmSpec3dgpu, vmConfigSpec);
+        verify(_resource).setNewVRamSizeVmVideoCard(vmMo3dgpu, VRAM_MEMORY_SIZE, vmConfigSpec);
+    }
 
-        when(vmMo3dgpu.configureVm(any(VirtualMachineConfigSpec.class))).thenReturn(true);
+    @Test
+    public void testConfigureVideoCardNotSvgaVramProvided() throws Exception {
+        _resource.configureVideoCard(vmMo3dgpu, vmSpec3dgpu, vmConfigSpec);
+        verify(_resource, never()).setNewVRamSizeVmVideoCard(vmMo3dgpu, VRAM_MEMORY_SIZE, vmConfigSpec);
+    }
 
-        _resource.postVideoCardMemoryConfigBeforeStart(vmMo3dgpu, vmSpec3dgpu);
-        verify(vmMo3dgpu).configureVm(any(VirtualMachineConfigSpec.class));
+    @Test
+    public void testModifyVmVideoCardVRamSizeDifferentVramSizes() {
+        _resource.modifyVmVideoCardVRamSize(videoCard, vmMo3dgpu, VRAM_MEMORY_SIZE, vmConfigSpec);
+        verify(_resource).configureSpecVideoCardNewVRamSize(videoCard, VRAM_MEMORY_SIZE, vmConfigSpec);
+    }
+
+    @Test
+    public void testModifyVmVideoCardVRamSizeEqualSizes() {
+        _resource.modifyVmVideoCardVRamSize(videoCard, vmMo3dgpu, VIDEO_CARD_MEMORY_SIZE, vmConfigSpec);
+        verify(_resource, never()).configureSpecVideoCardNewVRamSize(videoCard, VIDEO_CARD_MEMORY_SIZE, vmConfigSpec);
+    }
+
+    @Test
+    public void testSetNewVRamSizeVmVideoCardPresent() throws Exception {
+        when(vmMo3dgpu.getAllDeviceList()).thenReturn(Arrays.asList(videoCard, virtualDevice));
+        _resource.setNewVRamSizeVmVideoCard(vmMo3dgpu, VRAM_MEMORY_SIZE, vmConfigSpec);
+        verify(_resource).modifyVmVideoCardVRamSize(videoCard, vmMo3dgpu, VRAM_MEMORY_SIZE, vmConfigSpec);
+    }
+
+    @Test
+    public void testSetNewVRamSizeVmVideoCardNotPresent() throws Exception {
+        when(vmMo3dgpu.getAllDeviceList()).thenReturn(Arrays.asList(virtualDevice));
+        _resource.setNewVRamSizeVmVideoCard(vmMo3dgpu, VRAM_MEMORY_SIZE, vmConfigSpec);
+        verify(_resource, never()).modifyVmVideoCardVRamSize(any(VirtualMachineVideoCard.class), eq(vmMo3dgpu), eq(VRAM_MEMORY_SIZE), eq(vmConfigSpec));
+    }
+
+    @Test
+    public void testConfigureSpecVideoCardNewVRamSize() {
+        when(vmConfigSpec.getDeviceChange()).thenReturn(new ArrayList<VirtualDeviceConfigSpec>());
+        _resource.configureSpecVideoCardNewVRamSize(videoCard, VRAM_MEMORY_SIZE, vmConfigSpec);
+
+        InOrder inOrder = Mockito.inOrder(videoCard, vmConfigSpec);
+        inOrder.verify(videoCard).setVideoRamSizeInKB(VRAM_MEMORY_SIZE);
+        inOrder.verify(videoCard).setUseAutoDetect(false);
+        inOrder.verify(vmConfigSpec).getDeviceChange();
     }
 
     // ---------------------------------------------------------------------------------------------------
@@ -191,8 +290,9 @@
 
     @Test
     public void testSetCurrentNfsVersionInProcessorAndHandler(){
-        _resource.setCurrentNfsVersionInProcessorAndHandler();
-        verify(storageHandler).reconfigureNfsVersion(any(Integer.class));
+        params.put(VmwareStorageProcessorConfigurableFields.NFS_VERSION, NFS_VERSION);
+        _resource.reconfigureProcessorByHandler(params);
+        verify(storageHandler).reconfigureStorageProcessor(params);
     }
 
     // ---------------------------------------------------------------------------------------------------
@@ -200,30 +300,69 @@
     @Test
     public void testExamineStorageSubSystemCommandNfsVersionNotPresent(){
         when(srcDataNfsTO.getNfsVersion()).thenReturn(NFS_VERSION_NOT_PRESENT);
-        _resource.examineStorageSubSystemCommandNfsVersion(storageCmd);
-        verify(_resource, never()).setCurrentNfsVersionInProcessorAndHandler();
+        _resource.examineStorageSubSystemCommandNfsVersion(storageCmd,params);
+        assertTrue(params.isEmpty());
     }
 
     @Test
     public void testExamineStorageSubSystemCommandNfsVersion(){
-        _resource.examineStorageSubSystemCommandNfsVersion(storageCmd);
-        verify(_resource).setCurrentNfsVersionInProcessorAndHandler();
+        _resource.examineStorageSubSystemCommandNfsVersion(storageCmd, params);
+        assertEquals(1, params.size());
+        assertEquals(NFS_VERSION, params.get(VmwareStorageProcessorConfigurableFields.NFS_VERSION));
     }
 
     // ---------------------------------------------------------------------------------------------------
 
     @Test
+    public void testExamineStorageSubSystemCommandFullCloneFlagForVmwareNullHypervisor(){
+        when(destDataTO.getHypervisorType()).thenReturn(null);
+        _resource.examineStorageSubSystemCommandFullCloneFlagForVmware(storageCmd, params);
+        verify(destDataTO, never()).getDataStore();
+    }
+
+    @Test
+    public void testExamineStorageSubSystemCommandFullCloneFlagForHypervisorNotVmware(){
+        when(destDataTO.getHypervisorType()).thenReturn(HypervisorType.XenServer);
+        _resource.examineStorageSubSystemCommandFullCloneFlagForVmware(storageCmd, params);
+        verify(destDataTO, never()).getDataStore();
+    }
+
+    @Test
+    public void testExamineStorageSubSystemCommandFullCloneFlagForVmware(){
+        EnumMap<VmwareStorageProcessorConfigurableFields, Object> params2 = _resource.examineStorageSubSystemCommandFullCloneFlagForVmware(storageCmd, params);
+        verify(destDataTO).getDataStore();
+        verify(destDataStoreTO, times(2)).isFullCloneFlag();
+        assertEquals(1, params2.size());
+        assertEquals(FULL_CLONE_FLAG, params2.get(VmwareStorageProcessorConfigurableFields.FULL_CLONE_FLAG));
+    }
+
+    @Test
+    public void testExamineStorageSubSystemCommandFullCloneFlagForVmwareNull(){
+        when(destDataStoreTO.isFullCloneFlag()).thenReturn(null);
+        _resource.examineStorageSubSystemCommandFullCloneFlagForVmware(storageCmd, params);
+        verify(destDataTO).getDataStore();
+        verify(destDataStoreTO).isFullCloneFlag();
+        assertTrue(params.isEmpty());
+    }
+
+    // ---------------------------------------------------------------------------------------------------
+
+    @SuppressWarnings("unchecked")
+    @Test
     public void checkStorageProcessorAndHandlerNfsVersionAttributeVersionNotSet(){
         _resource.checkStorageProcessorAndHandlerNfsVersionAttribute(storageCmd);
-        verify(_resource).examineStorageSubSystemCommandNfsVersion(storageCmd);
+        verify(_resource).examineStorageSubSystemCommandNfsVersion(Matchers.eq(storageCmd), any(EnumMap.class));
+        verify(_resource).examineStorageSubSystemCommandFullCloneFlagForVmware(Matchers.eq(storageCmd), any(EnumMap.class));
+        verify(_resource).reconfigureProcessorByHandler(any(EnumMap.class));
         assertEquals(NFS_VERSION, _resource.storageNfsVersion);
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void checkStorageProcessorAndHandlerNfsVersionAttributeVersionSet(){
         _resource.storageNfsVersion = NFS_VERSION;
         _resource.checkStorageProcessorAndHandlerNfsVersionAttribute(storageCmd);
-        verify(_resource, never()).examineStorageSubSystemCommandNfsVersion(storageCmd);
+        verify(_resource, never()).examineStorageSubSystemCommandNfsVersion(Matchers.eq(storageCmd), any(EnumMap.class));
     }
 
     @Test(expected=CloudRuntimeException.class)
@@ -241,4 +380,28 @@
         VirtualMachineMO result = _resource.findVmOnDatacenter(context, hyperHost, volume);
         assertEquals(vmMo, result);
     }
+
+    @Test
+    public void testConfigNestedHVSupportFlagTrue() throws Exception{
+        specsArray.put(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG, "true");
+        _resource.configNestedHVSupport(vmMo, vmSpec, vmConfigSpec);
+        verify(vmMo).getRunningHost();
+        verify(host).getMor();
+        verify(context, times(2)).getVimClient();
+        verify(client).getMoRefProp(hostRef, "parent");
+        verify(client).getMoRefProp(computeRef, "environmentBrowser");
+        verify(context).getService();
+        verify(vimService).queryTargetCapabilities(envRef, hostRef);
+        verify(hostCapability).isNestedHVSupported();
+
+        verify(vmConfigSpec).setNestedHVEnabled(true);
+    }
+
+    @Test
+    public void testConfigNestedHVSupportFlagFalse() throws Exception{
+        specsArray.put(VmDetailConstants.NESTED_VIRTUALIZATION_FLAG, "false");
+        _resource.configNestedHVSupport(vmMo, vmSpec, vmConfigSpec);
+        verify(vmMo, never()).getRunningHost();
+    }
+
 }
diff --git a/plugins/hypervisors/xenserver/pom.xml b/plugins/hypervisors/xenserver/pom.xml
index a604a45..5ce1b8c 100644
--- a/plugins/hypervisors/xenserver/pom.xml
+++ b/plugins/hypervisors/xenserver/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/hypervisors/xenserver/resources/META-INF/cloudstack/xenserver-compute/spring-xenserver-compute-context.xml b/plugins/hypervisors/xenserver/resources/META-INF/cloudstack/xenserver-compute/spring-xenserver-compute-context.xml
index d9d442b..8cd528b 100644
--- a/plugins/hypervisors/xenserver/resources/META-INF/cloudstack/xenserver-compute/spring-xenserver-compute-context.xml
+++ b/plugins/hypervisors/xenserver/resources/META-INF/cloudstack/xenserver-compute/spring-xenserver-compute-context.xml
@@ -12,10 +12,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="XenServerFencer" class="com.cloud.ha.XenServerFencer">
         <property name="name" value="XenServerFenceBuilder" />
diff --git a/plugins/hypervisors/xenserver/resources/META-INF/cloudstack/xenserver-discoverer/spring-xenserver-discoverer-context.xml b/plugins/hypervisors/xenserver/resources/META-INF/cloudstack/xenserver-discoverer/spring-xenserver-discoverer-context.xml
index 5c76772..b66c887 100644
--- a/plugins/hypervisors/xenserver/resources/META-INF/cloudstack/xenserver-discoverer/spring-xenserver-discoverer-context.xml
+++ b/plugins/hypervisors/xenserver/resources/META-INF/cloudstack/xenserver-discoverer/spring-xenserver-discoverer-context.xml
@@ -12,10 +12,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="XcpServerDiscoverer"
         class="com.cloud.hypervisor.xenserver.discoverer.XcpServerDiscoverer">
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java
index 9bfcba2..74f989b 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java
@@ -18,6 +18,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import javax.inject.Inject;
 
@@ -25,6 +26,7 @@
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.Configurable;
 import org.apache.cloudstack.hypervisor.xenserver.XenserverConfigs;
+import org.apache.cloudstack.resourcedetail.dao.GuestOsDetailsDao;
 import org.apache.cloudstack.storage.command.CopyCommand;
 import org.apache.cloudstack.storage.command.DettachCommand;
 import org.apache.cloudstack.storage.command.StorageSubSystemCommand;
@@ -71,6 +73,8 @@
     private VolumeDataFactory _volFactory;
     @Inject
     private UserVmDao _userVmDao;
+    @Inject
+    GuestOsDetailsDao _guestOsDetailsDao;
 
     private static final ConfigKey<Integer> MaxNumberOfVCPUSPerVM = new ConfigKey<Integer>("Advanced", Integer.class, "xen.vm.vcpu.max", "16",
             "Maximum number of VCPUs that VM can get in XenServer.", true, ConfigKey.Scope.Cluster);
@@ -99,6 +103,11 @@
 
         // Determine the VM's OS description
         GuestOSVO guestOS = _guestOsDao.findByIdIncludingRemoved(vm.getVirtualMachine().getGuestOSId());
+
+        Map<String, String> guestOsDetails = _guestOsDetailsDao.listDetailsKeyPairs(vm.getVirtualMachine().getGuestOSId());
+
+        to.setGuestOsDetails(guestOsDetails);
+
         to.setOs(guestOS.getDisplayName());
         HostVO host = hostDao.findById(vm.getVirtualMachine().getHostId());
         GuestOSHypervisorVO guestOsMapping = null;
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixHelper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixHelper.java
index 796acbd..1fbee1f 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixHelper.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixHelper.java
@@ -16,8 +16,6 @@
 // under the License.
 package com.cloud.hypervisor.xenserver.resource;
 
-import java.util.HashMap;
-
 import com.xensource.xenapi.Host;
 
 /**
@@ -25,201 +23,6 @@
  *
  */
 public class CitrixHelper {
-    private static final HashMap<String, MemoryValues> XenServerGuestOsMemoryMap = new HashMap<String, MemoryValues>(70);
-
-    public static class MemoryValues {
-        long max;
-        long min;
-
-        public MemoryValues(final long min, final long max) {
-            this.min = min * 1024 * 1024;
-            this.max = max * 1024 * 1024;
-        }
-
-        public long getMax() {
-            return max;
-        }
-
-        public long getMin() {
-            return min;
-        }
-    }
-
-    static {
-        XenServerGuestOsMemoryMap.put("CentOS 4.5 (32-bit)", new MemoryValues(256l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 4.6 (32-bit)", new MemoryValues(256l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 4.7 (32-bit)", new MemoryValues(256l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 4.8 (32-bit)", new MemoryValues(256l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.0 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.0 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.1 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.1 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.2 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.3 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.4 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.5 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.6 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.6 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.7 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.7 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.8 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.8 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.9 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.9 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.10 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 5.10 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.0 (32-bit)", new MemoryValues(512l, 8 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.0 (64-bit)", new MemoryValues(512l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.1 (32-bit)", new MemoryValues(512l, 8 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.1 (64-bit)", new MemoryValues(512l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("CentOS 6.5 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.0 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.0 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.1 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.2 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.3 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.4 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.5 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.5 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.6 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.6 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.7 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.7 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.8 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.8 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.9 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.9 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.10 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 5.10 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.0 (32-bit)", new MemoryValues(512l, 8 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.0 (64-bit)", new MemoryValues(512l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.1 (32-bit)", new MemoryValues(512l, 8 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.1 (64-bit)", new MemoryValues(512l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Oracle Enterprise Linux 6.5 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 4.5 (32-bit)", new MemoryValues(256l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 4.6 (32-bit)", new MemoryValues(256l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 4.7 (32-bit)", new MemoryValues(256l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 4.8 (32-bit)", new MemoryValues(256l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.0 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.0 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.1 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.1 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.2 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.3 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.4 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.5 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.6 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.6 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.7 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.7 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.8 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.8 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.9 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.9 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.10 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 5.10 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.0 (32-bit)", new MemoryValues(512l, 8 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.0 (64-bit)", new MemoryValues(512l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.1 (32-bit)", new MemoryValues(512l, 8 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.1 (64-bit)", new MemoryValues(512l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.5 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 6.5 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Red Hat Enterprise Linux 7.0", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Debian GNU/Linux 5.0 (64-bit)", new MemoryValues(128l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Debian GNU/Linux 5(64-bit)", new MemoryValues(128l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Debian GNU/Linux 6(32-bit)", new MemoryValues(128l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Debian GNU/Linux 6(64-bit)", new MemoryValues(128l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Debian GNU/Linux 7(32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Debian GNU/Linux 7(64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP1 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP4 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 10 SP4 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP1 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP2 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP3 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 11 SP3 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 12 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("SUSE Linux Enterprise Server 12 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows 7 (32-bit)", new MemoryValues(1024l, 4 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows 7 (64-bit)", new MemoryValues(2 * 1024l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows 8 (32-bit)", new MemoryValues(1024l, 4 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows 8 (64-bit)", new MemoryValues(2 * 1024l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Server 2003 SP2 (32-bit)", new MemoryValues(256l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Server 2003 SP2 (64-bit)", new MemoryValues(256l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Server 2008 SP2 (32-bit)", new MemoryValues(512l, 64 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Server 2008 SP2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Server 2008 R2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Server 2008 R2 SP1 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Server 2012 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Server 2012 R2 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows Vista SP2 (32-bit)", new MemoryValues(1024l, 4 * 1024l));
-        XenServerGuestOsMemoryMap.put("Windows XP SP3 (32-bit)", new MemoryValues(256l, 4 * 1024l));
-        XenServerGuestOsMemoryMap.put("Ubuntu 10.04 (32-bit)", new MemoryValues(128l, 512l));
-        XenServerGuestOsMemoryMap.put("Ubuntu 10.04 (64-bit)", new MemoryValues(128l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Ubuntu 10.10 (32-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Ubuntu 10.10 (64-bit)", new MemoryValues(512l, 16 * 1024l));
-        XenServerGuestOsMemoryMap.put("Ubuntu 12.04 (32-bit)", new MemoryValues(512l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Ubuntu 12.04 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-        XenServerGuestOsMemoryMap.put("Ubuntu 14.04 (32-bit)", new MemoryValues(512l, 32 * 1024l));
-        XenServerGuestOsMemoryMap.put("Ubuntu 14.04 (64-bit)", new MemoryValues(512l, 128 * 1024l));
-    }
-
-    public static long getXenServerStaticMax(final String stdType, final boolean bootFromCD) {
-        final MemoryValues recommendedMaxMinMemory = XenServerGuestOsMemoryMap.get(stdType);
-        if (recommendedMaxMinMemory == null) {
-            return 0l;
-        }
-        return recommendedMaxMinMemory.getMax();
-    }
-
-    public static long getXenServerStaticMin(final String stdType, final boolean bootFromCD) {
-        final MemoryValues recommendedMaxMinMemory = XenServerGuestOsMemoryMap.get(stdType);
-        if (recommendedMaxMinMemory == null) {
-            return 0l;
-        }
-        return recommendedMaxMinMemory.getMin();
-    }
 
     public static String getProductVersion(final Host.Record record) {
         String prodVersion = record.softwareVersion.get("product_version");
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
index 5484039..ccb18a2 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
@@ -16,53 +16,8 @@
 // under the License.
 package com.cloud.hypervisor.xenserver.resource;
 
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.charset.Charset;
 
 import org.apache.commons.collections.MapUtils;
-import org.joda.time.Duration;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.Queue;
-import java.util.Random;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.TimeoutException;
-
-import javax.naming.ConfigurationException;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.apache.cloudstack.storage.to.TemplateObjectTO;
-import org.apache.cloudstack.storage.to.VolumeObjectTO;
-import org.apache.commons.io.FileUtils;
-import org.apache.log4j.Logger;
-import org.apache.xmlrpc.XmlRpcException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
 import com.cloud.agent.IAgentControl;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.Command;
@@ -156,6 +111,49 @@
 import com.xensource.xenapi.VLAN;
 import com.xensource.xenapi.VM;
 import com.xensource.xenapi.XenAPIObject;
+import org.apache.cloudstack.storage.to.TemplateObjectTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.commons.io.FileUtils;
+import org.apache.log4j.Logger;
+import org.apache.xmlrpc.XmlRpcException;
+import org.joda.time.Duration;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import javax.naming.ConfigurationException;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.Queue;
+import java.util.Random;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.TimeoutException;
 
 /**
  * CitrixResourceBase encapsulates the calls to the XenServer Xapi process to
@@ -597,6 +595,8 @@
         final Connection conn = getConnection();
         final String routerName = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
         final String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+        final String lastIp = cmd.getAccessDetail(NetworkElementCommand.NETWORK_PUB_LAST_IP);
+
         try {
             final IpAddressTO[] ips = cmd.getIpAddresses();
             final int ipsCount = ips.length;
@@ -627,8 +627,12 @@
 
                 // there is only one ip in this public vlan and removing it, so
                 // remove the nic
-                if (ipsCount == 1 && !ip.isAdd()) {
-                    removeVif = true;
+                if (org.apache.commons.lang.StringUtils.equalsIgnoreCase(lastIp, "true") && !ip.isAdd()) {
+                    final VIF correctVif = getCorrectVif(conn, router, network);
+                    // in isolated network eth2 is the default public interface. We don't want to delete it.
+                    if (correctVif != null && !correctVif.getDevice(conn).equals("2")) {
+                        removeVif = true;
+                    }
                 }
 
                 if (removeVif) {
@@ -636,6 +640,7 @@
                     // Determine the correct VIF on DomR to
                     // associate/disassociate the
                     // IP address with
+
                     final VIF correctVif = getCorrectVif(conn, router, network);
                     if (correctVif != null) {
                         network = correctVif.getNetwork(conn);
@@ -1267,10 +1272,28 @@
         // be the minumum of
         // recommended value for that template and capacity remaining on host
 
+        long recommendedMemoryMin = 0l;
+        long recommendedMemoryMax = 0l;
+
+        Map<String,String> guestOsDetails = vmSpec.getGuestOsDetails();
+
+        if(guestOsDetails != null){
+            if(guestOsDetails.containsKey("xenserver.dynamicMin")){
+                recommendedMemoryMin = Long.valueOf(guestOsDetails.get("xenserver.dynamicMin")).longValue();
+            }
+
+            if(guestOsDetails.containsKey("xenserver.dynamicMax")){
+                recommendedMemoryMax = Long.valueOf(guestOsDetails.get("xenserver.dynamicMax")).longValue();
+            }
+
+        }
+
+
+
         if (isDmcEnabled(conn, host) && vmSpec.isEnableDynamicallyScaleVm()) {
             // scaling is allowed
-            vmr.memoryStaticMin = getStaticMin(vmSpec.getOs(), vmSpec.getBootloader() == BootloaderType.CD, vmSpec.getMinRam(), vmSpec.getMaxRam());
-            vmr.memoryStaticMax = getStaticMax(vmSpec.getOs(), vmSpec.getBootloader() == BootloaderType.CD, vmSpec.getMinRam(), vmSpec.getMaxRam());
+            vmr.memoryStaticMin = getStaticMin(vmSpec.getOs(), vmSpec.getBootloader() == BootloaderType.CD, vmSpec.getMinRam(), vmSpec.getMaxRam(),recommendedMemoryMin);
+            vmr.memoryStaticMax = getStaticMax(vmSpec.getOs(), vmSpec.getBootloader() == BootloaderType.CD, vmSpec.getMinRam(), vmSpec.getMaxRam(),recommendedMemoryMax);
             vmr.memoryDynamicMin = vmSpec.getMinRam();
             vmr.memoryDynamicMax = vmSpec.getMaxRam();
             if (guestOsTypeName.toLowerCase().contains("windows")) {
@@ -2296,11 +2319,22 @@
 
     public SR getIscsiSR(final Connection conn, final String srNameLabel, final String target, String path, final String chapInitiatorUsername,
             final String chapInitiatorPassword, final boolean ignoreIntroduceException) {
-        return getIscsiSR(conn, srNameLabel, target, path, chapInitiatorUsername, chapInitiatorPassword, false, ignoreIntroduceException);
+
+        return getIscsiSR(conn, srNameLabel, target, path, chapInitiatorUsername,
+                chapInitiatorPassword, false, SRType.LVMOISCSI.toString(),
+                ignoreIntroduceException);
     }
 
     public SR getIscsiSR(final Connection conn, final String srNameLabel, final String target, String path, final String chapInitiatorUsername,
             final String chapInitiatorPassword, final boolean resignature, final boolean ignoreIntroduceException) {
+
+        return getIscsiSR(conn, srNameLabel, target, path, chapInitiatorUsername,
+                chapInitiatorPassword, resignature, SRType.LVMOISCSI.toString(),
+                ignoreIntroduceException);
+    }
+
+    public SR getIscsiSR(final Connection conn, final String srNameLabel, final String target, String path, final String chapInitiatorUsername,
+            final String chapInitiatorPassword, final boolean resignature, final  String srType, final boolean ignoreIntroduceException) {
         synchronized (srNameLabel.intern()) {
             final Map<String, String> deviceConfig = new HashMap<String, String>();
             try {
@@ -2318,9 +2352,141 @@
                 final String lunid = tmp[2].trim();
                 String scsiid = "";
 
+                //Throws an exception if SR already exists and is attached
+                checkIfIscsiSrExisits(conn, srNameLabel, target, targetiqn, lunid);
+
+                // We now know the SR is not attached to the XenServer. We probe the
+                // LUN to see if an SR was already exists on it, if so, we just
+                // attach it or else we create a brand new SR
+
+                deviceConfig.put("target", target);
+                deviceConfig.put("targetIQN", targetiqn);
+
+                if (StringUtils.isNotBlank(chapInitiatorUsername) && StringUtils.isNotBlank(chapInitiatorPassword)) {
+                    deviceConfig.put("chapuser", chapInitiatorUsername);
+                    deviceConfig.put("chappassword", chapInitiatorPassword);
+                }
+
+                final Host host = Host.getByUuid(conn, _host.getUuid());
+                final Map<String, String> smConfig = new HashMap<String, String>();
+                SR sr = null;
+                String pooluuid = null;
+
+                if (SRType.LVMOISCSI.equals(srType)) {
+                    scsiid = probeScisiId(conn, host, deviceConfig, srType, srNameLabel, lunid, smConfig);
+                    deviceConfig.put("SCSIid", scsiid);
+
+                    String result = SR.probe(conn, host, deviceConfig, srType, smConfig);
+                    if (result.indexOf("<UUID>") != -1) {
+                        pooluuid = result.substring(result.indexOf("<UUID>") + 6, result.indexOf("</UUID>")).trim();
+                    }
+                }
+
+                if (pooluuid == null || pooluuid.length() != 36) {
+                    sr = SR.create(conn, host, deviceConfig, new Long(0), srNameLabel, srNameLabel, srType, "user", true, smConfig);
+                }
+                else {
+                    if (resignature) {
+                        // We resignature the SR for managed storage if needed. At the end of this
+                        // we have an SR which is ready to be attached. For VHDoISCSI SR,
+                        // we don't need to resignature
+                        pooluuid = resignatureIscsiSr(conn, host, deviceConfig, srNameLabel, smConfig);
+                    }
+                    sr = introduceAndPlugIscsiSr(conn, pooluuid, srNameLabel, srType, smConfig, deviceConfig, ignoreIntroduceException);
+                }
+
+                sr.scan(conn);
+                return sr;
+
+            } catch (final XenAPIException e) {
+                final String msg = "Unable to create Iscsi SR  " + deviceConfig + " due to  " + e.toString();
+                s_logger.warn(msg, e);
+                throw new CloudRuntimeException(msg, e);
+            } catch (final Exception e) {
+                final String msg = "Unable to create Iscsi SR  " + deviceConfig + " due to  " + e.getMessage();
+                s_logger.warn(msg, e);
+                throw new CloudRuntimeException(msg, e);
+            }
+        }
+    }
+
+    private SR introduceAndPlugIscsiSr(Connection conn, String pooluuid, String srNameLabel, String type, Map<String, String> smConfig, Map<String, String> deviceConfig, boolean ignoreIntroduceException) throws XmlRpcException, XenAPIException {
+        SR sr = null;
+        try {
+            sr = SR.introduce(conn, pooluuid, srNameLabel, srNameLabel, type, "user", true, smConfig);
+        } catch (final XenAPIException ex) {
+            if (ignoreIntroduceException) {
+                return sr;
+            }
+
+            throw ex;
+        }
+
+        final Set<Host> setHosts = Host.getAll(conn);
+
+        if (setHosts == null) {
+            final String msg = "Unable to create iSCSI SR " + deviceConfig + " due to hosts not available.";
+
+            s_logger.warn(msg);
+
+            throw new CloudRuntimeException(msg);
+        }
+
+        for (final Host currentHost : setHosts) {
+            final PBD.Record rec = new PBD.Record();
+
+            rec.deviceConfig = deviceConfig;
+            rec.host = currentHost;
+            rec.SR = sr;
+
+            final PBD pbd = PBD.create(conn, rec);
+
+            pbd.plug(conn);
+        }
+
+        return sr;
+    }
+
+    private String resignatureIscsiSr(Connection conn, Host host, Map<String, String> deviceConfig, String srNameLabel, Map<String, String> smConfig) throws XmlRpcException, XenAPIException {
+
+        String pooluuid;
+        try {
+            SR.create(conn, host, deviceConfig, new Long(0), srNameLabel, srNameLabel, SRType.RELVMOISCSI.toString(),
+                        "user", true, smConfig);
+
+            // The successful outcome of SR.create (right above) is to throw an exception of type XenAPIException (with expected
+            // toString() text) after resigning the metadata (we indicated to perform a resign by passing in SRType.RELVMOISCSI.toString()).
+            // That being the case, if this CloudRuntimeException statement is executed, there appears to have been some kind
+            // of failure in the execution of the above SR.create (resign) method.
+            throw new CloudRuntimeException("Problem resigning the metadata");
+        }
+        catch (XenAPIException ex) {
+            String msg = ex.toString();
+
+            if (!msg.contains("successfully resigned")) {
+                throw ex;
+            }
+
+            String type = SRType.LVMOISCSI.toString();
+            String result = SR.probe(conn, host, deviceConfig, type, smConfig);
+
+            pooluuid = null;
+
+            if (result.indexOf("<UUID>") != -1) {
+                pooluuid = result.substring(result.indexOf("<UUID>") + 6, result.indexOf("</UUID>")).trim();
+            }
+
+            if (pooluuid == null || pooluuid.length() != 36) {
+                throw new CloudRuntimeException("Non-existent or invalid SR UUID");
+            }
+        }
+        return pooluuid;
+    }
+
+    private void checkIfIscsiSrExisits(Connection conn, String srNameLabel, String target, String targetiqn, String lunid) throws XenAPIException, XmlRpcException {
                 final Set<SR> srs = SR.getByNameLabel(conn, srNameLabel);
                 for (final SR sr : srs) {
-                    if (!SRType.LVMOISCSI.equals(sr.getType(conn))) {
+                    if (!(SRType.LVMOISCSI.equals(sr.getType(conn)))) {
                         continue;
                     }
                     final Set<PBD> pbds = sr.getPBDs(conn);
@@ -2346,142 +2512,46 @@
                                 + ", lunid:" + dc.get("lunid") + " for pool " + srNameLabel + "on host:" + _host.getUuid());
                     }
                 }
-                deviceConfig.put("target", target);
-                deviceConfig.put("targetIQN", targetiqn);
 
-                if (StringUtils.isNotBlank(chapInitiatorUsername) && StringUtils.isNotBlank(chapInitiatorPassword)) {
-                    deviceConfig.put("chapuser", chapInitiatorUsername);
-                    deviceConfig.put("chappassword", chapInitiatorPassword);
-                }
+    }
 
-                final Host host = Host.getByUuid(conn, _host.getUuid());
-                final Map<String, String> smConfig = new HashMap<String, String>();
-                final String type = SRType.LVMOISCSI.toString();
-                SR sr = null;
-                try {
-                    sr = SR.create(conn, host, deviceConfig, new Long(0), srNameLabel, srNameLabel, type, "user", true, smConfig);
-                } catch (final XenAPIException e) {
-                    final String errmsg = e.toString();
-                    if (errmsg.contains("SR_BACKEND_FAILURE_107")) {
-                        final String lun[] = errmsg.split("<LUN>");
-                        boolean found = false;
-                        for (int i = 1; i < lun.length; i++) {
-                            final int blunindex = lun[i].indexOf("<LUNid>") + 7;
-                            final int elunindex = lun[i].indexOf("</LUNid>");
-                            String ilun = lun[i].substring(blunindex, elunindex);
-                            ilun = ilun.trim();
-                            if (ilun.equals(lunid)) {
-                                final int bscsiindex = lun[i].indexOf("<SCSIid>") + 8;
-                                final int escsiindex = lun[i].indexOf("</SCSIid>");
-                                scsiid = lun[i].substring(bscsiindex, escsiindex);
-                                scsiid = scsiid.trim();
-                                found = true;
-                                break;
-                            }
-                        }
-                        if (!found) {
-                            final String msg = "can not find LUN " + lunid + " in " + errmsg;
-                            s_logger.warn(msg);
-                            throw new CloudRuntimeException(msg);
-                        }
-                    } else {
-                        final String msg = "Unable to create Iscsi SR  " + deviceConfig + " due to  " + e.toString();
-                        s_logger.warn(msg, e);
-                        throw new CloudRuntimeException(msg, e);
+    private String probeScisiId(Connection conn, Host host, Map<String, String> deviceConfig, String type, String srNameLabel, String lunid, Map<String, String> smConfig) throws XenAPIException, XmlRpcException {
+        SR sr = null;
+        String scsiid = null;
+
+        try {
+            sr = SR.create(conn, host, deviceConfig, new Long(0), srNameLabel, srNameLabel, type, "user", true, smConfig);
+        } catch (final XenAPIException e) {
+            final String errmsg = e.toString();
+            if (errmsg.contains("SR_BACKEND_FAILURE_107")) {
+                final String lun[] = errmsg.split("<LUN>");
+                boolean found = false;
+                for (int i = 1; i < lun.length; i++) {
+                    final int blunindex = lun[i].indexOf("<LUNid>") + 7;
+                    final int elunindex = lun[i].indexOf("</LUNid>");
+                    String ilun = lun[i].substring(blunindex, elunindex);
+                    ilun = ilun.trim();
+                    if (ilun.equals(lunid)) {
+                        final int bscsiindex = lun[i].indexOf("<SCSIid>") + 8;
+                        final int escsiindex = lun[i].indexOf("</SCSIid>");
+                        scsiid = lun[i].substring(bscsiindex, escsiindex);
+                        scsiid = scsiid.trim();
+                        found = true;
+                        break;
                     }
                 }
-
-                deviceConfig.put("SCSIid", scsiid);
-
-                String result = SR.probe(conn, host, deviceConfig, type, smConfig);
-
-                String pooluuid = null;
-
-                if (result.indexOf("<UUID>") != -1) {
-                    pooluuid = result.substring(result.indexOf("<UUID>") + 6, result.indexOf("</UUID>")).trim();
+                if (!found) {
+                    final String msg = "can not find LUN " + lunid + " in " + errmsg;
+                    s_logger.warn(msg);
+                    throw new CloudRuntimeException(msg);
                 }
-
-                if (pooluuid == null || pooluuid.length() != 36) {
-                    sr = SR.create(conn, host, deviceConfig, new Long(0), srNameLabel, srNameLabel, type, "user", true, smConfig);
-                }
-                else {
-                    if (resignature) {
-                        try {
-                            SR.create(conn, host, deviceConfig, new Long(0), srNameLabel, srNameLabel, SRType.RELVMOISCSI.toString(), "user", true, smConfig);
-
-                            // The successful outcome of SR.create (right above) is to throw an exception of type XenAPIException (with expected
-                            // toString() text) after resigning the metadata (we indicated to perform a resign by passing in SRType.RELVMOISCSI.toString()).
-                            // That being the case, if this CloudRuntimeException statement is executed, there appears to have been some kind
-                            // of failure in the execution of the above SR.create (resign) method.
-                            throw new CloudRuntimeException("Problem resigning the metadata");
-                        }
-                        catch (XenAPIException ex) {
-                            String msg = ex.toString();
-
-                            if (!msg.contains("successfully resigned")) {
-                                throw ex;
-                            }
-
-                            result = SR.probe(conn, host, deviceConfig, type, smConfig);
-
-                            pooluuid = null;
-
-                            if (result.indexOf("<UUID>") != -1) {
-                                pooluuid = result.substring(result.indexOf("<UUID>") + 6, result.indexOf("</UUID>")).trim();
-                            }
-
-                            if (pooluuid == null || pooluuid.length() != 36) {
-                                throw new CloudRuntimeException("Non-existent or invalid SR UUID");
-                            }
-                        }
-                    }
-
-                    try {
-                        sr = SR.introduce(conn, pooluuid, srNameLabel, srNameLabel, type, "user", true, smConfig);
-                    } catch (final XenAPIException ex) {
-                        if (ignoreIntroduceException) {
-                            return sr;
-                        }
-
-                        throw ex;
-                    }
-
-                    final Set<Host> setHosts = Host.getAll(conn);
-
-                    if (setHosts == null) {
-                        final String msg = "Unable to create iSCSI SR " + deviceConfig + " due to hosts not available.";
-
-                        s_logger.warn(msg);
-
-                        throw new CloudRuntimeException(msg);
-                    }
-
-                    for (final Host currentHost : setHosts) {
-                        final PBD.Record rec = new PBD.Record();
-
-                        rec.deviceConfig = deviceConfig;
-                        rec.host = currentHost;
-                        rec.SR = sr;
-
-                        final PBD pbd = PBD.create(conn, rec);
-
-                        pbd.plug(conn);
-                    }
-                }
-
-                sr.scan(conn);
-
-                return sr;
-            } catch (final XenAPIException e) {
+            } else {
                 final String msg = "Unable to create Iscsi SR  " + deviceConfig + " due to  " + e.toString();
                 s_logger.warn(msg, e);
                 throw new CloudRuntimeException(msg, e);
-            } catch (final Exception e) {
-                final String msg = "Unable to create Iscsi SR  " + deviceConfig + " due to  " + e.getMessage();
-                s_logger.warn(msg, e);
-                throw new CloudRuntimeException(msg, e);
             }
         }
+        return scsiid;
     }
 
     public SR getISOSRbyVmName(final Connection conn, final String vmName) {
@@ -3042,8 +3112,7 @@
         return ressr;
     }
 
-    private long getStaticMax(final String os, final boolean b, final long dynamicMinRam, final long dynamicMaxRam) {
-        final long recommendedValue = CitrixHelper.getXenServerStaticMax(os, b);
+    private long getStaticMax(final String os, final boolean b, final long dynamicMinRam, final long dynamicMaxRam, final long recommendedValue) {
         if (recommendedValue == 0) {
             s_logger.warn("No recommended value found for dynamic max, setting static max and dynamic max equal");
             return dynamicMaxRam;
@@ -3061,8 +3130,7 @@
         return staticMax;
     }
 
-    private long getStaticMin(final String os, final boolean b, final long dynamicMinRam, final long dynamicMaxRam) {
-        final long recommendedValue = CitrixHelper.getXenServerStaticMin(os, b);
+    private long getStaticMin(final String os, final boolean b, final long dynamicMinRam, final long dynamicMaxRam, final long recommendedValue) {
         if (recommendedValue == 0) {
             s_logger.warn("No recommended value found for dynamic min");
             return dynamicMinRam;
@@ -4090,7 +4158,8 @@
 
             return getNfsSR(conn, poolid, namelable, storageHost, mountpoint, volumedesc);
         } else {
-            return getIscsiSR(conn, iScsiName, storageHost, iScsiName, chapInitiatorUsername, chapInitiatorSecret, true);
+            return getIscsiSR(conn, iScsiName, storageHost, iScsiName,
+                    chapInitiatorUsername, chapInitiatorSecret, false, SRType.LVMOISCSI.toString(), true);
         }
     }
 
@@ -5165,7 +5234,7 @@
         //Remove the folder before creating it.
 
         try {
-            deleteLocalFolder("/tmp/"+isoPath);
+            deleteLocalFolder("/tmp/" + isoPath);
         } catch (final IOException e) {
             s_logger.debug("Failed to delete the exiting config drive for vm "+vmName+ " "+ e.getMessage());
         } catch (final Exception e) {
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
index ebf6b1e..26f7e9c 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
@@ -18,18 +18,38 @@
  */
 package com.cloud.hypervisor.xenserver.resource;
 
-import static com.cloud.utils.ReflectUtil.flattenProperties;
-import static com.google.common.collect.Lists.newArrayList;
-
-import java.io.File;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.to.DataObjectType;
+import com.cloud.agent.api.to.DataStoreTO;
+import com.cloud.agent.api.to.DataTO;
+import com.cloud.agent.api.to.DiskTO;
+import com.cloud.agent.api.to.NfsTO;
+import com.cloud.agent.api.to.S3TO;
+import com.cloud.agent.api.to.StorageFilerTO;
+import com.cloud.agent.api.to.SwiftTO;
+import com.cloud.exception.InternalErrorException;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.SRType;
+import com.cloud.storage.DataStoreRole;
+import com.cloud.storage.Storage;
+import com.cloud.storage.Storage.ImageFormat;
+import com.cloud.storage.resource.StorageProcessor;
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.storage.S3.ClientOptions;
+import com.cloud.utils.storage.encoding.DecodedDataObject;
+import com.cloud.utils.storage.encoding.DecodedDataStore;
+import com.cloud.utils.storage.encoding.Decoder;
+import com.xensource.xenapi.Connection;
+import com.xensource.xenapi.Host;
+import com.xensource.xenapi.PBD;
+import com.xensource.xenapi.SR;
+import com.xensource.xenapi.Types;
+import com.xensource.xenapi.Types.BadServerResponse;
+import com.xensource.xenapi.Types.VmPowerState;
+import com.xensource.xenapi.Types.XenAPIException;
+import com.xensource.xenapi.VBD;
+import com.xensource.xenapi.VDI;
+import com.xensource.xenapi.VM;
 import org.apache.cloudstack.storage.command.AttachAnswer;
 import org.apache.cloudstack.storage.command.AttachCommand;
 import org.apache.cloudstack.storage.command.AttachPrimaryDataStoreAnswer;
@@ -56,38 +76,17 @@
 import org.apache.log4j.Logger;
 import org.apache.xmlrpc.XmlRpcException;
 
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.to.DataObjectType;
-import com.cloud.agent.api.to.DataStoreTO;
-import com.cloud.agent.api.to.DataTO;
-import com.cloud.agent.api.to.DiskTO;
-import com.cloud.agent.api.to.NfsTO;
-import com.cloud.agent.api.to.S3TO;
-import com.cloud.agent.api.to.StorageFilerTO;
-import com.cloud.agent.api.to.SwiftTO;
-import com.cloud.exception.InternalErrorException;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.SRType;
-import com.cloud.storage.DataStoreRole;
-import com.cloud.storage.Storage;
-import com.cloud.storage.Storage.ImageFormat;
-import com.cloud.storage.resource.StorageProcessor;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.storage.encoding.DecodedDataObject;
-import com.cloud.utils.storage.encoding.DecodedDataStore;
-import com.cloud.utils.storage.encoding.Decoder;
-import com.cloud.utils.storage.S3.ClientOptions;
-import com.xensource.xenapi.Connection;
-import com.xensource.xenapi.Host;
-import com.xensource.xenapi.PBD;
-import com.xensource.xenapi.SR;
-import com.xensource.xenapi.Types;
-import com.xensource.xenapi.Types.BadServerResponse;
-import com.xensource.xenapi.Types.VmPowerState;
-import com.xensource.xenapi.Types.XenAPIException;
-import com.xensource.xenapi.VBD;
-import com.xensource.xenapi.VDI;
-import com.xensource.xenapi.VM;
+import java.io.File;
+import java.net.URI;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import static com.cloud.utils.ReflectUtil.flattenProperties;
+import static com.google.common.collect.Lists.newArrayList;
 
 public class XenServerStorageProcessor implements StorageProcessor {
     private static final Logger s_logger = Logger.getLogger(XenServerStorageProcessor.class);
@@ -974,6 +973,13 @@
 
             tmpltvdi = getVDIbyUuid(conn, srcData.getPath());
             vdi = tmpltvdi.createClone(conn, new HashMap<String, String>());
+            Long virtualSize  = vdi.getVirtualSize(conn);
+            if (volume.getSize() > virtualSize) {
+                s_logger.debug("Overriding provided template's size with new size " + volume.getSize() + " for volume: " + volume.getName());
+                vdi.resize(conn, volume.getSize());
+            } else {
+                s_logger.debug("Using templates disk size of " + virtualSize + " for volume: " + volume.getName() + " since size passed was " + volume.getSize());
+            }
             vdi.setNameLabel(conn, volume.getName());
 
             VDI.Record vdir;
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessor.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessor.java
index e45832e..6a06bef 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessor.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/Xenserver625StorageProcessor.java
@@ -18,25 +18,6 @@
  */
 package com.cloud.hypervisor.xenserver.resource;
 
-import java.io.File;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.cloudstack.storage.command.CopyCmdAnswer;
-import org.apache.cloudstack.storage.command.CopyCommand;
-import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
-import org.apache.cloudstack.storage.to.SnapshotObjectTO;
-import org.apache.cloudstack.storage.to.TemplateObjectTO;
-import org.apache.cloudstack.storage.to.VolumeObjectTO;
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-import org.apache.xmlrpc.XmlRpcException;
-
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.to.DataObjectType;
 import com.cloud.agent.api.to.DataStoreTO;
@@ -58,6 +39,24 @@
 import com.xensource.xenapi.Types.BadServerResponse;
 import com.xensource.xenapi.Types.XenAPIException;
 import com.xensource.xenapi.VDI;
+import org.apache.cloudstack.storage.command.CopyCmdAnswer;
+import org.apache.cloudstack.storage.command.CopyCommand;
+import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
+import org.apache.cloudstack.storage.to.SnapshotObjectTO;
+import org.apache.cloudstack.storage.to.TemplateObjectTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.apache.xmlrpc.XmlRpcException;
+
+import java.io.File;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
 
 public class Xenserver625StorageProcessor extends XenServerStorageProcessor {
     private static final Logger s_logger = Logger.getLogger(XenServerStorageProcessor.class);
@@ -414,7 +413,7 @@
 
         final SnapshotObjectTO snapshotTO = (SnapshotObjectTO) srcData;
         final SnapshotObjectTO snapshotOnImage = (SnapshotObjectTO) destData;
-        final String snapshotUuid = snapshotTO.getPath();
+        String snapshotUuid = snapshotTO.getPath();
 
         final String prevBackupUuid = snapshotOnImage.getParentSnapshotPath();
         final String prevSnapshotUuid = snapshotTO.getParentSnapshotPath();
@@ -422,10 +421,35 @@
         // By default assume failure
         String details = null;
         String snapshotBackupUuid = null;
-        final boolean fullbackup = Boolean.parseBoolean(options.get("fullSnapshot"));
+        boolean fullbackup = Boolean.parseBoolean(options.get("fullSnapshot"));
         Long physicalSize = null;
         try {
-            final SR primaryStorageSR = hypervisorResource.getSRByNameLabelandHost(conn, primaryStorageNameLabel);
+
+            SR primaryStorageSR = null;
+            if (primaryStore.isManaged()) {
+                fullbackup = true; // currently, managed storage only supports full backup
+
+                final Map<String, String> srcDetails = cmd.getOptions();
+
+                final String iScsiName = srcDetails.get(DiskTO.IQN);
+                final String storageHost = srcDetails.get(DiskTO.STORAGE_HOST);
+                final String chapInitiatorUsername = srcDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
+                final String chapInitiatorSecret = srcDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
+                final String srType = CitrixResourceBase.SRType.LVMOISCSI.toString();
+
+                primaryStorageSR = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName,
+                        chapInitiatorUsername, chapInitiatorSecret, false, srType, true);
+
+                final VDI srcVdi = primaryStorageSR.getVDIs(conn).iterator().next();
+                if (srcVdi == null) {
+                    throw new InternalErrorException("Could not Find a VDI on the SR: " + primaryStorageSR.getNameLabel(conn));
+                }
+                snapshotUuid = srcVdi.getUuid(conn);
+
+            } else {
+                primaryStorageSR = hypervisorResource.getSRByNameLabelandHost(conn, primaryStorageNameLabel);
+            }
+
             if (primaryStorageSR == null) {
                 throw new InternalErrorException("Could not backup snapshot because the primary Storage SR could not be created from the name label: " + primaryStorageNameLabel);
             }
@@ -433,7 +457,7 @@
             final Boolean isISCSI = IsISCSI(primaryStorageSR.getType(conn));
 
             final VDI snapshotVdi = getVDIbyUuid(conn, snapshotUuid);
-            final String snapshotPaUuid = null;
+            final String snapshotPaUuid = snapshotVdi.getUuid(conn);
 
             final URI uri = new URI(secondaryStorageUrl);
             final String secondaryStorageMountPath = uri.getHost() + ":" + uri.getPath();
@@ -496,7 +520,7 @@
                         // finalPath = folder + File.separator +
                         // snapshotBackupUuid;
                     } else {
-                        finalPath = folder + File.separator + snapshotBackupUuid;
+                        finalPath = folder + File.separator + snapshotBackupUuid + ".vhd";
                     }
 
                 } finally {
@@ -510,6 +534,10 @@
                     if (snapshotSr != null) {
                         hypervisorResource.removeSR(conn, snapshotSr);
                     }
+
+                    if (primaryStore.isManaged()) {
+                        hypervisorResource.removeSR(conn, primaryStorageSR);
+                    }
                 }
             } else {
                 final String primaryStorageSRUuid = primaryStorageSR.getUuid(conn);
@@ -529,11 +557,13 @@
                     final String[] tmp = result.split("#");
                     snapshotBackupUuid = tmp[0];
                     physicalSize = Long.parseLong(tmp[1]);
-                    finalPath = folder + File.separator + snapshotBackupUuid;
+                    finalPath = folder + File.separator + snapshotBackupUuid + ".vhd";
                 }
+
+                final String volumeUuid = snapshotTO.getVolume().getPath();
+
+                destroySnapshotOnPrimaryStorageExceptThis(conn, volumeUuid, snapshotUuid);
             }
-            final String volumeUuid = snapshotTO.getVolume().getPath();
-            destroySnapshotOnPrimaryStorageExceptThis(conn, volumeUuid, snapshotUuid);
 
             final SnapshotObjectTO newSnapshot = new SnapshotObjectTO();
             newSnapshot.setPath(finalPath);
@@ -689,12 +719,31 @@
         }
         SR srcSr = null;
         VDI destVdi = null;
+
+        SR primaryStorageSR = null;
+
         try {
-            final SR primaryStorageSR = hypervisorResource.getSRByNameLabelandHost(conn, primaryStorageNameLabel);
+            if (pool.isManaged()) {
+                Map<String,String> destDetails = cmd.getOptions2();
+
+                final String iScsiName = destDetails.get(DiskTO.IQN);
+                final String storageHost = destDetails.get(DiskTO.STORAGE_HOST);
+                final String chapInitiatorUsername = destDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
+                final String chapInitiatorSecret = destDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
+                final String srType = CitrixResourceBase.SRType.LVMOISCSI.toString();
+
+                primaryStorageSR = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName,
+                        chapInitiatorUsername, chapInitiatorSecret, false, srType, true);
+
+            } else {
+                primaryStorageSR = hypervisorResource.getSRByNameLabelandHost(conn, primaryStorageNameLabel);
+            }
+
             if (primaryStorageSR == null) {
                 throw new InternalErrorException("Could not create volume from snapshot because the primary Storage SR could not be created from the name label: "
                         + primaryStorageNameLabel);
             }
+
             final String nameLabel = "cloud-" + UUID.randomUUID().toString();
             destVdi = createVdi(conn, nameLabel, primaryStorageSR, volume.getSize());
             volumeUUID = destVdi.getUuid(conn);
@@ -734,6 +783,7 @@
             final VolumeObjectTO newVol = new VolumeObjectTO();
             newVol.setPath(volumeUUID);
             newVol.setSize(vdir.virtualSize);
+
             return new CopyCmdAnswer(newVol);
         } catch (final Types.XenAPIException e) {
             details += " due to " + e.toString();
@@ -745,6 +795,11 @@
             if (srcSr != null) {
                 hypervisorResource.skipOrRemoveSR(conn, srcSr);
             }
+
+            if (pool.isManaged()) {
+                hypervisorResource.removeSR(conn, primaryStorageSR);
+            }
+
             if (!result && destVdi != null) {
                 try {
                     destVdi.destroy(conn);
@@ -1035,11 +1090,12 @@
         }
 
         NfsTO destStore = null;
+        PrimaryDataStoreTO srcStore = null;
         URI destUri = null;
 
         try {
+            srcStore = (PrimaryDataStoreTO) snapshotObjTO.getDataStore();
             destStore = (NfsTO) templateObjTO.getDataStore();
-
             destUri = new URI(destStore.getUrl());
         } catch (final Exception ex) {
             s_logger.debug("Invalid URI", ex);
@@ -1062,8 +1118,11 @@
             final String storageHost = srcDetails.get(DiskTO.STORAGE_HOST);
             final String chapInitiatorUsername = srcDetails.get(DiskTO.CHAP_INITIATOR_USERNAME);
             final String chapInitiatorSecret = srcDetails.get(DiskTO.CHAP_INITIATOR_SECRET);
+            String srType = null;
 
-            srcSr = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName, chapInitiatorUsername, chapInitiatorSecret, true);
+            srType = CitrixResourceBase.SRType.LVMOISCSI.toString();
+
+            srcSr = hypervisorResource.getIscsiSR(conn, iScsiName, storageHost, iScsiName, chapInitiatorUsername, chapInitiatorSecret, false, srType, true);
 
             final String destNfsPath = destUri.getHost() + ":" + destUri.getPath();
             final String localDir = "/var/cloud_mount/" + UUID.nameUUIDFromBytes(destNfsPath.getBytes());
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageReceiveCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageReceiveCommandWrapper.java
index 046a425..fdcb7b5 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageReceiveCommandWrapper.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageReceiveCommandWrapper.java
@@ -31,7 +31,6 @@
 import com.cloud.agent.api.MigrateWithStorageReceiveAnswer;
 import com.cloud.agent.api.MigrateWithStorageReceiveCommand;
 import com.cloud.agent.api.to.NicTO;
-import com.cloud.agent.api.to.StorageFilerTO;
 import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.agent.api.to.VolumeTO;
 import com.cloud.hypervisor.xenserver.resource.XenServer610Resource;
@@ -56,7 +55,7 @@
     public Answer execute(final MigrateWithStorageReceiveCommand command, final XenServer610Resource xenServer610Resource) {
         final Connection connection = xenServer610Resource.getConnection();
         final VirtualMachineTO vmSpec = command.getVirtualMachine();
-        final List<Pair<VolumeTO, StorageFilerTO>> volumeToFiler = command.getVolumeToFiler();
+        final List<Pair<VolumeTO, String>> volumeToStorageUuid = command.getVolumeToStorageUuid();
 
         try {
             // In a cluster management server setup, the migrate with storage receive and send
@@ -69,10 +68,12 @@
             // storage send command execution.
             Gson gson = new Gson();
             // Get a map of all the SRs to which the vdis will be migrated.
-            final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<Pair<VolumeTO, Object>>();
-            for (final Pair<VolumeTO, StorageFilerTO> entry : volumeToFiler) {
-                final StorageFilerTO storageFiler = entry.second();
-                final SR sr = xenServer610Resource.getStorageRepository(connection, storageFiler.getUuid());
+            final List<Pair<VolumeTO, Object>> volumeToSr = new ArrayList<>();
+
+            for (final Pair<VolumeTO, String> entry : volumeToStorageUuid) {
+                final String storageUuid = entry.second();
+                final SR sr = xenServer610Resource.getStorageRepository(connection, storageUuid);
+
                 volumeToSr.add(new Pair<VolumeTO, Object>(entry.first(), sr));
             }
 
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCreateStoragePoolCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCreateStoragePoolCommandWrapper.java
index bed417f..7b2a599 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCreateStoragePoolCommandWrapper.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCreateStoragePoolCommandWrapper.java
@@ -19,6 +19,8 @@
 
 package com.cloud.hypervisor.xenserver.resource.wrapper.xenbase;
 
+import java.util.Map;
+
 import org.apache.log4j.Logger;
 
 import com.cloud.agent.api.Answer;
@@ -39,20 +41,35 @@
     public Answer execute(final CreateStoragePoolCommand command, final CitrixResourceBase citrixResourceBase) {
         final Connection conn = citrixResourceBase.getConnection();
         final StorageFilerTO pool = command.getPool();
+
         try {
-            if (pool.getType() == StoragePoolType.NetworkFilesystem) {
-                citrixResourceBase.getNfsSR(conn, Long.toString(pool.getId()), pool.getUuid(), pool.getHost(), pool.getPath(), pool.toString());
-            } else if (pool.getType() == StoragePoolType.IscsiLUN) {
-                citrixResourceBase.getIscsiSR(conn, pool.getUuid(), pool.getHost(), pool.getPath(), null, null, false);
-            } else if (pool.getType() == StoragePoolType.PreSetup) {
-            } else {
-                return new Answer(command, false, "The pool type: " + pool.getType().name() + " is not supported.");
+            if (command.getCreateDatastore()) {
+                Map<String, String> details = command.getDetails();
+
+                String srNameLabel = details.get(CreateStoragePoolCommand.DATASTORE_NAME);
+                String storageHost = details.get(CreateStoragePoolCommand.STORAGE_HOST);
+                String iqn = details.get(CreateStoragePoolCommand.IQN);
+
+                citrixResourceBase.getIscsiSR(conn, srNameLabel, storageHost, iqn, null, null, false);
             }
+            else {
+                if (pool.getType() == StoragePoolType.NetworkFilesystem) {
+                    citrixResourceBase.getNfsSR(conn, Long.toString(pool.getId()), pool.getUuid(), pool.getHost(), pool.getPath(), pool.toString());
+                } else if (pool.getType() == StoragePoolType.IscsiLUN) {
+                    citrixResourceBase.getIscsiSR(conn, pool.getUuid(), pool.getHost(), pool.getPath(), null, null, false);
+                } else if (pool.getType() == StoragePoolType.PreSetup) {
+                } else {
+                    return new Answer(command, false, "The pool type: " + pool.getType().name() + " is not supported.");
+                }
+            }
+
             return new Answer(command, true, "success");
         } catch (final Exception e) {
             final String msg = "Catch Exception " + e.getClass().getName() + ", create StoragePool failed due to " + e.toString() + " on host:"
                     + citrixResourceBase.getHost().getUuid() + " pool: " + pool.getHost() + pool.getPath();
+
             s_logger.warn(msg, e);
+
             return new Answer(command, false, msg);
         }
     }
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixDeleteStoragePoolCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixDeleteStoragePoolCommandWrapper.java
index a9ae680..c93dd90 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixDeleteStoragePoolCommandWrapper.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixDeleteStoragePoolCommandWrapper.java
@@ -19,6 +19,8 @@
 
 package com.cloud.hypervisor.xenserver.resource.wrapper.xenbase;
 
+import java.util.Map;
+
 import org.apache.log4j.Logger;
 
 import com.cloud.agent.api.Answer;
@@ -32,22 +34,40 @@
 
 @ResourceWrapper(handles =  DeleteStoragePoolCommand.class)
 public final class CitrixDeleteStoragePoolCommandWrapper extends CommandWrapper<DeleteStoragePoolCommand, Answer, CitrixResourceBase> {
-
     private static final Logger s_logger = Logger.getLogger(CitrixDeleteStoragePoolCommandWrapper.class);
 
     @Override
     public Answer execute(final DeleteStoragePoolCommand command, final CitrixResourceBase citrixResourceBase) {
         final Connection conn = citrixResourceBase.getConnection();
         final StorageFilerTO poolTO = command.getPool();
+
         try {
-            final SR sr = citrixResourceBase.getStorageRepository(conn, poolTO.getUuid());
+            final SR sr;
+
+            // getRemoveDatastore being true indicates we are using managed storage and need to pull the SR name out of a Map
+            // instead of pulling it out using getUuid of the StorageFilerTO instance.
+            if (command.getRemoveDatastore()) {
+                Map<String, String> details = command.getDetails();
+
+                String srNameLabel = details.get(DeleteStoragePoolCommand.DATASTORE_NAME);
+
+                sr = citrixResourceBase.getStorageRepository(conn, srNameLabel);
+            }
+            else {
+                sr = citrixResourceBase.getStorageRepository(conn, poolTO.getUuid());
+            }
+
             citrixResourceBase.removeSR(conn, sr);
+
             final Answer answer = new Answer(command, true, "success");
+
             return answer;
         } catch (final Exception e) {
-            final String msg = "DeleteStoragePoolCommand XenAPIException:" + e.getMessage() + " host:" + citrixResourceBase.getHost().getUuid() + " pool: " + poolTO.getHost()
-                    + poolTO.getPath();
-            s_logger.warn(msg, e);
+            final String msg = "DeleteStoragePoolCommand XenAPIException:" + e.getMessage() + " host:" + citrixResourceBase.getHost().getUuid() +
+                    " pool: " + poolTO.getHost() + poolTO.getPath();
+
+            s_logger.error(msg, e);
+
             return new Answer(command, false, msg);
         }
     }
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixResizeVolumeCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixResizeVolumeCommandWrapper.java
old mode 100644
new mode 100755
index b8e0f56..a4a19dd
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixResizeVolumeCommandWrapper.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixResizeVolumeCommandWrapper.java
@@ -48,6 +48,11 @@
         long newSize = command.getNewSize();
 
         try {
+
+            if (command.getCurrentSize() >= newSize) {
+                s_logger.info("No need to resize volume: " + volId +", current size " + command.getCurrentSize() + " is same as  new size " + newSize);
+                return new ResizeVolumeAnswer(command, true, "success", newSize);
+            }
             if (command.isManaged()) {
                 resizeSr(conn, command);
             }
@@ -77,7 +82,7 @@
             Set<PBD> allPbds = new HashSet<>();
 
             for (SR sr : srs) {
-                if (!CitrixResourceBase.SRType.LVMOISCSI.equals(sr.getType(conn))) {
+                if (!(CitrixResourceBase.SRType.LVMOISCSI.equals(sr.getType(conn))))  {
                     continue;
                 }
 
diff --git a/plugins/hypervisors/xenserver/src/org/apache/cloudstack/storage/motion/XenServerStorageMotionStrategy.java b/plugins/hypervisors/xenserver/src/org/apache/cloudstack/storage/motion/XenServerStorageMotionStrategy.java
index 7de96b0..2409b6e 100644
--- a/plugins/hypervisors/xenserver/src/org/apache/cloudstack/storage/motion/XenServerStorageMotionStrategy.java
+++ b/plugins/hypervisors/xenserver/src/org/apache/cloudstack/storage/motion/XenServerStorageMotionStrategy.java
@@ -19,6 +19,7 @@
 package org.apache.cloudstack.storage.motion;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -28,6 +29,7 @@
 import org.apache.cloudstack.engine.subsystem.api.storage.DataMotionStrategy;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
 import org.apache.cloudstack.engine.subsystem.api.storage.StrategyPriority;
 import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
 import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
@@ -39,6 +41,8 @@
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.CreateStoragePoolCommand;
+import com.cloud.agent.api.DeleteStoragePoolCommand;
 import com.cloud.agent.api.MigrateWithStorageAnswer;
 import com.cloud.agent.api.MigrateWithStorageCommand;
 import com.cloud.agent.api.MigrateWithStorageCompleteAnswer;
@@ -56,9 +60,12 @@
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.storage.StoragePool;
 import com.cloud.storage.VolumeVO;
+import com.cloud.storage.VolumeDetailVO;
 import com.cloud.storage.dao.VolumeDao;
+import com.cloud.storage.dao.VolumeDetailsDao;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.Pair;
+import com.cloud.utils.StringUtils;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.dao.VMInstanceDao;
 
@@ -74,6 +81,8 @@
     @Inject
     PrimaryDataStoreDao storagePoolDao;
     @Inject
+    private VolumeDetailsDao volumeDetailsDao;
+    @Inject
     VMInstanceDao instanceDao;
 
     @Override
@@ -120,25 +129,175 @@
         callback.complete(result);
     }
 
+    private String getBasicIqn(long volumeId) {
+        VolumeDetailVO volumeDetail = volumeDetailsDao.findDetail(volumeId, PrimaryDataStoreDriver.BASIC_IQN);
+
+        return volumeDetail.getValue();
+    }
+
+    /**
+     * Tell the underlying storage plug-in to create a new volume, put it in the VAG of the destination cluster, and
+     * send a command to the destination cluster to create an SR and to attach to the SR from all hosts in the cluster.
+     */
+    private String handleManagedVolumePreMigration(VolumeInfo volumeInfo, StoragePool storagePool, Host destHost) {
+        final PrimaryDataStoreDriver pdsd = (PrimaryDataStoreDriver)volumeInfo.getDataStore().getDriver();
+
+        VolumeDetailVO volumeDetailVo = new VolumeDetailVO(volumeInfo.getId(), PrimaryDataStoreDriver.BASIC_CREATE, Boolean.TRUE.toString(), false);
+
+        volumeDetailsDao.persist(volumeDetailVo);
+
+        pdsd.createAsync(volumeInfo.getDataStore(), volumeInfo, null);
+
+        volumeDetailVo = new VolumeDetailVO(volumeInfo.getId(), PrimaryDataStoreDriver.BASIC_GRANT_ACCESS, Boolean.TRUE.toString(), false);
+
+        volumeDetailsDao.persist(volumeDetailVo);
+
+        pdsd.grantAccess(volumeInfo, destHost, volumeInfo.getDataStore());
+
+        final Map<String, String> details = new HashMap<>();
+
+        final String iqn = getBasicIqn(volumeInfo.getId());
+
+        details.put(CreateStoragePoolCommand.DATASTORE_NAME, iqn);
+
+        details.put(CreateStoragePoolCommand.IQN, iqn);
+
+        details.put(CreateStoragePoolCommand.STORAGE_HOST, storagePool.getHostAddress());
+
+        details.put(CreateStoragePoolCommand.STORAGE_PORT, String.valueOf(storagePool.getPort()));
+
+        final CreateStoragePoolCommand cmd = new CreateStoragePoolCommand(true, storagePool);
+
+        cmd.setDetails(details);
+        cmd.setCreateDatastore(true);
+
+        final Answer answer = agentMgr.easySend(destHost.getId(), cmd);
+
+        if (answer == null || !answer.getResult()) {
+            String errMsg = "Error interacting with host (related to CreateStoragePoolCommand)" +
+                    (StringUtils.isNotBlank(answer.getDetails()) ? ": " + answer.getDetails() : "");
+
+            s_logger.error(errMsg);
+
+            throw new CloudRuntimeException(errMsg);
+        }
+
+        return iqn;
+    }
+
+    private void handleManagedVolumePostMigration(VolumeInfo volumeInfo, Host srcHost, VolumeObjectTO volumeTO) {
+        final Map<String, String> details = new HashMap<>();
+
+        details.put(DeleteStoragePoolCommand.DATASTORE_NAME, volumeInfo.get_iScsiName());
+
+        final DeleteStoragePoolCommand cmd = new DeleteStoragePoolCommand();
+
+        cmd.setDetails(details);
+        cmd.setRemoveDatastore(true);
+
+        final Answer answer = agentMgr.easySend(srcHost.getId(), cmd);
+
+        if (answer == null || !answer.getResult()) {
+            String errMsg = "Error interacting with host (related to DeleteStoragePoolCommand)" +
+                    (StringUtils.isNotBlank(answer.getDetails()) ? ": " + answer.getDetails() : "");
+
+            s_logger.error(errMsg);
+
+            throw new CloudRuntimeException(errMsg);
+        }
+
+        final PrimaryDataStoreDriver pdsd = (PrimaryDataStoreDriver)volumeInfo.getDataStore().getDriver();
+
+        pdsd.revokeAccess(volumeInfo, srcHost, volumeInfo.getDataStore());
+
+        VolumeDetailVO volumeDetailVo = new VolumeDetailVO(volumeInfo.getId(), PrimaryDataStoreDriver.BASIC_DELETE, Boolean.TRUE.toString(), false);
+
+        volumeDetailsDao.persist(volumeDetailVo);
+
+        pdsd.deleteAsync(volumeInfo.getDataStore(), volumeInfo, null);
+
+        VolumeVO volumeVO = volDao.findById(volumeInfo.getId());
+
+        volumeVO.setPath(volumeTO.getPath());
+
+        volDao.update(volumeVO.getId(), volumeVO);
+    }
+
+    private void handleManagedVolumesAfterFailedMigration(Map<VolumeInfo, DataStore> volumeToPool, Host destHost) {
+        for (Map.Entry<VolumeInfo, DataStore> entry : volumeToPool.entrySet()) {
+            VolumeInfo volumeInfo = entry.getKey();
+            StoragePool storagePool = storagePoolDao.findById(volumeInfo.getPoolId());
+
+            if (storagePool.isManaged()) {
+                final Map<String, String> details = new HashMap<>();
+
+                details.put(DeleteStoragePoolCommand.DATASTORE_NAME, getBasicIqn(volumeInfo.getId()));
+
+                final DeleteStoragePoolCommand cmd = new DeleteStoragePoolCommand();
+
+                cmd.setDetails(details);
+                cmd.setRemoveDatastore(true);
+
+                final Answer answer = agentMgr.easySend(destHost.getId(), cmd);
+
+                if (answer == null || !answer.getResult()) {
+                    String errMsg = "Error interacting with host (related to handleManagedVolumesAfterFailedMigration)" +
+                            (StringUtils.isNotBlank(answer.getDetails()) ? ": " + answer.getDetails() : "");
+
+                    s_logger.error(errMsg);
+
+                    // no need to throw an exception here as the calling code is responsible for doing so
+                    // regardless of the success or lack thereof concerning this method
+                    return;
+                }
+
+                final PrimaryDataStoreDriver pdsd = (PrimaryDataStoreDriver)volumeInfo.getDataStore().getDriver();
+
+                VolumeDetailVO volumeDetailVo = new VolumeDetailVO(volumeInfo.getId(), PrimaryDataStoreDriver.BASIC_REVOKE_ACCESS, Boolean.TRUE.toString(), false);
+
+                volumeDetailsDao.persist(volumeDetailVo);
+
+                pdsd.revokeAccess(volumeInfo, destHost, volumeInfo.getDataStore());
+
+                volumeDetailVo = new VolumeDetailVO(volumeInfo.getId(), PrimaryDataStoreDriver.BASIC_DELETE_FAILURE, Boolean.TRUE.toString(), false);
+
+                volumeDetailsDao.persist(volumeDetailVo);
+
+                pdsd.deleteAsync(volumeInfo.getDataStore(), volumeInfo, null);
+            }
+        }
+    }
+
     private Answer migrateVmWithVolumesAcrossCluster(VMInstanceVO vm, VirtualMachineTO to, Host srcHost, Host destHost, Map<VolumeInfo, DataStore> volumeToPool)
             throws AgentUnavailableException {
+        // Initiate migration of a virtual machine with its volumes.
 
-        // Initiate migration of a virtual machine with it's volumes.
         try {
-            List<Pair<VolumeTO, StorageFilerTO>> volumeToFilerto = new ArrayList<Pair<VolumeTO, StorageFilerTO>>();
+            List<Pair<VolumeTO, String>> volumeToStorageUuid = new ArrayList<>();
+
             for (Map.Entry<VolumeInfo, DataStore> entry : volumeToPool.entrySet()) {
-                VolumeInfo volume = entry.getKey();
-                VolumeTO volumeTo = new VolumeTO(volume, storagePoolDao.findById(volume.getPoolId()));
-                StorageFilerTO filerTo = new StorageFilerTO((StoragePool)entry.getValue());
-                volumeToFilerto.add(new Pair<VolumeTO, StorageFilerTO>(volumeTo, filerTo));
+                VolumeInfo volumeInfo = entry.getKey();
+                StoragePool storagePool = storagePoolDao.findById(volumeInfo.getPoolId());
+                VolumeTO volumeTo = new VolumeTO(volumeInfo, storagePool);
+
+                if (storagePool.isManaged()) {
+                    String iqn = handleManagedVolumePreMigration(volumeInfo, storagePool, destHost);
+
+                    volumeToStorageUuid.add(new Pair<>(volumeTo, iqn));
+                }
+                else {
+                    volumeToStorageUuid.add(new Pair<>(volumeTo, ((StoragePool)entry.getValue()).getPath()));
+                }
             }
 
             // Migration across cluster needs to be done in three phases.
             // 1. Send a migrate receive command to the destination host so that it is ready to receive a vm.
             // 2. Send a migrate send command to the source host. This actually migrates the vm to the destination.
             // 3. Complete the process. Update the volume details.
-            MigrateWithStorageReceiveCommand receiveCmd = new MigrateWithStorageReceiveCommand(to, volumeToFilerto);
+
+            MigrateWithStorageReceiveCommand receiveCmd = new MigrateWithStorageReceiveCommand(to, volumeToStorageUuid);
             MigrateWithStorageReceiveAnswer receiveAnswer = (MigrateWithStorageReceiveAnswer)agentMgr.send(destHost.getId(), receiveCmd);
+
             if (receiveAnswer == null) {
                 s_logger.error("Migration with storage of vm " + vm + " to host " + destHost + " failed.");
                 throw new CloudRuntimeException("Error while migrating the vm " + vm + " to host " + destHost);
@@ -150,16 +309,22 @@
             MigrateWithStorageSendCommand sendCmd =
                     new MigrateWithStorageSendCommand(to, receiveAnswer.getVolumeToSr(), receiveAnswer.getNicToNetwork(), receiveAnswer.getToken());
             MigrateWithStorageSendAnswer sendAnswer = (MigrateWithStorageSendAnswer)agentMgr.send(srcHost.getId(), sendCmd);
+
             if (sendAnswer == null) {
+                handleManagedVolumesAfterFailedMigration(volumeToPool, destHost);
+
                 s_logger.error("Migration with storage of vm " + vm + " to host " + destHost + " failed.");
                 throw new CloudRuntimeException("Error while migrating the vm " + vm + " to host " + destHost);
             } else if (!sendAnswer.getResult()) {
+                handleManagedVolumesAfterFailedMigration(volumeToPool, destHost);
+
                 s_logger.error("Migration with storage of vm " + vm + " failed. Details: " + sendAnswer.getDetails());
                 throw new CloudRuntimeException("Error while migrating the vm " + vm + " to host " + destHost);
             }
 
             MigrateWithStorageCompleteCommand command = new MigrateWithStorageCompleteCommand(to);
             MigrateWithStorageCompleteAnswer answer = (MigrateWithStorageCompleteAnswer)agentMgr.send(destHost.getId(), command);
+
             if (answer == null) {
                 s_logger.error("Migration with storage of vm " + vm + " failed.");
                 throw new CloudRuntimeException("Error while migrating the vm " + vm + " to host " + destHost);
@@ -168,7 +333,7 @@
                 throw new CloudRuntimeException("Error while migrating the vm " + vm + " to host " + destHost);
             } else {
                 // Update the volume details after migration.
-                updateVolumePathsAfterMigration(volumeToPool, answer.getVolumeTos());
+                updateVolumePathsAfterMigration(volumeToPool, answer.getVolumeTos(), srcHost);
             }
 
             return answer;
@@ -181,7 +346,7 @@
     private Answer migrateVmWithVolumesWithinCluster(VMInstanceVO vm, VirtualMachineTO to, Host srcHost, Host destHost, Map<VolumeInfo, DataStore> volumeToPool)
             throws AgentUnavailableException {
 
-        // Initiate migration of a virtual machine with it's volumes.
+        // Initiate migration of a virtual machine with its volumes.
         try {
             List<Pair<VolumeTO, StorageFilerTO>> volumeToFilerto = new ArrayList<Pair<VolumeTO, StorageFilerTO>>();
             for (Map.Entry<VolumeInfo, DataStore> entry : volumeToPool.entrySet()) {
@@ -201,7 +366,7 @@
                 throw new CloudRuntimeException("Error while migrating the vm " + vm + " to host " + destHost + ". " + answer.getDetails());
             } else {
                 // Update the volume details after migration.
-                updateVolumePathsAfterMigration(volumeToPool, answer.getVolumeTos());
+                updateVolumePathsAfterMigration(volumeToPool, answer.getVolumeTos(), srcHost);
             }
 
             return answer;
@@ -211,28 +376,39 @@
         }
     }
 
-    private void updateVolumePathsAfterMigration(Map<VolumeInfo, DataStore> volumeToPool, List<VolumeObjectTO> volumeTos) {
+    private void updateVolumePathsAfterMigration(Map<VolumeInfo, DataStore> volumeToPool, List<VolumeObjectTO> volumeTos, Host srcHost) {
         for (Map.Entry<VolumeInfo, DataStore> entry : volumeToPool.entrySet()) {
+            VolumeInfo volumeInfo = entry.getKey();
+            StoragePool storagePool = (StoragePool)entry.getValue();
+
             boolean updated = false;
-            VolumeInfo volume = entry.getKey();
-            StoragePool pool = (StoragePool)entry.getValue();
+
             for (VolumeObjectTO volumeTo : volumeTos) {
-                if (volume.getId() == volumeTo.getId()) {
-                    VolumeVO volumeVO = volDao.findById(volume.getId());
-                    Long oldPoolId = volumeVO.getPoolId();
-                    volumeVO.setPath(volumeTo.getPath());
-                    volumeVO.setFolder(pool.getPath());
-                    volumeVO.setPodId(pool.getPodId());
-                    volumeVO.setPoolId(pool.getId());
-                    volumeVO.setLastPoolId(oldPoolId);
-                    volDao.update(volume.getId(), volumeVO);
+                if (volumeInfo.getId() == volumeTo.getId()) {
+                    if (storagePool.isManaged()) {
+                        handleManagedVolumePostMigration(volumeInfo, srcHost, volumeTo);
+                    }
+                    else {
+                        VolumeVO volumeVO = volDao.findById(volumeInfo.getId());
+                        Long oldPoolId = volumeVO.getPoolId();
+
+                        volumeVO.setPath(volumeTo.getPath());
+                        volumeVO.setFolder(storagePool.getPath());
+                        volumeVO.setPodId(storagePool.getPodId());
+                        volumeVO.setPoolId(storagePool.getId());
+                        volumeVO.setLastPoolId(oldPoolId);
+
+                        volDao.update(volumeInfo.getId(), volumeVO);
+                    }
+
                     updated = true;
+
                     break;
                 }
             }
 
             if (!updated) {
-                s_logger.error("Volume path wasn't updated for volume " + volume + " after it was migrated.");
+                s_logger.error("The volume path wasn't updated for volume '" + volumeInfo + "' after it was migrated.");
             }
         }
     }
diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixRequestWrapperTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixRequestWrapperTest.java
old mode 100644
new mode 100755
index 66ae2ec..c8d729a
--- a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixRequestWrapperTest.java
+++ b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixRequestWrapperTest.java
@@ -436,7 +436,6 @@
         final Answer answer = wrapper.execute(resizeCommand, citrixResourceBase);
         verify(citrixResourceBase, times(1)).getConnection();
 
-        assertFalse(answer.getResult());
     }
 
     @Test
@@ -743,6 +742,7 @@
         final XsHost xsHost = Mockito.mock(XsHost.class);
 
         final String guestIp = "127.0.0.1";
+        final String guestIp6 = "2001:db8::cad:40ff:fefd:75c4";
         final String guestMac = "00:00:00:00";
         final String vmName = "Test";
         final Long vmId = 1l;
@@ -752,7 +752,7 @@
         final IpPortAndProto[] egressRuleSet = new IpPortAndProto[]{Mockito.mock(IpPortAndProto.class)};
         final List<String> secIps = new Vector<String>();
 
-        final SecurityGroupRulesCmd sshCommand = new SecurityGroupRulesCmd(guestIp, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
+        final SecurityGroupRulesCmd sshCommand = new SecurityGroupRulesCmd(guestIp, guestIp6, guestMac, vmName, vmId, signature, seqNum, ingressRuleSet, egressRuleSet, secIps);
 
         final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance();
         assertNotNull(wrapper);
diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java
index f294af1..8fa68f5 100644
--- a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java
+++ b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java
@@ -204,9 +204,9 @@
         final StorageFilerTO storage1 = Mockito.mock(StorageFilerTO.class);
         final StorageFilerTO storage2 = Mockito.mock(StorageFilerTO.class);
 
-        final List<Pair<VolumeTO, StorageFilerTO>> volumeToFiler = new ArrayList<Pair<VolumeTO, StorageFilerTO>>();
-        volumeToFiler.add(new Pair<VolumeTO, StorageFilerTO>(vol1, storage1));
-        volumeToFiler.add(new Pair<VolumeTO, StorageFilerTO>(vol2, storage2));
+        final List<Pair<VolumeTO, String>> volumeToFiler = new ArrayList<>();
+        volumeToFiler.add(new Pair<>(vol1, storage1.getPath()));
+        volumeToFiler.add(new Pair<>(vol2, storage2.getPath()));
 
         final NicTO nicTO1 = Mockito.mock(NicTO.class);
         final NicTO nicTO2 = Mockito.mock(NicTO.class);
diff --git a/plugins/metrics/pom.xml b/plugins/metrics/pom.xml
index 9955351..a65f88f 100644
--- a/plugins/metrics/pom.xml
+++ b/plugins/metrics/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/network-elements/bigswitch/pom.xml b/plugins/network-elements/bigswitch/pom.xml
index 42509b3..2e80001 100644
--- a/plugins/network-elements/bigswitch/pom.xml
+++ b/plugins/network-elements/bigswitch/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>
diff --git a/plugins/network-elements/bigswitch/resources/META-INF/cloudstack/bigswitch/spring-bigswitch-context.xml b/plugins/network-elements/bigswitch/resources/META-INF/cloudstack/bigswitch/spring-bigswitch-context.xml
index ea3d3aa..81452dc 100644
--- a/plugins/network-elements/bigswitch/resources/META-INF/cloudstack/bigswitch/spring-bigswitch-context.xml
+++ b/plugins/network-elements/bigswitch/resources/META-INF/cloudstack/bigswitch/spring-bigswitch-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="bigSwitchBcfDaoImpl" class="com.cloud.network.dao.BigSwitchBcfDaoImpl" />
diff --git a/plugins/network-elements/brocade-vcs/pom.xml b/plugins/network-elements/brocade-vcs/pom.xml
index 60d09f0..bb737cd 100644
--- a/plugins/network-elements/brocade-vcs/pom.xml
+++ b/plugins/network-elements/brocade-vcs/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.cloudstack</groupId>
 		<artifactId>cloudstack-plugins</artifactId>
-		<version>4.9.4.0-SNAPSHOT</version>
+		<version>4.10.1.0-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/plugins/network-elements/brocade-vcs/resources/META-INF/cloudstack/vcs/spring-vcs-context.xml b/plugins/network-elements/brocade-vcs/resources/META-INF/cloudstack/vcs/spring-vcs-context.xml
index 4c2b419..1773c83 100644
--- a/plugins/network-elements/brocade-vcs/resources/META-INF/cloudstack/vcs/spring-vcs-context.xml
+++ b/plugins/network-elements/brocade-vcs/resources/META-INF/cloudstack/vcs/spring-vcs-context.xml
@@ -12,10 +12,10 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 	xmlns:aop="http://www.springframework.org/schema/aop"
 	xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 	<bean id="brocadeVcsDaoImpl" class="com.cloud.network.dao.BrocadeVcsDaoImpl" />
 	<bean id="brocadeVcsNetworkVlanMappingDaoImpl" class="com.cloud.network.dao.BrocadeVcsNetworkVlanMappingDaoImpl" />
diff --git a/plugins/network-elements/cisco-vnmc/pom.xml b/plugins/network-elements/cisco-vnmc/pom.xml
index 42acce3..9fdf36d 100644
--- a/plugins/network-elements/cisco-vnmc/pom.xml
+++ b/plugins/network-elements/cisco-vnmc/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/network-elements/cisco-vnmc/resources/META-INF/cloudstack/cisco-vnmc/spring-cisco-vnmc-context.xml b/plugins/network-elements/cisco-vnmc/resources/META-INF/cloudstack/cisco-vnmc/spring-cisco-vnmc-context.xml
index 62e2ef0..916a3d5 100644
--- a/plugins/network-elements/cisco-vnmc/resources/META-INF/cloudstack/cisco-vnmc/spring-cisco-vnmc-context.xml
+++ b/plugins/network-elements/cisco-vnmc/resources/META-INF/cloudstack/cisco-vnmc/spring-cisco-vnmc-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <!--
diff --git a/plugins/network-elements/dns-notifier/pom.xml b/plugins/network-elements/dns-notifier/pom.xml
index 06570a7..92fd326 100644
--- a/plugins/network-elements/dns-notifier/pom.xml
+++ b/plugins/network-elements/dns-notifier/pom.xml
@@ -22,7 +22,7 @@
   <parent>

     <groupId>org.apache.cloudstack</groupId>

     <artifactId>cloudstack-plugins</artifactId>

-    <version>4.9.4.0-SNAPSHOT</version>

+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>

   </parent>

   <artifactId>cloud-plugin-example-dns-notifier</artifactId>

diff --git a/plugins/network-elements/elastic-loadbalancer/pom.xml b/plugins/network-elements/elastic-loadbalancer/pom.xml
index 5a7cc81..577f60d 100644
--- a/plugins/network-elements/elastic-loadbalancer/pom.xml
+++ b/plugins/network-elements/elastic-loadbalancer/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/network-elements/elastic-loadbalancer/resources/META-INF/cloudstack/elb/spring-elb-context.xml b/plugins/network-elements/elastic-loadbalancer/resources/META-INF/cloudstack/elb/spring-elb-context.xml
index 247153c..8903bc8 100644
--- a/plugins/network-elements/elastic-loadbalancer/resources/META-INF/cloudstack/elb/spring-elb-context.xml
+++ b/plugins/network-elements/elastic-loadbalancer/resources/META-INF/cloudstack/elb/spring-elb-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
   <bean id="elasticLoadBalancerManagerImpl" class="com.cloud.network.lb.ElasticLoadBalancerManagerImpl" />
diff --git a/plugins/network-elements/f5/pom.xml b/plugins/network-elements/f5/pom.xml
index ed6bd30..8b6c84b 100644
--- a/plugins/network-elements/f5/pom.xml
+++ b/plugins/network-elements/f5/pom.xml
@@ -23,14 +23,18 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
     <dependency>
+      <groupId>org.apache.axis</groupId>
+      <artifactId>axis-jaxrpc</artifactId>
+    </dependency>
+    <dependency>
       <groupId>com.cloud.com.f5</groupId>
       <artifactId>icontrol</artifactId>
-      <version>1.0</version>
+      <version>12.1</version>
     </dependency>
     <dependency>
       <groupId>org.apache.axis</groupId>
diff --git a/plugins/network-elements/f5/resources/META-INF/cloudstack/f5/spring-f5-context.xml b/plugins/network-elements/f5/resources/META-INF/cloudstack/f5/spring-f5-context.xml
index 6472d68..10af462 100644
--- a/plugins/network-elements/f5/resources/META-INF/cloudstack/f5/spring-f5-context.xml
+++ b/plugins/network-elements/f5/resources/META-INF/cloudstack/f5/spring-f5-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="F5BigIP" class="com.cloud.network.element.F5ExternalLoadBalancerElement">
diff --git a/plugins/network-elements/globodns/pom.xml b/plugins/network-elements/globodns/pom.xml
index c4b036a..c783edf 100644
--- a/plugins/network-elements/globodns/pom.xml
+++ b/plugins/network-elements/globodns/pom.xml
@@ -24,14 +24,14 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
     <dependency>
       <groupId>com.globo.globodns</groupId>
       <artifactId>globodns-client</artifactId>
-      <version>0.0.20</version>
+      <version>0.0.22</version>
     </dependency>
   </dependencies>
 </project>
diff --git a/plugins/network-elements/globodns/resources/META-INF/cloudstack/globodns/spring-globodns-context.xml b/plugins/network-elements/globodns/resources/META-INF/cloudstack/globodns/spring-globodns-context.xml
index 7e2e809..45aabad 100644
--- a/plugins/network-elements/globodns/resources/META-INF/cloudstack/globodns/spring-globodns-context.xml
+++ b/plugins/network-elements/globodns/resources/META-INF/cloudstack/globodns/spring-globodns-context.xml
@@ -12,10 +12,10 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 	xmlns:aop="http://www.springframework.org/schema/aop"
 	xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 	<context:component-scan base-package="com.globo.globodns.cloudstack" />
 
diff --git a/plugins/network-elements/globodns/test/com/globo/globodns/cloudstack/resource/GloboDnsResourceTest.java b/plugins/network-elements/globodns/test/com/globo/globodns/cloudstack/resource/GloboDnsResourceTest.java
index 1f04a2a..d89d7e7 100644
--- a/plugins/network-elements/globodns/test/com/globo/globodns/cloudstack/resource/GloboDnsResourceTest.java
+++ b/plugins/network-elements/globodns/test/com/globo/globodns/cloudstack/resource/GloboDnsResourceTest.java
@@ -37,13 +37,9 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 import org.mockito.InOrder;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.annotation.DirtiesContext.ClassMode;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.AnnotationConfigContextLoader;
 
 import com.cloud.agent.api.Answer;
 import com.globo.globodns.client.GloboDns;
@@ -57,8 +53,6 @@
 import com.globo.globodns.cloudstack.commands.RemoveDomainCommand;
 import com.globo.globodns.cloudstack.commands.RemoveRecordCommand;
 
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
 @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
 public class GloboDnsResourceTest {
 
@@ -75,7 +69,6 @@
 
     @Before
     public void setUp() throws Exception {
-        // ComponentContext.initComponentsLifeCycle();
 
         String name = "GloboDNS";
         Map<String, Object> params = new HashMap<String, Object>();
diff --git a/plugins/network-elements/internal-loadbalancer/pom.xml b/plugins/network-elements/internal-loadbalancer/pom.xml
index c7647cf..257ceff 100644
--- a/plugins/network-elements/internal-loadbalancer/pom.xml
+++ b/plugins/network-elements/internal-loadbalancer/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <build>
diff --git a/plugins/network-elements/internal-loadbalancer/resources/META-INF/cloudstack/core/spring-internallb-core-context.xml b/plugins/network-elements/internal-loadbalancer/resources/META-INF/cloudstack/core/spring-internallb-core-context.xml
index c038879..84b2dc3 100644
--- a/plugins/network-elements/internal-loadbalancer/resources/META-INF/cloudstack/core/spring-internallb-core-context.xml
+++ b/plugins/network-elements/internal-loadbalancer/resources/META-INF/cloudstack/core/spring-internallb-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="InternalLbVm"
diff --git a/plugins/network-elements/internal-loadbalancer/test/resources/lb_element.xml b/plugins/network-elements/internal-loadbalancer/test/resources/lb_element.xml
index 5dec9c3..9ed5a31 100644
--- a/plugins/network-elements/internal-loadbalancer/test/resources/lb_element.xml
+++ b/plugins/network-elements/internal-loadbalancer/test/resources/lb_element.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
      <context:annotation-config />
 
diff --git a/plugins/network-elements/internal-loadbalancer/test/resources/lb_mgr.xml b/plugins/network-elements/internal-loadbalancer/test/resources/lb_mgr.xml
index 4f202b3..8a6e40d 100644
--- a/plugins/network-elements/internal-loadbalancer/test/resources/lb_mgr.xml
+++ b/plugins/network-elements/internal-loadbalancer/test/resources/lb_mgr.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
      <context:annotation-config />
 
diff --git a/plugins/network-elements/internal-loadbalancer/test/resources/lb_svc.xml b/plugins/network-elements/internal-loadbalancer/test/resources/lb_svc.xml
index 73054f5..b104f0b 100644
--- a/plugins/network-elements/internal-loadbalancer/test/resources/lb_svc.xml
+++ b/plugins/network-elements/internal-loadbalancer/test/resources/lb_svc.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
      <context:annotation-config />
 
diff --git a/plugins/network-elements/juniper-contrail/pom.xml b/plugins/network-elements/juniper-contrail/pom.xml
index 6f44dc7..4e0b810 100644
--- a/plugins/network-elements/juniper-contrail/pom.xml
+++ b/plugins/network-elements/juniper-contrail/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <repositories>
diff --git a/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/spring-contrail-context.xml b/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/spring-contrail-context.xml
index 99ab02e..b95ec82 100644
--- a/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/spring-contrail-context.xml
+++ b/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/contrail/spring-contrail-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
   <bean id="ContrailManager"
 	class="org.apache.cloudstack.network.contrail.management.ContrailManagerImpl"/>
diff --git a/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/system/spring-contrail-system-context-inheritable.xml b/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/system/spring-contrail-system-context-inheritable.xml
index 085b99b..6db4ab4 100644
--- a/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/system/spring-contrail-system-context-inheritable.xml
+++ b/plugins/network-elements/juniper-contrail/resources/META-INF/cloudstack/system/spring-contrail-system-context-inheritable.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
   <!--
diff --git a/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java b/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java
index 77abb65..7f1d5b8 100644
--- a/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java
+++ b/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/IntegrationTestConfiguration.java
@@ -80,8 +80,8 @@
 import org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry;
 import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager;
 import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreDaoImpl;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl;
-import org.apache.cloudstack.storage.image.db.ImageStoreDaoImpl;
 import org.apache.cloudstack.storage.image.db.TemplateDataStoreDaoImpl;
 import org.apache.cloudstack.usage.UsageService;
 
diff --git a/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java b/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
index e56766a..a617013 100644
--- a/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
+++ b/plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
@@ -24,6 +24,8 @@
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.cloudstack.api.command.admin.user.GetUserKeysCmd;
+import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.ControlledEntity;
@@ -432,4 +434,24 @@
     public void checkAccess(Account account, DiskOffering dof) throws PermissionDeniedException {
         // TODO Auto-generated method stub
     }
+
+    @Override
+    public Map<String, String> getKeys(GetUserKeysCmd cmd){
+        return null;
+    }
+
+    @Override
+    public void checkAccess(User user, ControlledEntity entity)
+            throws PermissionDeniedException {
+
+    }
+    @Override
+    public String getConfigComponentName() {
+        return null;
+    }
+
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return null;
+    }
 }
diff --git a/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml b/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml
index 6f46f6d..77c2365 100644
--- a/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml
+++ b/plugins/network-elements/juniper-contrail/test/resources/commonContext.xml
@@ -11,13 +11,13 @@
   xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:annotation-config />
   <!-- <context:component-scan base-package="org.apache.cloudstack, com.cloud" /> -->
diff --git a/plugins/network-elements/juniper-contrail/test/resources/providerContext.xml b/plugins/network-elements/juniper-contrail/test/resources/providerContext.xml
index 62a9f62..704466f 100644
--- a/plugins/network-elements/juniper-contrail/test/resources/providerContext.xml
+++ b/plugins/network-elements/juniper-contrail/test/resources/providerContext.xml
@@ -21,13 +21,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
     <import resource="commonContext.xml"/>
     <bean id="ProviderTestConfiguration"
     	class="org.apache.cloudstack.network.contrail.management.ProviderTestConfiguration"/>
diff --git a/plugins/network-elements/juniper-contrail/test/resources/publicNetworkContext.xml b/plugins/network-elements/juniper-contrail/test/resources/publicNetworkContext.xml
index db978e7..d1c5f40 100644
--- a/plugins/network-elements/juniper-contrail/test/resources/publicNetworkContext.xml
+++ b/plugins/network-elements/juniper-contrail/test/resources/publicNetworkContext.xml
@@ -13,13 +13,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
     <import resource="commonContext.xml"/>
     <bean id="PublicNetworkTestConfiguration"
     	class="org.apache.cloudstack.network.contrail.management.PublicNetworkTestConfiguration"/>
diff --git a/plugins/network-elements/juniper-srx/pom.xml b/plugins/network-elements/juniper-srx/pom.xml
index 5679bae..ebe9d0e 100644
--- a/plugins/network-elements/juniper-srx/pom.xml
+++ b/plugins/network-elements/juniper-srx/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/network-elements/juniper-srx/resources/META-INF/cloudstack/srx/spring-srx-context.xml b/plugins/network-elements/juniper-srx/resources/META-INF/cloudstack/srx/spring-srx-context.xml
index 2e17f7c..6a92ed5 100644
--- a/plugins/network-elements/juniper-srx/resources/META-INF/cloudstack/srx/spring-srx-context.xml
+++ b/plugins/network-elements/juniper-srx/resources/META-INF/cloudstack/srx/spring-srx-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="JuniperSRX"
diff --git a/plugins/network-elements/midonet/pom.xml b/plugins/network-elements/midonet/pom.xml
index 2f7f24d..353a368 100644
--- a/plugins/network-elements/midonet/pom.xml
+++ b/plugins/network-elements/midonet/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 <repositories>
diff --git a/plugins/network-elements/midonet/resources/META-INF/cloudstack/midonet/spring-midonet-context.xml b/plugins/network-elements/midonet/resources/META-INF/cloudstack/midonet/spring-midonet-context.xml
index 400f7dd..957f079 100644
--- a/plugins/network-elements/midonet/resources/META-INF/cloudstack/midonet/spring-midonet-context.xml
+++ b/plugins/network-elements/midonet/resources/META-INF/cloudstack/midonet/spring-midonet-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="MidoNetGuestNetworkGuru" class="com.cloud.network.guru.MidoNetGuestNetworkGuru">
diff --git a/plugins/network-elements/netscaler/pom.xml b/plugins/network-elements/netscaler/pom.xml
index 193d3c0..9677fc5 100644
--- a/plugins/network-elements/netscaler/pom.xml
+++ b/plugins/network-elements/netscaler/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/network-elements/netscaler/resources/META-INF/cloudstack/netscaler/spring-netscaler-context.xml b/plugins/network-elements/netscaler/resources/META-INF/cloudstack/netscaler/spring-netscaler-context.xml
index b70398c..a75db6b 100644
--- a/plugins/network-elements/netscaler/resources/META-INF/cloudstack/netscaler/spring-netscaler-context.xml
+++ b/plugins/network-elements/netscaler/resources/META-INF/cloudstack/netscaler/spring-netscaler-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="netScalerPodDaoImpl" class="com.cloud.network.dao.NetScalerPodDaoImpl" />
diff --git a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java b/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
index 53225be..dbf6d9a 100644
--- a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
+++ b/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
@@ -232,6 +232,10 @@
 
     @Override
     public boolean validateLBRule(Network network, LoadBalancingRule rule) {
+        if (canHandle(network, Service.Lb)) {
+            String algo = rule.getAlgorithm();
+            return (algo.equals("roundrobin") || algo.equals("leastconn") || algo.equals("source"));
+        }
         return true;
     }
 
@@ -260,7 +264,7 @@
         Map<Capability, String> lbCapabilities = new HashMap<Capability, String>();
 
         // Specifies that the RoundRobin and Leastconn algorithms are supported for load balancing rules
-        lbCapabilities.put(Capability.SupportedLBAlgorithms, "roundrobin,leastconn");
+        lbCapabilities.put(Capability.SupportedLBAlgorithms, "roundrobin, leastconn, source");
 
         // specifies that Netscaler network element can provided both shared and isolation modes
         lbCapabilities.put(Capability.SupportedLBIsolation, "dedicated, shared");
diff --git a/plugins/network-elements/nicira-nvp/pom.xml b/plugins/network-elements/nicira-nvp/pom.xml
index 219dece..15027df 100644
--- a/plugins/network-elements/nicira-nvp/pom.xml
+++ b/plugins/network-elements/nicira-nvp/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
@@ -34,7 +34,7 @@
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-utils</artifactId>
-      <version>4.9.4.0-SNAPSHOT</version>
+      <version>4.10.1.0-SNAPSHOT</version>
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
diff --git a/plugins/network-elements/nicira-nvp/src/main/resources/META-INF/cloudstack/nvp/spring-nvp-context.xml b/plugins/network-elements/nicira-nvp/src/main/resources/META-INF/cloudstack/nvp/spring-nvp-context.xml
index cd8a2c9..2960c97 100644
--- a/plugins/network-elements/nicira-nvp/src/main/resources/META-INF/cloudstack/nvp/spring-nvp-context.xml
+++ b/plugins/network-elements/nicira-nvp/src/main/resources/META-INF/cloudstack/nvp/spring-nvp-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="niciraNvpDaoImpl" class="com.cloud.network.dao.NiciraNvpDaoImpl" />
diff --git a/plugins/network-elements/nuage-vsp/pom.xml b/plugins/network-elements/nuage-vsp/pom.xml
index 5152368..be15e53 100644
--- a/plugins/network-elements/nuage-vsp/pom.xml
+++ b/plugins/network-elements/nuage-vsp/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <repositories>
@@ -34,11 +34,14 @@
       <url>http://cs.mv.nuagenetworks.net/releases/</url>
     </repository>
   </repositories>
+  <properties>
+      <nuage.vsp.client.version>1.0.1</nuage.vsp.client.version>
+  </properties>
   <dependencies>
     <dependency>
-      <groupId>net.nuage.vsp</groupId>
+      <groupId>net.nuagenetworks.vsp</groupId>
       <artifactId>nuage-vsp-acs-client</artifactId>
-      <version>3.2.8.0</version>
+      <version>${nuage.vsp.client.version}</version>
     </dependency>
   </dependencies>
   <build>
diff --git a/plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/spring-vsp-context.xml b/plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/spring-vsp-context.xml
index c447c44..54c0b69 100644
--- a/plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/spring-vsp-context.xml
+++ b/plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/spring-vsp-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="nuageVspDaoImpl" class="com.cloud.network.dao.NuageVspDaoImpl" />
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/PingNuageVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/PingNuageVspCommand.java
index c7505d9..c710ad5 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/PingNuageVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/PingNuageVspCommand.java
@@ -19,6 +19,8 @@
 
 package com.cloud.agent.api;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 import com.cloud.host.Host;
 
 public class PingNuageVspCommand extends PingCommand {
@@ -38,19 +40,18 @@
     public boolean equals(Object o) {
         if (this == o) return true;
         if (!(o instanceof PingNuageVspCommand)) return false;
-        if (!super.equals(o)) return false;
 
         PingNuageVspCommand that = (PingNuageVspCommand) o;
 
-        if (shouldAudit != that.shouldAudit) return false;
-
-        return true;
+        return super.equals(that)
+                && shouldAudit == that.shouldAudit;
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (shouldAudit ? 1 : 0);
-        return result;
+        return new HashCodeBuilder()
+            .appendSuper(super.hashCode())
+            .append(shouldAudit)
+            .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyAclRuleVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyAclRuleVspCommand.java
index 50cace6..4691355 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyAclRuleVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyAclRuleVspCommand.java
@@ -19,11 +19,15 @@
 
 package com.cloud.agent.api.element;
 
-import com.cloud.agent.api.Command;
+import java.util.List;
+import java.util.Objects;
+
 import net.nuage.vsp.acs.client.api.model.VspAclRule;
 import net.nuage.vsp.acs.client.api.model.VspNetwork;
 
-import java.util.List;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Command;
 
 public class ApplyAclRuleVspCommand extends Command {
 
@@ -63,27 +67,30 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof ApplyAclRuleVspCommand)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof ApplyAclRuleVspCommand)) {
+            return false;
+        }
 
         ApplyAclRuleVspCommand that = (ApplyAclRuleVspCommand) o;
 
-        if (_networkReset != that._networkReset) return false;
-        if (_aclRules != null ? !_aclRules.equals(that._aclRules) : that._aclRules != null) return false;
-        if (_aclType != that._aclType) return false;
-        if (_network != null ? !_network.equals(that._network) : that._network != null) return false;
-
-        return true;
+        return super.equals(that)
+                && _networkReset == that._networkReset
+                && Objects.equals(_aclType, that._aclType)
+                && Objects.equals(_network, that._network)
+                && Objects.equals(_aclRules, that._aclRules);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_aclType != null ? _aclType.hashCode() : 0);
-        result = 31 * result + (_network != null ? _network.hashCode() : 0);
-        result = 31 * result + (_aclRules != null ? _aclRules.hashCode() : 0);
-        result = 31 * result + (_networkReset ? 1 : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_aclType)
+                .append(_network)
+                .append(_networkReset)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyStaticNatVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyStaticNatVspCommand.java
index 500f091..b017dea 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyStaticNatVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyStaticNatVspCommand.java
@@ -19,11 +19,15 @@
 
 package com.cloud.agent.api.element;
 
-import com.cloud.agent.api.Command;
+import java.util.List;
+import java.util.Objects;
+
 import net.nuage.vsp.acs.client.api.model.VspNetwork;
 import net.nuage.vsp.acs.client.api.model.VspStaticNat;
 
-import java.util.List;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Command;
 
 public class ApplyStaticNatVspCommand extends Command {
 
@@ -51,24 +55,26 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof ApplyStaticNatVspCommand)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof ApplyStaticNatVspCommand)) {
+            return false;
+        }
 
         ApplyStaticNatVspCommand that = (ApplyStaticNatVspCommand) o;
 
-        if (_network != null ? !_network.equals(that._network) : that._network != null) return false;
-        if (_staticNatDetails != null ? !_staticNatDetails.equals(that._staticNatDetails) : that._staticNatDetails != null)
-            return false;
-
-        return true;
+        return super.equals(that)
+                && Objects.equals(_network, that._network)
+                && Objects.equals(_staticNatDetails, that._staticNatDetails);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_network != null ? _network.hashCode() : 0);
-        result = 31 * result + (_staticNatDetails != null ? _staticNatDetails.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_network)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ImplementVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ImplementVspCommand.java
index 2145f60..37ec2bf 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ImplementVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ImplementVspCommand.java
@@ -19,38 +19,39 @@
 
 package com.cloud.agent.api.element;
 
-import com.cloud.agent.api.Command;
+import java.util.List;
+import java.util.Objects;
+
 import net.nuage.vsp.acs.client.api.model.VspAclRule;
+import net.nuage.vsp.acs.client.api.model.VspDhcpDomainOption;
 import net.nuage.vsp.acs.client.api.model.VspNetwork;
 
-import java.util.List;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Command;
 
 public class ImplementVspCommand extends Command {
 
     private final VspNetwork _network;
-    private final List<String> _dnsServers;
     private final List<VspAclRule> _ingressFirewallRules;
     private final List<VspAclRule> _egressFirewallRules;
     private final List<String> _floatingIpUuids;
+    private final VspDhcpDomainOption _dhcpOption;
 
-    public ImplementVspCommand(VspNetwork network, List<String> dnsServers, List<VspAclRule> ingressFirewallRules,
-            List<VspAclRule> egressFirewallRules, List<String> floatingIpUuids) {
+    public ImplementVspCommand(VspNetwork network, List<VspAclRule> ingressFirewallRules,
+                               List<VspAclRule> egressFirewallRules, List<String> floatingIpUuids, VspDhcpDomainOption dhcpOption) {
         super();
         this._network = network;
-        this._dnsServers = dnsServers;
         this._ingressFirewallRules = ingressFirewallRules;
         this._egressFirewallRules = egressFirewallRules;
         this._floatingIpUuids = floatingIpUuids;
+        this._dhcpOption = dhcpOption;
     }
 
     public VspNetwork getNetwork() {
         return _network;
     }
 
-    public List<String> getDnsServers() {
-        return _dnsServers;
-    }
-
     public List<VspAclRule> getIngressFirewallRules() {
         return _ingressFirewallRules;
     }
@@ -63,6 +64,10 @@
         return _floatingIpUuids;
     }
 
+    public VspDhcpDomainOption getDhcpOption() {
+        return _dhcpOption;
+    }
+
     @Override
     public boolean executeInSequence() {
         return false;
@@ -70,32 +75,30 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof ImplementVspCommand)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof ImplementVspCommand)) {
+            return false;
+        }
 
         ImplementVspCommand that = (ImplementVspCommand) o;
 
-        if (_dnsServers != null ? !_dnsServers.equals(that._dnsServers) : that._dnsServers != null) return false;
-        if (_egressFirewallRules != null ? !_egressFirewallRules.equals(that._egressFirewallRules) : that._egressFirewallRules != null)
-            return false;
-        if (_floatingIpUuids != null ? !_floatingIpUuids.equals(that._floatingIpUuids) : that._floatingIpUuids != null)
-            return false;
-        if (_ingressFirewallRules != null ? !_ingressFirewallRules.equals(that._ingressFirewallRules) : that._ingressFirewallRules != null)
-            return false;
-        if (_network != null ? !_network.equals(that._network) : that._network != null) return false;
-
-        return true;
+        return super.equals(that)
+            && Objects.equals(_network, that._network)
+            && Objects.equals(_dhcpOption, that._dhcpOption)
+            && Objects.equals(_floatingIpUuids, that._floatingIpUuids)
+            && Objects.equals(_ingressFirewallRules, that._ingressFirewallRules)
+            && Objects.equals(_egressFirewallRules, that._egressFirewallRules);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_network != null ? _network.hashCode() : 0);
-        result = 31 * result + (_dnsServers != null ? _dnsServers.hashCode() : 0);
-        result = 31 * result + (_ingressFirewallRules != null ? _ingressFirewallRules.hashCode() : 0);
-        result = 31 * result + (_egressFirewallRules != null ? _egressFirewallRules.hashCode() : 0);
-        result = 31 * result + (_floatingIpUuids != null ? _floatingIpUuids.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_network)
+                .append(_dhcpOption)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVpcVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVpcVspCommand.java
index 6ad4ec6..77b22bc 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVpcVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVpcVspCommand.java
@@ -19,9 +19,12 @@
 
 package com.cloud.agent.api.element;
 
-import com.cloud.agent.api.Command;
-
 import java.util.List;
+import java.util.Objects;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Command;
 
 public class ShutDownVpcVspCommand extends Command {
 
@@ -61,29 +64,30 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof ShutDownVpcVspCommand)) return false;
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof ShutDownVpcVspCommand)) {
+            return false;
+        }
         if (!super.equals(o)) return false;
 
         ShutDownVpcVspCommand that = (ShutDownVpcVspCommand) o;
 
-        if (_domainRouterUuids != null ? !_domainRouterUuids.equals(that._domainRouterUuids) : that._domainRouterUuids != null)
-            return false;
-        if (_domainTemplateName != null ? !_domainTemplateName.equals(that._domainTemplateName) : that._domainTemplateName != null)
-            return false;
-        if (_domainUuid != null ? !_domainUuid.equals(that._domainUuid) : that._domainUuid != null) return false;
-        if (_vpcUuid != null ? !_vpcUuid.equals(that._vpcUuid) : that._vpcUuid != null) return false;
-
-        return true;
+        return super.equals(that)
+            && Objects.equals(_domainUuid, that._domainUuid)
+            && Objects.equals(_vpcUuid, that._vpcUuid)
+            && Objects.equals(_domainTemplateName, that._domainTemplateName)
+            && Objects.equals(_domainRouterUuids, that._domainRouterUuids);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_domainUuid != null ? _domainUuid.hashCode() : 0);
-        result = 31 * result + (_vpcUuid != null ? _vpcUuid.hashCode() : 0);
-        result = 31 * result + (_domainTemplateName != null ? _domainTemplateName.hashCode() : 0);
-        result = 31 * result + (_domainRouterUuids != null ? _domainRouterUuids.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_domainUuid)
+                .append(_vpcUuid)
+                .append(_domainTemplateName)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVspCommand.java
new file mode 100644
index 0000000..8406764
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVspCommand.java
@@ -0,0 +1,84 @@
+//
+// 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.agent.api.element;
+
+import java.util.Objects;
+
+import net.nuage.vsp.acs.client.api.model.VspDhcpDomainOption;
+import net.nuage.vsp.acs.client.api.model.VspNetwork;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+import com.cloud.agent.api.Command;
+
+public class ShutDownVspCommand extends Command {
+
+    private final VspNetwork _network;
+    private final VspDhcpDomainOption _dhcpOptions;
+
+    public ShutDownVspCommand(VspNetwork network, VspDhcpDomainOption dhcpOptions) {
+        super();
+        this._network = network;
+        this._dhcpOptions = dhcpOptions;
+    }
+
+    public VspNetwork getNetwork() {
+        return _network;
+    }
+
+    public VspDhcpDomainOption getDhcpOptions() {
+        return _dhcpOptions;
+    }
+
+    @Override
+    public boolean executeInSequence() {
+        return false;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof ShutDownVspCommand)) {
+            return false;
+        }
+
+        ShutDownVspCommand that = (ShutDownVspCommand) o;
+
+        return super.equals(that)
+                && Objects.equals(_dhcpOptions, that._dhcpOptions)
+                && Objects.equals(_network, that._network);
+    }
+
+
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(_network, _dhcpOptions);
+    }
+
+    public String toDetailString() {
+        return new ToStringBuilder(this)
+                .append("network", _network)
+                .append("dhcpOptions", _dhcpOptions)
+                .toString();
+    }
+}
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/DeallocateVmVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/DeallocateVmVspCommand.java
index 10dffcc..a122f03 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/DeallocateVmVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/DeallocateVmVspCommand.java
@@ -19,11 +19,16 @@
 
 package com.cloud.agent.api.guru;
 
-import com.cloud.agent.api.Command;
+import java.util.Objects;
+
 import net.nuage.vsp.acs.client.api.model.VspNetwork;
 import net.nuage.vsp.acs.client.api.model.VspNic;
 import net.nuage.vsp.acs.client.api.model.VspVm;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Command;
+
 public class DeallocateVmVspCommand extends Command {
 
     private final VspNetwork _network;
@@ -56,25 +61,29 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof DeallocateVmVspCommand)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof DeallocateVmVspCommand)) {
+            return false;
+        }
 
         DeallocateVmVspCommand that = (DeallocateVmVspCommand) o;
 
-        if (_network != null ? !_network.equals(that._network) : that._network != null) return false;
-        if (_nic != null ? !_nic.equals(that._nic) : that._nic != null) return false;
-        if (_vm != null ? !_vm.equals(that._vm) : that._vm != null) return false;
-
-        return true;
+        return super.equals(that)
+                && Objects.equals(_network, that._network)
+                && Objects.equals(_nic, that._nic)
+                && Objects.equals(_vm, that._vm);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_network != null ? _network.hashCode() : 0);
-        result = 31 * result + (_vm != null ? _vm.hashCode() : 0);
-        result = 31 * result + (_nic != null ? _nic.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+            .appendSuper(super.hashCode())
+            .append(_network)
+            .append(_vm)
+            .append(_nic)
+            .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ImplementNetworkVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ImplementNetworkVspCommand.java
index bb35756..5dc4ba7 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ImplementNetworkVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ImplementNetworkVspCommand.java
@@ -19,28 +19,33 @@
 
 package com.cloud.agent.api.guru;
 
-import com.cloud.agent.api.Command;
+import java.util.Objects;
+
+import net.nuage.vsp.acs.client.api.model.VspDhcpDomainOption;
 import net.nuage.vsp.acs.client.api.model.VspNetwork;
 
-import java.util.List;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+import com.cloud.agent.api.Command;
 
 public class ImplementNetworkVspCommand extends Command {
 
     private final VspNetwork _network;
-    private final List<String> _dnsServers;
+    private final VspDhcpDomainOption _dhcpOption;
 
-    public ImplementNetworkVspCommand(VspNetwork network, List<String> dnsServers) {
+    public ImplementNetworkVspCommand(VspNetwork network, VspDhcpDomainOption dhcpOption) {
         super();
         this._network = network;
-        this._dnsServers = dnsServers;
+        this._dhcpOption = dhcpOption;
     }
 
     public VspNetwork getNetwork() {
         return _network;
     }
 
-    public List<String> getDnsServers() {
-        return _dnsServers;
+    public VspDhcpDomainOption getDhcpOption() {
+        return _dhcpOption;
     }
 
     @Override
@@ -50,23 +55,34 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof ImplementNetworkVspCommand)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof ImplementNetworkVspCommand)) {
+            return false;
+        }
 
         ImplementNetworkVspCommand that = (ImplementNetworkVspCommand) o;
 
-        if (_dnsServers != null ? !_dnsServers.equals(that._dnsServers) : that._dnsServers != null) return false;
-        if (_network != null ? !_network.equals(that._network) : that._network != null) return false;
-
-        return true;
+        return super.equals(that)
+            && Objects.equals(_dhcpOption, that._dhcpOption)
+            && Objects.equals(_network, that._network);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_network != null ? _network.hashCode() : 0);
-        result = 31 * result + (_dnsServers != null ? _dnsServers.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_network)
+                .append(_dhcpOption)
+                .toHashCode();
+    }
+
+    public String toDetailString() {
+        return new ToStringBuilder(this)
+                .append("network", _network)
+                .append("dhcpOption", _dhcpOption)
+                .toString();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ReserveVmInterfaceVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ReserveVmInterfaceVspCommand.java
index 299b9a6..910d4ac 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ReserveVmInterfaceVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ReserveVmInterfaceVspCommand.java
@@ -19,25 +19,33 @@
 
 package com.cloud.agent.api.guru;
 
-import com.cloud.agent.api.Command;
+import java.util.Objects;
+
+import net.nuage.vsp.acs.client.api.model.VspDhcpVMOption;
 import net.nuage.vsp.acs.client.api.model.VspNetwork;
 import net.nuage.vsp.acs.client.api.model.VspNic;
 import net.nuage.vsp.acs.client.api.model.VspStaticNat;
 import net.nuage.vsp.acs.client.api.model.VspVm;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Command;
+
 public class ReserveVmInterfaceVspCommand extends Command {
 
     private final VspNetwork _network;
     private final VspVm _vm;
     private final VspNic _nic;
     private final VspStaticNat _staticNat;
+    private final  VspDhcpVMOption _dhcpOption;
 
-    public ReserveVmInterfaceVspCommand(VspNetwork network, VspVm vm, VspNic nic, VspStaticNat staticNat) {
+    public ReserveVmInterfaceVspCommand(VspNetwork network, VspVm vm, VspNic nic, VspStaticNat staticNat, VspDhcpVMOption dhcpOption) {
         super();
         this._network = network;
         this._vm = vm;
         this._nic = nic;
         this._staticNat = staticNat;
+        this._dhcpOption = dhcpOption;
     }
 
     public VspNetwork getNetwork() {
@@ -56,6 +64,10 @@
         return _staticNat;
     }
 
+    public VspDhcpVMOption getDhcpOption() {
+        return _dhcpOption;
+    }
+
     @Override
     public boolean executeInSequence() {
         return false;
@@ -63,27 +75,33 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof ReserveVmInterfaceVspCommand)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof ReserveVmInterfaceVspCommand)) {
+            return false;
+        }
 
         ReserveVmInterfaceVspCommand that = (ReserveVmInterfaceVspCommand) o;
 
-        if (_network != null ? !_network.equals(that._network) : that._network != null) return false;
-        if (_nic != null ? !_nic.equals(that._nic) : that._nic != null) return false;
-        if (_staticNat != null ? !_staticNat.equals(that._staticNat) : that._staticNat != null) return false;
-        if (_vm != null ? !_vm.equals(that._vm) : that._vm != null) return false;
-
-        return true;
+        return super.equals(that)
+                && Objects.equals(_network, that._network)
+                && Objects.equals(_nic, that._nic)
+                && Objects.equals(_dhcpOption, that._dhcpOption)
+                && Objects.equals(_staticNat, that._staticNat)
+                && Objects.equals(_vm, that._vm);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_network != null ? _network.hashCode() : 0);
-        result = 31 * result + (_vm != null ? _vm.hashCode() : 0);
-        result = 31 * result + (_nic != null ? _nic.hashCode() : 0);
-        result = 31 * result + (_staticNat != null ? _staticNat.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_network)
+                .append(_vm)
+                .append(_nic)
+                .append(_staticNat)
+                .append(_dhcpOption)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/TrashNetworkVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/TrashNetworkVspCommand.java
index b3f8f8e..873b5c2 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/TrashNetworkVspCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/TrashNetworkVspCommand.java
@@ -19,9 +19,14 @@
 
 package com.cloud.agent.api.guru;
 
-import com.cloud.agent.api.Command;
+import java.util.Objects;
+
 import net.nuage.vsp.acs.client.api.model.VspNetwork;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Command;
+
 public class TrashNetworkVspCommand extends Command {
 
     private final VspNetwork _network;
@@ -42,21 +47,25 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof TrashNetworkVspCommand)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof TrashNetworkVspCommand)) {
+            return false;
+        }
 
         TrashNetworkVspCommand that = (TrashNetworkVspCommand) o;
 
-        if (_network != null ? !_network.equals(that._network) : that._network != null) return false;
-
-        return true;
+        return super.equals(that)
+                && Objects.equals(_network, that._network);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_network != null ? _network.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_network)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/UpdateDhcpOptionVspCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/UpdateDhcpOptionVspCommand.java
new file mode 100644
index 0000000..c5ae11a
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/UpdateDhcpOptionVspCommand.java
@@ -0,0 +1,87 @@
+//
+// 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.agent.api.guru;
+
+import java.util.List;
+import java.util.Objects;
+
+import net.nuage.vsp.acs.client.api.model.VspDhcpVMOption;
+import net.nuage.vsp.acs.client.api.model.VspNetwork;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+import com.cloud.agent.api.Command;
+
+public class UpdateDhcpOptionVspCommand extends Command {
+
+    private final List<VspDhcpVMOption> _dhcpOptions;
+    private final VspNetwork _network;
+
+    public UpdateDhcpOptionVspCommand(List<VspDhcpVMOption> dhcpOptions, VspNetwork network) {
+        this._dhcpOptions = dhcpOptions;
+        this._network = network;
+    }
+
+    public List<VspDhcpVMOption> getDhcpOptions() {
+        return _dhcpOptions;
+    }
+
+    public VspNetwork getNetwork() {
+        return _network;
+    }
+
+    @Override
+    public boolean executeInSequence() {
+        return false;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof UpdateDhcpOptionVspCommand)) {
+            return false;
+        }
+
+        UpdateDhcpOptionVspCommand that = (UpdateDhcpOptionVspCommand) o;
+
+        return super.equals(that)
+                && Objects.equals(_network, that._network)
+                && Objects.equals(_dhcpOptions, that._dhcpOptions);
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_network)
+                .toHashCode();
+    }
+
+    public String toDetailString() {
+        return new ToStringBuilder(this)
+                .append("network", _network)
+                .append("dhcpOptions", _dhcpOptions)
+                .toString();
+    }
+}
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/CleanUpDomainCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/CleanUpDomainCommand.java
new file mode 100644
index 0000000..2229b61
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/CleanUpDomainCommand.java
@@ -0,0 +1,72 @@
+//
+// 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.agent.api.manager;
+
+import com.cloud.agent.api.Command;
+
+import com.google.common.base.Preconditions;
+import net.nuage.vsp.acs.client.api.model.VspDomainCleanUp;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import java.util.Objects;
+
+public class CleanUpDomainCommand extends Command {
+
+    private final VspDomainCleanUp _domainCleanUp;
+
+    public CleanUpDomainCommand(VspDomainCleanUp domainCleanUp) {
+        super();
+        Preconditions.checkNotNull(domainCleanUp);
+        this._domainCleanUp = domainCleanUp;
+    }
+
+    public VspDomainCleanUp getDomainCleanUp() {
+        return _domainCleanUp;
+    }
+
+    @Override
+    public boolean executeInSequence() {
+        return false;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof CleanUpDomainCommand)) {
+            return false;
+        }
+
+        CleanUpDomainCommand that = (CleanUpDomainCommand) o;
+
+        return super.equals(that)
+                && Objects.equals(_domainCleanUp, that._domainCleanUp);
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_domainCleanUp)
+                .toHashCode();
+    }
+}
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/EntityExistsCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/EntityExistsCommand.java
new file mode 100644
index 0000000..8e8fd81
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/EntityExistsCommand.java
@@ -0,0 +1,85 @@
+//
+// 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.agent.api.manager;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import java.util.Objects;
+
+import com.cloud.agent.api.Command;
+
+public class EntityExistsCommand<T> extends Command {
+
+    private transient Class<T> _type;
+    private final String _className;
+    private final String _uuid;
+
+    public EntityExistsCommand(Class<T> type, String uuid) {
+        super();
+        this._type = type;
+        this._className = type.getName();
+        this._uuid = uuid;
+    }
+
+    public Class<T> getType() {
+        if (_type == null) {
+            try {
+                _type = (Class<T>)Class.forName(_className);
+            } catch (ClassNotFoundException e) {
+            }
+        }
+        return _type;
+    }
+
+    public String getUuid() {
+        return _uuid;
+    }
+
+    @Override
+    public boolean executeInSequence() {
+        return false;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof EntityExistsCommand)) {
+            return false;
+        }
+
+        EntityExistsCommand that = (EntityExistsCommand) o;
+
+        return super.equals(that)
+                && Objects.equals(getType(), that.getType())
+                && Objects.equals(_uuid, that._uuid);
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(getType())
+                .append(_uuid)
+                .toHashCode();
+    }
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/GetApiDefaultsAnswer.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/GetApiDefaultsAnswer.java
index c02eef1..e52b0e3 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/GetApiDefaultsAnswer.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/GetApiDefaultsAnswer.java
@@ -19,9 +19,14 @@
 
 package com.cloud.agent.api.manager;
 
-import com.cloud.agent.api.Answer;
+import java.util.Objects;
+
 import net.nuage.vsp.acs.client.api.model.VspApiDefaults;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Answer;
+
 public class GetApiDefaultsAnswer extends Answer {
 
     private VspApiDefaults _apiDefaults;
@@ -41,21 +46,25 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof GetApiDefaultsAnswer)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof GetApiDefaultsAnswer)) {
+            return false;
+        }
 
         GetApiDefaultsAnswer that = (GetApiDefaultsAnswer) o;
 
-        if (_apiDefaults != null ? !_apiDefaults.equals(that._apiDefaults) : that._apiDefaults != null) return false;
-
-        return true;
+        return super.equals(that)
+                && Objects.equals(_apiDefaults, that._apiDefaults);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_apiDefaults != null ? _apiDefaults.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_apiDefaults)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/SupportedApiVersionCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/SupportedApiVersionCommand.java
index 7a331d6..6c57e85 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/SupportedApiVersionCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/SupportedApiVersionCommand.java
@@ -19,6 +19,10 @@
 
 package com.cloud.agent.api.manager;
 
+import java.util.Objects;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 import com.cloud.agent.api.Command;
 
 public class SupportedApiVersionCommand extends Command {
@@ -41,21 +45,26 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof SupportedApiVersionCommand)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof SupportedApiVersionCommand)) {
+            return false;
+        }
 
         SupportedApiVersionCommand that = (SupportedApiVersionCommand) o;
 
-        if (_apiVersion != null ? !_apiVersion.equals(that._apiVersion) : that._apiVersion != null) return false;
+        return super.equals(that)
+                && Objects.equals(_apiVersion, that._apiVersion);
 
-        return true;
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_apiVersion != null ? _apiVersion.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_apiVersion)
+                .toHashCode();
     }
 }
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/UpdateNuageVspDeviceCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/UpdateNuageVspDeviceCommand.java
new file mode 100644
index 0000000..d94ff70
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/manager/UpdateNuageVspDeviceCommand.java
@@ -0,0 +1,70 @@
+//
+// 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.agent.api.manager;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import java.util.Objects;
+
+import com.cloud.agent.api.Command;
+import com.cloud.network.resource.NuageVspResourceConfiguration;
+
+public class UpdateNuageVspDeviceCommand extends Command {
+
+    private final NuageVspResourceConfiguration configuration;
+
+    public UpdateNuageVspDeviceCommand(NuageVspResourceConfiguration configuration) {
+        super();
+        this.configuration = configuration;
+    }
+
+    public NuageVspResourceConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    @Override
+    public boolean executeInSequence() {
+        return false;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof UpdateNuageVspDeviceCommand)) {
+            return false;
+        }
+
+        UpdateNuageVspDeviceCommand that = (UpdateNuageVspDeviceCommand) o;
+
+        return super.equals(that)
+                && Objects.equals(configuration, that.configuration);
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(configuration)
+                .toHashCode();
+    }
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncDomainAnswer.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncDomainAnswer.java
index fd4822c..26d8ad4 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncDomainAnswer.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncDomainAnswer.java
@@ -19,6 +19,8 @@
 
 package com.cloud.agent.api.sync;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 import com.cloud.agent.api.Answer;
 
 public class SyncDomainAnswer extends Answer {
@@ -37,21 +39,26 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof SyncDomainAnswer)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof SyncDomainAnswer)) {
+            return false;
+        }
 
         SyncDomainAnswer that = (SyncDomainAnswer) o;
 
-        if (_success != that._success) return false;
-
-        return true;
+        return super.equals(that)
+                && _success == that._success;
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_success ? 1 : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_success)
+                .toHashCode();
+
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncDomainCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncDomainCommand.java
index 90a30a4..024eaae 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncDomainCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncDomainCommand.java
@@ -19,32 +19,40 @@
 
 package com.cloud.agent.api.sync;
 
-import com.cloud.agent.api.Command;
+import java.util.Objects;
+
 import net.nuage.vsp.acs.client.api.model.VspDomain;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import com.cloud.agent.api.Command;
+
 public class SyncDomainCommand extends Command {
 
+    public enum Type { ADD, REMOVE }
     private final VspDomain _domain;
-    private final boolean _toAdd;
-    private final boolean _toRemove;
+    private final Type _action;
 
-    public SyncDomainCommand(VspDomain domain, boolean toAdd, boolean toRemove) {
+    public SyncDomainCommand(VspDomain domain, Type action) {
         super();
         this._domain = domain;
-        this._toAdd = toAdd;
-        this._toRemove = toRemove;
+        this._action = action;
     }
 
     public VspDomain getDomain() {
         return _domain;
     }
 
+    public Type getAction() {
+        return _action;
+    }
+
     public boolean isToAdd() {
-        return _toAdd;
+        return Type.ADD.equals(_action);
     }
 
     public boolean isToRemove() {
-        return _toRemove;
+        return Type.REMOVE.equals(_action);
     }
 
     @Override
@@ -60,19 +68,17 @@
 
         SyncDomainCommand that = (SyncDomainCommand) o;
 
-        if (_toAdd != that._toAdd) return false;
-        if (_toRemove != that._toRemove) return false;
-        if (_domain != null ? !_domain.equals(that._domain) : that._domain != null) return false;
-
-        return true;
+        return super.equals(that)
+                && Objects.equals(_action, that._action)
+                && Objects.equals(_domain, that._domain);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_domain != null ? _domain.hashCode() : 0);
-        result = 31 * result + (_toAdd ? 1 : 0);
-        result = 31 * result + (_toRemove ? 1 : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_domain)
+                .append(_action)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncNuageVspCmsIdAnswer.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncNuageVspCmsIdAnswer.java
index b0430e6..98730fe 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncNuageVspCmsIdAnswer.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncNuageVspCmsIdAnswer.java
@@ -19,7 +19,12 @@
 
 package com.cloud.agent.api.sync;
 
+import java.util.Objects;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.Command;
 
 public class SyncNuageVspCmsIdAnswer extends Answer {
 
@@ -34,6 +39,13 @@
         this._syncType = syncType;
     }
 
+    public SyncNuageVspCmsIdAnswer(Command command, Exception e, SyncNuageVspCmsIdCommand.SyncType syncType) {
+        super(command, e);
+        this._nuageVspCmsId = null;
+        this._success = false;
+        this._syncType = syncType;
+    }
+
     public boolean getSuccess() {
         return _success;
     }
@@ -48,26 +60,29 @@
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof SyncNuageVspCmsIdAnswer)) return false;
-        if (!super.equals(o)) return false;
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof SyncNuageVspCmsIdAnswer)) {
+            return false;
+        }
 
         SyncNuageVspCmsIdAnswer that = (SyncNuageVspCmsIdAnswer) o;
 
-        if (_success != that._success) return false;
-        if (_nuageVspCmsId != null ? !_nuageVspCmsId.equals(that._nuageVspCmsId) : that._nuageVspCmsId != null)
-            return false;
-        if (_syncType != that._syncType) return false;
-
-        return true;
+        return super.equals(that)
+                && _success == that._success
+                && Objects.equals(_syncType, that._syncType)
+                && Objects.equals(_nuageVspCmsId, that._nuageVspCmsId);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_success ? 1 : 0);
-        result = 31 * result + (_nuageVspCmsId != null ? _nuageVspCmsId.hashCode() : 0);
-        result = 31 * result + (_syncType != null ? _syncType.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_syncType)
+                .append(_nuageVspCmsId)
+                .append(_success)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncNuageVspCmsIdCommand.java b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncNuageVspCmsIdCommand.java
index 48651ff..40a0a45 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncNuageVspCmsIdCommand.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncNuageVspCmsIdCommand.java
@@ -19,6 +19,10 @@
 
 package com.cloud.agent.api.sync;
 
+import java.util.Objects;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 import com.cloud.agent.api.Command;
 
 public class SyncNuageVspCmsIdCommand extends Command {
@@ -55,18 +59,17 @@
 
         SyncNuageVspCmsIdCommand that = (SyncNuageVspCmsIdCommand) o;
 
-        if (_nuageVspCmsId != null ? !_nuageVspCmsId.equals(that._nuageVspCmsId) : that._nuageVspCmsId != null)
-            return false;
-        if (_syncType != that._syncType) return false;
-
-        return true;
+        return super.equals(that)
+                && Objects.equals(_syncType, that._syncType)
+                && Objects.equals(_nuageVspCmsId, that._nuageVspCmsId);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = 31 * result + (_syncType != null ? _syncType.hashCode() : 0);
-        result = 31 * result + (_nuageVspCmsId != null ? _nuageVspCmsId.hashCode() : 0);
-        return result;
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_syncType)
+                .append(_nuageVspCmsId)
+                .toHashCode();
     }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/DisableNuageUnderlayVlanIpRangeCmd.java b/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/DisableNuageUnderlayVlanIpRangeCmd.java
new file mode 100644
index 0000000..bcc804c
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/DisableNuageUnderlayVlanIpRangeCmd.java
@@ -0,0 +1,110 @@
+//
+// 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.api.commands;
+
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.manager.NuageVspManager;
+import com.cloud.utils.exception.CloudRuntimeException;
+import org.apache.cloudstack.acl.RoleType;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseAsyncCmd;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.api.response.VlanIpRangeResponse;
+import org.apache.cloudstack.context.CallContext;
+
+import javax.inject.Inject;
+
+@APICommand(name = DisableNuageUnderlayVlanIpRangeCmd.APINAME, description = "disable Nuage underlay on vlan ip range", responseObject = SuccessResponse.class,
+        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
+        since = "4.10",
+        authorized = {RoleType.Admin})
+public class DisableNuageUnderlayVlanIpRangeCmd extends BaseAsyncCmd {
+    public static final String APINAME = "disableNuageUnderlayVlanIpRange";
+
+    @Inject
+    NuageVspManager _nuageVspManager;
+
+    /////////////////////////////////////////////////////
+    //////////////// API parameters /////////////////////
+    /////////////////////////////////////////////////////
+
+    @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = VlanIpRangeResponse.class, required = true, description = "VLAN IP Range ID")
+    private long vlanIpRangeId;
+
+    /////////////////////////////////////////////////////
+    /////////////////// Accessors ///////////////////////
+    /////////////////////////////////////////////////////
+
+    public long getVlanIpRangeId() {
+        return vlanIpRangeId;
+    }
+
+    /////////////////////////////////////////////////////
+    /////////////// API Implementation///////////////////
+    /////////////////////////////////////////////////////
+
+    @Override
+    public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException {
+        try {
+            boolean result = _nuageVspManager.updateNuageUnderlayVlanIpRange(vlanIpRangeId, false);
+            if (result) {
+                SuccessResponse response = new SuccessResponse(getCommandName());
+                response.setResponseName(getCommandName());
+                this.setResponseObject(response);
+            } else {
+                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to disable underlay, VLAN IP range is already pushed to the Nuage VSP device.");
+            }
+        } catch (InvalidParameterValueException invalidParamExcp) {
+            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, invalidParamExcp.getMessage());
+        } catch (CloudRuntimeException runtimeExcp) {
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, runtimeExcp.getMessage());
+        }
+    }
+
+    @Override
+    public String getCommandName() {
+        return APINAME.toLowerCase() + BaseCmd.RESPONSE_SUFFIX;
+    }
+
+    @Override
+    public long getEntityOwnerId() {
+        return CallContext.current().getCallingAccount().getId();
+    }
+
+    @Override
+    public String getEventType() {
+        return "VLAN.DISABLE.NUAGE.UNDERLAY";
+    }
+
+    @Override
+    public String getEventDescription() {
+        return "Disable VLAN IP range Nuage underlay";
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/EnableNuageUnderlayVlanIpRangeCmd.java b/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/EnableNuageUnderlayVlanIpRangeCmd.java
new file mode 100644
index 0000000..b1eb9d7
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/EnableNuageUnderlayVlanIpRangeCmd.java
@@ -0,0 +1,110 @@
+//
+// 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.api.commands;
+
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.manager.NuageVspManager;
+import com.cloud.utils.exception.CloudRuntimeException;
+import org.apache.cloudstack.acl.RoleType;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseAsyncCmd;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.SuccessResponse;
+import org.apache.cloudstack.api.response.VlanIpRangeResponse;
+import org.apache.cloudstack.context.CallContext;
+
+import javax.inject.Inject;
+
+@APICommand(name = EnableNuageUnderlayVlanIpRangeCmd.APINAME, description = "enable Nuage underlay on vlan ip range", responseObject = SuccessResponse.class,
+        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
+        since = "4.10",
+        authorized = {RoleType.Admin})
+public class EnableNuageUnderlayVlanIpRangeCmd extends BaseAsyncCmd {
+    public static final String APINAME = "enableNuageUnderlayVlanIpRange";
+
+    @Inject
+    NuageVspManager _nuageVspManager;
+
+    /////////////////////////////////////////////////////
+    //////////////// API parameters /////////////////////
+    /////////////////////////////////////////////////////
+
+    @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = VlanIpRangeResponse.class, required = true, description = "VLAN IP Range ID")
+    private long vlanIpRangeId;
+
+    /////////////////////////////////////////////////////
+    /////////////////// Accessors ///////////////////////
+    /////////////////////////////////////////////////////
+
+    public long getVlanIpRangeId() {
+        return vlanIpRangeId;
+    }
+
+    /////////////////////////////////////////////////////
+    /////////////// API Implementation///////////////////
+    /////////////////////////////////////////////////////
+
+    @Override
+    public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException {
+        try {
+            boolean result = _nuageVspManager.updateNuageUnderlayVlanIpRange(vlanIpRangeId, true);
+            if (result) {
+                SuccessResponse response = new SuccessResponse(getCommandName());
+                response.setResponseName(getCommandName());
+                this.setResponseObject(response);
+            } else {
+                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to enable underlay, VLAN IP range is already pushed to the Nuage VSP device.");
+            }
+        } catch (InvalidParameterValueException invalidParamExcp) {
+            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, invalidParamExcp.getMessage());
+        } catch (CloudRuntimeException runtimeExcp) {
+            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, runtimeExcp.getMessage());
+        }
+    }
+
+    @Override
+    public String getCommandName() {
+        return APINAME.toLowerCase() + BaseCmd.RESPONSE_SUFFIX;
+    }
+
+    @Override
+    public long getEntityOwnerId() {
+        return CallContext.current().getCallingAccount().getId();
+    }
+
+    @Override
+    public String getEventType() {
+        return "VLAN.ENABLE.NUAGE.UNDERLAY";
+    }
+
+    @Override
+    public String getEventDescription() {
+        return "Enable VLAN IP range Nuage underlay";
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/ListNuageUnderlayVlanIpRangesCmd.java b/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/ListNuageUnderlayVlanIpRangesCmd.java
new file mode 100644
index 0000000..38bc788
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/ListNuageUnderlayVlanIpRangesCmd.java
@@ -0,0 +1,80 @@
+//
+// 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.api.commands;
+
+import com.cloud.api.response.NuageVlanIpRangeResponse;
+import com.cloud.dc.Vlan;
+import com.cloud.network.manager.NuageVspManager;
+import com.cloud.utils.Pair;
+import org.apache.cloudstack.acl.RoleType;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.command.admin.vlan.ListVlanIpRangesCmd;
+import org.apache.cloudstack.api.response.ListResponse;
+
+import javax.inject.Inject;
+import java.util.List;
+
+@APICommand(name = "listNuageUnderlayVlanIpRanges", description = "enable Nuage underlay on vlan ip range", responseObject = NuageVlanIpRangeResponse.class,
+        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
+        since = "4.10",
+        authorized = {RoleType.Admin})
+public class ListNuageUnderlayVlanIpRangesCmd extends ListVlanIpRangesCmd {
+    public static final String APINAME = "listNuageUnderlayVlanIpRanges";
+
+    @Inject
+    NuageVspManager _nuageVspManager;
+
+    /////////////////////////////////////////////////////
+    //////////////// API parameters /////////////////////
+    /////////////////////////////////////////////////////
+
+    @Parameter(name = VspConstants.NUAGE_VSP_API_UNDERLAY, type = CommandType.BOOLEAN, description = "true to list only underlay enabled, false if not, empty for all")
+    private Boolean underlay;
+
+    /////////////////////////////////////////////////////
+    /////////////////// Accessors ///////////////////////
+    /////////////////////////////////////////////////////
+
+    public Boolean getUnderlay() {
+        return underlay;
+    }
+
+
+    /////////////////////////////////////////////////////
+    /////////////// API Implementation///////////////////
+    /////////////////////////////////////////////////////
+
+    @Override
+    public void execute() {
+        Pair<List<? extends Vlan>, Integer> vlans = _mgr.searchForVlans(this);
+        ListResponse<NuageVlanIpRangeResponse> response = new ListResponse<NuageVlanIpRangeResponse>();
+        List<NuageVlanIpRangeResponse> vlanIpRanges = _nuageVspManager.filterNuageVlanIpRanges(vlans.first(), underlay);
+        response.setResponses(vlanIpRanges);
+        response.setResponseName(getCommandName());
+        this.setResponseObject(response);
+    }
+
+    @Override
+    public String getCommandName() {
+        return APINAME.toLowerCase() + BaseCmd.RESPONSE_SUFFIX;
+    }
+}
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/VspConstants.java b/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/VspConstants.java
index 7abcdfb..55e6b47 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/VspConstants.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/VspConstants.java
@@ -33,4 +33,5 @@
     public static final String NUAGE_VSP_API_RESOURCE_FILTER = "resourcefilter";
     public static final String NUAGE_VSP_API_RESOURCE_INFO = "resourceinfo";
     public static final String NUAGE_VSP_CMS_ID = "cmsid";
+    public static final String NUAGE_VSP_API_UNDERLAY = "underlay";
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/api/response/NuageVlanIpRangeResponse.java b/plugins/network-elements/nuage-vsp/src/com/cloud/api/response/NuageVlanIpRangeResponse.java
new file mode 100644
index 0000000..cc3204d
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/api/response/NuageVlanIpRangeResponse.java
@@ -0,0 +1,38 @@
+//
+// 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.api.response;
+
+import com.cloud.api.commands.VspConstants;
+import com.cloud.dc.Vlan;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.EntityReference;
+import org.apache.cloudstack.api.response.VlanIpRangeResponse;
+
+@EntityReference(value = Vlan.class)
+public class NuageVlanIpRangeResponse extends VlanIpRangeResponse {
+    @SerializedName(VspConstants.NUAGE_VSP_API_UNDERLAY)
+    @Param(description = "true if Nuage underlay enabled, false if not")
+    private boolean underlay;
+
+    public void setUnderlay(boolean underlay) {
+        this.underlay = underlay;
+    }
+}
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java
index 1f36ae0..f2c1305 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java
@@ -19,6 +19,38 @@
 
 package com.cloud.network.element;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.Nullable;
+import javax.inject.Inject;
+import javax.naming.ConfigurationException;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableSet;
+import net.nuage.vsp.acs.client.api.model.VspAclRule;
+import net.nuage.vsp.acs.client.api.model.VspDhcpDomainOption;
+import net.nuage.vsp.acs.client.api.model.VspNetwork;
+import net.nuage.vsp.acs.client.api.model.VspStaticNat;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.log4j.Logger;
+
+import com.google.common.base.Function;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
+import org.apache.cloudstack.api.InternalIdentity;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
+import org.apache.cloudstack.network.topology.NetworkTopologyContext;
+import org.apache.cloudstack.resourcedetail.VpcDetailVO;
+import org.apache.cloudstack.resourcedetail.dao.VpcDetailsDao;
+
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.StartupCommand;
@@ -27,15 +59,19 @@
 import com.cloud.agent.api.element.ApplyStaticNatVspCommand;
 import com.cloud.agent.api.element.ImplementVspCommand;
 import com.cloud.agent.api.element.ShutDownVpcVspCommand;
+import com.cloud.agent.api.element.ShutDownVspCommand;
+import com.cloud.dc.Vlan;
 import com.cloud.dc.VlanVO;
 import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.dc.dao.VlanDao;
+import com.cloud.dc.dao.VlanDetailsDao;
 import com.cloud.deploy.DeployDestination;
 import com.cloud.domain.Domain;
 import com.cloud.domain.dao.DomainDao;
 import com.cloud.exception.ConcurrentOperationException;
 import com.cloud.exception.InsufficientCapacityException;
 import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.exception.UnsupportedServiceException;
 import com.cloud.host.Host;
 import com.cloud.host.HostVO;
 import com.cloud.host.dao.HostDao;
@@ -45,7 +81,6 @@
 import com.cloud.network.Network.Service;
 import com.cloud.network.NetworkModel;
 import com.cloud.network.Networks;
-import com.cloud.network.NuageVspDeviceVO;
 import com.cloud.network.PhysicalNetwork;
 import com.cloud.network.PhysicalNetworkServiceProvider;
 import com.cloud.network.PublicIpAddress;
@@ -60,6 +95,7 @@
 import com.cloud.network.dao.PhysicalNetworkVO;
 import com.cloud.network.manager.NuageVspManager;
 import com.cloud.network.manager.NuageVspManagerImpl;
+import com.cloud.network.router.VpcVirtualNetworkApplianceManager;
 import com.cloud.network.rules.FirewallRule;
 import com.cloud.network.rules.FirewallRule.FirewallRuleType;
 import com.cloud.network.rules.FirewallRuleVO;
@@ -74,14 +110,18 @@
 import com.cloud.network.vpc.dao.VpcDao;
 import com.cloud.network.vpc.dao.VpcOfferingServiceMapDao;
 import com.cloud.offering.NetworkOffering;
+import com.cloud.offerings.NetworkOfferingVO;
 import com.cloud.offerings.dao.NetworkOfferingDao;
 import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
 import com.cloud.resource.ResourceManager;
 import com.cloud.resource.ResourceStateAdapter;
 import com.cloud.resource.ServerResource;
 import com.cloud.resource.UnableDeleteHostException;
+import com.cloud.util.NuageVspEntityBuilder;
+import com.cloud.util.NuageVspUtil;
+import com.cloud.utils.Pair;
 import com.cloud.utils.component.AdapterBase;
-import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.net.NetUtils;
 import com.cloud.vm.DomainRouterVO;
 import com.cloud.vm.NicProfile;
 import com.cloud.vm.NicVO;
@@ -89,28 +129,6 @@
 import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.dao.DomainRouterDao;
 import com.cloud.vm.dao.NicDao;
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
-import com.cloud.util.NuageVspEntityBuilder;
-import net.nuage.vsp.acs.client.api.model.VspAclRule;
-import net.nuage.vsp.acs.client.api.model.VspNetwork;
-import net.nuage.vsp.acs.client.api.model.VspStaticNat;
-import org.apache.cloudstack.api.InternalIdentity;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
-import org.apache.cloudstack.resourcedetail.VpcDetailVO;
-import org.apache.cloudstack.resourcedetail.dao.VpcDetailsDao;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.log4j.Logger;
-
-import javax.annotation.Nullable;
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class NuageVspElement extends AdapterBase implements ConnectivityProvider, IpDeployer, SourceNatServiceProvider, StaticNatServiceProvider, FirewallServiceProvider,
         DhcpServiceProvider, ResourceStateAdapter, VpcProvider, NetworkACLServiceProvider {
@@ -119,6 +137,26 @@
 
     private static final Map<Service, Map<Capability, String>> capabilities = setCapabilities();
 
+    private static final Set<Service> REQUIRED_SERVICES = ImmutableSet.of(
+            Service.Connectivity,
+            Service.Dhcp
+    );
+    private static final Set<Service> NUAGE_ONLY_SERVICES = ImmutableSet.of(
+            Service.SourceNat,
+            Service.StaticNat,
+            Service.Gateway
+    );
+    private static final Set<Service> UNSUPPORTED_SERVICES = ImmutableSet.of(
+            Service.Vpn,
+            Service.Dns,
+            Service.PortForwarding,
+            Service.SecurityGroup
+    );
+    private static final Set<Pair<Service, Service>> ANY_REQUIRED_SERVICES = ImmutableSet.of(
+            new Pair<>(Service.SourceNat, Service.StaticNat)
+    );
+
+
     public static final ExternalNetworkDeviceManager.NetworkDevice NuageVspDevice = new ExternalNetworkDeviceManager.NetworkDevice("NuageVsp", Provider.NuageVsp.getName());
 
     @Inject
@@ -142,6 +180,8 @@
     @Inject
     VlanDao _vlanDao;
     @Inject
+    VlanDetailsDao _vlanDetailsDao;
+    @Inject
     NicDao _nicDao;
     @Inject
     VpcDao _vpcDao;
@@ -169,8 +209,15 @@
     NuageVspEntityBuilder _nuageVspEntityBuilder;
     @Inject
     VpcDetailsDao _vpcDetailsDao;
+
+    @Inject
+    NetworkModel _networkMgr;
+    @Inject
+    NetworkTopologyContext networkTopologyContext;
     @Inject
     DomainRouterDao _routerDao;
+    @Inject
+    VpcVirtualNetworkApplianceManager _routerMgr;
 
     @Override
     public boolean applyIps(Network network, List<? extends PublicIpAddress> ipAddress, Set<Service> service) throws ResourceUnavailableException {
@@ -183,45 +230,32 @@
     }
 
     private static Map<Service, Map<Capability, String>> setCapabilities() {
-        Map<Service, Map<Capability, String>> capabilities = new HashMap<Service, Map<Capability, String>>();
-
-        // L2 Support : SDN provisioning
-        capabilities.put(Service.Connectivity, null);
-
-        // L3 Support : Generic
-        capabilities.put(Service.Gateway, null);
-
-        // Security Group
-        capabilities.put(Service.SecurityGroup, null);
-
-        // L3 Support : SourceNat
-        Map<Capability, String> sourceNatCapabilities = new HashMap<Capability, String>();
-        sourceNatCapabilities.put(Capability.SupportedSourceNatTypes, "perzone");
-        sourceNatCapabilities.put(Capability.RedundantRouter, "false");
-        capabilities.put(Service.SourceNat, sourceNatCapabilities);
-
-        // L3 support : StaticNat
-        capabilities.put(Service.StaticNat, null);
-
-        // Set capabilities for Firewall service
-        Map<Capability, String> firewallCapabilities = new HashMap<Capability, String>();
-        firewallCapabilities.put(Capability.TrafficStatistics, "per public ip");
-        firewallCapabilities.put(Capability.SupportedProtocols, "tcp,udp,icmp");
-        firewallCapabilities.put(Capability.SupportedEgressProtocols, "tcp,udp,icmp, all");
-        firewallCapabilities.put(Capability.SupportedTrafficDirection, "ingress, egress");
-        firewallCapabilities.put(Capability.MultipleIps, "true");
-        capabilities.put(Service.Firewall, firewallCapabilities);
-
-        // L3 Support : DHCP
-        Map<Capability, String> dhcpCapabilities = new HashMap<Capability, String>();
-        capabilities.put(Service.Dhcp, dhcpCapabilities);
-
-        //add network ACL capability
-        Map<Network.Capability, String> networkACLCapabilities = new HashMap<Network.Capability, String>();
-        networkACLCapabilities.put(Network.Capability.SupportedProtocols, "tcp,udp,icmp");
-        capabilities.put(Network.Service.NetworkACL, networkACLCapabilities);
-
-        return capabilities;
+        return ImmutableMap.<Service, Map<Capability, String>>builder()
+            .put(Service.Connectivity, ImmutableMap.of(
+                    Capability.NoVlan, "",
+                    Capability.PublicAccess, ""
+            ))
+            .put(Service.Gateway, ImmutableMap.<Capability, String>of())
+            .put(Service.SourceNat, ImmutableMap.of(
+                    Capability.SupportedSourceNatTypes, "perzone",
+                    Capability.RedundantRouter, "false"
+            ))
+            .put(Service.StaticNat, ImmutableMap.<Capability, String>of())
+            .put(Service.SecurityGroup, ImmutableMap.<Capability, String>of())
+            .put(Service.Firewall, ImmutableMap.of(
+                    Capability.TrafficStatistics, "per public ip",
+                    Capability.SupportedProtocols, "tcp,udp,icmp",
+                    Capability.SupportedEgressProtocols, "tcp,udp,icmp, all",
+                    Capability.SupportedTrafficDirection, "ingress, egress",
+                    Capability.MultipleIps, "true"
+            ))
+            .put(Service.Dhcp, ImmutableMap.of(
+                    Capability.DhcpAccrossMultipleSubnets, "true"
+            ))
+            .put(Service.NetworkACL, ImmutableMap.of(
+                    Capability.SupportedProtocols, "tcp,udp,icmp"
+            ))
+            .build();
     }
 
     @Override
@@ -247,7 +281,7 @@
             return applyACLRulesForVpc(network, offering);
         }
 
-        if (!canHandle(network, Service.Connectivity)) {
+        if (!canHandle(network, offering, Service.Connectivity)) {
             return false;
         }
 
@@ -257,8 +291,7 @@
         }
 
 
-        VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network, false);
-        List<String> dnsServers = _nuageVspManager.getDnsDetails(network);
+        VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network);
         List<VspAclRule> ingressFirewallRules = getFirewallRulesToApply(network, FirewallRule.TrafficType.Ingress);
         List<VspAclRule> egressFirewallRules = getFirewallRulesToApply(network, FirewallRule.TrafficType.Egress);
 
@@ -267,9 +300,9 @@
         for (IPAddressVO ip : ips) {
             floatingIpUuids.add(ip.getUuid());
         }
-
-        HostVO nuageVspHost = getNuageVspHost(network.getPhysicalNetworkId());
-        ImplementVspCommand cmd = new ImplementVspCommand(vspNetwork, dnsServers, ingressFirewallRules, egressFirewallRules, floatingIpUuids);
+        VspDhcpDomainOption vspDhcpOptions = _nuageVspEntityBuilder.buildNetworkDhcpOption(network, offering);
+        HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(network.getPhysicalNetworkId());
+        ImplementVspCommand cmd = new ImplementVspCommand(vspNetwork, ingressFirewallRules, egressFirewallRules, floatingIpUuids, vspDhcpOptions);
         Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
         if (answer == null || !answer.getResult()) {
             s_logger.error("ImplementVspCommand for network " + network.getUuid() + " failed on Nuage VSD " + nuageVspHost.getDetail("hostname"));
@@ -277,7 +310,6 @@
                 throw new ResourceUnavailableException(answer.getDetails(), Network.class, network.getId());
             }
         }
-
         return true;
     }
 
@@ -335,7 +367,21 @@
         if (!canHandle(network, Service.Connectivity)) {
             return false;
         }
-
+        if (cleanup && isDnsSupportedByVR(network)) {
+            // The network is restarted, possibly the domain name is changed, update the dhcpOptions as soon as possible
+            NetworkOfferingVO networkOfferingVO = _ntwkOfferingDao.findById(network.getNetworkOfferingId());
+            VspDhcpDomainOption vspDhcpOptions = _nuageVspEntityBuilder.buildNetworkDhcpOption(network, networkOfferingVO);
+            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network);
+            HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(network.getPhysicalNetworkId());
+            ShutDownVspCommand cmd = new ShutDownVspCommand(vspNetwork, vspDhcpOptions);
+            Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
+            if (answer == null || !answer.getResult()) {
+                s_logger.error("ShutDownVspCommand for network " + network.getUuid() + " failed on Nuage VSD " + nuageVspHost.getDetail("hostname"));
+                if ((null != answer) && (null != answer.getDetails())) {
+                    throw new ResourceUnavailableException(answer.getDetails(), Network.class, network.getId());
+                }
+            }
+        }
         return true;
     }
 
@@ -356,41 +402,40 @@
 
     @Override
     public boolean destroy(Network network, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException {
-        if (!canHandle(network, Service.Connectivity)) {
-            return false;
-        }
-
-        return true;
+        return canHandle(network, Service.Connectivity);
     }
 
     @Override
     public boolean verifyServicesCombination(Set<Service> services) {
-        // This element can only function in a NuageVsp based
-        // SDN network, so Connectivity needs to be present here
-        if (!services.contains(Service.Connectivity)) {
-            s_logger.warn("Unable to support services combination without Connectivity service provided by Nuage VSP.");
+        Preconditions.checkNotNull(services);
+        final Sets.SetView<Service> missingServices = Sets.difference(REQUIRED_SERVICES, services);
+        final Sets.SetView<Service> unsupportedServices = Sets.intersection(UNSUPPORTED_SERVICES, services);
+        final Sets.SetView<Service> wantedServices = Sets.intersection(NUAGE_ONLY_SERVICES, new HashSet<>());
+
+        if (!missingServices.isEmpty()) {
+            throw new UnsupportedServiceException("Provider " + Provider.NuageVsp + " requires services: " + missingServices);
+        }
+
+        if (!unsupportedServices.isEmpty()) {
+            // NuageVsp doesn't implement any of these services.
+            // So if these services are requested, we can't handle it.
+            s_logger.debug("Unable to support services combination. The services " + unsupportedServices + " are not supported by Nuage VSP.");
             return false;
         }
 
-        if ((services.contains(Service.StaticNat)) && (!services.contains(Service.SourceNat))) {
-            s_logger.warn("Unable to provide StaticNat without the SourceNat service.");
-            return false;
-        }
-
-        if (services.contains(Service.Vpn) || services.contains(Service.Dns) || services.contains(Service.Lb) || services.contains(Service.PortForwarding)
-                || services.contains(Service.SecurityGroup)) {
-            // NuageVsp doesn't implement any of these services, and we don't
-            // want anyone else to do it for us. So if these services
-            // exist, we can't handle it.
-            s_logger.warn("Unable to support services combination. The services list contains service(s) not supported by Nuage VSP.");
-            return false;
+        if (!wantedServices.isEmpty()) {
+            throw new UnsupportedServiceException("Provider " + Provider.NuageVsp + " does not support services to be implemented by another provider: " + wantedServices);
         }
 
         return true;
     }
 
     protected boolean canHandle(Network network, Service service) {
+        NetworkOffering networkOffering = _ntwkOfferingDao.findById(network.getNetworkOfferingId());
+        return canHandle(network, networkOffering, service);
+    }
 
+    protected boolean canHandle(Network network, NetworkOffering networkOffering, Service service) {
         if (network.getBroadcastDomainType() != Networks.BroadcastDomainType.Vsp) {
             return false;
         }
@@ -411,14 +456,35 @@
             }
         }
 
-        if (network.getVpcId() != null) {
-            NetworkOffering networkOffering = _ntwkOfferingDao.findById(network.getNetworkOfferingId());
-            if (!networkOffering.getIsPersistent()) {
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("NuageVsp can't handle VPC tiers which use a network offering which are not persistent");
-                }
-                return false;
+        if (service != Service.Connectivity
+                && !_ntwkSrvcDao.canProviderSupportServiceInNetwork(network.getId(), Service.Connectivity, getProvider())) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("NuageVsp can't handle networks which use a network offering without NuageVsp as Connectivity provider");
             }
+            return false;
+        }
+
+        if (service != Service.SourceNat
+                && networkOffering.getGuestType() == Network.GuestType.Isolated
+                && !_ntwkSrvcDao.canProviderSupportServiceInNetwork(network.getId(), Service.SourceNat, getProvider())) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("NuageVsp can't handle networks which use a network offering without NuageVsp as SourceNat provider");
+            }
+            return false;
+        }
+
+        if (networkOffering.getSpecifyVlan()) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("NuageVsp doesn't support VLAN values for networks");
+            }
+            return false;
+        }
+
+        if (network.getVpcId() != null && !networkOffering.getIsPersistent()) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("NuageVsp can't handle VPC tiers which use a network offering which are not persistent");
+            }
+            return false;
         }
 
         return true;
@@ -436,24 +502,33 @@
         return true;
     }
 
+    private boolean isDnsSupportedByVR(Network network) {
+        return (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Dns) &&
+                ( _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dns,  Provider.VirtualRouter) ||
+                  _networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dns,  Provider.VPCVirtualRouter)));
+    }
+
     @Override
     public boolean removeDhcpSupportForSubnet(Network network) throws ResourceUnavailableException {
         return true;
     }
 
+
     @Override
     public boolean applyStaticNats(Network config, List<? extends StaticNat> rules) throws ResourceUnavailableException {
         List<VspStaticNat> vspStaticNatDetails = new ArrayList<VspStaticNat>();
         for (StaticNat staticNat : rules) {
             IPAddressVO sourceNatIp = _ipAddressDao.findById(staticNat.getSourceIpAddressId());
             VlanVO sourceNatVlan = _vlanDao.findById(sourceNatIp.getVlanId());
+            checkVlanUnderlayCompatibility(sourceNatVlan);
+
             NicVO nicVO = _nicDao.findByIp4AddressAndNetworkId(staticNat.getDestIpAddress(), staticNat.getNetworkId());
             VspStaticNat vspStaticNat = _nuageVspEntityBuilder.buildVspStaticNat(staticNat.isForRevoke(), sourceNatIp, sourceNatVlan, nicVO);
             vspStaticNatDetails.add(vspStaticNat);
         }
 
-        VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(config, false);
-        HostVO nuageVspHost = getNuageVspHost(config.getPhysicalNetworkId());
+        VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(config);
+        HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(config.getPhysicalNetworkId());
         ApplyStaticNatVspCommand cmd = new ApplyStaticNatVspCommand(vspNetwork, vspStaticNatDetails);
         Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
         if (answer == null || !answer.getResult()) {
@@ -466,6 +541,28 @@
         return true;
     }
 
+    private void checkVlanUnderlayCompatibility(VlanVO newVlan) throws ResourceUnavailableException {
+        List<VlanVO> vlans = _vlanDao.listByZone(newVlan.getDataCenterId());
+        if (CollectionUtils.isNotEmpty(vlans)) {
+            boolean newVlanUnderlay = NuageVspUtil.isUnderlayEnabledForVlan(_vlanDetailsDao, newVlan);
+            for (VlanVO vlan : vlans) {
+                if (vlan.getId() == newVlan.getId()) continue;
+
+                final String newCidr = NetUtils.getCidrFromGatewayAndNetmask(newVlan.getVlanGateway(), newVlan.getVlanNetmask());
+                final String existingCidr = NetUtils.getCidrFromGatewayAndNetmask(vlan.getVlanGateway(), vlan.getVlanNetmask());
+
+                NetUtils.SupersetOrSubset supersetOrSubset = NetUtils.isNetowrkASubsetOrSupersetOfNetworkB(newCidr, existingCidr);
+                if (supersetOrSubset == NetUtils.SupersetOrSubset.sameSubnet) {
+                    boolean vlanUnderlay = NuageVspUtil.isUnderlayEnabledForVlan(_vlanDetailsDao, vlan);
+                    if (newVlanUnderlay != vlanUnderlay) {
+                        throw new ResourceUnavailableException("Mixed values for the underlay flag for IP ranges in the same subnet is not supported", Vlan.class, newVlan.getId());
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
     @Override
     public IpDeployer getIpDeployer(Network network) {
         return this;
@@ -490,7 +587,7 @@
 
     protected boolean applyACLRules(final Network network, List<? extends InternalIdentity> rules, boolean isNetworkAcl, boolean networkReset)
             throws ResourceUnavailableException {
-        VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network, false);
+        VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network);
         List<VspAclRule> vspAclRules = Lists.transform(rules, new Function<InternalIdentity, VspAclRule>() {
             @Nullable
             @Override
@@ -502,7 +599,7 @@
             }
         });
 
-        HostVO nuageVspHost = getNuageVspHost(network.getPhysicalNetworkId());
+        HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(network.getPhysicalNetworkId());
         VspAclRule.ACLType vspAclType = isNetworkAcl ? VspAclRule.ACLType.NetworkACL : VspAclRule.ACLType.Firewall;
         ApplyAclRuleVspCommand cmd = new ApplyAclRuleVspCommand(vspAclType, vspNetwork, vspAclRules, networkReset);
         Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
@@ -571,7 +668,7 @@
             });
 
             Domain vpcDomain = _domainDao.findById(vpc.getDomainId());
-            HostVO nuageVspHost = getNuageVspHost(getPhysicalNetworkId(vpc.getZoneId()));
+            HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(getPhysicalNetworkId(vpc.getZoneId()));
 
             String preConfiguredDomainTemplateName;
             VpcDetailVO domainTemplateNameDetail = _vpcDetailsDao.findDetail(vpc.getId(), NuageVspManager.nuageDomainTemplateDetailName);
@@ -646,17 +743,4 @@
         }
         return new DeleteHostAnswer(true);
     }
-
-    private HostVO getNuageVspHost(Long physicalNetworkId) {
-        HostVO nuageVspHost;
-        List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listByPhysicalNetwork(physicalNetworkId);
-        if (nuageVspDevices != null && (!nuageVspDevices.isEmpty())) {
-            NuageVspDeviceVO config = nuageVspDevices.iterator().next();
-            nuageVspHost = _hostDao.findById(config.getHostId());
-            _hostDao.loadDetails(nuageVspHost);
-        } else {
-            throw new CloudRuntimeException("There is no Nuage VSP device configured on physical network " + physicalNetworkId);
-        }
-        return nuageVspHost;
-    }
 }
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java
index d99c71d..735356a 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java
@@ -20,20 +20,14 @@
 package com.cloud.network.guru;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import javax.inject.Inject;
 
-import net.nuage.vsp.acs.client.api.model.VspNetwork;
-import net.nuage.vsp.acs.client.api.model.VspNic;
-import net.nuage.vsp.acs.client.api.model.VspStaticNat;
-import net.nuage.vsp.acs.client.api.model.VspVm;
-
-import org.apache.log4j.Logger;
-
-import com.google.common.base.Strings;
-
 import org.apache.cloudstack.resourcedetail.VpcDetailVO;
 import org.apache.cloudstack.resourcedetail.dao.VpcDetailsDao;
+import org.apache.log4j.Logger;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
@@ -41,6 +35,7 @@
 import com.cloud.agent.api.guru.ImplementNetworkVspCommand;
 import com.cloud.agent.api.guru.ReserveVmInterfaceVspCommand;
 import com.cloud.agent.api.guru.TrashNetworkVspCommand;
+import com.cloud.agent.api.guru.UpdateDhcpOptionVspCommand;
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.DataCenter.NetworkType;
@@ -51,6 +46,7 @@
 import com.cloud.exception.ConcurrentOperationException;
 import com.cloud.exception.InsufficientAddressCapacityException;
 import com.cloud.exception.InsufficientVirtualNetworkCapacityException;
+import com.cloud.exception.UnsupportedServiceException;
 import com.cloud.host.HostVO;
 import com.cloud.host.dao.HostDao;
 import com.cloud.network.Network;
@@ -58,7 +54,6 @@
 import com.cloud.network.Network.State;
 import com.cloud.network.NetworkProfile;
 import com.cloud.network.Networks;
-import com.cloud.network.NuageVspDeviceVO;
 import com.cloud.network.PhysicalNetwork;
 import com.cloud.network.PhysicalNetwork.IsolationMethod;
 import com.cloud.network.dao.IPAddressVO;
@@ -78,11 +73,29 @@
 import com.cloud.util.NuageVspEntityBuilder;
 import com.cloud.utils.StringUtils;
 import com.cloud.utils.db.DB;
-import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.net.Ip;
+import com.cloud.vm.Nic;
 import com.cloud.vm.NicProfile;
 import com.cloud.vm.NicVO;
 import com.cloud.vm.ReservationContext;
+import com.cloud.vm.VMInstanceVO;
+import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.dao.VMInstanceDao;
+import com.google.common.base.Strings;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.LinkedListMultimap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import net.nuage.vsp.acs.client.api.model.VspDhcpDomainOption;
+import net.nuage.vsp.acs.client.api.model.VspDhcpVMOption;
+import net.nuage.vsp.acs.client.api.model.VspDomain;
+import net.nuage.vsp.acs.client.api.model.VspNetwork;
+import net.nuage.vsp.acs.client.api.model.VspNic;
+import net.nuage.vsp.acs.client.api.model.VspStaticNat;
+import net.nuage.vsp.acs.client.api.model.VspVm;
 
 public class NuageVspGuestNetworkGuru extends GuestNetworkGuru {
     public static final Logger s_logger = Logger.getLogger(NuageVspGuestNetworkGuru.class);
@@ -102,6 +115,8 @@
     @Inject
     VpcDao _vpcDao;
     @Inject
+    VMInstanceDao _vmInstanceDao;
+    @Inject
     AgentManager _agentMgr;
     @Inject
     NuageVspManager _nuageVspManager;
@@ -149,7 +164,7 @@
 
         NetworkVO implemented = null;
         try {
-            if (network.getState() != State.Implementing) {
+            if (offering.getGuestType() == GuestType.Isolated && network.getState() != State.Implementing) {
                 throw new IllegalStateException("Network " + networkId + " is not in expected state Implementing, but is in state " + network.getState());
             }
 
@@ -162,6 +177,9 @@
                 throw new InsufficientVirtualNetworkCapacityException(errorMessage, Account.class, network.getAccountId());
             }
 
+            //We don't support a shared network with UserData and multiple IP ranges at the same time.
+            checkMultipleSubnetsCombinedWithUseData(network);
+
             long dcId = dest.getDataCenter().getId();
             //Get physical network id
             Long physicalNetworkId = network.getPhysicalNetworkId();
@@ -182,22 +200,13 @@
                 implemented.setCidr(network.getCidr());
             }
 
-            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(implemented, true);
+            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(implemented);
             String tenantId = context.getDomain().getName() + "-" + context.getAccount().getAccountId();
             String broadcastUriStr = implemented.getUuid() + "/" + vspNetwork.getVirtualRouterIp();
             implemented.setBroadcastUri(Networks.BroadcastDomainType.Vsp.toUri(broadcastUriStr));
             implemented.setBroadcastDomainType(Networks.BroadcastDomainType.Vsp);
 
-            HostVO nuageVspHost = getNuageVspHost(physicalNetworkId);
-            List<String> dnsServers = _nuageVspManager.getDnsDetails(network);
-            ImplementNetworkVspCommand cmd = new ImplementNetworkVspCommand(vspNetwork, dnsServers);
-            Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
-
-            if (answer == null || !answer.getResult()) {
-                s_logger.error("ImplementNetworkVspCommand for network " + network.getUuid() + " failed on Nuage VSD " + nuageVspHost.getDetail("hostname"));
-                if ((null != answer) && (null != answer.getDetails())) {
-                    s_logger.error(answer.getDetails());
-                }
+            if (!implement(physicalNetworkId, vspNetwork, _nuageVspEntityBuilder.buildNetworkDhcpOption(network, offering))) {
                 return null;
             }
 
@@ -218,8 +227,31 @@
         return implemented;
     }
 
+    private boolean implement(long physicalNetworkId, VspNetwork vspNetwork, VspDhcpDomainOption vspDhcpDomainOption) {
+        HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(physicalNetworkId);
+        ImplementNetworkVspCommand cmd = new ImplementNetworkVspCommand(vspNetwork, vspDhcpDomainOption);
+        Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
+        if (answer == null || !answer.getResult()) {
+            s_logger.error("ImplementNetworkVspCommand for network " + vspNetwork.getUuid() + " failed on Nuage VSD " + nuageVspHost.getDetail("hostname"));
+            if ((null != answer) && (null != answer.getDetails())) {
+                s_logger.error(answer.getDetails());
+            }
+            return false;
+        }
+        return true;
+    }
+
     @Override
     public NicProfile allocate(Network network, NicProfile nic, VirtualMachineProfile vm) throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException {
+        if (vm.getType() != VirtualMachine.Type.DomainRouter && _nuageVspEntityBuilder.usesVirtualRouter(network.getNetworkOfferingId())) {
+            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network);
+            if (nic != null && nic.getRequestedIPv4() != null && vspNetwork.getVirtualRouterIp().equals(nic.getRequestedIPv4())) {
+                DataCenter dc = _dcDao.findById(network.getDataCenterId());
+                s_logger.error("Unable to acquire requested Guest IP address " + nic.getRequestedIPv4() + " because it is reserved for the VR in network " + network);
+                throw new InsufficientVirtualNetworkCapacityException("Unable to acquire requested Guest IP address " + nic.getRequestedIPv4() + " because it is reserved " +
+                        "for the VR in network " + network, DataCenter.class,dc.getId());
+            }
+        }
 
         return super.allocate(network, nic, vm);
     }
@@ -233,6 +265,9 @@
         }
 
         try {
+            //We don't support a shared network with UserData and multiple IP ranges at the same time.
+            checkMultipleSubnetsCombinedWithUseData(network);
+
             if (s_logger.isDebugEnabled()) {
                 s_logger.debug("Handling reserve() call back to with Create a new VM or add an interface to existing VM in network " + network.getName());
             }
@@ -247,6 +282,45 @@
                 throw new IllegalStateException("The broadcast URI path " + network.getBroadcastUri() + " is empty or in an incorrect format.");
             }
 
+            HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(network.getPhysicalNetworkId());
+            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(vm.getVirtualMachine().getDomainId(), network);
+
+            if (vspNetwork.isShared()) {
+                vspNetwork = _nuageVspEntityBuilder.updateVspNetworkByPublicIp(vspNetwork, network, nic.getIPv4Address());
+
+                if (VirtualMachine.Type.DomainRouter.equals(vm.getType()) && !nic.getIPv4Address().equals(vspNetwork.getVirtualRouterIp())) {
+                    if(s_logger.isDebugEnabled()) {
+                        s_logger.debug("VR got spawned with a different IP, releasing the previously allocated public IP " + nic.getIPv4Address());
+                    }
+                    IPAddressVO oldIpAddress = _ipAddressDao.findByIpAndSourceNetworkId(network.getId(), nic.getIPv4Address());
+                    _ipAddressDao.unassignIpAddress(oldIpAddress.getId());
+                    _ipAddressDao.mark(network.getDataCenterId(), new Ip(vspNetwork.getVirtualRouterIp()));
+                } else if (VirtualMachine.Type.User.equals(vm.getType()) && nic.getIPv4Address().equals(vspNetwork.getVirtualRouterIp())) {
+                    s_logger.error("Deploying a user VM with the same IP as the VR is not allowed.");
+                    throw new InsufficientVirtualNetworkCapacityException("Deploying a user VM with the same IP " + nic.getIPv4Address() + " as the VR is not allowed.",
+                            Network.class, network.getId());
+                }
+
+                // Make sure the shared network is present
+                NetworkOffering offering = _ntwkOfferingDao.findById(network.getNetworkOfferingId());
+                if (!implement(network.getPhysicalNetworkId(), vspNetwork, _nuageVspEntityBuilder.buildNetworkDhcpOption(network, offering))) {
+                    s_logger.error("Failed to implement shared network " + network.getUuid() + " under domain " + context.getDomain().getUuid());
+                    throw new InsufficientVirtualNetworkCapacityException("Failed to implement shared network " + network.getUuid() + " under domain " +
+                            context.getDomain().getUuid(), Network.class, network.getId());
+                }
+            }
+
+            // Set flags for dhcp options
+            boolean networkHasDns = networkHasDns(network);
+
+            Map<Long, Boolean> networkHasDnsCache = Maps.newHashMap();
+            networkHasDnsCache.put(network.getId(), networkHasDns);
+
+            // Determine if dhcp options of the other nics in the network need to be updated
+            if (vm.getType() == VirtualMachine.Type.DomainRouter && network.getState() != State.Implementing) {
+                updateDhcpOptionsForExistingVms(network, nuageVspHost, vspNetwork, networkHasDns, networkHasDnsCache);
+            }
+
             nic.setBroadcastUri(network.getBroadcastUri());
             nic.setIsolationUri(network.getBroadcastUri());
 
@@ -254,8 +328,6 @@
             //that we create in VSP
             NicVO nicFromDb = _nicDao.findById(nic.getId());
             IPAddressVO staticNatIp = _ipAddressDao.findByVmIdAndNetworkId(network.getId(), vm.getId());
-
-            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network, false);
             VspVm vspVm = _nuageVspEntityBuilder.buildVspVm(vm.getVirtualMachine(), network);
             VspNic vspNic = _nuageVspEntityBuilder.buildVspNic(nicFromDb.getUuid(), nic);
             VspStaticNat vspStaticNat = null;
@@ -264,8 +336,9 @@
                 vspStaticNat = _nuageVspEntityBuilder.buildVspStaticNat(null, staticNatIp, staticNatVlan, vspNic);
             }
 
-            HostVO nuageVspHost = getNuageVspHost(network.getPhysicalNetworkId());
-            ReserveVmInterfaceVspCommand cmd = new ReserveVmInterfaceVspCommand(vspNetwork, vspVm, vspNic, vspStaticNat);
+            boolean defaultHasDns = getDefaultHasDns(networkHasDnsCache, nicFromDb);
+            VspDhcpVMOption dhcpOption = _nuageVspEntityBuilder.buildVmDhcpOption(nicFromDb, defaultHasDns, networkHasDns);
+            ReserveVmInterfaceVspCommand cmd = new ReserveVmInterfaceVspCommand(vspNetwork, vspVm, vspNic, vspStaticNat, dhcpOption);
             Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
 
             if (answer == null || !answer.getResult()) {
@@ -290,25 +363,111 @@
         }
     }
 
+    private void updateDhcpOptionsForExistingVms(Network network, HostVO nuageVspHost, VspNetwork vspNetwork, boolean networkHasDns, Map<Long, Boolean> networkHasDnsCache)
+            throws InsufficientVirtualNetworkCapacityException {
+        // Update dhcp options if a VR is added when we are not initiating the network
+        if(s_logger.isDebugEnabled()) {
+            s_logger.debug(String.format("DomainRouter is added to an existing network: %s in state: %s", network.getName(), network.getState()));
+        }
+
+        List<NicVO> userNics = _nicDao.listByNetworkId(network.getId());
+        LinkedListMultimap<Long, VspDhcpVMOption> dhcpOptionsPerDomain = LinkedListMultimap.create();
+
+        for (NicVO userNic : userNics) {
+            if (userNic.getVmType() == VirtualMachine.Type.DomainRouter) {
+                continue;
+            }
+
+            VMInstanceVO userVm  = _vmInstanceDao.findById(userNic.getInstanceId());
+            boolean defaultHasDns = getDefaultHasDns(networkHasDnsCache, userNic);
+            VspDhcpVMOption dhcpOption = _nuageVspEntityBuilder.buildVmDhcpOption(userNic, defaultHasDns, networkHasDns);
+            dhcpOptionsPerDomain.put(userVm.getDomainId(), dhcpOption);
+        }
+
+        for (Long domainId : dhcpOptionsPerDomain.keySet()) {
+            VspDomain vspDomain = _nuageVspEntityBuilder.buildVspDomain(_domainDao.findById(domainId));
+            VspNetwork vspNetworkForDomain = new VspNetwork.Builder().fromObject(vspNetwork).domain(vspDomain).build();
+            List<VspDhcpVMOption> dhcpOptions = dhcpOptionsPerDomain.get(domainId);
+            UpdateDhcpOptionVspCommand cmd = new UpdateDhcpOptionVspCommand(dhcpOptions, vspNetworkForDomain);
+            Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
+
+            if (answer == null || !answer.getResult()) {
+                s_logger.error("UpdateDhcpOptionVspCommand failed at \"reserve\" for network " + vspNetwork.getName() + " under domain " + vspNetwork.getVspDomain().getName());
+                if ((null != answer) && (null != answer.getDetails())) {
+                    s_logger.error(answer.getDetails());
+                }
+                throw new InsufficientVirtualNetworkCapacityException("Failed to reserve VM in Nuage VSP.", Network.class, network.getId());
+            }
+        }
+    }
+
+    private void checkMultipleSubnetsCombinedWithUseData(Network network) {
+        if (_ntwkOfferingSrvcDao.listServicesForNetworkOffering(network.getNetworkOfferingId()).contains(Network.Service.UserData.getName())) {
+            List<VlanVO> vlanVOs = _vlanDao.listVlansByNetworkId(network.getId());
+            if (vlanVOs.size() > 1) {
+                VlanVO vlanVoItem = vlanVOs.get(0);
+                for (VlanVO VlanVoItem2 : FluentIterable.from(vlanVOs).skip(1)) {
+                    if (!vlanVoItem.equals(VlanVoItem2)
+                            && !VlanVoItem2.getVlanGateway().equals(vlanVoItem.getVlanGateway())) {
+                        s_logger.error("NuageVsp provider does not support multiple subnets in combination with user data. Network: " + network + ", vlans: " + vlanVOs);
+                        throw new UnsupportedServiceException("NuageVsp provider does not support multiple subnets in combination with user data.");
+                    }
+                }
+            }
+        }
+    }
+
     @Override
     protected boolean canHandle(NetworkOffering offering, final NetworkType networkType, final PhysicalNetwork physicalNetwork) {
-        if (networkType == NetworkType.Advanced && isMyTrafficType(offering.getTrafficType()) && (offering.getGuestType() == Network.GuestType.Isolated || offering.getGuestType() == Network.GuestType.Shared)
-                && isMyIsolationMethod(physicalNetwork)) {
+        if (networkType == NetworkType.Advanced
+                && isMyTrafficType(offering.getTrafficType())
+                && isMyIsolationMethod(physicalNetwork)
+                && (offering.getGuestType() == Network.GuestType.Isolated || offering.getGuestType() == Network.GuestType.Shared)
+                && hasRequiredServices(offering)) {
             if (_configMgr.isOfferingForVpc(offering) && !offering.getIsPersistent()) {
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug("NuageVsp can't handle VPC tiers which use a network offering which are not persistent");
                 }
                 return false;
+            } else if (offering.getGuestType() == GuestType.Shared) {
+                List<String> supportedSharedNetworkServices = Lists.newArrayList(Network.Service.Connectivity.getName(), Network.Service.Dhcp.getName(), Network.Service.UserData.getName());
+                List<String> offeringServices = _ntwkOfferingSrvcDao.listServicesForNetworkOffering(offering.getId());
+                if (!supportedSharedNetworkServices.containsAll(offeringServices)) {
+                    if (s_logger.isDebugEnabled()) {
+                        s_logger.debug("We only support " + Iterables.toString(supportedSharedNetworkServices) + " services for shared networks");
+                    }
+                    return false;
+                }
             }
             return true;
         } else {
             if (s_logger.isTraceEnabled()) {
-                s_logger.trace("We only take care of Guest networks of type   " + GuestType.Isolated + " in zone of type " + NetworkType.Advanced);
+                s_logger.trace("We only take care of networks in zone of type " + NetworkType.Advanced + " without VLAN");
             }
             return false;
         }
     }
 
+    private boolean hasRequiredServices(NetworkOffering networkOffering) {
+        final Map<Network.Service, Set<Network.Provider>> serviceProviderMap = _networkModel.getNetworkOfferingServiceProvidersMap(networkOffering.getId());
+
+        if (!serviceProviderMap.get(Network.Service.Connectivity).contains(Network.Provider.NuageVsp)) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("NuageVsp can't handle networks which use a network offering without NuageVsp as Connectivity provider");
+            }
+            return false;
+        }
+
+        if (networkOffering.getGuestType() == GuestType.Isolated
+                && !serviceProviderMap.get(Network.Service.SourceNat).contains(Network.Provider.NuageVsp)) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("NuageVsp can't handle networks which use a network offering without NuageVsp as SourceNat provider");
+            }
+            return false;
+        }
+        return true;
+    }
+
     @Override
     @DB
     public void deallocate(Network network, NicProfile nic, VirtualMachineProfile vm) {
@@ -325,10 +484,10 @@
 
             NicVO nicFromDb = _nicDao.findById(nic.getId());
 
-            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network, false);
+            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(vm.getVirtualMachine().getDomainId(), network);
             VspVm vspVm = _nuageVspEntityBuilder.buildVspVm(vm.getVirtualMachine(), network);
             VspNic vspNic = _nuageVspEntityBuilder.buildVspNic(nicFromDb.getUuid(), nic);
-            HostVO nuageVspHost = getNuageVspHost(network.getPhysicalNetworkId());
+            HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(network.getPhysicalNetworkId());
 
             DeallocateVmVspCommand cmd = new DeallocateVmVspCommand(vspNetwork, vspVm, vspNic);
             Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
@@ -338,6 +497,14 @@
                     s_logger.error(answer.getDetails());
                 }
             }
+
+            // In case of shared network, when a User VM is spawned with the same IP as the VR, and it gets cleaned up, make sure we do not release the public IP
+            // because it is still allocated for the VR.
+            if (vspNetwork.isShared() && VirtualMachine.Type.User.equals(vm.getType()) && nic.getIPv4Address().equals(vspNetwork.getVirtualRouterIp())) {
+                nic.deallocate();
+            } else {
+                super.deallocate(network, nic, vm);
+            }
         } finally {
             if (network != null && lockedNetwork) {
                 _networkDao.releaseFromLockTable(network.getId());
@@ -346,8 +513,6 @@
                 }
             }
         }
-
-        super.deallocate(network, nic, vm);
     }
 
     private boolean lockNetworkForUserVm(Network network, VirtualMachineProfile vm) {
@@ -379,8 +544,8 @@
             if (s_logger.isDebugEnabled()) {
                 s_logger.debug("Handling trash() call back to delete the network " + network.getName() + " with uuid " + network.getUuid() + " from VSP");
             }
-            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network, false);
-            HostVO nuageVspHost = getNuageVspHost(network.getPhysicalNetworkId());
+            VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network);
+            HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(network.getPhysicalNetworkId());
             TrashNetworkVspCommand cmd = new TrashNetworkVspCommand(vspNetwork);
             Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
             if (answer == null || !answer.getResult()) {
@@ -396,16 +561,36 @@
         return super.trash(network, offering);
     }
 
-    private HostVO getNuageVspHost(long physicalNetworkId) {
-        HostVO nuageVspHost;
-        List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listByPhysicalNetwork(physicalNetworkId);
-        if (nuageVspDevices != null && (!nuageVspDevices.isEmpty())) {
-            NuageVspDeviceVO config = nuageVspDevices.iterator().next();
-            nuageVspHost = _hostDao.findById(config.getHostId());
-            _hostDao.loadDetails(nuageVspHost);
-        } else {
-            throw new CloudRuntimeException("There is no Nuage VSP device configured on physical network " + physicalNetworkId);
+    private boolean networkHasDns(Network network) {
+
+        if (network != null) {
+            List<String> dnsProviders = _ntwkOfferingSrvcDao.listProvidersForServiceForNetworkOffering(network.getNetworkOfferingId(), Network.Service.Dns);
+            return dnsProviders.contains(Network.Provider.VirtualRouter.getName())
+                || dnsProviders.contains(Network.Provider.VPCVirtualRouter.getName());
+
         }
-        return nuageVspHost;
+
+        return false;
     }
-}
\ No newline at end of file
+
+    private boolean getDefaultHasDns(Map<Long, Boolean> cache, Nic nic) {
+        Long networkId = nic.isDefaultNic()
+                ? Long.valueOf(nic.getNetworkId())
+                : getDefaultNetwork(nic.getInstanceId());
+
+        Boolean hasDns = cache.get(networkId);
+        if (hasDns == null) {
+            hasDns = networkHasDns(_networkDao.findById(networkId));
+            cache.put(networkId, hasDns);
+        }
+        return hasDns;
+    }
+
+    private Long getDefaultNetwork(long vmId) {
+        NicVO defaultNic = _nicDao.findDefaultNicForVM(vmId);
+        if (defaultNic != null) return defaultNic.getNetworkId();
+        return  null;
+    }
+
+
+}
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManager.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManager.java
index 4861fb2..9f46012 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManager.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManager.java
@@ -23,8 +23,10 @@
 import com.cloud.api.commands.DeleteNuageVspDeviceCmd;
 import com.cloud.api.commands.ListNuageVspDevicesCmd;
 import com.cloud.api.commands.UpdateNuageVspDeviceCmd;
+import com.cloud.api.response.NuageVlanIpRangeResponse;
 import com.cloud.api.response.NuageVspDeviceResponse;
-import com.cloud.network.Network;
+import com.cloud.dc.Vlan;
+import com.cloud.host.HostVO;
 import com.cloud.network.NuageVspDeviceVO;
 import com.cloud.utils.component.PluggableService;
 import org.apache.cloudstack.framework.config.ConfigKey;
@@ -42,6 +44,8 @@
 
     static final String nuageDomainTemplateDetailName = "domainTemplateName";
 
+    static final String nuageUnderlayVlanIpRangeDetailKey = "nuage.underlay";
+
     static final ConfigKey<Boolean> NuageVspConfigDns = new ConfigKey<Boolean>(Boolean.class, "nuagevsp.configure.dns", "Advanced", "true",
             "Defines if NuageVsp plugin needs to configure DNS setting for a VM or not. True will configure the DNS and false will not configure the DNS settings", true,
             Scope.Global, null);
@@ -79,8 +83,14 @@
 
     List<NuageVspDeviceVO> listNuageVspDevices(ListNuageVspDevicesCmd cmd);
 
-    List<String> getDnsDetails(Network network);
+    List<String> getDnsDetails(long dataCenterId);
 
     List<String> getGatewaySystemIds();
 
+    HostVO getNuageVspHost(long physicalNetworkId);
+
+    boolean updateNuageUnderlayVlanIpRange(long vlanIpRangeId, boolean enabled);
+
+    List<NuageVlanIpRangeResponse> filterNuageVlanIpRanges(List<? extends Vlan> vlanIpRanges, Boolean underlay);
+
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java
index 04b1ccc..3a90163 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java
@@ -19,6 +19,49 @@
 
 package com.cloud.network.manager;
 
+import static com.cloud.agent.api.sync.SyncNuageVspCmsIdCommand.SyncType;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.ExecutionException;
+
+import javax.inject.Inject;
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.api.NuageVspPluginClientLoader;
+import net.nuage.vsp.acs.client.api.model.VspApiDefaults;
+import net.nuage.vsp.acs.client.api.model.VspDomain;
+import net.nuage.vsp.acs.client.api.model.VspDomainCleanUp;
+import net.nuage.vsp.acs.client.api.model.VspHost;
+import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
+import net.nuage.vsp.acs.client.common.NuageVspConstants;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
+import org.apache.cloudstack.api.ResponseGenerator;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.Configurable;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
+import org.apache.cloudstack.framework.messagebus.MessageBus;
+import org.apache.cloudstack.framework.messagebus.MessageSubscriber;
+import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
+
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.Listener;
 import com.cloud.agent.api.AgentControlAnswer;
@@ -27,21 +70,32 @@
 import com.cloud.agent.api.Command;
 import com.cloud.agent.api.PingNuageVspCommand;
 import com.cloud.agent.api.StartupCommand;
+import com.cloud.agent.api.manager.CleanUpDomainCommand;
+import com.cloud.agent.api.manager.EntityExistsCommand;
 import com.cloud.agent.api.manager.GetApiDefaultsAnswer;
 import com.cloud.agent.api.manager.GetApiDefaultsCommand;
 import com.cloud.agent.api.manager.SupportedApiVersionCommand;
-import com.cloud.agent.api.sync.SyncDomainAnswer;
+import com.cloud.agent.api.manager.UpdateNuageVspDeviceCommand;
 import com.cloud.agent.api.sync.SyncDomainCommand;
 import com.cloud.agent.api.sync.SyncNuageVspCmsIdAnswer;
 import com.cloud.agent.api.sync.SyncNuageVspCmsIdCommand;
 import com.cloud.api.ApiDBUtils;
 import com.cloud.api.commands.AddNuageVspDeviceCmd;
 import com.cloud.api.commands.DeleteNuageVspDeviceCmd;
+import com.cloud.api.commands.DisableNuageUnderlayVlanIpRangeCmd;
+import com.cloud.api.commands.EnableNuageUnderlayVlanIpRangeCmd;
+import com.cloud.api.commands.ListNuageUnderlayVlanIpRangesCmd;
 import com.cloud.api.commands.ListNuageVspDevicesCmd;
 import com.cloud.api.commands.UpdateNuageVspDeviceCmd;
+import com.cloud.api.response.NuageVlanIpRangeResponse;
 import com.cloud.api.response.NuageVspDeviceResponse;
 import com.cloud.dc.DataCenterVO;
+import com.cloud.dc.Vlan;
+import com.cloud.dc.VlanDetailsVO;
+import com.cloud.dc.VlanVO;
 import com.cloud.dc.dao.DataCenterDao;
+import com.cloud.dc.dao.VlanDao;
+import com.cloud.dc.dao.VlanDetailsDao;
 import com.cloud.domain.Domain;
 import com.cloud.domain.DomainVO;
 import com.cloud.domain.dao.DomainDao;
@@ -69,6 +123,7 @@
 import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
 import com.cloud.network.dao.PhysicalNetworkVO;
 import com.cloud.network.resource.NuageVspResource;
+import com.cloud.network.resource.NuageVspResourceConfiguration;
 import com.cloud.network.vpc.VpcManager;
 import com.cloud.network.vpc.VpcOffering;
 import com.cloud.network.vpc.VpcOfferingServiceMapVO;
@@ -86,6 +141,7 @@
 import com.cloud.resource.ResourceState;
 import com.cloud.user.AccountManager;
 import com.cloud.user.DomainManager;
+import com.cloud.util.NuageVspEntityBuilder;
 import com.cloud.util.NuageVspUtil;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.db.DB;
@@ -96,40 +152,6 @@
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.fsm.StateListener;
 import com.cloud.utils.fsm.StateMachine2;
-import com.google.common.base.Joiner;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import com.cloud.util.NuageVspEntityBuilder;
-import net.nuage.vsp.acs.NuageVspPluginClientLoader;
-import net.nuage.vsp.acs.client.api.model.VspApiDefaults;
-import net.nuage.vsp.acs.client.api.model.VspDomain;
-import org.apache.cloudstack.framework.config.ConfigKey;
-import org.apache.cloudstack.framework.config.Configurable;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
-import org.apache.cloudstack.framework.messagebus.MessageBus;
-import org.apache.cloudstack.framework.messagebus.MessageSubscriber;
-import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.log4j.Logger;
-
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.ExecutionException;
-
-import static com.cloud.agent.api.sync.SyncNuageVspCmsIdCommand.SyncType;
 
 public class NuageVspManagerImpl extends ManagerBase implements NuageVspManager, Configurable, StateListener<Status, Status.Event, Host> {
 
@@ -138,6 +160,7 @@
     public static final Map<Network.Service, Set<Network.Provider>> NUAGE_VSP_VPC_SERVICE_MAP;
     private static final ConfigKey[] NUAGE_VSP_CONFIG_KEYS = new ConfigKey<?>[] { NuageVspConfigDns, NuageVspDnsExternal, NuageVspConfigGateway,
             NuageVspSharedNetworkDomainTemplateName, NuageVspVpcDomainTemplateName, NuageVspIsolatedNetworkDomainTemplateName };
+    public static final String CMSID_CONFIG_KEY = "nuagevsp.cms.id";
 
     @Inject
     ResourceManager _resourceMgr;
@@ -185,13 +208,19 @@
     NetworkOfferingServiceMapDao _networkOfferingServiceMapDao;
     @Inject
     NuageVspEntityBuilder _nuageVspEntityBuilder;
+    @Inject
+    VlanDao _vlanDao;
+    @Inject
+    VlanDetailsDao _vlanDetailsDao;
+    @Inject
+    ResponseGenerator _responseGenerator;
 
     @Inject
     MessageBus _messageBus;
 
     static {
         Set<Network.Provider> nuageVspProviders = ImmutableSet.of(Network.Provider.NuageVsp);
-        Set<Network.Provider> userDataProviders = ImmutableSet.of(Network.Provider.VPCVirtualRouter);
+        Set<Network.Provider> vrProviders = ImmutableSet.of(Network.Provider.VPCVirtualRouter);
         Set<Network.Provider> lbProviders = ImmutableSet.of(Network.Provider.InternalLbVm);
         NUAGE_VSP_VPC_SERVICE_MAP = ImmutableMap.<Network.Service, Set<Network.Provider>>builder()
                 .put(Network.Service.Connectivity, nuageVspProviders)
@@ -200,15 +229,16 @@
                 .put(Network.Service.StaticNat, nuageVspProviders)
                 .put(Network.Service.SourceNat, nuageVspProviders)
                 .put(Network.Service.NetworkACL, nuageVspProviders)
-                .put(Network.Service.UserData, userDataProviders)
+                .put(Network.Service.UserData, vrProviders)
                 .put(Network.Service.Lb, lbProviders)
+                .put(Network.Service.Dns, vrProviders)
                 .build();
     }
 
     @Override
     public List<Class<?>> getCommands() {
         return Lists.<Class<?>>newArrayList(AddNuageVspDeviceCmd.class, DeleteNuageVspDeviceCmd.class, ListNuageVspDevicesCmd.class,
-                UpdateNuageVspDeviceCmd.class);
+                UpdateNuageVspDeviceCmd.class, EnableNuageUnderlayVlanIpRangeCmd.class, DisableNuageUnderlayVlanIpRangeCmd.class, ListNuageUnderlayVlanIpRangesCmd.class);
     }
 
     @Override
@@ -237,37 +267,65 @@
             throw new CloudRuntimeException("A NuageVsp device is already configured on this physical network");
         }
 
+        // While the default VSD port is 8443, clustering via HAProxy will go over port 443 (CLOUD-58)
+        int port = cmd.getPort() > 0 ? cmd.getPort() : 443;
+
         try {
-            NuageVspPluginClientLoader clientLoader = NuageVspPluginClientLoader.getClientLoader(null, null, null, null, 1, 1, null);
+            String apiVersion = null;
 
-            VspApiDefaults apiDefaults = clientLoader.getNuageVspManagerClient().getApiDefaults();
-            String apiVersion = MoreObjects.firstNonNull(cmd.getApiVersion(), apiDefaults.getVersion());
-            if (!clientLoader.getNuageVspManagerClient().isSupportedApiVersion(apiVersion)) {
-                throw new CloudRuntimeException("Unsupported API version : " + apiVersion);
-            }
-
-            int port = cmd.getPort();
-            if (0 == port) {
-                port = 443;
-            }
             String cmsUserPasswordBase64 = NuageVspUtil.encodePassword(cmd.getPassword());
-            String retryCount = String.valueOf(MoreObjects.firstNonNull(cmd.getApiRetryCount(), apiDefaults.getRetryCount()));
-            String retryInterval = String.valueOf(MoreObjects.firstNonNull(cmd.getApiRetryInterval(), apiDefaults.getRetryInterval()));
-            NuageVspResource.Configuration resourceConfiguration = new NuageVspResource.Configuration()
-                    .name("Nuage VSD - " + cmd.getHostName())
+
+            NuageVspResourceConfiguration resourceConfiguration = new NuageVspResourceConfiguration()
                     .guid(UUID.randomUUID().toString())
                     .zoneId(String.valueOf(physicalNetwork.getDataCenterId()))
                     .hostName(cmd.getHostName())
                     .cmsUser(cmd.getUserName())
                     .cmsUserPassword(cmsUserPasswordBase64)
                     .port(String.valueOf(port))
+                    .apiVersion(NuageVspApiVersion.CURRENT.toString())
+                    .retryCount(NuageVspConstants.DEFAULT_API_RETRY_COUNT.toString())
+                    .retryInterval(NuageVspConstants.DEFAULT_API_RETRY_INTERVAL.toString())
+                    .apiRelativePath("/nuage");
+
+            VspHost vspHost = resourceConfiguration.buildVspHost();
+            NuageVspPluginClientLoader clientLoader = NuageVspPluginClientLoader.getClientLoader(vspHost);
+            VspApiDefaults apiDefaults = clientLoader.getNuageVspManagerClient().getApiDefaults();
+
+
+            if (StringUtils.isNotBlank(cmd.getApiVersion())){
+                if (!clientLoader.getNuageVspManagerClient().isSupportedApiVersion(cmd.getApiVersion())){
+                    throw new CloudRuntimeException("Unsupported API version : " + cmd.getApiVersion());
+                }
+                apiVersion = cmd.getApiVersion();
+            } else {
+                boolean apiVersionFound = false;
+                Map<NuageVspApiVersion, NuageVspApiVersion.Status> supportedVersions = clientLoader.getNuageVspManagerClient().getSupportedVersions();
+                for (NuageVspApiVersion selectedVersion : supportedVersions.keySet()) {
+                    if (supportedVersions.get(selectedVersion) == NuageVspApiVersion.Status.CURRENT){
+                        apiVersion = selectedVersion.toString();
+                        apiVersionFound = true;
+                        break;
+                    }
+                }
+
+                if(!apiVersionFound) {
+                    throw new CloudRuntimeException("No supported API version found!");
+                }
+            }
+
+
+            String retryCount = String.valueOf(MoreObjects.firstNonNull(cmd.getApiRetryCount(), apiDefaults.getRetryCount()));
+            String retryInterval = String.valueOf(MoreObjects.firstNonNull(cmd.getApiRetryInterval(), apiDefaults.getRetryInterval()));
+
+            resourceConfiguration
                     .apiVersion(apiVersion)
                     .apiRelativePath("/nuage/api/" + apiVersion)
                     .retryCount(retryCount)
                     .retryInterval(retryInterval);
-
             Map<String, String> hostDetails = resourceConfiguration.build();
-            resource.configure(cmd.getHostName(), Maps.<String, Object>newHashMap(hostDetails));
+            resource.configure("Nuage VSD - " + cmd.getHostName(), Maps.<String, Object>newHashMap(hostDetails));
+
+
             Host host = _resourceMgr.addHost(zoneId, resource, Host.Type.L2Networking, hostDetails);
             if (host == null) {
                 throw new CloudRuntimeException("Failed to add Nuage Vsp Device due to internal error.");
@@ -279,11 +337,10 @@
             DetailVO detail = new DetailVO(host.getId(), "nuagevspdeviceid", String.valueOf(nuageVspDevice.getId()));
             _hostDetailsDao.persist(detail);
 
-            ConfigurationVO cmsIdConfig = _configDao.findByName("nuagevsp.cms.id");
             NuageVspDeviceVO matchingNuageVspDevice = findMatchingNuageVspDevice(nuageVspDevice);
             String cmsId;
             if (matchingNuageVspDevice != null) {
-                cmsId = findNuageVspCmsIdForDevice(matchingNuageVspDevice.getId(), cmsIdConfig);
+                cmsId = findNuageVspCmsIdForDeviceOrHost(matchingNuageVspDevice.getId(), matchingNuageVspDevice.getHostId());
             } else {
                 SyncNuageVspCmsIdCommand syncCmd = new SyncNuageVspCmsIdCommand(SyncType.REGISTER, null);
                 SyncNuageVspCmsIdAnswer answer = (SyncNuageVspCmsIdAnswer) _agentMgr.easySend(nuageVspDevice.getHostId(), syncCmd);
@@ -295,16 +352,13 @@
             }
 
             host = findNuageVspHost(nuageVspDevice.getHostId());
-            registerNewNuageVspDevice(cmsIdConfig, nuageVspDevice.getId() + ":" + cmsId);
-
-            detail = new DetailVO(host.getId(), "nuagevspcmsid", cmsId);
-            _hostDetailsDao.persist(detail);
+            registerNewNuageVspDevice(host.getId(), cmsId);
 
             resourceConfiguration.nuageVspCmsId(cmsId);
             resource.configure(cmd.getHostName(), Maps.<String, Object>newHashMap(resourceConfiguration.build()));
 
             if (matchingNuageVspDevice == null) {
-                auditDomainsOnVsp((HostVO) host, true, false);
+                auditDomainsOnVsp((HostVO) host, true);
             }
 
             return nuageVspDevice;
@@ -350,56 +404,73 @@
             _hostDao.loadDetails(nuageVspHost);
         }
 
-        boolean updateRequired = false;
-        NuageVspResource.Configuration resourceConfiguration = NuageVspResource.Configuration.fromConfiguration(nuageVspHost.getDetails());
+        boolean resourceConfigurationChanged = false;
+        NuageVspResourceConfiguration resourceConfiguration = NuageVspResourceConfiguration.fromConfiguration(nuageVspHost.getDetails());
         if (!Strings.isNullOrEmpty(command.getHostName()) &&
                 !command.getHostName().equals(resourceConfiguration.hostName())) {
-            resourceConfiguration.name("Nuage VSD - " + command.getHostName());
             resourceConfiguration.hostName(command.getHostName());
-            updateRequired = true;
+            resourceConfigurationChanged = true;
         }
 
         if (!Strings.isNullOrEmpty(command.getUserName()) &&
                 !command.getUserName().equals(resourceConfiguration.cmsUser())) {
             resourceConfiguration.cmsUser(command.getUserName());
-            updateRequired = true;
+            resourceConfigurationChanged = true;
         }
 
         if (!Strings.isNullOrEmpty(command.getPassword())) {
             String encodedNewPassword = NuageVspUtil.encodePassword(command.getPassword());
             if (!encodedNewPassword.equals(resourceConfiguration.cmsUserPassword())) {
                 resourceConfiguration.cmsUserPassword(encodedNewPassword);
-                updateRequired = true;
+                resourceConfigurationChanged = true;
             }
         }
 
         if (command.getPort() != null &&
                 command.getPort() != Integer.parseInt(resourceConfiguration.port())) {
             resourceConfiguration.port(String.valueOf(command.getPort()));
-            updateRequired = true;
+            resourceConfigurationChanged = true;
         }
 
-        GetApiDefaultsCommand apiDefaultsCmd = new GetApiDefaultsCommand();
-        GetApiDefaultsAnswer apiDefaultsAnswer = (GetApiDefaultsAnswer) _agentMgr.easySend(nuageVspHost.getId(), apiDefaultsCmd);
         String apiVersion = MoreObjects.firstNonNull(command.getApiVersion(), resourceConfiguration.apiVersion());
-        SupportedApiVersionCommand supportedApiVersionCmd = new SupportedApiVersionCommand(apiVersion);
-        Answer supportedApiVersionAnswer = _agentMgr.easySend(nuageVspHost.getId(), supportedApiVersionCmd);
-        if (!supportedApiVersionAnswer.getResult()) {
-            throw new CloudRuntimeException("Incorrect API version: Nuage plugin only supports " + apiDefaultsAnswer.getApiDefaults().getVersion());
+        NuageVspApiVersion apiVersionObj = NuageVspApiVersion.fromString(apiVersion);
+        NuageVspApiVersion apiVersionCurrent = null;
+        try {
+            apiVersionCurrent = resourceConfiguration.getApiVersion();
+        } catch (ConfigurationException e){
+            throw new CloudRuntimeException("Current version is not configured correctly");
         }
 
-        String apiRelativePath = "/nuage/api/" + apiVersion;
-        if (!apiRelativePath.equals(resourceConfiguration.apiRelativePath())) {
-            resourceConfiguration.apiVersion(apiVersion);
-            resourceConfiguration.apiRelativePath(apiRelativePath);
-            updateRequired = true;
+
+        if(command.getApiVersion() != null){
+            if(apiVersionObj.compareTo(apiVersionCurrent) < 0) {
+                throw new CloudRuntimeException("Downgrading is not supported");
+            }
+
+            GetApiDefaultsCommand apiDefaultsCmd = new GetApiDefaultsCommand();
+            GetApiDefaultsAnswer apiDefaultsAnswer = (GetApiDefaultsAnswer) _agentMgr.easySend(nuageVspHost.getId(), apiDefaultsCmd);
+
+            SupportedApiVersionCommand supportedApiVersionCmd = new SupportedApiVersionCommand(apiVersion);
+            Answer supportedApiVersionAnswer = _agentMgr.easySend(nuageVspHost.getId(), supportedApiVersionCmd);
+
+            if (!supportedApiVersionAnswer.getResult()) {
+                throw new CloudRuntimeException("Incorrect API version: Nuage plugin only supports " + apiDefaultsAnswer.getApiDefaults().getVersion());
+            }
+
+            String apiRelativePath = "/nuage/api/" + apiVersion;
+            if (!apiRelativePath.equals(resourceConfiguration.apiRelativePath())) {
+                resourceConfiguration.apiVersion(apiVersion);
+                resourceConfiguration.apiRelativePath(apiRelativePath);
+                resourceConfigurationChanged = true;
+            }
+
         }
 
         if (command.getApiRetryCount() != null && resourceConfiguration.retryCount() != null) {
             final int retryCount = Integer.parseInt(resourceConfiguration.retryCount());
             if (command.getApiRetryCount() != retryCount) {
                 resourceConfiguration.retryCount(String.valueOf(command.getApiRetryCount()));
-                updateRequired = true;
+                resourceConfigurationChanged = true;
             }
         }
 
@@ -407,11 +478,11 @@
             final int apiRetryInterval = Integer.parseInt(resourceConfiguration.retryInterval());
             if (command.getApiRetryInterval() != apiRetryInterval) {
                 resourceConfiguration.retryInterval(String.valueOf(command.getApiRetryInterval()));
-                updateRequired = true;
+                resourceConfigurationChanged = true;
             }
         }
 
-        if (!updateRequired) {
+        if (!resourceConfigurationChanged) {
             if (s_logger.isDebugEnabled()) {
                 s_logger.debug("No change in the NuageVsp device parameters. None of the NuageVsp device parameters are modified");
             }
@@ -419,13 +490,21 @@
         }
 
         Map<String, String> config = resourceConfiguration.build();
-        String updateParameters = "{" + Joiner.on(", ").withKeyValueSeparator(": ").join(config) + "}";
-        Map<String, Object> hostDetails = Maps.<String, Object>newHashMap(config);
         try {
-            resource.configure(resourceConfiguration.hostName(), hostDetails);
+            resource.validate(config);
+
+            UpdateNuageVspDeviceCommand cmd = new UpdateNuageVspDeviceCommand(resourceConfiguration);
+            Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
+            if (answer == null || !answer.getResult()) {
+                s_logger.error("UpdateNuageVspDeviceCommand failed");
+                if ((null != answer) && (null != answer.getDetails())) {
+                    throw new CloudRuntimeException(answer.getDetails());
+                }
+            }
+
             _hostDetailsDao.persist(nuageVspDevice.getHostId(), config);
         } catch (ConfigurationException e) {
-            throw new CloudRuntimeException("Failed to update Nuage VSP device " + nuageVspDevice.getId() + " with parameters " + updateParameters, e);
+            throw new CloudRuntimeException("Failed to update Nuage VSP device " + nuageVspDevice.getId() + " with parameters " + resourceConfiguration, e);
         }
         return nuageVspDevice;
     }
@@ -435,7 +514,7 @@
         HostVO nuageVspHost = _hostDao.findById(nuageVspDeviceVO.getHostId());
         _hostDao.loadDetails(nuageVspHost);
 
-        NuageVspResource.Configuration resourceConfiguration = NuageVspResource.Configuration.fromConfiguration(nuageVspHost.getDetails());
+        NuageVspResourceConfiguration resourceConfiguration = NuageVspResourceConfiguration.fromConfiguration(nuageVspHost.getDetails());
         NuageVspDeviceResponse response = new NuageVspDeviceResponse();
         response.setDeviceName(nuageVspDeviceVO.getDeviceName());
         PhysicalNetwork pnw = ApiDBUtils.findPhysicalNetworkById(nuageVspDeviceVO.getPhysicalNetworkId());
@@ -482,11 +561,11 @@
         }
 
         NuageVspDeviceVO matchingNuageVspDevice = findMatchingNuageVspDevice(nuageVspDevice);
-        ConfigurationVO cmsIdConfig = _configDao.findByName("nuagevsp.cms.id");
-        HostVO host = findNuageVspHost(nuageVspDevice.getHostId());
-        String nuageVspCmsId = findNuageVspCmsIdForDevice(nuageVspDevice.getId(), cmsIdConfig);
+
+        String nuageVspCmsId = findNuageVspCmsIdForDeviceOrHost(nuageVspDevice.getId(), nuageVspDevice.getHostId());
         if (matchingNuageVspDevice == null) {
-            if (!auditDomainsOnVsp(host, false, true)) {
+            HostVO host = findNuageVspHost(nuageVspDevice.getHostId());
+            if (!auditDomainsOnVsp(host, false)) {
                 return false;
             }
 
@@ -497,15 +576,7 @@
             }
         }
 
-        String newValue = cmsIdConfig.getValue().replace(nuageVspDevice.getId() + ":" + nuageVspCmsId, "");
-        if (newValue.startsWith(";")) {
-            newValue = newValue.substring(1);
-        }
-        if (newValue.endsWith(";")) {
-            newValue = newValue.substring(0, newValue.length() - 1);
-        }
-        newValue = newValue.replaceAll(";+", ";");
-        _configDao.update("nuagevsp.cms.id", newValue);
+        removeLegacyNuageVspDeviceCmsId(nuageVspDevice.getId());
 
         HostVO nuageHost = _hostDao.findById(nuageVspDevice.getHostId());
         Long hostId = nuageHost.getId();
@@ -519,15 +590,15 @@
     }
 
     private NuageVspDeviceVO findMatchingNuageVspDevice(NuageVspDeviceVO nuageVspDevice) {
+        DetailVO nuageVspDeviceHost =  _hostDetailsDao.findDetail(nuageVspDevice.getHostId(), "hostname");
+        String nuageVspDeviceHostName = (nuageVspDeviceHost != null) ? nuageVspDeviceHost.getValue(): null;
+
         List<NuageVspDeviceVO> otherNuageVspDevices = _nuageVspDao.listAll();
         for (NuageVspDeviceVO otherNuageVspDevice : otherNuageVspDevices) {
             if (otherNuageVspDevice.getId() == nuageVspDevice.getId()) continue;
 
-            HostVO nuageVspDeviceHost = findNuageVspHost(nuageVspDevice.getHostId());
-            HostVO otherNuageVspDeviceHost = findNuageVspHost(otherNuageVspDevice.getHostId());
-            String nuageVspDeviceHostName = nuageVspDeviceHost.getDetail("hostname");
-            String otherNuageVspDeviceHostName = otherNuageVspDeviceHost.getDetail("hostname");
-            if (otherNuageVspDeviceHostName != null && otherNuageVspDeviceHostName.equals(nuageVspDeviceHostName)) {
+            DetailVO otherNuageVspDeviceHostName = _hostDetailsDao.findDetail(otherNuageVspDevice.getHostId(), "hostname");
+            if (otherNuageVspDeviceHostName != null && nuageVspDeviceHostName.equals(otherNuageVspDeviceHostName.getValue())) {
                 return otherNuageVspDevice;
             }
         }
@@ -561,24 +632,51 @@
         return responseList;
     }
 
-    private void registerNewNuageVspDevice(ConfigurationVO currentConfig, String registeredNuageVspDevice) {
-        if (currentConfig == null) {
-            ConfigKey<String> configKey = new ConfigKey<String>("Advanced", String.class, "nuagevsp.cms.id", registeredNuageVspDevice,
-                    "<ACS Nuage VSP Device ID>:<Allocated VSD CMS ID> - Do not edit", false);
-            ConfigurationVO configuration = new ConfigurationVO("management-server", configKey);
-            _configDao.persist(configuration);
-        } else {
-            String newValue;
-            String currentValue = currentConfig.getValue();
-            if (!Strings.isNullOrEmpty(currentValue)) {
-                newValue = currentValue + ";" + registeredNuageVspDevice;
+    private void registerNewNuageVspDevice(long hostId, String cmsId) {
+        DetailVO detail = new DetailVO(hostId, "nuagevspcmsid", cmsId);
+        _hostDetailsDao.persist(detail);
+    }
+
+    @Deprecated
+    private void removeLegacyNuageVspDeviceCmsId(long deviceId) {
+        ConfigurationVO cmsIdConfig = _configDao.findByName(CMSID_CONFIG_KEY);
+        if (cmsIdConfig != null) {
+            if (!cmsIdConfig.getValue().contains(";") && cmsIdConfig.getValue().startsWith(deviceId + ":")) {
+                _configDao.update(CMSID_CONFIG_KEY, "Advanced", "");
             } else {
-                newValue = registeredNuageVspDevice;
+                String newValue = cmsIdConfig.getValue().replace(String.format("(^|;)%d:[0-9a-f\\-]+;?", deviceId), ";");
+                _configDao.update(CMSID_CONFIG_KEY, "Advanced", newValue);
             }
-            _configDao.update("nuagevsp.cms.id", newValue);
         }
     }
 
+    public boolean executeSyncCmsId(NuageVspDeviceVO nuageVspDevice, SyncType syncType) {
+        NuageVspDeviceVO matchingNuageVspDevice = findMatchingNuageVspDevice(nuageVspDevice);
+        if (syncType == SyncType.REGISTER && matchingNuageVspDevice != null) {
+            String cmsId = findNuageVspCmsIdForDeviceOrHost(matchingNuageVspDevice.getId(), matchingNuageVspDevice.getHostId());
+            registerNewNuageVspDevice(nuageVspDevice.getHostId(), cmsId);
+            return true;
+        }
+
+        String cmsId = findNuageVspCmsIdForDeviceOrHost(nuageVspDevice.getId(), nuageVspDevice.getHostId());
+
+        SyncNuageVspCmsIdCommand syncCmd = new SyncNuageVspCmsIdCommand(syncType, cmsId);
+        SyncNuageVspCmsIdAnswer answer = (SyncNuageVspCmsIdAnswer) _agentMgr.easySend(nuageVspDevice.getHostId(), syncCmd);
+        if (answer != null) {
+            if (answer.getSuccess()) {
+                if (syncType == SyncType.REGISTER || answer.getSyncType() == SyncType.REGISTER) {
+                    registerNewNuageVspDevice(nuageVspDevice.getHostId(), answer.getNuageVspCmsId());
+                } else if (syncType == SyncType.UNREGISTER) {
+                    removeLegacyNuageVspDeviceCmsId(nuageVspDevice.getId());
+                }
+            } else if (syncType == SyncType.AUDIT || syncType == SyncType.AUDIT_ONLY) {
+                s_logger.fatal("Nuage VSP Device with ID " + nuageVspDevice.getId() + " is configured with an unknown CMS ID!");
+            }
+        }
+
+        return answer != null && answer.getSuccess();
+    }
+
     private void auditHost(HostVO host) {
         if (host == null) return;
 
@@ -588,8 +686,7 @@
         List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listByHost(host.getId());
         if (!CollectionUtils.isEmpty(nuageVspDevices)) {
             for (NuageVspDeviceVO nuageVspDevice : nuageVspDevices) {
-                ConfigurationVO cmsIdConfig = _configDao.findByName("nuagevsp.cms.id");
-                String nuageVspCmsId = findNuageVspCmsIdForDevice(nuageVspDevice.getId(), cmsIdConfig);
+                String nuageVspCmsId = findNuageVspCmsIdForDeviceOrHost(nuageVspDevice.getId(), nuageVspDevice.getHostId());
                 SyncNuageVspCmsIdCommand syncCmd = new SyncNuageVspCmsIdCommand(SyncType.AUDIT, nuageVspCmsId);
                 SyncNuageVspCmsIdAnswer answer = (SyncNuageVspCmsIdAnswer) _agentMgr.easySend(nuageVspDevice.getHostId(), syncCmd);
 
@@ -597,58 +694,98 @@
                     s_logger.error("Nuage VSP Device with ID " + nuageVspDevice.getId() + " is configured with an unknown CMS ID!");
                     validateDomains = false;
                 } else if (answer != null && answer.getSyncType() == SyncType.REGISTER) {
-                    registerNewNuageVspDevice(cmsIdConfig, nuageVspDevice.getId() + ":" + answer.getNuageVspCmsId());
+                    registerNewNuageVspDevice(nuageVspDevice.getHostId(), answer.getNuageVspCmsId());
                 }
             }
         }
 
         if (validateDomains) {
-            auditDomainsOnVsp(host, true, false);
+            auditDomainsOnVsp(host, true);
         }
     }
 
-    private boolean auditDomainsOnVsp(HostVO host, boolean add, boolean remove) {
+    private boolean auditDomainsOnVsp(HostVO host, boolean add) {
         List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listByHost(host.getId());
         if (CollectionUtils.isEmpty(nuageVspDevices)) {
             return true;
         }
 
+        final SyncDomainCommand.Type action = add ? SyncDomainCommand.Type.ADD : SyncDomainCommand.Type.REMOVE;
+
         _hostDao.loadDetails(host);
         List<DomainVO> allDomains = _domainDao.listAll();
         for (DomainVO domain : allDomains) {
+            if (action == SyncDomainCommand.Type.REMOVE) {
+                VspDomainCleanUp vspDomainCleanUp = _nuageVspEntityBuilder.buildVspDomainCleanUp(domain);
+                CleanUpDomainCommand cmd = new CleanUpDomainCommand(vspDomainCleanUp);
+                Answer answer = _agentMgr.easySend(host.getId(), cmd);
+                if (!answer.getResult()) {
+                    return false;
+                }
+            }
+
             VspDomain vspDomain = _nuageVspEntityBuilder.buildVspDomain(domain);
-            SyncDomainCommand cmd = new SyncDomainCommand(vspDomain, add, remove);
-            SyncDomainAnswer answer = (SyncDomainAnswer) _agentMgr.easySend(host.getId(), cmd);
-            return answer.getSuccess();
+            SyncDomainCommand cmd = new SyncDomainCommand(vspDomain, action);
+            Answer answer = _agentMgr.easySend(host.getId(), cmd);
+            if (!answer.getResult()) {
+                return false;
+            }
         }
         return true;
     }
 
-    private String findNuageVspCmsIdForDevice(long deviceId, ConfigurationVO cmsIdConfig) {
-        String configValue = cmsIdConfig.getValue();
-        if (!Strings.isNullOrEmpty(configValue)) {
-            String[] configuredNuageVspDevices = configValue.split(";");
-            for (String configuredNuageVspDevice : configuredNuageVspDevices) {
-                if (configuredNuageVspDevice.startsWith(deviceId + ":")) {
-                    String[] split = configuredNuageVspDevice.split(":");
-                    if (split.length != 2 || (split.length > 1 && Strings.isNullOrEmpty(split[1]))) {
-                        throw new IllegalArgumentException("The configured CMS ID for Nuage VSP device " + deviceId + " is in an incorrect format");
+    private String findNuageVspCmsIdForDeviceOrHost(long deviceId, long hostId) {
+        String cmsId = findNuageVspCmsIdForHostDevice(hostId);
+        if(cmsId == null) {
+            cmsId = findNuageVspCmsIdForDevice(deviceId);
+
+            if (cmsId != null) {
+                // Upgrade
+                registerNewNuageVspDevice(hostId, cmsId);
+                removeLegacyNuageVspDeviceCmsId(deviceId);
+            }
+        }
+
+        return cmsId;
+    }
+
+    private String findNuageVspCmsIdForHostDevice(long hostId) {
+        final DetailVO cmsIdDetailVO = _hostDetailsDao.findDetail(hostId, "nuagevspcmsid");
+        if (cmsIdDetailVO != null) {
+            return cmsIdDetailVO.getValue();
+        }
+        return null;
+    }
+
+    @Deprecated
+    private String findNuageVspCmsIdForDevice(long deviceId) {
+        ConfigurationVO cmsIdConfig = _configDao.findByName(CMSID_CONFIG_KEY);
+        if(cmsIdConfig != null) {
+            String configValue = cmsIdConfig.getValue();
+            if (!Strings.isNullOrEmpty(configValue)) {
+                String[] configuredNuageVspDevices = configValue.split(";");
+                for (String configuredNuageVspDevice : configuredNuageVspDevices) {
+                    if (configuredNuageVspDevice.startsWith(deviceId + ":")) {
+                        String[] split = configuredNuageVspDevice.split(":");
+                        if (split.length != 2 || (split.length > 1 && Strings.isNullOrEmpty(split[1]))) {
+                            throw new IllegalArgumentException("The configured CMS ID for Nuage VSP device " + deviceId + " is in an incorrect format");
+                        }
+                        return split[1];
                     }
-                    return split[1];
                 }
             }
         }
         return null;
     }
 
-    public List<String> getDnsDetails(Network network) {
+    public List<String> getDnsDetails(long dataCenterId) {
         Boolean configureDns = Boolean.valueOf(_configDao.getValue(NuageVspManager.NuageVspConfigDns.key()));
         if (!configureDns) {
             return Lists.newArrayList();
         }
 
         Boolean configureExternalDns = Boolean.valueOf(_configDao.getValue(NuageVspManager.NuageVspDnsExternal.key()));
-        DataCenterVO dc = _dataCenterDao.findById(network.getDataCenterId());
+        DataCenterVO dc = _dataCenterDao.findById(dataCenterId);
         List<String> dnsServers = new ArrayList<String>();
         if (configureExternalDns) {
             if (!Strings.isNullOrEmpty(dc.getDns1())) {
@@ -677,6 +814,63 @@
     }
 
     @Override
+    public HostVO getNuageVspHost(long physicalNetworkId) {
+        HostVO nuageVspHost;
+        List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listByPhysicalNetwork(physicalNetworkId);
+        if (CollectionUtils.isEmpty(nuageVspDevices)) {
+            // Perhaps another physical network is passed from within the same zone, find the VSP physical network in that case
+            PhysicalNetwork physicalNetwork = _physicalNetworkDao.findById(physicalNetworkId);
+            List<PhysicalNetworkVO> physicalNetworksInZone = _physicalNetworkDao.listByZone(physicalNetwork.getDataCenterId());
+            for (PhysicalNetworkVO physicalNetworkInZone : physicalNetworksInZone) {
+                if (physicalNetworkInZone.getIsolationMethods().contains(PhysicalNetwork.IsolationMethod.VSP.name())) {
+                    nuageVspDevices = _nuageVspDao.listByPhysicalNetwork(physicalNetworkInZone.getId());
+                    break;
+                }
+            }
+        }
+
+        if (CollectionUtils.isNotEmpty(nuageVspDevices)) {
+            NuageVspDeviceVO config = nuageVspDevices.iterator().next();
+            nuageVspHost = _hostDao.findById(config.getHostId());
+            _hostDao.loadDetails(nuageVspHost);
+        } else {
+            throw new CloudRuntimeException("There is no Nuage VSP device configured on physical network " + physicalNetworkId);
+        }
+        return nuageVspHost;
+    }
+
+    @Override
+    public boolean updateNuageUnderlayVlanIpRange(long vlanIpRangeId, boolean enabled) {
+        VlanVO staticNatVlan = _vlanDao.findById(vlanIpRangeId);
+        HostVO nuageVspHost = getNuageVspHost(staticNatVlan.getPhysicalNetworkId());
+        EntityExistsCommand<Vlan> cmd = new EntityExistsCommand<Vlan>(Vlan.class, staticNatVlan.getUuid());
+        Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
+        if (answer != null && !answer.getResult()) {
+            _vlanDetailsDao.addDetail(staticNatVlan.getId(), NuageVspManager.nuageUnderlayVlanIpRangeDetailKey, String.valueOf(enabled), false);
+            return true;
+        }
+
+        return false;
+    }
+
+    @Override
+    public List<NuageVlanIpRangeResponse> filterNuageVlanIpRanges(List<? extends Vlan> vlanIpRanges, Boolean underlay) {
+        List<NuageVlanIpRangeResponse> nuageVlanIpRanges = Lists.newArrayList();
+        for (Vlan vlanIpRange : vlanIpRanges) {
+            NuageVlanIpRangeResponse nuageVlanIpRange = (NuageVlanIpRangeResponse) _responseGenerator.createVlanIpRangeResponse(NuageVlanIpRangeResponse.class, vlanIpRange);
+
+            VlanDetailsVO nuageUnderlayDetail = _vlanDetailsDao.findDetail(vlanIpRange.getId(), NuageVspManager.nuageUnderlayVlanIpRangeDetailKey);
+            boolean underlayEnabled = nuageUnderlayDetail != null && nuageUnderlayDetail.getValue().equalsIgnoreCase(String.valueOf(true));
+            nuageVlanIpRange.setUnderlay(underlayEnabled);
+            if (underlay == null || underlayEnabled == underlay) {
+                nuageVlanIpRanges.add(nuageVlanIpRange);
+            }
+            nuageVlanIpRange.setObjectName("nuagevlaniprange");
+        }
+        return nuageVlanIpRanges;
+    }
+
+    @Override
     public boolean preStateTransitionEvent(Status oldState, Status.Event event, Status newState, Host host, boolean status, Object opaque) {
         return true;
     }
@@ -714,10 +908,9 @@
 
                     List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listAll();
                     for (NuageVspDeviceVO nuageVspDevice : nuageVspDevices) {
-                        HostVO host = findNuageVspHost(nuageVspDevice.getHostId());
                         VspDomain vspDomain = _nuageVspEntityBuilder.buildVspDomain(domain);
-                        SyncDomainCommand cmd = new SyncDomainCommand(vspDomain, true, false);
-                        _agentMgr.easySend(host.getId(), cmd);
+                        SyncDomainCommand cmd = new SyncDomainCommand(vspDomain, SyncDomainCommand.Type.ADD);
+                        _agentMgr.easySend(nuageVspDevice.getHostId(), cmd);
                     }
                 } finally {
                     _domainDao.releaseFromLockTable(domain.getId());
@@ -725,6 +918,20 @@
             }
         });
 
+        // Clean up corresponding resources in VSP when deleting a CS Domain
+        _messageBus.subscribe(DomainManager.MESSAGE_PRE_REMOVE_DOMAIN_EVENT, new MessageSubscriber() {
+            @Override
+            public void onPublishMessage(String senderAddress, String subject, Object args) {
+                DomainVO domain = (DomainVO) args;
+                List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listAll();
+                for (NuageVspDeviceVO nuageVspDevice : nuageVspDevices) {
+                    VspDomainCleanUp vspDomainCleanUp = _nuageVspEntityBuilder.buildVspDomainCleanUp(domain);
+                    CleanUpDomainCommand cmd = new CleanUpDomainCommand(vspDomainCleanUp);
+                    _agentMgr.easySend(nuageVspDevice.getHostId(), cmd);
+                }
+            }
+        });
+
         // Delete corresponding enterprise and profile in VSP when deleting a CS Domain
         _messageBus.subscribe(DomainManager.MESSAGE_REMOVE_DOMAIN_EVENT, new MessageSubscriber() {
             @Override
@@ -732,10 +939,9 @@
                 DomainVO domain = (DomainVO) args;
                 List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listAll();
                 for (NuageVspDeviceVO nuageVspDevice : nuageVspDevices) {
-                    HostVO host = findNuageVspHost(nuageVspDevice.getHostId());
                     VspDomain vspDomain = _nuageVspEntityBuilder.buildVspDomain(domain);
-                    SyncDomainCommand cmd = new SyncDomainCommand(vspDomain, false, true);
-                    _agentMgr.easySend(host.getId(), cmd);
+                    SyncDomainCommand syncCmd = new SyncDomainCommand(vspDomain, SyncDomainCommand.Type.REMOVE);
+                    _agentMgr.easySend(nuageVspDevice.getHostId(), syncCmd);
                 }
             }
         });
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspRequestWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspRequestWrapper.java
new file mode 100644
index 0000000..2a0e0bf
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspRequestWrapper.java
@@ -0,0 +1,78 @@
+//
+// 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.resource;
+
+import java.util.Hashtable;
+import java.util.Set;
+
+import org.reflections.Reflections;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.Command;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.RequestWrapper;
+import com.cloud.resource.ServerResource;
+
+public class NuageVspRequestWrapper extends RequestWrapper {
+
+    private static NuageVspRequestWrapper instance;
+
+    @SuppressWarnings("rawtypes")
+    private final static Set<Class<? extends CommandWrapper>> baseSet;
+
+    static {
+        Reflections baseWrappers = new Reflections("com.cloud.network.vsp.resource.wrapper");
+        baseSet = baseWrappers.getSubTypesOf(CommandWrapper.class);
+        instance = new NuageVspRequestWrapper();
+    }
+
+    private NuageVspRequestWrapper() {
+        init();
+    }
+
+    @SuppressWarnings("rawtypes")
+    private void init() {
+        // NuageVspResource commands
+        final Hashtable<Class<? extends Command>, CommandWrapper> vspCommands = processAnnotations(baseSet);
+
+        resources.put(NuageVspResource.class, vspCommands);
+    }
+
+    public static NuageVspRequestWrapper getInstance() {
+        return instance;
+    }
+
+    @SuppressWarnings("rawtypes")
+    @Override
+    public Answer execute(final Command command, final ServerResource serverResource) {
+        final Class<? extends ServerResource> resourceClass = serverResource.getClass();
+
+        final Hashtable<Class<? extends Command>, CommandWrapper> resourceCommands = retrieveResource(command, resourceClass);
+
+        CommandWrapper<Command, Answer, ServerResource> commandWrapper = retrieveCommands(command.getClass(), resourceCommands);
+
+        while (commandWrapper == null) {
+            //Could not find the command in the given resource, will traverse the family tree.
+            commandWrapper = retryWhenAllFails(command, resourceClass, resourceCommands);
+        }
+
+        return commandWrapper.execute(command, serverResource);
+    }
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResource.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResource.java
index bdcb481..5ffe683 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResource.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResource.java
@@ -19,203 +19,96 @@
 
 package com.cloud.network.resource;
 
-import com.cloud.agent.IAgentControl;
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-import com.cloud.agent.api.MaintainAnswer;
-import com.cloud.agent.api.MaintainCommand;
-import com.cloud.agent.api.PingCommand;
-import com.cloud.agent.api.PingNuageVspCommand;
-import com.cloud.agent.api.ReadyAnswer;
-import com.cloud.agent.api.ReadyCommand;
-import com.cloud.agent.api.StartupCommand;
-import com.cloud.agent.api.StartupVspCommand;
-import com.cloud.agent.api.element.ApplyAclRuleVspCommand;
-import com.cloud.agent.api.element.ApplyStaticNatVspCommand;
-import com.cloud.agent.api.element.ImplementVspCommand;
-import com.cloud.agent.api.element.ShutDownVpcVspCommand;
-import com.cloud.agent.api.guru.DeallocateVmVspCommand;
-import com.cloud.agent.api.guru.ImplementNetworkVspCommand;
-import com.cloud.agent.api.guru.ReserveVmInterfaceVspCommand;
-import com.cloud.agent.api.guru.TrashNetworkVspCommand;
-import com.cloud.agent.api.manager.GetApiDefaultsAnswer;
-import com.cloud.agent.api.manager.GetApiDefaultsCommand;
-import com.cloud.agent.api.manager.SupportedApiVersionCommand;
-import com.cloud.agent.api.sync.SyncDomainAnswer;
-import com.cloud.agent.api.sync.SyncDomainCommand;
-import com.cloud.agent.api.sync.SyncNuageVspCmsIdAnswer;
-import com.cloud.agent.api.sync.SyncNuageVspCmsIdCommand;
-import com.cloud.host.Host;
-import com.cloud.resource.ServerResource;
-import com.cloud.util.NuageVspUtil;
-import com.cloud.utils.StringUtils;
-import com.cloud.utils.component.ManagerBase;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.google.common.base.Strings;
-import net.nuage.vsp.acs.NuageVspPluginClientLoader;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.api.NuageVspAclClient;
 import net.nuage.vsp.acs.client.api.NuageVspApiClient;
 import net.nuage.vsp.acs.client.api.NuageVspElementClient;
 import net.nuage.vsp.acs.client.api.NuageVspGuruClient;
 import net.nuage.vsp.acs.client.api.NuageVspManagerClient;
-import net.nuage.vsp.acs.client.common.model.Pair;
+import net.nuage.vsp.acs.client.api.NuageVspPluginClientLoader;
+import net.nuage.vsp.acs.client.api.model.VspHost;
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
 import org.apache.log4j.Logger;
 
-import javax.naming.ConfigurationException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ExecutionException;
-import java.util.regex.Pattern;
+import com.google.common.base.Strings;
 
-import static com.cloud.agent.api.sync.SyncNuageVspCmsIdCommand.SyncType;
+import com.cloud.agent.IAgentControl;
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.Command;
+import com.cloud.agent.api.PingCommand;
+import com.cloud.agent.api.PingNuageVspCommand;
+import com.cloud.agent.api.StartupCommand;
+import com.cloud.agent.api.StartupVspCommand;
+import com.cloud.host.Host;
+import com.cloud.resource.ServerResource;
+import com.cloud.utils.component.ManagerBase;
+import com.cloud.utils.exception.CloudRuntimeException;
 
 public class NuageVspResource extends ManagerBase implements ServerResource {
     private static final Logger s_logger = Logger.getLogger(NuageVspResource.class);
 
-    private static final String NAME = "name";
-    private static final String GUID = "guid";
-    private static final String ZONE_ID = "zoneid";
-    private static final String HOST_NAME = "hostname";
-    private static final String CMS_USER = "cmsuser";
-    private static final String CMS_USER_PASSWORD = "cmsuserpass";
-    private static final String PORT = "port";
-    private static final String API_VERSION = "apiversion";
-    private static final String API_RELATIVE_PATH = "apirelativepath";
-    private static final String RETRY_COUNT = "retrycount";
-    private static final String RETRY_INTERVAL = "retryinterval";
-    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
-
-    private String _name;
     private String _guid;
     private String _zoneId;
-    private String _cmsUserLogin;
-    private String _cmsUserPassword;
     private String _hostName;
-    private String _relativePath;
-    private int _numRetries;
-    private int _retryInterval;
-    private String _nuageVspCmsId;
     private boolean _shouldAudit = true;
 
-    protected NuageVspApiClient _nuageVspApiClient;
-    protected NuageVspGuruClient _nuageVspGuruClient;
-    protected NuageVspElementClient _nuageVspElementClient;
-    protected NuageVspManagerClient _nuageVspManagerClient;
-    protected boolean _isNuageVspClientLoaded;
+    private VspHost _vspHost;
 
-    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
     private static final String NUAGE_VSP_PLUGIN_ERROR_MESSAGE = "Nuage Vsp plugin client is not installed";
+    protected NuageVspPluginClientLoader _clientLoader;
 
-    @Override
-    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
+    public VspHost validate(Map<String, ?> params) throws ConfigurationException {
+        return validate(NuageVspResourceConfiguration.fromConfiguration(params));
+    }
 
-        _name = (String)params.get(NAME);
-        if (_name == null) {
-            throw new ConfigurationException("Unable to find name");
+    public VspHost validate(NuageVspResourceConfiguration configuration) throws ConfigurationException {
+        configuration.validate();
+
+        VspHost newVspHost = configuration.buildVspHost();
+
+
+        if (!newVspHost.getApiVersion().isSupported()) {
+            s_logger.warn(String.format("[UPGRADE] API version %s of Nuage Vsp Device %s should be updated.", _vspHost.getApiVersion(), configuration.hostName()));
         }
 
-        _guid = (String)params.get(GUID);
-        if (_guid == null) {
-            throw new ConfigurationException("Unable to find the guid");
-        }
-
-        _zoneId = (String)params.get(ZONE_ID);
-        if (_zoneId == null) {
-            throw new ConfigurationException("Unable to find zone");
-        }
-
-        _hostName = (String)params.get(HOST_NAME);
-        if (Strings.isNullOrEmpty(_hostName)) {
-            throw new ConfigurationException("Unable to find hostname");
-        }
-
-        String cmsUser = (String)params.get(CMS_USER);
-        if (Strings.isNullOrEmpty(cmsUser)) {
-            throw new ConfigurationException("Unable to find CMS username");
-        }
-
-        String cmsUserPassBase64 = (String)params.get(CMS_USER_PASSWORD);
-        if (Strings.isNullOrEmpty(cmsUserPassBase64)) {
-            throw new ConfigurationException("Unable to find CMS password");
-        }
-
-        String port = (String)params.get(PORT);
-        if (Strings.isNullOrEmpty(port)) {
-            throw new ConfigurationException("Unable to find port");
-        }
-
-        String apiVersion = (String)params.get(API_VERSION);
-        if (Strings.isNullOrEmpty(apiVersion)) {
-            throw new ConfigurationException("Unable to find API version");
-        } else if (!Pattern.matches("v\\d+_\\d+", apiVersion)) {
-            throw new ConfigurationException("Incorrect API version");
-        }
-
-        String apiRelativePath = (String)params.get(API_RELATIVE_PATH);
-        if (Strings.isNullOrEmpty(apiRelativePath) || !apiRelativePath.contains(apiVersion)) {
-            throw new ConfigurationException("Unable to find API version in relative path");
-        }
-
-        String retryCount = (String)params.get(RETRY_COUNT);
-        if (!Strings.isNullOrEmpty(retryCount)) {
-            try {
-                _numRetries = Integer.parseInt(retryCount);
-            } catch (NumberFormatException ex) {
-                throw new ConfigurationException("Number of retries has to be between 1 and 10");
-            }
-            if ((_numRetries < 1) || (_numRetries > 10)) {
-                throw new ConfigurationException("Number of retries has to be between 1 and 10");
-            }
-        } else {
-            throw new ConfigurationException("Unable to find number of retries");
-        }
-
-        String retryInterval = (String)params.get(RETRY_INTERVAL);
-        if (!Strings.isNullOrEmpty(retryInterval)) {
-            try {
-                _retryInterval = Integer.parseInt(retryInterval);
-            } catch (NumberFormatException ex) {
-                throw new ConfigurationException("Retry interval has to be between 0 and 10000 ms");
-            }
-            if ((_retryInterval < 0) || (_retryInterval > 10000)) {
-                throw new ConfigurationException("Retry interval has to be between 0 and 10000 ms");
-            }
-        } else {
-            throw new ConfigurationException("Unable to find retry interval");
-        }
-
-        _relativePath = new StringBuffer().append("https://").append(_hostName).append(":").append(port).append(apiRelativePath).toString();
-
-        String cmsUserPass = NuageVspUtil.decodePassword(cmsUserPassBase64);
-        _cmsUserLogin = cmsUser;
-        _cmsUserPassword = cmsUserPass;
-
-        _nuageVspCmsId = (String)params.get(NUAGE_VSP_CMS_ID);
-
-        loadNuageClient();
+        _guid = configuration.guid();
+        _zoneId = configuration.zoneId();
+        _hostName = configuration.hostName();
+        _name = configuration.name();
 
         try {
-            login();
-        } catch (ExecutionException | ConfigurationException e) {
+            final NuageVspPluginClientLoader clientLoader = getClientLoader(newVspHost);
+            clientLoader.getNuageVspApiClient().login();
+
+            _vspHost = newVspHost;
+            _clientLoader = clientLoader;
+        } catch (ExecutionException e) {
             s_logger.error(e.getMessage(), e);
             throw new CloudRuntimeException(e.getMessage(), e);
         }
 
+        return _vspHost;
+    }
+
+    @Override
+    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
+        if(super.configure(name, params)) {
+            validate(params);
+        }
         return true;
     }
 
-    protected void login() throws ConfigurationException, ExecutionException {
-        isNuageVspApiLoaded();
-        _nuageVspApiClient.login();
+    protected void login() throws ConfigurationException, NuageVspException {
+        getNuageVspApiClient().login();
     }
 
-    protected <A extends NuageVspApiClient, B extends NuageVspElementClient, C extends NuageVspGuruClient> void loadNuageClient() {
-        NuageVspPluginClientLoader clientLoader = NuageVspPluginClientLoader.getClientLoader(_relativePath, CMS_USER_ENTEPRISE_NAME,
-                _cmsUserLogin, _cmsUserPassword, _numRetries, _retryInterval, _nuageVspCmsId);
-        _nuageVspApiClient = clientLoader.getNuageVspApiClient();
-        _nuageVspGuruClient = clientLoader.getNuageVspGuruClient();
-        _nuageVspElementClient = clientLoader.getNuageVspElementClient();
-        _nuageVspManagerClient = clientLoader.getNuageVspManagerClient();
-        _isNuageVspClientLoaded = true;
+    protected NuageVspPluginClientLoader getClientLoader(VspHost vspHost) {
+        return NuageVspPluginClientLoader.getClientLoader(vspHost);
     }
 
     @Override
@@ -229,11 +122,6 @@
     }
 
     @Override
-    public String getName() {
-        return _name;
-    }
-
-    @Override
     public Host.Type getType() {
         return Host.Type.L2Networking;
     }
@@ -253,20 +141,22 @@
 
     @Override
     public PingCommand getCurrentStatus(long id) {
-        if (Strings.isNullOrEmpty(_relativePath)) {
+        if (Strings.isNullOrEmpty(_vspHost.getRestRelativePath())) {
             s_logger.error("Refusing to ping Nuage VSD because the resource configuration is missing the relative path information");
             _shouldAudit = true;
             return null;
         }
-        if (Strings.isNullOrEmpty(_cmsUserLogin) || Strings.isNullOrEmpty(_cmsUserPassword)) {
+
+        if (Strings.isNullOrEmpty(_vspHost.getCmsUserLogin()) || Strings.isNullOrEmpty(_vspHost.getCmsUserPassword())) {
             s_logger.error("Refusing to ping Nuage VSD because the resource configuration is missing the CMS user information");
             _shouldAudit = true;
             return null;
         }
+
         try {
             login();
         } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failed to ping to Nuage VSD on " + _name + " as user " + _cmsUserLogin, e);
+            s_logger.error("Failed to ping to Nuage VSD on " + _name + " as user " +_vspHost.getCmsUserLogin(), e);
             _shouldAudit = true;
             return null;
         }
@@ -276,48 +166,16 @@
     }
 
     @Override
-    public Answer executeRequest(Command cmd) {
-        if (cmd instanceof ReadyCommand) {
-            return executeRequest((ReadyCommand)cmd);
-        } else if (cmd instanceof MaintainCommand) {
-            return executeRequest((MaintainCommand)cmd);
+    public Answer executeRequest(final Command cmd) {
+        final NuageVspRequestWrapper wrapper = NuageVspRequestWrapper.getInstance();
+        try {
+            return wrapper.execute(cmd, this);
+        } catch (final Exception e) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("Received unsupported command " + cmd.toString());
+            }
+            return Answer.createUnsupportedCommandAnswer(cmd);
         }
-        //Guru commands
-        else if (cmd instanceof ImplementNetworkVspCommand) {
-            return executeRequest((ImplementNetworkVspCommand)cmd);
-        } else if (cmd instanceof ReserveVmInterfaceVspCommand) {
-            return executeRequest((ReserveVmInterfaceVspCommand)cmd);
-        } else if (cmd instanceof DeallocateVmVspCommand) {
-            return executeRequest((DeallocateVmVspCommand)cmd);
-        } else if (cmd instanceof TrashNetworkVspCommand) {
-            return executeRequest((TrashNetworkVspCommand)cmd);
-        }
-        //Element commands
-        else if (cmd instanceof ImplementVspCommand) {
-            return executeRequest((ImplementVspCommand)cmd);
-        } else if (cmd instanceof ApplyAclRuleVspCommand) {
-            return executeRequest((ApplyAclRuleVspCommand)cmd);
-        } else if (cmd instanceof ApplyStaticNatVspCommand) {
-            return executeRequest((ApplyStaticNatVspCommand)cmd);
-        } else if (cmd instanceof ShutDownVpcVspCommand) {
-            return executeRequest((ShutDownVpcVspCommand)cmd);
-        }
-        //Sync Commands
-        else if (cmd instanceof SyncNuageVspCmsIdCommand) {
-            return executeRequest((SyncNuageVspCmsIdCommand)cmd);
-        } else if (cmd instanceof SyncDomainCommand) {
-            return executeRequest((SyncDomainCommand)cmd);
-        }
-        //Other commands
-        else if (cmd instanceof GetApiDefaultsCommand) {
-            return executeRequest((GetApiDefaultsCommand)cmd);
-        } else if (cmd instanceof SupportedApiVersionCommand) {
-            return executeRequest((SupportedApiVersionCommand)cmd);
-        }
-        if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Received unsupported command " + cmd.toString());
-        }
-        return Answer.createUnsupportedCommandAnswer(cmd);
     }
 
     @Override
@@ -333,332 +191,36 @@
     public void setAgentControl(IAgentControl agentControl) {
     }
 
-    private Answer executeRequest(ReadyCommand cmd) {
-        return new ReadyAnswer(cmd);
-    }
-
-    private Answer executeRequest(MaintainCommand cmd) {
-        return new MaintainAnswer(cmd);
-    }
-
-    private Answer executeRequest(ImplementNetworkVspCommand cmd) {
-        try {
-            isNuageVspGuruLoaded();
-            _nuageVspGuruClient.implement(cmd.getNetwork(), cmd.getDnsServers());
-            return new Answer(cmd, true, "Created network mapping to " + cmd.getNetwork().getName() + " on Nuage VSD " + _hostName);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(ReserveVmInterfaceVspCommand cmd) {
-        try {
-            isNuageVspGuruLoaded();
-            _nuageVspGuruClient.reserve(cmd.getNetwork(), cmd.getVm(), cmd.getNic(), cmd.getStaticNat());
-            return new Answer(cmd, true, "Created NIC that maps to nicUuid" + cmd.getNic().getUuid() + " on Nuage VSD " + _hostName);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(DeallocateVmVspCommand cmd) {
-        try {
-            isNuageVspGuruLoaded();
-
-            _nuageVspGuruClient.deallocate(cmd.getNetwork(), cmd.getVm(), cmd.getNic());
-            return new Answer(cmd, true, "Deallocated VM " + cmd.getVm().getName() + " on Nuage VSD " + _hostName);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(TrashNetworkVspCommand cmd) {
-        try {
-            isNuageVspGuruLoaded();
-            _nuageVspGuruClient.trash(cmd.getNetwork());
-            return new Answer(cmd, true, "Deleted network mapping to " + cmd.getNetwork().getUuid() + " on Nuage VSD " + _hostName);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(ApplyStaticNatVspCommand cmd) {
-        try {
-            isNuageVspElementLoaded();
-            _nuageVspElementClient.applyStaticNats(cmd.getNetwork(), cmd.getStaticNatDetails());
-            return new Answer(cmd, true, "Applied Static NAT to network mapping " + cmd.getNetwork().getUuid() + " on Nuage VSD " + _hostName);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(ImplementVspCommand cmd) {
-        try {
-            isNuageVspElementLoaded();
-            boolean success = _nuageVspElementClient.implement(cmd.getNetwork(), cmd.getDnsServers(), cmd.getIngressFirewallRules(),
-                    cmd.getEgressFirewallRules(), cmd.getFloatingIpUuids());
-            return new Answer(cmd, success, "Implemented network " + cmd.getNetwork().getUuid() + " on Nuage VSD " + _hostName);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(ApplyAclRuleVspCommand cmd) {
-        try {
-            isNuageVspElementLoaded();
-            _nuageVspElementClient.applyAclRules(cmd.getAclType(), cmd.getNetwork(), cmd.getAclRules(), cmd.isNetworkReset());
-            return new Answer(cmd, true, "Applied ACL Rule to network mapping " + cmd.getNetwork().getUuid() + " on Nuage VSD " + _hostName);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(ShutDownVpcVspCommand cmd) {
-        try {
-            isNuageVspElementLoaded();
-            _nuageVspElementClient.shutdownVpc(cmd.getDomainUuid(), cmd.getVpcUuid(), cmd.getDomainTemplateName(), cmd.getDomainRouterUuids());
-            return new Answer(cmd, true, "Shutdown VPC " + cmd.getVpcUuid() + " on Nuage VSD " + _hostName);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(SyncNuageVspCmsIdCommand cmd) {
-        try {
-            isNuageVspManagerLoaded();
-            if (cmd.getSyncType() == SyncType.AUDIT || cmd.getSyncType() == SyncType.AUDIT_ONLY) {
-                Pair<Boolean, String> answer = _nuageVspManagerClient.auditNuageVspCmsId(cmd.getNuageVspCmsId(), cmd.getSyncType() == SyncType.AUDIT_ONLY);
-                return new SyncNuageVspCmsIdAnswer(answer.getLeft(), answer.getRight(), cmd.getSyncType());
-            } else if (cmd.getSyncType() == SyncType.REGISTER) {
-                String registeredNuageVspCmsId = _nuageVspManagerClient.registerNuageVspCmsId();
-                return new SyncNuageVspCmsIdAnswer(StringUtils.isNotBlank(registeredNuageVspCmsId), registeredNuageVspCmsId, cmd.getSyncType());
-            } else {
-                boolean success = _nuageVspManagerClient.unregisterNuageVspCmsId(cmd.getNuageVspCmsId());
-                return new SyncNuageVspCmsIdAnswer(success, cmd.getNuageVspCmsId(), cmd.getSyncType());
-            }
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new SyncNuageVspCmsIdAnswer(false, null, cmd.getSyncType());
-        }
-    }
-
-    private Answer executeRequest(SyncDomainCommand cmd) {
-        try {
-            isNuageVspManagerLoaded();
-            boolean success = _nuageVspManagerClient.syncDomainWithNuageVsp(cmd.getDomain(), cmd.isToAdd(), cmd.isToRemove());
-            return new SyncDomainAnswer(success);
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new SyncDomainAnswer(false);
-        }
-    }
-
-    private Answer executeRequest(GetApiDefaultsCommand cmd) {
-        try {
-            isNuageVspManagerLoaded();
-            return new GetApiDefaultsAnswer(cmd, _nuageVspManagerClient.getApiDefaults());
-        } catch (ExecutionException | ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new GetApiDefaultsAnswer(cmd, e);
-        }
-    }
-
-    private Answer executeRequest(SupportedApiVersionCommand cmd) {
-        try {
-            isNuageVspManagerLoaded();
-            boolean supported = _nuageVspManagerClient.isSupportedApiVersion(cmd.getApiVersion());
-            return new Answer(cmd, supported, "Check if API version " + cmd.getApiVersion() + " is supported");
-        } catch (ConfigurationException e) {
-            s_logger.error("Failure during " + cmd + " on Nuage VSD " + _hostName, e);
-            return new Answer(cmd, e);
-        }
-    }
-
-    protected void isNuageVspApiLoaded() throws ConfigurationException {
-        if (!_isNuageVspClientLoaded || _nuageVspApiClient == null) {
+    protected void assertNuageVspClientsLoaded() throws ConfigurationException {
+        if (_clientLoader == null) {
             throw new ConfigurationException(NUAGE_VSP_PLUGIN_ERROR_MESSAGE);
         }
     }
 
-    protected void isNuageVspGuruLoaded() throws ConfigurationException {
-        if (!_isNuageVspClientLoaded || _nuageVspGuruClient == null) {
-            throw new ConfigurationException(NUAGE_VSP_PLUGIN_ERROR_MESSAGE);
-        }
+    public NuageVspApiClient getNuageVspApiClient() throws ConfigurationException {
+        assertNuageVspClientsLoaded();
+        return _clientLoader.getNuageVspApiClient();
+
     }
 
-    protected void isNuageVspElementLoaded() throws ConfigurationException {
-        if (!_isNuageVspClientLoaded || _nuageVspElementClient == null) {
-            throw new ConfigurationException(NUAGE_VSP_PLUGIN_ERROR_MESSAGE);
-        }
+    public NuageVspGuruClient getNuageVspGuruClient() throws ConfigurationException {
+        assertNuageVspClientsLoaded();
+        return _clientLoader.getNuageVspGuruClient();
     }
 
-    protected void isNuageVspManagerLoaded() throws ConfigurationException {
-        if (!_isNuageVspClientLoaded || _nuageVspManagerClient == null) {
-            throw new ConfigurationException(NUAGE_VSP_PLUGIN_ERROR_MESSAGE);
-        }
+    public NuageVspAclClient getNuageVspAclClient() throws ConfigurationException {
+        assertNuageVspClientsLoaded();
+        return _clientLoader.getNuageVspAclClient();
     }
 
-    public static class Configuration {
-        private String _name;
-        private String _guid;
-        private String _zoneId;
-        private String _hostName;
-        private String _cmsUser;
-        private String _cmsUserPassword;
-        private String _port;
-        private String _apiVersion;
-        private String _apiRelativePath;
-        private String _retryCount;
-        private String _retryInterval;
-        private String _nuageVspCmsId;
-
-        public String name() {
-            return this._name;
-        }
-
-        public Configuration name(String name) {
-            this._name = name;
-            return this;
-        }
-
-        public String guid() {
-            return this._guid;
-        }
-
-        public Configuration guid(String guid) {
-            this._guid = guid;
-            return this;
-        }
-
-        public String zoneId() {
-            return this._zoneId;
-        }
-
-        public Configuration zoneId(String zoneId) {
-            this._zoneId = zoneId;
-            return this;
-        }
-
-        public String hostName() {
-            return this._hostName;
-        }
-
-        public Configuration hostName(String hostName) {
-            this._hostName = hostName;
-            return this;
-        }
-
-        public String cmsUser() {
-            return this._cmsUser;
-        }
-
-        public Configuration cmsUser(String cmsUser) {
-            this._cmsUser = cmsUser;
-            return this;
-        }
-
-        public String cmsUserPassword() {
-            return this._cmsUserPassword;
-        }
-
-        public Configuration cmsUserPassword(String cmsUserPassword) {
-            this._cmsUserPassword = cmsUserPassword;
-            return this;
-        }
-
-        public String port() {
-            return this._port;
-        }
-
-        public Configuration port(String port) {
-            this._port = port;
-            return this;
-        }
-
-        public String apiVersion() {
-            return this._apiVersion;
-        }
-
-        public Configuration apiVersion(String apiVersion) {
-            this._apiVersion = apiVersion;
-            return this;
-        }
-
-        public String apiRelativePath() {
-            return this._apiRelativePath;
-        }
-
-        public Configuration apiRelativePath(String apiRelativePath) {
-            this._apiRelativePath = apiRelativePath;
-            return this;
-        }
-
-        public String retryCount() {
-            return this._retryCount;
-        }
-
-        public Configuration retryCount(String retryCount) {
-            this._retryCount = retryCount;
-            return this;
-        }
-
-        public String retryInterval() {
-            return this._retryInterval;
-        }
-
-        public Configuration retryInterval(String retryInterval) {
-            this._retryInterval = retryInterval;
-            return this;
-        }
-
-        public String nuageVspCmsId() {
-            return this._nuageVspCmsId;
-        }
-
-        public Configuration nuageVspCmsId(String nuageVspCmsId) {
-            this._nuageVspCmsId = nuageVspCmsId;
-            return this;
-        }
-
-        public Map<String, String> build() {
-            return new HashMap<String, String>() {{
-                if (_name != null) put(NAME, _name);
-                if (_guid != null) put(GUID, _guid);
-                if (_zoneId != null) put(ZONE_ID, _zoneId);
-                if (_hostName != null) put(HOST_NAME, _hostName);
-                if (_cmsUser != null) put(CMS_USER, _cmsUser);
-                if (_cmsUserPassword != null) put(CMS_USER_PASSWORD, _cmsUserPassword);
-                if (_port != null) put(PORT, _port);
-                if (_apiVersion != null) put(API_VERSION, _apiVersion);
-                if (_apiRelativePath != null) put(API_RELATIVE_PATH, _apiRelativePath);
-                if (_retryCount != null) put(RETRY_COUNT, _retryCount);
-                if (_retryInterval != null) put(RETRY_INTERVAL, _retryInterval);
-                if (_nuageVspCmsId != null) put(NUAGE_VSP_CMS_ID, _nuageVspCmsId);
-            }};
-        }
-
-        public static Configuration fromConfiguration(Map<String, String> configuration) {
-            return new Configuration()
-                    .name(configuration.get(NAME))
-                    .guid(configuration.get(GUID))
-                    .zoneId(configuration.get(ZONE_ID))
-                    .hostName(configuration.get(HOST_NAME))
-                    .cmsUser(configuration.get(CMS_USER))
-                    .cmsUserPassword(configuration.get(CMS_USER_PASSWORD))
-                    .port(configuration.get(PORT))
-                    .apiVersion(configuration.get(API_VERSION))
-                    .apiRelativePath(configuration.get(API_RELATIVE_PATH))
-                    .retryCount(configuration.get(RETRY_COUNT))
-                    .retryInterval(configuration.get(RETRY_INTERVAL))
-                    .nuageVspCmsId(configuration.get(NUAGE_VSP_CMS_ID));
-        }
+    public NuageVspElementClient getNuageVspElementClient() throws ConfigurationException {
+        assertNuageVspClientsLoaded();
+        return _clientLoader.getNuageVspElementClient();
     }
+
+    public NuageVspManagerClient getNuageVspManagerClient() throws ConfigurationException {
+        assertNuageVspClientsLoaded();
+        return _clientLoader.getNuageVspManagerClient();
+    }
+
 }
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java
new file mode 100644
index 0000000..1861941
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResourceConfiguration.java
@@ -0,0 +1,359 @@
+//
+// 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.resource;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+import javax.naming.ConfigurationException;
+
+import com.google.common.base.Preconditions;
+import net.nuage.vsp.acs.client.api.model.NuageVspUser;
+import net.nuage.vsp.acs.client.api.model.VspHost;
+import net.nuage.vsp.acs.client.common.NuageVspApiVersion;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+import com.cloud.util.NuageVspUtil;
+
+public class NuageVspResourceConfiguration {
+    private static final String NAME = "name";
+    private static final String GUID = "guid";
+    private static final String ZONE_ID = "zoneid";
+    private static final String HOST_NAME = "hostname";
+    private static final String CMS_USER = "cmsuser";
+    private static final String CMS_USER_PASSWORD = "cmsuserpass";
+    private static final String PORT = "port";
+    private static final String API_VERSION = "apiversion";
+    private static final String API_RELATIVE_PATH = "apirelativepath";
+    private static final String RETRY_COUNT = "retrycount";
+    private static final String RETRY_INTERVAL = "retryinterval";
+    private static final String NUAGE_VSP_CMS_ID = "nuagevspcmsid";
+
+    private static final String CMS_USER_ENTEPRISE_NAME = "CSP";
+
+    private String _name;
+    private String _guid;
+    private String _zoneId;
+    private String _hostName;
+    private String _cmsUser;
+    private String _cmsUserPassword;
+    private String _port;
+    private String _apiVersion;
+    private String _apiRelativePath;
+    private String _retryCount;
+    private String _retryInterval;
+    private String _nuageVspCmsId;
+
+    public String name() {
+        return _name;
+    }
+
+    public String guid() {
+        return this._guid;
+    }
+
+    public NuageVspResourceConfiguration guid(String guid) {
+        this._guid = guid;
+        return this;
+    }
+
+    public String zoneId() {
+        return this._zoneId;
+    }
+
+    public NuageVspResourceConfiguration zoneId(String zoneId) {
+        this._zoneId = zoneId;
+        return this;
+    }
+
+    public String hostName() {
+        return this._hostName;
+    }
+
+    public NuageVspResourceConfiguration hostName(String hostName) {
+        this._hostName = hostName;
+        this._name = "Nuage VSD - " + _hostName;
+        return this;
+    }
+
+    public String cmsUser() {
+        return this._cmsUser;
+    }
+
+    public NuageVspResourceConfiguration cmsUser(String cmsUser) {
+        this._cmsUser = cmsUser;
+        return this;
+    }
+
+    public String cmsUserPassword() {
+        return this._cmsUserPassword;
+    }
+
+    public NuageVspResourceConfiguration cmsUserPassword(String cmsUserPassword) {
+        this._cmsUserPassword = cmsUserPassword;
+        return this;
+    }
+
+    public String port() {
+        return this._port;
+    }
+
+    public NuageVspResourceConfiguration port(String port) {
+        this._port = port;
+        return this;
+    }
+
+    public String apiVersion() {
+        return this._apiVersion;
+    }
+
+    public NuageVspResourceConfiguration apiVersion(String apiVersion) {
+        this._apiVersion = apiVersion;
+        return this;
+    }
+
+    public String apiRelativePath() {
+        return this._apiRelativePath;
+    }
+
+    public NuageVspResourceConfiguration apiRelativePath(String apiRelativePath) {
+        this._apiRelativePath = apiRelativePath;
+        return this;
+    }
+
+    public String retryCount() {
+        return this._retryCount;
+    }
+
+    public NuageVspResourceConfiguration retryCount(String retryCount) {
+        this._retryCount = retryCount;
+        return this;
+    }
+
+    public String retryInterval() {
+        return this._retryInterval;
+    }
+
+    public NuageVspResourceConfiguration retryInterval(String retryInterval) {
+        this._retryInterval = retryInterval;
+        return this;
+    }
+
+    public String nuageVspCmsId() {
+        return this._nuageVspCmsId;
+    }
+
+    public NuageVspResourceConfiguration nuageVspCmsId(String nuageVspCmsId) {
+        this._nuageVspCmsId = nuageVspCmsId;
+        return this;
+    }
+
+    public String getRootPath(){
+        return "https://" + _hostName + ":" + _port + "/nuage";
+    }
+
+    public String getApiPath() {
+            return "https://" + _hostName + ":" + _port + "/nuage/api/" + _apiVersion;
+    }
+
+    public NuageVspApiVersion getApiVersion() throws ConfigurationException {
+        try {
+            if(_apiVersion != null) {
+                return NuageVspApiVersion.fromString(_apiVersion);
+            }
+            return null;
+        } catch (IllegalArgumentException e) {
+            throw new ConfigurationException("Incorrect API version");
+        }
+    }
+
+    public Map<String, String> build() {
+        Map<String, String> map = new HashMap<>();
+        putIfPresent(map, GUID, _guid);
+        putIfPresent(map, ZONE_ID, _zoneId);
+        putIfPresent(map, HOST_NAME, _hostName);
+        putIfPresent(map, CMS_USER, _cmsUser);
+        putIfPresent(map, CMS_USER_PASSWORD, _cmsUserPassword);
+        putIfPresent(map, PORT, _port);
+        putIfPresent(map, API_VERSION, _apiVersion);
+        putIfPresent(map, API_RELATIVE_PATH, _apiRelativePath);
+        putIfPresent(map, RETRY_COUNT, _retryCount);
+        putIfPresent(map, RETRY_INTERVAL, _retryInterval);
+        putIfPresent(map, NUAGE_VSP_CMS_ID, _nuageVspCmsId);
+        return  map;
+    }
+
+    private void putIfPresent(Map<String, String> map, String key, String value) {
+        Preconditions.checkNotNull(map);
+        Preconditions.checkNotNull(key);
+
+        if (value != null) {
+            map.put(key, value);
+        }
+    }
+
+    public static NuageVspResourceConfiguration fromConfiguration(Map<String, ?> configuration) {
+        return new NuageVspResourceConfiguration()
+                .guid((String)configuration.get(GUID))
+                .zoneId((String)configuration.get(ZONE_ID))
+                .hostName((String)configuration.get(HOST_NAME))
+                .cmsUser((String)configuration.get(CMS_USER))
+                .cmsUserPassword((String)configuration.get(CMS_USER_PASSWORD))
+                .port((String)configuration.get(PORT))
+                .apiVersion((String)configuration.get(API_VERSION))
+                .apiRelativePath((String)configuration.get(API_RELATIVE_PATH))
+                .retryCount((String)configuration.get(RETRY_COUNT))
+                .retryInterval((String)configuration.get(RETRY_INTERVAL))
+                .nuageVspCmsId((String)configuration.get(NUAGE_VSP_CMS_ID));
+    }
+
+    private void verifyNotNull(String name, String value) throws ConfigurationException {
+        if (value == null) {
+            throw new ConfigurationException("Unable to find " + name);
+        }
+    }
+
+    private void verifyNotEmpty(String name, String value) throws ConfigurationException {
+        if (StringUtils.isEmpty(value)) {
+            throw new ConfigurationException("Unable to find " + name);
+        }
+    }
+
+    private int verifyInRange(String name, String value, int min, int max) throws ConfigurationException {
+        verifyNotEmpty(name, value);
+
+        int parsedValue;
+        try {
+            parsedValue = Integer.parseInt(value);
+        } catch (NumberFormatException ex) {
+            throw new ConfigurationException(name + " has to be between " + min + " and " + max);
+        }
+        if ((parsedValue < min) || (parsedValue > max)) {
+            throw new ConfigurationException(name + " has to be between " + min + " and " + max);
+        }
+        return parsedValue;
+    }
+
+    public void validate() throws ConfigurationException {
+        verifyNotNull("name", _name);
+        verifyNotNull("guid", _guid);
+        verifyNotNull("zone", _zoneId);
+        verifyNotNull("hostname", _hostName);
+        verifyNotNull("CMS username", _cmsUser);
+        verifyNotNull("CMS password", _cmsUserPassword);
+        verifyNotEmpty("API version", _apiVersion);
+
+        try {
+                new NuageVspApiVersion(_apiVersion);
+        } catch(IllegalArgumentException e) {
+            throw new ConfigurationException("Incorrect API version");
+        }
+
+        verifyNotEmpty("number of retries", _retryCount);
+        verifyNotEmpty("retry interval", _retryInterval);
+    }
+
+    public int parseRetryCount() throws ConfigurationException {
+        return verifyInRange("Number of retries", _retryCount, 1, 10);
+    }
+
+    public int parseRetryInterval() throws ConfigurationException {
+        return verifyInRange("Retry interval", _retryInterval, 1, 10000);
+    }
+
+    public VspHost buildVspHost() throws ConfigurationException {
+        return new VspHost.Builder()
+                .cmsUser(new NuageVspUser(CMS_USER_ENTEPRISE_NAME, _cmsUser,  NuageVspUtil.decodePassword(_cmsUserPassword)))
+                .apiVersion(getApiVersion())
+                .restRelativePath(getApiPath())
+                .rootPath(getRootPath())
+                .nuageVspCmsId(_nuageVspCmsId)
+                .noofRetry(parseRetryCount())
+                .retryInterval(parseRetryInterval())
+                .build();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+
+        if (!(o instanceof NuageVspResourceConfiguration)) {
+            return false;
+        }
+
+        NuageVspResourceConfiguration that = (NuageVspResourceConfiguration) o;
+
+        return super.equals(that)
+                && Objects.equals(_name, that._name)
+                && Objects.equals(_guid, that._guid)
+                && Objects.equals(_zoneId, that._zoneId)
+                && Objects.equals(_hostName, that._hostName)
+                && Objects.equals(_cmsUser, that._cmsUser)
+                && Objects.equals(_cmsUserPassword, that._cmsUserPassword)
+                && Objects.equals(_port, that._port)
+                && Objects.equals(_apiVersion, that._apiVersion)
+                && Objects.equals(_apiRelativePath, that._apiRelativePath)
+                && Objects.equals(_retryCount, that._retryCount)
+                && Objects.equals(_retryInterval, that._retryInterval)
+                && Objects.equals(_nuageVspCmsId, that._nuageVspCmsId);
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder()
+                .appendSuper(super.hashCode())
+                .append(_name)
+                .append(_guid)
+                .append(_zoneId)
+                .append(_hostName)
+                .append(_cmsUser)
+                .append(_cmsUserPassword)
+                .append(_port)
+                .append(_apiVersion)
+                .append(_apiRelativePath)
+                .append(_retryCount)
+                .append(_retryInterval)
+                .append(_nuageVspCmsId)
+                .toHashCode();
+    }
+
+    @Override public String toString() {
+        return new ToStringBuilder(this)
+                .append("_name", _name)
+                .append("_guid", _guid)
+                .append("_zoneId", _zoneId)
+                .append("_hostName", _hostName)
+                .append("_cmsUser", _cmsUser)
+                .append("_cmsUserPassword", _cmsUserPassword)
+                .append("_port", _port)
+                .append("_apiVersion", _apiVersion)
+                .append("_apiRelativePath", _apiRelativePath)
+                .append("_retryCount", _retryCount)
+                .append("_retryInterval", _retryInterval)
+                .append("_nuageVspCmsId", _nuageVspCmsId)
+                .toString();
+    }
+}
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApiSupportCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApiSupportCommandWrapper.java
new file mode 100644
index 0000000..1e84e20
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApiSupportCommandWrapper.java
@@ -0,0 +1,41 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.manager.SupportedApiVersionCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  SupportedApiVersionCommand.class)
+public final class NuageVspApiSupportCommandWrapper extends NuageVspCommandWrapper<SupportedApiVersionCommand> {
+
+    @Override public boolean executeNuageVspCommand(SupportedApiVersionCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        return nuageVspResource.getNuageVspManagerClient().isSupportedApiVersion(cmd.getApiVersion());
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, SupportedApiVersionCommand cmd) {
+        return stringBuilder.append("Check if API version ").append(cmd.getApiVersion()).append(" is supported");
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApplyAclRulesCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApplyAclRulesCommandWrapper.java
new file mode 100644
index 0000000..42499c4
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApplyAclRulesCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.element.ApplyAclRuleVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  ApplyAclRuleVspCommand.class)
+public final class NuageVspApplyAclRulesCommandWrapper extends NuageVspCommandWrapper<ApplyAclRuleVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(ApplyAclRuleVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspElementClient().applyAclRules(cmd.getAclType(), cmd.getNetwork(), cmd.getAclRules(), cmd.isNetworkReset());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, ApplyAclRuleVspCommand cmd) {
+        return stringBuilder.append("Applied ACL Rule to network mapping " + cmd.getNetwork().getUuid());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApplyStaticNatCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApplyStaticNatCommandWrapper.java
new file mode 100644
index 0000000..81fbdef
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspApplyStaticNatCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.element.ApplyStaticNatVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  ApplyStaticNatVspCommand.class)
+public final class NuageVspApplyStaticNatCommandWrapper extends NuageVspCommandWrapper<ApplyStaticNatVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(ApplyStaticNatVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspElementClient().applyStaticNats(cmd.getNetwork(), cmd.getStaticNatDetails());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, ApplyStaticNatVspCommand cmd) {
+        return stringBuilder.append("Applied Static NAT to network mapping ").append(cmd.getNetwork().getUuid());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspCleanupDomainCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspCleanupDomainCommandWrapper.java
new file mode 100644
index 0000000..273a719
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspCleanupDomainCommandWrapper.java
@@ -0,0 +1,41 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.manager.CleanUpDomainCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  CleanUpDomainCommand.class)
+public final class NuageVspCleanupDomainCommandWrapper extends NuageVspCommandWrapper<CleanUpDomainCommand> {
+
+    @Override public boolean executeNuageVspCommand(CleanUpDomainCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        return nuageVspResource.getNuageVspManagerClient().cleanUpDomain(cmd.getDomainCleanUp());
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, CleanUpDomainCommand cmd) {
+        return stringBuilder.append("Clean Domain ").append(cmd.getDomainCleanUp().getUuid());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspCommandWrapper.java
new file mode 100644
index 0000000..ee3f5c5
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspCommandWrapper.java
@@ -0,0 +1,52 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import org.apache.log4j.Logger;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.Command;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.CommandWrapper;
+
+public abstract class NuageVspCommandWrapper<T extends Command> extends CommandWrapper<T, Answer, NuageVspResource> {
+
+    private static final Logger s_logger = Logger.getLogger(NuageVspResource.class);
+
+    @Override
+    public final Answer execute(final T command, final NuageVspResource nuageVspResource) {
+        try {
+            boolean success = executeNuageVspCommand(command, nuageVspResource);
+            String detail = fillDetail(new StringBuilder(), command).append(" on ").append(nuageVspResource.getName()).toString();
+            return new Answer(command, success, detail);
+        } catch (NuageVspException | ConfigurationException e) {
+            s_logger.error("Failure during " + command + " on " + nuageVspResource.getName(), e);
+            return new Answer(command, e);
+        }
+    }
+
+    public abstract boolean executeNuageVspCommand(final T command, final NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException;
+
+    public abstract StringBuilder fillDetail(final StringBuilder stringBuilder, final T command);
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspDeallocateVmInterfaceCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspDeallocateVmInterfaceCommandWrapper.java
new file mode 100644
index 0000000..2125653
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspDeallocateVmInterfaceCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.guru.DeallocateVmVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  DeallocateVmVspCommand.class)
+public final class NuageVspDeallocateVmInterfaceCommandWrapper extends NuageVspCommandWrapper<DeallocateVmVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(DeallocateVmVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspGuruClient().deallocate(cmd.getNetwork(), cmd.getVm(), cmd.getNic());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, DeallocateVmVspCommand cmd) {
+        return stringBuilder.append("Deallocated VM ").append(cmd.getVm().getName());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspEntityExistsCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspEntityExistsCommandWrapper.java
new file mode 100644
index 0000000..ecf0629
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspEntityExistsCommandWrapper.java
@@ -0,0 +1,55 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.common.model.NuageVspEntity;
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.manager.EntityExistsCommand;
+import com.cloud.dc.Vlan;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  EntityExistsCommand.class)
+public final class NuageVspEntityExistsCommandWrapper extends NuageVspCommandWrapper<EntityExistsCommand> {
+
+    @Override public boolean executeNuageVspCommand(EntityExistsCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        NuageVspEntity entityType = getNuageVspEntity(cmd.getType());
+
+        return nuageVspResource.getNuageVspApiClient().entityExists(entityType, cmd.getUuid());
+    }
+
+    private NuageVspEntity getNuageVspEntity(Class clazz) {
+        NuageVspEntity entityType = null;
+
+        if (Vlan.class.isAssignableFrom(clazz)) {
+            entityType = NuageVspEntity.SHARED_NETWORK;
+        }
+
+        return entityType;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, EntityExistsCommand cmd) {
+        return stringBuilder.append("Check if entity with UUID " + cmd.getUuid() + " of type " + getNuageVspEntity(cmd.getType()) + " exists");
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGetApiDefaultsCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGetApiDefaultsCommandWrapper.java
new file mode 100644
index 0000000..ac96895
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGetApiDefaultsCommandWrapper.java
@@ -0,0 +1,43 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.manager.GetApiDefaultsAnswer;
+import com.cloud.agent.api.manager.GetApiDefaultsCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  GetApiDefaultsCommand.class)
+public final class NuageVspGetApiDefaultsCommandWrapper extends CommandWrapper<GetApiDefaultsCommand, GetApiDefaultsAnswer, NuageVspResource> {
+
+    @Override
+    public GetApiDefaultsAnswer execute(final GetApiDefaultsCommand command, final NuageVspResource nuageVspResource) {
+        try {
+            return new GetApiDefaultsAnswer(command, nuageVspResource.getNuageVspManagerClient().getApiDefaults());
+        } catch (NuageVspException|ConfigurationException e) {
+            return new GetApiDefaultsAnswer(command, e);
+        }
+    }
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGuruImplementNetworkCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGuruImplementNetworkCommandWrapper.java
new file mode 100644
index 0000000..1ba77ff
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGuruImplementNetworkCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.guru.ImplementNetworkVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  ImplementNetworkVspCommand.class)
+public final class NuageVspGuruImplementNetworkCommandWrapper extends NuageVspCommandWrapper<ImplementNetworkVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(ImplementNetworkVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspGuruClient().implement(cmd.getNetwork(), cmd.getDhcpOption());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, ImplementNetworkVspCommand command) {
+        return stringBuilder.append("Created network mapping to ").append(command.getNetwork().getName());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGuruTrashNetworkCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGuruTrashNetworkCommandWrapper.java
new file mode 100644
index 0000000..1f12f94
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspGuruTrashNetworkCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.guru.TrashNetworkVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  TrashNetworkVspCommand.class)
+public final class NuageVspGuruTrashNetworkCommandWrapper extends NuageVspCommandWrapper<TrashNetworkVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(TrashNetworkVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspGuruClient().trash(cmd.getNetwork());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, TrashNetworkVspCommand command) {
+        return stringBuilder;
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspImplementNetworkCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspImplementNetworkCommandWrapper.java
new file mode 100644
index 0000000..d0732da
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspImplementNetworkCommandWrapper.java
@@ -0,0 +1,43 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.element.ImplementVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  ImplementVspCommand.class)
+public final class NuageVspImplementNetworkCommandWrapper extends NuageVspCommandWrapper<ImplementVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(ImplementVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspElementClient().implement(cmd.getNetwork(), cmd.getDhcpOption(), cmd.getIngressFirewallRules(),
+                cmd.getEgressFirewallRules(), cmd.getFloatingIpUuids());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, ImplementVspCommand cmd) {
+        return stringBuilder.append("Implemented network ").append(cmd.getNetwork().getUuid());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspMaintainCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspMaintainCommandWrapper.java
new file mode 100644
index 0000000..b0e6db7
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspMaintainCommandWrapper.java
@@ -0,0 +1,35 @@
+//
+// 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.vsp.resource.wrapper;
+
+import com.cloud.agent.api.MaintainAnswer;
+import com.cloud.agent.api.MaintainCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  MaintainCommand.class)
+public final class NuageVspMaintainCommandWrapper extends CommandWrapper<MaintainCommand, MaintainAnswer, NuageVspResource> {
+
+    @Override
+    public MaintainAnswer execute(final MaintainCommand command, final NuageVspResource nuageVspResource) {
+        return new MaintainAnswer(command);
+    }
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspReadyCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspReadyCommandWrapper.java
new file mode 100644
index 0000000..ca95b46
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspReadyCommandWrapper.java
@@ -0,0 +1,35 @@
+//
+// 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.vsp.resource.wrapper;
+
+import com.cloud.agent.api.ReadyAnswer;
+import com.cloud.agent.api.ReadyCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  ReadyCommand.class)
+public final class NuageVspReadyCommandWrapper extends CommandWrapper<ReadyCommand, ReadyAnswer, NuageVspResource> {
+
+    @Override
+    public ReadyAnswer execute(final ReadyCommand command, final NuageVspResource nuageVspResource) {
+        return new ReadyAnswer(command);
+    }
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspReserveVmInterfaceCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspReserveVmInterfaceCommandWrapper.java
new file mode 100644
index 0000000..fdf1ab2
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspReserveVmInterfaceCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.guru.ReserveVmInterfaceVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  ReserveVmInterfaceVspCommand.class)
+public final class NuageVspReserveVmInterfaceCommandWrapper extends NuageVspCommandWrapper<ReserveVmInterfaceVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(ReserveVmInterfaceVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspGuruClient().reserve(cmd.getNetwork(), cmd.getVm(), cmd.getNic(), cmd.getStaticNat(), cmd.getDhcpOption());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, ReserveVmInterfaceVspCommand command) {
+        return stringBuilder.append("Created NIC that maps to nicUuid ").append(command.getNic().getUuid());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspShutdownNetworkCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspShutdownNetworkCommandWrapper.java
new file mode 100644
index 0000000..1852eb6
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspShutdownNetworkCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.element.ShutDownVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  ShutDownVspCommand.class)
+public final class NuageVspShutdownNetworkCommandWrapper extends NuageVspCommandWrapper<ShutDownVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(ShutDownVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspElementClient().shutdownNetwork(cmd.getNetwork(), cmd.getDhcpOptions());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, ShutDownVspCommand cmd) {
+        return stringBuilder.append("Shutdown Network " + cmd.getNetwork().getUuid());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspShutdownVpcCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspShutdownVpcCommandWrapper.java
new file mode 100644
index 0000000..d2d9ea7
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspShutdownVpcCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.element.ShutDownVpcVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  ShutDownVpcVspCommand.class)
+public final class NuageVspShutdownVpcCommandWrapper extends NuageVspCommandWrapper<ShutDownVpcVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(ShutDownVpcVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspElementClient().shutdownVpc(cmd.getDomainUuid(), cmd.getVpcUuid(), cmd.getDomainTemplateName(), cmd.getDomainRouterUuids());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, ShutDownVpcVspCommand cmd) {
+        return stringBuilder.append("Shutdown VPC " + cmd.getVpcUuid());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspSyncCmsIdCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspSyncCmsIdCommandWrapper.java
new file mode 100644
index 0000000..c101344
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspSyncCmsIdCommandWrapper.java
@@ -0,0 +1,62 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.api.NuageVspManagerClient;
+import net.nuage.vsp.acs.client.common.model.Pair;
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.sync.SyncNuageVspCmsIdAnswer;
+import com.cloud.agent.api.sync.SyncNuageVspCmsIdCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.CommandWrapper;
+import com.cloud.resource.ResourceWrapper;
+import com.cloud.utils.StringUtils;
+
+@ResourceWrapper(handles =  SyncNuageVspCmsIdCommand.class)
+public final class NuageVspSyncCmsIdCommandWrapper extends CommandWrapper<SyncNuageVspCmsIdCommand, SyncNuageVspCmsIdAnswer, NuageVspResource> {
+
+    @Override public SyncNuageVspCmsIdAnswer execute(SyncNuageVspCmsIdCommand cmd, NuageVspResource nuageVspResource) {
+        NuageVspManagerClient client = null;
+        try {
+            client = nuageVspResource.getNuageVspManagerClient();
+
+            Pair<Boolean, String> answer;
+            switch (cmd.getSyncType()) {
+            case REGISTER:
+                String registeredNuageVspCmsId = client.registerNuageVspCmsId();
+                answer = Pair.of(StringUtils.isNotBlank(registeredNuageVspCmsId), registeredNuageVspCmsId);
+                break;
+            case UNREGISTER:
+                boolean success = client.unregisterNuageVspCmsId(cmd.getNuageVspCmsId());
+                answer = Pair.of(success, cmd.getNuageVspCmsId());
+                break;
+            default:
+                answer = client.auditNuageVspCmsId(cmd.getNuageVspCmsId(), cmd.getSyncType() == SyncNuageVspCmsIdCommand.SyncType.AUDIT_ONLY);
+                break;
+            }
+            return new SyncNuageVspCmsIdAnswer(answer.getLeft(), answer.getRight(), cmd.getSyncType());
+        } catch (ConfigurationException|NuageVspException e) {
+            return new SyncNuageVspCmsIdAnswer(cmd, e, cmd.getSyncType());
+        }
+    }
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspSyncDomainCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspSyncDomainCommandWrapper.java
new file mode 100644
index 0000000..b32e0b1
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspSyncDomainCommandWrapper.java
@@ -0,0 +1,41 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.sync.SyncDomainCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  SyncDomainCommand.class)
+public final class NuageVspSyncDomainCommandWrapper extends NuageVspCommandWrapper<SyncDomainCommand> {
+
+    @Override public boolean executeNuageVspCommand(SyncDomainCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        return nuageVspResource.getNuageVspManagerClient().syncDomainWithNuageVsp(cmd.getDomain(), cmd.isToAdd(), cmd.isToRemove());
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, SyncDomainCommand cmd) {
+        return stringBuilder.append("Synced Domain ").append(cmd.getDomain().getUuid());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspUpdateDhcpOptionsCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspUpdateDhcpOptionsCommandWrapper.java
new file mode 100644
index 0000000..56bde5c
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/NuageVspUpdateDhcpOptionsCommandWrapper.java
@@ -0,0 +1,42 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.guru.UpdateDhcpOptionVspCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  UpdateDhcpOptionVspCommand.class)
+public final class NuageVspUpdateDhcpOptionsCommandWrapper extends NuageVspCommandWrapper<UpdateDhcpOptionVspCommand> {
+
+    @Override public boolean executeNuageVspCommand(UpdateDhcpOptionVspCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        nuageVspResource.getNuageVspGuruClient().applyDhcpOptions(cmd.getDhcpOptions(), cmd.getNetwork());
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, UpdateDhcpOptionVspCommand cmd) {
+        return stringBuilder.append("Update DhcpOptions on VM's in network: ").append(cmd.getNetwork().getName());
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/UpdateNuageVspDeviceCommandWrapper.java b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/UpdateNuageVspDeviceCommandWrapper.java
new file mode 100644
index 0000000..c895391
--- /dev/null
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/network/vsp/resource/wrapper/UpdateNuageVspDeviceCommandWrapper.java
@@ -0,0 +1,46 @@
+//
+// 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.vsp.resource.wrapper;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.exception.NuageVspException;
+
+import com.cloud.agent.api.manager.UpdateNuageVspDeviceCommand;
+import com.cloud.network.resource.NuageVspResource;
+import com.cloud.network.resource.NuageVspResourceConfiguration;
+import com.cloud.resource.ResourceWrapper;
+
+@ResourceWrapper(handles =  UpdateNuageVspDeviceCommand.class)
+public final class UpdateNuageVspDeviceCommandWrapper extends NuageVspCommandWrapper<UpdateNuageVspDeviceCommand> {
+
+    @Override public boolean executeNuageVspCommand(UpdateNuageVspDeviceCommand cmd, NuageVspResource nuageVspResource) throws ConfigurationException, NuageVspException {
+        final NuageVspResourceConfiguration configuration = cmd.getConfiguration();
+        nuageVspResource.validate(configuration);
+        nuageVspResource.getConfigParams().putAll(configuration.build());
+
+        return true;
+    }
+
+    @Override public StringBuilder fillDetail(StringBuilder stringBuilder, UpdateNuageVspDeviceCommand cmd) {
+        return stringBuilder.append("Updated the NuageVspResource parameters");
+    }
+
+}
\ No newline at end of file
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/util/NuageVspEntityBuilder.java b/plugins/network-elements/nuage-vsp/src/com/cloud/util/NuageVspEntityBuilder.java
index db24050..4e6ccb3 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/util/NuageVspEntityBuilder.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/util/NuageVspEntityBuilder.java
@@ -22,29 +22,21 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
+import javax.annotation.Nullable;
 import javax.inject.Inject;
 
-import net.nuage.vsp.acs.client.api.model.VspAclRule;
-import net.nuage.vsp.acs.client.api.model.VspDomain;
-import net.nuage.vsp.acs.client.api.model.VspNetwork;
-import net.nuage.vsp.acs.client.api.model.VspNic;
-import net.nuage.vsp.acs.client.api.model.VspStaticNat;
-import net.nuage.vsp.acs.client.api.model.VspVm;
-import net.nuage.vsp.acs.client.common.model.Pair;
-
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-
+import com.cloud.dc.Vlan;
 import com.cloud.dc.VlanVO;
 import com.cloud.dc.dao.VlanDao;
+import com.cloud.dc.dao.VlanDetailsDao;
 import com.cloud.domain.Domain;
 import com.cloud.domain.DomainVO;
 import com.cloud.domain.dao.DomainDao;
@@ -53,11 +45,15 @@
 import com.cloud.network.NetworkModel;
 import com.cloud.network.dao.IPAddressDao;
 import com.cloud.network.dao.IPAddressVO;
+import com.cloud.network.dao.NetworkDao;
 import com.cloud.network.dao.NetworkDetailsDao;
+import com.cloud.network.dao.NetworkVO;
+import com.cloud.network.manager.NuageVspManager;
 import com.cloud.network.rules.FirewallRule;
 import com.cloud.network.vpc.NetworkACLItem;
 import com.cloud.network.vpc.VpcVO;
 import com.cloud.network.vpc.dao.VpcDao;
+import com.cloud.offering.NetworkOffering;
 import com.cloud.offerings.NetworkOfferingVO;
 import com.cloud.offerings.dao.NetworkOfferingDao;
 import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
@@ -67,12 +63,33 @@
 import com.cloud.utils.net.NetUtils;
 import com.cloud.vm.NicProfile;
 import com.cloud.vm.NicVO;
+import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
+import com.cloud.vm.dao.VMInstanceDao;
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import net.nuage.vsp.acs.client.api.model.VspAclRule;
+import net.nuage.vsp.acs.client.api.model.VspAddressRange;
+import net.nuage.vsp.acs.client.api.model.VspDhcpDomainOption;
+import net.nuage.vsp.acs.client.api.model.VspDhcpVMOption;
+import net.nuage.vsp.acs.client.api.model.VspDomain;
+import net.nuage.vsp.acs.client.api.model.VspDomainCleanUp;
+import net.nuage.vsp.acs.client.api.model.VspNetwork;
+import net.nuage.vsp.acs.client.api.model.VspNic;
+import net.nuage.vsp.acs.client.api.model.VspStaticNat;
+import net.nuage.vsp.acs.client.api.model.VspVm;
+import net.nuage.vsp.acs.client.common.model.Pair;
 
 public class NuageVspEntityBuilder {
     private static final Logger s_logger = Logger.getLogger(NuageVspEntityBuilder.class);
 
     @Inject
+    NetworkDao _networkDao;
+    @Inject
     VpcDao _vpcDao;
     @Inject
     DomainDao _domainDao;
@@ -87,11 +104,20 @@
     @Inject
     VlanDao _vlanDao;
     @Inject
+    VlanDetailsDao _vlanDetailsDao;
+    @Inject
     ConfigurationDao _configurationDao;
     @Inject
     IPAddressDao _ipAddressDao;
     @Inject
     NetworkDetailsDao _networkDetailsDao;
+    @Inject
+    VMInstanceDao _vmInstanceDao;
+    @Inject
+    NuageVspManager _nuageVspManager;
+    @Inject
+    NetworkOfferingServiceMapDao _ntwkOfferingSrvcDao;
+
 
     public VspDomain buildVspDomain(Domain domain) {
         return new VspDomain.Builder()
@@ -101,7 +127,31 @@
                 .build();
     }
 
-    public VspNetwork buildVspNetwork(Network network, boolean fillAddressRange) {
+    public VspDomainCleanUp buildVspDomainCleanUp(Domain domain) {
+        VspDomainCleanUp.Builder vspDomainCleanUpBuilder = new VspDomainCleanUp.Builder().uuid(domain.getUuid());
+
+        Map<String, List<String>> sharedNetworkUuids = Maps.newHashMap();
+        List<NetworkVO> allSharedNetworks = _networkDao.listByGuestType(Network.GuestType.Shared);
+        for (NetworkVO sharedNetwork : allSharedNetworks) {
+            if (_networkModel.isNetworkAvailableInDomain(sharedNetwork.getId(), domain.getId())) {
+                NetworkOffering networkOffering = _networkOfferingDao.findById(sharedNetwork.getNetworkOfferingId());
+                String preConfiguredDomainTemplateName = NuageVspUtil.getPreConfiguredDomainTemplateName(_configurationDao, _networkDetailsDao, sharedNetwork, networkOffering);
+                if (!sharedNetworkUuids.containsKey(preConfiguredDomainTemplateName)) {
+                    sharedNetworkUuids.put(preConfiguredDomainTemplateName, Lists.<String>newArrayList());
+                }
+                sharedNetworkUuids.get(preConfiguredDomainTemplateName).add(sharedNetwork.getUuid());
+            }
+        }
+        vspDomainCleanUpBuilder.sharedNetworkUuids(sharedNetworkUuids);
+
+        return vspDomainCleanUpBuilder.build();
+    }
+
+    public VspNetwork buildVspNetwork(Network network) {
+        return buildVspNetwork(network.getDomainId(), network);
+    }
+
+    public VspNetwork buildVspNetwork(long domainId, Network network) {
         VspNetwork.Builder vspNetworkBuilder = new VspNetwork.Builder()
                 .id(network.getId())
                 .uuid(network.getUuid())
@@ -109,7 +159,7 @@
                 .cidr(network.getCidr())
                 .gateway(network.getGateway());
 
-        DomainVO domain = _domainDao.findById(network.getDomainId());
+        DomainVO domain = _domainDao.findById(domainId);
         VspDomain vspDomain = buildVspDomain(domain);
         vspNetworkBuilder.domain(vspDomain);
 
@@ -119,7 +169,7 @@
         }
 
         NetworkOfferingVO networkOffering = _networkOfferingDao.findById(network.getNetworkOfferingId());
-        vspNetworkBuilder.egressDefaultPolicy(networkOffering.getEgressDefaultPolicy());
+        vspNetworkBuilder.egressDefaultPolicy(networkOffering.getEgressDefaultPolicy()).publicAccess(networkOffering.getSupportsPublicAccess());
 
         if (network.getVpcId() != null) {
             VpcVO vpc = _vpcDao.findById(network.getVpcId());
@@ -128,7 +178,16 @@
                     .networkType(VspNetwork.NetworkType.Vpc);
         } else {
             if (networkOffering.getGuestType() == Network.GuestType.Shared) {
-                vspNetworkBuilder.networkType(VspNetwork.NetworkType.Shared);
+                List<VlanVO> vlans = _vlanDao.listVlansByNetworkIdIncludingRemoved(network.getId());
+                List<VspAddressRange> vspAddressRanges = Lists.transform(vlans, new Function<VlanVO, VspAddressRange>() {
+                    @Nullable
+                    @Override
+                    public VspAddressRange apply(VlanVO vlanVO) {
+                        return new VspAddressRange.Builder().gateway(vlanVO.getVlanGateway()).netmask(vlanVO.getVlanNetmask()).build();
+                    }
+                });
+
+                vspNetworkBuilder.networkType(VspNetwork.NetworkType.Shared).addressRanges(vspAddressRanges);
             } else if (_networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(network.getNetworkOfferingId(), Network.Service.SourceNat)
                     || _networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(network.getNetworkOfferingId(), Network.Service.StaticNat)) {
                 vspNetworkBuilder.networkType(VspNetwork.NetworkType.L3);
@@ -143,11 +202,10 @@
         String preConfiguredDomainTemplateName = NuageVspUtil.getPreConfiguredDomainTemplateName(_configurationDao, _networkDetailsDao, network, networkOffering);
         vspNetworkBuilder.domainTemplateName(preConfiguredDomainTemplateName);
 
-        if (fillAddressRange) {
+        if (usesVirtualRouter(networkOffering.getId())) {
             try {
-                List<Pair<String, String>> ipAddressRanges = getIpAddressRanges(networkOffering, network);
-                vspNetworkBuilder.ipAddressRanges(ipAddressRanges);
-
+                List<Pair<String, String>> ipAddressRanges =
+                        networkOffering.getGuestType() == Network.GuestType.Shared ? getSharedIpAddressRanges(network.getId()) : getIpAddressRanges(network);
                 String virtualRouterIp = getVirtualRouterIP(network, ipAddressRanges);
                 vspNetworkBuilder.virtualRouterIp(virtualRouterIp);
             } catch (InsufficientVirtualNetworkCapacityException ex) {
@@ -159,21 +217,44 @@
         return vspNetworkBuilder.build();
     }
 
-    private List<Pair<String, String>> getIpAddressRanges(NetworkOfferingVO networkOffering, Network network) {
-        List<Pair<String, String>> ipAddressRanges = Lists.newArrayList();
-        if (networkOffering.getGuestType() == Network.GuestType.Shared) {
-            List<VlanVO> vlans = _vlanDao.listVlansByNetworkId(network.getId());
-            ipAddressRanges = Lists.newArrayList();
-            for (VlanVO vlan : vlans) {
-                boolean isIpv4 = StringUtils.isNotBlank(vlan.getIpRange());
-                String[] range = isIpv4 ? vlan.getIpRange().split("-") : vlan.getIp6Range().split("-");
-                if (range.length == 2) {
-                    ipAddressRanges.add(Pair.of(range[0], range[1]));
-                }
-            }
-            return ipAddressRanges;
-        }
+    public boolean usesVirtualRouter(long networkOfferingId) {
+        return _networkOfferingServiceMapDao.isProviderForNetworkOffering(networkOfferingId, Network.Provider.VirtualRouter) ||
+                _networkOfferingServiceMapDao.isProviderForNetworkOffering(networkOfferingId, Network.Provider.VPCVirtualRouter);
+    }
 
+    public VspNetwork updateVspNetworkByPublicIp(VspNetwork vspNetwork, Network network, String publicIp) {
+        List<VlanVO> vlans = _vlanDao.listVlansByNetworkId(network.getId());
+        final long ip = NetUtils.ip2Long(publicIp);
+        VlanVO matchingVlan = Iterables.find(vlans, new Predicate<VlanVO>() {
+            @Override
+            public boolean apply(@Nullable VlanVO vlan) {
+                Pair<String, String> ipAddressRange = getIpAddressRange(vlan);
+                long startIp = NetUtils.ip2Long(ipAddressRange.getLeft());
+                long endIp = NetUtils.ip2Long(ipAddressRange.getRight());
+                return startIp <= ip && ip <= endIp;
+            }
+        });
+
+        return new VspNetwork.Builder().fromObject(vspNetwork)
+                .gateway(matchingVlan.getVlanGateway())
+                .cidr(NetUtils.getCidrFromGatewayAndNetmask(matchingVlan.getVlanGateway(), matchingVlan.getVlanNetmask()))
+                .build();
+    }
+
+    private List<Pair<String, String>> getSharedIpAddressRanges(long networkId) {
+        List<VlanVO> vlans = _vlanDao.listVlansByNetworkId(networkId);
+        List<Pair<String, String>> ipAddressRanges = Lists.newArrayList();
+        for (VlanVO vlan : vlans) {
+            Pair<String, String> ipAddressRange = getIpAddressRange(vlan);
+            if (ipAddressRange != null) {
+                ipAddressRanges.add(ipAddressRange);
+            }
+        }
+        return ipAddressRanges;
+    }
+
+    private List<Pair<String, String>> getIpAddressRanges(Network network) {
+        List<Pair<String, String>> ipAddressRanges = Lists.newArrayList();
         String subnet = NetUtils.getCidrSubNet(network.getCidr());
         String netmask = NetUtils.getCidrNetmask(network.getCidr());
         long cidrSize = NetUtils.getCidrSize(netmask);
@@ -184,29 +265,53 @@
 
         Iterator<Long> ipIterator = allIPsInCidr.iterator();
         long ip =  ipIterator.next();
-        if (NetUtils.ip2Long(network.getGateway()) == ip) {
+        long gatewayIp = NetUtils.ip2Long(network.getGateway());
+        String lastIp = NetUtils.getIpRangeEndIpFromCidr(subnet, cidrSize);
+        if (gatewayIp == ip) {
             ip = ipIterator.next();
+            ipAddressRanges.add(Pair.of(NetUtils.long2Ip(ip), lastIp));
+        } else if (!network.getGateway().equals(lastIp)) {
+            ipAddressRanges.add(Pair.of(NetUtils.long2Ip(ip), NetUtils.long2Ip(gatewayIp - 1)));
+            ipAddressRanges.add(Pair.of(NetUtils.long2Ip(gatewayIp + 1), lastIp));
+        } else {
+            ipAddressRanges.add(Pair.of(NetUtils.long2Ip(ip), NetUtils.long2Ip(gatewayIp - 1)));
         }
-        ipAddressRanges.add(Pair.of(NetUtils.long2Ip(ip), NetUtils.getIpRangeEndIpFromCidr(subnet, cidrSize)));
+
         return ipAddressRanges;
     }
 
+    public Pair<String, String> getIpAddressRange(Vlan vlan) {
+        boolean isIpv4 = StringUtils.isNotBlank(vlan.getIpRange());
+        String[] range = isIpv4 ? vlan.getIpRange().split("-") : vlan.getIp6Range().split("-");
+        if (range.length == 2) {
+            return Pair.of(range[0], range[1]);
+        }
+        return null;
+    }
+
     private String getVirtualRouterIP(Network network, List<Pair<String, String>> ipAddressRanges) throws InsufficientVirtualNetworkCapacityException {
+        if (network.getBroadcastUri() != null) {
+            return network.getBroadcastUri().getPath().substring(1);
+        }
+
         Pair<String, String> lowestIpAddressRange = null;
+        long ipCount = 0;
         if (ipAddressRanges.size() == 1) {
             lowestIpAddressRange = Iterables.getOnlyElement(ipAddressRanges);
+            ipCount = NetUtils.ip2Long(lowestIpAddressRange.getRight()) - NetUtils.ip2Long(lowestIpAddressRange.getLeft()) + 1;
         } else {
             for (Pair<String, String> ipAddressRange : ipAddressRanges) {
                 if (lowestIpAddressRange == null || NetUtils.ip2Long(ipAddressRange.getLeft()) < NetUtils.ip2Long(lowestIpAddressRange.getLeft())) {
                     lowestIpAddressRange = ipAddressRange;
                 }
+                ipCount += NetUtils.ip2Long(ipAddressRange.getRight()) - NetUtils.ip2Long(ipAddressRange.getLeft()) + 1;
             }
         }
 
-        if (lowestIpAddressRange == null) {
+        if (ipCount == 0) {
             throw new InsufficientVirtualNetworkCapacityException("VSP allocates an IP for VirtualRouter." + " But no ip address ranges are specified", Network.class,
                     network.getId());
-        } else if (NetUtils.ip2Long(lowestIpAddressRange.getRight()) - NetUtils.ip2Long(lowestIpAddressRange.getLeft()) < 2) {
+        } else if (ipCount < 3) {
             throw new InsufficientVirtualNetworkCapacityException("VSP allocates an IP for VirtualRouter." + " So, subnet should have atleast minimum 3 hosts", Network.class,
                     network.getId());
         }
@@ -258,20 +363,23 @@
     }
 
     public VspNic buildVspNic(String nicUuid, NicProfile nicProfile) {
-        VspNic.Builder vspNicBuilder = new VspNic.Builder()
-                .uuid(nicUuid)
-                .macAddress(nicProfile.getMacAddress())
-                .useStaticIp(true)
-                .ip(nicProfile.getIPv4Address());
-        return vspNicBuilder.build();
+        return buildVspNic(nicUuid, nicProfile.getMacAddress(), nicProfile.getIPv4Address(), nicProfile.getNetworkId());
     }
 
     public VspNic buildVspNic(NicVO nic) {
+        return buildVspNic(nic.getUuid(), nic.getMacAddress(), nic.getIPv4Address(), nic.getNetworkId());
+    }
+
+    private VspNic buildVspNic(String uuid, String macAddress, String ip, long networkId) {
         VspNic.Builder vspNicBuilder = new VspNic.Builder()
-                .uuid(nic.getUuid())
-                .macAddress(nic.getMacAddress())
+                .uuid(uuid)
+                .macAddress(macAddress)
                 .useStaticIp(true)
-                .ip(nic.getIPv4Address());
+                .ip(ip);
+
+        Network network = _networkDao.findById(networkId);
+        NetworkOffering networkOffering = _networkOfferingDao.findById(network.getNetworkOfferingId());
+
         return vspNicBuilder.build();
     }
 
@@ -284,7 +392,8 @@
                 .state(getEnumValue(staticNatIp.getState(), VspStaticNat.State.class))
                 .vlanUuid(staticNatVlan.getUuid())
                 .vlanGateway(staticNatVlan.getVlanGateway())
-                .vlanNetmask(staticNatVlan.getVlanNetmask());
+                .vlanNetmask(staticNatVlan.getVlanNetmask())
+                .vlanUnderlay(NuageVspUtil.isUnderlayEnabledForVlan(_vlanDetailsDao, staticNatVlan));
 
         if (vspNic != null) {
             vspStaticNatBuilder.nic(vspNic);
@@ -378,6 +487,34 @@
         return vspAclRuleBuilder.build();
     }
 
+    /** Build VspDhcpVMOption to put on the VM interface */
+    public VspDhcpVMOption buildVmDhcpOption (NicVO userNic, boolean defaultHasDns, boolean networkHasDns) {
+        VMInstanceVO userVm  = _vmInstanceDao.findById(userNic.getInstanceId());
+        VspDhcpVMOption.Builder vspDhcpVMOptionBuilder = new VspDhcpVMOption.Builder()
+                .nicUuid(userNic.getUuid())
+                .defaultHasDns(defaultHasDns)
+                .hostname(userVm.getHostName())
+                .networkHasDns(networkHasDns)
+                .isDefaultInterface(userNic.isDefaultNic())
+                .domainRouter(VirtualMachine.Type.DomainRouter.equals(userNic.getVmType()));
+        return vspDhcpVMOptionBuilder.build();
+    }
+
+    /** Build VspDhcpVMOption to put on the subnet */
+    public VspDhcpDomainOption buildNetworkDhcpOption(Network network, NetworkOffering offering) {
+        List<String> dnsProvider = _ntwkOfferingSrvcDao.listProvidersForServiceForNetworkOffering(offering.getId(), Network.Service.Dns);
+        boolean isVrDnsProvider = dnsProvider.contains("VirtualRouter") || dnsProvider.contains("VpcVirtualRouter");
+        VspDhcpDomainOption.Builder vspDhcpDomainBuilder = new VspDhcpDomainOption.Builder()
+                .dnsServers(_nuageVspManager.getDnsDetails(network.getDataCenterId()))
+                .vrIsDnsProvider(isVrDnsProvider);
+
+        if (isVrDnsProvider) {
+            vspDhcpDomainBuilder.networkDomain(network.getVpcId() != null ? _vpcDao.findById(network.getVpcId()).getNetworkDomain() : network.getNetworkDomain());
+        }
+
+        return vspDhcpDomainBuilder.build();
+    }
+
     private <E extends Enum<E>> E getEnumValue(Enum cloudstackValue, Class<E> target) {
         try {
             return Enum.valueOf(target, cloudstackValue.name());
diff --git a/plugins/network-elements/nuage-vsp/src/com/cloud/util/NuageVspUtil.java b/plugins/network-elements/nuage-vsp/src/com/cloud/util/NuageVspUtil.java
index fedf048..7eff324 100644
--- a/plugins/network-elements/nuage-vsp/src/com/cloud/util/NuageVspUtil.java
+++ b/plugins/network-elements/nuage-vsp/src/com/cloud/util/NuageVspUtil.java
@@ -19,6 +19,9 @@
 
 package com.cloud.util;
 
+import com.cloud.dc.Vlan;
+import com.cloud.dc.VlanDetailsVO;
+import com.cloud.dc.dao.VlanDetailsDao;
 import com.cloud.network.Network;
 import com.cloud.network.dao.NetworkDetailVO;
 import com.cloud.network.dao.NetworkDetailsDao;
@@ -58,4 +61,9 @@
         byte[] passwordBytes = Base64.decodeBase64(encodedPasswordBytes);
         return new String(passwordBytes, StringUtils.getPreferredCharset());
     }
+
+    public static boolean isUnderlayEnabledForVlan(VlanDetailsDao vlanDetailsDao, Vlan vlan) {
+        VlanDetailsVO nuageUnderlayDetail = vlanDetailsDao.findDetail(vlan.getId(), NuageVspManager.nuageUnderlayVlanIpRangeDetailKey);
+        return nuageUnderlayDetail != null && nuageUnderlayDetail.getValue().equalsIgnoreCase(String.valueOf(true));
+    }
 }
diff --git a/plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/NuageVspPluginClientLoader.java b/plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/NuageVspPluginClientLoader.java
deleted file mode 100644
index 72ce290..0000000
--- a/plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/NuageVspPluginClientLoader.java
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// 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 net.nuage.vsp.acs;
-
-import net.nuage.vsp.acs.client.api.NuageVspApiClient;
-import net.nuage.vsp.acs.client.api.NuageVspElementClient;
-import net.nuage.vsp.acs.client.api.NuageVspGuruClient;
-import net.nuage.vsp.acs.client.api.NuageVspManagerClient;
-import net.nuage.vsp.acs.client.api.impl.NuageVspApiClientImpl;
-import net.nuage.vsp.acs.client.api.impl.NuageVspElementClientImpl;
-import net.nuage.vsp.acs.client.api.impl.NuageVspGuruClientImpl;
-import net.nuage.vsp.acs.client.api.impl.NuageVspManagerClientImpl;
-import net.nuage.vsp.acs.client.api.model.VspHost;
-import org.apache.log4j.Logger;
-
-
-public class NuageVspPluginClientLoader {
-
-    private static final Logger s_logger = Logger.getLogger(NuageVspPluginClientLoader.class);
-
-    private NuageVspApiClient _nuageVspApiClient;
-    private NuageVspElementClient _nuageVspElementClient;
-    private NuageVspGuruClient _nuageVspGuruClient;
-    private NuageVspManagerClient _nuageVspManagerClient;
-
-    private NuageVspPluginClientLoader() {
-
-    }
-
-    public static NuageVspPluginClientLoader getClientLoader(String relativePath, String cmsUserEnterprise, String cmsUserLogin,
-            String cmsUserPassword, int numRetries, int retryInterval, String nuageVspCmsId) {
-        NuageVspPluginClientLoader nuageVspPluginClientClassloader = new NuageVspPluginClientLoader();
-        nuageVspPluginClientClassloader.loadClasses(relativePath, cmsUserEnterprise, cmsUserLogin, cmsUserPassword, numRetries, retryInterval, nuageVspCmsId);
-        return nuageVspPluginClientClassloader;
-    }
-
-    private void loadClasses(String relativePath, String cmsUserEnterprise, String cmsUserLogin, String cmsUserPassword, int numRetries,
-            int retryInterval, String nuageVspCmsId) {
-        VspHost vspHost = new VspHost.Builder()
-                .restRelativePath(relativePath)
-                .cmsUserEnterprise(cmsUserEnterprise)
-                .cmsUserLogin(cmsUserLogin)
-                .cmsUserPassword(cmsUserPassword)
-                .noofRetry(numRetries)
-                .retryInterval(retryInterval)
-                .nuageVspCmsId(nuageVspCmsId)
-                .build();
-        _nuageVspApiClient = new NuageVspApiClientImpl(vspHost);
-        _nuageVspElementClient = new NuageVspElementClientImpl(_nuageVspApiClient);
-        _nuageVspGuruClient = new NuageVspGuruClientImpl(_nuageVspApiClient);
-        _nuageVspManagerClient = new NuageVspManagerClientImpl(_nuageVspApiClient);
-    }
-
-    public NuageVspApiClient getNuageVspApiClient() {
-        return _nuageVspApiClient;
-    }
-
-    public NuageVspElementClient getNuageVspElementClient() {
-        return _nuageVspElementClient;
-    }
-
-    public NuageVspGuruClient getNuageVspGuruClient() {
-        return _nuageVspGuruClient;
-    }
-
-    public NuageVspManagerClient getNuageVspManagerClient() {
-        return _nuageVspManagerClient;
-    }
-}
diff --git a/plugins/network-elements/nuage-vsp/test/com/cloud/NuageTest.java b/plugins/network-elements/nuage-vsp/test/com/cloud/NuageTest.java
index 845a8be..1474265 100644
--- a/plugins/network-elements/nuage-vsp/test/com/cloud/NuageTest.java
+++ b/plugins/network-elements/nuage-vsp/test/com/cloud/NuageTest.java
@@ -19,6 +19,25 @@
 
 package com.cloud;
 
+import java.util.ArrayList;
+
+import net.nuage.vsp.acs.client.api.model.VspAclRule;
+import net.nuage.vsp.acs.client.api.model.VspDhcpDomainOption;
+import net.nuage.vsp.acs.client.api.model.VspDhcpVMOption;
+import net.nuage.vsp.acs.client.api.model.VspDomain;
+import net.nuage.vsp.acs.client.api.model.VspNetwork;
+import net.nuage.vsp.acs.client.api.model.VspNic;
+import net.nuage.vsp.acs.client.api.model.VspStaticNat;
+import net.nuage.vsp.acs.client.api.model.VspVm;
+
+import org.junit.Before;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import com.google.common.collect.Lists;
+
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+
 import com.cloud.dc.VlanVO;
 import com.cloud.domain.Domain;
 import com.cloud.network.Network;
@@ -30,36 +49,28 @@
 import com.cloud.vm.NicProfile;
 import com.cloud.vm.NicVO;
 import com.cloud.vm.VirtualMachine;
-import net.nuage.vsp.acs.client.api.model.VspAclRule;
-import net.nuage.vsp.acs.client.api.model.VspDomain;
-import net.nuage.vsp.acs.client.api.model.VspNetwork;
-import net.nuage.vsp.acs.client.api.model.VspNic;
-import net.nuage.vsp.acs.client.api.model.VspStaticNat;
-import net.nuage.vsp.acs.client.api.model.VspVm;
-import net.nuage.vsp.acs.client.common.model.Pair;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.junit.Before;
-
-import java.util.ArrayList;
 
 import static com.cloud.network.manager.NuageVspManager.NuageVspIsolatedNetworkDomainTemplateName;
 import static com.cloud.network.manager.NuageVspManager.NuageVspSharedNetworkDomainTemplateName;
 import static com.cloud.network.manager.NuageVspManager.NuageVspVpcDomainTemplateName;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyLong;
 import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 public class NuageTest {
 
     protected static final long NETWORK_ID = 42L;
-    protected NetworkModel _networkModel = mock(NetworkModel.class);
-    protected ConfigurationDao _configurationDao = mock(ConfigurationDao.class);
-    protected NuageVspEntityBuilder _nuageVspEntityBuilder = mock(NuageVspEntityBuilder.class);
+
+    @Mock protected NetworkModel _networkModel;
+    @Mock protected ConfigurationDao _configurationDao;
+    @Mock protected NuageVspEntityBuilder _nuageVspEntityBuilder;
 
     @Before
     public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
         // Standard responses
         when(_networkModel.isProviderForNetwork(Network.Provider.NuageVsp, NETWORK_ID)).thenReturn(true);
         when(_configurationDao.getValue(NuageVspIsolatedNetworkDomainTemplateName.key())).thenReturn("IsolatedDomainTemplate");
@@ -67,7 +78,8 @@
         when(_configurationDao.getValue(NuageVspSharedNetworkDomainTemplateName.key())).thenReturn("SharedDomainTemplate");
 
         when(_nuageVspEntityBuilder.buildVspDomain(any(Domain.class))).thenReturn(buildVspDomain());
-        when(_nuageVspEntityBuilder.buildVspNetwork(any(Network.class), anyBoolean())).thenReturn(buildVspNetwork());
+        when(_nuageVspEntityBuilder.buildVspNetwork(any(Network.class))).thenReturn(buildVspNetwork());
+        when(_nuageVspEntityBuilder.buildVspNetwork(anyLong(), any(Network.class))).thenReturn(buildVspNetwork());
         when(_nuageVspEntityBuilder.buildVspVm(any(VirtualMachine.class), any(Network.class))).thenReturn(buildVspVm());
         when(_nuageVspEntityBuilder.buildVspNic(anyString(), any(NicProfile.class))).thenReturn(buildVspNic());
         when(_nuageVspEntityBuilder.buildVspNic(any(NicVO.class))).thenReturn(buildVspNic());
@@ -101,7 +113,6 @@
                 .cidr("networkCidr")
                 .gateway("networkGateway")
                 .virtualRouterIp("virtualRouterIp")
-                .ipAddressRanges(new ArrayList<Pair<String, String>>())
                 .build();
     }
 
@@ -154,4 +165,23 @@
                 .build();
     }
 
+    protected VspDhcpDomainOption buildspDhcpDomainOption () {
+        return new VspDhcpDomainOption.Builder()
+                .vrIsDnsProvider(true)
+                .networkDomain("networkDomain")
+                .dnsServers(Lists.newArrayList("10.10.10.10", "20.20.20.20"))
+                .build();
+    }
+
+    protected VspDhcpVMOption buildspDhcpVMOption () {
+        return new VspDhcpVMOption.Builder()
+                .defaultHasDns(true)
+                .hostname("VMx")
+                .networkHasDns(true)
+                .isDefaultInterface(true)
+                .domainRouter(false)
+                .nicUuid("aaaa-bbbbbbbb-ccccccc")
+                .build();
+    }
+
 }
diff --git a/plugins/network-elements/nuage-vsp/test/com/cloud/agent/api/CommandsTest.java b/plugins/network-elements/nuage-vsp/test/com/cloud/agent/api/CommandsTest.java
index 2a0b07a..5877ab0 100644
--- a/plugins/network-elements/nuage-vsp/test/com/cloud/agent/api/CommandsTest.java
+++ b/plugins/network-elements/nuage-vsp/test/com/cloud/agent/api/CommandsTest.java
@@ -19,6 +19,22 @@
 
 package com.cloud.agent.api;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.Map;
+
+import net.nuage.vsp.acs.client.api.model.Protocol;
+import net.nuage.vsp.acs.client.api.model.VspAclRule;
+import net.nuage.vsp.acs.client.api.model.VspNetwork;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.google.common.collect.Maps;
+import com.google.common.testing.EqualsTester;
+import com.google.gson.Gson;
+
 import com.cloud.agent.api.element.ApplyAclRuleVspCommand;
 import com.cloud.agent.api.element.ApplyStaticNatVspCommand;
 import com.cloud.agent.api.element.ImplementVspCommand;
@@ -27,71 +43,110 @@
 import com.cloud.agent.api.guru.ImplementNetworkVspCommand;
 import com.cloud.agent.api.guru.ReserveVmInterfaceVspCommand;
 import com.cloud.agent.api.guru.TrashNetworkVspCommand;
+import com.cloud.agent.api.manager.EntityExistsCommand;
 import com.cloud.agent.api.manager.SupportedApiVersionCommand;
 import com.cloud.agent.api.sync.SyncDomainCommand;
 import com.cloud.agent.api.sync.SyncNuageVspCmsIdCommand;
-import com.google.common.collect.Maps;
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
+import com.cloud.serializer.GsonHelper;
 
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Map;
+import static org.hamcrest.core.Is.is;
 
 public class CommandsTest {
+    private static final Gson s_gson = GsonHelper.getGson();
+
+    private EqualsTester tester = new EqualsTester();
 
     @Test
     public void testCommandEquals() throws IllegalAccessException, InvocationTargetException, InstantiationException {
-        ApplyAclRuleVspCommand applyAclRuleVspCommand = fillObject(ApplyAclRuleVspCommand.class);
-        ApplyAclRuleVspCommand otherApplyAclRuleVspCommand = fillObject(ApplyAclRuleVspCommand.class);
+        addCommandEqualityGroup(ApplyAclRuleVspCommand.class);
+        addCommandEqualityGroup(ImplementVspCommand.class);
+        addCommandEqualityGroup(ApplyStaticNatVspCommand.class);
+        addCommandEqualityGroup(ShutDownVpcVspCommand.class);
+        addCommandEqualityGroup(DeallocateVmVspCommand.class);
+        addCommandEqualityGroup(ImplementNetworkVspCommand.class);
+        addCommandEqualityGroup(ReserveVmInterfaceVspCommand.class);
+        addCommandEqualityGroup(TrashNetworkVspCommand.class);
+        addCommandEqualityGroup(SyncDomainCommand.class);
+        addCommandEqualityGroup(SyncNuageVspCmsIdCommand.class);
+        addCommandEqualityGroup(PingNuageVspCommand.class);
 
-        ApplyStaticNatVspCommand applyStaticNatVspCommand = fillObject(ApplyStaticNatVspCommand.class);
-        ApplyStaticNatVspCommand otherApplyStaticNatVspCommand = fillObject(ApplyStaticNatVspCommand.class);
+        SupportedApiVersionCommand supportedApiVersionCommandA = new SupportedApiVersionCommand("3.2");
+        SupportedApiVersionCommand supportedApiVersionCommandB = new SupportedApiVersionCommand("3.2");
 
-        ImplementVspCommand implementVspCommand = fillObject(ImplementVspCommand.class);
-        ImplementVspCommand otherImplementVspCommand = fillObject(ImplementVspCommand.class);
+        EntityExistsCommand entityExistsCommandA = new EntityExistsCommand(Command.class, "uuid");
+        EntityExistsCommand entityExistsCommandB = new EntityExistsCommand(Command.class, "uuid");
 
-        ShutDownVpcVspCommand shutDownVpcVspCommand = fillObject(ShutDownVpcVspCommand.class);
-        ShutDownVpcVspCommand otherShutDownVpcVspCommand = fillObject(ShutDownVpcVspCommand.class);
+        tester
+            .addEqualityGroup(supportedApiVersionCommandA, supportedApiVersionCommandB)
+            .addEqualityGroup(entityExistsCommandA, entityExistsCommandB)
+            .testEquals();
+    }
 
-        DeallocateVmVspCommand deallocateVmVspCommand = fillObject(DeallocateVmVspCommand.class);
-        DeallocateVmVspCommand otherDeallocateVmVspCommand = fillObject(DeallocateVmVspCommand.class);
+    @Test
+    public void testCommandGsonEquals() throws IllegalAccessException, InvocationTargetException, InstantiationException {
+        addCommandGsonEqualityGroup(ApplyAclRuleVspCommand.class);
+        addCommandGsonEqualityGroup(ImplementVspCommand.class);
+        addCommandGsonEqualityGroup(ApplyStaticNatVspCommand.class);
+        addCommandGsonEqualityGroup(ShutDownVpcVspCommand.class);
+        addCommandGsonEqualityGroup(DeallocateVmVspCommand.class);
+        addCommandGsonEqualityGroup(ImplementNetworkVspCommand.class);
+        addCommandGsonEqualityGroup(ReserveVmInterfaceVspCommand.class);
+        addCommandGsonEqualityGroup(TrashNetworkVspCommand.class);
+        addCommandGsonEqualityGroup(new SupportedApiVersionCommand("3.2"));
+        addCommandGsonEqualityGroup(SyncDomainCommand.class);
+        addCommandGsonEqualityGroup(SyncNuageVspCmsIdCommand.class);
+        addCommandGsonEqualityGroup(PingNuageVspCommand.class);
+        addCommandGsonEqualityGroup(new EntityExistsCommand(Command.class, "uuid"));
 
-        ImplementNetworkVspCommand implementNetworkVspCommand = fillObject(ImplementNetworkVspCommand.class);
-        ImplementNetworkVspCommand otherImplementNetworkVspCommand = fillObject(ImplementNetworkVspCommand.class);
+        tester.testEquals();
+    }
 
-        ReserveVmInterfaceVspCommand reserveVmInterfaceVspCommand = fillObject(ReserveVmInterfaceVspCommand.class);
-        ReserveVmInterfaceVspCommand otherReserveVmInterfaceVspCommand = fillObject(ReserveVmInterfaceVspCommand.class);
+    @Test
+    public void testApplyAclRuleVspCommandGsonEquals() throws IllegalAccessException, InvocationTargetException, InstantiationException {
+        VspNetwork vspNetwork = new VspNetwork.Builder()
+                .id(1)
+                .uuid("uuid")
+                .name("name")
+                .cidr("192.168.1.0/24")
+                .gateway("192.168.1.1")
+                .build();
 
-        TrashNetworkVspCommand trashNetworkVspCommand = fillObject(TrashNetworkVspCommand.class);
-        TrashNetworkVspCommand otherTrashNetworkVspCommand  = fillObject(TrashNetworkVspCommand.class);
+        VspAclRule aclRule = new VspAclRule.Builder()
+                .action(VspAclRule.ACLAction.Allow)
+                .uuid("uuid")
+                .trafficType(VspAclRule.ACLTrafficType.Egress)
+                .protocol(Protocol.TCP)
+                .startPort(80)
+                .endPort(80)
+                .priority(1)
+                .state(VspAclRule.ACLState.Active)
+                .build();
 
-        SupportedApiVersionCommand supportedApiVersionCommand = new SupportedApiVersionCommand("3.2");
-        SupportedApiVersionCommand otherSupportedApiVersionCommand = new SupportedApiVersionCommand("3.2");
+        ApplyAclRuleVspCommand before = new ApplyAclRuleVspCommand(VspAclRule.ACLType.NetworkACL, vspNetwork, Arrays.asList(aclRule), false);
+        ApplyAclRuleVspCommand after = serializeAndDeserialize(before);
 
-        SyncDomainCommand syncDomainCommand = fillObject(SyncDomainCommand.class);
-        SyncDomainCommand otherSyncDomainCommand = fillObject(SyncDomainCommand.class);
+        Assert.assertThat(after.getAclRules().get(0).getProtocol().hasPort(), is(Protocol.TCP.hasPort()));
+    }
 
-        SyncNuageVspCmsIdCommand syncNuageVspCmsIdCommand = fillObject(SyncNuageVspCmsIdCommand.class);
-        SyncNuageVspCmsIdCommand otherSyncNuageVspCmsIdCommand = fillObject(SyncNuageVspCmsIdCommand.class);
+    private <T extends Command> T serializeAndDeserialize(T command) {
+        Command[] forwardedCommands = s_gson.fromJson(s_gson.toJson(new Command[] { command }), Command[].class);
+        return (T) forwardedCommands[0];
+    }
 
-        PingNuageVspCommand pingNuageVspCommand = fillObject(PingNuageVspCommand.class);
-        PingNuageVspCommand otherPingNuageVspCommand = fillObject(PingNuageVspCommand.class);
+    private <T extends Command> void addCommandGsonEqualityGroup(Class<T> clazz) throws IllegalAccessException, InvocationTargetException, InstantiationException{
+        addCommandGsonEqualityGroup(fillObject(clazz));
+    }
 
-        new EqualsTester()
-                .addEqualityGroup(applyAclRuleVspCommand, otherApplyAclRuleVspCommand)
-                .addEqualityGroup(applyStaticNatVspCommand, otherApplyStaticNatVspCommand)
-                .addEqualityGroup(implementVspCommand, otherImplementVspCommand)
-                .addEqualityGroup(shutDownVpcVspCommand, otherShutDownVpcVspCommand)
-                .addEqualityGroup(deallocateVmVspCommand, otherDeallocateVmVspCommand)
-                .addEqualityGroup(implementNetworkVspCommand, otherImplementNetworkVspCommand)
-                .addEqualityGroup(reserveVmInterfaceVspCommand, otherReserveVmInterfaceVspCommand)
-                .addEqualityGroup(trashNetworkVspCommand, otherTrashNetworkVspCommand)
-                .addEqualityGroup(supportedApiVersionCommand, otherSupportedApiVersionCommand)
-                .addEqualityGroup(syncDomainCommand, otherSyncDomainCommand)
-                .addEqualityGroup(syncNuageVspCmsIdCommand, otherSyncNuageVspCmsIdCommand)
-                .addEqualityGroup(pingNuageVspCommand, otherPingNuageVspCommand)
-                .testEquals();
+    private <T extends Command> void addCommandGsonEqualityGroup(Command command) throws IllegalAccessException, InvocationTargetException, InstantiationException{
+        Command[] forwardedCommands = s_gson.fromJson(s_gson.toJson(new Command[] { command }), Command[].class);
+        Assert.assertEquals(command, forwardedCommands[0]);
+        tester.addEqualityGroup(command, forwardedCommands[0]);
+    }
+
+    private <T extends Command> void addCommandEqualityGroup(Class<T> clazz) throws IllegalAccessException, InvocationTargetException, InstantiationException {
+        Command a = fillObject(clazz);
+        Command b = fillObject(clazz);
+        tester.addEqualityGroup(a, b);
     }
 
     private <T> T fillObject(Class<T> clazz) throws IllegalAccessException, InvocationTargetException, InstantiationException {
diff --git a/plugins/network-elements/nuage-vsp/test/com/cloud/network/element/NuageVspElementTest.java b/plugins/network-elements/nuage-vsp/test/com/cloud/network/element/NuageVspElementTest.java
index 85cbb36..1916271 100644
--- a/plugins/network-elements/nuage-vsp/test/com/cloud/network/element/NuageVspElementTest.java
+++ b/plugins/network-elements/nuage-vsp/test/com/cloud/network/element/NuageVspElementTest.java
@@ -19,6 +19,23 @@
 
 package com.cloud.network.element;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Set;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
+import org.apache.cloudstack.resourcedetail.dao.VpcDetailsDao;
+
 import com.cloud.NuageTest;
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
@@ -63,18 +80,6 @@
 import com.cloud.vm.DomainRouterVO;
 import com.cloud.vm.ReservationContext;
 import com.cloud.vm.dao.DomainRouterDao;
-import com.google.common.collect.Lists;
-import org.apache.cloudstack.resourcedetail.dao.VpcDetailsDao;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -85,45 +90,35 @@
 
 public class NuageVspElementTest extends NuageTest {
 
+    @InjectMocks
     private NuageVspElement _nuageVspElement = new NuageVspElement();
 
-    private NetworkServiceMapDao _networkServiceMapDao = mock(NetworkServiceMapDao.class);
-    private AgentManager _agentManager = mock(AgentManager.class);
-    private HostDao _hostDao = mock(HostDao.class);
-    private NuageVspDao _nuageVspDao = mock(NuageVspDao.class);
-    private DomainDao _domainDao = mock(DomainDao.class);
-    private NetworkOfferingDao _networkOfferingDao = mock(NetworkOfferingDao.class);
-    private NetworkOfferingServiceMapDao _networkOfferingServiceMapDao = mock(NetworkOfferingServiceMapDao.class);
-    private NuageVspManager _nuageVspManager = mock(NuageVspManager.class);
-    private FirewallRulesDao _firewallRulesDao = mock(FirewallRulesDao.class);
-    private IPAddressDao _ipAddressDao = mock(IPAddressDao.class);
-    private PhysicalNetworkDao _physicalNetworkDao = mock(PhysicalNetworkDao.class);
-    private NuageVspEntityBuilder _nuageVspEntityBuilder = mock(NuageVspEntityBuilder.class);
-    private VpcDetailsDao _vpcDetailsDao = mock(VpcDetailsDao.class);
-    private DomainRouterDao _domainRouterDao = mock(DomainRouterDao.class);
+    @Mock private NetworkServiceMapDao _networkServiceMapDao;
+    @Mock private AgentManager _agentManager;
+    @Mock private HostDao _hostDao;
+    @Mock private NuageVspDao _nuageVspDao;
+    @Mock private DomainDao _domainDao;
+    @Mock private NetworkOfferingDao _networkOfferingDao;
+    @Mock private NetworkOfferingServiceMapDao _networkOfferingServiceMapDao;
+    @Mock private NuageVspManager _nuageVspManager;
+    @Mock private FirewallRulesDao _firewallRulesDao;
+    @Mock private IPAddressDao _ipAddressDao;
+    @Mock private PhysicalNetworkDao _physicalNetworkDao;
+    @Mock private NuageVspEntityBuilder _nuageVspEntityBuilder;
+    @Mock private VpcDetailsDao _vpcDetailsDao;
+    @Mock private DomainRouterDao _domainRouterDao;
+    @Mock private ResourceManager _resourceManager;
 
     @Before
     public void setUp() throws Exception {
         super.setUp();
-
-        _nuageVspElement._resourceMgr = mock(ResourceManager.class);
-        _nuageVspElement._ntwkSrvcDao = _networkServiceMapDao;
-        _nuageVspElement._networkModel = _networkModel;
-        _nuageVspElement._agentMgr = _agentManager;
-        _nuageVspElement._hostDao = _hostDao;
-        _nuageVspElement._nuageVspDao = _nuageVspDao;
-        _nuageVspElement._ntwkOfferingSrvcDao = _networkOfferingServiceMapDao;
-        _nuageVspElement._domainDao = _domainDao;
-        _nuageVspElement._ntwkOfferingDao = _networkOfferingDao;
-        _nuageVspElement._configDao = _configurationDao;
-        _nuageVspElement._nuageVspManager = _nuageVspManager;
-        _nuageVspElement._firewallRulesDao = _firewallRulesDao;
-        _nuageVspElement._ipAddressDao = _ipAddressDao;
-        _nuageVspElement._physicalNetworkDao = _physicalNetworkDao;
         _nuageVspElement._nuageVspEntityBuilder = _nuageVspEntityBuilder;
         _nuageVspElement._vpcDetailsDao = _vpcDetailsDao;
         _nuageVspElement._routerDao = _domainRouterDao;
 
+        when(_networkServiceMapDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NuageVsp)).thenReturn(true);
+        when(_networkServiceMapDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.SourceNat, Provider.NuageVsp)).thenReturn(true);
+
         _nuageVspElement.configure("NuageVspTestElement", Collections.<String, Object>emptyMap());
     }
 
@@ -139,7 +134,6 @@
         when(ntwkoffer.getIsPersistent()).thenReturn(true);
         when(_networkOfferingDao.findById(NETWORK_ID)).thenReturn(ntwkoffer);
 
-        when(_networkServiceMapDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NuageVsp)).thenReturn(true);
         // Golden path
         assertTrue(_nuageVspElement.canHandle(net, Service.Connectivity));
 
@@ -161,6 +155,9 @@
         // Only service Connectivity is supported
         assertFalse(_nuageVspElement.canHandle(net, Service.Dhcp));
 
+        // Can't handle network offerings with specify vlan = true
+        when(ntwkoffer.getSpecifyVlan()).thenReturn(true);
+        assertFalse(_nuageVspElement.canHandle(net, Service.Connectivity));
     }
 
     @Test
@@ -172,8 +169,8 @@
         when(network.getBroadcastUri()).thenReturn(new URI(""));
         when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID);
         when(network.getDomainId()).thenReturn(NETWORK_ID);
+        when(network.getDataCenterId()).thenReturn(NETWORK_ID);
         when(_networkModel.isProviderForNetwork(Provider.NuageVsp, NETWORK_ID)).thenReturn(true);
-        when(_networkServiceMapDao.canProviderSupportServiceInNetwork(NETWORK_ID, Service.Connectivity, Provider.NuageVsp)).thenReturn(true);
 
         final NetworkOffering offering = mock(NetworkOffering.class);
         when(offering.getId()).thenReturn(NETWORK_ID);
@@ -197,31 +194,33 @@
         when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
         when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{nuageVspDevice}));
         when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
+        when(_nuageVspManager.getNuageVspHost(NETWORK_ID)).thenReturn(host);
 
         when(_firewallRulesDao.listByNetworkPurposeTrafficType(NETWORK_ID, FirewallRule.Purpose.Firewall, FirewallRule.TrafficType.Ingress)).thenReturn(new ArrayList<FirewallRuleVO>());
         when(_firewallRulesDao.listByNetworkPurposeTrafficType(NETWORK_ID, FirewallRule.Purpose.Firewall, FirewallRule.TrafficType.Egress)).thenReturn(new ArrayList<FirewallRuleVO>());
         when(_ipAddressDao.listStaticNatPublicIps(NETWORK_ID)).thenReturn(new ArrayList<IPAddressVO>());
-        when(_nuageVspManager.getDnsDetails(network)).thenReturn(new ArrayList<String>());
+        when(_nuageVspManager.getDnsDetails(network.getDataCenterId())).thenReturn(new ArrayList<String>());
 
         assertTrue(_nuageVspElement.implement(network, offering, deployDest, context));
     }
 
     @Test
     public void testVerifyServiceCombination() {
-        Set<Service> services = new HashSet<Service>();
-        services.add(Service.Dhcp);
-        services.add(Service.StaticNat);
-        services.add(Service.SourceNat);
-        services.add(Service.Connectivity);
-        services.add(Service.Firewall);
+
+        Set<Service> services = Sets.newHashSet(
+            Service.Dhcp,
+            Service.StaticNat,
+            Service.SourceNat,
+            Service.Connectivity,
+            Service.Firewall);
         assertTrue(_nuageVspElement.verifyServicesCombination(services));
 
-        services = new HashSet<Service>();
-        services.add(Service.Dhcp);
-        services.add(Service.StaticNat);
-        services.add(Service.Connectivity);
-        services.add(Service.Firewall);
-        assertFalse(_nuageVspElement.verifyServicesCombination(services));
+        services = Sets.newHashSet(
+                Service.Dhcp,
+                Service.StaticNat,
+                Service.Connectivity,
+                Service.Firewall);
+        assertTrue(_nuageVspElement.verifyServicesCombination(services));
     }
 
     @Test
@@ -246,6 +245,7 @@
         when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
         when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{nuageVspDevice}));
         when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
+        when(_nuageVspManager.getNuageVspHost(NETWORK_ID)).thenReturn(host);
 
         when(_domainDao.findById(NETWORK_ID)).thenReturn(mock(DomainVO.class));
         final Answer answer = mock(Answer.class);
@@ -274,6 +274,7 @@
         when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
         when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{nuageVspDevice}));
         when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
+        when(_nuageVspManager.getNuageVspHost(NETWORK_ID)).thenReturn(host);
 
         when(_domainDao.findById(NETWORK_ID)).thenReturn(mock(DomainVO.class));
 
@@ -303,6 +304,7 @@
         when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
         when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{nuageVspDevice}));
         when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
+        when(_nuageVspManager.getNuageVspHost(NETWORK_ID)).thenReturn(host);
 
         when(_domainDao.findById(NETWORK_ID)).thenReturn(mock(DomainVO.class));
         final Answer answer = mock(Answer.class);
@@ -340,6 +342,7 @@
         when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
         when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Lists.newArrayList(nuageVspDevice));
         when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
+        when(_nuageVspManager.getNuageVspHost(NETWORK_ID)).thenReturn(host);
 
         DomainRouterVO domainRouter = mock(DomainRouterVO.class);
         when(domainRouter.getUuid()).thenReturn("aaaaaa");
diff --git a/plugins/network-elements/nuage-vsp/test/com/cloud/network/guru/NuageVspGuestNetworkGuruTest.java b/plugins/network-elements/nuage-vsp/test/com/cloud/network/guru/NuageVspGuestNetworkGuruTest.java
index f101e1e..8f334eb 100644
--- a/plugins/network-elements/nuage-vsp/test/com/cloud/network/guru/NuageVspGuestNetworkGuruTest.java
+++ b/plugins/network-elements/nuage-vsp/test/com/cloud/network/guru/NuageVspGuestNetworkGuruTest.java
@@ -19,6 +19,20 @@
 
 package com.cloud.network.guru;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.internal.util.collections.Sets;
+
+import com.google.common.collect.ImmutableMap;
+
 import com.cloud.NuageTest;
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
@@ -40,7 +54,6 @@
 import com.cloud.network.Network;
 import com.cloud.network.Network.GuestType;
 import com.cloud.network.Network.Service;
-import com.cloud.network.NetworkModel;
 import com.cloud.network.Networks.BroadcastDomainType;
 import com.cloud.network.Networks.Mode;
 import com.cloud.network.Networks.TrafficType;
@@ -66,21 +79,15 @@
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.dao.NicDao;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
 
 import static com.cloud.network.manager.NuageVspManager.NuageVspIsolatedNetworkDomainTemplateName;
 import static com.cloud.network.manager.NuageVspManager.NuageVspSharedNetworkDomainTemplateName;
 import static com.cloud.network.manager.NuageVspManager.NuageVspVpcDomainTemplateName;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.hamcrest.Matchers.nullValue;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
@@ -89,49 +96,33 @@
 
 public class NuageVspGuestNetworkGuruTest extends NuageTest {
     private static final long NETWORK_ID = 42L;
-    private PhysicalNetworkDao _physicalNetworkDao = mock(PhysicalNetworkDao.class);
-    private DataCenterDao _dataCenterDao = mock(DataCenterDao.class);
-    private NetworkOfferingServiceMapDao _networkOfferingServiceMapDao = mock(NetworkOfferingServiceMapDao.class);
-    private AgentManager _agentManager = mock(AgentManager.class);
-    private NetworkModel _networkModel = mock(NetworkModel.class);
-    private AccountDao _accountDao = mock(AccountDao.class);
-    private DomainDao _domainDao = mock(DomainDao.class);
-    private NicDao _nicDao = mock(NicDao.class);
-    private NetworkOfferingDao _networkOfferingDao = mock(NetworkOfferingDao.class);
-    private NuageVspDao _nuageVspDao = mock(NuageVspDao.class);
-    private HostDao _hostDao = mock(HostDao.class);
-    private NetworkDao _networkDao = mock(NetworkDao.class);
-    private ConfigurationDao _configurationDao = mock(ConfigurationDao.class);
-    private IPAddressDao _ipAddressDao = mock(IPAddressDao.class);
-    private NuageVspManager _nuageVspManager = mock(NuageVspManager.class);
-    private ConfigurationManager _configurationManager = mock(ConfigurationManager.class);
-    private NetworkDetailsDao _networkDetailsDao = mock(NetworkDetailsDao.class);
+    @Mock private PhysicalNetworkDao _physicalNetworkDao;
+    @Mock private DataCenterDao _dataCenterDao;
+    @Mock private NetworkOfferingServiceMapDao _networkOfferingServiceMapDao;
+    @Mock private AgentManager _agentManager;
+    @Mock private AccountDao _accountDao;
+    @Mock private DomainDao _domainDao;
+    @Mock private NicDao _nicDao;
+    @Mock private NetworkOfferingDao _networkOfferingDao;
+    @Mock private NuageVspDao _nuageVspDao;
+    @Mock private HostDao _hostDao;
+    @Mock private NetworkDao _networkDao;
+    @Mock private IPAddressDao _ipAddressDao;
+    @Mock private NuageVspManager _nuageVspManager;
+    @Mock private ConfigurationManager _configurationManager;
+    @Mock private NetworkDetailsDao _networkDetailsDao;
+    @Mock private PhysicalNetworkVO physnet;
+
+    @InjectMocks
     private NuageVspGuestNetworkGuru _nuageVspGuestNetworkGuru;
 
     @Before
     public void setUp() throws Exception {
+        _nuageVspGuestNetworkGuru = new NuageVspGuestNetworkGuru();
+
         super.setUp();
 
-        _nuageVspGuestNetworkGuru = new NuageVspGuestNetworkGuru();
-        _nuageVspGuestNetworkGuru._physicalNetworkDao = _physicalNetworkDao;
-        _nuageVspGuestNetworkGuru._physicalNetworkDao = _physicalNetworkDao;
-        _nuageVspGuestNetworkGuru._nuageVspDao = _nuageVspDao;
-        _nuageVspGuestNetworkGuru._dcDao = _dataCenterDao;
-        _nuageVspGuestNetworkGuru._ntwkOfferingSrvcDao = _networkOfferingServiceMapDao;
-        _nuageVspGuestNetworkGuru._networkModel = _networkModel;
-        _nuageVspGuestNetworkGuru._hostDao = _hostDao;
-        _nuageVspGuestNetworkGuru._agentMgr = _agentManager;
-        _nuageVspGuestNetworkGuru._networkDao = _networkDao;
-        _nuageVspGuestNetworkGuru._accountDao = _accountDao;
-        _nuageVspGuestNetworkGuru._domainDao = _domainDao;
-        _nuageVspGuestNetworkGuru._nicDao = _nicDao;
-        _nuageVspGuestNetworkGuru._ntwkOfferingDao = _networkOfferingDao;
-        _nuageVspGuestNetworkGuru._configDao = _configurationDao;
-        _nuageVspGuestNetworkGuru._ipAddressDao = _ipAddressDao;
-        _nuageVspGuestNetworkGuru._nuageVspManager = _nuageVspManager;
-        _nuageVspGuestNetworkGuru._configMgr = _configurationManager;
         _nuageVspGuestNetworkGuru._nuageVspEntityBuilder = _nuageVspEntityBuilder;
-        _nuageVspGuestNetworkGuru._networkDetailsDao = _networkDetailsDao;
 
         final DataCenterVO dc = mock(DataCenterVO.class);
         when(dc.getNetworkType()).thenReturn(NetworkType.Advanced);
@@ -142,41 +133,58 @@
         when(_configurationDao.getValue(NuageVspIsolatedNetworkDomainTemplateName.key())).thenReturn("IsolatedDomainTemplate");
         when(_configurationDao.getValue(NuageVspVpcDomainTemplateName.key())).thenReturn("VpcDomainTemplate");
         when(_configurationDao.getValue(NuageVspSharedNetworkDomainTemplateName.key())).thenReturn("SharedDomainTemplate");
+
+        when(_physicalNetworkDao.findById(any(Long.class))).thenReturn(physnet);
+        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList("VSP"));
+        when(physnet.getId()).thenReturn(NETWORK_ID);
+
+        final HostVO host = mock(HostVO.class);
+        when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
+        when(host.getId()).thenReturn(NETWORK_ID);
+        when(_agentManager.easySend(eq(NETWORK_ID), any(Command.class))).thenReturn(new Answer(null));
+        when(_nuageVspManager.getNuageVspHost(NETWORK_ID)).thenReturn(host);
+
+        final NuageVspDeviceVO device = mock(NuageVspDeviceVO.class);
+        when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(device));
+        when(device.getId()).thenReturn(1L);
+        when(device.getHostId()).thenReturn(NETWORK_ID);
     }
 
     @Test
     public void testCanHandle() {
         final NetworkOffering offering = mock(NetworkOffering.class);
         when(offering.getId()).thenReturn(NETWORK_ID);
-        when(offering.getTrafficType()).thenReturn(TrafficType.Guest);
-        when(offering.getGuestType()).thenReturn(GuestType.Isolated);
         when(offering.getIsPersistent()).thenReturn(false);
         when(_configurationManager.isOfferingForVpc(any(NetworkOffering.class))).thenReturn(false);
 
-        final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class);
-        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] {"VSP"}));
-        when(physnet.getId()).thenReturn(NETWORK_ID);
+        when(_networkOfferingServiceMapDao.canProviderSupportServiceInNetworkOffering(NETWORK_ID, Service.Connectivity, Network.Provider.NuageVsp)).thenReturn(true);
+        when(_networkOfferingServiceMapDao.canProviderSupportServiceInNetworkOffering(NETWORK_ID, Service.SourceNat, Network.Provider.NuageVsp)).thenReturn(true);
 
-        when(_networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true);
+        when(_networkModel.getNetworkOfferingServiceProvidersMap(NETWORK_ID)).thenReturn(ImmutableMap.of(
+                Service.Connectivity, Sets.newSet(Network.Provider.NuageVsp),
+                Service.SourceNat, Sets.newSet(Network.Provider.NuageVsp)
+        ));
 
-        assertTrue(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Advanced, physnet) == true);
+        when(offering.getTrafficType()).thenReturn(TrafficType.Guest);
+        when(offering.getGuestType()).thenReturn(GuestType.Isolated);
+        assertThat(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Advanced, physnet), is(true));
 
         // Not supported TrafficType != Guest
         when(offering.getTrafficType()).thenReturn(TrafficType.Management);
-        assertFalse(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Advanced, physnet) == true);
+        assertThat(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Advanced, physnet), is(false));
 
         // Supported: GuestType Shared
         when(offering.getTrafficType()).thenReturn(TrafficType.Guest);
         when(offering.getGuestType()).thenReturn(GuestType.Shared);
-        assertTrue(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Advanced, physnet) == true);
+        assertThat(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Advanced, physnet), is(true));
 
         // Not supported: Basic networking
         when(offering.getGuestType()).thenReturn(GuestType.Isolated);
-        assertFalse(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Basic, physnet) == true);
+        assertThat(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Basic, physnet), is(false));
 
         // Not supported: IsolationMethod != STT
-        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] {"VLAN"}));
-        assertFalse(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Advanced, physnet) == true);
+        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList("VLAN"));
+        assertThat(_nuageVspGuestNetworkGuru.canHandle(offering, NetworkType.Basic, physnet), is(false));
 
         // Not supported: Non-persistent VPC tier
         when(_configurationManager.isOfferingForVpc(any(NetworkOffering.class))).thenReturn(true);
@@ -185,13 +193,8 @@
 
     @Test
     public void testDesign() {
-        final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class);
-        when(_physicalNetworkDao.findById((Long)any())).thenReturn(physnet);
-        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] {"VSP"}));
-        when(physnet.getId()).thenReturn(NETWORK_ID);
-
         final NuageVspDeviceVO device = mock(NuageVspDeviceVO.class);
-        when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{device}));
+        when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(device));
         when(device.getId()).thenReturn(1L);
 
         final NetworkOffering offering = mock(NetworkOffering.class);
@@ -201,29 +204,30 @@
         when(offering.getIsPersistent()).thenReturn(false);
         when(_configurationManager.isOfferingForVpc(any(NetworkOffering.class))).thenReturn(false);
 
-        when(_networkOfferingServiceMapDao.areServicesSupportedByNetworkOffering(NETWORK_ID, Service.Connectivity)).thenReturn(true);
+        when(_networkOfferingServiceMapDao.canProviderSupportServiceInNetworkOffering(NETWORK_ID, Service.Connectivity, Network.Provider.NuageVsp)).thenReturn(true);
+        when(_networkOfferingServiceMapDao.canProviderSupportServiceInNetworkOffering(NETWORK_ID, Service.SourceNat, Network.Provider.NuageVsp)).thenReturn(true);
+
+        when(_networkModel.getNetworkOfferingServiceProvidersMap(NETWORK_ID)).thenReturn(ImmutableMap.of(
+                Service.Connectivity, Sets.newSet(Network.Provider.NuageVsp),
+                Service.SourceNat, Sets.newSet(Network.Provider.NuageVsp)
+        ));
 
         final DeploymentPlan plan = mock(DeploymentPlan.class);
         final Network network = mock(Network.class);
         final Account account = mock(Account.class);
 
         final Network designednetwork = _nuageVspGuestNetworkGuru.design(offering, plan, network, account);
-        assertTrue(designednetwork != null);
-        assertTrue(designednetwork.getBroadcastDomainType() == BroadcastDomainType.Vsp);
+        assertThat(designednetwork, notNullValue(Network.class));
+        assertThat(designednetwork.getBroadcastDomainType(), is(BroadcastDomainType.Vsp));
 
         // Can't design non-persistent VPC tier
         when(_configurationManager.isOfferingForVpc(any(NetworkOffering.class))).thenReturn(true);
-        assertNull(_nuageVspGuestNetworkGuru.design(offering, plan, network, account));
+        assertThat(_nuageVspGuestNetworkGuru.design(offering, plan, network, account), nullValue(Network.class));
     }
 
     @Test
     public void testDesignNoElementOnPhysicalNetwork() {
-        final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class);
-        when(_physicalNetworkDao.findById((Long)any())).thenReturn(physnet);
-        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] {"STT"}));
-        when(physnet.getId()).thenReturn(NETWORK_ID);
-
-        mock(NuageVspDeviceVO.class);
+        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList("STT"));
         when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NuageVspDeviceVO>emptyList());
 
         final NetworkOffering offering = mock(NetworkOffering.class);
@@ -241,12 +245,7 @@
 
     @Test
     public void testDesignNoIsolationMethodVSP() {
-        final PhysicalNetworkVO physnet = mock(PhysicalNetworkVO.class);
-        when(_physicalNetworkDao.findById((Long)any())).thenReturn(physnet);
-        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList(new String[] {"VLAN"}));
-        when(physnet.getId()).thenReturn(NETWORK_ID);
-
-        mock(NuageVspDeviceVO.class);
+        when(physnet.getIsolationMethods()).thenReturn(Arrays.asList("VLAN"));
         when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Collections.<NuageVspDeviceVO>emptyList());
 
         final NetworkOffering offering = mock(NetworkOffering.class);
@@ -278,10 +277,12 @@
         final DataCenterVO dataCenter = mock(DataCenterVO.class);
         when(_dataCenterDao.findById(NETWORK_ID)).thenReturn(dataCenter);
         final AccountVO networksAccount = mock(AccountVO.class);
+        when(networksAccount.getId()).thenReturn(NETWORK_ID);
         when(networksAccount.getUuid()).thenReturn("aaaa-abbbb");
         when(networksAccount.getType()).thenReturn(Account.ACCOUNT_TYPE_NORMAL);
         when(_accountDao.findById(NETWORK_ID)).thenReturn(networksAccount);
         final DomainVO networksDomain = mock(DomainVO.class);
+        when(networksDomain.getId()).thenReturn(NETWORK_ID);
         when(networksDomain.getUuid()).thenReturn("aaaaa-bbbbb");
         when(_domainDao.findById(NETWORK_ID)).thenReturn(networksDomain);
 
@@ -289,7 +290,10 @@
         when(nicvo.getId()).thenReturn(NETWORK_ID);
         when(nicvo.getMacAddress()).thenReturn("aa-aa-aa-aa-aa-aa");
         when(nicvo.getUuid()).thenReturn("aaaa-fffff");
+        when(nicvo.getNetworkId()).thenReturn(NETWORK_ID);
+        when(nicvo.getInstanceId()).thenReturn(NETWORK_ID);
         when(_nicDao.findById(NETWORK_ID)).thenReturn(nicvo);
+        when(_nicDao.findDefaultNicForVM(NETWORK_ID)).thenReturn(nicvo);
 
         final VirtualMachine vm = mock(VirtualMachine.class);
         when(vm.getId()).thenReturn(NETWORK_ID);
@@ -310,13 +314,6 @@
         when(ntwkoffering.getId()).thenReturn(NETWORK_ID);
         when(_networkOfferingDao.findById(NETWORK_ID)).thenReturn(ntwkoffering);
 
-        final HostVO host = mock(HostVO.class);
-        when(host.getId()).thenReturn(NETWORK_ID);
-        final NuageVspDeviceVO nuageVspDevice = mock(NuageVspDeviceVO.class);
-        when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
-        when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{nuageVspDevice}));
-        when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
-
         when(_networkDao.acquireInLockTable(NETWORK_ID, 1200)).thenReturn(network);
         when(_ipAddressDao.findByVmIdAndNetworkId(NETWORK_ID, NETWORK_ID)).thenReturn(null);
         when(_domainDao.findById(NETWORK_ID)).thenReturn(mock(DomainVO.class));
@@ -325,7 +322,11 @@
         when(answer.getResult()).thenReturn(true);
         when(_agentManager.easySend(eq(NETWORK_ID), (Command)any())).thenReturn(answer);
 
-        _nuageVspGuestNetworkGuru.reserve(nicProfile, network, vmProfile, mock(DeployDestination.class), mock(ReservationContext.class));
+        final ReservationContext reservationContext = mock(ReservationContext.class);
+        when(reservationContext.getAccount()).thenReturn(networksAccount);
+        when(reservationContext.getDomain()).thenReturn(networksDomain);
+
+        _nuageVspGuestNetworkGuru.reserve(nicProfile, network, vmProfile, mock(DeployDestination.class), reservationContext);
     }
 
     @Test
@@ -358,9 +359,11 @@
 
         final ReservationContext reserveContext = mock(ReservationContext.class);
         final Domain domain = mock(Domain.class);
+        when(domain.getId()).thenReturn(NETWORK_ID);
         when(reserveContext.getDomain()).thenReturn(domain);
         when(domain.getName()).thenReturn("aaaaa");
         final Account account = mock(Account.class);
+        when(account.getId()).thenReturn(NETWORK_ID);
         when(account.getAccountId()).thenReturn(NETWORK_ID);
         when(reserveContext.getAccount()).thenReturn(account);
         final DomainVO domainVo = mock(DomainVO.class);
@@ -368,20 +371,10 @@
         final AccountVO accountVo = mock(AccountVO.class);
         when(_accountDao.findById(NETWORK_ID)).thenReturn(accountVo);
 
-        final HostVO host = mock(HostVO.class);
-        when(host.getId()).thenReturn(NETWORK_ID);
-        final NuageVspDeviceVO nuageVspDevice = mock(NuageVspDeviceVO.class);
-        when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
-        when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{nuageVspDevice}));
-        when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
         when(_networkDao.acquireInLockTable(NETWORK_ID, 1200)).thenReturn(network);
-        when(_nuageVspManager.getDnsDetails(network)).thenReturn(new ArrayList<String>());
+        when(_nuageVspManager.getDnsDetails(network.getDataCenterId())).thenReturn(new ArrayList<String>());
         when(_nuageVspManager.getGatewaySystemIds()).thenReturn(new ArrayList<String>());
 
-        final Answer answer = mock(Answer.class);
-        when(answer.getResult()).thenReturn(true);
-        when(_agentManager.easySend(eq(NETWORK_ID), (Command)any())).thenReturn(answer);
-
         final DataCenter dc = mock(DataCenter.class);
         when(dc.getId()).thenReturn(NETWORK_ID);
         final DeployDestination deployDest = mock(DeployDestination.class);
@@ -429,17 +422,6 @@
         when(vmProfile.getInstanceName()).thenReturn("Test-VM");
         when(vmProfile.getVirtualMachine()).thenReturn(vm);
 
-        final HostVO host = mock(HostVO.class);
-        when(host.getId()).thenReturn(NETWORK_ID);
-        final NuageVspDeviceVO nuageVspDevice = mock(NuageVspDeviceVO.class);
-        when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
-        when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{nuageVspDevice}));
-        when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
-
-        final Answer answer = mock(Answer.class);
-        when(answer.getResult()).thenReturn(true);
-        when(_agentManager.easySend(eq(NETWORK_ID), (Command)any())).thenReturn(answer);
-
         _nuageVspGuestNetworkGuru.deallocate(network, nicProfile, vmProfile);
     }
 
@@ -452,6 +434,7 @@
         when(network.getDomainId()).thenReturn(NETWORK_ID);
         when(network.getNetworkOfferingId()).thenReturn(NETWORK_ID);
         when(network.getPhysicalNetworkId()).thenReturn(NETWORK_ID);
+        when(network.getDataCenterId()).thenReturn(NETWORK_ID);
         when(network.getVpcId()).thenReturn(null);
         when(_networkDao.acquireInLockTable(NETWORK_ID, 1200)).thenReturn(network);
 
@@ -470,13 +453,9 @@
         when(nuageVspDevice.getHostId()).thenReturn(NETWORK_ID);
         when(_nuageVspDao.listByPhysicalNetwork(NETWORK_ID)).thenReturn(Arrays.asList(new NuageVspDeviceVO[]{nuageVspDevice}));
         when(_hostDao.findById(NETWORK_ID)).thenReturn(host);
-        when(_nuageVspManager.getDnsDetails(network)).thenReturn(new ArrayList<String>());
+        when(_nuageVspManager.getDnsDetails(network.getDataCenterId())).thenReturn(new ArrayList<String>());
         when(_nuageVspManager.getGatewaySystemIds()).thenReturn(new ArrayList<String>());
 
-        final Answer answer = mock(Answer.class);
-        when(answer.getResult()).thenReturn(true);
-        when(_agentManager.easySend(eq(NETWORK_ID), (Command)any())).thenReturn(answer);
-
         assertTrue(_nuageVspGuestNetworkGuru.trash(network, offering));
     }
 
diff --git a/plugins/network-elements/nuage-vsp/test/com/cloud/network/resource/NuageVspResourceTest.java b/plugins/network-elements/nuage-vsp/test/com/cloud/network/resource/NuageVspResourceTest.java
index 66d2632..e497ec4 100644
--- a/plugins/network-elements/nuage-vsp/test/com/cloud/network/resource/NuageVspResourceTest.java
+++ b/plugins/network-elements/nuage-vsp/test/com/cloud/network/resource/NuageVspResourceTest.java
@@ -19,6 +19,34 @@
 
 package com.cloud.network.resource;
 
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import javax.naming.ConfigurationException;
+
+import net.nuage.vsp.acs.client.api.NuageVspApiClient;
+import net.nuage.vsp.acs.client.api.NuageVspElementClient;
+import net.nuage.vsp.acs.client.api.NuageVspGuruClient;
+import net.nuage.vsp.acs.client.api.NuageVspManagerClient;
+import net.nuage.vsp.acs.client.api.NuageVspPluginClientLoader;
+import net.nuage.vsp.acs.client.api.model.VspAclRule;
+import net.nuage.vsp.acs.client.api.model.VspDhcpDomainOption;
+import net.nuage.vsp.acs.client.api.model.VspDhcpVMOption;
+import net.nuage.vsp.acs.client.api.model.VspHost;
+import net.nuage.vsp.acs.client.api.model.VspNetwork;
+import net.nuage.vsp.acs.client.api.model.VspNic;
+import net.nuage.vsp.acs.client.api.model.VspStaticNat;
+import net.nuage.vsp.acs.client.api.model.VspVm;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
 import com.cloud.NuageTest;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.PingCommand;
@@ -31,65 +59,37 @@
 import com.cloud.agent.api.guru.ReserveVmInterfaceVspCommand;
 import com.cloud.agent.api.guru.TrashNetworkVspCommand;
 import com.cloud.host.Host;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import net.nuage.vsp.acs.client.api.NuageVspApiClient;
-import net.nuage.vsp.acs.client.api.NuageVspElementClient;
-import net.nuage.vsp.acs.client.api.NuageVspGuruClient;
-import net.nuage.vsp.acs.client.api.model.VspAclRule;
-import net.nuage.vsp.acs.client.api.model.VspNetwork;
-import net.nuage.vsp.acs.client.api.model.VspNic;
-import net.nuage.vsp.acs.client.api.model.VspStaticNat;
-import net.nuage.vsp.acs.client.api.model.VspVm;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
 
-import javax.naming.ConfigurationException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 public class NuageVspResourceTest extends NuageTest {
     private NuageVspResource _resource;
-    private NuageVspApiClient _mockNuageVspApiClient = mock(NuageVspApiClient.class);
-    private NuageVspElementClient _mockNuageVspElementClient = mock(NuageVspElementClient.class);
-    private NuageVspGuruClient _mockNuageVspGuruClient = mock(NuageVspGuruClient.class);
-    private NuageVspResource.Configuration _resourceConfiguration;
+    @Mock private NuageVspApiClient _mockNuageVspApiClient;
+    @Mock private NuageVspElementClient _mockNuageVspElementClient;
+    @Mock private NuageVspGuruClient _mockNuageVspGuruClient;
+    @Mock private NuageVspManagerClient _mockNuageVspManagerClient;
+    @Mock private NuageVspPluginClientLoader _mockNuageVspPluginClientLoader;
+    private NuageVspResourceConfiguration _resourceConfiguration;
     private Map<String, Object> _hostDetails;
 
-    org.mockito.stubbing.Answer<Object> genericAnswer = new org.mockito.stubbing.Answer<Object>() {
-        public Object answer(InvocationOnMock invocation) {
-            return null;
-        }
-    };
-
     @Before
     public void setUp() throws Exception {
         super.setUp();
 
+        MockitoAnnotations.initMocks(this);
+
+        when(_mockNuageVspPluginClientLoader.getNuageVspApiClient()).thenReturn(_mockNuageVspApiClient);
+        when(_mockNuageVspPluginClientLoader.getNuageVspElementClient()).thenReturn(_mockNuageVspElementClient);
+        when(_mockNuageVspPluginClientLoader.getNuageVspGuruClient()).thenReturn(_mockNuageVspGuruClient);
+        when(_mockNuageVspPluginClientLoader.getNuageVspManagerClient()).thenReturn(_mockNuageVspManagerClient);
+
         _resource = new NuageVspResource() {
-
-            @Override
-            protected void loadNuageClient() {
-                _isNuageVspClientLoaded = true;
-                _nuageVspApiClient = _mockNuageVspApiClient;
-                _nuageVspElementClient = _mockNuageVspElementClient;
-                _nuageVspGuruClient = _mockNuageVspGuruClient;
-            }
-
-            protected void isNuageVspApiLoaded() throws ConfigurationException {
-            }
-
-            protected void isNuageVspGuruLoaded() throws ConfigurationException {
-            }
-
-            protected void isNuageVspElementLoaded() throws ConfigurationException {
+            @Override protected NuageVspPluginClientLoader getClientLoader(VspHost vspHost) {
+                return _mockNuageVspPluginClientLoader;
             }
 
             protected void login() throws ConfigurationException {
@@ -97,8 +97,7 @@
 
         };
 
-        _resourceConfiguration = new NuageVspResource.Configuration()
-                .name("nuagevsptestdevice")
+        _resourceConfiguration = new NuageVspResourceConfiguration()
                 .guid("aaaaa-bbbbb-ccccc")
                 .zoneId("blublub")
                 .hostName("nuagevsd")
@@ -119,21 +118,21 @@
 
     @Test
     public void resourceConfigure() throws Exception {
-        _resource.configure("NuageVspResource", _hostDetails);
+        _resource.configure("Nuage VSD - nuagevsd", _hostDetails);
 
-        assertTrue("nuagevsptestdevice".equals(_resource.getName()));
-        assertTrue(_resource.getType() == Host.Type.L2Networking);
+        assertEquals("Nuage VSD - nuagevsd", _resource.getName());
+        assertEquals(Host.Type.L2Networking, _resource.getType());
     }
 
     @Test
     public void testInitialization() throws Exception {
-        _resource.configure("NuageVspResource", _hostDetails);
+        _resource.configure("Nuage VSD - nuagevsd", _hostDetails);
 
         StartupCommand[] sc = _resource.initialize();
-        assertTrue(sc.length == 1);
-        assertTrue("aaaaa-bbbbb-ccccc".equals(sc[0].getGuid()));
-        assertTrue("nuagevsptestdevice".equals(sc[0].getName()));
-        assertTrue("blublub".equals(sc[0].getDataCenter()));
+        assertEquals(1, sc.length);
+        assertEquals("aaaaa-bbbbb-ccccc", sc[0].getGuid());
+        assertEquals("Nuage VSD - nuagevsd", sc[0].getName());
+        assertEquals("blublub", sc[0].getDataCenter());
     }
 
     @Test
@@ -141,9 +140,9 @@
         _resource.configure("NuageVspResource", _hostDetails);
 
         PingCommand ping = _resource.getCurrentStatus(42);
-        assertTrue(ping != null);
-        assertTrue(ping.getHostId() == 42);
-        assertTrue(ping.getHostType() == Host.Type.L2Networking);
+        assertNotNull(ping);
+        assertEquals(42, ping.getHostId());
+        assertEquals(Host.Type.L2Networking, ping.getHostType());
     }
 
     @Test
@@ -151,10 +150,11 @@
         _resource.configure("NuageVspResource", _hostDetails);
 
         VspNetwork vspNetwork = buildVspNetwork();
-        ImplementNetworkVspCommand cmd = new ImplementNetworkVspCommand(vspNetwork, new ArrayList<String>());
-        doAnswer(genericAnswer).when(_mockNuageVspGuruClient).implement(vspNetwork, new ArrayList<String>());
+        VspDhcpDomainOption vspDhcpOptions = buildspDhcpDomainOption();
+        ImplementNetworkVspCommand cmd = new ImplementNetworkVspCommand(vspNetwork, vspDhcpOptions);
         com.cloud.agent.api.Answer implNtwkAns = _resource.executeRequest(cmd);
         assertTrue(implNtwkAns.getResult());
+        verify(_mockNuageVspGuruClient).implement(vspNetwork, vspDhcpOptions);
     }
 
     @Test
@@ -165,8 +165,8 @@
         VspVm vspVm = buildVspVm();
         VspNic vspNic = buildVspNic();
         VspStaticNat vspStaticNat = buildVspStaticNat();
-        ReserveVmInterfaceVspCommand cmd = new ReserveVmInterfaceVspCommand(vspNetwork, vspVm, vspNic, vspStaticNat);
-        doAnswer(genericAnswer).when(_mockNuageVspGuruClient).reserve(vspNetwork, vspVm, vspNic, vspStaticNat);
+        VspDhcpVMOption vspDhcpOption = buildspDhcpVMOption();
+        ReserveVmInterfaceVspCommand cmd = new ReserveVmInterfaceVspCommand(vspNetwork, vspVm, vspNic, vspStaticNat, vspDhcpOption);
         Answer rsrvVmInfAns = _resource.executeRequest(cmd);
         assertTrue(rsrvVmInfAns.getResult());
     }
@@ -179,7 +179,6 @@
         VspVm vspVm = buildVspVm();
         VspNic vspNic = buildVspNic();
         DeallocateVmVspCommand cmd = new DeallocateVmVspCommand(vspNetwork, vspVm, vspNic);
-        doAnswer(genericAnswer).when(_mockNuageVspGuruClient).deallocate(vspNetwork, vspVm, vspNic);
         Answer dellocateVmAns = _resource.executeRequest(cmd);
         assertTrue(dellocateVmAns.getResult());
     }
@@ -190,7 +189,6 @@
 
         VspNetwork vspNetwork = buildVspNetwork();
         TrashNetworkVspCommand cmd = new TrashNetworkVspCommand(vspNetwork);
-        doAnswer(genericAnswer).when(_mockNuageVspGuruClient).trash(vspNetwork);
         Answer trashNtwkAns = _resource.executeRequest(cmd);
         assertTrue(trashNtwkAns.getResult());
     }
@@ -202,7 +200,6 @@
         VspNetwork vspNetwork = buildVspNetwork();
         List<VspStaticNat> vspStaticNatDetails = Lists.newArrayList(buildVspStaticNat());
         ApplyStaticNatVspCommand cmd = new ApplyStaticNatVspCommand(vspNetwork, vspStaticNatDetails);
-        doAnswer(genericAnswer).when(_mockNuageVspElementClient).applyStaticNats(vspNetwork, vspStaticNatDetails);
         Answer applyNatAns = _resource.executeRequest(cmd);
         assertTrue(applyNatAns.getResult());
     }
@@ -214,7 +211,6 @@
         VspNetwork vspNetwork = buildVspNetwork();
         List<VspAclRule> vspAclRules = Lists.newArrayList(buildVspAclRule());
         ApplyAclRuleVspCommand cmd = new ApplyAclRuleVspCommand(VspAclRule.ACLType.NetworkACL, vspNetwork, vspAclRules, false);
-        doAnswer(genericAnswer).when(_mockNuageVspElementClient).applyAclRules(VspAclRule.ACLType.NetworkACL, vspNetwork, vspAclRules, false);
         Answer applyAclAns = _resource.executeRequest(cmd);
         assertTrue(applyAclAns.getResult());
     }
@@ -224,7 +220,6 @@
         _resource.configure("NuageVspResource", _hostDetails);
 
         ShutDownVpcVspCommand cmd = new ShutDownVpcVspCommand("domainUuid", "vpcUuid", "domainTemplateName", Lists.<String>newArrayList());
-        doAnswer(genericAnswer).when(_mockNuageVspElementClient).shutdownVpc("domainUuid", "vpcUuid", "domainTemplateName", Lists.<String>newArrayList());
         Answer shutVpcAns = _resource.executeRequest(cmd);
         assertTrue(shutVpcAns.getResult());
     }
diff --git a/plugins/network-elements/nuage-vsp/test/com/cloud/util/NuageVspEntityBuilderTest.java b/plugins/network-elements/nuage-vsp/test/com/cloud/util/NuageVspEntityBuilderTest.java
index ef63220..7ebdeb3 100644
--- a/plugins/network-elements/nuage-vsp/test/com/cloud/util/NuageVspEntityBuilderTest.java
+++ b/plugins/network-elements/nuage-vsp/test/com/cloud/util/NuageVspEntityBuilderTest.java
@@ -19,15 +19,29 @@
 
 package com.cloud.util;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Before;
+import org.junit.Test;
+
 import com.cloud.NuageTest;
+import com.cloud.dc.VlanDetailsVO;
 import com.cloud.dc.VlanVO;
 import com.cloud.dc.dao.VlanDao;
+import com.cloud.dc.dao.VlanDetailsDao;
 import com.cloud.domain.DomainVO;
 import com.cloud.domain.dao.DomainDao;
 import com.cloud.network.IpAddress;
 import com.cloud.network.Network;
 import com.cloud.network.dao.IPAddressDao;
 import com.cloud.network.dao.IPAddressVO;
+import com.cloud.network.dao.NetworkDao;
 import com.cloud.network.dao.NetworkDetailsDao;
 import com.cloud.network.dao.NetworkVO;
 import com.cloud.network.rules.FirewallRule;
@@ -44,23 +58,14 @@
 import com.cloud.vm.NicVO;
 import com.cloud.vm.VirtualMachine;
 import com.google.common.collect.Lists;
+
+import net.nuage.vsp.acs.client.api.model.Protocol;
 import net.nuage.vsp.acs.client.api.model.VspAclRule;
 import net.nuage.vsp.acs.client.api.model.VspDomain;
 import net.nuage.vsp.acs.client.api.model.VspNetwork;
 import net.nuage.vsp.acs.client.api.model.VspNic;
 import net.nuage.vsp.acs.client.api.model.VspStaticNat;
 import net.nuage.vsp.acs.client.api.model.VspVm;
-import net.nuage.vsp.acs.client.common.model.Pair;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 public class NuageVspEntityBuilderTest extends NuageTest {
 
@@ -75,9 +80,11 @@
     private VpcDao _vpcDao = mock(VpcDao.class);
     private DomainDao _domainDao = mock(DomainDao.class);
     private AccountDao _accountDao = mock(AccountDao.class);
+    private NetworkDao _networkDao = mock(NetworkDao.class);
     private NetworkOfferingDao _networkOfferingDao = mock(NetworkOfferingDao.class);
     private NetworkOfferingServiceMapDao _networkOfferingServiceMapDao = mock(NetworkOfferingServiceMapDao.class);
     private VlanDao _vlanDao = mock(VlanDao.class);
+    private VlanDetailsDao _vlanDetailsDao = mock(VlanDetailsDao.class);
     private IPAddressDao _ipAddressDao = mock(IPAddressDao.class);
     private NetworkDetailsDao _networkDetailsDao = mock(NetworkDetailsDao.class);
     private NuageVspEntityBuilder _nuageVspEntityBuilder = new NuageVspEntityBuilder();
@@ -88,6 +95,7 @@
     private NetworkOfferingVO _mockedSharedNetworkOffering = mock(NetworkOfferingVO.class);
     private NetworkOfferingVO _mockedL2NetworkOffering = mock(NetworkOfferingVO.class);
     private VlanVO _mockedVlan = mock(VlanVO.class);
+    private VlanDetailsVO _mockedVlanDetail = mock(VlanDetailsVO.class);
     private VpcVO _mockedVpc = mock(VpcVO.class);
     private NetworkVO _mockedNetwork = mock(NetworkVO.class);
     private NetworkVO _mockedVpcNetwork = mock(NetworkVO.class);
@@ -109,9 +117,11 @@
         _nuageVspEntityBuilder._vpcDao = _vpcDao;
         _nuageVspEntityBuilder._domainDao = _domainDao;
         _nuageVspEntityBuilder._accountDao = _accountDao;
+        _nuageVspEntityBuilder._networkDao = _networkDao;
         _nuageVspEntityBuilder._networkOfferingDao = _networkOfferingDao;
         _nuageVspEntityBuilder._networkOfferingServiceMapDao = _networkOfferingServiceMapDao;
         _nuageVspEntityBuilder._vlanDao = _vlanDao;
+        _nuageVspEntityBuilder._vlanDetailsDao = _vlanDetailsDao;
         _nuageVspEntityBuilder._configurationDao = _configurationDao;
         _nuageVspEntityBuilder._ipAddressDao = _ipAddressDao;
         _nuageVspEntityBuilder._networkModel = _networkModel;
@@ -123,6 +133,7 @@
         setUpMockedNetworkOffering(_mockedSharedNetworkOffering, Network.GuestType.Shared);
         setUpMockedNetworkOffering(_mockedL2NetworkOffering, Network.GuestType.Isolated);
         setUpMockedVlan();
+        setUpMockedVlanDetail();
         setUpMockedVpc();
         setUpMockedNetwork(_mockedNetwork, NETWORK_OFFERING_ID, null);
         setUpMockedNetwork(_mockedVpcNetwork, NETWORK_OFFERING_ID, VPC_ID);
@@ -147,29 +158,29 @@
 
     @Test
     public void testBuildVspNetwork() {
-        VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedL2Network, true);
-        validateVspNetwork(vspNetwork, true, false, false, false, "IsolatedDomainTemplate", true);
+        VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedL2Network);
+        validateVspNetwork(vspNetwork, true, false, false, false, "IsolatedDomainTemplate");
 
-        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedL2Network, false);
-        validateVspNetwork(vspNetwork, true, false, false, false, "IsolatedDomainTemplate", false);
+        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedL2Network);
+        validateVspNetwork(vspNetwork, true, false, false, false, "IsolatedDomainTemplate");
 
-        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedNetwork, true);
-        validateVspNetwork(vspNetwork, false, true, false, false, "IsolatedDomainTemplate", true);
+        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedNetwork);
+        validateVspNetwork(vspNetwork, false, true, false, false, "IsolatedDomainTemplate");
 
-        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedNetwork, false);
-        validateVspNetwork(vspNetwork, false, true, false, false, "IsolatedDomainTemplate", false);
+        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedNetwork);
+        validateVspNetwork(vspNetwork, false, true, false, false, "IsolatedDomainTemplate");
 
-        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedVpcNetwork, true);
-        validateVspNetwork(vspNetwork, false, false, true, false, "VpcDomainTemplate", true);
+        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedVpcNetwork);
+        validateVspNetwork(vspNetwork, false, false, true, false, "VpcDomainTemplate");
 
-        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedVpcNetwork, false);
-        validateVspNetwork(vspNetwork, false, false, true, false, "VpcDomainTemplate", false);
+        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedVpcNetwork);
+        validateVspNetwork(vspNetwork, false, false, true, false, "VpcDomainTemplate");
 
-        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedSharedNetwork, true);
-        validateVspNetwork(vspNetwork, false, false, false, true, "SharedDomainTemplate", true);
+        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedSharedNetwork);
+        validateVspNetwork(vspNetwork, false, false, false, true, "SharedDomainTemplate");
 
-        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedSharedNetwork, false);
-        validateVspNetwork(vspNetwork, false, false, false, true, "SharedDomainTemplate", false);
+        vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(_mockedSharedNetwork);
+        validateVspNetwork(vspNetwork, false, false, false, true, "SharedDomainTemplate");
     }
 
     @Test
@@ -212,7 +223,7 @@
     }
 
     private void validateVspNetwork(VspNetwork vspNetwork, boolean isL2, boolean isL3, boolean isVpc, boolean isShared,
-            String domainTemplateName, boolean hasAddressRanges) {
+            String domainTemplateName) {
         assertEquals(NETWORK_ID, vspNetwork.getId());
         assertEquals("networkUuid", vspNetwork.getUuid());
         assertEquals("networkName", vspNetwork.getName());
@@ -238,22 +249,6 @@
         assertEquals(domainTemplateName, vspNetwork.getDomainTemplateName());
         assertEquals("10.10.10.0/24", vspNetwork.getCidr());
         assertEquals("10.10.10.1", vspNetwork.getGateway());
-
-        if (hasAddressRanges) {
-            if (isShared) {
-                assertEquals("192.168.2.2", vspNetwork.getVirtualRouterIp());
-            } else {
-                assertEquals("10.10.10.2", vspNetwork.getVirtualRouterIp());
-            }
-
-            List<Pair<String, String>> ipAddressRanges;
-            if (isShared) {
-                ipAddressRanges = Lists.newArrayList(Pair.of("192.168.2.3", "192.168.2.200"));
-            } else {
-                ipAddressRanges = Lists.newArrayList(Pair.of("10.10.10.3", "10.10.10.254"));
-            }
-            assertEquals(ipAddressRanges, vspNetwork.getIpAddressRanges());
-        }
     }
 
     private void validateVspVm(VspVm vspVm, boolean isDomainRouter) {
@@ -282,7 +277,7 @@
 
     private void validateVspAclRule(VspAclRule vspAclRule, boolean isFirewall) {
         assertEquals("aclUuid", vspAclRule.getUuid());
-        assertEquals("aclProtocol", vspAclRule.getProtocol());
+        assertEquals(Protocol.TCP, vspAclRule.getProtocol());
         assertEquals(new Integer(1), vspAclRule.getStartPort());
         assertEquals(new Integer(20), vspAclRule.getEndPort());
         assertEquals(Lists.newArrayList("10.10.0.0/16"), vspAclRule.getSourceCidrList());
@@ -320,6 +315,10 @@
         when(_mockedVlan.getIpRange()).thenReturn("192.168.2.2-192.168.2.200");
     }
 
+    private void setUpMockedVlanDetail() {
+        when(_mockedVlanDetail.getValue()).thenReturn("true");
+    }
+
     private void setUpMockedVpc() {
         when(_mockedVpc.getUuid()).thenReturn("vpcUuid");
         when(_mockedVpc.getName()).thenReturn("vpcName");
@@ -347,12 +346,14 @@
     private void setUpMockedNicProfile() {
         when(_mockedNicProfile.getMacAddress()).thenReturn("macAddress");
         when(_mockedNicProfile.getIPv4Address()).thenReturn("10.10.10.2");
+        when(_mockedNicProfile.getNetworkId()).thenReturn(NETWORK_ID);
     }
 
     private void setUpMockedNic() {
         when(_mockedNic.getUuid()).thenReturn("nicUuid");
         when(_mockedNic.getMacAddress()).thenReturn("macAddress");
         when(_mockedNic.getIPv4Address()).thenReturn("10.10.10.2");
+        when(_mockedNic.getNetworkId()).thenReturn(NETWORK_ID);
     }
 
     private void setUpMockedStaticNatIp() {
@@ -371,7 +372,7 @@
 
     private void setUpMockedFirewallRule() {
         when(_mockedFirewallRule.getUuid()).thenReturn("aclUuid");
-        when(_mockedFirewallRule.getProtocol()).thenReturn("aclProtocol");
+        when(_mockedFirewallRule.getProtocol()).thenReturn("TCP");
         when(_mockedFirewallRule.getSourcePortStart()).thenReturn(1);
         when(_mockedFirewallRule.getSourcePortEnd()).thenReturn(20);
         when(_mockedFirewallRule.getSourceCidrList()).thenReturn(Lists.newArrayList("10.10.0.0/16"));
@@ -382,7 +383,7 @@
 
     private void setUpMockedNetworkAclItem() {
         when(_mockedNetworkAclItem.getUuid()).thenReturn("aclUuid");
-        when(_mockedNetworkAclItem.getProtocol()).thenReturn("aclProtocol");
+        when(_mockedNetworkAclItem.getProtocol()).thenReturn("TCP");
         when(_mockedNetworkAclItem.getSourcePortStart()).thenReturn(1);
         when(_mockedNetworkAclItem.getSourcePortEnd()).thenReturn(20);
         when(_mockedNetworkAclItem.getSourceCidrList()).thenReturn(Lists.newArrayList("10.10.0.0/16"));
@@ -395,6 +396,7 @@
     private void setUpMockedDaoCalls() {
         when(_domainDao.findById(DOMAIN_ID)).thenReturn(_mockedDomain);
         when(_accountDao.findById(ACCOUNT_ID)).thenReturn(_mockedAccount);
+        when(_networkDao.findById(NETWORK_ID)).thenReturn(_mockedNetwork);
         when(_networkOfferingDao.findById(NETWORK_OFFERING_ID)).thenReturn(_mockedNetworkOffering);
         when(_networkOfferingDao.findById(SHARED_NETWORK_OFFERING_ID)).thenReturn(_mockedSharedNetworkOffering);
         when(_networkOfferingDao.findById(L2_NETWORK_OFFERING_ID)).thenReturn(_mockedL2NetworkOffering);
@@ -408,6 +410,7 @@
         when(_networkModel.areServicesSupportedByNetworkOffering(SHARED_NETWORK_OFFERING_ID, Network.Service.Firewall)).thenReturn(true);
         when(_networkModel.areServicesSupportedByNetworkOffering(L2_NETWORK_OFFERING_ID, Network.Service.Firewall)).thenReturn(true);
         when(_vlanDao.listVlansByNetworkId(NETWORK_ID)).thenReturn(Lists.newArrayList(_mockedVlan));
+        when(_vlanDetailsDao.findDetail(anyLong(), anyString())).thenReturn(_mockedVlanDetail);
         when(_vpcDao.findById(VPC_ID)).thenReturn(_mockedVpc);
         when(_ipAddressDao.findById(SOURCE_IP_ADDRESS_ID)).thenReturn(_mockedStaticNatIp);
     }
diff --git a/plugins/network-elements/opendaylight/pom.xml b/plugins/network-elements/opendaylight/pom.xml
index 0c01952..5bf8f18 100644
--- a/plugins/network-elements/opendaylight/pom.xml
+++ b/plugins/network-elements/opendaylight/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/plugins/network-elements/opendaylight/src/main/resources/META-INF/cloudstack/opendaylight/spring-opendaylight-context.xml b/plugins/network-elements/opendaylight/src/main/resources/META-INF/cloudstack/opendaylight/spring-opendaylight-context.xml
index 7f1e84f..244ded8 100644
--- a/plugins/network-elements/opendaylight/src/main/resources/META-INF/cloudstack/opendaylight/spring-opendaylight-context.xml
+++ b/plugins/network-elements/opendaylight/src/main/resources/META-INF/cloudstack/opendaylight/spring-opendaylight-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="OpendaylightGuestNetworkGuru" class="org.apache.cloudstack.network.opendaylight.OpendaylightGuestNetworkGuru">
diff --git a/plugins/network-elements/ovs/pom.xml b/plugins/network-elements/ovs/pom.xml
index 1d38881..a9d4c9d 100644
--- a/plugins/network-elements/ovs/pom.xml
+++ b/plugins/network-elements/ovs/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/network-elements/ovs/resources/META-INF/cloudstack/ovs/spring-ovs-context.xml b/plugins/network-elements/ovs/resources/META-INF/cloudstack/ovs/spring-ovs-context.xml
index 086ffd6..947907c 100644
--- a/plugins/network-elements/ovs/resources/META-INF/cloudstack/ovs/spring-ovs-context.xml
+++ b/plugins/network-elements/ovs/resources/META-INF/cloudstack/ovs/spring-ovs-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="Ovs" class="com.cloud.network.element.OvsElement">
diff --git a/plugins/network-elements/palo-alto/pom.xml b/plugins/network-elements/palo-alto/pom.xml
index f3e7458..7b63eb2 100644
--- a/plugins/network-elements/palo-alto/pom.xml
+++ b/plugins/network-elements/palo-alto/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/network-elements/palo-alto/resources/META-INF/cloudstack/paloalto/spring-paloalto-context.xml b/plugins/network-elements/palo-alto/resources/META-INF/cloudstack/paloalto/spring-paloalto-context.xml
index 251f444..d812ec0 100644
--- a/plugins/network-elements/palo-alto/resources/META-INF/cloudstack/paloalto/spring-paloalto-context.xml
+++ b/plugins/network-elements/palo-alto/resources/META-INF/cloudstack/paloalto/spring-paloalto-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="PaloAlto" class="com.cloud.network.element.PaloAltoExternalFirewallElement">
diff --git a/plugins/network-elements/stratosphere-ssp/pom.xml b/plugins/network-elements/stratosphere-ssp/pom.xml
index 524be63..00f1c63 100644
--- a/plugins/network-elements/stratosphere-ssp/pom.xml
+++ b/plugins/network-elements/stratosphere-ssp/pom.xml
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/network-elements/stratosphere-ssp/resources/META-INF/cloudstack/ssp/spring-ssp-context.xml b/plugins/network-elements/stratosphere-ssp/resources/META-INF/cloudstack/ssp/spring-ssp-context.xml
index 7e8fe6c..cd373e1 100644
--- a/plugins/network-elements/stratosphere-ssp/resources/META-INF/cloudstack/ssp/spring-ssp-context.xml
+++ b/plugins/network-elements/stratosphere-ssp/resources/META-INF/cloudstack/ssp/spring-ssp-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="sspCredentialDaoImpl"
diff --git a/plugins/network-elements/vxlan/pom.xml b/plugins/network-elements/vxlan/pom.xml
index a515ad1..bfee46a 100644
--- a/plugins/network-elements/vxlan/pom.xml
+++ b/plugins/network-elements/vxlan/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/network-elements/vxlan/resources/META-INF/cloudstack/vxlan/spring-vxlan-context.xml b/plugins/network-elements/vxlan/resources/META-INF/cloudstack/vxlan/spring-vxlan-context.xml
index fcf0b01..7602321 100644
--- a/plugins/network-elements/vxlan/resources/META-INF/cloudstack/vxlan/spring-vxlan-context.xml
+++ b/plugins/network-elements/vxlan/resources/META-INF/cloudstack/vxlan/spring-vxlan-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="VxlanGuestNetworkGuru" class="com.cloud.network.guru.VxlanGuestNetworkGuru">
diff --git a/plugins/outofbandmanagement-drivers/ipmitool/pom.xml b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
index 948d064..832457a 100644
--- a/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
+++ b/plugins/outofbandmanagement-drivers/ipmitool/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/outofbandmanagement-drivers/ipmitool/resources/META-INF/cloudstack/ipmitool/spring-ipmitool-context.xml b/plugins/outofbandmanagement-drivers/ipmitool/resources/META-INF/cloudstack/ipmitool/spring-ipmitool-context.xml
index 49baa90d..ce4fcae 100644
--- a/plugins/outofbandmanagement-drivers/ipmitool/resources/META-INF/cloudstack/ipmitool/spring-ipmitool-context.xml
+++ b/plugins/outofbandmanagement-drivers/ipmitool/resources/META-INF/cloudstack/ipmitool/spring-ipmitool-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="ipmitoolOutOfBandManagementDriver" class="org.apache.cloudstack.outofbandmanagement.driver.ipmitool.IpmitoolOutOfBandManagementDriver">
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 0360e93..b2176ec 100755
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
 
   <build>
@@ -79,7 +79,6 @@
     <module>network-elements/nuage-vsp</module>
     <module>network-elements/bigswitch</module>
     <module>network-elements/brocade-vcs</module>
-    <module>network-elements/midonet</module>
     <module>network-elements/stratosphere-ssp</module>
     <module>network-elements/opendaylight</module>
     <module>outofbandmanagement-drivers/ipmitool</module>
@@ -206,5 +205,11 @@
         <module>hypervisors/simulator</module>
       </modules>
     </profile>
+    <profile>
+      <id>midonet</id>
+      <modules>
+        <module>network-elements/midonet</module>
+      </modules>
+    </profile>
   </profiles>
 </project>
diff --git a/plugins/storage-allocators/random/pom.xml b/plugins/storage-allocators/random/pom.xml
index 794c7e8..e9a0ffe 100644
--- a/plugins/storage-allocators/random/pom.xml
+++ b/plugins/storage-allocators/random/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/storage/image/default/pom.xml b/plugins/storage/image/default/pom.xml
index 3c91d47..49aa64d 100644
--- a/plugins/storage/image/default/pom.xml
+++ b/plugins/storage/image/default/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/storage/image/default/resources/META-INF/cloudstack/storage-image-default/spring-storage-image-default-context.xml b/plugins/storage/image/default/resources/META-INF/cloudstack/storage-image-default/spring-storage-image-default-context.xml
index 6d3c63c..6c2dc8a 100644
--- a/plugins/storage/image/default/resources/META-INF/cloudstack/storage-image-default/spring-storage-image-default-context.xml
+++ b/plugins/storage/image/default/resources/META-INF/cloudstack/storage-image-default/spring-storage-image-default-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="cloudStackImageStoreProviderImpl"
diff --git a/plugins/storage/image/s3/pom.xml b/plugins/storage/image/s3/pom.xml
index 4923afe..542cc4b 100644
--- a/plugins/storage/image/s3/pom.xml
+++ b/plugins/storage/image/s3/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/storage/image/s3/resources/META-INF/cloudstack/storage-image-s3/spring-storage-image-s3-context.xml b/plugins/storage/image/s3/resources/META-INF/cloudstack/storage-image-s3/spring-storage-image-s3-context.xml
index 6105063..7b2fa46 100644
--- a/plugins/storage/image/s3/resources/META-INF/cloudstack/storage-image-s3/spring-storage-image-s3-context.xml
+++ b/plugins/storage/image/s3/resources/META-INF/cloudstack/storage-image-s3/spring-storage-image-s3-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="s3ImageStoreProviderImpl"
diff --git a/plugins/storage/image/sample/pom.xml b/plugins/storage/image/sample/pom.xml
index 9e6b495..c4bfab1 100644
--- a/plugins/storage/image/sample/pom.xml
+++ b/plugins/storage/image/sample/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/storage/image/swift/pom.xml b/plugins/storage/image/swift/pom.xml
index 98d22a9..ad55fce 100644
--- a/plugins/storage/image/swift/pom.xml
+++ b/plugins/storage/image/swift/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/storage/image/swift/resources/META-INF/cloudstack/storage-image-swift/spring-storage-image-swift-context.xml b/plugins/storage/image/swift/resources/META-INF/cloudstack/storage-image-swift/spring-storage-image-swift-context.xml
index 5e986e8..a84eb42 100644
--- a/plugins/storage/image/swift/resources/META-INF/cloudstack/storage-image-swift/spring-storage-image-swift-context.xml
+++ b/plugins/storage/image/swift/resources/META-INF/cloudstack/storage-image-swift/spring-storage-image-swift-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="swiftImageStoreProviderImpl"
diff --git a/plugins/storage/volume/cloudbyte/pom.xml b/plugins/storage/volume/cloudbyte/pom.xml
index 0298b75..6a453a2 100755
--- a/plugins/storage/volume/cloudbyte/pom.xml
+++ b/plugins/storage/volume/cloudbyte/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
@@ -54,7 +54,7 @@
     <dependency>
 	<groupId>com.sun.jersey</groupId>
 	<artifactId>jersey-bundle</artifactId>
-	<version>1.19.1</version>
+	<version>1.19.3</version>
 </dependency>
   </dependencies>
   <build>
diff --git a/plugins/storage/volume/cloudbyte/resources/META-INF/cloudstack/storage-volume-cloudbyte/spring-storage-volume-cloudbyte-context.xml b/plugins/storage/volume/cloudbyte/resources/META-INF/cloudstack/storage-volume-cloudbyte/spring-storage-volume-cloudbyte-context.xml
index ee4b9a3..2d64871 100755
--- a/plugins/storage/volume/cloudbyte/resources/META-INF/cloudstack/storage-volume-cloudbyte/spring-storage-volume-cloudbyte-context.xml
+++ b/plugins/storage/volume/cloudbyte/resources/META-INF/cloudstack/storage-volume-cloudbyte/spring-storage-volume-cloudbyte-context.xml
@@ -23,10 +23,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="elastistorDataStoreProvider"
diff --git a/plugins/storage/volume/default/pom.xml b/plugins/storage/volume/default/pom.xml
index c723613..03ec6f9 100644
--- a/plugins/storage/volume/default/pom.xml
+++ b/plugins/storage/volume/default/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/storage/volume/default/resources/META-INF/cloudstack/storage-volume-default/spring-storage-volume-default-context.xml b/plugins/storage/volume/default/resources/META-INF/cloudstack/storage-volume-default/spring-storage-volume-default-context.xml
index 8b50455..f637051 100644
--- a/plugins/storage/volume/default/resources/META-INF/cloudstack/storage-volume-default/spring-storage-volume-default-context.xml
+++ b/plugins/storage/volume/default/resources/META-INF/cloudstack/storage-volume-default/spring-storage-volume-default-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="cloudStackPrimaryDataStoreProviderImpl"
diff --git a/plugins/storage/volume/nexenta/pom.xml b/plugins/storage/volume/nexenta/pom.xml
index 6018099..9ad7059 100644
--- a/plugins/storage/volume/nexenta/pom.xml
+++ b/plugins/storage/volume/nexenta/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/storage/volume/nexenta/resources/META-INF.cloudstack.storage-volume-solidfire/spring-storage-volume-nexenta-context.xml b/plugins/storage/volume/nexenta/resources/META-INF.cloudstack.storage-volume-solidfire/spring-storage-volume-nexenta-context.xml
index 6c83c1a..52032e1 100644
--- a/plugins/storage/volume/nexenta/resources/META-INF.cloudstack.storage-volume-solidfire/spring-storage-volume-nexenta-context.xml
+++ b/plugins/storage/volume/nexenta/resources/META-INF.cloudstack.storage-volume-solidfire/spring-storage-volume-nexenta-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                           http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                            http://www.springframework.org/schema/context
-                           http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                           http://www.springframework.org/schema/context/spring-context.xsd">
 
   <bean id="nexentaStorDataStoreProvider"
         class="org.apache.cloudstack.storage.datastore.provider.NexentaPrimaryDataStoreProvider" />
diff --git a/plugins/storage/volume/sample/pom.xml b/plugins/storage/volume/sample/pom.xml
index 5c22fb1..b4673c9 100644
--- a/plugins/storage/volume/sample/pom.xml
+++ b/plugins/storage/volume/sample/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/storage/volume/solidfire/pom.xml b/plugins/storage/volume/solidfire/pom.xml
index 28eb360..88f63d7 100644
--- a/plugins/storage/volume/solidfire/pom.xml
+++ b/plugins/storage/volume/solidfire/pom.xml
@@ -16,11 +16,16 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
   <dependencies>
     <dependency>
+      <groupId>com.solidfire</groupId>
+      <artifactId>solidfire-sdk-java</artifactId>
+      <version>1.2.0.29</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-plugin-storage-volume-default</artifactId>
       <version>${project.version}</version>
diff --git a/plugins/storage/volume/solidfire/resources/META-INF/cloudstack/storage-volume-solidfire/spring-storage-volume-solidfire-context.xml b/plugins/storage/volume/solidfire/resources/META-INF/cloudstack/storage-volume-solidfire/spring-storage-volume-solidfire-context.xml
index b1fd4a8..65fdfe7 100644
--- a/plugins/storage/volume/solidfire/resources/META-INF/cloudstack/storage-volume-solidfire/spring-storage-volume-solidfire-context.xml
+++ b/plugins/storage/volume/solidfire/resources/META-INF/cloudstack/storage-volume-solidfire/spring-storage-volume-solidfire-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="solidFireDataStoreProvider"
diff --git a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java
index af969e1..bd93abb 100644
--- a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java
+++ b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java
@@ -94,6 +94,8 @@
     private static final long MIN_IOPS_FOR_SNAPSHOT_VOLUME = 100L;
     private static final long MAX_IOPS_FOR_SNAPSHOT_VOLUME = 20000L;
 
+    private static final String BASIC_SF_ID = "basicSfId";
+
     @Inject private AccountDao accountDao;
     @Inject private AccountDetailsDao accountDetailsDao;
     @Inject private ClusterDao clusterDao;
@@ -131,9 +133,9 @@
     }
 
     private SolidFireUtil.SolidFireAccount createSolidFireAccount(SolidFireUtil.SolidFireConnection sfConnection, String sfAccountName) {
-        long accountNumber = SolidFireUtil.createSolidFireAccount(sfConnection, sfAccountName);
+        long accountNumber = SolidFireUtil.createAccount(sfConnection, sfAccountName);
 
-        return SolidFireUtil.getSolidFireAccountById(sfConnection, accountNumber);
+        return SolidFireUtil.getAccountById(sfConnection, accountNumber);
     }
 
     @Override
@@ -153,7 +155,7 @@
         Preconditions.checkArgument(host != null, "'host' should not be 'null'");
         Preconditions.checkArgument(dataStore != null, "'dataStore' should not be 'null'");
 
-        long sfVolumeId = getSolidFireVolumeId(dataObject);
+        long sfVolumeId = getSolidFireVolumeId(dataObject, true);
         long clusterId = host.getClusterId();
         long storagePoolId = dataStore.getId();
 
@@ -187,11 +189,11 @@
             SolidFireUtil.SolidFireConnection sfConnection = SolidFireUtil.getSolidFireConnection(storagePoolId, storagePoolDetailsDao);
 
             if (vagId != null) {
-                SolidFireUtil.SolidFireVag sfVag = SolidFireUtil.getSolidFireVag(sfConnection, Long.parseLong(vagId));
+                SolidFireUtil.SolidFireVag sfVag = SolidFireUtil.getVag(sfConnection, Long.parseLong(vagId));
 
                 long[] volumeIds = SolidFireUtil.getNewVolumeIds(sfVag.getVolumeIds(), sfVolumeId, true);
 
-                SolidFireUtil.modifySolidFireVag(sfConnection, sfVag.getId(), sfVag.getInitiators(), volumeIds);
+                SolidFireUtil.modifyVag(sfConnection, sfVag.getId(), sfVag.getInitiators(), volumeIds);
             }
             else {
                 SolidFireUtil.placeVolumeInVolumeAccessGroup(sfConnection, sfVolumeId, storagePoolId, cluster.getUuid(), hosts, clusterDetailsDao);
@@ -215,7 +217,7 @@
             return;
         }
 
-        long sfVolumeId = getSolidFireVolumeId(dataObject);
+        long sfVolumeId = getSolidFireVolumeId(dataObject, false);
         long clusterId = host.getClusterId();
         long storagePoolId = dataStore.getId();
 
@@ -239,11 +241,11 @@
             if (vagId != null) {
                 SolidFireUtil.SolidFireConnection sfConnection = SolidFireUtil.getSolidFireConnection(storagePoolId, storagePoolDetailsDao);
 
-                SolidFireUtil.SolidFireVag sfVag = SolidFireUtil.getSolidFireVag(sfConnection, Long.parseLong(vagId));
+                SolidFireUtil.SolidFireVag sfVag = SolidFireUtil.getVag(sfConnection, Long.parseLong(vagId));
 
                 long[] volumeIds = SolidFireUtil.getNewVolumeIds(sfVag.getVolumeIds(), sfVolumeId, false);
 
-                SolidFireUtil.modifySolidFireVag(sfConnection, sfVag.getId(), sfVag.getInitiators(), volumeIds);
+                SolidFireUtil.modifyVag(sfConnection, sfVag.getId(), sfVag.getInitiators(), volumeIds);
             }
         }
         finally {
@@ -252,9 +254,31 @@
         }
     }
 
-    private long getSolidFireVolumeId(DataObject dataObject) {
+    private long getSolidFireVolumeId(DataObject dataObject, boolean grantAccess) {
         if (dataObject.getType() == DataObjectType.VOLUME) {
-            return Long.parseLong(((VolumeInfo)dataObject).getFolder());
+            final VolumeInfo volumeInfo = (VolumeInfo)dataObject;
+            final long volumeId = volumeInfo.getId();
+
+            if (grantAccess && isBasicGrantAccess(volumeId)) {
+                volumeDetailsDao.removeDetail(volumeInfo.getId(), BASIC_GRANT_ACCESS);
+
+                final Long sfVolumeId = getBasicSfVolumeId(volumeId);
+
+                Preconditions.checkNotNull(sfVolumeId, "'sfVolumeId' should not be 'null' (basic grant access).");
+
+                return sfVolumeId;
+            }
+            else if (!grantAccess && isBasicRevokeAccess(volumeId)) {
+                volumeDetailsDao.removeDetail(volumeInfo.getId(), BASIC_REVOKE_ACCESS);
+
+                final Long sfVolumeId = getBasicSfVolumeId(volumeId);
+
+                Preconditions.checkNotNull(sfVolumeId, "'sfVolumeId' should not be 'null' (basic revoke access).");
+
+                return sfVolumeId;
+            }
+
+            return Long.parseLong(volumeInfo.getFolder());
         }
 
         if (dataObject.getType() == DataObjectType.SNAPSHOT) {
@@ -271,7 +295,7 @@
             return getVolumeIdFrom_iScsiPath(((TemplateInfo)dataObject).getInstallPath());
         }
 
-        throw new CloudRuntimeException("Invalid DataObjectType (" + dataObject.getType() + ") passed to getSolidFireVolumeId(DataObject)");
+        throw new CloudRuntimeException("Invalid DataObjectType (" + dataObject.getType() + ") passed to getSolidFireVolumeId(DataObject, boolean)");
     }
 
     private long getVolumeIdFrom_iScsiPath(String iScsiPath) {
@@ -313,10 +337,11 @@
 
     private SolidFireUtil.SolidFireVolume createSolidFireVolume(SolidFireUtil.SolidFireConnection sfConnection, DataObject dataObject, long sfAccountId) {
         long storagePoolId = dataObject.getDataStore().getId();
-        Long minIops = null;
-        Long maxIops = null;
-        Long volumeSize = dataObject.getSize();
-        String volumeName = null;
+
+        final Long minIops;
+        final Long maxIops;
+        final Long volumeSize;
+        final String volumeName;
 
         final Map<String, String> mapAttributes;
 
@@ -345,10 +370,10 @@
 
         final Iops iops = getIops(minIops, maxIops, storagePoolId);
 
-        long sfVolumeId = SolidFireUtil.createSolidFireVolume(sfConnection, SolidFireUtil.getSolidFireVolumeName(volumeName), sfAccountId,
+        long sfVolumeId = SolidFireUtil.createVolume(sfConnection, SolidFireUtil.getSolidFireVolumeName(volumeName), sfAccountId,
                 volumeSize, true, mapAttributes, iops.getMinIops(), iops.getMaxIops(), iops.getBurstIops());
 
-        return SolidFireUtil.getSolidFireVolume(sfConnection, sfVolumeId);
+        return SolidFireUtil.getVolume(sfConnection, sfVolumeId);
     }
 
     private Iops getIops(Long minIops, Long maxIops, long storagePoolId) {
@@ -390,7 +415,7 @@
                     try {
                         long lVolumeId = Long.parseLong(volume.getFolder());
 
-                        SolidFireUtil.SolidFireVolume sfVolume = SolidFireUtil.getSolidFireVolume(sfConnection, lVolumeId);
+                        SolidFireUtil.SolidFireVolume sfVolume = SolidFireUtil.getVolume(sfConnection, lVolumeId);
 
                         long volumeSize = sfVolume.getTotalSize();
 
@@ -465,7 +490,10 @@
         } else if (dataObject.getType() == DataObjectType.TEMPLATE) {
             TemplateInfo templateInfo = (TemplateInfo)dataObject;
 
-            volumeSize = (long)(templateInfo.getSize() + templateInfo.getSize() * (LOWEST_HYPERVISOR_SNAPSHOT_RESERVE / 100f));
+            // TemplateInfo sometimes has a size equal to null.
+            long templateSize = templateInfo.getSize() != null ? templateInfo.getSize() : 0;
+
+            volumeSize = (long)(templateSize + templateSize * (LOWEST_HYPERVISOR_SNAPSHOT_RESERVE / 100f));
         }
 
         return volumeSize;
@@ -598,7 +626,7 @@
         if (accountDetail == null || accountDetail.getValue() == null) {
             AccountVO account = accountDao.findById(csAccountId);
             String sfAccountName = SolidFireUtil.getSolidFireAccountName(account.getUuid(), account.getAccountId());
-            SolidFireUtil.SolidFireAccount sfAccount = SolidFireUtil.getSolidFireAccount(sfConnection, sfAccountName);
+            SolidFireUtil.SolidFireAccount sfAccount = SolidFireUtil.getAccount(sfConnection, sfAccountName);
 
             if (sfAccount == null) {
                 sfAccount = createSolidFireAccount(sfConnection, sfAccountName);
@@ -647,6 +675,58 @@
         snapshotDetailsDao.remove(snapshotDetails.getId());
     }
 
+    private Long getBasicSfVolumeId(long volumeId) {
+        VolumeDetailVO volumeDetail = volumeDetailsDao.findDetail(volumeId, BASIC_SF_ID);
+
+        if (volumeDetail != null && volumeDetail.getValue() != null) {
+            return new Long(volumeDetail.getValue());
+        }
+
+        return null;
+    }
+
+    private String getBasicIqn(long volumeId) {
+        VolumeDetailVO volumeDetail = volumeDetailsDao.findDetail(volumeId, BASIC_IQN);
+
+        if (volumeDetail != null && volumeDetail.getValue() != null) {
+            return volumeDetail.getValue();
+        }
+
+        return null;
+    }
+
+    // If isBasicCreate returns true, this means the calling code simply wants us to create a SolidFire volume with specified
+    // characteristics. We do not update the cloud.volumes table with this info.
+    private boolean isBasicCreate(long volumeId) {
+        return getBooleanValueFromVolumeDetails(volumeId, BASIC_CREATE);
+    }
+
+    private boolean isBasicDelete(long volumeId) {
+        return getBooleanValueFromVolumeDetails(volumeId, BASIC_DELETE);
+    }
+
+    private boolean isBasicDeleteFailure(long volumeId) {
+        return getBooleanValueFromVolumeDetails(volumeId, BASIC_DELETE_FAILURE);
+    }
+
+    private boolean isBasicGrantAccess(long volumeId) {
+        return getBooleanValueFromVolumeDetails(volumeId, BASIC_GRANT_ACCESS);
+    }
+
+    private boolean isBasicRevokeAccess(long volumeId) {
+        return getBooleanValueFromVolumeDetails(volumeId, BASIC_REVOKE_ACCESS);
+    }
+
+    private boolean getBooleanValueFromVolumeDetails(long volumeId, String name) {
+        VolumeDetailVO volumeDetail = volumeDetailsDao.findDetail(volumeId, name);
+
+        if (volumeDetail != null && volumeDetail.getValue() != null) {
+            return Boolean.parseBoolean(volumeDetail.getValue());
+        }
+
+        return false;
+    }
+
     private long getCsIdForCloning(long volumeId, String cloneOf) {
         VolumeDetailVO volumeDetail = volumeDetailsDao.findDetail(volumeId, cloneOf);
 
@@ -698,14 +778,14 @@
                     " and data-object type: " + dataObjectType);
         }
 
-        final long newSfVolumeId = SolidFireUtil.createSolidFireClone(sfConnection, sfVolumeId, sfSnapshotId, sfAccountId, sfNewVolumeName,
+        final long newSfVolumeId = SolidFireUtil.createClone(sfConnection, sfVolumeId, sfSnapshotId, sfAccountId, sfNewVolumeName,
                 getVolumeAttributes(volumeInfo));
 
         final Iops iops = getIops(volumeInfo.getMinIops(), volumeInfo.getMaxIops(), storagePoolId);
 
-        SolidFireUtil.modifySolidFireVolume(sfConnection, newSfVolumeId, null, null, iops.getMinIops(), iops.getMaxIops(), iops.getBurstIops());
+        SolidFireUtil.modifyVolume(sfConnection, newSfVolumeId, null, null, iops.getMinIops(), iops.getMaxIops(), iops.getBurstIops());
 
-        return SolidFireUtil.getSolidFireVolume(sfConnection, newSfVolumeId);
+        return SolidFireUtil.getVolume(sfConnection, newSfVolumeId);
     }
 
     private Map<String, String> getVolumeAttributes(VolumeInfo volumeInfo) {
@@ -744,9 +824,9 @@
 
         long sfSnapshotId = Long.parseLong(snapshotDetails.getValue());
 
-        SolidFireUtil.SolidFireSnapshot sfSnapshot = SolidFireUtil.getSolidFireSnapshot(sfConnection, sfVolumeId, sfSnapshotId);
+        SolidFireUtil.SolidFireSnapshot sfSnapshot = SolidFireUtil.getSnapshot(sfConnection, sfVolumeId, sfSnapshotId);
 
-        long newSfVolumeId = SolidFireUtil.createSolidFireClone(sfConnection, sfVolumeId, sfSnapshotId, sfAccountId, sfSnapshot.getName(), null);
+        long newSfVolumeId = SolidFireUtil.createClone(sfConnection, sfVolumeId, sfSnapshotId, sfAccountId, sfSnapshot.getName(), null);
 
         snapshotDetails = snapshotDetailsDao.findDetail(csSnapshotId, SolidFireUtil.STORAGE_POOL_ID);
 
@@ -754,9 +834,9 @@
 
         final Iops iops = getIops(MIN_IOPS_FOR_TEMP_VOLUME, MAX_IOPS_FOR_TEMP_VOLUME, storagePoolId);
 
-        SolidFireUtil.modifySolidFireVolume(sfConnection, newSfVolumeId, null, null, iops.getMinIops(), iops.getMaxIops(), iops.getBurstIops());
+        SolidFireUtil.modifyVolume(sfConnection, newSfVolumeId, null, null, iops.getMinIops(), iops.getMaxIops(), iops.getBurstIops());
 
-        return SolidFireUtil.getSolidFireVolume(sfConnection, newSfVolumeId);
+        return SolidFireUtil.getVolume(sfConnection, newSfVolumeId);
     }
 
     private void updateVolumeDetails(long volumeId, long sfVolumeSize) {
@@ -788,11 +868,13 @@
             LOGGER.error(errMsg);
         }
 
-        CommandResult result = new CommandResult();
+        if (callback != null) {
+            CommandResult result = new CommandResult();
 
-        result.setResult(errMsg);
+            result.setResult(errMsg);
 
-        callback.complete(result);
+            callback.complete(result);
+        }
     }
 
     @Override
@@ -818,7 +900,7 @@
 
             SolidFireUtil.SolidFireConnection sfConnection = SolidFireUtil.getSolidFireConnection(storagePoolId, storagePoolDetailsDao);
 
-            SolidFireUtil.SolidFireVolume sfVolume = SolidFireUtil.getSolidFireVolume(sfConnection, sfVolumeId);
+            SolidFireUtil.SolidFireVolume sfVolume = SolidFireUtil.getVolume(sfConnection, sfVolumeId);
 
             StoragePoolVO storagePool = storagePoolDao.findById(storagePoolId);
 
@@ -846,7 +928,7 @@
 
                 String sfNewSnapshotName = volumeInfo.getName() + "-" + snapshotInfo.getUuid();
 
-                long sfNewSnapshotId = SolidFireUtil.createSolidFireSnapshot(sfConnection, sfVolumeId, sfNewSnapshotName, getSnapshotAttributes(snapshotInfo));
+                long sfNewSnapshotId = SolidFireUtil.createSnapshot(sfConnection, sfVolumeId, sfNewSnapshotName, getSnapshotAttributes(snapshotInfo));
 
                 updateSnapshotDetails(snapshotInfo.getId(), sfVolumeId, sfNewSnapshotId, storagePoolId, sfVolumeSize);
 
@@ -859,10 +941,10 @@
 
                 final Iops iops = getIops(MIN_IOPS_FOR_SNAPSHOT_VOLUME, MAX_IOPS_FOR_SNAPSHOT_VOLUME, storagePoolId);
 
-                long sfNewVolumeId = SolidFireUtil.createSolidFireVolume(sfConnection, sfNewVolumeName, sfVolume.getAccountId(), sfVolumeSize,
+                long sfNewVolumeId = SolidFireUtil.createVolume(sfConnection, sfNewVolumeName, sfVolume.getAccountId(), sfVolumeSize,
                         sfVolume.isEnable512e(), getSnapshotAttributes(snapshotInfo), iops.getMinIops(), iops.getMaxIops(), iops.getBurstIops());
 
-                SolidFireUtil.SolidFireVolume sfNewVolume = SolidFireUtil.getSolidFireVolume(sfConnection, sfNewVolumeId);
+                SolidFireUtil.SolidFireVolume sfNewVolume = SolidFireUtil.getVolume(sfConnection, sfNewVolumeId);
 
                 updateSnapshotDetails(snapshotInfo.getId(), sfNewVolumeId, storagePoolId, sfVolumeSize, sfNewVolume.getIqn());
 
@@ -950,19 +1032,43 @@
         snapshotDetailsDao.persist(snapshotDetail);
     }
 
+    private void addBasicCreateInfoToVolumeDetails(long volumeId, SolidFireUtil.SolidFireVolume sfVolume) {
+        VolumeDetailVO volumeDetailVo = new VolumeDetailVO(volumeId, BASIC_SF_ID, String.valueOf(sfVolume.getId()), false);
+
+        volumeDetailsDao.persist(volumeDetailVo);
+
+        volumeDetailVo = new VolumeDetailVO(volumeId, BASIC_IQN, sfVolume.getIqn(), false);
+
+        volumeDetailsDao.persist(volumeDetailVo);
+    }
+
     private String createVolume(VolumeInfo volumeInfo, long storagePoolId) {
-        verifySufficientBytesForStoragePool(volumeInfo, storagePoolId);
-        verifySufficientIopsForStoragePool(volumeInfo.getMinIops() != null ? volumeInfo.getMinIops() : getDefaultMinIops(storagePoolId), storagePoolId);
+        boolean isBasicCreate = isBasicCreate(volumeInfo.getId());
+
+        if (!isBasicCreate) {
+            verifySufficientBytesForStoragePool(volumeInfo, storagePoolId);
+            verifySufficientIopsForStoragePool(volumeInfo.getMinIops() != null ? volumeInfo.getMinIops() : getDefaultMinIops(storagePoolId), storagePoolId);
+        }
 
         SolidFireUtil.SolidFireConnection sfConnection = SolidFireUtil.getSolidFireConnection(storagePoolId, storagePoolDetailsDao);
 
         long sfAccountId = getCreateSolidFireAccountId(sfConnection, volumeInfo.getAccountId(), storagePoolId);
 
+        SolidFireUtil.SolidFireVolume sfVolume;
+
+        if (isBasicCreate) {
+            sfVolume = createSolidFireVolume(sfConnection, volumeInfo, sfAccountId);
+
+            volumeDetailsDao.removeDetail(volumeInfo.getId(), BASIC_CREATE);
+
+            addBasicCreateInfoToVolumeDetails(volumeInfo.getId(), sfVolume);
+
+            return sfVolume.getIqn();
+        }
+
         long csSnapshotId = getCsIdForCloning(volumeInfo.getId(), "cloneOfSnapshot");
         long csTemplateId = getCsIdForCloning(volumeInfo.getId(), "cloneOfTemplate");
 
-        SolidFireUtil.SolidFireVolume sfVolume;
-
         if (csSnapshotId > 0) {
             // We are supposed to create a clone of the underlying volume or snapshot that supports the CloudStack snapshot.
             sfVolume = createClone(sfConnection, csSnapshotId, volumeInfo, sfAccountId, storagePoolId, DataObjectType.SNAPSHOT);
@@ -974,11 +1080,11 @@
 
             if (volumeSize > sfVolume.getTotalSize()) {
                 // Expand the volume to include HSR.
-                SolidFireUtil.modifySolidFireVolume(sfConnection, sfVolume.getId(), volumeSize, getVolumeAttributes(volumeInfo),
+                SolidFireUtil.modifyVolume(sfConnection, sfVolume.getId(), volumeSize, getVolumeAttributes(volumeInfo),
                         sfVolume.getMinIops(), sfVolume.getMaxIops(), sfVolume.getBurstIops());
 
                 // Get the SolidFire volume from the SAN again because we just updated its size.
-                sfVolume = SolidFireUtil.getSolidFireVolume(sfConnection, sfVolume.getId());
+                sfVolume = SolidFireUtil.getVolume(sfConnection, sfVolume.getId());
             }
         }
         else {
@@ -1037,7 +1143,7 @@
         else if (snapshotDetails != null && snapshotDetails.getValue() != null && snapshotDetails.getValue().equalsIgnoreCase("delete")) {
             snapshotDetails = snapshotDetailsDao.findDetail(csSnapshotId, SolidFireUtil.VOLUME_ID);
 
-            SolidFireUtil.deleteSolidFireVolume(sfConnection, Long.parseLong(snapshotDetails.getValue()));
+            SolidFireUtil.deleteVolume(sfConnection, Long.parseLong(snapshotDetails.getValue()));
 
             removeTempVolumeId(csSnapshotId);
 
@@ -1083,23 +1189,66 @@
         return iqn;
     }
 
+    private void performBasicDelete(SolidFireUtil.SolidFireConnection sfConnection, long volumeId) {
+        Long sfVolumeId = getBasicSfVolumeId(volumeId);
+
+        Preconditions.checkNotNull(sfVolumeId, "'sfVolumeId' should not be 'null'.");
+
+        String iqn = getBasicIqn(volumeId);
+
+        Preconditions.checkNotNull(iqn, "'iqn' should not be 'null'.");
+
+        VolumeVO volumeVO = volumeDao.findById(volumeId);
+
+        SolidFireUtil.deleteVolume(sfConnection, Long.parseLong(volumeVO.getFolder()));
+
+        volumeVO.setFolder(String.valueOf(sfVolumeId));
+        volumeVO.set_iScsiName(iqn);
+
+        volumeDao.update(volumeId, volumeVO);
+
+        volumeDetailsDao.removeDetail(volumeId, BASIC_SF_ID);
+        volumeDetailsDao.removeDetail(volumeId, BASIC_IQN);
+        volumeDetailsDao.removeDetail(volumeId, BASIC_DELETE);
+    }
+
+    private void performBasicDeleteFailure(SolidFireUtil.SolidFireConnection sfConnection, long volumeId) {
+        Long sfVolumeId = getBasicSfVolumeId(volumeId);
+
+        Preconditions.checkNotNull(sfVolumeId, "'sfVolumeId' should not be 'null'.");
+
+        SolidFireUtil.deleteVolume(sfConnection, sfVolumeId);
+
+        volumeDetailsDao.removeDetail(volumeId, BASIC_SF_ID);
+        volumeDetailsDao.removeDetail(volumeId, BASIC_IQN);
+        volumeDetailsDao.removeDetail(volumeId, BASIC_DELETE_FAILURE);
+    }
+
     private void deleteVolume(VolumeInfo volumeInfo, long storagePoolId) {
         try {
             long volumeId = volumeInfo.getId();
 
             SolidFireUtil.SolidFireConnection sfConnection = SolidFireUtil.getSolidFireConnection(storagePoolId, storagePoolDetailsDao);
 
-            deleteSolidFireVolume(sfConnection, volumeInfo);
+            if (isBasicDelete(volumeId)) {
+                performBasicDelete(sfConnection, volumeId);
+            }
+            else if (isBasicDeleteFailure(volumeId)) {
+                performBasicDeleteFailure(sfConnection, volumeId);
+            }
+            else {
+                deleteSolidFireVolume(sfConnection, volumeInfo);
 
-            volumeDetailsDao.removeDetails(volumeId);
+                volumeDetailsDao.removeDetails(volumeId);
 
-            StoragePoolVO storagePool = storagePoolDao.findById(storagePoolId);
+                StoragePoolVO storagePool = storagePoolDao.findById(storagePoolId);
 
-            long usedBytes = getUsedBytes(storagePool, volumeId);
+                long usedBytes = getUsedBytes(storagePool, volumeId);
 
-            storagePool.setUsedBytes(usedBytes < 0 ? 0 : usedBytes);
+                storagePool.setUsedBytes(usedBytes < 0 ? 0 : usedBytes);
 
-            storagePoolDao.update(storagePoolId, storagePool);
+                storagePoolDao.update(storagePoolId, storagePool);
+            }
         }
         catch (Exception ex) {
             LOGGER.debug(SolidFireUtil.LOG_PREFIX + "Failed to delete SolidFire volume. CloudStack volume ID: " + volumeInfo.getId(), ex);
@@ -1130,7 +1279,7 @@
 
                 long sfVolumeId = Long.parseLong(snapshotDetails.getValue());
 
-                SolidFireUtil.deleteSolidFireVolume(sfConnection, sfVolumeId);
+                SolidFireUtil.deleteVolume(sfConnection, sfVolumeId);
             }
 
             snapshotDetailsDao.removeDetails(csSnapshotId);
@@ -1157,7 +1306,7 @@
 
             long sfTemplateVolumeId = getVolumeIdFrom_iScsiPath(template.getInstallPath());
 
-            SolidFireUtil.deleteSolidFireVolume(sfConnection, sfTemplateVolumeId);
+            SolidFireUtil.deleteVolume(sfConnection, sfTemplateVolumeId);
 
             VMTemplateStoragePoolVO templatePoolRef = tmpltPoolDao.findByPoolTemplate(storagePoolId, template.getId());
 
@@ -1197,7 +1346,7 @@
             ResizeVolumePayload payload = (ResizeVolumePayload)volumeInfo.getpayload();
 
             SolidFireUtil.SolidFireConnection sfConnection = SolidFireUtil.getSolidFireConnection(storagePoolId, storagePoolDetailsDao);
-            SolidFireUtil.SolidFireVolume sfVolume = SolidFireUtil.getSolidFireVolume(sfConnection, sfVolumeId);
+            SolidFireUtil.SolidFireVolume sfVolume = SolidFireUtil.getVolume(sfConnection, sfVolumeId);
 
             verifySufficientIopsForStoragePool(storagePoolId, volumeInfo.getId(), payload.newMinIops);
             verifySufficientBytesForStoragePool(storagePoolId, volumeInfo.getId(), payload.newSize, payload.newHypervisorSnapshotReserve);
@@ -1226,7 +1375,7 @@
             mapAttributes.put(SolidFireUtil.CloudStackVolumeId, String.valueOf(volumeInfo.getId()));
             mapAttributes.put(SolidFireUtil.CloudStackVolumeSize, NumberFormat.getInstance().format(payload.newSize));
 
-            SolidFireUtil.modifySolidFireVolume(sfConnection, sfVolumeId, sfNewVolumeSize, mapAttributes,
+            SolidFireUtil.modifyVolume(sfConnection, sfVolumeId, sfNewVolumeSize, mapAttributes,
                     payload.newMinIops, payload.newMaxIops, getDefaultBurstIops(storagePoolId, payload.newMaxIops));
 
             VolumeVO volume = volumeDao.findById(volumeInfo.getId());
@@ -1332,12 +1481,12 @@
         }
 
         if (deleteVolume) {
-            SolidFireUtil.deleteSolidFireVolume(sfConnection, sfVolumeId);
+            SolidFireUtil.deleteVolume(sfConnection, sfVolumeId);
         }
     }
 
     private void deleteSolidFireSnapshot(SolidFireUtil.SolidFireConnection sfConnection, long csSnapshotId, long sfSnapshotId) {
-        SolidFireUtil.deleteSolidFireSnapshot(sfConnection, sfSnapshotId);
+        SolidFireUtil.deleteSnapshot(sfConnection, sfSnapshotId);
 
         SnapshotVO snapshot = snapshotDao.findById(csSnapshotId);
         VolumeVO volume = volumeDao.findById(snapshot.getVolumeId());
@@ -1364,7 +1513,7 @@
             if (lstSnapshots2.isEmpty()) {
                 volume = volumeDao.findByIdIncludingRemoved(snapshot.getVolumeId());
 
-                SolidFireUtil.deleteSolidFireVolume(sfConnection, Long.parseLong(volume.getFolder()));
+                SolidFireUtil.deleteVolume(sfConnection, Long.parseLong(volume.getFolder()));
             }
         }
     }
diff --git a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFirePrimaryDataStoreLifeCycle.java b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFirePrimaryDataStoreLifeCycle.java
index c47411e..42fe025 100644
--- a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFirePrimaryDataStoreLifeCycle.java
+++ b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFirePrimaryDataStoreLifeCycle.java
@@ -21,6 +21,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import javax.inject.Inject;
 
@@ -40,7 +41,6 @@
 
 import com.cloud.agent.api.StoragePoolInfo;
 import com.cloud.capacity.CapacityManager;
-import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.host.HostVO;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
@@ -88,10 +88,6 @@
         String storageVip = SolidFireUtil.getStorageVip(url);
         int storagePort = SolidFireUtil.getStoragePort(url);
 
-        DataCenterVO zone = _zoneDao.findById(zoneId);
-
-        String uuid = SolidFireUtil.PROVIDER_NAME + "_" + zone.getUuid() + "_" + storageVip;
-
         if (capacityBytes == null || capacityBytes <= 0) {
             throw new IllegalArgumentException("'capacityBytes' must be present and greater than 0.");
         }
@@ -106,7 +102,7 @@
         parameters.setPort(storagePort);
         parameters.setPath(SolidFireUtil.getModifiedUrl(url));
         parameters.setType(StoragePoolType.Iscsi);
-        parameters.setUuid(uuid);
+        parameters.setUuid(UUID.randomUUID().toString());
         parameters.setZoneId(zoneId);
         parameters.setName(storagePoolName);
         parameters.setProviderName(providerName);
@@ -265,7 +261,7 @@
                     SolidFireUtil.SolidFireConnection sfConnection = SolidFireUtil.getSolidFireConnection(storagePoolId, _storagePoolDetailsDao);
                     long sfTemplateVolumeId = Long.parseLong(templatePoolRef.getLocalDownloadPath());
 
-                    SolidFireUtil.deleteSolidFireVolume(sfConnection, sfTemplateVolumeId);
+                    SolidFireUtil.deleteVolume(sfConnection, sfTemplateVolumeId);
                 }
                 catch (Exception ex) {
                     s_logger.error(ex.getMessage() != null ? ex.getMessage() : "Error deleting SolidFire template volume");
diff --git a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFireSharedPrimaryDataStoreLifeCycle.java b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFireSharedPrimaryDataStoreLifeCycle.java
index 6921e4f..a1ea9d0 100644
--- a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFireSharedPrimaryDataStoreLifeCycle.java
+++ b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFireSharedPrimaryDataStoreLifeCycle.java
@@ -343,17 +343,17 @@
 
             String sfAccountName = SolidFireUtil.getSolidFireAccountName(accountVo.getUuid(), csAccountId);
 
-            SolidFireUtil.SolidFireAccount sfAccount = SolidFireUtil.getSolidFireAccount(sfConnection, sfAccountName);
+            SolidFireUtil.SolidFireAccount sfAccount = SolidFireUtil.getAccount(sfConnection, sfAccountName);
 
             if (sfAccount == null) {
-                long sfAccountNumber = SolidFireUtil.createSolidFireAccount(sfConnection, sfAccountName);
+                long sfAccountNumber = SolidFireUtil.createAccount(sfConnection, sfAccountName);
 
-                sfAccount = SolidFireUtil.getSolidFireAccountById(sfConnection, sfAccountNumber);
+                sfAccount = SolidFireUtil.getAccountById(sfConnection, sfAccountNumber);
             }
 
-            long sfVolumeId = SolidFireUtil.createSolidFireVolume(sfConnection, SolidFireUtil.getSolidFireVolumeName(volumeName), sfAccount.getId(), volumeSize,
+            long sfVolumeId = SolidFireUtil.createVolume(sfConnection, SolidFireUtil.getSolidFireVolumeName(volumeName), sfAccount.getId(), volumeSize,
                     true, null, minIops, maxIops, burstIops);
-            SolidFireUtil.SolidFireVolume sfVolume = SolidFireUtil.getSolidFireVolume(sfConnection, sfVolumeId);
+            SolidFireUtil.SolidFireVolume sfVolume = SolidFireUtil.getVolume(sfConnection, sfVolumeId);
 
             return new SolidFireCreateVolume(sfVolume, sfAccount);
         } catch (Throwable e) {
@@ -596,11 +596,11 @@
         if (vagId != null) {
             SolidFireUtil.SolidFireConnection sfConnection = SolidFireUtil.getSolidFireConnection(storagePoolId, _storagePoolDetailsDao);
 
-            SolidFireUtil.SolidFireVag sfVag = SolidFireUtil.getSolidFireVag(sfConnection, Long.parseLong(vagId));
+            SolidFireUtil.SolidFireVag sfVag = SolidFireUtil.getVag(sfConnection, Long.parseLong(vagId));
 
             long[] volumeIds = SolidFireUtil.getNewVolumeIds(sfVag.getVolumeIds(), sfVolumeId, false);
 
-            SolidFireUtil.modifySolidFireVag(sfConnection, sfVag.getId(), sfVag.getInitiators(), volumeIds);
+            SolidFireUtil.modifyVag(sfConnection, sfVag.getId(), sfVag.getInitiators(), volumeIds);
         }
     }
 
@@ -609,7 +609,7 @@
 
         long sfVolumeId = getVolumeId(storagePoolId);
 
-        SolidFireUtil.deleteSolidFireVolume(sfConnection, sfVolumeId);
+        SolidFireUtil.deleteVolume(sfConnection, sfVolumeId);
     }
 
     private long getVolumeId(long storagePoolId) {
@@ -691,7 +691,7 @@
             }
         }
 
-        SolidFireUtil.modifySolidFireVolume(sfConnection, getVolumeId(storagePool.getId()), size, null, minIops, maxIops, burstIops);
+        SolidFireUtil.modifyVolume(sfConnection, getVolumeId(storagePool.getId()), size, null, minIops, maxIops, burstIops);
 
         SolidFireUtil.updateCsDbWithSolidFireIopsInfo(storagePool.getId(), _primaryDataStoreDao, _storagePoolDetailsDao, minIops, maxIops, burstIops);
     }
diff --git a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/util/SolidFireUtil.java b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/util/SolidFireUtil.java
index a9c1227..f5b67a7 100644
--- a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/util/SolidFireUtil.java
+++ b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/util/SolidFireUtil.java
@@ -16,53 +16,21 @@
 // under the License.
 package org.apache.cloudstack.storage.datastore.util;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.StringTokenizer;
 
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
 import org.apache.commons.lang.StringUtils;
-import org.apache.http.HttpResponse;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.BasicClientConnectionManager;
 import org.apache.log4j.Logger;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonObject;
-
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.cloudstack.utils.security.SSLUtils;
 
 import com.cloud.dc.ClusterDetailsDao;
 import com.cloud.dc.ClusterDetailsVO;
@@ -76,8 +44,38 @@
 import com.cloud.utils.db.GlobalLock;
 import com.cloud.utils.exception.CloudRuntimeException;
 
+import com.google.common.primitives.Longs;
+
+import com.solidfire.client.ElementFactory;
+import com.solidfire.element.api.Account;
+import com.solidfire.element.api.AddAccountRequest;
+import com.solidfire.element.api.CloneVolumeRequest;
+import com.solidfire.element.api.CloneVolumeResult;
+import com.solidfire.element.api.CreateSnapshotRequest;
+import com.solidfire.element.api.CreateVolumeAccessGroupRequest;
+import com.solidfire.element.api.CreateVolumeRequest;
+import com.solidfire.element.api.DeleteSnapshotRequest;
+import com.solidfire.element.api.DeleteVolumeRequest;
+import com.solidfire.element.api.GetAccountByIDRequest;
+import com.solidfire.element.api.GetAccountByNameRequest;
+import com.solidfire.element.api.GetAsyncResultRequest;
+import com.solidfire.element.api.ListSnapshotsRequest;
+import com.solidfire.element.api.ListVolumeAccessGroupsRequest;
+import com.solidfire.element.api.ListVolumesRequest;
+import com.solidfire.element.api.ModifyVolumeAccessGroupRequest;
+import com.solidfire.element.api.ModifyVolumeRequest;
+import com.solidfire.element.api.QoS;
+import com.solidfire.element.api.Snapshot;
+import com.solidfire.element.api.SolidFireElement;
+import com.solidfire.element.api.Volume;
+import com.solidfire.element.api.VolumeAccessGroup;
+import com.solidfire.jsvcgen.javautil.Optional;
+
+import static org.apache.commons.lang.ArrayUtils.toPrimitive;
+
 public class SolidFireUtil {
     private static final Logger s_logger = Logger.getLogger(SolidFireUtil.class);
+
     public static final String PROVIDER_NAME = "SolidFire";
     public static final String SHARED_PROVIDER_NAME = "SolidFireShared";
 
@@ -104,7 +102,8 @@
     public static final String MAX_IOPS = "maxIops";
     public static final String BURST_IOPS = "burstIops";
 
-    public static final String ACCOUNT_ID = "accountId";
+    private static final String ACCOUNT_ID = "accountId";
+
     public static final String VOLUME_ID = "volumeId";
     public static final String TEMP_VOLUME_ID = "tempVolumeId";
     public static final String SNAPSHOT_ID = "snapshotId";
@@ -120,12 +119,6 @@
 
     public static final String STORAGE_POOL_ID = "sfStoragePoolId";
 
-    public static final String CHAP_INITIATOR_USERNAME = "chapInitiatorUsername";
-    public static final String CHAP_INITIATOR_SECRET = "chapInitiatorSecret";
-
-    public static final String CHAP_TARGET_USERNAME = "chapTargetUsername";
-    public static final String CHAP_TARGET_SECRET = "chapTargetSecret";
-
     public static final String DATACENTER = "datacenter";
 
     public static final String DATASTORE_NAME = "datastoreName";
@@ -165,19 +158,19 @@
             _clusterAdminPassword = clusterAdminPassword;
         }
 
-        public String getManagementVip() {
+        String getManagementVip() {
             return _managementVip;
         }
 
-        public int getManagementPort() {
+        int getManagementPort() {
             return _managementPort;
         }
 
-        public String getClusterAdminUsername() {
+        String getClusterAdminUsername() {
             return _clusterAdminUsername;
         }
 
-        public String getClusterAdminPassword() {
+        private String getClusterAdminPassword() {
             return _clusterAdminPassword;
         }
 
@@ -218,16 +211,97 @@
         return new SolidFireConnection(mVip, mPort, clusterAdminUsername, clusterAdminPassword);
     }
 
+    private static SolidFireElement getSolidFireElement(SolidFireConnection sfConnection) {
+        return ElementFactory.create(sfConnection.getManagementVip(), sfConnection.getClusterAdminUsername(), sfConnection.getClusterAdminPassword());
+    }
+
+    // used to parse the "url" parameter when creating primary storage that's based on the SolidFire plug-in with the
+    // name SolidFireUtil.PROVIDER_NAME (as opposed to the SolidFire plug-in with the name SolidFireUtil.SHARED_PROVIDER_NAME)
+    // return a String instance that contains at most the MVIP and SVIP info
+    public static String getModifiedUrl(String originalUrl) {
+        StringBuilder sb = new StringBuilder();
+
+        String delimiter = ";";
+
+        StringTokenizer st = new StringTokenizer(originalUrl, delimiter);
+
+        while (st.hasMoreElements()) {
+            String token = st.nextElement().toString().toUpperCase();
+
+            if (token.startsWith(SolidFireUtil.MANAGEMENT_VIP.toUpperCase()) || token.startsWith(SolidFireUtil.STORAGE_VIP.toUpperCase())) {
+                sb.append(token).append(delimiter);
+            }
+        }
+
+        String modifiedUrl = sb.toString();
+        int lastIndexOf = modifiedUrl.lastIndexOf(delimiter);
+
+        if (lastIndexOf == (modifiedUrl.length() - delimiter.length())) {
+            return modifiedUrl.substring(0, lastIndexOf);
+        }
+
+        return modifiedUrl;
+    }
+
+    public static String getManagementVip(String url) {
+        return getVip(SolidFireUtil.MANAGEMENT_VIP, url);
+    }
+
+    public static String getStorageVip(String url) {
+        return getVip(SolidFireUtil.STORAGE_VIP, url);
+    }
+
+    public static int getManagementPort(String url) {
+        return getPort(SolidFireUtil.MANAGEMENT_VIP, url, DEFAULT_MANAGEMENT_PORT);
+    }
+
+    public static int getStoragePort(String url) {
+        return getPort(SolidFireUtil.STORAGE_VIP, url, DEFAULT_STORAGE_PORT);
+    }
+
+    public static String getValue(String keyToMatch, String url) {
+        return getValue(keyToMatch, url, true);
+    }
+
+    public static String getValue(String keyToMatch, String url, boolean throwExceptionIfNotFound) {
+        String delimiter1 = ";";
+        String delimiter2 = "=";
+
+        StringTokenizer st = new StringTokenizer(url, delimiter1);
+
+        while (st.hasMoreElements()) {
+            String token = st.nextElement().toString();
+
+            int index = token.indexOf(delimiter2);
+
+            if (index == -1) {
+                throw new RuntimeException("Invalid URL format");
+            }
+
+            String key = token.substring(0, index);
+
+            if (key.equalsIgnoreCase(keyToMatch)) {
+                return token.substring(index + delimiter2.length());
+            }
+        }
+
+        if (throwExceptionIfNotFound) {
+            throw new RuntimeException("Key not found in URL");
+        }
+
+        return null;
+    }
+
     public static String getSolidFireAccountName(String csAccountUuid, long csAccountId) {
         return "CloudStack_" + csAccountUuid + "_" + csAccountId;
     }
 
-    public static void updateCsDbWithSolidFireIopsInfo(long storagePoolId, PrimaryDataStoreDao primaryDataStoreDao, StoragePoolDetailsDao storagePoolDetailsDao,
-            long minIops, long maxIops, long burstIops) {
+    public static void updateCsDbWithSolidFireIopsInfo(long storagePoolId, PrimaryDataStoreDao primaryDataStoreDao,
+                                                       StoragePoolDetailsDao storagePoolDetailsDao, long minIops, long maxIops, long burstIops) {
         Map<String, String> existingDetails = storagePoolDetailsDao.listDetailsKeyPairs(storagePoolId);
         Set<String> existingKeys = existingDetails.keySet();
 
-        Map<String, String> existingDetailsToKeep = new HashMap<String, String>();
+        Map<String, String> existingDetailsToKeep = new HashMap<>();
 
         for (String existingKey : existingKeys) {
             String existingValue = existingDetails.get(existingKey);
@@ -247,50 +321,25 @@
     }
 
     public static void updateCsDbWithSolidFireAccountInfo(long csAccountId, SolidFireUtil.SolidFireAccount sfAccount,
-            long storagePoolId, AccountDetailsDao accountDetailsDao) {
+                                                          long storagePoolId, AccountDetailsDao accountDetailsDao) {
         AccountDetailVO accountDetail = new AccountDetailVO(csAccountId,
                 SolidFireUtil.getAccountKey(storagePoolId),
                 String.valueOf(sfAccount.getId()));
 
         accountDetailsDao.persist(accountDetail);
-
-        /*
-        accountDetail = new AccountDetailVO(csAccountId,
-                SolidFireUtil.CHAP_INITIATOR_USERNAME,
-                String.valueOf(sfAccount.getName()));
-
-        accountDetailsDao.persist(accountDetail);
-
-        accountDetail = new AccountDetailVO(csAccountId,
-                SolidFireUtil.CHAP_INITIATOR_SECRET,
-                String.valueOf(sfAccount.getInitiatorSecret()));
-
-        accountDetailsDao.persist(accountDetail);
-
-        accountDetail = new AccountDetailVO(csAccountId,
-                SolidFireUtil.CHAP_TARGET_USERNAME,
-                sfAccount.getName());
-
-        accountDetailsDao.persist(accountDetail);
-
-        accountDetail = new AccountDetailVO(csAccountId,
-                SolidFireUtil.CHAP_TARGET_SECRET,
-                sfAccount.getTargetSecret());
-
-        accountDetailsDao.persist(accountDetail);
-        */
     }
 
-    public static SolidFireAccount getSolidFireAccount(SolidFireConnection sfConnection, String sfAccountName) {
+    public static SolidFireAccount getAccount(SolidFireConnection sfConnection, String sfAccountName) {
         try {
-            return getSolidFireAccountByName(sfConnection, sfAccountName);
+            return getAccountByName(sfConnection, sfAccountName);
         } catch (Exception ex) {
             return null;
         }
     }
 
     public static void hostAddedToOrRemovedFromCluster(long hostId, long clusterId, boolean added, String storageProvider,
-            ClusterDao clusterDao, ClusterDetailsDao clusterDetailsDao, PrimaryDataStoreDao storagePoolDao, StoragePoolDetailsDao storagePoolDetailsDao, HostDao hostDao) {
+            ClusterDao clusterDao, ClusterDetailsDao clusterDetailsDao, PrimaryDataStoreDao storagePoolDao,
+            StoragePoolDetailsDao storagePoolDetailsDao, HostDao hostDao) {
         ClusterVO cluster = clusterDao.findById(clusterId);
 
         GlobalLock lock = GlobalLock.getInternLock(cluster.getUuid());
@@ -307,7 +356,7 @@
             List<StoragePoolVO> storagePools = storagePoolDao.findPoolsByProvider(storageProvider);
 
             if (storagePools != null && storagePools.size() > 0) {
-                List<SolidFireUtil.SolidFireConnection> sfConnections = new ArrayList<SolidFireUtil.SolidFireConnection>();
+                List<SolidFireUtil.SolidFireConnection> sfConnections = new ArrayList<>();
 
                 for (StoragePoolVO storagePool : storagePools) {
                     ClusterDetailsVO clusterDetail = clusterDetailsDao.findDetail(clusterId, SolidFireUtil.getVagKey(storagePool.getId()));
@@ -320,7 +369,7 @@
                         if (!sfConnections.contains(sfConnection)) {
                             sfConnections.add(sfConnection);
 
-                            SolidFireUtil.SolidFireVag sfVag = SolidFireUtil.getSolidFireVag(sfConnection, Long.parseLong(vagId));
+                            SolidFireUtil.SolidFireVag sfVag = SolidFireUtil.getVag(sfConnection, Long.parseLong(vagId));
 
                             List<HostVO> hostsToAddOrRemove = new ArrayList<>();
                             HostVO hostToAddOrRemove = hostDao.findByIdIncludingRemoved(hostId);
@@ -329,7 +378,7 @@
 
                             String[] hostIqns = SolidFireUtil.getNewHostIqns(sfVag.getInitiators(), SolidFireUtil.getIqnsFromHosts(hostsToAddOrRemove), added);
 
-                            SolidFireUtil.modifySolidFireVag(sfConnection, sfVag.getId(), hostIqns, sfVag.getVolumeIds());
+                            SolidFireUtil.modifyVag(sfConnection, sfVag.getId(), hostIqns, sfVag.getVolumeIds());
                         }
                     }
                 }
@@ -342,7 +391,7 @@
     }
 
     public static long placeVolumeInVolumeAccessGroup(SolidFireConnection sfConnection, long sfVolumeId, long storagePoolId,
-            String vagUuid, List<HostVO> hosts, ClusterDetailsDao clusterDetailsDao) {
+                                                      String vagUuid, List<HostVO> hosts, ClusterDetailsDao clusterDetailsDao) {
         if (hosts == null || hosts.isEmpty()) {
             throw new CloudRuntimeException("There must be at least one host in the cluster.");
         }
@@ -350,13 +399,14 @@
         long lVagId;
 
         try {
-            lVagId = SolidFireUtil.createSolidFireVag(sfConnection, "CloudStack-" + vagUuid,
+            lVagId = SolidFireUtil.createVag(sfConnection, "CloudStack-" + vagUuid,
                 SolidFireUtil.getIqnsFromHosts(hosts), new long[] { sfVolumeId });
         }
         catch (Exception ex) {
-            String iqnInVagAlready = "Exceeded maximum number of Volume Access Groups per initiator";
+            String iqnInVagAlready1 = "Exceeded maximum number of Volume Access Groups per initiator";
+            String iqnInVagAlready2 = "Exceeded maximum number of VolumeAccessGroups per Initiator";
 
-            if (!ex.getMessage().contains(iqnInVagAlready)) {
+            if (!ex.getMessage().contains(iqnInVagAlready1) && !ex.getMessage().contains(iqnInVagAlready2)) {
                 throw new CloudRuntimeException(ex.getMessage());
             }
 
@@ -367,7 +417,7 @@
 
             long[] volumeIds = getNewVolumeIds(sfVag.getVolumeIds(), sfVolumeId, true);
 
-            SolidFireUtil.modifySolidFireVag(sfConnection, lVagId, sfVag.getInitiators(), volumeIds);
+            SolidFireUtil.modifyVag(sfConnection, lVagId, sfVag.getInitiators(), volumeIds);
         }
 
         ClusterDetailsVO clusterDetail = new ClusterDetailsVO(hosts.get(0).getClusterId(), getVagKey(storagePoolId), String.valueOf(lVagId));
@@ -391,40 +441,6 @@
         return true;
     }
 
-    public static String[] getNewHostIqns(String[] iqns, String[] iqnsToAddOrRemove, boolean add) {
-        if (add) {
-            return getNewHostIqnsAdd(iqns, iqnsToAddOrRemove);
-        }
-
-        return getNewHostIqnsRemove(iqns, iqnsToAddOrRemove);
-    }
-
-    private static String[] getNewHostIqnsAdd(String[] iqns, String[] iqnsToAdd) {
-        List<String> lstIqns = iqns != null ? new ArrayList<>(Arrays.asList(iqns)) : new ArrayList<String>();
-
-        if (iqnsToAdd != null) {
-            for (String iqnToAdd : iqnsToAdd) {
-                if (!lstIqns.contains(iqnToAdd)) {
-                    lstIqns.add(iqnToAdd);
-                }
-            }
-        }
-
-        return lstIqns.toArray(new String[0]);
-    }
-
-    private static String[] getNewHostIqnsRemove(String[] iqns, String[] iqnsToRemove) {
-        List<String> lstIqns = iqns != null ? new ArrayList<>(Arrays.asList(iqns)) : new ArrayList<String>();
-
-        if (iqnsToRemove != null) {
-            for (String iqnToRemove : iqnsToRemove) {
-                lstIqns.remove(iqnToRemove);
-            }
-        }
-
-        return lstIqns.toArray(new String[0]);
-    }
-
     public static long[] getNewVolumeIds(long[] volumeIds, long volumeIdToAddOrRemove, boolean add) {
         if (add) {
             return getNewVolumeIdsAdd(volumeIds, volumeIdToAddOrRemove);
@@ -433,54 +449,6 @@
         return getNewVolumeIdsRemove(volumeIds, volumeIdToAddOrRemove);
     }
 
-    private static long[] getNewVolumeIdsAdd(long[] volumeIds, long volumeIdToAdd) {
-        List<Long> lstVolumeIds = new ArrayList<Long>();
-
-        if (volumeIds != null) {
-            for (long volumeId : volumeIds) {
-                lstVolumeIds.add(volumeId);
-            }
-        }
-
-        if (lstVolumeIds.contains(volumeIdToAdd)) {
-            return volumeIds;
-        }
-
-        lstVolumeIds.add(volumeIdToAdd);
-
-        return convertArray(lstVolumeIds);
-    }
-
-    private static long[] getNewVolumeIdsRemove(long[] volumeIds, long volumeIdToRemove) {
-        List<Long> lstVolumeIds = new ArrayList<Long>();
-
-        if (volumeIds != null) {
-            for (long volumeId : volumeIds) {
-                lstVolumeIds.add(volumeId);
-            }
-        }
-
-        lstVolumeIds.remove(volumeIdToRemove);
-
-        return convertArray(lstVolumeIds);
-    }
-
-    private static long[] convertArray(List<Long> items) {
-        if (items == null) {
-            return new long[0];
-        }
-
-        long[] outArray = new long[items.size()];
-
-        for (int i = 0; i < items.size(); i++) {
-            Long value = items.get(i);
-
-            outArray[i] = value;
-        }
-
-        return outArray;
-    }
-
     public static String getVagKey(long storagePoolId) {
         return "sfVolumeAccessGroup_" + storagePoolId;
     }
@@ -499,61 +467,6 @@
         return accountDetail;
     }
 
-    public static String[] getIqnsFromHosts(List<? extends Host> hosts) {
-        if (hosts == null || hosts.size() == 0) {
-            throw new CloudRuntimeException("There do not appear to be any hosts in this cluster.");
-        }
-
-        List<String> lstIqns = new ArrayList<String>();
-
-        for (Host host : hosts) {
-            lstIqns.add(host.getStorageUrl());
-        }
-
-        return lstIqns.toArray(new String[0]);
-    }
-
-    // this method takes in a collection of hosts and tries to find an existing VAG that has all of them in it
-    // if successful, the VAG is returned; else, a CloudRuntimeException is thrown and this issue should be corrected by an admin
-    private static SolidFireUtil.SolidFireVag getCompatibleVag(SolidFireConnection sfConnection, List<HostVO> hosts) {
-        List<SolidFireUtil.SolidFireVag> sfVags = SolidFireUtil.getAllSolidFireVags(sfConnection);
-
-        if (sfVags != null) {
-            List<String> hostIqns = new ArrayList<String>();
-
-            // where the method we're in is called, hosts should not be null
-            for (HostVO host : hosts) {
-                // where the method we're in is called, host.getStorageUrl() should not be null (it actually should start with "iqn")
-                hostIqns.add(host.getStorageUrl().toLowerCase());
-            }
-
-            for (SolidFireUtil.SolidFireVag sfVag : sfVags) {
-                List<String> lstInitiators = getStringArrayAsLowerCaseStringList(sfVag.getInitiators());
-
-                // lstInitiators should not be returned from getStringArrayAsLowerCaseStringList as null
-                if (lstInitiators.containsAll(hostIqns)) {
-                    return sfVag;
-                }
-            }
-        }
-
-        throw new CloudRuntimeException("Unable to locate the appropriate SolidFire Volume Access Group");
-    }
-
-    private static List<String> getStringArrayAsLowerCaseStringList(String[] aString) {
-        List<String> lstLowerCaseString = new ArrayList<String>();
-
-        if (aString != null) {
-            for (String str : aString) {
-                if (str != null) {
-                    lstLowerCaseString.add(str.toLowerCase());
-                }
-            }
-        }
-
-        return lstLowerCaseString;
-    }
-
     public static String getSolidFireVolumeName(String strCloudStackVolumeName) {
         final String specialChar = "-";
 
@@ -572,204 +485,50 @@
         return strSolidFireVolumeName.toString();
     }
 
-    public static long createSolidFireVolume(SolidFireConnection sfConnection, String strSfVolumeName, long lSfAccountId, long lTotalSize,
-            boolean bEnable512e, Map<String, String> mapAttributes, long minIops, long maxIops, long burstIops)
-    {
-        JsonObject volumeToCreate = new JsonObject();
+    public static long createVolume(SolidFireConnection sfConnection, String volumeName, long accountId, long totalSize,
+                                    boolean enable512e, Map<String, String> mapAttributes, long minIops, long maxIops, long burstIops) {
+        CreateVolumeRequest request = CreateVolumeRequest.builder()
+                .name(volumeName)
+                .accountID(accountId)
+                .totalSize(totalSize)
+                .enable512e(enable512e)
+                .optionalAttributes(convertMap(mapAttributes))
+                .optionalQos(new QoS(Optional.of(minIops), Optional.of(maxIops), Optional.of(burstIops), Optional.EMPTY_LONG))
+                .build();
 
-        volumeToCreate.addProperty("method", "CreateVolume");
-
-        JsonObject params = new JsonObject();
-
-        volumeToCreate.add("params", params);
-
-        params.addProperty("name", strSfVolumeName);
-        params.addProperty("accountID", lSfAccountId);
-        params.addProperty("totalSize", lTotalSize);
-        params.addProperty("enable512e", bEnable512e);
-
-        JsonObject qos = new JsonObject();
-
-        params.add("qos", qos);
-
-        qos.addProperty("minIOPS", minIops);
-        qos.addProperty("maxIOPS", maxIops);
-        qos.addProperty("burstIOPS", burstIops);
-
-        if (mapAttributes != null && mapAttributes.size() > 0) {
-            JsonObject attributes = new JsonObject();
-
-            params.add("attributes", attributes);
-
-            Iterator<Map.Entry<String, String>> itr = mapAttributes.entrySet().iterator();
-
-            while (itr.hasNext()) {
-                Map.Entry<String, String> pair = itr.next();
-
-                attributes.addProperty(pair.getKey(), pair.getValue());
-            }
-        }
-
-        final Gson gson = new GsonBuilder().create();
-
-        String strVolumeToCreateJson = gson.toJson(volumeToCreate);
-
-        String strVolumeCreateResultJson = executeJsonRpc(sfConnection, strVolumeToCreateJson);
-
-        VolumeCreateResult volumeCreateResult = gson.fromJson(strVolumeCreateResultJson, VolumeCreateResult.class);
-
-        verifyResult(volumeCreateResult.result, strVolumeCreateResultJson, gson);
-
-        return volumeCreateResult.result.volumeID;
+        return getSolidFireElement(sfConnection).createVolume(request).getVolumeID();
     }
 
-    public static void modifySolidFireVolume(SolidFireConnection sfConnection, long volumeId, Long totalSize, Map<String, String> mapAttributes,
-            long minIops, long maxIops, long burstIops)
-    {
-        JsonObject volumeToModify = new JsonObject();
+    public static void modifyVolume(SolidFireConnection sfConnection, long volumeId, Long totalSize, Map<String, String> mapAttributes,
+                                    long minIops, long maxIops, long burstIops) {
+        ModifyVolumeRequest request = ModifyVolumeRequest.builder()
+                .volumeID(volumeId)
+                .optionalTotalSize(totalSize)
+                .optionalAttributes(convertMap(mapAttributes))
+                .optionalQos(new QoS(Optional.of(minIops), Optional.of(maxIops), Optional.of(burstIops), Optional.EMPTY_LONG))
+                .build();
 
-        volumeToModify.addProperty("method", "ModifyVolume");
-
-        JsonObject params = new JsonObject();
-
-        volumeToModify.add("params", params);
-
-        params.addProperty("volumeID", volumeId);
-
-        if (totalSize != null) {
-            params.addProperty("totalSize", totalSize);
-        }
-
-        JsonObject qos = new JsonObject();
-
-        params.add("qos", qos);
-
-        qos.addProperty("minIOPS", minIops);
-        qos.addProperty("maxIOPS", maxIops);
-        qos.addProperty("burstIOPS", burstIops);
-
-        if (mapAttributes != null && mapAttributes.size() > 0) {
-            JsonObject attributes = new JsonObject();
-
-            params.add("attributes", attributes);
-
-            Iterator<Map.Entry<String, String>> itr = mapAttributes.entrySet().iterator();
-
-            while (itr.hasNext()) {
-                Map.Entry<String, String> pair = itr.next();
-
-                attributes.addProperty(pair.getKey(), pair.getValue());
-            }
-        }
-
-        final Gson gson = new GsonBuilder().create();
-
-        String strVolumeToModifyJson = gson.toJson(volumeToModify);
-
-        String strVolumeModifyResultJson = executeJsonRpc(sfConnection, strVolumeToModifyJson);
-
-        JsonError jsonError = gson.fromJson(strVolumeModifyResultJson, JsonError.class);
-
-        if (jsonError.error != null) {
-            throw new IllegalStateException(jsonError.error.message);
-        }
+        getSolidFireElement(sfConnection).modifyVolume(request);
     }
 
-    public static SolidFireVolume getSolidFireVolume(SolidFireConnection sfConnection, long lVolumeId)
-    {
-        final Gson gson = new GsonBuilder().create();
+    public static SolidFireVolume getVolume(SolidFireConnection sfConnection, long volumeId) {
+        ListVolumesRequest request = ListVolumesRequest.builder()
+                .optionalStartVolumeID(volumeId)
+                .optionalLimit(1L)
+                .build();
 
-        VolumeToGet volumeToGet = new VolumeToGet(lVolumeId);
+        Volume volume = getSolidFireElement(sfConnection).listVolumes(request).getVolumes()[0];
 
-        String strVolumeToGetJson = gson.toJson(volumeToGet);
-
-        String strVolumeGetResultJson = executeJsonRpc(sfConnection, strVolumeToGetJson);
-
-        VolumeGetResult volumeGetResult = gson.fromJson(strVolumeGetResultJson, VolumeGetResult.class);
-
-        verifyResult(volumeGetResult.result, strVolumeGetResultJson, gson);
-
-        String strVolumeName = getVolumeName(volumeGetResult, lVolumeId);
-        String strVolumeIqn = getVolumeIqn(volumeGetResult, lVolumeId);
-        long lAccountId = getVolumeAccountId(volumeGetResult, lVolumeId);
-        String strVolumeStatus = getVolumeStatus(volumeGetResult, lVolumeId);
-        boolean enable512e = getVolumeEnable512e(volumeGetResult, lVolumeId);
-        long lMinIops = getVolumeMinIops(volumeGetResult, lVolumeId);
-        long lMaxIops = getVolumeMaxIops(volumeGetResult, lVolumeId);
-        long lBurstIops = getVolumeBurstIops(volumeGetResult, lVolumeId);
-        long lTotalSize = getVolumeTotalSize(volumeGetResult, lVolumeId);
-
-        return new SolidFireVolume(lVolumeId, strVolumeName, strVolumeIqn, lAccountId, strVolumeStatus, enable512e,
-                lMinIops, lMaxIops, lBurstIops, lTotalSize);
+        return new SolidFireVolume(volume.getVolumeID(), volume.getName(), volume.getIqn(), volume.getAccountID(), volume.getStatus(),
+                volume.getEnable512e(), volume.getQos().getMinIOPS(), volume.getQos().getMaxIOPS(), volume.getQos().getBurstIOPS(), volume.getTotalSize());
     }
 
-    public static List<SolidFireVolume> getSolidFireVolumesForAccountId(SolidFireConnection sfConnection, long lAccountId) {
-        final Gson gson = new GsonBuilder().create();
+    public static void deleteVolume(SolidFireConnection sfConnection, long volumeId) {
+        DeleteVolumeRequest request = DeleteVolumeRequest.builder()
+                .volumeID(volumeId)
+                .build();
 
-        VolumesToGetForAccount volumesToGetForAccount = new VolumesToGetForAccount(lAccountId);
-
-        String strVolumesToGetForAccountJson = gson.toJson(volumesToGetForAccount);
-
-        String strVolumesGetForAccountResultJson = executeJsonRpc(sfConnection, strVolumesToGetForAccountJson);
-
-        VolumeGetResult volumeGetResult = gson.fromJson(strVolumesGetForAccountResultJson, VolumeGetResult.class);
-
-        verifyResult(volumeGetResult.result, strVolumesGetForAccountResultJson, gson);
-
-        List<SolidFireVolume> sfVolumes = new ArrayList<SolidFireVolume>();
-
-        for (VolumeGetResult.Result.Volume volume : volumeGetResult.result.volumes) {
-            sfVolumes.add(new SolidFireVolume(volume.volumeID, volume.name, volume.iqn, volume.accountID, volume.status, volume.enable512e,
-                    volume.qos.minIOPS, volume.qos.maxIOPS, volume.qos.burstIOPS, volume.totalSize));
-        }
-
-        return sfVolumes;
-    }
-
-    public static List<SolidFireVolume> getDeletedVolumes(SolidFireConnection sfConnection)
-    {
-        final Gson gson = new GsonBuilder().create();
-
-        ListDeletedVolumes listDeletedVolumes = new ListDeletedVolumes();
-
-        String strListDeletedVolumesJson = gson.toJson(listDeletedVolumes);
-
-        String strListDeletedVolumesResultJson = executeJsonRpc(sfConnection, strListDeletedVolumesJson);
-
-        VolumeGetResult volumeGetResult = gson.fromJson(strListDeletedVolumesResultJson, VolumeGetResult.class);
-
-        verifyResult(volumeGetResult.result, strListDeletedVolumesResultJson, gson);
-
-        List<SolidFireVolume> deletedVolumes = new ArrayList<SolidFireVolume> ();
-
-        for (VolumeGetResult.Result.Volume volume : volumeGetResult.result.volumes) {
-            deletedVolumes.add(new SolidFireVolume(volume.volumeID, volume.name, volume.iqn, volume.accountID, volume.status, volume.enable512e,
-                    volume.qos.minIOPS, volume.qos.maxIOPS, volume.qos.burstIOPS, volume.totalSize));
-        }
-
-        return deletedVolumes;
-    }
-
-    public static void deleteSolidFireVolume(SolidFireConnection sfConnection, long lVolumeId)
-    {
-        final Gson gson = new GsonBuilder().create();
-
-        VolumeToDelete volumeToDelete = new VolumeToDelete(lVolumeId);
-
-        String strVolumeToDeleteJson = gson.toJson(volumeToDelete);
-
-        executeJsonRpc(sfConnection, strVolumeToDeleteJson);
-    }
-
-    public static void purgeSolidFireVolume(SolidFireConnection sfConnection, long lVolumeId)
-    {
-        final Gson gson = new GsonBuilder().create();
-
-        VolumeToPurge volumeToPurge = new VolumeToPurge(lVolumeId);
-
-        String strVolumeToPurgeJson = gson.toJson(volumeToPurge);
-
-        executeJsonRpc(sfConnection, strVolumeToPurgeJson);
+        getSolidFireElement(sfConnection).deleteVolume(request);
     }
 
     private static final String ACTIVE = "active";
@@ -786,10 +545,8 @@
         private final long _burstIops;
         private final long _totalSize;
 
-        public SolidFireVolume(long id, String name, String iqn,
-                long accountId, String status, boolean enable512e,
-                long minIops, long maxIops, long burstIops, long totalSize)
-        {
+        SolidFireVolume(long id, String name, String iqn, long accountId, String status, boolean enable512e,
+                        long minIops, long maxIops, long burstIops, long totalSize) {
             _id = id;
             _name = name;
             _iqn = "/" + iqn + "/0";
@@ -864,21 +621,60 @@
 
             SolidFireVolume sfv = (SolidFireVolume)obj;
 
-            if (_id == sfv._id && _name.equals(sfv._name) &&
-                _iqn.equals(sfv._iqn) && _accountId == sfv._accountId &&
-                isActive() == sfv.isActive() && getTotalSize() == sfv.getTotalSize()) {
-                return true;
-            }
-
-            return false;
+            return _id == sfv._id && _name.equals(sfv._name) && _iqn.equals(sfv._iqn) && _accountId == sfv._accountId &&
+                    isActive() == sfv.isActive() && getTotalSize() == sfv.getTotalSize();
         }
     }
 
+    public static long createSnapshot(SolidFireConnection sfConnection, long volumeId, String snapshotName, Map<String, String> mapAttributes) {
+        CreateSnapshotRequest request = CreateSnapshotRequest.builder()
+                .volumeID(volumeId)
+                .optionalName(snapshotName)
+                .optionalAttributes(convertMap(mapAttributes))
+                .build();
+
+        return getSolidFireElement(sfConnection).createSnapshot(request).getSnapshotID();
+    }
+
+    public static SolidFireSnapshot getSnapshot(SolidFireConnection sfConnection, long volumeId, long snapshotId) {
+        ListSnapshotsRequest request = ListSnapshotsRequest.builder()
+                .optionalVolumeID(volumeId)
+                .build();
+
+        Snapshot[] snapshots = getSolidFireElement(sfConnection).listSnapshots(request).getSnapshots();
+
+        String snapshotName = null;
+
+        if (snapshots != null) {
+            for (Snapshot snapshot : snapshots) {
+                if (snapshot.getSnapshotID() == snapshotId) {
+                    snapshotName = snapshot.getName();
+
+                    break;
+                }
+            }
+        }
+
+        if (snapshotName == null) {
+            throw new CloudRuntimeException("Could not find SolidFire snapshot ID: " + snapshotId + " for the following SolidFire volume ID: " + volumeId);
+        }
+
+        return new SolidFireSnapshot(snapshotId, snapshotName);
+    }
+
+    public static void deleteSnapshot(SolidFireConnection sfConnection, long snapshotId) {
+        DeleteSnapshotRequest request = DeleteSnapshotRequest.builder()
+                .snapshotID(snapshotId)
+                .build();
+
+        getSolidFireElement(sfConnection).deleteSnapshot(request);
+    }
+
     public static class SolidFireSnapshot {
         private final long _id;
         private final String _name;
 
-        public SolidFireSnapshot(long id, String name) {
+        SolidFireSnapshot(long id, String name) {
             _id = id;
             _name = name;
         }
@@ -892,159 +688,28 @@
         }
     }
 
-    public static long createSolidFireSnapshot(SolidFireConnection sfConnection, long lVolumeId, String snapshotName, Map<String, String> mapAttributes) {
-        JsonObject snapshotToCreate = new JsonObject();
+    public static long createClone(SolidFireConnection sfConnection, long volumeId, long snapshotId, long accountId,
+                                   String cloneName, Map<String, String> mapAttributes) {
+        CloneVolumeRequest request = CloneVolumeRequest.builder()
+                .volumeID(volumeId)
+                .optionalSnapshotID(snapshotId < 1 ? null : snapshotId)
+                .optionalNewAccountID(accountId)
+                .name(cloneName)
+                .optionalAttributes(convertMap(mapAttributes))
+                .build();
 
-        snapshotToCreate.addProperty("method", "CreateSnapshot");
-
-        JsonObject params = new JsonObject();
-
-        snapshotToCreate.add("params", params);
-
-        params.addProperty("volumeID", lVolumeId);
-        params.addProperty("name", snapshotName);
-
-        if (mapAttributes != null && mapAttributes.size() > 0) {
-            JsonObject attributes = new JsonObject();
-
-            params.add("attributes", attributes);
-
-            Iterator<Map.Entry<String, String>> itr = mapAttributes.entrySet().iterator();
-
-            while (itr.hasNext()) {
-                Map.Entry<String, String> pair = itr.next();
-
-                attributes.addProperty(pair.getKey(), pair.getValue());
-            }
-        }
-
-        final Gson gson = new GsonBuilder().create();
-
-        String strSnapshotToCreateJson = gson.toJson(snapshotToCreate);
-
-        String strSnapshotCreateResultJson = executeJsonRpc(sfConnection, strSnapshotToCreateJson);
-
-        SnapshotCreateResult snapshotCreateResult = gson.fromJson(strSnapshotCreateResultJson, SnapshotCreateResult.class);
-
-        verifyResult(snapshotCreateResult.result, strSnapshotCreateResultJson, gson);
-
-        return snapshotCreateResult.result.snapshotID;
-    }
-
-    public static SolidFireSnapshot getSolidFireSnapshot(SolidFireConnection sfConnection, long lVolumeId, long lSnapshotId) {
-        final Gson gson = new GsonBuilder().create();
-
-        SnapshotsToGet snapshotsToGet = new SnapshotsToGet(lVolumeId);
-
-        String strSnapshotsToGetJson = gson.toJson(snapshotsToGet);
-
-        String strSnapshotsGetResultJson = executeJsonRpc(sfConnection, strSnapshotsToGetJson);
-
-        SnapshotsGetResult snapshotsGetResult = gson.fromJson(strSnapshotsGetResultJson, SnapshotsGetResult.class);
-
-        verifyResult(snapshotsGetResult.result, strSnapshotsGetResultJson, gson);
-
-        String snapshotName = null;
-
-        if (snapshotsGetResult.result.snapshots != null) {
-            for (SnapshotsGetResult.Result.Snapshot snapshot : snapshotsGetResult.result.snapshots) {
-                if (snapshot.snapshotID == lSnapshotId) {
-                    snapshotName = snapshot.name;
-
-                    break;
-                }
-            }
-        }
-
-        if (snapshotName == null) {
-            throw new CloudRuntimeException("Could not find SolidFire snapshot ID: " + lSnapshotId + " for the following SolidFire volume ID: " + lVolumeId);
-        }
-
-        return new SolidFireSnapshot(lSnapshotId, snapshotName);
-    }
-
-    public static void deleteSolidFireSnapshot(SolidFireConnection sfConnection, long lSnapshotId)
-    {
-        final Gson gson = new GsonBuilder().create();
-
-        SnapshotToDelete snapshotToDelete = new SnapshotToDelete(lSnapshotId);
-
-        String strSnapshotToDeleteJson = gson.toJson(snapshotToDelete);
-
-        executeJsonRpc(sfConnection, strSnapshotToDeleteJson);
-    }
-
-    public static void rollBackVolumeToSnapshot(SolidFireConnection sfConnection, long volumeId, long snapshotId) {
-        final Gson gson = new GsonBuilder().create();
-
-        RollbackToInitiate rollbackToInitiate = new RollbackToInitiate(volumeId, snapshotId);
-
-        String strRollbackToInitiateJson = gson.toJson(rollbackToInitiate);
-
-        String strRollbackInitiatedResultJson = executeJsonRpc(sfConnection, strRollbackToInitiateJson);
-
-        RollbackInitiatedResult rollbackInitiatedResult = gson.fromJson(strRollbackInitiatedResultJson, RollbackInitiatedResult.class);
-
-        verifyResult(rollbackInitiatedResult.result, strRollbackInitiatedResultJson, gson);
-    }
-
-    public static long createSolidFireClone(SolidFireConnection sfConnection, long lVolumeId, long lSnapshotId, long sfAccountId,
-            String cloneName, Map<String, String> mapAttributes) {
-        JsonObject cloneToCreate = new JsonObject();
-
-        cloneToCreate.addProperty("method", "CloneVolume");
-
-        JsonObject params = new JsonObject();
-
-        cloneToCreate.add("params", params);
-
-        params.addProperty("volumeID", lVolumeId);
-
-        if (lSnapshotId > 0) {
-            params.addProperty("snapshotID", lSnapshotId);
-        }
-
-        params.addProperty("newAccountID", sfAccountId);
-        params.addProperty("name", cloneName);
-
-        if (mapAttributes != null && mapAttributes.size() > 0) {
-            JsonObject attributes = new JsonObject();
-
-            params.add("attributes", attributes);
-
-            Iterator<Map.Entry<String, String>> itr = mapAttributes.entrySet().iterator();
-
-            while (itr.hasNext()) {
-                Map.Entry<String, String> pair = itr.next();
-
-                attributes.addProperty(pair.getKey(), pair.getValue());
-            }
-        }
-
-        final Gson gson = new GsonBuilder().create();
-
-        String strCloneToCreateJson = gson.toJson(cloneToCreate);
-
-        String strCloneCreateResultJson = executeJsonRpc(sfConnection, strCloneToCreateJson);
-
-        CloneCreateResult cloneCreateResult = gson.fromJson(strCloneCreateResultJson, CloneCreateResult.class);
-
-        verifyResult(cloneCreateResult.result, strCloneCreateResultJson, gson);
+        CloneVolumeResult result = getSolidFireElement(sfConnection).cloneVolume(request);
 
         // Clone is an async operation. Poll until we get data.
 
-        AsyncJobToPoll asyncJobToPoll = new AsyncJobToPoll(cloneCreateResult.result.asyncHandle);
-
-        String strAsyncJobToPollJson = gson.toJson(asyncJobToPoll);
+        GetAsyncResultRequest asyncResultRequest = GetAsyncResultRequest.builder()
+                .asyncHandle(result.getAsyncHandle())
+                .build();
 
         do {
-            String strAsyncJobResultJson = executeJsonRpc(sfConnection, strAsyncJobToPollJson);
+            String status = getSolidFireElement(sfConnection).getAsyncResult(asyncResultRequest).getStatus();
 
-            AsyncJobResult asyncJobResult = gson.fromJson(strAsyncJobResultJson, AsyncJobResult.class);
-
-            verifyResult(asyncJobResult.result, strAsyncJobResultJson, gson);
-
-            if (asyncJobResult.result.status.equals("complete")) {
+            if (status.equals("complete")) {
                 break;
             }
 
@@ -1057,87 +722,52 @@
         }
         while (true);
 
-        return cloneCreateResult.result.volumeID;
+        return result.getVolumeID();
     }
 
-    public static long createSolidFireAccount(SolidFireConnection sfConnection, String strAccountName)
-    {
-        final Gson gson = new GsonBuilder().create();
+    public static long createAccount(SolidFireConnection sfConnection, String accountName) {
+        AddAccountRequest request = AddAccountRequest.builder()
+                .username(accountName)
+                .build();
 
-        AccountToAdd accountToAdd = new AccountToAdd(strAccountName);
-
-        String strAccountAddJson = gson.toJson(accountToAdd);
-
-        String strAccountAddResultJson = executeJsonRpc(sfConnection, strAccountAddJson);
-
-        AccountAddResult accountAddResult = gson.fromJson(strAccountAddResultJson, AccountAddResult.class);
-
-        verifyResult(accountAddResult.result, strAccountAddResultJson, gson);
-
-        return accountAddResult.result.accountID;
+        return getSolidFireElement(sfConnection).addAccount(request).getAccountID();
     }
 
-    public static SolidFireAccount getSolidFireAccountById(SolidFireConnection sfConnection, long lSfAccountId)
-    {
-        final Gson gson = new GsonBuilder().create();
+    public static SolidFireAccount getAccountById(SolidFireConnection sfConnection, long accountId) {
+        GetAccountByIDRequest request = GetAccountByIDRequest.builder()
+                .accountID(accountId)
+                .build();
 
-        AccountToGetById accountToGetById = new AccountToGetById(lSfAccountId);
+        Account sfAccount = getSolidFireElement(sfConnection).getAccountByID(request).getAccount();
 
-        String strAccountToGetByIdJson = gson.toJson(accountToGetById);
+        String sfAccountName = sfAccount.getUsername();
+        String sfAccountInitiatorSecret = sfAccount.getInitiatorSecret().isPresent() ? sfAccount.getInitiatorSecret().get().toString() : "";
+        String sfAccountTargetSecret = sfAccount.getTargetSecret().isPresent() ? sfAccount.getTargetSecret().get().toString() : "";
 
-        String strAccountGetByIdResultJson = executeJsonRpc(sfConnection, strAccountToGetByIdJson);
-
-        AccountGetResult accountGetByIdResult = gson.fromJson(strAccountGetByIdResultJson, AccountGetResult.class);
-
-        verifyResult(accountGetByIdResult.result, strAccountGetByIdResultJson, gson);
-
-        String strSfAccountName = accountGetByIdResult.result.account.username;
-        String strSfAccountInitiatorSecret = accountGetByIdResult.result.account.initiatorSecret;
-        String strSfAccountTargetSecret = accountGetByIdResult.result.account.targetSecret;
-
-        return new SolidFireAccount(lSfAccountId, strSfAccountName, strSfAccountInitiatorSecret, strSfAccountTargetSecret);
+        return new SolidFireAccount(accountId, sfAccountName, sfAccountInitiatorSecret, sfAccountTargetSecret);
     }
 
-    public static SolidFireAccount getSolidFireAccountByName(SolidFireConnection sfConnection, String strSfAccountName)
-    {
-        final Gson gson = new GsonBuilder().create();
+    private static SolidFireAccount getAccountByName(SolidFireConnection sfConnection, String accountName) {
+        GetAccountByNameRequest request = GetAccountByNameRequest.builder()
+                .username(accountName)
+                .build();
 
-        AccountToGetByName accountToGetByName = new AccountToGetByName(strSfAccountName);
+        Account sfAccount = getSolidFireElement(sfConnection).getAccountByName(request).getAccount();
 
-        String strAccountToGetByNameJson = gson.toJson(accountToGetByName);
+        long sfAccountId = sfAccount.getAccountID();
+        String sfAccountInitiatorSecret = sfAccount.getInitiatorSecret().isPresent() ? sfAccount.getInitiatorSecret().get().toString() : "";
+        String sfAccountTargetSecret = sfAccount.getTargetSecret().isPresent() ? sfAccount.getTargetSecret().get().toString() : "";
 
-        String strAccountGetByNameResultJson = executeJsonRpc(sfConnection, strAccountToGetByNameJson);
-
-        AccountGetResult accountGetByNameResult = gson.fromJson(strAccountGetByNameResultJson, AccountGetResult.class);
-
-        verifyResult(accountGetByNameResult.result, strAccountGetByNameResultJson, gson);
-
-        long lSfAccountId = accountGetByNameResult.result.account.accountID;
-        String strSfAccountInitiatorSecret = accountGetByNameResult.result.account.initiatorSecret;
-        String strSfAccountTargetSecret = accountGetByNameResult.result.account.targetSecret;
-
-        return new SolidFireAccount(lSfAccountId, strSfAccountName, strSfAccountInitiatorSecret, strSfAccountTargetSecret);
+        return new SolidFireAccount(sfAccountId, accountName, sfAccountInitiatorSecret, sfAccountTargetSecret);
     }
 
-    public static void deleteSolidFireAccount(SolidFireConnection sfConnection, long lAccountId)
-    {
-        final Gson gson = new GsonBuilder().create();
-
-        AccountToRemove accountToRemove = new AccountToRemove(lAccountId);
-
-        String strAccountToRemoveJson = gson.toJson(accountToRemove);
-
-        executeJsonRpc(sfConnection, strAccountToRemoveJson);
-    }
-
-    public static class SolidFireAccount
-    {
+    public static class SolidFireAccount {
         private final long _id;
         private final String _name;
         private final String _initiatorSecret;
         private final String _targetSecret;
 
-        public SolidFireAccount(long id, String name, String initiatorSecret, String targetSecret) {
+        SolidFireAccount(long id, String name, String initiatorSecret, String targetSecret) {
             _id = id;
             _name = name;
             _initiatorSecret = initiatorSecret;
@@ -1152,14 +782,6 @@
             return _name;
         }
 
-        public String getInitiatorSecret() {
-            return _initiatorSecret;
-        }
-
-        public String getTargetSecret() {
-            return _targetSecret;
-        }
-
         @Override
         public int hashCode() {
             return (_id + _name).hashCode();
@@ -1182,84 +804,58 @@
 
             SolidFireAccount sfa = (SolidFireAccount)obj;
 
-            if (_id == sfa._id && _name.equals(sfa._name) &&
-                _initiatorSecret.equals(sfa._initiatorSecret) &&
-                _targetSecret.equals(sfa._targetSecret)) {
-                return true;
-            }
-
-            return false;
+            return _id == sfa._id && _name.equals(sfa._name) &&
+                    _initiatorSecret.equals(sfa._initiatorSecret) &&
+                    _targetSecret.equals(sfa._targetSecret);
         }
     }
 
-    public static long createSolidFireVag(SolidFireConnection sfConnection, String strVagName,
-            String[] iqns, long[] volumeIds)
-    {
-        final Gson gson = new GsonBuilder().create();
+    private static long createVag(SolidFireConnection sfConnection, String vagName, String[] iqns, long[] volumeIds) {
+        CreateVolumeAccessGroupRequest request = CreateVolumeAccessGroupRequest.builder()
+                .name(vagName)
+                .optionalInitiators(iqns)
+                .optionalVolumes(Longs.asList(volumeIds).toArray(new Long[volumeIds.length]))
+                .build();
 
-        VagToCreate vagToCreate = new VagToCreate(strVagName, iqns, volumeIds);
-
-        String strVagCreateJson = gson.toJson(vagToCreate);
-
-        String strVagCreateResultJson = executeJsonRpc(sfConnection, strVagCreateJson);
-
-        VagCreateResult vagCreateResult = gson.fromJson(strVagCreateResultJson, VagCreateResult.class);
-
-        verifyResult(vagCreateResult.result, strVagCreateResultJson, gson);
-
-        return vagCreateResult.result.volumeAccessGroupID;
+        return getSolidFireElement(sfConnection).createVolumeAccessGroup(request).getVolumeAccessGroupID();
     }
 
-    public static void modifySolidFireVag(SolidFireConnection sfConnection, long lVagId, String[] iqns, long[] volumeIds)
-    {
-        final Gson gson = new GsonBuilder().create();
+    public static void modifyVag(SolidFireConnection sfConnection, long vagId, String[] iqns, long[] volumeIds) {
+        ModifyVolumeAccessGroupRequest request = ModifyVolumeAccessGroupRequest.builder()
+                .volumeAccessGroupID(vagId)
+                .optionalInitiators(iqns)
+                .optionalVolumes(Longs.asList(volumeIds).toArray(new Long[volumeIds.length]))
+                .build();
 
-        VagToModify vagToModify = new VagToModify(lVagId, iqns, volumeIds);
-
-        String strVagModifyJson = gson.toJson(vagToModify);
-
-        executeJsonRpc(sfConnection, strVagModifyJson);
+        getSolidFireElement(sfConnection).modifyVolumeAccessGroup(request);
     }
 
-    public static SolidFireVag getSolidFireVag(SolidFireConnection sfConnection, long lVagId)
+    public static SolidFireVag getVag(SolidFireConnection sfConnection, long vagId)
     {
-        final Gson gson = new GsonBuilder().create();
+        ListVolumeAccessGroupsRequest request = ListVolumeAccessGroupsRequest.builder()
+                .optionalStartVolumeAccessGroupID(vagId)
+                .optionalLimit(1L)
+                .build();
 
-        VagToGet vagToGet = new VagToGet(lVagId);
+        VolumeAccessGroup vag = getSolidFireElement(sfConnection).listVolumeAccessGroups(request).getVolumeAccessGroups()[0];
 
-        String strVagToGetJson = gson.toJson(vagToGet);
+        String[] vagIqns = vag.getInitiators();
+        long[] vagVolumeIds = toPrimitive(vag.getVolumes());
 
-        String strVagGetResultJson = executeJsonRpc(sfConnection, strVagToGetJson);
-
-        VagGetResult vagGetResult = gson.fromJson(strVagGetResultJson, VagGetResult.class);
-
-        verifyResult(vagGetResult.result, strVagGetResultJson, gson);
-
-        String[] vagIqns = getVagIqns(vagGetResult, lVagId);
-        long[] vagVolumeIds = getVagVolumeIds(vagGetResult, lVagId);
-
-        return new SolidFireVag(lVagId, vagIqns, vagVolumeIds);
+        return new SolidFireVag(vagId, vagIqns, vagVolumeIds);
     }
 
-    public static List<SolidFireVag> getAllSolidFireVags(SolidFireConnection sfConnection)
+    private static List<SolidFireVag> getAllVags(SolidFireConnection sfConnection)
     {
-        final Gson gson = new GsonBuilder().create();
+        ListVolumeAccessGroupsRequest request = ListVolumeAccessGroupsRequest.builder().build();
 
-        AllVags allVags = new AllVags();
+        VolumeAccessGroup[] vags = getSolidFireElement(sfConnection).listVolumeAccessGroups(request).getVolumeAccessGroups();
 
-        String strAllVagsJson = gson.toJson(allVags);
+        List<SolidFireVag> lstSolidFireVags = new ArrayList<>();
 
-        String strAllVagsGetResultJson = executeJsonRpc(sfConnection, strAllVagsJson);
-
-        VagGetResult allVagsGetResult = gson.fromJson(strAllVagsGetResultJson, VagGetResult.class);
-
-        verifyResult(allVagsGetResult.result, strAllVagsGetResultJson, gson);
-
-        List<SolidFireVag> lstSolidFireVags = new ArrayList<SolidFireVag>();
-
-        if (allVagsGetResult.result.volumeAccessGroups != null ) {
-            for (VagGetResult.Result.Vag vag : allVagsGetResult.result.volumeAccessGroups) {
-                SolidFireVag sfVag = new SolidFireVag(vag.volumeAccessGroupID, vag.initiators, vag.volumes);
+        if (vags != null) {
+            for (VolumeAccessGroup vag : vags) {
+                SolidFireVag sfVag = new SolidFireVag(vag.getVolumeAccessGroupID(), vag.getInitiators(), toPrimitive(vag.getVolumes()));
 
                 lstSolidFireVags.add(sfVag);
             }
@@ -1268,42 +864,26 @@
         return lstSolidFireVags;
     }
 
-    public static void deleteSolidFireVag(SolidFireConnection sfConnection, long lVagId)
-    {
-        final Gson gson = new GsonBuilder().create();
-
-        VagToDelete vagToDelete = new VagToDelete(lVagId);
-
-        String strVagToDeleteJson = gson.toJson(vagToDelete);
-
-        executeJsonRpc(sfConnection, strVagToDeleteJson);
-    }
-
-    public static class SolidFireVag
-    {
+    public static class SolidFireVag {
         private final long _id;
         private final String[] _initiators;
         private final long[] _volumeIds;
 
-        public SolidFireVag(long id, String[] initiators, long[] volumeIds)
-        {
+        SolidFireVag(long id, String[] initiators, long[] volumeIds) {
             _id = id;
             _initiators = initiators;
             _volumeIds = volumeIds;
         }
 
-        public long getId()
-        {
+        public long getId() {
             return _id;
         }
 
-        public String[] getInitiators()
-        {
+        public String[] getInitiators() {
             return _initiators;
         }
 
-        public long[] getVolumeIds()
-        {
+        public long[] getVolumeIds() {
             return _volumeIds;
         }
 
@@ -1327,780 +907,12 @@
                 return false;
             }
 
-            SolidFireVag sfvag = (SolidFireVag)obj;
+            SolidFireVag sfVag = (SolidFireVag)obj;
 
-            if (_id == sfvag._id) {
-                return true;
-            }
-
-            return false;
+            return _id == sfVag._id;
         }
     }
 
-    @SuppressWarnings("unused")
-    private static final class VolumeToGet
-    {
-        private final String method = "ListActiveVolumes";
-        private final VolumeToGetParams params;
-
-        private VolumeToGet(final long lVolumeId)
-        {
-            params = new VolumeToGetParams(lVolumeId);
-        }
-
-        private static final class VolumeToGetParams
-        {
-            private final long startVolumeID;
-            private final long limit = 1;
-
-            private VolumeToGetParams(final long lVolumeId)
-            {
-                startVolumeID = lVolumeId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class VolumesToGetForAccount
-    {
-        private final String method = "ListVolumesForAccount";
-        private final VolumesToGetForAccountParams params;
-
-        private VolumesToGetForAccount(final long lAccountId)
-        {
-            params = new VolumesToGetForAccountParams(lAccountId);
-        }
-
-        private static final class VolumesToGetForAccountParams
-        {
-            private final long accountID;
-
-            private VolumesToGetForAccountParams(final long lAccountId)
-            {
-                accountID = lAccountId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class ListDeletedVolumes
-    {
-        private final String method = "ListDeletedVolumes";
-    }
-
-    @SuppressWarnings("unused")
-    private static final class VolumeToDelete
-    {
-        private final String method = "DeleteVolume";
-        private final VolumeToDeleteParams params;
-
-        private VolumeToDelete(final long lVolumeId) {
-            params = new VolumeToDeleteParams(lVolumeId);
-        }
-
-        private static final class VolumeToDeleteParams {
-            private final long volumeID;
-
-            private VolumeToDeleteParams(final long lVolumeId) {
-                volumeID = lVolumeId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class VolumeToPurge
-    {
-        private final String method = "PurgeDeletedVolume";
-        private final VolumeToPurgeParams params;
-
-        private VolumeToPurge(final long lVolumeId) {
-            params = new VolumeToPurgeParams(lVolumeId);
-        }
-
-        private static final class VolumeToPurgeParams {
-            private final long volumeID;
-
-            private VolumeToPurgeParams(final long lVolumeId) {
-                volumeID = lVolumeId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class SnapshotsToGet
-    {
-        private final String method = "ListSnapshots";
-        private final SnapshotsToGetParams params;
-
-        private SnapshotsToGet(final long lVolumeId) {
-            params = new SnapshotsToGetParams(lVolumeId);
-        }
-
-        private static final class SnapshotsToGetParams {
-            private final long volumeID;
-
-            private SnapshotsToGetParams(final long lVolumeId) {
-                volumeID = lVolumeId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class SnapshotToDelete
-    {
-        private final String method = "DeleteSnapshot";
-        private final SnapshotToDeleteParams params;
-
-        private SnapshotToDelete(final long lSnapshotId) {
-            params = new SnapshotToDeleteParams(lSnapshotId);
-        }
-
-        private static final class SnapshotToDeleteParams {
-            private final long snapshotID;
-
-            private SnapshotToDeleteParams(final long lSnapshotId) {
-                snapshotID = lSnapshotId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class RollbackToInitiate {
-        private final String method = "RollbackToSnapshot";
-        private final RollbackToInitiateParams params;
-
-        private RollbackToInitiate(final long lVolumeId, final long lSnapshotId) {
-            params = new RollbackToInitiateParams(lVolumeId, lSnapshotId);
-        }
-
-        private static final class RollbackToInitiateParams {
-            private final long volumeID;
-            private final long snapshotID;
-
-            private RollbackToInitiateParams(final long lVolumeId, final long lSnapshotId) {
-                volumeID = lVolumeId;
-                snapshotID = lSnapshotId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class AccountToAdd
-    {
-        private final String method = "AddAccount";
-        private final AccountToAddParams params;
-
-        private AccountToAdd(final String strAccountName)
-        {
-            params = new AccountToAddParams(strAccountName);
-        }
-
-        private static final class AccountToAddParams
-        {
-            private final String username;
-
-            private AccountToAddParams(final String strAccountName)
-            {
-                username = strAccountName;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class AccountToGetById
-    {
-        private final String method = "GetAccountByID";
-        private final AccountToGetByIdParams params;
-
-        private AccountToGetById(final long lAccountId)
-        {
-            params = new AccountToGetByIdParams(lAccountId);
-        }
-
-        private static final class AccountToGetByIdParams
-        {
-            private final long accountID;
-
-            private AccountToGetByIdParams(final long lAccountId)
-            {
-                accountID = lAccountId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class AccountToGetByName
-    {
-        private final String method = "GetAccountByName";
-        private final AccountToGetByNameParams params;
-
-        private AccountToGetByName(final String strUsername)
-        {
-            params = new AccountToGetByNameParams(strUsername);
-        }
-
-        private static final class AccountToGetByNameParams
-        {
-            private final String username;
-
-            private AccountToGetByNameParams(final String strUsername)
-            {
-                username = strUsername;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class AccountToRemove {
-        private final String method = "RemoveAccount";
-        private final AccountToRemoveParams params;
-
-        private AccountToRemove(final long lAccountId) {
-            params = new AccountToRemoveParams(lAccountId);
-        }
-
-        private static final class AccountToRemoveParams {
-            private final long accountID;
-
-            private AccountToRemoveParams(final long lAccountId) {
-                accountID = lAccountId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class VagToCreate
-    {
-        private final String method = "CreateVolumeAccessGroup";
-        private final VagToCreateParams params;
-
-        private VagToCreate(final String strVagName, final String[] iqns, final long[] volumeIds)
-        {
-            params = new VagToCreateParams(strVagName, iqns, volumeIds);
-        }
-
-        private static final class VagToCreateParams
-        {
-            private final String name;
-            private final String[] initiators;
-            private final long[] volumes;
-
-            private VagToCreateParams(final String strVagName, final String[] iqns, final long[] volumeIds)
-            {
-                name = strVagName;
-                initiators = iqns;
-                volumes = volumeIds;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class VagToModify
-    {
-        private final String method = "ModifyVolumeAccessGroup";
-        private final VagToModifyParams params;
-
-        private VagToModify(final long lVagName, final String[] iqns, final long[] volumeIds)
-        {
-            params = new VagToModifyParams(lVagName, iqns, volumeIds);
-        }
-
-        private static final class VagToModifyParams
-        {
-            private final long volumeAccessGroupID;
-            private final String[] initiators;
-            private final long[] volumes;
-
-            private VagToModifyParams(final long lVagName, final String[] iqns, final long[] volumeIds)
-            {
-                volumeAccessGroupID = lVagName;
-                initiators = iqns;
-                volumes = volumeIds;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class VagToGet
-    {
-        private final String method = "ListVolumeAccessGroups";
-        private final VagToGetParams params;
-
-        private VagToGet(final long lVagId)
-        {
-            params = new VagToGetParams(lVagId);
-        }
-
-        private static final class VagToGetParams
-        {
-            private final long startVolumeAccessGroupID;
-            private final long limit = 1;
-
-            private VagToGetParams(final long lVagId)
-            {
-                startVolumeAccessGroupID = lVagId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class AllVags
-    {
-        private final String method = "ListVolumeAccessGroups";
-        private final VagToGetParams params;
-
-        private AllVags()
-        {
-            params = new VagToGetParams();
-        }
-
-        private static final class VagToGetParams
-        {}
-    }
-
-    @SuppressWarnings("unused")
-    private static final class VagToDelete
-    {
-        private final String method = "DeleteVolumeAccessGroup";
-        private final VagToDeleteParams params;
-
-        private VagToDelete(final long lVagId) {
-            params = new VagToDeleteParams(lVagId);
-        }
-
-        private static final class VagToDeleteParams {
-            private final long volumeAccessGroupID;
-
-            private VagToDeleteParams(final long lVagId) {
-                volumeAccessGroupID = lVagId;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class AsyncJobToPoll
-    {
-        private final String method = "GetAsyncResult";
-        private final AsyncJobToPollParams params;
-
-        private AsyncJobToPoll(final long asyncHandle)
-        {
-            params = new AsyncJobToPollParams(asyncHandle);
-        }
-
-        private static final class AsyncJobToPollParams
-        {
-            private final long asyncHandle;
-
-            private AsyncJobToPollParams(final long asyncHandle)
-            {
-                this.asyncHandle = asyncHandle;
-            }
-        }
-    }
-
-    private static final class VolumeCreateResult {
-        private Result result;
-
-        private static final class Result {
-            private long volumeID;
-        }
-    }
-
-    private static final class VolumeGetResult {
-        private Result result;
-
-        private static final class Result {
-            private Volume[] volumes;
-
-            private static final class Volume {
-                private long volumeID;
-                private String name;
-                private String iqn;
-                private long accountID;
-                private String status;
-                private boolean enable512e;
-                private Qos qos;
-                private long totalSize;
-
-                private static final class Qos {
-                    private long minIOPS;
-                    private long maxIOPS;
-                    private long burstIOPS;
-                }
-            }
-        }
-    }
-
-    private static final class SnapshotCreateResult {
-        private Result result;
-
-        private static final class Result {
-            private long snapshotID;
-        }
-    }
-
-    private static final class SnapshotsGetResult {
-        private Result result;
-
-        private static final class Result {
-            private Snapshot[] snapshots;
-
-            private static final class Snapshot {
-                private long snapshotID;
-                private String name;
-            }
-        }
-    }
-
-    @SuppressWarnings("unused")
-    private static final class RollbackInitiatedResult {
-        private Result result;
-
-        private static final class Result {
-            private long snapshotID;
-        }
-    }
-
-    private static final class CloneCreateResult {
-        private Result result;
-
-        private static final class Result {
-            private long volumeID;
-            private long asyncHandle;
-        }
-    }
-
-    private static final class AccountAddResult {
-        private Result result;
-
-        private static final class Result {
-            private long accountID;
-        }
-    }
-
-    private static final class AccountGetResult {
-        private Result result;
-
-        private static final class Result {
-            private Account account;
-
-            private static final class Account {
-                private long accountID;
-                private String username;
-                private String initiatorSecret;
-                private String targetSecret;
-            }
-        }
-    }
-
-    private static final class VagCreateResult {
-        private Result result;
-
-        private static final class Result {
-            private long volumeAccessGroupID;
-        }
-    }
-
-    private static final class VagGetResult
-    {
-        private Result result;
-
-        private static final class Result
-        {
-            private Vag[] volumeAccessGroups;
-
-            private static final class Vag
-            {
-                private long volumeAccessGroupID;
-                private String[] initiators;
-                private long[] volumes;
-            }
-        }
-    }
-
-    private static final class AsyncJobResult {
-        private AsyncResult result;
-
-        private static final class AsyncResult
-        {
-            private String status;
-        }
-    }
-
-    private static final class JsonError
-    {
-        private Error error;
-
-        private static final class Error {
-            private String message;
-        }
-    }
-
-    private static DefaultHttpClient getHttpClient(int iPort) {
-        try {
-            SSLContext sslContext = SSLUtils.getSSLContext();
-            X509TrustManager tm = new X509TrustManager() {
-                @Override
-                public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException {
-                }
-
-                @Override
-                public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException {
-                }
-
-                @Override
-                public X509Certificate[] getAcceptedIssuers() {
-                    return null;
-                }
-            };
-
-            sslContext.init(null, new TrustManager[] {tm}, new SecureRandom());
-
-            SSLSocketFactory socketFactory = new SSLSocketFactory(sslContext, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
-            SchemeRegistry registry = new SchemeRegistry();
-
-            registry.register(new Scheme("https", iPort, socketFactory));
-
-            BasicClientConnectionManager mgr = new BasicClientConnectionManager(registry);
-            DefaultHttpClient client = new DefaultHttpClient();
-
-            return new DefaultHttpClient(mgr, client.getParams());
-        } catch (NoSuchAlgorithmException ex) {
-            throw new CloudRuntimeException(ex.getMessage());
-        } catch (KeyManagementException ex) {
-            throw new CloudRuntimeException(ex.getMessage());
-        }
-    }
-
-    private static String executeJsonRpc(SolidFireConnection sfConnection, String strJsonToExecute) {
-        DefaultHttpClient httpClient = null;
-        StringBuilder sb = new StringBuilder();
-
-        try {
-            StringEntity input = new StringEntity(strJsonToExecute);
-
-            input.setContentType("application/json");
-
-            httpClient = getHttpClient(sfConnection.getManagementPort());
-
-            URI uri = new URI("https://" + sfConnection.getManagementVip() + ":" + sfConnection.getManagementPort() + "/json-rpc/6.0");
-            AuthScope authScope = new AuthScope(uri.getHost(), uri.getPort(), AuthScope.ANY_SCHEME);
-            UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(sfConnection.getClusterAdminUsername(), sfConnection.getClusterAdminPassword());
-
-            httpClient.getCredentialsProvider().setCredentials(authScope, credentials);
-
-            HttpPost postRequest = new HttpPost(uri);
-
-            postRequest.setEntity(input);
-
-            HttpResponse response = httpClient.execute(postRequest);
-
-            if (!isSuccess(response.getStatusLine().getStatusCode())) {
-                throw new CloudRuntimeException("Failed on JSON-RPC API call. HTTP error code = " + response.getStatusLine().getStatusCode());
-            }
-
-            try(BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));) {
-                String strOutput;
-                while ((strOutput = br.readLine()) != null) {
-                    sb.append(strOutput);
-                }
-            }catch (IOException ex) {
-                throw new CloudRuntimeException(ex.getMessage());
-            }
-        } catch (UnsupportedEncodingException ex) {
-            throw new CloudRuntimeException(ex.getMessage());
-        } catch (ClientProtocolException ex) {
-            throw new CloudRuntimeException(ex.getMessage());
-        } catch (IOException ex) {
-            throw new CloudRuntimeException(ex.getMessage());
-        } catch (URISyntaxException ex) {
-            throw new CloudRuntimeException(ex.getMessage());
-        } finally {
-            if (httpClient != null) {
-                try {
-                    httpClient.getConnectionManager().shutdown();
-                } catch (Exception t) {
-                    s_logger.info("[ignored]"
-                            + "error shutting down http client: " + t.getLocalizedMessage());
-                }
-            }
-        }
-
-        return sb.toString();
-    }
-
-    private static boolean isSuccess(int iCode) {
-        return iCode >= 200 && iCode < 300;
-    }
-
-    private static void verifyResult(Object result, String strJson, Gson gson) throws IllegalStateException {
-        if (result != null) {
-            return;
-        }
-
-        JsonError jsonError = gson.fromJson(strJson, JsonError.class);
-
-        if (jsonError != null) {
-            throw new IllegalStateException(jsonError.error.message);
-        }
-
-        throw new IllegalStateException("Problem with the following JSON: " + strJson);
-    }
-
-    private static String getVolumeName(VolumeGetResult volumeGetResult, long lVolumeId) {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 && volumeGetResult.result.volumes[0].volumeID == lVolumeId) {
-            return volumeGetResult.result.volumes[0].name;
-        }
-
-        throw new CloudRuntimeException("Could not determine the name of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static String getVolumeIqn(VolumeGetResult volumeGetResult, long lVolumeId) {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 && volumeGetResult.result.volumes[0].volumeID == lVolumeId) {
-            return volumeGetResult.result.volumes[0].iqn;
-        }
-
-        throw new CloudRuntimeException("Could not determine the IQN of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static long getVolumeAccountId(VolumeGetResult volumeGetResult, long lVolumeId) {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 && volumeGetResult.result.volumes[0].volumeID == lVolumeId) {
-            return volumeGetResult.result.volumes[0].accountID;
-        }
-
-        throw new CloudRuntimeException("Could not determine the account ID of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static String getVolumeStatus(VolumeGetResult volumeGetResult, long lVolumeId) {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 && volumeGetResult.result.volumes[0].volumeID == lVolumeId) {
-            return volumeGetResult.result.volumes[0].status;
-        }
-
-        throw new CloudRuntimeException("Could not determine the status of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static boolean getVolumeEnable512e(VolumeGetResult volumeGetResult, long lVolumeId)
-    {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 &&
-            volumeGetResult.result.volumes[0].volumeID == lVolumeId)
-        {
-            return volumeGetResult.result.volumes[0].enable512e;
-        }
-
-        throw new CloudRuntimeException("Could not determine the enable 512 emulation of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static long getVolumeMinIops(VolumeGetResult volumeGetResult, long lVolumeId)
-    {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 &&
-            volumeGetResult.result.volumes[0].volumeID == lVolumeId && volumeGetResult.result.volumes[0].qos != null)
-        {
-            return volumeGetResult.result.volumes[0].qos.minIOPS;
-        }
-
-        throw new CloudRuntimeException("Could not determine the min IOPS of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static long getVolumeMaxIops(VolumeGetResult volumeGetResult, long lVolumeId)
-    {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 &&
-            volumeGetResult.result.volumes[0].volumeID == lVolumeId && volumeGetResult.result.volumes[0].qos != null)
-        {
-            return volumeGetResult.result.volumes[0].qos.maxIOPS;
-        }
-
-        throw new CloudRuntimeException("Could not determine the max IOPS of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static long getVolumeBurstIops(VolumeGetResult volumeGetResult, long lVolumeId)
-    {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 &&
-            volumeGetResult.result.volumes[0].volumeID == lVolumeId && volumeGetResult.result.volumes[0].qos != null)
-        {
-            return volumeGetResult.result.volumes[0].qos.burstIOPS;
-        }
-
-        throw new CloudRuntimeException("Could not determine the burst IOPS of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static long getVolumeTotalSize(VolumeGetResult volumeGetResult, long lVolumeId)
-    {
-        if (volumeGetResult.result.volumes != null && volumeGetResult.result.volumes.length == 1 &&
-            volumeGetResult.result.volumes[0].volumeID == lVolumeId)
-        {
-            return volumeGetResult.result.volumes[0].totalSize;
-        }
-
-        throw new CloudRuntimeException("Could not determine the total size of the volume for volume ID of " + lVolumeId + ".");
-    }
-
-    private static String[] getVagIqns(VagGetResult vagGetResult, long lVagId)
-    {
-        if (vagGetResult.result.volumeAccessGroups != null && vagGetResult.result.volumeAccessGroups.length == 1 &&
-            vagGetResult.result.volumeAccessGroups[0].volumeAccessGroupID == lVagId)
-        {
-            return vagGetResult.result.volumeAccessGroups[0].initiators;
-        }
-
-        throw new CloudRuntimeException("Could not determine the IQNs of the volume access group for volume access group ID of " + lVagId + ".");
-    }
-
-    private static long[] getVagVolumeIds(VagGetResult vagGetResult, long lVagId)
-    {
-        if (vagGetResult.result.volumeAccessGroups != null && vagGetResult.result.volumeAccessGroups.length == 1 &&
-            vagGetResult.result.volumeAccessGroups[0].volumeAccessGroupID == lVagId)
-        {
-            return vagGetResult.result.volumeAccessGroups[0].volumes;
-        }
-
-        throw new CloudRuntimeException("Could not determine the volume IDs of the volume access group for volume access group ID of " + lVagId + ".");
-    }
-
-    // used to parse the "url" parameter when creating primary storage that's based on the SolidFire plug-in with the
-    // name SolidFireUtil.PROVIDER_NAME (as opposed to the SolidFire plug-in with the name SolidFireUtil.SHARED_PROVIDER_NAME)
-    // return a String instance that contains at most the MVIP and SVIP info
-    public static String getModifiedUrl(String originalUrl) {
-        StringBuilder sb = new StringBuilder();
-
-        String delimiter = ";";
-
-        StringTokenizer st = new StringTokenizer(originalUrl, delimiter);
-
-        while (st.hasMoreElements()) {
-            String token = st.nextElement().toString().toUpperCase();
-
-            if (token.startsWith(SolidFireUtil.MANAGEMENT_VIP.toUpperCase()) || token.startsWith(SolidFireUtil.STORAGE_VIP.toUpperCase())) {
-                sb.append(token).append(delimiter);
-            }
-        }
-
-        String modifiedUrl = sb.toString();
-        int lastIndexOf = modifiedUrl.lastIndexOf(delimiter);
-
-        if (lastIndexOf == (modifiedUrl.length() - delimiter.length())) {
-            return modifiedUrl.substring(0, lastIndexOf);
-        }
-
-        return modifiedUrl;
-    }
-
-    public static String getManagementVip(String url) {
-        return getVip(SolidFireUtil.MANAGEMENT_VIP, url);
-    }
-
-    public static String getStorageVip(String url) {
-        return getVip(SolidFireUtil.STORAGE_VIP, url);
-    }
-
-    public static int getManagementPort(String url) {
-        return getPort(SolidFireUtil.MANAGEMENT_VIP, url, DEFAULT_MANAGEMENT_PORT);
-    }
-
-    public static int getStoragePort(String url) {
-        return getPort(SolidFireUtil.STORAGE_VIP, url, DEFAULT_STORAGE_PORT);
-    }
-
     private static String getVip(String keyToMatch, String url) {
         String delimiter = ":";
 
@@ -2137,38 +949,136 @@
         return portNumber;
     }
 
-    public static String getValue(String keyToMatch, String url) {
-        return getValue(keyToMatch, url, true);
+    private static String[] getNewHostIqns(String[] iqns, String[] iqnsToAddOrRemove, boolean add) {
+        if (add) {
+            return getNewHostIqnsAdd(iqns, iqnsToAddOrRemove);
+        }
+
+        return getNewHostIqnsRemove(iqns, iqnsToAddOrRemove);
     }
 
-    public static String getValue(String keyToMatch, String url, boolean throwExceptionIfNotFound) {
-        String delimiter1 = ";";
-        String delimiter2 = "=";
+    private static String[] getNewHostIqnsAdd(String[] iqns, String[] iqnsToAdd) {
+        List<String> lstIqns = iqns != null ? new ArrayList<>(Arrays.asList(iqns)) : new ArrayList<String>();
 
-        StringTokenizer st = new StringTokenizer(url, delimiter1);
-
-        while (st.hasMoreElements()) {
-            String token = st.nextElement().toString();
-
-            int index = token.indexOf(delimiter2);
-
-            if (index == -1) {
-                throw new RuntimeException("Invalid URL format");
-            }
-
-            String key = token.substring(0, index);
-
-            if (key.equalsIgnoreCase(keyToMatch)) {
-                String valueToReturn = token.substring(index + delimiter2.length());
-
-                return valueToReturn;
+        if (iqnsToAdd != null) {
+            for (String iqnToAdd : iqnsToAdd) {
+                if (!lstIqns.contains(iqnToAdd)) {
+                    lstIqns.add(iqnToAdd);
+                }
             }
         }
 
-        if (throwExceptionIfNotFound) {
-            throw new RuntimeException("Key not found in URL");
+        return lstIqns.toArray(new String[0]);
+    }
+
+    private static String[] getNewHostIqnsRemove(String[] iqns, String[] iqnsToRemove) {
+        List<String> lstIqns = iqns != null ? new ArrayList<>(Arrays.asList(iqns)) : new ArrayList<String>();
+
+        if (iqnsToRemove != null) {
+            for (String iqnToRemove : iqnsToRemove) {
+                lstIqns.remove(iqnToRemove);
+            }
         }
 
-        return null;
+        return lstIqns.toArray(new String[0]);
+    }
+
+    private static long[] getNewVolumeIdsAdd(long[] volumeIds, long volumeIdToAdd) {
+        List<Long> lstVolumeIds = new ArrayList<>();
+
+        if (volumeIds != null) {
+            for (long volumeId : volumeIds) {
+                lstVolumeIds.add(volumeId);
+            }
+        }
+
+        if (lstVolumeIds.contains(volumeIdToAdd)) {
+            return volumeIds;
+        }
+
+        lstVolumeIds.add(volumeIdToAdd);
+
+        return toPrimitive(lstVolumeIds.toArray(new Long[lstVolumeIds.size()]));
+    }
+
+    private static long[] getNewVolumeIdsRemove(long[] volumeIds, long volumeIdToRemove) {
+        List<Long> lstVolumeIds = new ArrayList<>();
+
+        if (volumeIds != null) {
+            for (long volumeId : volumeIds) {
+                lstVolumeIds.add(volumeId);
+            }
+        }
+
+        lstVolumeIds.remove(volumeIdToRemove);
+
+        return toPrimitive(lstVolumeIds.toArray(new Long[lstVolumeIds.size()]));
+    }
+
+    private static String[] getIqnsFromHosts(List<? extends Host> hosts) {
+        if (hosts == null || hosts.size() == 0) {
+            throw new CloudRuntimeException("There do not appear to be any hosts in this cluster.");
+        }
+
+        List<String> lstIqns = new ArrayList<>();
+
+        for (Host host : hosts) {
+            lstIqns.add(host.getStorageUrl());
+        }
+
+        return lstIqns.toArray(new String[0]);
+    }
+
+    // this method takes in a collection of hosts and tries to find an existing VAG that has all of them in it
+    // if successful, the VAG is returned; else, a CloudRuntimeException is thrown and this issue should be corrected by an admin
+    private static SolidFireUtil.SolidFireVag getCompatibleVag(SolidFireConnection sfConnection, List<HostVO> hosts) {
+        List<SolidFireUtil.SolidFireVag> sfVags = SolidFireUtil.getAllVags(sfConnection);
+
+        if (sfVags != null) {
+            List<String> hostIqns = new ArrayList<>();
+
+            // where the method we're in is called, hosts should not be null
+            for (HostVO host : hosts) {
+                // where the method we're in is called, host.getStorageUrl() should not be null (it actually should start with "iqn")
+                hostIqns.add(host.getStorageUrl().toLowerCase());
+            }
+
+            for (SolidFireUtil.SolidFireVag sfVag : sfVags) {
+                List<String> lstInitiators = getStringArrayAsLowerCaseStringList(sfVag.getInitiators());
+
+                // lstInitiators should not be returned from getStringArrayAsLowerCaseStringList as null
+                if (lstInitiators.containsAll(hostIqns)) {
+                    return sfVag;
+                }
+            }
+        }
+
+        throw new CloudRuntimeException("Unable to locate the appropriate SolidFire Volume Access Group");
+    }
+
+    private static List<String> getStringArrayAsLowerCaseStringList(String[] aString) {
+        List<String> lstLowerCaseString = new ArrayList<>();
+
+        if (aString != null) {
+            for (String str : aString) {
+                if (str != null) {
+                    lstLowerCaseString.add(str.toLowerCase());
+                }
+            }
+        }
+
+        return lstLowerCaseString;
+    }
+
+    private static Map<String, Object> convertMap(Map<String, String> map) {
+        if (map == null) {
+            return null;
+        }
+
+        Map<String, Object> convertedMap = new HashMap<>();
+
+        convertedMap.putAll(map);
+
+        return convertedMap;
     }
 }
diff --git a/plugins/storage/volume/solidfire/test/resource/storageContext.xml b/plugins/storage/volume/solidfire/test/resource/storageContext.xml
index 8187f29..4090ac3 100644
--- a/plugins/storage/volume/solidfire/test/resource/storageContext.xml
+++ b/plugins/storage/volume/solidfire/test/resource/storageContext.xml
@@ -21,13 +21,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                        http://www.springframework.org/schema/beans/spring-beans.xsd
                          http://www.springframework.org/schema/tx 
-       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+       http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
-       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+       http://www.springframework.org/schema/aop/spring-aop.xsd
                                  http://www.springframework.org/schema/context
-                                          http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                                          http://www.springframework.org/schema/context/spring-context.xsd">
   <context:annotation-config />
   <context:component-scan base-package="org.apache.cloudstack.storage" />
   <context:component-scan base-package="org.apache.cloudstack.engine.subsystem.api.storage" />
diff --git a/plugins/user-authenticators/ldap/pom.xml b/plugins/user-authenticators/ldap/pom.xml
index 7410557..387fe99 100644
--- a/plugins/user-authenticators/ldap/pom.xml
+++ b/plugins/user-authenticators/ldap/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/plugins/user-authenticators/ldap/resources/META-INF/cloudstack/ldap/spring-ldap-context.xml b/plugins/user-authenticators/ldap/resources/META-INF/cloudstack/ldap/spring-ldap-context.xml
index 07d6b38..5949746 100644
--- a/plugins/user-authenticators/ldap/resources/META-INF/cloudstack/ldap/spring-ldap-context.xml
+++ b/plugins/user-authenticators/ldap/resources/META-INF/cloudstack/ldap/spring-ldap-context.xml
@@ -20,10 +20,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="LdapAuthenticator" class="org.apache.cloudstack.ldap.LdapAuthenticator">
         <property name="name" value="LDAP" />
diff --git a/plugins/user-authenticators/md5/pom.xml b/plugins/user-authenticators/md5/pom.xml
index 6e6c671..acfb340 100644
--- a/plugins/user-authenticators/md5/pom.xml
+++ b/plugins/user-authenticators/md5/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/user-authenticators/md5/resources/META-INF/cloudstack/md5/spring-md5-context.xml b/plugins/user-authenticators/md5/resources/META-INF/cloudstack/md5/spring-md5-context.xml
index 4a8e64d..782b113 100644
--- a/plugins/user-authenticators/md5/resources/META-INF/cloudstack/md5/spring-md5-context.xml
+++ b/plugins/user-authenticators/md5/resources/META-INF/cloudstack/md5/spring-md5-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="MD5UserAuthenticator" class="com.cloud.server.auth.MD5UserAuthenticator">
diff --git a/plugins/user-authenticators/pbkdf2/pom.xml b/plugins/user-authenticators/pbkdf2/pom.xml
index 61deed8..cfa81b9 100644
--- a/plugins/user-authenticators/pbkdf2/pom.xml
+++ b/plugins/user-authenticators/pbkdf2/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/user-authenticators/pbkdf2/resources/META-INF/cloudstack/pbkdf2/spring-pbkdf2-context.xml b/plugins/user-authenticators/pbkdf2/resources/META-INF/cloudstack/pbkdf2/spring-pbkdf2-context.xml
index a6272dd..7cc4583 100644
--- a/plugins/user-authenticators/pbkdf2/resources/META-INF/cloudstack/pbkdf2/spring-pbkdf2-context.xml
+++ b/plugins/user-authenticators/pbkdf2/resources/META-INF/cloudstack/pbkdf2/spring-pbkdf2-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
     <bean id="PBKDF2UserAuthenticator" class="org.apache.cloudstack.server.auth.PBKDF2UserAuthenticator">
         <property name="name" value="PBKDF2"/>
diff --git a/plugins/user-authenticators/plain-text/pom.xml b/plugins/user-authenticators/plain-text/pom.xml
index 702cbcb..41754ef 100644
--- a/plugins/user-authenticators/plain-text/pom.xml
+++ b/plugins/user-authenticators/plain-text/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/user-authenticators/plain-text/resources/META-INF/cloudstack/plaintext/spring-plaintext-context.xml b/plugins/user-authenticators/plain-text/resources/META-INF/cloudstack/plaintext/spring-plaintext-context.xml
index 639411a..674bfc7 100644
--- a/plugins/user-authenticators/plain-text/resources/META-INF/cloudstack/plaintext/spring-plaintext-context.xml
+++ b/plugins/user-authenticators/plain-text/resources/META-INF/cloudstack/plaintext/spring-plaintext-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="PlainTextUserAuthenticator" class="com.cloud.server.auth.PlainTextUserAuthenticator">
diff --git a/plugins/user-authenticators/saml2/pom.xml b/plugins/user-authenticators/saml2/pom.xml
index e0cf6f3..8047656 100644
--- a/plugins/user-authenticators/saml2/pom.xml
+++ b/plugins/user-authenticators/saml2/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/plugins/user-authenticators/saml2/resources/META-INF/cloudstack/saml2/spring-saml2-context.xml b/plugins/user-authenticators/saml2/resources/META-INF/cloudstack/saml2/spring-saml2-context.xml
index d3a2194..56ac029 100644
--- a/plugins/user-authenticators/saml2/resources/META-INF/cloudstack/saml2/spring-saml2-context.xml
+++ b/plugins/user-authenticators/saml2/resources/META-INF/cloudstack/saml2/spring-saml2-context.xml
@@ -20,10 +20,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
     <bean id="SAML2UserAuthenticator" class="org.apache.cloudstack.saml.SAML2UserAuthenticator">
         <property name="name" value="SAML2"/>
diff --git a/plugins/user-authenticators/sha256salted/pom.xml b/plugins/user-authenticators/sha256salted/pom.xml
index 44e3878..00d3e6a 100644
--- a/plugins/user-authenticators/sha256salted/pom.xml
+++ b/plugins/user-authenticators/sha256salted/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-plugins</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/plugins/user-authenticators/sha256salted/resources/META-INF/cloudstack/sha256salted/spring-sha256salted-context.xml b/plugins/user-authenticators/sha256salted/resources/META-INF/cloudstack/sha256salted/spring-sha256salted-context.xml
index e379718..53b1a40 100644
--- a/plugins/user-authenticators/sha256salted/resources/META-INF/cloudstack/sha256salted/spring-sha256salted-context.xml
+++ b/plugins/user-authenticators/sha256salted/resources/META-INF/cloudstack/sha256salted/spring-sha256salted-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="SHA256SaltedUserAuthenticator" class="com.cloud.server.auth.SHA256SaltedUserAuthenticator">
diff --git a/pom.xml b/pom.xml
index 94b8cbb..067d486 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
 
   <groupId>org.apache.cloudstack</groupId>
   <artifactId>cloudstack</artifactId>
-  <version>4.9.4.0-SNAPSHOT</version>
+  <version>4.10.1.0-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>Apache CloudStack</name>
   <description>Apache CloudStack is an IaaS (“Infrastructure as a Service”) cloud orchestration platform.</description>
@@ -44,21 +44,14 @@
     <url>https://issues.apache.org/jira/browse/CLOUDSTACK</url>
   </issueManagement>
 
-  <repositories>
-    <repository>
-      <id>juniper-contrail</id>
-      <url>http://juniper.github.io/contrail-maven/snapshots</url>
-    </repository>
-  </repositories>
-
   <properties>
-    <cs.jdk.version>1.7</cs.jdk.version>
+    <cs.jdk.version>1.8</cs.jdk.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
     <cs.log4j.version>1.2.17</cs.log4j.version>
     <cs.log4j.extras.version>1.2.17</cs.log4j.extras.version>
-    <cs.cglib.version>3.2.1</cs.cglib.version>
+    <cs.cglib.version>3.2.4</cs.cglib.version>
     <cs.dbcp.version>1.4</cs.dbcp.version>
     <cs.pool.version>1.6</cs.pool.version>
     <cs.codec.version>1.10</cs.codec.version>
@@ -70,19 +63,19 @@
     <!-- do not forget to also upgrade hamcrest library with junit -->
     <cs.junit.version>4.12</cs.junit.version>
     <cs.hamcrest.version>1.3</cs.hamcrest.version>
-    <cs.junit.dataprovider.version>1.10.0</cs.junit.dataprovider.version>
+    <cs.junit.dataprovider.version>1.12.0</cs.junit.dataprovider.version>
     <cs.bcprov.version>1.59</cs.bcprov.version>
-    <cs.jsch.version>0.1.53</cs.jsch.version>
+    <cs.jsch.version>0.1.54</cs.jsch.version>
     <cs.jpa.version>2.1.1</cs.jpa.version>
     <cs.jasypt.version>1.9.2</cs.jasypt.version>
     <cs.trilead.version>1.0.0-build220</cs.trilead.version>
     <cs.ehcache.version>2.6.11</cs.ehcache.version>
     <cs.gson.version>1.7.2</cs.gson.version>
     <cs.guava-testlib.version>18.0</cs.guava-testlib.version>
-    <cs.guava.version>19.0</cs.guava.version>
+    <cs.guava.version>20.0</cs.guava.version>
     <cs.xapi.version>6.2.0-3.1</cs.xapi.version>
     <cs.httpclient.version>4.5.2</cs.httpclient.version>
-    <cs.httpcore.version>4.4.4</cs.httpcore.version>
+    <cs.httpcore.version>4.4.5</cs.httpcore.version>
     <cs.commons-httpclient.version>3.1</cs.commons-httpclient.version>
     <cs.mysql.version>5.1.34</cs.mysql.version>
     <cs.xstream.version>1.4.9</cs.xstream.version>
@@ -98,17 +91,17 @@
     <cs.jstl-api.version>1.2.1</cs.jstl-api.version>
     <cs.selenium.server.version>1.0-20081010.060147</cs.selenium.server.version>
     <cs.vmware.api.version>6.0</cs.vmware.api.version>
-    <org.springframework.version>3.2.16.RELEASE</org.springframework.version>
+    <org.springframework.version>4.3.4.RELEASE</org.springframework.version>
     <cs.mockito.version>1.10.19</cs.mockito.version>
     <cs.powermock.version>1.6.4</cs.powermock.version>
-    <cs.aws.sdk.version>1.10.64</cs.aws.sdk.version>
+    <cs.aws.sdk.version>1.11.61</cs.aws.sdk.version>
     <cs.jackson.version>2.7.1</cs.jackson.version>
     <cs.lang.version>2.6</cs.lang.version>
     <cs.commons-lang3.version>3.4</cs.commons-lang3.version>
-    <cs.commons-io.version>2.4</cs.commons-io.version>
-    <cs.commons-fileupload.version>1.3.1</cs.commons-fileupload.version>
+    <cs.commons-io.version>2.5</cs.commons-io.version>
+    <cs.commons-fileupload.version>1.3.2</cs.commons-fileupload.version>
     <cs.commons-collections.version>3.2.2</cs.commons-collections.version>
-    <cs.commons-validator.version>1.5.0</cs.commons-validator.version>
+    <cs.commons-validator.version>1.5.1</cs.commons-validator.version>
     <cs.reflections.version>0.9.10</cs.reflections.version>
     <cs.javassist.version>3.18.2-GA</cs.javassist.version>
     <cs.java-ipv6.version>0.16</cs.java-ipv6.version>
@@ -127,10 +120,9 @@
     <cs.joda-time.version>2.8.1</cs.joda-time.version>
     <cs.batik.version>1.8</cs.batik.version>
     <cs.servicemix.version>2.3.4_1</cs.servicemix.version>
-    <cs.jetty.version>9.2.15.v20160210</cs.jetty.version>
+    <cs.jetty.version>9.2.20.v20161216</cs.jetty.version>
     <cs.cxf.version>3.1.4</cs.cxf.version>
-    <cs.groovy.version>2.4.6</cs.groovy.version>
-    <cs.apache-jsp.version>9.2.15.v20160210</cs.apache-jsp.version>
+    <cs.groovy.version>2.4.7</cs.groovy.version>
     <cs.nitro.version>10.1</cs.nitro.version>
   </properties>
 
@@ -224,11 +216,6 @@
   <dependencyManagement>
     <dependencies>
       <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>apache-jsp</artifactId>
-        <version>${cs.apache-jsp.version}</version>
-      </dependency>
-      <dependency>
         <groupId>org.codehaus.groovy</groupId>
         <artifactId>groovy-all</artifactId>
         <version>${cs.groovy.version}</version>
@@ -450,12 +437,12 @@
       <dependency>
         <groupId>org.aspectj</groupId>
         <artifactId>aspectjtools</artifactId>
-        <version>1.8.9</version>
+        <version>1.8.10</version>
       </dependency>
       <dependency>
         <groupId>org.aspectj</groupId>
         <artifactId>aspectjweaver</artifactId>
-        <version>1.8.9</version>
+        <version>1.8.10</version>
       </dependency>
       <dependency>
         <groupId>org.apache.axis</groupId>
@@ -480,12 +467,12 @@
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
-        <version>1.7.21</version>
+        <version>1.7.22</version>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-log4j12</artifactId>
-        <version>1.7.21</version>
+        <version>1.7.22</version>
       </dependency>
     </dependencies>
   </dependencyManagement>
@@ -882,6 +869,7 @@
               <exclude>tools/devcloud/src/deps/boxes/basebox-build/preseed.cfg</exclude>
               <exclude>tools/marvin/Marvin.egg-info/*</exclude>
               <exclude>ui/css/token-input-facebook.css</exclude>
+              <exclude>ui/l10n/*</exclude>
               <exclude>ui/lib/flot/jquery.colorhelpers.js</exclude>
               <exclude>ui/lib/flot/jquery.flot.crosshair.js</exclude>
               <exclude>ui/lib/flot/jquery.flot.fillbetween.js</exclude>
diff --git a/python/lib/cloudutils/serviceConfigServer.py b/python/lib/cloudutils/serviceConfigServer.py
index dce85a0..c975f6e 100644
--- a/python/lib/cloudutils/serviceConfigServer.py
+++ b/python/lib/cloudutils/serviceConfigServer.py
@@ -89,6 +89,12 @@
                 if os.path.exists("/etc/cloudstack/management/server.xml"):
                     bash("rm -f /etc/cloudstack/management/server.xml")
                 bash("ln -s /etc/cloudstack/management/server7-ssl.xml /etc/cloudstack/management/server.xml")
+                if os.path.exists("/usr/share/tomcat7/bin"):
+                    bash("rm -f /usr/share/cloudstack-management/bin")
+                    bash("ln -s /usr/share/tomcat7/bin /usr/share/cloudstack-management/bin")
+                if os.path.exists("/usr/share/tomcat7/lib"):
+                    bash("rm -f /usr/share/cloudstack-management/lib")
+                    bash("ln -s /usr/share/tomcat7/lib /usr/share/cloudstack-management/lib")
             else:
                 if not os.path.exists("/etc/cloudstack/management/server-ssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-ssl.conf"):
                     raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-ssl.xml or /etc/cloudstack/management/tomcat6-ssl.conf, https enable failed")
@@ -98,6 +104,12 @@
                     bash("rm -f /etc/cloudstack/management/tomcat6.conf")
                 bash("ln -s /etc/cloudstack/management/server-ssl.xml /etc/cloudstack/management/server.xml")
                 bash("ln -s /etc/cloudstack/management/tomcat6-ssl.conf /etc/cloudstack/management/tomcat6.conf")
+                if os.path.exists("/usr/share/tomcat6/bin"):
+                    bash("rm -f /usr/share/cloudstack-management/bin")
+                    bash("ln -s /usr/share/tomcat6/bin /usr/share/cloudstack-management/bin")
+                if os.path.exists("/usr/share/tomcat6/lib"):
+                    bash("rm -f /usr/share/cloudstack-management/lib")
+                    bash("ln -s /usr/share/tomcat6/lib /usr/share/cloudstack-management/lib")
             if not bash("iptables-save |grep PREROUTING | grep 6443").isSuccess():
                 bash("iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 6443")
         else:
@@ -107,6 +119,12 @@
                 if os.path.exists("/etc/cloudstack/management/server.xml"):
                     bash("rm -f /etc/cloudstack/management/server.xml")
                 bash("ln -s /etc/cloudstack/management/server7-nonssl.xml /etc/cloudstack/management/server.xml")
+                if os.path.exists("/usr/share/tomcat7/bin"):
+                    bash("rm -f /usr/share/cloudstack-management/bin")
+                    bash("ln -s /usr/share/tomcat7/bin /usr/share/cloudstack-management/bin")
+                if os.path.exists("/usr/share/tomcat7/lib"):
+                    bash("rm -f /usr/share/cloudstack-management/lib")
+                    bash("ln -s /usr/share/tomcat7/lib /usr/share/cloudstack-management/lib")
             else:
                 if not os.path.exists("/etc/cloudstack/management/server-nonssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-nonssl.conf"):
                     raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-nonssl.xml or /etc/cloudstack/management/tomcat6-nonssl.conf, https enable failed")
@@ -116,6 +134,12 @@
                     bash("rm -f /etc/cloudstack/management/tomcat6.conf")
                 bash("ln -s /etc/cloudstack/management/server-nonssl.xml /etc/cloudstack/management/server.xml")
                 bash("ln -s /etc/cloudstack/management/tomcat6-nonssl.conf /etc/cloudstack/management/tomcat6.conf")
+                if os.path.exists("/usr/share/tomcat6/bin"):
+                    bash("rm -f /usr/share/cloudstack-management/bin")
+                    bash("ln -s /usr/share/tomcat6/bin /usr/share/cloudstack-management/bin")
+                if os.path.exists("/usr/share/tomcat6/lib"):
+                    bash("rm -f /usr/share/cloudstack-management/lib")
+                    bash("ln -s /usr/share/tomcat6/lib /usr/share/cloudstack-management/lib")
         bash("touch /var/run/cloudstack-management.pid")
         bash("chown cloud.cloud /var/run/cloudstack-management.pid")
         #distro like sl 6.1 needs this folder, or tomcat6 failed to start
@@ -137,9 +161,8 @@
         except:
             pass
 
-        self.syscfg.svo.stopService("cloudstack-management")
-
         if self.syscfg.env.noStart == False:
+            self.syscfg.svo.stopService("cloudstack-management")
             if self.syscfg.svo.enableService("cloudstack-management"):
                 return True
             else:
diff --git a/quickcloud/pom.xml b/quickcloud/pom.xml
index 6f0ed65..6017818 100644
--- a/quickcloud/pom.xml
+++ b/quickcloud/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-maven-standard</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../maven-standard/pom.xml</relativePath>
   </parent>
 </project>
diff --git a/quickcloud/src/main/resources/META-INF/cloudstack/core/spring-quickcloud-core-context-override.xml b/quickcloud/src/main/resources/META-INF/cloudstack/core/spring-quickcloud-core-context-override.xml
index 35e4cbe..6074ea1 100644
--- a/quickcloud/src/main/resources/META-INF/cloudstack/core/spring-quickcloud-core-context-override.xml
+++ b/quickcloud/src/main/resources/META-INF/cloudstack/core/spring-quickcloud-core-context-override.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
     <bean id="consoleProxyManagerImpl" class="com.cloud.consoleproxy.StaticConsoleProxyManager" />
diff --git a/requirements.txt b/requirements.txt
index f5c7666..4485f5d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -19,3 +19,6 @@
 cloudmonkey
 
 # Marvin dependencies are installed via its bundle
+
+# Install the SolidFire SDK for Python
+solidfire-sdk-python
\ No newline at end of file
diff --git a/scripts/installer/windows/client.wxs b/scripts/installer/windows/client.wxs
index f5aec48..91b15fb 100644
--- a/scripts/installer/windows/client.wxs
+++ b/scripts/installer/windows/client.wxs
@@ -12,12 +12,6 @@
     <Fragment>
         <DirectoryRef Id="WEBAPPS">
             <Directory Id="dir96B1059B78BC5220348BC64D2C915517" Name="client">
-                <Component Id="cmp6F4C0541A24255F55077C2F2B9EA1716" Guid="{580A1DC7-692A-4C5E-BEFF-859FAEF9A4DD}">
-                    <File Id="filE25D632D05B768505A4E7DD377130748" KeyPath="yes" Source="!(wix.SourceClient)\dictionary.jsp" />
-                </Component>
-                <Component Id="cmpA3EAE442A4EFCD423DEDE8C08275003B" Guid="{02C33DD0-F4B0-496B-AA37-EF8D398B3B04}">
-                    <File Id="fil3725B99C98A189665F86E4F12796F408" KeyPath="yes" Source="!(wix.SourceClient)\index.jsp" />
-                </Component>
                 <Directory Id="dir1ACEF08E1E39353E790054E32AAB395B" Name="css">
                     <Component Id="cmp37A6D01A784CC885922881D8CC3D5BB8" Guid="{C7CDB7FC-BBC3-4D16-8841-0ADAAED648DA}">
                         <File Id="fil057A7F1A7D66E761998D3D3A2F236950" KeyPath="yes" Source="!(wix.SourceClient)\css\cloudstack3-ie7.css" />
diff --git a/scripts/storage/qcow2/importmpl.sh b/scripts/storage/qcow2/importmpl.sh
index 4e7cdae..67eefa8 100755
--- a/scripts/storage/qcow2/importmpl.sh
+++ b/scripts/storage/qcow2/importmpl.sh
@@ -105,13 +105,13 @@
 
 if [[ "$uflag" == "1" && "$rflag" != "1" ]] 
 then
-  rttmplt=http://download.cloud.com/templates/builtin/a88232bf-6a18-38e7-aeee-c1702725079f.qcow2.bz2
+  rttmplt=http://download.cloudstack.org/templates/builtin/a88232bf-6a18-38e7-aeee-c1702725079f.qcow2.bz2
   echo "download routing template from $rttmplt"
 fi
 
 if [[ "$uflag" == "1" && "$vflag" != "1" ]] 
 then
-  vmtmplt=http://download.cloud.com/templates/builtin/eec2209b-9875-3c8d-92be-c001bd8a0faf.qcow2.bz2
+  vmtmplt=http://download.cloudstack.org/templates/builtin/eec2209b-9875-3c8d-92be-c001bd8a0faf.qcow2.bz2
   echo "download cnetos template from $vmtmplt"
 fi
 
diff --git a/scripts/vm/hypervisor/kvm/setup_agent.sh b/scripts/vm/hypervisor/kvm/setup_agent.sh
index 243f4a2..d55c6ad 100755
--- a/scripts/vm/hypervisor/kvm/setup_agent.sh
+++ b/scripts/vm/hypervisor/kvm/setup_agent.sh
@@ -38,7 +38,7 @@
                 exit 1
             fi 
         fi
-        wget -N -P /etc/yum.repos.d/ http://download.cloud.com/foss/fedora/cloud.repo
+        wget -N -P /etc/yum.repos.d/ http://download.cloudstack.org/foss/fedora/cloud.repo
         if [ $? -gt 0 ]
         then
             printf "Failed to download repo"
@@ -99,7 +99,7 @@
                 exit 1
             fi 
         fi
-        wget -N -P=/etc/yum.repos.d/ http://download.cloud.com/foss/fedora/cloud.repo
+        wget -N -P=/etc/yum.repos.d/ http://download.cloudstack.org/foss/fedora/cloud.repo
         if [ $? -gt 0 ]
         then
             printf "Failed to download repo"
diff --git a/scripts/vm/hypervisor/xenserver/vmops b/scripts/vm/hypervisor/xenserver/vmops
index 93d2af2..0f3af24 100755
--- a/scripts/vm/hypervisor/xenserver/vmops
+++ b/scripts/vm/hypervisor/xenserver/vmops
@@ -42,9 +42,10 @@
 def echo(fn):
     def wrapped(*v, **k):
         name = fn.__name__
-        logging.debug("#### CLOUD enter  %s ####" % name )
+        #command string is logged in SMlog, so method enter/exit logging into SMlog will help for debugging
+        util.SMlog("#### CLOUD enter  %s ####" % name )
         res = fn(*v, **k)
-        logging.debug("#### CLOUD exit  %s ####" % name )
+        util.SMlog("#### CLOUD exit  %s ####" % name )
         return res
     return wrapped
 
@@ -232,28 +233,51 @@
 
     return txt
 
+#using all the iptables chain names length to 24 because cleanup_rules groups the vm chain excluding -def,-eg
+#to avoid multiple iptables chains for single vm, there using length 24
 def chain_name(vm_name):
     if vm_name.startswith('i-') or vm_name.startswith('r-'):
         if vm_name.endswith('untagged'):
             return '-'.join(vm_name.split('-')[:-1])
-    if len(vm_name) > 28:
-        vm_name = vm_name[0:27]
+    if len(vm_name) > 25:
+        vm_name = vm_name[0:24]
     return vm_name
 
 def chain_name_def(vm_name):
+    #iptables chain length max is 29 chars
+    if len(vm_name) > 25:
+        vm_name = vm_name[0:24]
+
     if vm_name.startswith('i-'):
         if vm_name.endswith('untagged'):
-            return '-'.join(vm_name.split('-')[:-2]) + "-def"
-        return '-'.join(vm_name.split('-')[:-1]) + "-def"
+            return '-'.join(vm_name.split('-')[:-1]) + "-def"
+        return vm_name + "-def"
 
     if len(vm_name) > 28:
         vm_name = vm_name[0:27]
     return vm_name
 
 def egress_chain_name(vm_name):
-    name = chain_name(vm_name) + "-eg"
-    if len(name) > 28:
-        name = name[0:27]
+    #iptables chain length max is 29 chars
+    name = chain_name(vm_name)
+    name = name+"-eg"
+    return name
+
+#chain name length is 14 because it has protocol and ports appends
+def chain_name_ipset(vm_name):
+    if vm_name.startswith('i-') or vm_name.startswith('r-'):
+        if vm_name.endswith('untagged'):
+            return ''.join(vm_name.split('')[:-1])
+        if len(vm_name) > 14:
+            vm_name = vm_name[0:13]
+    return vm_name
+
+def egress_chain_name_ipset(vm_name):
+    name = chain_name_ipset(vm_name) + "-e"
+    return name
+
+def ingress_chain_name_ipset(vm_name):
+    name = chain_name_ipset(vm_name)
     return name
 
 @echo
@@ -1109,21 +1133,37 @@
     hostrec = session.xenapi.host.get_record(thishost[0])
     vms = hostrec.get('resident_VMs')
     resident_vms = [session.xenapi.VM.get_name_label(x) for x in vms]
-    logging.debug('cleanup_rules: found %s resident vms on this host %s' % (len(resident_vms)-1, hostname[0]))
+    util.SMlog('cleanup_rules: resident_vms= %s' %resident_vms)
+    util.SMlog('cleanup_rules: found %s resident vms on this host %s' % (len(resident_vms)-1, hostname[0]))
 
-    chainscmd = "iptables-save | grep '^:' | awk '{print $1}' | cut -d':' -f2 | sed 's/-def/-%s/'| sed 's/-eg//' | sort|uniq" % instance
+    chainscmd = "iptables-save | grep '^:' | awk '{print $1}' | cut -d':' -f2 | sed 's/-def//'| sed 's/-eg//' | sort|uniq"
     chains = util.pread2(['/bin/bash', '-c', chainscmd]).split('\n')
     vmchains = [ch  for ch in chains if 1 in [ ch.startswith(c) for c in ['r-', 'i-', 's-', 'v-', 'l-']]]
-    logging.debug('cleanup_rules: found %s iptables chains for vms on this host %s' % (len(vmchains), hostname[0]))
+    util.SMlog('cleanup_rules: vmchains= %s' %vmchains)
+    util.SMlog('cleanup_rules: found %s iptables chains for vms on this host %s' % (len(vmchains), hostname[0]))
     cleaned = 0
     cleanup = []
     for chain in vmchains:
         vmname = chain
-        if vmname not in resident_vms:
+        vmpresent = False
+        #looping intentionally because if vmaname in resident_vms is not greedy.
+        #after trimming the vm names which more than 29 chars, resident vm name and iptables chain name is substring of
+        #of resident vm.
+        for rvm in resident_vms:
+            if vmname  in rvm:
+                vmpresent = True
+                break
+
+        if vmpresent is False:
             vmname = chain + "-untagged"
-            if vmname not in resident_vms:
-                logging.debug("vm " + chain + " is not running on this host, cleaning up")
-                cleanup.append(chain)
+            for rvm in resident_vms:
+                if vmname  in rvm:
+                    vmpresent = True
+                    break
+        #vm chain is present but vm is not running on the host. So remove the rules
+        if vmpresent is False:
+            logging.debug("vm " + chain + " is not running on this host, cleaning up")
+            cleanup.append(chain)
 
     for vm_name in cleanup:
         destroy_network_rules_for_vm(session, {'vmName':vm_name})
@@ -1411,10 +1451,14 @@
 
         if token_type == 'E':
             vmchain = egress_chain_name(vm_name)
+            #ipset chain name
+            ipset_chain = egress_chain_name_ipset(vm_name)
             action = "RETURN"
             direction = "dst"
             egressrules = egressrules + 1
         else:
+            #ipset chain name
+            ipset_chain = ingress_chain_name_ipset(vm_name)
             vmchain = chain_name(vm_name)
             action = "ACCEPT"
             direction = "src"
@@ -1424,9 +1468,10 @@
             allow_any = True
         port_range = start + ":" + end
         if cidrs:
-            ipsetname = vmchain + "_" + protocol + "_" + start + "_" + end
+            #create seperate ipset name
+            ipsetname = ipset_chain + "" + protocol[0:1] + "" + start + "_" + end
             if start == "-1":
-                ipsetname = vmchain + "_" + protocol + "_any"
+                ipsetname = ipset_chain + "_" + protocol[0:1] + "_any"
 
             if ipset(ipsetname, protocol, start, end, cidrs) == False:
                 logging.debug(" failed to create ipset for rule " + str(tokens))
diff --git a/scripts/vm/network/security_group.py b/scripts/vm/network/security_group.py
index 8283256..d95e35d 100755
--- a/scripts/vm/network/security_group.py
+++ b/scripts/vm/network/security_group.py
@@ -28,6 +28,9 @@
 import libvirt
 import fcntl
 import time
+from netaddr import IPAddress, IPNetwork
+from netaddr.core import AddrFormatError
+
 
 logpath = "/var/run/cloud/"        # FIXME: Logs should reside in /var/log/cloud
 lock_file = "/var/lock/cloudstack_security_group.lock"
@@ -105,7 +108,7 @@
 
     return result
 '''
-def virshlist(*states):
+def virshlist(states):
 
     libvirt_states={ 'running'  : libvirt.VIR_DOMAIN_RUNNING,
                      'shutoff'  : libvirt.VIR_DOMAIN_SHUTOFF,
@@ -178,33 +181,45 @@
 
     return xml
 
+
+def ipv6_link_local_addr(mac=None):
+    eui64 = re.sub(r'[.:-]', '', mac).lower()
+    eui64 = eui64[0:6] + 'fffe' + eui64[6:]
+    eui64 = hex(int(eui64[0:2], 16) ^ 2)[2:].zfill(2) + eui64[2:]
+    return IPAddress('fe80::' + ':'.join(re.findall(r'.{4}', eui64)))
+
+
 def destroy_network_rules_for_vm(vm_name, vif=None):
-    vmchain = vm_name
+    vmchain = iptables_chain_name(vm_name)
     vmchain_egress = egress_chain_name(vm_name)
     vmchain_default = None
+    vm_ipsetname=ipset_chain_name(vm_name)
 
     delete_rules_for_vm_in_bridge_firewall_chain(vm_name)
     if vm_name.startswith('i-'):
         vmchain_default = '-'.join(vm_name.split('-')[:-1]) + "-def"
 
-    destroy_ebtables_rules(vmchain, vif)
+    destroy_ebtables_rules(vm_name, vif)
 
     chains = [vmchain_default, vmchain, vmchain_egress]
     for chain in filter(None, chains):
         try:
             execute("iptables -F " + chain)
+            execute('ip6tables -F ' + chain)
         except:
             logging.debug("Ignoring failure to flush chain: " + chain)
 
     for chain in filter(None, chains):
         try:
             execute("iptables -X " + chain)
+            execute('ip6tables -X ' + chain)
         except:
             logging.debug("Ignoring failure to delete chain: " + chain)
 
     try:
-        execute("ipset -F " + vm_name)
-        execute("ipset -X " + vm_name)
+        for ipset in [vm_ipsetname, vm_ipsetname + '-6']:
+            execute('ipset -F ' + ipset)
+            execute('ipset -X ' + ipset)
     except:
         logging.debug("Ignoring failure to delete ipset " + vmchain)
 
@@ -227,7 +242,8 @@
     return 'true'
 
 def destroy_ebtables_rules(vm_name, vif):
-    delcmd = "ebtables -t nat -L PREROUTING | grep " + vm_name
+    eb_vm_chain=ebtables_chain_name(vm_name)
+    delcmd = "ebtables -t nat -L PREROUTING | grep " + eb_vm_chain
     delcmds = []
     try:
         delcmds = filter(None, execute(delcmd).split('\n'))
@@ -236,7 +252,7 @@
         pass
     postcmds = []
     try:
-        postcmd = "ebtables -t nat -L POSTROUTING | grep " + vm_name
+        postcmd = "ebtables -t nat -L POSTROUTING | grep " + eb_vm_chain
         postcmds = filter(None, execute(postcmd).split('\n'))
         postcmds = ["-D POSTROUTING " + x for x in postcmds]
     except:
@@ -249,7 +265,7 @@
             execute("ebtables -t nat " + cmd)
         except:
             logging.debug("Ignoring failure to delete ebtables rules for vm " + vm_name)
-    chains = [vm_name+"-in", vm_name+"-out", vm_name+"-in-ips", vm_name+"-out-ips"]
+    chains = [eb_vm_chain+"-in", eb_vm_chain+"-out", eb_vm_chain+"-in-ips", eb_vm_chain+"-out-ips"]
     for chain in chains:
         try:
             execute("ebtables -t nat -F " + chain)
@@ -258,10 +274,11 @@
             logging.debug("Ignoring failure to delete ebtables chain for vm " + vm_name)
 
 def default_ebtables_rules(vm_name, vm_ip, vm_mac, vif):
-    vmchain_in = vm_name + "-in"
-    vmchain_out = vm_name + "-out"
-    vmchain_in_ips = vm_name + "-in-ips"
-    vmchain_out_ips = vm_name + "-out-ips"
+    eb_vm_chain=ebtables_chain_name(vm_name)
+    vmchain_in = eb_vm_chain + "-in"
+    vmchain_out = eb_vm_chain + "-out"
+    vmchain_in_ips = eb_vm_chain + "-in-ips"
+    vmchain_out_ips = eb_vm_chain + "-out-ips"
 
     for chain in [vmchain_in, vmchain_out, vmchain_in_ips, vmchain_out_ips]:
         try:
@@ -309,7 +326,7 @@
 def default_network_rules_systemvm(vm_name, localbrname):
     bridges = getBridges(vm_name)
     domid = getvmId(vm_name)
-    vmchain = vm_name
+    vmchain = iptables_chain_name(vm_name)
 
     delete_rules_for_vm_in_bridge_firewall_chain(vm_name)
 
@@ -371,16 +388,16 @@
 
     return result
 
-def create_ipset_forvm (ipsetname):
+def create_ipset_forvm(ipsetname, type='iphash', family='inet'):
     result = True
     try:
         logging.debug("Creating ipset chain .... " + ipsetname)
         execute("ipset -F " + ipsetname)
         execute("ipset -X " + ipsetname)
-        execute("ipset -N " + ipsetname + " iphash")
     except:
         logging.debug("ipset chain not exists creating.... " + ipsetname)
-        execute("ipset -N " + ipsetname + " iphash")
+    finally:
+        execute('ipset -N ' + ipsetname + ' ' + type + ' family ' + family)
 
     return result
 
@@ -388,10 +405,10 @@
     result = True
     for ip in ips:
         try:
-            logging.debug("vm ip " + ip)
-            execute("ipset " + action + " " + ipsetname + " " + ip)
+            logging.debug("vm ip " + str(ip))
+            execute("ipset " + action + " " + ipsetname + " " + str(ip))
         except:
-            logging.debug("vm ip already in ip set " + ip)
+            logging.debug("vm ip already in ip set " + str(ip))
             continue
 
     return result
@@ -411,8 +428,9 @@
     return 'true'
 
 def ebtables_rules_vmip (vmname, ips, action):
-    vmchain_inips = vmname + "-in-ips"
-    vmchain_outips = vmname + "-out-ips"
+    eb_vm_chain=ebtables_chain_name(vmname)
+    vmchain_inips = eb_vm_chain + "-in-ips"
+    vmchain_outips = eb_vm_chain + "-out-ips"
 
     if action and action.strip() == "-A":
         action = "-I"
@@ -427,7 +445,7 @@
         except:
             logging.debug("Failed to program ebtables rules for secondary ip %s for vm %s with action %s" % (ip, vmname, action))
 
-def default_network_rules(vm_name, vm_id, vm_ip, vm_mac, vif, brname, sec_ips):
+def default_network_rules(vm_name, vm_id, vm_ip, vm_ip6, vm_mac, vif, brname, sec_ips):
     if not addFWFramework(brname):
         return False
 
@@ -435,29 +453,26 @@
     brfw = getBrfw(brname)
     domID = getvmId(vm_name)
     delete_rules_for_vm_in_bridge_firewall_chain(vmName)
-    vmchain = vm_name
+    vmchain = iptables_chain_name(vm_name)
     vmchain_egress = egress_chain_name(vm_name)
     vmchain_default = '-'.join(vmchain.split('-')[:-1]) + "-def"
+    ipv6_link_local = ipv6_link_local_addr(vm_mac)
 
-    destroy_ebtables_rules(vmName, vif)
+    destroy_ebtables_rules(vm_name, vif)
 
-    try:
-        execute("iptables -N " + vmchain)
-    except:
-        execute("iptables -F " + vmchain)
+    for chain in [vmchain, vmchain_egress, vmchain_default]:
+        try:
+            execute('iptables -N ' + chain)
+        except:
+            execute('iptables -F ' + chain)
 
-    try:
-        execute("iptables -N " + vmchain_egress)
-    except:
-        execute("iptables -F " + vmchain_egress)
-
-    try:
-        execute("iptables -N " + vmchain_default)
-    except:
-        execute("iptables -F " + vmchain_default)
+        try:
+            execute('ip6tables -N ' + chain)
+        except:
+            execute('ip6tables -F ' + chain)
 
     action = "-A"
-    vmipsetName = vm_name
+    vmipsetName = ipset_chain_name(vm_name)
     #create ipset and add vm ips to that ip set
     if create_ipset_forvm(vmipsetName) == False:
        logging.debug(" failed to create ipset for rule " + str(tokens))
@@ -501,7 +516,7 @@
         logging.debug("Failed to program default rules for vm " + vm_name)
         return 'false'
 
-    default_ebtables_rules(vmchain, vm_ip, vm_mac, vif)
+    default_ebtables_rules(vm_name, vm_ip, vm_mac, vif)
     #default ebtables rules for vm secondary ips
     ebtables_rules_vmip(vm_name, ips, "-I")
 
@@ -509,13 +524,85 @@
         if write_rule_log_for_vm(vmName, vm_id, vm_ip, domID, '_initial_', '-1') == False:
             logging.debug("Failed to log default network rules, ignoring")
 
+    vm_ip6_set_name = vm_name + '-6'
+
+    if not create_ipset_forvm(vm_ip6_set_name, family='inet6', type='hash:net'):
+       logging.debug(" failed to create ivp6 ipset for rule " + str(tokens))
+       return 'false'
+
+    vm_ip6_addr = [ipv6_link_local]
+    try:
+        ip6 = IPAddress(vm_ip6)
+        if ip6.version == 6:
+            vm_ip6_addr.append(ip6)
+    except AddrFormatError:
+        pass
+
+    add_to_ipset(vm_ip6_set_name, vm_ip6_addr, action)
+
+    try:
+        execute('ip6tables -A ' + brfw + '-OUT' + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -j ' + vmchain_default)
+        execute('ip6tables -A ' + brfw + '-IN' + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -j ' + vmchain_default)
+        execute('ip6tables -A ' + vmchain_default + ' -m state --state RELATED,ESTABLISHED -j ACCEPT')
+
+        # Allow Instances to receive Router Advertisements, send out solicitations, but block any outgoing Advertisement from a Instance
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' --src fe80::/64 --dst ff02::1 -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' --dst ff02::2 -p icmpv6 --icmpv6-type router-solicitation -m hl --hl-eq 255 -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p icmpv6 --icmpv6-type router-advertisement -j DROP')
+
+        # Allow neighbor solicitations and advertisements
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p icmpv6 --icmpv6-type neighbor-advertisement -m set --match-set ' + vm_ip6_set_name + ' src -m hl --hl-eq 255 -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT')
+
+        # Packets to allow as per RFC4890
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p icmpv6 --icmpv6-type packet-too-big -m set --match-set ' + vm_ip6_set_name + ' src -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT')
+
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p icmpv6 --icmpv6-type destination-unreachable -m set --match-set ' + vm_ip6_set_name + ' src -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT')
+
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p icmpv6 --icmpv6-type time-exceeded -m set --match-set ' + vm_ip6_set_name + ' src -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT')
+
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p icmpv6 --icmpv6-type parameter-problem -m set --match-set ' + vm_ip6_set_name + ' src -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT')
+
+        # MLDv2 discovery packets
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p icmpv6 --dst ff02::16 -j RETURN')
+
+        # Allow Instances to send out DHCPv6 client messages, but block server messages
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p udp --sport 546 --dst ff02::1:2 --src ' + str(ipv6_link_local) + ' -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -p udp --src fe80::/64 --dport 546 --dst ' + str(ipv6_link_local) + ' -j ACCEPT')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p udp --sport 547 ! --dst fe80::/64 -j DROP')
+
+        # Always allow outbound DNS over UDP and TCP
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p udp --dport 53 -m set --match-set ' + vm_ip6_set_name + ' src -j RETURN')
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -p tcp --dport 53 -m set --match-set ' + vm_ip6_set_name + ' src -j RETURN')
+
+        # Prevent source address spoofing
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -m set ! --match-set ' + vm_ip6_set_name + ' src -j DROP')
+
+        # Send proper traffic to the egress chain of the Instance
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-in ' + vif + ' -m set --match-set ' + vm_ip6_set_name + ' src -j ' + vmchain_egress)
+
+        execute('ip6tables -A ' + vmchain_default + ' -m physdev --physdev-is-bridged --physdev-out ' + vif + ' -j ' + vmchain)
+
+        # Drop all other traffic into the Instance
+        execute('ip6tables -A ' + vmchain + ' -j DROP')
+    except:
+        logging.debug('Failed to program default rules for vm ' + vm_name)
+        return 'false'
+
     logging.debug("Programmed default rules for vm " + vm_name)
     return 'true'
 
 def post_default_network_rules(vm_name, vm_id, vm_ip, vm_mac, vif, brname, dhcpSvr, hostIp, hostMacAddr):
     vmchain_default = '-'.join(vm_name.split('-')[:-1]) + "-def"
-    vmchain_in = vm_name + "-in"
-    vmchain_out = vm_name + "-out"
+    iptables_vmchain=iptables_chain_name(vm_name)
+    vmchain_in = iptables_vmchain + "-in"
+    vmchain_out = iptables_vmchain + "-out"
     domID = getvmId(vm_name)
     try:
         execute("iptables -I " + vmchain_default + " 4 -m physdev --physdev-is-bridged --physdev-in " + vif + " --source " + vm_ip + " -j ACCEPT")
@@ -541,12 +628,14 @@
         pass
     if write_rule_log_for_vm(vm_name, vm_id, vm_ip, domID, '_initial_', '-1') == False:
             logging.debug("Failed to log default network rules, ignoring")
+
 def delete_rules_for_vm_in_bridge_firewall_chain(vmName):
     vm_name = vmName
     if vm_name.startswith('i-'):
+        vm_name=iptables_chain_name(vm_name)
         vm_name = '-'.join(vm_name.split('-')[:-1]) + "-def"
 
-    vmchain = vm_name
+    vmchain = iptables_chain_name(vm_name)
 
     delcmd = """iptables-save | awk '/BF(.*)physdev-is-bridged(.*)%s/ { sub(/-A/, "-D", $1) ; print }'""" % vmchain
     delcmds = filter(None, execute(delcmd).split('\n'))
@@ -556,6 +645,14 @@
         except:
               logging.exception("Ignoring failure to delete rules for vm " + vmName)
 
+    delcmd = """ip6tables-save | awk '/BF(.*)physdev-is-bridged(.*)%s/ { sub(/-A/, "-D", $1) ; print }'""" % vmchain
+    delcmds = filter(None, execute(delcmd).split('\n'))
+    for cmd in delcmds:
+        try:
+            execute('ip6tables ' + cmd)
+        except:
+              logging.exception("Ignoring failure to delete rules for vm " + vmName)
+
 def rewrite_rule_log_for_vm(vm_name, new_domid):
     logfilename = logpath + vm_name + ".log"
     if not os.path.exists(logfilename):
@@ -630,7 +727,7 @@
         default_network_rules_systemvm(vm_name, brName)
         return True
 
-    vmchain = vm_name
+    vmchain = iptables_chain_name(vm_name)
     vmchain_default = '-'.join(vmchain.split('-')[:-1]) + "-def"
 
     vifs = getVifs(vmName)
@@ -638,6 +735,8 @@
     for v in vifs:
         execute("iptables -A " + getBrfw(brName) + "-IN " + " -m physdev --physdev-is-bridged --physdev-in " + v + " -j "+ vmchain_default)
         execute("iptables -A " + getBrfw(brName) + "-OUT " + " -m physdev --physdev-is-bridged --physdev-out " + v + " -j "+ vmchain_default)
+        execute("ip6tables -A " + getBrfw(brName) + "-IN " + " -m physdev --physdev-is-bridged --physdev-in " + v + " -j " + vmchain_default)
+        execute("ip6tables -A " + getBrfw(brName) + "-OUT " + " -m physdev --physdev-is-bridged --physdev-out " + v + " -j " + vmchain_default)
 
     #change antispoof rule in vmchain
     try:
@@ -663,7 +762,8 @@
     return True
 
 def get_rule_logs_for_vms():
-    vms = virshlist('running')
+    state=['running']
+    vms = virshlist(state)
 
     result = []
     try:
@@ -712,36 +812,50 @@
 
 def cleanup_rules():
     try:
+        states=['running','paused']
+        vmsInHost = virshlist(states)
+
+        logging.debug(" Vms on the host : %s ", vmsInHost)
+
+        cleanup = []
         chainscmd = """iptables-save | grep -P '^:(?!.*-(def|eg))' | awk '{sub(/^:/, "", $1) ; print $1}' | sort | uniq"""
         chains = execute(chainscmd).split('\n')
-        cleanup = []
+
+        logging.debug(" iptables chains in the host :%s ", chains)
+
         for chain in chains:
             if 1 in [ chain.startswith(c) for c in ['r-', 'i-', 's-', 'v-'] ]:
                 vm_name = chain
-                result = virshdomstate(vm_name)
-                if result == None or len(result) == 0:
-                    logging.debug("chain " + chain + " does not correspond to a vm, cleaning up iptable rules")
-                    cleanup.append(vm_name)
-                    continue
-                if not (result == "running" or result == "paused"):
-                    logging.debug("vm " + vm_name + " is not running or paused, cleaning up iptable rules")
+                vmpresent=False
+
+                for vm in vmsInHost:
+                    if vm_name  in vm:
+                        vmpresent=True
+                        break
+
+                if vmpresent is False:
+                    logging.debug("vm " + vm_name + " is not running or paused, cleaning up iptables rules")
                     cleanup.append(vm_name)
 
         bridge_tables = execute("""grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//""").split('\n')
         for table in filter(None, bridge_tables):
             chainscmd = """ebtables -t %s -L | awk '/chain:/ { gsub(/(^.*chain: |-(in|out|ips).*)/, ""); print $1}' | sort | uniq""" % table
             chains = execute(chainscmd).split('\n')
-            for chain in filter(None, chains):
-                if 1 in [ chain.startswith(c) for c in ['r-', 'i-', 's-', 'v-'] ]:
-                    vm_name = chain
-                    result = virshdomstate(vm_name)
-                    if result == None or len(result) == 0:
-                        logging.debug("chain " + chain + " does not correspond to a vm, cleaning up ebtable rules")
-                        cleanup.append(vm_name)
-                        continue
-                    if not (result == "running" or result == "paused"):
-                        logging.debug("vm " + vm_name + " is not running or paused, cleaning up ebtable rules")
-                        cleanup.append(vm_name)
+
+        logging.debug(" ebtables chains in the host: %s ", chains)
+
+        for chain in filter(None, chains):
+            if 1 in [ chain.startswith(c) for c in ['r-', 'i-', 's-', 'v-'] ]:
+                vm_name = chain
+                vmpresent=False
+                for vm in vmsInHost:
+                    if vm_name  in vm:
+                        vmpresent=True
+                        break
+
+                if vmpresent is False:
+                    logging.debug("vm " + vm_name + " is not running or paused, cleaning up ebtables rules")
+                    cleanup.append(vm_name)
 
         cleanup = list(set(cleanup))  # remove duplicates
         for vmname in cleanup:
@@ -806,10 +920,67 @@
 
     return result
 
-def egress_chain_name(vm_name):
-    return vm_name + "-eg"
+#ebtables chain max len 31 char
+def ebtables_chain_name(vm_name):
+    # 23 because there are appends to the chains
+    if len(vm_name) > 22:
+        vm_name = vm_name[0:22]
+    return vm_name
 
-def add_network_rules(vm_name, vm_id, vm_ip, signature, seqno, vmMac, rules, vif, brname, sec_ips):
+#ipset chain max len 31 char
+def ipset_chain_name(vm_name):
+    if len(vm_name) > 30:
+        vm_name = vm_name[0:30]
+    return vm_name
+
+
+#iptables chain max len 29 char and it is appended with other names like -eg,-def
+def iptables_chain_name(vm_name):
+    if len(vm_name) > 25:
+        vm_name = vm_name[0:24]
+    return vm_name
+
+def egress_chain_name(vm_name):
+    chain_name = iptables_chain_name(vm_name)
+    return chain_name + "-eg"
+
+
+def parse_network_rules(rules):
+  ret = []
+
+  if rules is None or len(rules) == 0:
+    return ret
+
+  lines = rules.split(';')[:-1]
+  for line in lines:
+    tokens = line.split(':', 4)
+    if len(tokens) != 5:
+      continue
+
+    ruletype = tokens[0]
+    protocol = tokens[1]
+    start = int(tokens[2])
+    end = int(tokens[3])
+    cidrs = tokens.pop();
+
+    ipv4 = []
+    ipv6 = []
+    for ip in cidrs.split(","):
+        try:
+            network = IPNetwork(ip)
+            if network.version == 4:
+                ipv4.append(ip)
+            else:
+                ipv6.append(ip)
+        except:
+            pass
+
+    ret.append({'ipv4': ipv4, 'ipv6': ipv6, 'ruletype': ruletype,
+                'start': start, 'end': end, 'protocol': protocol})
+
+  return ret
+
+def add_network_rules(vm_name, vm_id, vm_ip, vm_ip6, signature, seqno, vmMac, rules, vif, brname, sec_ips):
   try:
     vmName = vm_name
     domId = getvmId(vmName)
@@ -822,85 +993,82 @@
         return 'true'
 
     if changes[0] or changes[1] or changes[2] or changes[3]:
-        default_network_rules(vmName, vm_id, vm_ip, vmMac, vif, brname, sec_ips)
-
-    if rules == "" or rules == None:
-        lines = []
-    else:
-        lines = rules.split(';')[:-1]
+        default_network_rules(vmName, vm_id, vm_ip, vm_ip6, vmMac, vif, brname, sec_ips)
 
     logging.debug("    programming network rules for IP: " + vm_ip + " vmname=" + vm_name)
+
+    egress_chain_name(vm_name)
+    vmchain = iptables_chain_name(vm_name)
+    egress_vmchain = egress_chain_name(vm_name)
+
     try:
-      vmchain = vm_name
-      execute("iptables -F " + vmchain)
-      egress_vmchain = egress_chain_name(vm_name)
-      execute("iptables -F " + egress_vmchain)
+      for chain in [vmchain, egress_vmchain]:
+          execute('iptables -F ' + chain)
+          execute('ip6tables -F ' + chain)
     except:
-      logging.debug("Error flushing iptables rules for " + vmchain + ". Presuming firewall rules deleted, re-initializing." )
-      default_network_rules(vm_name, vm_id, vm_ip, vmMac, vif, brname, sec_ips)
-    egressrule = 0
-    for line in lines:
-        tokens = line.split(':')
-        if len(tokens) != 5:
-          continue
-        ruletype = tokens[0]
-        protocol = tokens[1]
-        start = tokens[2]
-        end = tokens[3]
-        cidrs = tokens.pop();
-        ips = cidrs.split(",")
-        ips.pop()
-        allow_any = False
-        if ruletype == 'E':
-            vmchain = egress_chain_name(vm_name)
+      logging.debug("Error flushing iptables rules for " + vm_name + ". Presuming firewall rules deleted, re-initializing." )
+      default_network_rules(vm_name, vm_id, vm_ip, vm_ip6, vmMac, vif, brname, sec_ips)
+
+    egressrule_v4 = 0
+    egressrule_v6 = 0
+
+    for rule in parse_network_rules(rules):
+        start = rule['start']
+        end = rule['end']
+        protocol = rule['protocol']
+
+        if rule['ruletype'] == 'E':
+            vmchain = egress_vmchain
             direction = "-d"
             action = "RETURN"
-            egressrule = egressrule + 1
+            if rule['ipv4']:
+                egressrule_v4 =+ 1
+
+            if rule['ipv6']:
+                egressrule_v6 +=1
+
         else:
             vmchain = vm_name
             action = "ACCEPT"
             direction = "-s"
-        if '0.0.0.0/0' in ips:
-            i = ips.index('0.0.0.0/0')
-            del ips[i]
-            allow_any = True
-        range = start + ":" + end
-        if ips:
-            if protocol == 'all':
-                for ip in ips:
-                    execute("iptables -I " + vmchain + " -m state --state NEW " + direction + " " + ip + " -j "+action)
-            elif protocol != 'icmp':
-                for ip in ips:
-                    execute("iptables -I " + vmchain + " -p " + protocol + " -m " + protocol + " --dport " + range + " -m state --state NEW " + direction + " " + ip + " -j "+ action)
-            else:
-                range = start + "/" + end
-                if start == "-1":
-                    range = "any"
-                for ip in ips:
-                    execute("iptables -I " + vmchain + " -p icmp --icmp-type " + range + " " + direction + " " + ip + " -j "+ action)
 
-        if allow_any:
+        range = str(start) + ':' + str(end)
+        if 'icmp' == protocol:
+            range = str(start) + '/' + str(end)
+            if start == -1:
+                range = 'any'
+
+        for ip in rule['ipv4']:
             if protocol == 'all':
-                execute("iptables -I " + vmchain + " -m state --state NEW " + direction + " 0.0.0.0/0 -j "+action)
+                execute('iptables -I ' + vmchain + ' -m state --state NEW ' + direction + ' ' + ip + ' -j ' + action)
             elif protocol != 'icmp':
-                execute("iptables -I " + vmchain + " -p " + protocol + " -m " + protocol + " --dport " + range + " -m state --state NEW -j "+ action)
+                execute('iptables -I ' + vmchain + ' -p ' + protocol + ' -m ' + protocol + ' --dport ' + range + ' -m state --state NEW ' + direction + ' ' + ip + ' -j ' + action)
             else:
-                range = start + "/" + end
-                if start == "-1":
-                    range = "any"
-                execute("iptables -I " + vmchain + " -p icmp --icmp-type " + range + " -j "+action)
+                execute('iptables -I ' + vmchain + ' -p icmp --icmp-type ' + range + ' ' + direction + ' ' + ip + ' -j ' + action)
+
+        for ip in rule['ipv6']:
+            if protocol == 'all':
+                execute('ip6tables -I ' + vmchain + ' -m state --state NEW ' + direction + ' ' + ip + ' -j ' + action)
+            elif 'icmp' != protocol:
+                execute('ip6tables -I ' + vmchain + ' -p ' + protocol + ' -m ' + protocol + ' --dport ' + range + ' -m state --state NEW ' + direction + ' ' + ip + ' -j ' + action)
+            else:
+                execute('ip6tables -I ' + vmchain + ' -p icmpv6 --icmpv6-type ' + range + ' ' + direction + ' ' + ip + ' -j ' + action)
 
     egress_vmchain = egress_chain_name(vm_name)
-    if egressrule == 0 :
-        iptables = "iptables -A " + egress_vmchain + " -j RETURN"
-        execute(iptables)
+    if egressrule_v4 == 0 :
+        execute('iptables -A ' + egress_vmchain + ' -j RETURN')
     else:
-        iptables = "iptables -A " + egress_vmchain + " -j DROP"
-        execute(iptables)
+        execute('iptables -A ' + egress_vmchain + ' -j DROP')
 
-    vmchain = vm_name
-    iptables = "iptables -A " + vmchain + " -j DROP"
-    execute(iptables)
+    if egressrule_v6 == 0 :
+        execute('ip6tables -A ' + egress_vmchain + ' -j RETURN')
+    else:
+        execute('ip6tables -A ' + egress_vmchain + ' -j DROP')
+
+    vmchain = iptables_chain_name(vm_name)
+
+    execute('iptables -A ' + vmchain + ' -j DROP')
+    execute('ip6tables -A ' + vmchain + ' -j DROP')
 
     if write_rule_log_for_vm(vmName, vm_id, vm_ip, domId, signature, seqno) == False:
         return 'false'
@@ -1005,8 +1173,27 @@
         execute("iptables -N " + brfwin)
 
     try:
-        refs = execute("""iptables -n -L %s | awk '/%s(.*)references/ {gsub(/\(/, "") ;print $3}'""" % (brfw,brfw)).strip()
-        if refs == "0":
+        execute('ip6tables -L ' + brfw)
+    except:
+        execute('ip6tables -N ' + brfw)
+
+    brfwout = brfw + "-OUT"
+    try:
+        execute('ip6tables -L ' + brfwout)
+    except:
+        execute('ip6tables -N ' + brfwout)
+
+    brfwin = brfw + "-IN"
+    try:
+        execute('ip6tables -L ' + brfwin)
+    except:
+        execute('ip6tables -N ' + brfwin)
+
+    try:
+        refs = int(execute("""iptables -n -L %s | awk '/%s(.*)references/ {gsub(/\(/, "") ;print $3}'""" % (brfw,brfw)).strip())
+        refs6 = int(execute("""ip6tables -n -L %s | awk '/%s(.*)references/ {gsub(/\(/, "") ;print $3}'""" % (brfw,brfw)).strip())
+
+        if refs == 0:
             execute("iptables -I FORWARD -i " + brname + " -j DROP")
             execute("iptables -I FORWARD -o " + brname + " -j DROP")
             execute("iptables -I FORWARD -i " + brname + " -m physdev --physdev-is-bridged -j " + brfw)
@@ -1016,10 +1203,23 @@
             execute("iptables -A " + brfw + " -m physdev --physdev-is-bridged --physdev-is-in -j " + brfwin)
             execute("iptables -A " + brfw + " -m physdev --physdev-is-bridged --physdev-is-out -j " + brfwout)
             execute("iptables -A " + brfw + " -m physdev --physdev-is-bridged --physdev-out " + phydev + " -j ACCEPT")
+
+        if refs6 == 0:
+            execute('ip6tables -I FORWARD -i ' + brname + ' -j DROP')
+            execute('ip6tables -I FORWARD -o ' + brname + ' -j DROP')
+            execute('ip6tables -I FORWARD -i ' + brname + ' -m physdev --physdev-is-bridged -j ' + brfw)
+            execute('ip6tables -I FORWARD -o ' + brname + ' -m physdev --physdev-is-bridged -j ' + brfw)
+            phydev = execute("brctl show | awk '/^%s[ \t]/ {print $4}'" % brname ).strip()
+            execute('ip6tables -A ' + brfw + ' -m state --state RELATED,ESTABLISHED -j ACCEPT')
+            execute('ip6tables -A ' + brfw + ' -m physdev --physdev-is-bridged --physdev-is-in -j ' + brfwin)
+            execute('ip6tables -A ' + brfw + ' -m physdev --physdev-is-bridged --physdev-is-out -j ' + brfwout)
+            execute('ip6tables -A ' + brfw + ' -m physdev --physdev-is-bridged --physdev-out ' + phydev + ' -j ACCEPT')
+
         return True
     except:
         try:
             execute("iptables -F " + brfw)
+            execute('ip6tables -F ' + brfw)
         except:
             return False
         return False
@@ -1029,6 +1229,7 @@
     parser = OptionParser()
     parser.add_option("--vmname", dest="vmName")
     parser.add_option("--vmip", dest="vmIP")
+    parser.add_option("--vmip6", dest="vmIP6")
     parser.add_option("--vmid", dest="vmID")
     parser.add_option("--vmmac", dest="vmMAC")
     parser.add_option("--vif", dest="vif")
@@ -1059,7 +1260,7 @@
     if cmd == "can_bridge_firewall":
         can_bridge_firewall(args[1])
     elif cmd == "default_network_rules":
-        default_network_rules(option.vmName, option.vmID, option.vmIP, option.vmMAC, option.vif, option.brname, option.nicSecIps)
+        default_network_rules(option.vmName, option.vmID, option.vmIP, option.vmIP6, option.vmMAC, option.vif, option.brname, option.nicSecIps)
     elif cmd == "destroy_network_rules_for_vm":
         destroy_network_rules_for_vm(option.vmName, option.vif)
     elif cmd == "default_network_rules_systemvm":
@@ -1067,7 +1268,7 @@
     elif cmd == "get_rule_logs_for_vms":
         get_rule_logs_for_vms()
     elif cmd == "add_network_rules":
-        add_network_rules(option.vmName, option.vmID, option.vmIP, option.sig, option.seq, option.vmMAC, option.rules, option.vif, option.brname, option.nicSecIps)
+        add_network_rules(option.vmName, option.vmID, option.vmIP, option.vmIP6, option.sig, option.seq, option.vmMAC, option.rules, option.vif, option.brname, option.nicSecIps)
     elif cmd == "network_rules_vmSecondaryIp":
         network_rules_vmSecondaryIp(option.vmName, option.nicSecIps, option.action)
     elif cmd == "cleanup_rules":
diff --git a/scripts/vm/systemvm/injectkeys.sh b/scripts/vm/systemvm/injectkeys.sh
index 863ca6a..9df1718 100755
--- a/scripts/vm/systemvm/injectkeys.sh
+++ b/scripts/vm/systemvm/injectkeys.sh
@@ -86,7 +86,7 @@
 command -v mkisofs > /dev/null   || (echo "$(basename $0): mkisofs not found, please install or ensure PATH is accurate" ; exit 4)
 
 # if running into Docker as unprivileges, skip ssh verification as iso cannot be mounted due to missing loop device.
-if [ -f /.dockerinit ]; then
+if [ -f /.dockerenv ]; then
   if [ -e /dev/loop0 ]; then
     # it's a docker instance with privileges.
     inject_into_iso systemvm.iso $newpubkey
diff --git a/server/pom.xml b/server/pom.xml
index f3162a2..90ddeb1 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>
@@ -70,16 +70,6 @@
       <artifactId>mail</artifactId>
     </dependency>
     <dependency>
-      <groupId>jstl</groupId>
-      <artifactId>jstl</artifactId>
-      <version>${cs.jstl.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>javax.servlet.jsp.jstl</groupId>
-      <artifactId>javax.servlet.jsp.jstl-api</artifactId>
-      <version>${cs.jstl-api.version}</version>
-    </dependency>
-    <dependency>
       <groupId>commons-codec</groupId>
       <artifactId>commons-codec</artifactId>
     </dependency>
diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
index b25c1c3..87097a4 100644
--- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
+++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
@@ -23,13 +23,13 @@
        xmlns:util="http://www.springframework.org/schema/util"
        
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/aop 
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd
+                      http://www.springframework.org/schema/context/spring-context.xsd
                       http://www.springframework.org/schema/util
-                      http://www.springframework.org/schema/util/spring-util-3.0.xsd"
+                      http://www.springframework.org/schema/util/spring-util.xsd"
                       >
 
     <bean id="authenticationManagerImpl" class="com.cloud.api.auth.APIAuthenticationManagerImpl">
@@ -271,6 +271,6 @@
         class="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" >
         <property name="gslbServiceProviders" value="#{gslbServiceProvidersRegistry.registered}" />
     </bean>
-    <bean id="certServiceImpl" class="org.apache.cloudstack.network.lb.CertServiceImpl" />
+    <bean id="certServiceImpl" class="org.apache.cloudstack.network.ssl.CertServiceImpl" />
     <bean id="imageStoreUploadMonitorImpl" class="com.cloud.storage.ImageStoreUploadMonitorImpl" />
 </beans>
diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml
index 479dc9c..e017162 100644
--- a/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml
+++ b/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
 
diff --git a/server/resources/META-INF/cloudstack/server-alert-adapter-backend/spring-server-alert-adapter-backend-context.xml b/server/resources/META-INF/cloudstack/server-alert-adapter-backend/spring-server-alert-adapter-backend-context.xml
index f7670e5..a8f83b0 100644
--- a/server/resources/META-INF/cloudstack/server-alert-adapter-backend/spring-server-alert-adapter-backend-context.xml
+++ b/server/resources/META-INF/cloudstack/server-alert-adapter-backend/spring-server-alert-adapter-backend-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="clusterAlertAdapter" class="com.cloud.alert.ClusterAlertAdapter" />
diff --git a/server/resources/META-INF/cloudstack/server-alert-adapter-compute/spring-server-alert-adapter-compute-context.xml b/server/resources/META-INF/cloudstack/server-alert-adapter-compute/spring-server-alert-adapter-compute-context.xml
index e918ce0..71cef6c 100644
--- a/server/resources/META-INF/cloudstack/server-alert-adapter-compute/spring-server-alert-adapter-compute-context.xml
+++ b/server/resources/META-INF/cloudstack/server-alert-adapter-compute/spring-server-alert-adapter-compute-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="consoleProxyAlertAdapter" class="com.cloud.alert.ConsoleProxyAlertAdapter" />
diff --git a/server/resources/META-INF/cloudstack/server-alert-adapter-storage/spring-server-alert-adapter-storage-context.xml b/server/resources/META-INF/cloudstack/server-alert-adapter-storage/spring-server-alert-adapter-storage-context.xml
index 713d9e3..d765063 100644
--- a/server/resources/META-INF/cloudstack/server-alert-adapter-storage/spring-server-alert-adapter-storage-context.xml
+++ b/server/resources/META-INF/cloudstack/server-alert-adapter-storage/spring-server-alert-adapter-storage-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="secondaryStorageVmAlertAdapter" class="com.cloud.alert.SecondaryStorageVmAlertAdapter" />
diff --git a/server/resources/META-INF/cloudstack/server-allocator/spring-server-allocator-context.xml b/server/resources/META-INF/cloudstack/server-allocator/spring-server-allocator-context.xml
index cc2924e..664e7de 100644
--- a/server/resources/META-INF/cloudstack/server-allocator/spring-server-allocator-context.xml
+++ b/server/resources/META-INF/cloudstack/server-allocator/spring-server-allocator-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="ConsoleProxyAllocator" class="com.cloud.consoleproxy.ConsoleProxyBalanceAllocator">
diff --git a/server/resources/META-INF/cloudstack/server-api/spring-server-api-context.xml b/server/resources/META-INF/cloudstack/server-api/spring-server-api-context.xml
index 20e2f46..30e7647 100644
--- a/server/resources/META-INF/cloudstack/server-api/spring-server-api-context.xml
+++ b/server/resources/META-INF/cloudstack/server-api/spring-server-api-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="domainChecker" class="com.cloud.acl.DomainChecker" />
diff --git a/server/resources/META-INF/cloudstack/server-compute/spring-server-compute-context.xml b/server/resources/META-INF/cloudstack/server-compute/spring-server-compute-context.xml
index 1311902..38fb619 100644
--- a/server/resources/META-INF/cloudstack/server-compute/spring-server-compute-context.xml
+++ b/server/resources/META-INF/cloudstack/server-compute/spring-server-compute-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="KVMGuru" class="com.cloud.hypervisor.KVMGuru">
diff --git a/server/resources/META-INF/cloudstack/server-discoverer/spring-server-discoverer-context.xml b/server/resources/META-INF/cloudstack/server-discoverer/spring-server-discoverer-context.xml
index 90666d1..3a7e0ff 100644
--- a/server/resources/META-INF/cloudstack/server-discoverer/spring-server-discoverer-context.xml
+++ b/server/resources/META-INF/cloudstack/server-discoverer/spring-server-discoverer-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
 
diff --git a/server/resources/META-INF/cloudstack/server-fencer/spring-server-fencer-context.xml b/server/resources/META-INF/cloudstack/server-fencer/spring-server-fencer-context.xml
index 3312d5f..f11fea6 100644
--- a/server/resources/META-INF/cloudstack/server-fencer/spring-server-fencer-context.xml
+++ b/server/resources/META-INF/cloudstack/server-fencer/spring-server-fencer-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
   
diff --git a/server/resources/META-INF/cloudstack/server-investigator/spring-server-investigator-context.xml b/server/resources/META-INF/cloudstack/server-investigator/spring-server-investigator-context.xml
index 24e6e33..dd5ce62 100644
--- a/server/resources/META-INF/cloudstack/server-investigator/spring-server-investigator-context.xml
+++ b/server/resources/META-INF/cloudstack/server-investigator/spring-server-investigator-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="CheckOnAgentInvestigator" class="com.cloud.ha.CheckOnAgentInvestigator">
diff --git a/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml b/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml
index 553ae44..4805612 100644
--- a/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml
+++ b/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="StorageNetworkGuru" class="com.cloud.network.guru.StorageNetworkGuru">
diff --git a/server/resources/META-INF/cloudstack/server-planner/spring-server-planner-context.xml b/server/resources/META-INF/cloudstack/server-planner/spring-server-planner-context.xml
index 36f3ed0..c1997e2 100644
--- a/server/resources/META-INF/cloudstack/server-planner/spring-server-planner-context.xml
+++ b/server/resources/META-INF/cloudstack/server-planner/spring-server-planner-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
   <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
diff --git a/server/resources/META-INF/cloudstack/server-storage/spring-server-storage-context.xml b/server/resources/META-INF/cloudstack/server-storage/spring-server-storage-context.xml
index 8fe24ff..c676029 100644
--- a/server/resources/META-INF/cloudstack/server-storage/spring-server-storage-context.xml
+++ b/server/resources/META-INF/cloudstack/server-storage/spring-server-storage-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="secondaryStorageVmDefaultAllocator"
diff --git a/server/resources/META-INF/cloudstack/server-template-adapter/spring-server-template-adapter-context.xml b/server/resources/META-INF/cloudstack/server-template-adapter/spring-server-template-adapter-context.xml
index 1eeb27c..96c3aa7 100644
--- a/server/resources/META-INF/cloudstack/server-template-adapter/spring-server-template-adapter-context.xml
+++ b/server/resources/META-INF/cloudstack/server-template-adapter/spring-server-template-adapter-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
   <bean id="hypervisorTemplateAdapter" class="com.cloud.template.HypervisorTemplateAdapter" />
diff --git a/server/resources/META-INF/cloudstack/system/spring-server-system-context.xml b/server/resources/META-INF/cloudstack/system/spring-server-system-context.xml
index a14a073..26432ec 100644
--- a/server/resources/META-INF/cloudstack/system/spring-server-system-context.xml
+++ b/server/resources/META-INF/cloudstack/system/spring-server-system-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="lockMasterListener" class="com.cloud.server.LockMasterListener" >
diff --git a/server/resources/com/cloud/upgrade/databaseCreatorContext.xml b/server/resources/com/cloud/upgrade/databaseCreatorContext.xml
index 6b70b27..ba00d19 100644
--- a/server/resources/com/cloud/upgrade/databaseCreatorContext.xml
+++ b/server/resources/com/cloud/upgrade/databaseCreatorContext.xml
@@ -22,13 +22,13 @@
   xmlns:tx="http://www.springframework.org/schema/tx" 
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">                     
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:annotation-config />
 
diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java
index d6b529f..a0e74aa 100644
--- a/server/src/com/cloud/api/ApiDBUtils.java
+++ b/server/src/com/cloud/api/ApiDBUtils.java
@@ -89,7 +89,6 @@
 import com.cloud.api.query.dao.SecurityGroupJoinDao;
 import com.cloud.api.query.dao.ServiceOfferingJoinDao;
 import com.cloud.api.query.dao.StoragePoolJoinDao;
-import com.cloud.api.query.dao.StorageTagDao;
 import com.cloud.api.query.dao.TemplateJoinDao;
 import com.cloud.api.query.dao.UserAccountJoinDao;
 import com.cloud.api.query.dao.UserVmJoinDao;
@@ -113,7 +112,6 @@
 import com.cloud.api.query.vo.SecurityGroupJoinVO;
 import com.cloud.api.query.vo.ServiceOfferingJoinVO;
 import com.cloud.api.query.vo.StoragePoolJoinVO;
-import com.cloud.api.query.vo.StorageTagVO;
 import com.cloud.api.query.vo.TemplateJoinVO;
 import com.cloud.api.query.vo.UserAccountJoinVO;
 import com.cloud.api.query.vo.UserVmJoinVO;
@@ -255,6 +253,7 @@
 import com.cloud.storage.Storage.StoragePoolType;
 import com.cloud.storage.StorageManager;
 import com.cloud.storage.StoragePool;
+import com.cloud.storage.StoragePoolTagVO;
 import com.cloud.storage.StorageStats;
 import com.cloud.storage.UploadVO;
 import com.cloud.storage.VMTemplateVO;
@@ -266,6 +265,7 @@
 import com.cloud.storage.dao.GuestOSDao;
 import com.cloud.storage.dao.SnapshotDao;
 import com.cloud.storage.dao.SnapshotPolicyDao;
+import com.cloud.storage.dao.StoragePoolTagsDao;
 import com.cloud.storage.dao.UploadDao;
 import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.storage.dao.VMTemplateDetailsDao;
@@ -289,7 +289,6 @@
 import com.cloud.user.dao.UserStatisticsDao;
 import com.cloud.uservm.UserVm;
 import com.cloud.utils.EnumUtils;
-import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Pair;
 import com.cloud.vm.ConsoleProxyVO;
 import com.cloud.vm.DomainRouterVO;
@@ -311,6 +310,8 @@
 import com.cloud.vm.dao.VMInstanceDao;
 import com.cloud.vm.snapshot.VMSnapshot;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
+import com.cloud.user.AccountManager;
+import com.cloud.network.dao.FirewallRulesDcidrsDao;
 
 public class ApiDBUtils {
     private static ManagementServer s_ms;
@@ -371,6 +372,7 @@
     static ConfigurationDao s_configDao;
     static ConsoleProxyDao s_consoleProxyDao;
     static FirewallRulesCidrsDao s_firewallCidrsDao;
+    static FirewallRulesDcidrsDao s_firewallDcidrsDao;
     static VMInstanceDao s_vmDao;
     static ResourceLimitService s_resourceLimitMgr;
     static ProjectService s_projectMgr;
@@ -400,7 +402,7 @@
     static HostJoinDao s_hostJoinDao;
     static VolumeJoinDao s_volJoinDao;
     static StoragePoolJoinDao s_poolJoinDao;
-    static StorageTagDao s_tagDao;
+    static StoragePoolTagsDao s_tagDao;
     static HostTagDao s_hostTagDao;
     static ImageStoreJoinDao s_imageStoreJoinDao;
     static AccountJoinDao s_accountJoinDao;
@@ -543,6 +545,8 @@
     @Inject
     private FirewallRulesCidrsDao firewallCidrsDao;
     @Inject
+    private FirewallRulesDcidrsDao firewalDcidrsDao;
+    @Inject
     private VMInstanceDao vmDao;
     @Inject
     private ResourceLimitService resourceLimitMgr;
@@ -600,7 +604,7 @@
     @Inject
     private StoragePoolJoinDao poolJoinDao;
     @Inject
-    private StorageTagDao tagDao;
+    private StoragePoolTagsDao tagDao;
     @Inject
     private HostTagDao hosttagDao;
     @Inject
@@ -718,6 +722,7 @@
         s_configDao = configDao;
         s_consoleProxyDao = consoleProxyDao;
         s_firewallCidrsDao = firewallCidrsDao;
+        s_firewallDcidrsDao  = firewalDcidrsDao;
         s_vmDao = vmDao;
         s_resourceLimitMgr = resourceLimitMgr;
         s_projectMgr = projectMgr;
@@ -883,6 +888,12 @@
         return snapshot.getRecurringType().name();
     }
 
+    public static String getSnapshotLocationType(long snapshotId) {
+        SnapshotVO snapshot = s_snapshotDao.findById(snapshotId);
+
+        return snapshot.getLocationType() != null ? snapshot.getLocationType().name() : null;
+    }
+
     public static String getStoragePoolTags(long poolId) {
         return s_storageMgr.getStoragePoolTags(poolId);
     }
@@ -1269,10 +1280,14 @@
         return s_networkModel.getDedicatedNetworkDomain(networkId);
     }
 
-    public static float getCpuOverprovisioningFactor() {
-        String opFactor = s_configDao.getValue(CapacityManager.CpuOverprovisioningFactorCK);
-        float cpuOverprovisioningFactor = NumbersUtil.parseFloat(opFactor, 1);
-        return cpuOverprovisioningFactor;
+    public static float getCpuOverprovisioningFactor(long clusterId) {
+        float opFactor = CapacityManager.CpuOverprovisioningFactor.valueIn(clusterId);
+        return opFactor;
+    }
+
+    public static float getMemOverprovisioningFactor(long clusterId) {
+        float opFactor = CapacityManager.MemOverprovisioningFactor.valueIn(clusterId);
+        return opFactor;
     }
 
     public static boolean isExtractionDisabled() {
@@ -1293,6 +1308,10 @@
         return s_firewallCidrsDao.getSourceCidrs(id);
     }
 
+    public static List<String> findFirewallDestCidrs(long id){
+        return s_firewallDcidrsDao.getDestCidrs(id);
+    }
+
     public static Account getProjectOwner(long projectId) {
         return s_projectMgr.getProjectOwner(projectId);
     }
@@ -1701,6 +1720,9 @@
 
     public static UserResponse newUserResponse(UserAccountJoinVO usr, Long domainId) {
         UserResponse response = s_userAccountJoinDao.newUserResponse(usr);
+        if(!AccountManager.UseSecretKeyInResponse.value()){
+            response.setSecretKey(null);
+        }
         // Populate user account role information
         if (usr.getAccountRoleId() != null) {
             Role role = s_roleService.findRole( usr.getAccountRoleId());
@@ -1794,7 +1816,7 @@
         return s_poolJoinDao.newStoragePoolResponse(vr);
     }
 
-    public static StorageTagResponse newStorageTagResponse(StorageTagVO vr) {
+    public static StorageTagResponse newStorageTagResponse(StoragePoolTagVO vr) {
         return s_tagDao.newStorageTagResponse(vr);
     }
 
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index 54b9bf2..7d7f0fd 100644
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -16,149 +16,7 @@
 // under the License.
 package com.cloud.api;
 
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TimeZone;
-
-import javax.inject.Inject;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.cloudstack.acl.ControlledEntity;
-import org.apache.cloudstack.acl.ControlledEntity.ACLType;
-import org.apache.cloudstack.affinity.AffinityGroup;
-import org.apache.cloudstack.affinity.AffinityGroupResponse;
-import org.apache.cloudstack.api.ApiConstants.HostDetails;
-import org.apache.cloudstack.api.ApiConstants.VMDetails;
-import org.apache.cloudstack.api.ResponseGenerator;
-import org.apache.cloudstack.api.ResponseObject.ResponseView;
-import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
-import org.apache.cloudstack.api.response.AccountResponse;
-import org.apache.cloudstack.api.response.ApplicationLoadBalancerInstanceResponse;
-import org.apache.cloudstack.api.response.ApplicationLoadBalancerResponse;
-import org.apache.cloudstack.api.response.ApplicationLoadBalancerRuleResponse;
-import org.apache.cloudstack.api.response.AsyncJobResponse;
-import org.apache.cloudstack.api.response.AutoScalePolicyResponse;
-import org.apache.cloudstack.api.response.AutoScaleVmGroupResponse;
-import org.apache.cloudstack.api.response.AutoScaleVmProfileResponse;
-import org.apache.cloudstack.api.response.CapabilityResponse;
-import org.apache.cloudstack.api.response.CapacityResponse;
-import org.apache.cloudstack.api.response.ClusterResponse;
-import org.apache.cloudstack.api.response.ConditionResponse;
-import org.apache.cloudstack.api.response.ConfigurationResponse;
-import org.apache.cloudstack.api.response.ControlledEntityResponse;
-import org.apache.cloudstack.api.response.ControlledViewEntityResponse;
-import org.apache.cloudstack.api.response.CounterResponse;
-import org.apache.cloudstack.api.response.CreateCmdResponse;
-import org.apache.cloudstack.api.response.CreateSSHKeyPairResponse;
-import org.apache.cloudstack.api.response.DiskOfferingResponse;
-import org.apache.cloudstack.api.response.DomainResponse;
-import org.apache.cloudstack.api.response.DomainRouterResponse;
-import org.apache.cloudstack.api.response.EventResponse;
-import org.apache.cloudstack.api.response.ExtractResponse;
-import org.apache.cloudstack.api.response.FirewallResponse;
-import org.apache.cloudstack.api.response.FirewallRuleResponse;
-import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
-import org.apache.cloudstack.api.response.GuestOSResponse;
-import org.apache.cloudstack.api.response.GuestOsMappingResponse;
-import org.apache.cloudstack.api.response.GuestVlanRangeResponse;
-import org.apache.cloudstack.api.response.HostForMigrationResponse;
-import org.apache.cloudstack.api.response.HostResponse;
-import org.apache.cloudstack.api.response.HypervisorCapabilitiesResponse;
-import org.apache.cloudstack.api.response.IPAddressResponse;
-import org.apache.cloudstack.api.response.ImageStoreResponse;
-import org.apache.cloudstack.api.response.InstanceGroupResponse;
-import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
-import org.apache.cloudstack.api.response.IpForwardingRuleResponse;
-import org.apache.cloudstack.api.response.IsolationMethodResponse;
-import org.apache.cloudstack.api.response.LBHealthCheckPolicyResponse;
-import org.apache.cloudstack.api.response.LBHealthCheckResponse;
-import org.apache.cloudstack.api.response.LBStickinessPolicyResponse;
-import org.apache.cloudstack.api.response.LBStickinessResponse;
-import org.apache.cloudstack.api.response.ListResponse;
-import org.apache.cloudstack.api.response.LoadBalancerResponse;
-import org.apache.cloudstack.api.response.NetworkACLItemResponse;
-import org.apache.cloudstack.api.response.NetworkACLResponse;
-import org.apache.cloudstack.api.response.NetworkOfferingResponse;
-import org.apache.cloudstack.api.response.NetworkResponse;
-import org.apache.cloudstack.api.response.NicResponse;
-import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
-import org.apache.cloudstack.api.response.OvsProviderResponse;
-import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
-import org.apache.cloudstack.api.response.PodResponse;
-import org.apache.cloudstack.api.response.PortableIpRangeResponse;
-import org.apache.cloudstack.api.response.PortableIpResponse;
-import org.apache.cloudstack.api.response.PrivateGatewayResponse;
-import org.apache.cloudstack.api.response.ProjectAccountResponse;
-import org.apache.cloudstack.api.response.ProjectInvitationResponse;
-import org.apache.cloudstack.api.response.ProjectResponse;
-import org.apache.cloudstack.api.response.ProviderResponse;
-import org.apache.cloudstack.api.response.RegionResponse;
-import org.apache.cloudstack.api.response.RemoteAccessVpnResponse;
-import org.apache.cloudstack.api.response.ResourceCountResponse;
-import org.apache.cloudstack.api.response.ResourceLimitResponse;
-import org.apache.cloudstack.api.response.ResourceTagResponse;
-import org.apache.cloudstack.api.response.SSHKeyPairResponse;
-import org.apache.cloudstack.api.response.SecurityGroupResponse;
-import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
-import org.apache.cloudstack.api.response.ServiceOfferingResponse;
-import org.apache.cloudstack.api.response.ServiceResponse;
-import org.apache.cloudstack.api.response.Site2SiteCustomerGatewayResponse;
-import org.apache.cloudstack.api.response.Site2SiteVpnConnectionResponse;
-import org.apache.cloudstack.api.response.Site2SiteVpnGatewayResponse;
-import org.apache.cloudstack.api.response.SnapshotPolicyResponse;
-import org.apache.cloudstack.api.response.SnapshotResponse;
-import org.apache.cloudstack.api.response.SnapshotScheduleResponse;
-import org.apache.cloudstack.api.response.StaticRouteResponse;
-import org.apache.cloudstack.api.response.StorageNetworkIpRangeResponse;
-import org.apache.cloudstack.api.response.StoragePoolResponse;
-import org.apache.cloudstack.api.response.SystemVmInstanceResponse;
-import org.apache.cloudstack.api.response.SystemVmResponse;
-import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
-import org.apache.cloudstack.api.response.TemplateResponse;
-import org.apache.cloudstack.api.response.TrafficMonitorResponse;
-import org.apache.cloudstack.api.response.TrafficTypeResponse;
-import org.apache.cloudstack.api.response.UpgradeRouterTemplateResponse;
-import org.apache.cloudstack.api.response.UsageRecordResponse;
-import org.apache.cloudstack.api.response.UserResponse;
-import org.apache.cloudstack.api.response.UserVmResponse;
-import org.apache.cloudstack.api.response.VMSnapshotResponse;
-import org.apache.cloudstack.api.response.VirtualRouterProviderResponse;
-import org.apache.cloudstack.api.response.VlanIpRangeResponse;
-import org.apache.cloudstack.api.response.VolumeResponse;
-import org.apache.cloudstack.api.response.VpcOfferingResponse;
-import org.apache.cloudstack.api.response.VpcResponse;
-import org.apache.cloudstack.api.response.VpnUsersResponse;
-import org.apache.cloudstack.api.response.ZoneResponse;
-import org.apache.cloudstack.config.Configuration;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
-import org.apache.cloudstack.framework.jobs.AsyncJob;
-import org.apache.cloudstack.framework.jobs.AsyncJobManager;
-import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
-import org.apache.cloudstack.region.PortableIp;
-import org.apache.cloudstack.region.PortableIpRange;
-import org.apache.cloudstack.region.Region;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.cloudstack.usage.Usage;
-import org.apache.cloudstack.usage.UsageService;
-import org.apache.cloudstack.usage.UsageTypes;
-import org.apache.log4j.Logger;
-
+import com.cloud.utils.crypt.DBEncryptionUtil;
 import com.cloud.agent.api.VgpuTypesInfo;
 import com.cloud.api.query.ViewResponseHelper;
 import com.cloud.api.query.vo.AccountJoinVO;
@@ -317,6 +175,147 @@
 import com.cloud.vm.VirtualMachine.Type;
 import com.cloud.vm.dao.NicSecondaryIpVO;
 import com.cloud.vm.snapshot.VMSnapshot;
+import org.apache.cloudstack.acl.ControlledEntity;
+import org.apache.cloudstack.acl.ControlledEntity.ACLType;
+import org.apache.cloudstack.affinity.AffinityGroup;
+import org.apache.cloudstack.affinity.AffinityGroupResponse;
+import org.apache.cloudstack.api.ApiConstants.HostDetails;
+import org.apache.cloudstack.api.ApiConstants.VMDetails;
+import org.apache.cloudstack.api.ResponseGenerator;
+import org.apache.cloudstack.api.ResponseObject.ResponseView;
+import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
+import org.apache.cloudstack.api.response.AccountResponse;
+import org.apache.cloudstack.api.response.ApplicationLoadBalancerInstanceResponse;
+import org.apache.cloudstack.api.response.ApplicationLoadBalancerResponse;
+import org.apache.cloudstack.api.response.ApplicationLoadBalancerRuleResponse;
+import org.apache.cloudstack.api.response.AsyncJobResponse;
+import org.apache.cloudstack.api.response.AutoScalePolicyResponse;
+import org.apache.cloudstack.api.response.AutoScaleVmGroupResponse;
+import org.apache.cloudstack.api.response.AutoScaleVmProfileResponse;
+import org.apache.cloudstack.api.response.CapabilityResponse;
+import org.apache.cloudstack.api.response.CapacityResponse;
+import org.apache.cloudstack.api.response.ClusterResponse;
+import org.apache.cloudstack.api.response.ConditionResponse;
+import org.apache.cloudstack.api.response.ConfigurationResponse;
+import org.apache.cloudstack.api.response.ControlledEntityResponse;
+import org.apache.cloudstack.api.response.ControlledViewEntityResponse;
+import org.apache.cloudstack.api.response.CounterResponse;
+import org.apache.cloudstack.api.response.CreateCmdResponse;
+import org.apache.cloudstack.api.response.CreateSSHKeyPairResponse;
+import org.apache.cloudstack.api.response.DiskOfferingResponse;
+import org.apache.cloudstack.api.response.DomainResponse;
+import org.apache.cloudstack.api.response.DomainRouterResponse;
+import org.apache.cloudstack.api.response.EventResponse;
+import org.apache.cloudstack.api.response.ExtractResponse;
+import org.apache.cloudstack.api.response.FirewallResponse;
+import org.apache.cloudstack.api.response.FirewallRuleResponse;
+import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
+import org.apache.cloudstack.api.response.GuestOSResponse;
+import org.apache.cloudstack.api.response.GuestOsMappingResponse;
+import org.apache.cloudstack.api.response.GuestVlanRangeResponse;
+import org.apache.cloudstack.api.response.HostForMigrationResponse;
+import org.apache.cloudstack.api.response.HostResponse;
+import org.apache.cloudstack.api.response.HypervisorCapabilitiesResponse;
+import org.apache.cloudstack.api.response.IPAddressResponse;
+import org.apache.cloudstack.api.response.ImageStoreResponse;
+import org.apache.cloudstack.api.response.InstanceGroupResponse;
+import org.apache.cloudstack.api.response.InternalLoadBalancerElementResponse;
+import org.apache.cloudstack.api.response.IpForwardingRuleResponse;
+import org.apache.cloudstack.api.response.IsolationMethodResponse;
+import org.apache.cloudstack.api.response.LBHealthCheckPolicyResponse;
+import org.apache.cloudstack.api.response.LBHealthCheckResponse;
+import org.apache.cloudstack.api.response.LBStickinessPolicyResponse;
+import org.apache.cloudstack.api.response.LBStickinessResponse;
+import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.api.response.LoadBalancerResponse;
+import org.apache.cloudstack.api.response.NetworkACLItemResponse;
+import org.apache.cloudstack.api.response.NetworkACLResponse;
+import org.apache.cloudstack.api.response.NetworkOfferingResponse;
+import org.apache.cloudstack.api.response.NetworkResponse;
+import org.apache.cloudstack.api.response.NicResponse;
+import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
+import org.apache.cloudstack.api.response.OvsProviderResponse;
+import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
+import org.apache.cloudstack.api.response.PodResponse;
+import org.apache.cloudstack.api.response.PortableIpRangeResponse;
+import org.apache.cloudstack.api.response.PortableIpResponse;
+import org.apache.cloudstack.api.response.PrivateGatewayResponse;
+import org.apache.cloudstack.api.response.ProjectAccountResponse;
+import org.apache.cloudstack.api.response.ProjectInvitationResponse;
+import org.apache.cloudstack.api.response.ProjectResponse;
+import org.apache.cloudstack.api.response.ProviderResponse;
+import org.apache.cloudstack.api.response.RegionResponse;
+import org.apache.cloudstack.api.response.RemoteAccessVpnResponse;
+import org.apache.cloudstack.api.response.ResourceCountResponse;
+import org.apache.cloudstack.api.response.ResourceLimitResponse;
+import org.apache.cloudstack.api.response.ResourceTagResponse;
+import org.apache.cloudstack.api.response.SSHKeyPairResponse;
+import org.apache.cloudstack.api.response.SecurityGroupResponse;
+import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
+import org.apache.cloudstack.api.response.ServiceOfferingResponse;
+import org.apache.cloudstack.api.response.ServiceResponse;
+import org.apache.cloudstack.api.response.Site2SiteCustomerGatewayResponse;
+import org.apache.cloudstack.api.response.Site2SiteVpnConnectionResponse;
+import org.apache.cloudstack.api.response.Site2SiteVpnGatewayResponse;
+import org.apache.cloudstack.api.response.SnapshotPolicyResponse;
+import org.apache.cloudstack.api.response.SnapshotResponse;
+import org.apache.cloudstack.api.response.SnapshotScheduleResponse;
+import org.apache.cloudstack.api.response.StaticRouteResponse;
+import org.apache.cloudstack.api.response.StorageNetworkIpRangeResponse;
+import org.apache.cloudstack.api.response.StoragePoolResponse;
+import org.apache.cloudstack.api.response.SystemVmInstanceResponse;
+import org.apache.cloudstack.api.response.SystemVmResponse;
+import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
+import org.apache.cloudstack.api.response.TemplateResponse;
+import org.apache.cloudstack.api.response.TrafficMonitorResponse;
+import org.apache.cloudstack.api.response.TrafficTypeResponse;
+import org.apache.cloudstack.api.response.UpgradeRouterTemplateResponse;
+import org.apache.cloudstack.api.response.UsageRecordResponse;
+import org.apache.cloudstack.api.response.UserResponse;
+import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.cloudstack.api.response.VMSnapshotResponse;
+import org.apache.cloudstack.api.response.VirtualRouterProviderResponse;
+import org.apache.cloudstack.api.response.VlanIpRangeResponse;
+import org.apache.cloudstack.api.response.VolumeResponse;
+import org.apache.cloudstack.api.response.VpcOfferingResponse;
+import org.apache.cloudstack.api.response.VpcResponse;
+import org.apache.cloudstack.api.response.VpnUsersResponse;
+import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.config.Configuration;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
+import org.apache.cloudstack.framework.jobs.AsyncJob;
+import org.apache.cloudstack.framework.jobs.AsyncJobManager;
+import org.apache.cloudstack.network.lb.ApplicationLoadBalancerRule;
+import org.apache.cloudstack.region.PortableIp;
+import org.apache.cloudstack.region.PortableIpRange;
+import org.apache.cloudstack.region.Region;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.cloudstack.usage.Usage;
+import org.apache.cloudstack.usage.UsageService;
+import org.apache.cloudstack.usage.UsageTypes;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.log4j.Logger;
+
+import javax.inject.Inject;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TimeZone;
 
 public class ApiResponseHelper implements ResponseGenerator {
 
@@ -457,7 +456,11 @@
         cfgResponse.setCategory(cfg.getCategory());
         cfgResponse.setDescription(cfg.getDescription());
         cfgResponse.setName(cfg.getName());
-        cfgResponse.setValue(cfg.getValue());
+        if(cfg.isEncrypted()) {
+            cfgResponse.setValue(DBEncryptionUtil.encrypt(cfg.getValue()));
+        } else {
+            cfgResponse.setValue(cfg.getValue());
+        }
         cfgResponse.setObjectName("configuration");
 
         return cfgResponse;
@@ -481,11 +484,24 @@
             if (zone != null) {
                 snapshotResponse.setZoneId(zone.getUuid());
             }
+
+            if (volume.getVolumeType() == Volume.Type.ROOT) {
+                //TODO combine lines and 489 into a join in the volume dao
+                VMInstanceVO instance = ApiDBUtils.findVMInstanceById(volume.getInstanceId());
+                if (instance != null) {
+                    GuestOS guestOs = ApiDBUtils.findGuestOSById(instance.getGuestOSId());
+                    if (guestOs != null) {
+                        snapshotResponse.setOsTypeId(guestOs.getUuid());
+                        snapshotResponse.setOsDisplayName(guestOs.getDisplayName());
+                    }
+                }
+            }
         }
         snapshotResponse.setCreated(snapshot.getCreated());
         snapshotResponse.setName(snapshot.getName());
         snapshotResponse.setIntervalType(ApiDBUtils.getSnapshotIntervalTypes(snapshot.getId()));
         snapshotResponse.setState(snapshot.getState());
+        snapshotResponse.setLocationType(ApiDBUtils.getSnapshotLocationType(snapshot.getId()));
 
         SnapshotInfo snapshotInfo = null;
 
@@ -569,6 +585,7 @@
                 vmSnapshotResponse.setParentName(vmSnapshotParent.getDisplayName());
             }
         }
+        populateOwner(vmSnapshotResponse, vmSnapshot);
         Project project = ApiDBUtils.findProjectByProjectAccountId(vmSnapshot.getAccountId());
         if (project != null) {
             vmSnapshotResponse.setProjectId(project.getUuid());
@@ -636,83 +653,92 @@
 
     @Override
     public VlanIpRangeResponse createVlanIpRangeResponse(Vlan vlan) {
-        Long podId = ApiDBUtils.getPodIdForVlan(vlan.getId());
+        return createVlanIpRangeResponse(VlanIpRangeResponse.class, vlan);
+    }
 
-        VlanIpRangeResponse vlanResponse = new VlanIpRangeResponse();
-        vlanResponse.setId(vlan.getUuid());
-        if (vlan.getVlanType() != null) {
-            vlanResponse.setForVirtualNetwork(vlan.getVlanType().equals(VlanType.VirtualNetwork));
-        }
-        vlanResponse.setVlan(vlan.getVlanTag());
-        DataCenter zone = ApiDBUtils.findZoneById(vlan.getDataCenterId());
-        if (zone != null) {
-            vlanResponse.setZoneId(zone.getUuid());
-        }
+    @Override
+    public VlanIpRangeResponse createVlanIpRangeResponse(Class<? extends VlanIpRangeResponse> subClass, Vlan vlan) {
+        try {
+            Long podId = ApiDBUtils.getPodIdForVlan(vlan.getId());
 
-        if (podId != null) {
-            HostPodVO pod = ApiDBUtils.findPodById(podId);
-            if (pod != null) {
-                vlanResponse.setPodId(pod.getUuid());
-                vlanResponse.setPodName(pod.getName());
+            VlanIpRangeResponse vlanResponse = subClass.newInstance();
+            vlanResponse.setId(vlan.getUuid());
+            if (vlan.getVlanType() != null) {
+                vlanResponse.setForVirtualNetwork(vlan.getVlanType().equals(VlanType.VirtualNetwork));
             }
-        }
-
-        vlanResponse.setGateway(vlan.getVlanGateway());
-        vlanResponse.setNetmask(vlan.getVlanNetmask());
-
-        // get start ip and end ip of corresponding vlan
-        String ipRange = vlan.getIpRange();
-        if (ipRange != null) {
-            String[] range = ipRange.split("-");
-            vlanResponse.setStartIp(range[0]);
-            vlanResponse.setEndIp(range[1]);
-        }
-
-        vlanResponse.setIp6Gateway(vlan.getIp6Gateway());
-        vlanResponse.setIp6Cidr(vlan.getIp6Cidr());
-
-        String ip6Range = vlan.getIp6Range();
-        if (ip6Range != null) {
-            String[] range = ip6Range.split("-");
-            vlanResponse.setStartIpv6(range[0]);
-            vlanResponse.setEndIpv6(range[1]);
-        }
-
-        if (vlan.getNetworkId() != null) {
-            Network nw = ApiDBUtils.findNetworkById(vlan.getNetworkId());
-            if (nw != null) {
-                vlanResponse.setNetworkId(nw.getUuid());
+            vlanResponse.setVlan(vlan.getVlanTag());
+            DataCenter zone = ApiDBUtils.findZoneById(vlan.getDataCenterId());
+            if (zone != null) {
+                vlanResponse.setZoneId(zone.getUuid());
             }
-        }
-        Account owner = ApiDBUtils.getVlanAccount(vlan.getId());
-        if (owner != null) {
-            populateAccount(vlanResponse, owner.getId());
-            populateDomain(vlanResponse, owner.getDomainId());
-        } else {
-            Domain domain = ApiDBUtils.getVlanDomain(vlan.getId());
-            if (domain != null) {
-                populateDomain(vlanResponse, domain.getId());
+
+            if (podId != null) {
+                HostPodVO pod = ApiDBUtils.findPodById(podId);
+                if (pod != null) {
+                    vlanResponse.setPodId(pod.getUuid());
+                    vlanResponse.setPodName(pod.getName());
+                }
+            }
+
+            vlanResponse.setGateway(vlan.getVlanGateway());
+            vlanResponse.setNetmask(vlan.getVlanNetmask());
+
+            // get start ip and end ip of corresponding vlan
+            String ipRange = vlan.getIpRange();
+            if (ipRange != null) {
+                String[] range = ipRange.split("-");
+                vlanResponse.setStartIp(range[0]);
+                vlanResponse.setEndIp(range[1]);
+            }
+
+            vlanResponse.setIp6Gateway(vlan.getIp6Gateway());
+            vlanResponse.setIp6Cidr(vlan.getIp6Cidr());
+
+            String ip6Range = vlan.getIp6Range();
+            if (ip6Range != null) {
+                String[] range = ip6Range.split("-");
+                vlanResponse.setStartIpv6(range[0]);
+                vlanResponse.setEndIpv6(range[1]);
+            }
+
+            if (vlan.getNetworkId() != null) {
+                Network nw = ApiDBUtils.findNetworkById(vlan.getNetworkId());
+                if (nw != null) {
+                    vlanResponse.setNetworkId(nw.getUuid());
+                }
+            }
+            Account owner = ApiDBUtils.getVlanAccount(vlan.getId());
+            if (owner != null) {
+                populateAccount(vlanResponse, owner.getId());
+                populateDomain(vlanResponse, owner.getDomainId());
             } else {
-                Long networkId = vlan.getNetworkId();
-                if (networkId != null) {
-                    Network network = _ntwkModel.getNetwork(networkId);
-                    if (network != null) {
-                        Long accountId = network.getAccountId();
-                        populateAccount(vlanResponse, accountId);
-                        populateDomain(vlanResponse, ApiDBUtils.findAccountById(accountId).getDomainId());
+                Domain domain = ApiDBUtils.getVlanDomain(vlan.getId());
+                if (domain != null) {
+                    populateDomain(vlanResponse, domain.getId());
+                } else {
+                    Long networkId = vlan.getNetworkId();
+                    if (networkId != null) {
+                        Network network = _ntwkModel.getNetwork(networkId);
+                        if (network != null) {
+                            Long accountId = network.getAccountId();
+                            populateAccount(vlanResponse, accountId);
+                            populateDomain(vlanResponse, ApiDBUtils.findAccountById(accountId).getDomainId());
+                        }
                     }
                 }
             }
-        }
 
-        if (vlan.getPhysicalNetworkId() != null) {
-            PhysicalNetwork pnw = ApiDBUtils.findPhysicalNetworkById(vlan.getPhysicalNetworkId());
-            if (pnw != null) {
-                vlanResponse.setPhysicalNetworkId(pnw.getUuid());
+            if (vlan.getPhysicalNetworkId() != null) {
+                PhysicalNetwork pnw = ApiDBUtils.findPhysicalNetworkById(vlan.getPhysicalNetworkId());
+                if (pnw != null) {
+                    vlanResponse.setPhysicalNetworkId(pnw.getUuid());
+                }
             }
+            vlanResponse.setObjectName("vlan");
+            return vlanResponse;
+        } catch (InstantiationException | IllegalAccessException e) {
+            throw new CloudRuntimeException("Failed to create Vlan IP Range response", e);
         }
-        vlanResponse.setObjectName("vlan");
-        return vlanResponse;
     }
 
     @Override
@@ -1421,6 +1447,23 @@
     }
 
     @Override
+    public List<TemplateResponse> createTemplateResponses(ResponseView view, VirtualMachineTemplate result,
+                                                          List<Long> zoneIds, boolean readyOnly) {
+        List<TemplateJoinVO> tvo = null;
+        if (zoneIds == null) {
+            return createTemplateResponses(view, result, (Long)null, readyOnly);
+        } else {
+            for (Long zoneId: zoneIds){
+                if (tvo == null)
+                    tvo = ApiDBUtils.newTemplateView(result, zoneId, readyOnly);
+                else
+                    tvo.addAll(ApiDBUtils.newTemplateView(result, zoneId, readyOnly));
+            }
+        }
+        return ViewResponseHelper.createTemplateResponse(view, tvo.toArray(new TemplateJoinVO[tvo.size()]));
+    }
+
+    @Override
     public List<TemplateResponse> createTemplateResponses(ResponseView view, long templateId, Long zoneId, boolean readyOnly) {
         VirtualMachineTemplate template = findTemplateById(templateId);
         return createTemplateResponses(view, template, zoneId, readyOnly);
@@ -1813,6 +1856,7 @@
         response.setEgressDefaultPolicy(offering.getEgressDefaultPolicy());
         response.setConcurrentConnections(offering.getConcurrentConnections());
         response.setSupportsStrechedL2Subnet(offering.getSupportsStrechedL2());
+        response.setSupportsPublicAccess(offering.getSupportsPublicAccess());
         Long so = null;
         if (offering.getServiceOfferingId() != null) {
             so = offering.getServiceOfferingId();
@@ -2172,6 +2216,11 @@
         List<String> cidrs = ApiDBUtils.findFirewallSourceCidrs(fwRule.getId());
         response.setCidrList(StringUtils.join(cidrs, ","));
 
+        if(fwRule.getTrafficType() == FirewallRule.TrafficType.Egress){
+            List<String> destCidrs = ApiDBUtils.findFirewallDestCidrs(fwRule.getId());
+            response.setDestCidr(StringUtils.join(destCidrs,","));
+        }
+
         if (fwRule.getTrafficType() == FirewallRule.TrafficType.Ingress) {
             IpAddress ip = ApiDBUtils.findIpAddressById(fwRule.getSourceIpAddressId());
             response.setPublicIpAddressId(ip.getUuid());
@@ -3154,6 +3203,7 @@
         Domain domain = ApiDBUtils.findDomainById(usageRecord.getDomainId());
         if (domain != null) {
             usageRecResponse.setDomainId(domain.getUuid());
+            usageRecResponse.setDomainName(domain.getName());
         }
 
         if (usageRecord.getZoneId() != null) {
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index a8eb642..40c95a0 100644
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -98,6 +98,8 @@
 import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.api.response.LoginCmdResponse;
 import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.Configurable;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
 import org.apache.cloudstack.framework.events.EventBus;
@@ -183,13 +185,11 @@
 import java.util.regex.Pattern;
 
 @Component
-public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiServerService {
+public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiServerService, Configurable {
     private static final Logger s_logger = Logger.getLogger(ApiServer.class.getName());
     private static final Logger s_accessLogger = Logger.getLogger("apiserver." + ApiServer.class.getName());
 
     private static boolean encodeApiResponse = false;
-    private boolean enableSecureCookie = false;
-    private String jsonContentType = HttpUtils.JSON_CONTENT_TYPE;
 
     /**
      * Non-printable ASCII characters - numbers 0 to 31 and 127 decimal
@@ -230,6 +230,12 @@
 
     private static ExecutorService s_executor = new ThreadPoolExecutor(10, 150, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory(
             "ApiServer"));
+
+    static final ConfigKey<Boolean> EnableSecureSessionCookie = new ConfigKey<Boolean>("Advanced", Boolean.class, "enable.secure.session.cookie", "false",
+            "Session cookie is marked as secure if this is enabled. Secure cookies only work when HTTPS is used.", false);
+
+    static final ConfigKey<String> JSONcontentType = new ConfigKey<String>(String.class, "json.content.type", "Advanced", "application/json; charset=UTF-8",
+            "Http response content type for .js files (default is text/javascript)", false, ConfigKey.Scope.Global, null);
     @Inject
     private MessageBus messageBus;
 
@@ -369,14 +375,6 @@
         }
 
         setEncodeApiResponse(Boolean.valueOf(configDao.getValue(Config.EncodeApiResponse.key())));
-        final String jsonType = configDao.getValue(Config.JSONDefaultContentType.key());
-        if (jsonType != null) {
-            jsonContentType = jsonType;
-        }
-        final Boolean enableSecureSessionCookie = Boolean.valueOf(configDao.getValue(Config.EnableSecureSessionCookie.key()));
-        if (enableSecureSessionCookie != null) {
-            enableSecureCookie = enableSecureSessionCookie;
-        }
 
         if (apiPort != null) {
             final ListenerThread listenerThread = new ListenerThread(this, apiPort);
@@ -1009,6 +1007,9 @@
                 if (ApiConstants.TIMEZONE.equalsIgnoreCase(attrName)) {
                     response.setTimeZone(attrObj.toString());
                 }
+                if (ApiConstants.TIMEZONEOFFSET.equalsIgnoreCase(attrName)) {
+                    response.setTimeZoneOffset(attrObj.toString());
+                }
                 if (ApiConstants.REGISTERED.equalsIgnoreCase(attrName)) {
                     response.setRegistered(attrObj.toString());
                 }
@@ -1162,7 +1163,7 @@
             final BasicHttpEntity body = new BasicHttpEntity();
             if (HttpUtils.RESPONSE_TYPE_JSON.equalsIgnoreCase(responseType)) {
                 // JSON response
-                body.setContentType(getJSONContentType());
+                body.setContentType(JSONcontentType.value());
                 if (responseText == null) {
                     body.setContent(new ByteArrayInputStream("{ \"error\" : { \"description\" : \"Internal Server Error\" } }".getBytes(HttpUtils.UTF_8)));
                 }
@@ -1182,6 +1183,16 @@
         }
     }
 
+    @Override
+    public String getConfigComponentName() {
+        return ApiServer.class.getSimpleName();
+    }
+
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return new ConfigKey<?>[] { EnableSecureSessionCookie, JSONcontentType };
+    }
+
     // FIXME: the following two threads are copied from
     // http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpServer.java
     // we have to cite a license if we are using this code directly, so we need to add the appropriate citation or
@@ -1385,13 +1396,4 @@
         ApiServer.encodeApiResponse = encodeApiResponse;
     }
 
-    @Override
-    public boolean isSecureSessionCookieEnabled() {
-        return enableSecureCookie;
-    }
-
-    @Override
-    public String getJSONContentType() {
-        return jsonContentType;
-    }
 }
diff --git a/server/src/com/cloud/api/ApiServlet.java b/server/src/com/cloud/api/ApiServlet.java
index 6c83698..7a607fd 100644
--- a/server/src/com/cloud/api/ApiServlet.java
+++ b/server/src/com/cloud/api/ApiServlet.java
@@ -158,7 +158,7 @@
         try {
 
             if (HttpUtils.RESPONSE_TYPE_JSON.equalsIgnoreCase(responseType)) {
-                resp.setContentType(apiServer.getJSONContentType());
+                resp.setContentType(ApiServer.JSONcontentType.value());
             } else if (HttpUtils.RESPONSE_TYPE_XML.equalsIgnoreCase(responseType)){
                 resp.setContentType(HttpUtils.XML_CONTENT_TYPE);
             }
@@ -189,12 +189,10 @@
                             }
                         }
                         session = req.getSession(true);
-                        if (apiServer.isSecureSessionCookieEnabled()) {
+                        if (ApiServer.EnableSecureSessionCookie.value()) {
                             resp.setHeader("SET-COOKIE", String.format("JSESSIONID=%s;Secure;HttpOnly;Path=/client", session.getId()));
                             if (s_logger.isDebugEnabled()) {
-                                if (s_logger.isDebugEnabled()) {
-                                    s_logger.debug("Session cookie is marked secure!");
-                                }
+                                s_logger.debug("Session cookie is marked secure!");
                             }
                         }
                     }
@@ -231,7 +229,7 @@
                         sessionKeyCookie.setMaxAge(0);
                         resp.addCookie(sessionKeyCookie);
                     }
-                    HttpUtils.writeHttpResponse(resp, responseString, httpResponseCode, responseType, apiServer.getJSONContentType());
+                    HttpUtils.writeHttpResponse(resp, responseString, httpResponseCode, responseType, ApiServer.JSONcontentType.value());
                     return;
                 }
             }
@@ -256,7 +254,7 @@
                     auditTrailSb.append(" " + HttpServletResponse.SC_UNAUTHORIZED + " " + "unable to verify user credentials");
                     final String serializedResponse =
                             apiServer.getSerializedApiError(HttpServletResponse.SC_UNAUTHORIZED, "unable to verify user credentials", params, responseType);
-                    HttpUtils.writeHttpResponse(resp, serializedResponse, HttpServletResponse.SC_UNAUTHORIZED, responseType, apiServer.getJSONContentType());
+                    HttpUtils.writeHttpResponse(resp, serializedResponse, HttpServletResponse.SC_UNAUTHORIZED, responseType, ApiServer.JSONcontentType.value());
                     return;
                 }
 
@@ -267,7 +265,7 @@
                         s_logger.info("missing command, ignoring request...");
                         auditTrailSb.append(" " + HttpServletResponse.SC_BAD_REQUEST + " " + "no command specified");
                         final String serializedResponse = apiServer.getSerializedApiError(HttpServletResponse.SC_BAD_REQUEST, "no command specified", params, responseType);
-                        HttpUtils.writeHttpResponse(resp, serializedResponse, HttpServletResponse.SC_BAD_REQUEST, responseType, apiServer.getJSONContentType());
+                        HttpUtils.writeHttpResponse(resp, serializedResponse, HttpServletResponse.SC_BAD_REQUEST, responseType, ApiServer.JSONcontentType.value());
                         return;
                     }
                     final User user = entityMgr.findById(User.class, userId);
@@ -283,7 +281,7 @@
                     auditTrailSb.append(" " + HttpServletResponse.SC_UNAUTHORIZED + " " + "unable to verify user credentials");
                     final String serializedResponse =
                             apiServer.getSerializedApiError(HttpServletResponse.SC_UNAUTHORIZED, "unable to verify user credentials", params, responseType);
-                    HttpUtils.writeHttpResponse(resp, serializedResponse, HttpServletResponse.SC_UNAUTHORIZED, responseType, apiServer.getJSONContentType());
+                    HttpUtils.writeHttpResponse(resp, serializedResponse, HttpServletResponse.SC_UNAUTHORIZED, responseType, ApiServer.JSONcontentType.value());
                     return;
                 }
             } else {
@@ -297,7 +295,7 @@
                 // Add the HTTP method (GET/POST/PUT/DELETE) as well into the params map.
                 params.put("httpmethod", new String[] {req.getMethod()});
                 final String response = apiServer.handleRequest(params, responseType, auditTrailSb);
-                HttpUtils.writeHttpResponse(resp, response != null ? response : "", HttpServletResponse.SC_OK, responseType, apiServer.getJSONContentType());
+                HttpUtils.writeHttpResponse(resp, response != null ? response : "", HttpServletResponse.SC_OK, responseType, ApiServer.JSONcontentType.value());
             } else {
                 if (session != null) {
                     try {
@@ -310,13 +308,13 @@
                 final String serializedResponse =
                         apiServer.getSerializedApiError(HttpServletResponse.SC_UNAUTHORIZED, "unable to verify user credentials and/or request signature", params,
                                 responseType);
-                HttpUtils.writeHttpResponse(resp, serializedResponse, HttpServletResponse.SC_UNAUTHORIZED, responseType, apiServer.getJSONContentType());
+                HttpUtils.writeHttpResponse(resp, serializedResponse, HttpServletResponse.SC_UNAUTHORIZED, responseType, ApiServer.JSONcontentType.value());
 
             }
         } catch (final ServerApiException se) {
             final String serializedResponseText = apiServer.getSerializedApiError(se, params, responseType);
             resp.setHeader("X-Description", se.getDescription());
-            HttpUtils.writeHttpResponse(resp, serializedResponseText, se.getErrorCode().getHttpCode(), responseType, apiServer.getJSONContentType());
+            HttpUtils.writeHttpResponse(resp, serializedResponseText, se.getErrorCode().getHttpCode(), responseType, ApiServer.JSONcontentType.value());
             auditTrailSb.append(" " + se.getErrorCode() + " " + se.getDescription());
         } catch (final Exception ex) {
             s_logger.error("unknown exception writing api response", ex);
diff --git a/server/src/com/cloud/api/doc/ApiXmlDocReader.java b/server/src/com/cloud/api/doc/ApiXmlDocReader.java
index a9e49b2..a8aa97b 100644
--- a/server/src/com/cloud/api/doc/ApiXmlDocReader.java
+++ b/server/src/com/cloud/api/doc/ApiXmlDocReader.java
@@ -30,6 +30,7 @@
 import java.util.List;
 import java.util.Arrays;
 
+import com.google.gson.Gson;
 
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.io.xml.DomDriver;
@@ -45,6 +46,8 @@
         ArrayList<Command> addedCommands = new ArrayList<Command>();
         ArrayList<Command> removedCommands = new ArrayList<Command>();
         HashMap<String, Command> stableCommands = new HashMap<String, Command>();
+        HashMap<String, Object> jsonOut = new HashMap<String, Object>();
+        Gson gson = new Gson();
 
         XStream xs = new XStream(new DomDriver());
         xs.alias("command", Command.class);
@@ -108,49 +111,69 @@
         }
 
         try (FileWriter fstream = new FileWriter(dirName + "/diff.txt");
-             BufferedWriter out = new BufferedWriter(fstream);){
+             BufferedWriter out = new BufferedWriter(fstream);
+             FileWriter jfstream = new FileWriter(dirName + "/diff.json");
+             BufferedWriter json = new BufferedWriter(jfstream);){
             // Print added commands
             out.write("Added commands:\n");
+            ArrayList<HashMap<String, Object>> addedCmds = new ArrayList<HashMap<String, Object>>();
             for (Command c : addedCommands) {
+                HashMap<String, Object> addedCmd = new HashMap<String, Object>();
                 if (c.getDescription() != null && !c.getDescription().isEmpty()) {
                     out.write("\n    " + c.getName() + " (" + c.getDescription() + ")\n");
+                    addedCmd.put("description", c.getDescription());
                 } else {
                     out.write("\n    " + c.getName() + "\n");
                 }
-
+                addedCmd.put("name", c.getName());
+                addedCmds.add(addedCmd);
             }
+            jsonOut.put("commands_added", addedCmds);
 
             // Print removed commands
             out.write("\nRemoved commands:\n");
+            ArrayList<HashMap<String, Object>> removedCmds = new ArrayList<HashMap<String, Object>>();
             for (Command c : removedCommands) {
+                HashMap<String, Object> removedCmd = new HashMap<String, Object>();
                 if (c.getDescription() != null && !c.getDescription().isEmpty()) {
                     out.write("\n\t" + c.getName() + " (" + c.getDescription() + ")\n");
+                    removedCmd.put("description", c.getDescription());
                 } else {
                     out.write("\n\t" + c.getName() + "\n");
                 }
-
+                removedCmd.put("name", c.getName());
+                removedCmds.add(removedCmd);
             }
+            jsonOut.put("commands_removed", removedCmds);
 
             out.write("\nChanges in command type (sync versus async)\n");
+            ArrayList<HashMap<String, Object>> syncChangeCmds = new ArrayList<HashMap<String, Object>>();
             // Verify if the command was sync and became async and vice versa
             for (Map.Entry<String,Command>entry : stableCommands.entrySet()) {
                 if (commands.get(entry.getKey()).isAsync() != oldCommands.get(entry.getKey()).isAsync()) {
+                    HashMap<String, Object> syncChangeCmd = new HashMap<String, Object>();
                     String type = "Sync";
                     if (commands.get(entry.getKey()).isAsync()) {
                         type = "Async";
                     }
+                    syncChangeCmd.put("name", entry.getValue().getName());
+                    syncChangeCmd.put("sync_type", type);
+                    syncChangeCmds.add(syncChangeCmd);
                     out.write("\n\t" + entry.getValue().getName() + " became " + type);
                 }
             }
+            jsonOut.put("commands_sync_changed", syncChangeCmds);
 
             // Print differences between commands arguments
             out.write("\n\nChanges in commands arguments:\n");
+            ArrayList<HashMap<String, Object>> argsChangeCmds = new ArrayList<HashMap<String, Object>>();
             for (String key : stableCommands.keySet()) {
                 ArrayList<Argument> newReqArgs = new ArrayList<Argument>();
                 ArrayList<Argument> removedReqArgs = new ArrayList<Argument>();
                 HashMap<String, Argument> stableReqArgs = new HashMap<String, Argument>();
                 ArrayList<Argument> newRespArgs = new ArrayList<Argument>();
                 ArrayList<Argument> removedRespArgs = new ArrayList<Argument>();
+                HashMap<String, Object> argsChangeCmd = new HashMap<String, Object>();
 
                 Command newCommand = commands.get(key);
                 Command oldCommand = oldCommands.get(key);
@@ -208,22 +231,30 @@
                     commandInfo.append("\n\t" + key);
                     out.write(commandInfo.toString());
                     out.write("\n");
+                    argsChangeCmd.put("name", key);
 
                     // Request
                     if (newReqArgs.size() != 0 || removedReqArgs.size() != 0 || stableReqArgs.size() != 0) {
+                        HashMap<String, Object> requestChanges = new HashMap<String, Object>();
                         StringBuffer request = new StringBuffer();
                         request.append("\n\t\tRequest:\n");
                         out.write(request.toString());
                         if (newReqArgs.size() != 0) {
                             StringBuffer newParameters = new StringBuffer();
                             newParameters.append("\n\t\t\tNew parameters: ");
+                            ArrayList<HashMap<String, Object>> newRequestParams = new ArrayList<HashMap<String, Object>>();
                             for (Argument newArg : newReqArgs) {
+                                HashMap<String, Object> newRequestParam = new HashMap<String, Object>();
                                 String isRequiredParam = "optional";
                                 if (newArg.isRequired()) {
                                     isRequiredParam = "required";
                                 }
+                                newRequestParam.put("name", newArg.getName());
+                                newRequestParam.put("required", newArg.isRequired());
+                                newRequestParams.add(newRequestParam);
                                 newParameters.append(newArg.getName() + " (" + isRequiredParam + "), ");
                             }
+                            requestChanges.put("params_new", newRequestParams);
                             newParameters.delete(newParameters.length() - 2, newParameters.length() - 1);
                             out.write(newParameters.toString());
                             out.write("\n");
@@ -231,9 +262,14 @@
                         if (removedReqArgs.size() != 0) {
                             StringBuffer removedParameters = new StringBuffer();
                             removedParameters.append("\n\t\t\tRemoved parameters: ");
+                            ArrayList<HashMap<String, Object>> removedRequestParams = new ArrayList<HashMap<String, Object>>();
                             for (Argument removedArg : removedReqArgs) {
+                                HashMap<String, Object> removedRequestParam = new HashMap<String, Object>();
+                                removedRequestParam.put("name", removedArg.getName());
+                                removedRequestParams.add(removedRequestParam);
                                 removedParameters.append(removedArg.getName() + ", ");
                             }
+                            requestChanges.put("params_removed", removedRequestParams);
                             removedParameters.delete(removedParameters.length() - 2, removedParameters.length() - 1);
                             out.write(removedParameters.toString());
                             out.write("\n");
@@ -242,52 +278,78 @@
                         if (stableReqArgs.size() != 0) {
                             StringBuffer changedParameters = new StringBuffer();
                             changedParameters.append("\n\t\t\tChanged parameters: ");
+                            ArrayList<HashMap<String, Object>> changedRequestParams = new ArrayList<HashMap<String, Object>>();
                             for (Argument stableArg : stableReqArgs.values()) {
+                                HashMap<String, Object> changedRequestParam = new HashMap<String, Object>();
                                 String newRequired = "optional";
                                 String oldRequired = "optional";
-                                if ((oldCommand.getReqArgByName(stableArg.getName()) != null) && (oldCommand.getReqArgByName(stableArg.getName()).isRequired() == true))
+                                changedRequestParam.put("required_old", false);
+                                changedRequestParam.put("required_new", false);
+                                if ((oldCommand.getReqArgByName(stableArg.getName()) != null) && (oldCommand.getReqArgByName(stableArg.getName()).isRequired() == true)) {
                                     oldRequired = "required";
-                                if ((newCommand.getReqArgByName(stableArg.getName()) != null) && (newCommand.getReqArgByName(stableArg.getName()).isRequired() == true))
+                                    changedRequestParam.put("required_old", true);
+                                }
+                                if ((newCommand.getReqArgByName(stableArg.getName()) != null) && (newCommand.getReqArgByName(stableArg.getName()).isRequired() == true)) {
                                     newRequired = "required";
+                                    changedRequestParam.put("required_new", true);
+                                }
+                                changedRequestParam.put("name", stableArg.getName());
+                                changedRequestParams.add(changedRequestParam);
                                 changedParameters.append(stableArg.getName() + " (old version - " + oldRequired + ", new version - " + newRequired + "), ");
                             }
+                            requestChanges.put("params_changed", changedRequestParams);
                             changedParameters.delete(changedParameters.length() - 2, changedParameters.length() - 1);
                             out.write(changedParameters.toString());
                             out.write("\n");
                         }
+                        argsChangeCmd.put("request", requestChanges);
                     }
 
                     // Response
                     if (newRespArgs.size() != 0 || removedRespArgs.size() != 0) {
+                        HashMap<String, Object> responseChanges = new HashMap<String, Object>();
                         StringBuffer changedResponseParams = new StringBuffer();
                         changedResponseParams.append("\n\t\tResponse:\n");
                         out.write(changedResponseParams.toString());
                         if (newRespArgs.size() != 0) {
+                            ArrayList<HashMap<String, Object>> newResponseParams = new ArrayList<HashMap<String, Object>>();
                             StringBuffer newRespParams = new StringBuffer();
                             newRespParams.append("\n\t\t\tNew parameters: ");
                             for (Argument newArg : newRespArgs) {
+                                HashMap<String, Object> newResponseParam = new HashMap<String, Object>();
+                                newResponseParam.put("name", newArg.getName());
+                                newResponseParams.add(newResponseParam);
                                 newRespParams.append(newArg.getName() + ", ");
                             }
+                            responseChanges.put("params_new", newResponseParams);
                             newRespParams.delete(newRespParams.length() - 2, newRespParams.length() - 1);
                             out.write(newRespParams.toString());
                             out.write("\n");
                         }
                         if (removedRespArgs.size() != 0) {
+                            ArrayList<HashMap<String, Object>> removedResponseParams = new ArrayList<HashMap<String, Object>>();
                             StringBuffer removedRespParams = new StringBuffer();
                             removedRespParams.append("\n\t\t\tRemoved parameters: ");
                             for (Argument removedArg : removedRespArgs) {
+                                HashMap<String, Object> removedResponseParam = new HashMap<String, Object>();
+                                removedResponseParam.put("name", removedArg.getName());
+                                removedResponseParams.add(removedResponseParam);
                                 removedRespParams.append(removedArg.getName() + ", ");
                             }
+                            responseChanges.put("params_removed", removedResponseParams);
                             removedRespParams.delete(removedRespParams.length() - 2, removedRespParams.length() - 1);
                             out.write(removedRespParams.toString());
                             out.write("\n");
                         }
+                        argsChangeCmd.put("response", responseChanges);
                     }
+                    argsChangeCmds.add(argsChangeCmd);
                 }
             }
+            jsonOut.put("commands_args_changed", argsChangeCmds);
+            json.write(gson.toJson(jsonOut));
         } catch (IOException e) {
             e.printStackTrace();
         }
-
     }
 }
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 1df8f1e..be165ba 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -125,7 +125,6 @@
 import com.cloud.api.query.dao.SecurityGroupJoinDao;
 import com.cloud.api.query.dao.ServiceOfferingJoinDao;
 import com.cloud.api.query.dao.StoragePoolJoinDao;
-import com.cloud.api.query.dao.StorageTagDao;
 import com.cloud.api.query.dao.TemplateJoinDao;
 import com.cloud.api.query.dao.UserAccountJoinDao;
 import com.cloud.api.query.dao.UserVmJoinDao;
@@ -149,7 +148,6 @@
 import com.cloud.api.query.vo.SecurityGroupJoinVO;
 import com.cloud.api.query.vo.ServiceOfferingJoinVO;
 import com.cloud.api.query.vo.StoragePoolJoinVO;
-import com.cloud.api.query.vo.StorageTagVO;
 import com.cloud.api.query.vo.TemplateJoinVO;
 import com.cloud.api.query.vo.UserAccountJoinVO;
 import com.cloud.api.query.vo.UserVmJoinVO;
@@ -190,8 +188,10 @@
 import com.cloud.storage.Storage;
 import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.Storage.TemplateType;
+import com.cloud.storage.StoragePoolTagVO;
 import com.cloud.storage.VMTemplateVO;
 import com.cloud.storage.Volume;
+import com.cloud.storage.dao.StoragePoolTagsDao;
 import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.tags.ResourceTagVO;
 import com.cloud.tags.dao.ResourceTagDao;
@@ -306,7 +306,7 @@
     private StoragePoolJoinDao _poolJoinDao;
 
     @Inject
-    private StorageTagDao _storageTagDao;
+    private StoragePoolTagsDao _storageTagDao;
 
     @Inject
     private HostTagDao _hostTagDao;
@@ -2269,43 +2269,43 @@
 
     @Override
     public ListResponse<StorageTagResponse> searchForStorageTags(ListStorageTagsCmd cmd) {
-        Pair<List<StorageTagVO>, Integer> result = searchForStorageTagsInternal(cmd);
+        Pair<List<StoragePoolTagVO>, Integer> result = searchForStorageTagsInternal(cmd);
         ListResponse<StorageTagResponse> response = new ListResponse<StorageTagResponse>();
-        List<StorageTagResponse> tagResponses = ViewResponseHelper.createStorageTagResponse(result.first().toArray(new StorageTagVO[result.first().size()]));
+        List<StorageTagResponse> tagResponses = ViewResponseHelper.createStorageTagResponse(result.first().toArray(new StoragePoolTagVO[result.first().size()]));
 
         response.setResponses(tagResponses, result.second());
 
         return response;
     }
 
-    private Pair<List<StorageTagVO>, Integer> searchForStorageTagsInternal(ListStorageTagsCmd cmd) {
-        Filter searchFilter = new Filter(StorageTagVO.class, "id", Boolean.TRUE, null, null);
+    private Pair<List<StoragePoolTagVO>, Integer> searchForStorageTagsInternal(ListStorageTagsCmd cmd) {
+        Filter searchFilter = new Filter(StoragePoolTagVO.class, "id", Boolean.TRUE, null, null);
 
-        SearchBuilder<StorageTagVO> sb = _storageTagDao.createSearchBuilder();
+        SearchBuilder<StoragePoolTagVO> sb = _storageTagDao.createSearchBuilder();
 
         sb.select(null, Func.DISTINCT, sb.entity().getId()); // select distinct
 
-        SearchCriteria<StorageTagVO> sc = sb.create();
+        SearchCriteria<StoragePoolTagVO> sc = sb.create();
 
         // search storage tag details by ids
-        Pair<List<StorageTagVO>, Integer> uniqueTagPair = _storageTagDao.searchAndCount(sc, searchFilter);
+        Pair<List<StoragePoolTagVO>, Integer> uniqueTagPair = _storageTagDao.searchAndCount(sc, searchFilter);
         Integer count = uniqueTagPair.second();
 
         if (count.intValue() == 0) {
             return uniqueTagPair;
         }
 
-        List<StorageTagVO> uniqueTags = uniqueTagPair.first();
+        List<StoragePoolTagVO> uniqueTags = uniqueTagPair.first();
         Long[] vrIds = new Long[uniqueTags.size()];
         int i = 0;
 
-        for (StorageTagVO v : uniqueTags) {
+        for (StoragePoolTagVO v : uniqueTags) {
             vrIds[i++] = v.getId();
         }
 
-        List<StorageTagVO> vrs = _storageTagDao.searchByIds(vrIds);
+        List<StoragePoolTagVO> vrs = _storageTagDao.searchByIds(vrIds);
 
-        return new Pair<List<StorageTagVO>, Integer>(vrs, count);
+        return new Pair<List<StoragePoolTagVO>, Integer>(vrs, count);
     }
 
     @Override
@@ -3147,9 +3147,14 @@
                 ex.addProxyObject(template.getUuid(), "templateId");
                 throw ex;
             }
+            if (caller.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN) {
+                Account template_acc = _accountMgr.getAccount(template.getAccountId());
+                DomainVO domain = _domainDao.findById(template_acc.getDomainId());
+                _accountMgr.checkAccess(caller, domain);
 
-            // if template is not public, perform permission check here
-            if (!template.isPublicTemplate() && caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
+
+            }// if template is not public, perform permission check here
+            else if (!template.isPublicTemplate() && caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
                 _accountMgr.checkAccess(caller, null, false, template);
             }
 
diff --git a/server/src/com/cloud/api/query/ViewResponseHelper.java b/server/src/com/cloud/api/query/ViewResponseHelper.java
index 09f2f7d..bc41843 100644
--- a/server/src/com/cloud/api/query/ViewResponseHelper.java
+++ b/server/src/com/cloud/api/query/ViewResponseHelper.java
@@ -73,11 +73,11 @@
 import com.cloud.api.query.vo.SecurityGroupJoinVO;
 import com.cloud.api.query.vo.ServiceOfferingJoinVO;
 import com.cloud.api.query.vo.StoragePoolJoinVO;
-import com.cloud.api.query.vo.StorageTagVO;
 import com.cloud.api.query.vo.TemplateJoinVO;
 import com.cloud.api.query.vo.UserAccountJoinVO;
 import com.cloud.api.query.vo.UserVmJoinVO;
 import com.cloud.api.query.vo.VolumeJoinVO;
+import com.cloud.storage.StoragePoolTagVO;
 import com.cloud.user.Account;
 
 /**
@@ -294,10 +294,10 @@
         return new ArrayList<StoragePoolResponse>(vrDataList.values());
     }
 
-    public static List<StorageTagResponse> createStorageTagResponse(StorageTagVO... storageTags) {
+    public static List<StorageTagResponse> createStorageTagResponse(StoragePoolTagVO... storageTags) {
         ArrayList<StorageTagResponse> list = new ArrayList<StorageTagResponse>();
 
-        for (StorageTagVO vr : storageTags) {
+        for (StoragePoolTagVO vr : storageTags) {
             list.add(ApiDBUtils.newStorageTagResponse(vr));
         }
 
diff --git a/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java
index 58a0366..3d8cc94 100644
--- a/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/HostJoinDaoImpl.java
@@ -154,8 +154,10 @@
                 Long mem = host.getMemReservedCapacity() + host.getMemUsedCapacity();
                 Long cpu = host.getCpuReservedCapacity() + host.getCpuUsedCapacity();
 
+                hostResponse.setMemoryTotal(mem);
+                Float totalMemorywithOverprovisioning=new Float((host.getTotalMemory()*ApiDBUtils.getMemOverprovisioningFactor(host.getClusterId())));
+                hostResponse.setMemWithOverprovisioning(totalMemorywithOverprovisioning.toString());
                 hostResponse.setMemoryAllocated(mem);
-                hostResponse.setMemoryTotal(host.getTotalMemory());
 
                 String hostTags = host.getTag();
                 hostResponse.setHostTags(host.getTag());
@@ -173,10 +175,10 @@
 
                 hostResponse.setHypervisorVersion(host.getHypervisorVersion());
 
-                String cpuAlloc = decimalFormat.format(((float)cpu / (float)(host.getCpus() * host.getSpeed())) * 100f) + "%";
+                Float cpuWithOverprovisioning = new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId()));
+                String cpuAlloc = decimalFormat.format(((float)cpu / cpuWithOverprovisioning * 100f)) + "%";
                 hostResponse.setCpuAllocated(cpuAlloc);
-                String cpuWithOverprovisioning = new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor()).toString();
-                hostResponse.setCpuWithOverprovisioning(cpuWithOverprovisioning);
+                hostResponse.setCpuWithOverprovisioning(cpuWithOverprovisioning.toString());
             }
 
             if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) {
@@ -297,8 +299,10 @@
                 Long mem = host.getMemReservedCapacity() + host.getMemUsedCapacity();
                 Long cpu = host.getCpuReservedCapacity() + host.getCpuReservedCapacity();
 
-                hostResponse.setMemoryAllocated(mem);
-                hostResponse.setMemoryTotal(host.getTotalMemory());
+                hostResponse.setMemoryTotal(mem);
+                Float memWithOverprovisioning =new Float((host.getTotalMemory()*ApiDBUtils.getMemOverprovisioningFactor(host.getClusterId())));
+                hostResponse.setMemWithOverprovisioning(memWithOverprovisioning.toString());
+                hostResponse.setMemoryAllocated(decimalFormat.format((float)mem/ memWithOverprovisioning*100f).toString()+"%");
 
                 String hostTags = host.getTag();
                 hostResponse.setHostTags(host.getTag());
@@ -316,10 +320,10 @@
 
                 hostResponse.setHypervisorVersion(host.getHypervisorVersion());
 
-                String cpuAlloc = decimalFormat.format(((float)cpu / (float)(host.getCpus() * host.getSpeed())) * 100f) + "%";
+                Float cpuWithOverprovisioning = new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId()));
+                String cpuAlloc = decimalFormat.format(((float)cpu / cpuWithOverprovisioning * 100f)).toString() + "%";
                 hostResponse.setCpuAllocated(cpuAlloc);
-                String cpuWithOverprovisioning = new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor()).toString();
-                hostResponse.setCpuWithOverprovisioning(cpuWithOverprovisioning);
+                hostResponse.setCpuWithOverprovisioning(cpuWithOverprovisioning.toString());
             }
 
             if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) {
diff --git a/server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java
index 4add719..7734489 100644
--- a/server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java
@@ -24,8 +24,6 @@
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.api.response.ImageStoreDetailResponse;
 import org.apache.cloudstack.api.response.ImageStoreResponse;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 
@@ -77,32 +75,12 @@
         osResponse.setZoneId(ids.getZoneUuid());
         osResponse.setZoneName(ids.getZoneName());
 
-        String detailName = ids.getDetailName();
-        if ( detailName != null && detailName.length() > 0 && !detailName.equals(ApiConstants.PASSWORD)) {
-            String detailValue = ids.getDetailValue();
-            if (detailName.equals(ApiConstants.KEY) || detailName.equals(ApiConstants.S3_SECRET_KEY)) {
-                // ALWAYS return an empty value for the S3 secret key since that key is managed by Amazon and not CloudStack
-                detailValue = "";
-            }
-            ImageStoreDetailResponse osdResponse = new ImageStoreDetailResponse(detailName, detailValue);
-            osResponse.addDetail(osdResponse);
-        }
         osResponse.setObjectName("imagestore");
         return osResponse;
     }
 
     @Override
     public ImageStoreResponse setImageStoreResponse(ImageStoreResponse response, ImageStoreJoinVO ids) {
-        String detailName = ids.getDetailName();
-        if ( detailName != null && detailName.length() > 0 && !detailName.equals(ApiConstants.PASSWORD)) {
-            String detailValue = ids.getDetailValue();
-            if (detailName.equals(ApiConstants.KEY) || detailName.equals(ApiConstants.S3_SECRET_KEY)) {
-                // ALWAYS return an empty value for the S3 secret key since that key is managed by Amazon and not CloudStack
-                detailValue = "";
-            }
-            ImageStoreDetailResponse osdResponse = new ImageStoreDetailResponse(detailName, detailValue);
-            response.addDetail(osdResponse);
-        }
         return response;
     }
 
diff --git a/server/src/com/cloud/api/query/dao/ProjectJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/ProjectJoinDaoImpl.java
index 65330ac..25598b3 100644
--- a/server/src/com/cloud/api/query/dao/ProjectJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/ProjectJoinDaoImpl.java
@@ -93,6 +93,7 @@
         Account account = _accountDao.findByIdIncludingRemoved(proj.getProjectAccountId());
         AccountJoinVO accountJn = ApiDBUtils.newAccountView(account);
         _accountJoinDao.setResourceLimits(accountJn, false, response);
+        response.setProjectAccountName(accountJn.getAccountName());
 
         response.setObjectName("project");
         return response;
diff --git a/server/src/com/cloud/api/query/dao/StorageTagDaoImpl.java b/server/src/com/cloud/api/query/dao/StorageTagDaoImpl.java
deleted file mode 100644
index 63557d7..0000000
--- a/server/src/com/cloud/api/query/dao/StorageTagDaoImpl.java
+++ /dev/null
@@ -1,124 +0,0 @@
-// 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.api.query.dao;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.apache.cloudstack.api.response.StorageTagResponse;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import com.cloud.api.query.vo.StorageTagVO;
-import com.cloud.utils.db.GenericDaoBase;
-import com.cloud.utils.db.SearchBuilder;
-import com.cloud.utils.db.SearchCriteria;
-
-@Component
-public class StorageTagDaoImpl extends GenericDaoBase<StorageTagVO, Long> implements StorageTagDao {
-    public static final Logger s_logger = Logger.getLogger(StorageTagDaoImpl.class);
-
-    @Inject
-    private ConfigurationDao _configDao;
-
-    private final SearchBuilder<StorageTagVO> stSearch;
-    private final SearchBuilder<StorageTagVO> stIdSearch;
-
-    protected StorageTagDaoImpl() {
-        stSearch = createSearchBuilder();
-
-        stSearch.and("idIN", stSearch.entity().getId(), SearchCriteria.Op.IN);
-        stSearch.done();
-
-        stIdSearch = createSearchBuilder();
-
-        stIdSearch.and("id", stIdSearch.entity().getId(), SearchCriteria.Op.EQ);
-        stIdSearch.done();
-
-        _count = "select count(distinct id) from storage_tag_view WHERE ";
-    }
-
-    @Override
-    public StorageTagResponse newStorageTagResponse(StorageTagVO tag) {
-        StorageTagResponse tagResponse = new StorageTagResponse();
-
-        tagResponse.setName(tag.getName());
-        tagResponse.setPoolId(tag.getPoolId());
-
-        tagResponse.setObjectName("storagetag");
-
-        return tagResponse;
-    }
-
-    @Override
-    public List<StorageTagVO> searchByIds(Long... stIds) {
-        String batchCfg = _configDao.getValue("detail.batch.query.size");
-
-        final int detailsBatchSize = batchCfg != null ? Integer.parseInt(batchCfg) : 2000;
-
-        // query details by batches
-        List<StorageTagVO> uvList = new ArrayList<StorageTagVO>();
-        int curr_index = 0;
-
-        if (stIds.length > detailsBatchSize) {
-            while ((curr_index + detailsBatchSize) <= stIds.length) {
-                Long[] ids = new Long[detailsBatchSize];
-
-                for (int k = 0, j = curr_index; j < curr_index + detailsBatchSize; j++, k++) {
-                    ids[k] = stIds[j];
-                }
-
-                SearchCriteria<StorageTagVO> sc = stSearch.create();
-
-                sc.setParameters("idIN", (Object[])ids);
-
-                List<StorageTagVO> vms = searchIncludingRemoved(sc, null, null, false);
-
-                if (vms != null) {
-                    uvList.addAll(vms);
-                }
-
-                curr_index += detailsBatchSize;
-            }
-        }
-
-        if (curr_index < stIds.length) {
-            int batch_size = (stIds.length - curr_index);
-            // set the ids value
-            Long[] ids = new Long[batch_size];
-
-            for (int k = 0, j = curr_index; j < curr_index + batch_size; j++, k++) {
-                ids[k] = stIds[j];
-            }
-
-            SearchCriteria<StorageTagVO> sc = stSearch.create();
-
-            sc.setParameters("idIN", (Object[])ids);
-
-            List<StorageTagVO> vms = searchIncludingRemoved(sc, null, null, false);
-
-            if (vms != null) {
-                uvList.addAll(vms);
-            }
-        }
-
-        return uvList;
-    }
-}
diff --git a/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
index 38120af..92a2e20 100644
--- a/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
@@ -284,6 +284,7 @@
 
         isoResponse.setOsTypeId(iso.getGuestOSUuid());
         isoResponse.setOsTypeName(iso.getGuestOSName());
+        isoResponse.setBits(iso.getBits());
 
         // populate owner.
         ApiResponseHelper.populateOwner(isoResponse, iso);
diff --git a/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
index 106cd25..75b42c2 100644
--- a/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/UserVmJoinDaoImpl.java
@@ -51,7 +51,6 @@
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.vm.UserVmDetailVO;
 import com.cloud.vm.VirtualMachine.State;
-import com.cloud.vm.VmDetailConstants;
 import com.cloud.vm.VmStats;
 import com.cloud.vm.dao.NicSecondaryIpVO;
 import com.cloud.vm.dao.UserVmDetailsDao;
@@ -292,11 +291,13 @@
         }
 
         // set resource details map
-        // only hypervisortoolsversion can be returned to the end user
-        UserVmDetailVO hypervisorToolsVersion = _userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.HYPERVISOR_TOOLS_VERSION);
-        if (hypervisorToolsVersion != null) {
+        // Allow passing details to end user
+        List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(userVm.getId());
+        if (vmDetails != null) {
             Map<String, String> resourceDetails = new HashMap<String, String>();
-            resourceDetails.put(hypervisorToolsVersion.getName(), hypervisorToolsVersion.getValue());
+            for (UserVmDetailVO userVmDetailVO : vmDetails) {
+                resourceDetails.put(userVmDetailVO.getName(), userVmDetailVO.getValue());
+            }
             userVmResponse.setDetails(resourceDetails);
         }
 
diff --git a/server/src/com/cloud/api/query/vo/ImageStoreJoinVO.java b/server/src/com/cloud/api/query/vo/ImageStoreJoinVO.java
index 6d9f038..244f89e 100644
--- a/server/src/com/cloud/api/query/vo/ImageStoreJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/ImageStoreJoinVO.java
@@ -76,12 +76,6 @@
     @Column(name = "data_center_name")
     private String zoneName;
 
-    @Column(name = "detail_name")
-    private String detailName;
-
-    @Column(name = "detail_value")
-    private String detailValue;
-
     @Column(name = GenericDao.REMOVED_COLUMN)
     private Date removed;
 
@@ -127,14 +121,6 @@
         return scope;
     }
 
-    public String getDetailName() {
-        return detailName;
-    }
-
-    public String getDetailValue() {
-        return detailValue;
-    }
-
     public DataStoreRole getRole() {
         return role;
     }
diff --git a/server/src/com/cloud/capacity/CapacityManagerImpl.java b/server/src/com/cloud/capacity/CapacityManagerImpl.java
index d0ae3e9..caf91a9 100644
--- a/server/src/com/cloud/capacity/CapacityManagerImpl.java
+++ b/server/src/com/cloud/capacity/CapacityManagerImpl.java
@@ -1101,6 +1101,6 @@
     @Override
     public ConfigKey<?>[] getConfigKeys() {
         return new ConfigKey<?>[] {CpuOverprovisioningFactor, MemOverprovisioningFactor, StorageCapacityDisableThreshold, StorageOverprovisioningFactor,
-            StorageAllocatedCapacityDisableThreshold, StorageOperationsExcludeCluster};
+            StorageAllocatedCapacityDisableThreshold, StorageOperationsExcludeCluster, VmwareCreateCloneFull, ImageStoreNFSVersion};
     }
 }
diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java
index a525360..09c502d 100644
--- a/server/src/com/cloud/configuration/Config.java
+++ b/server/src/com/cloud/configuration/Config.java
@@ -16,15 +16,6 @@
 // under the License.
 package com.cloud.configuration;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
-import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
-import org.apache.cloudstack.framework.config.ConfigKey;
-
 import com.cloud.agent.AgentManager;
 import com.cloud.consoleproxy.ConsoleProxyManager;
 import com.cloud.ha.HighAvailabilityManager;
@@ -38,6 +29,14 @@
 import com.cloud.template.TemplateManager;
 import com.cloud.vm.UserVmManager;
 import com.cloud.vm.snapshot.VMSnapshotManager;
+import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
+import org.apache.cloudstack.framework.config.ConfigKey;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.StringTokenizer;
 
 public enum Config {
 
@@ -440,14 +439,6 @@
             null),
     ConsoleProxyRestart("Console Proxy", AgentManager.class, Boolean.class, "consoleproxy.restart", "true", "Console proxy restart flag, defaulted to true", null),
     ConsoleProxyUrlDomain("Console Proxy", AgentManager.class, String.class, "consoleproxy.url.domain", "", "Console proxy url domain", "domainName"),
-    ConsoleProxyLoadscanInterval(
-            "Console Proxy",
-            AgentManager.class,
-            String.class,
-            "consoleproxy.loadscan.interval",
-            "10000",
-            "The time interval(in milliseconds) to scan console proxy working-load info",
-            null),
     ConsoleProxySessionMax(
             "Console Proxy",
             AgentManager.class,
@@ -498,10 +489,7 @@
             null),
 
     // Snapshots
-    SnapshotHourlyMax("Snapshots", SnapshotManager.class, Integer.class, "snapshot.max.hourly", "8", "Maximum hourly snapshots for a volume", null),
-    SnapshotDailyMax("Snapshots", SnapshotManager.class, Integer.class, "snapshot.max.daily", "8", "Maximum daily snapshots for a volume", null),
-    SnapshotWeeklyMax("Snapshots", SnapshotManager.class, Integer.class, "snapshot.max.weekly", "8", "Maximum weekly snapshots for a volume", null),
-    SnapshotMonthlyMax("Snapshots", SnapshotManager.class, Integer.class, "snapshot.max.monthly", "8", "Maximum monthly snapshots for a volume", null),
+
     SnapshotPollInterval(
             "Snapshots",
             SnapshotManager.class,
@@ -1221,14 +1209,6 @@
             "Specify whether or not to recycle hung worker VMs",
             null),
     VmwareHungWorkerTimeout("Advanced", ManagementServer.class, Long.class, "vmware.hung.wokervm.timeout", "7200", "Worker VM timeout in seconds", null),
-    VmwareEnableNestedVirtualization(
-            "Advanced",
-            ManagementServer.class,
-            Boolean.class,
-            "vmware.nested.virtualization",
-            "false",
-            "When set to true this will enable nested virtualization when this is supported by the hypervisor",
-            null),
     VmwareVcenterSessionTimeout("Advanced", ManagementServer.class, Long.class, "vmware.vcenter.session.timeout", "1200", "VMware client timeout in seconds", null),
 
     // Midonet
@@ -1517,24 +1497,6 @@
             "Percentage (as a value between 0 and 1) of connected agents after which agent load balancing will start happening",
             null),
 
-    JSONDefaultContentType(
-            "Advanced",
-            ManagementServer.class,
-            String.class,
-            "json.content.type",
-            "application/json; charset=UTF-8",
-            "Http response content type for JSON",
-            null),
-
-    EnableSecureSessionCookie(
-            "Advanced",
-            ManagementServer.class,
-            Boolean.class,
-            "enable.secure.session.cookie",
-            "false",
-            "Session cookie's secure flag is enabled if true. Use this only when using HTTPS",
-            null),
-
     DefaultMaxDomainUserVms("Domain Defaults", ManagementServer.class, Long.class, "max.domain.user.vms", "40", "The default maximum number of user VMs that can be deployed for a domain", null),
     DefaultMaxDomainPublicIPs("Domain Defaults", ManagementServer.class, Long.class, "max.domain.public.ips", "40", "The default maximum number of public IPs that can be consumed by a domain", null),
     DefaultMaxDomainTemplates("Domain Defaults", ManagementServer.class, Long.class, "max.domain.templates", "40", "The default maximum number of templates that can be deployed for a domain", null),
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
old mode 100644
new mode 100755
index c85bac9..a936e97
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -34,8 +34,6 @@
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
-import org.apache.log4j.Logger;
-
 import org.apache.cloudstack.acl.SecurityChecker;
 import org.apache.cloudstack.affinity.AffinityGroup;
 import org.apache.cloudstack.affinity.AffinityGroupService;
@@ -67,6 +65,7 @@
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
 import org.apache.cloudstack.framework.config.ConfigDepot;
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.Configurable;
@@ -81,10 +80,15 @@
 import org.apache.cloudstack.region.Region;
 import org.apache.cloudstack.region.RegionVO;
 import org.apache.cloudstack.region.dao.RegionDao;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDao;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.MapUtils;
+import org.apache.log4j.Logger;
 
 import com.cloud.alert.AlertManager;
 import com.cloud.api.ApiDBUtils;
@@ -156,7 +160,6 @@
 import com.cloud.network.dao.PhysicalNetworkTrafficTypeDao;
 import com.cloud.network.dao.PhysicalNetworkTrafficTypeVO;
 import com.cloud.network.dao.PhysicalNetworkVO;
-import com.cloud.network.element.NetworkElement;
 import com.cloud.network.rules.LoadBalancerContainer.Scheme;
 import com.cloud.network.vpc.VpcManager;
 import com.cloud.offering.DiskOffering;
@@ -180,7 +183,6 @@
 import com.cloud.service.dao.ServiceOfferingDetailsDao;
 import com.cloud.storage.DiskOfferingVO;
 import com.cloud.storage.Storage.ProvisioningType;
-import com.cloud.storage.Storage.StoragePoolType;
 import com.cloud.storage.StorageManager;
 import com.cloud.storage.dao.DiskOfferingDao;
 import com.cloud.storage.dao.VolumeDao;
@@ -217,6 +219,8 @@
 import com.cloud.vm.dao.NicIpAliasVO;
 import com.cloud.vm.dao.NicSecondaryIpDao;
 import com.cloud.vm.dao.VMInstanceDao;
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Preconditions;
 
 public class ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, ConfigurationService, Configurable {
     public static final Logger s_logger = Logger.getLogger(ConfigurationManagerImpl.class);
@@ -336,6 +340,11 @@
     AffinityGroupService _affinityGroupService;
     @Inject
     StorageManager _storageManager;
+    @Inject
+    ImageStoreDao _imageStoreDao;
+    @Inject
+    ImageStoreDetailsDao _imageStoreDetailsDao;
+
 
     // FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao?
     @Inject
@@ -371,7 +380,6 @@
         configValuesForValidation.add("account.cleanup.interval");
         configValuesForValidation.add("alert.wait");
         configValuesForValidation.add("consoleproxy.capacityscan.interval");
-        configValuesForValidation.add("consoleproxy.loadscan.interval");
         configValuesForValidation.add("expunge.interval");
         configValuesForValidation.add("host.stats.interval");
         configValuesForValidation.add("investigate.retry.interval");
@@ -501,7 +509,7 @@
                     throw new InvalidParameterValueException("unable to find storage pool by id " + resourceId);
                 }
                 if(name.equals(CapacityManager.StorageOverprovisioningFactor.key())) {
-                    if(pool.getPoolType() != StoragePoolType.NetworkFilesystem && pool.getPoolType() != StoragePoolType.VMFS) {
+                    if(!pool.getPoolType().supportsOverProvisioning() ) {
                         throw new InvalidParameterValueException("Unable to update  storage pool with id " + resourceId + ". Overprovision not supported for " + pool.getPoolType());
                     }
                 }
@@ -524,6 +532,13 @@
                     _accountDetailsDao.update(accountDetailVO.getId(), accountDetailVO);
                 }
                 break;
+
+            case ImageStore:
+                final ImageStoreVO imgStore = _imageStoreDao.findById(resourceId);
+                Preconditions.checkState(imgStore != null);
+                _imageStoreDetailsDao.addDetail(resourceId, name, value, true);
+                break;
+
             default:
                 throw new InvalidParameterValueException("Scope provided is invalid");
             }
@@ -630,6 +645,7 @@
         final Long clusterId = cmd.getClusterId();
         final Long storagepoolId = cmd.getStoragepoolId();
         final Long accountId = cmd.getAccountId();
+        final Long imageStoreId = cmd.getImageStoreId();
         CallContext.current().setEventDetails(" Name: " + name + " New Value: " + (name.toLowerCase().contains("password") ? "*****" : value == null ? "" : value));
         // check if config value exists
         final ConfigurationVO config = _configDao.findByName(name);
@@ -680,6 +696,11 @@
             id = storagepoolId;
             paramCountCheck++;
         }
+        if (imageStoreId != null) {
+            scope = ConfigKey.Scope.ImageStore.toString();
+            id = imageStoreId;
+            paramCountCheck++;
+        }
 
         if (paramCountCheck > 1) {
             throw new InvalidParameterValueException("cannot handle multiple IDs, provide only one ID corresponding to the scope");
@@ -721,7 +742,8 @@
         } else {
             type = c.getType();
         }
-
+        //no need to validate further if a
+        //config can have null value.
         String errMsg = null;
         try {
             if (type.equals(Integer.class)) {
@@ -730,6 +752,9 @@
             } else if (type.equals(Float.class)) {
                 errMsg = "There was error in trying to parse value: " + value + ". Please enter a valid float value for parameter " + name;
                 Float.parseFloat(value);
+            } else if (type.equals(Long.class)) {
+                errMsg = "There was error in trying to parse value: " + value + ". Please enter a valid long value for parameter " + name;
+                Long.parseLong(value);
             }
         } catch (final Exception e) {
             // catching generic exception as some throws NullPointerException and some throws NumberFormatExcpeion
@@ -770,6 +795,20 @@
             return null;
         }
 
+        if (type.equals(Integer.class) && NetworkModel.MACIdentifier.key().equalsIgnoreCase(name)) {
+            try {
+                final int val = Integer.parseInt(value);
+                //The value need to be between 0 to 255 because the mac generation needs a value of 8 bit
+                //0 value is considered as disable.
+                if(val < 0 || val > 255){
+                    throw new InvalidParameterValueException(name+" value should be between 0 and 255. 0 value will disable this feature");
+                }
+            } catch (final NumberFormatException e) {
+                s_logger.error("There was an error trying to parse the integer value for:" + name);
+                throw new InvalidParameterValueException("There was an error trying to parse the integer value for:" + name);
+            }
+        }
+
         if (type.equals(Integer.class) && configValuesForValidation.contains(name)) {
             try {
                 final int val = Integer.parseInt(value);
@@ -1314,7 +1353,6 @@
         final String errorMsg = "The zone cannot be deleted because ";
 
 
-
         // Check if there are any non-removed hosts in the zone.
         if (!_hostDao.listByDataCenterId(zoneId).isEmpty()) {
             throw new CloudRuntimeException(errorMsg + "there are servers in this zone.");
@@ -1350,6 +1388,11 @@
             throw new CloudRuntimeException(errorMsg + "there are physical networks in this zone.");
         }
 
+        //check if there are any secondary stores attached to the zone
+        if(!_imageStoreDao.findByScope(new ZoneScope(zoneId)).isEmpty()) {
+            throw new CloudRuntimeException(errorMsg + "there are Secondary storages in this zone");
+        }
+
         // Check if there are any non-removed VMware datacenters in the zone.
         //if (_vmwareDatacenterZoneMapDao.findByZoneId(zoneId) != null) {
         //    throw new CloudRuntimeException(errorMsg + "there are VMware datacenters in this zone.");
@@ -1774,6 +1817,7 @@
             @Override
             public DataCenterVO doInTransaction(final TransactionStatus status) {
                 final DataCenterVO zone = _zoneDao.persist(zoneFinal);
+                CallContext.current().putContextParameter(DataCenter.class, zone.getUuid());
                 if (domainId != null) {
                     // zone is explicitly dedicated to this domain
                     // create affinity group associated and dedicate the zone.
@@ -1972,6 +2016,9 @@
         final String vmTypeString = cmd.getSystemVmType();
         VirtualMachine.Type vmType = null;
         boolean allowNetworkRate = false;
+
+        Boolean isCustomizedIops;
+
         if (cmd.getIsSystem()) {
             if (vmTypeString == null || VirtualMachine.Type.DomainRouter.toString().toLowerCase().equals(vmTypeString)) {
                 vmType = VirtualMachine.Type.DomainRouter;
@@ -1986,8 +2033,19 @@
                 throw new InvalidParameterValueException("Invalid systemVmType. Supported types are: " + VirtualMachine.Type.DomainRouter + ", " + VirtualMachine.Type.ConsoleProxy
                         + ", " + VirtualMachine.Type.SecondaryStorageVm);
             }
+
+            if (cmd.isCustomizedIops() != null) {
+                throw new InvalidParameterValueException("Customized IOPS is not a valid parameter for a system VM.");
+            }
+
+            isCustomizedIops = false;
+
+            if (cmd.getHypervisorSnapshotReserve() != null) {
+                throw new InvalidParameterValueException("Hypervisor snapshot reserve is not a valid parameter for a system VM.");
+            }
         } else {
             allowNetworkRate = true;
+            isCustomizedIops = cmd.isCustomizedIops();
         }
 
         if (cmd.getNetworkRate() != null) {
@@ -2012,7 +2070,7 @@
 
         return createServiceOffering(userId, cmd.getIsSystem(), vmType, cmd.getServiceOfferingName(), cpuNumber, memory, cpuSpeed, cmd.getDisplayText(),
                 cmd.getProvisioningType(), localStorageRequired, offerHA, limitCpuUse, volatileVm, cmd.getTags(), cmd.getDomainId(), cmd.getHostTag(),
-                cmd.getNetworkRate(), cmd.getDeploymentPlanner(), cmd.getDetails(), cmd.isCustomizedIops(), cmd.getMinIops(), cmd.getMaxIops(),
+                cmd.getNetworkRate(), cmd.getDeploymentPlanner(), cmd.getDetails(), isCustomizedIops, cmd.getMinIops(), cmd.getMaxIops(),
                 cmd.getBytesReadRate(), cmd.getBytesWriteRate(), cmd.getIopsReadRate(), cmd.getIopsWriteRate(), cmd.getHypervisorSnapshotReserve());
     }
 
@@ -2818,16 +2876,16 @@
                 String newVlanNetmask = newVlanNetmaskFinal;
                 String newVlanGateway = newVlanGatewayFinal;
 
-                if ((sameSubnet == null || sameSubnet.first() == false) && network.getTrafficType() == TrafficType.Guest && network.getGuestType() == GuestType.Shared
+                if ((sameSubnet == null || !sameSubnet.first()) && network.getTrafficType() == TrafficType.Guest && network.getGuestType() == GuestType.Shared
                         && _vlanDao.listVlansByNetworkId(networkId) != null) {
                     final Map<Capability, String> dhcpCapabilities = _networkSvc.getNetworkOfferingServiceCapabilities(_networkOfferingDao.findById(network.getNetworkOfferingId()),
                             Service.Dhcp);
                     final String supportsMultipleSubnets = dhcpCapabilities.get(Capability.DhcpAccrossMultipleSubnets);
                     if (supportsMultipleSubnets == null || !Boolean.valueOf(supportsMultipleSubnets)) {
-                        throw new  InvalidParameterValueException("The Dhcp serivice provider for this network dose not support the dhcp  across multiple subnets");
+                        throw new  InvalidParameterValueException("The dhcp service provider for this network does not support dhcp across multiple subnets");
                     }
                     s_logger.info("adding a new subnet to the network " + network.getId());
-                } else if (sameSubnet != null)  {
+                } else if (sameSubnet != null) {
                     // if it is same subnet the user might not send the vlan and the
                     // netmask details. so we are
                     // figuring out while validation and setting them here.
@@ -2843,13 +2901,13 @@
         });
     }
 
-    public NetUtils.SupersetOrSubset checkIfSubsetOrSuperset(String newVlanGateway, String newVlanNetmask, final VlanVO vlan, final String startIP, final String endIP) {
+    public NetUtils.SupersetOrSubset checkIfSubsetOrSuperset(String vlanGateway, String vlanNetmask, String newVlanGateway, String newVlanNetmask, final String newStartIP, final String newEndIP) {
         if (newVlanGateway == null && newVlanNetmask == null) {
-            newVlanGateway = vlan.getVlanGateway();
-            newVlanNetmask = vlan.getVlanNetmask();
+            newVlanGateway = vlanGateway;
+            newVlanNetmask = vlanNetmask;
             // this means he is trying to add to the existing subnet.
-            if (NetUtils.sameSubnet(startIP, newVlanGateway, newVlanNetmask)) {
-                if (NetUtils.sameSubnet(endIP, newVlanGateway, newVlanNetmask)) {
+            if (NetUtils.sameSubnet(newStartIP, newVlanGateway, newVlanNetmask)) {
+                if (NetUtils.sameSubnet(newEndIP, newVlanGateway, newVlanNetmask)) {
                     return NetUtils.SupersetOrSubset.sameSubnet;
                 }
             }
@@ -2858,15 +2916,15 @@
             throw new InvalidParameterValueException(
                     "either both netmask and gateway should be passed or both should me omited.");
         } else {
-            if (!NetUtils.sameSubnet(startIP, newVlanGateway, newVlanNetmask)) {
+            if (!NetUtils.sameSubnet(newStartIP, newVlanGateway, newVlanNetmask)) {
                 throw new InvalidParameterValueException("The start ip and gateway do not belong to the same subnet");
             }
-            if (!NetUtils.sameSubnet(endIP, newVlanGateway, newVlanNetmask)) {
+            if (!NetUtils.sameSubnet(newEndIP, newVlanGateway, newVlanNetmask)) {
                 throw new InvalidParameterValueException("The end ip and gateway do not belong to the same subnet");
             }
         }
         final String cidrnew = NetUtils.getCidrFromGatewayAndNetmask(newVlanGateway, newVlanNetmask);
-        final String existing_cidr = NetUtils.getCidrFromGatewayAndNetmask(vlan.getVlanGateway(), vlan.getVlanNetmask());
+        final String existing_cidr = NetUtils.getCidrFromGatewayAndNetmask(vlanGateway, vlanNetmask);
 
         return NetUtils.isNetowrkASubsetOrSupersetOfNetworkB(cidrnew, existing_cidr);
     }
@@ -2876,51 +2934,21 @@
         String vlanGateway = null;
         String vlanNetmask = null;
         boolean sameSubnet = false;
-        if (vlans != null && vlans.size() > 0) {
+        if (CollectionUtils.isNotEmpty(vlans)) {
             for (final VlanVO vlan : vlans) {
-                if (ipv4) {
-                    vlanGateway = vlan.getVlanGateway();
-                    vlanNetmask = vlan.getVlanNetmask();
-                    // check if subset or super set or neither.
-                    final NetUtils.SupersetOrSubset val = checkIfSubsetOrSuperset(newVlanGateway, newVlanNetmask, vlan, startIP, endIP);
-                    if (val == NetUtils.SupersetOrSubset.isSuperset) {
-                        // this means that new cidr is a superset of the
-                        // existing subnet.
-                        throw new InvalidParameterValueException("The subnet you are trying to add is a superset of the existing subnet having gateway" + vlan.getVlanGateway()
-                                + " and netmask  " + vlan.getVlanNetmask());
-                    } else if (val == NetUtils.SupersetOrSubset.neitherSubetNorSuperset) {
-                        // this implies the user is trying to add a new subnet
-                        // which is not a superset or subset of this subnet.
-                        // checking with the other subnets.
-                        continue;
-                    } else if (val == NetUtils.SupersetOrSubset.isSubset) {
-                        // this means he is trying to add to the same subnet.
-                        throw new InvalidParameterValueException("The subnet you are trying to add is a subset of the existing subnet having gateway" + vlan.getVlanGateway()
-                                + " and netmask  " + vlan.getVlanNetmask());
-                    } else if (val == NetUtils.SupersetOrSubset.sameSubnet) {
-                        sameSubnet = true;
-                        //check if the gateway provided by the user is same as that of the subnet.
-                        if (newVlanGateway != null && !newVlanGateway.equals(vlanGateway)) {
-                            throw new InvalidParameterValueException("The gateway of the subnet should be unique. The subnet alreaddy has a gateway " + vlanGateway);
-                        }
-                        break;
-                    }
-                }
-                if (ipv6) {
-                    if (ip6Gateway != null && !ip6Gateway.equals(network.getIp6Gateway())) {
-                        throw new InvalidParameterValueException("The input gateway " + ip6Gateway + " is not same as network gateway " + network.getIp6Gateway());
-                    }
-                    if (ip6Cidr != null && !ip6Cidr.equals(network.getIp6Cidr())) {
-                        throw new InvalidParameterValueException("The input cidr " + ip6Cidr + " is not same as network ciddr " + network.getIp6Cidr());
-                    }
-                    ip6Gateway = network.getIp6Gateway();
-                    ip6Cidr = network.getIp6Cidr();
-                    _networkModel.checkIp6Parameters(startIPv6, endIPv6, ip6Gateway, ip6Cidr);
-                    sameSubnet = true;
-                }
+                vlanGateway = vlan.getVlanGateway();
+                vlanNetmask = vlan.getVlanNetmask();
+                sameSubnet = hasSameSubnet(ipv4, vlanGateway, vlanNetmask, newVlanGateway, newVlanNetmask, startIP, endIP,
+                        ipv6, ip6Gateway, ip6Cidr, startIPv6, endIPv6, network);
+                if (sameSubnet) break;
             }
+        } else if(network.getGateway() != null && network.getCidr() != null) {
+            vlanGateway = network.getGateway();
+            vlanNetmask = NetUtils.getCidrNetmask(network.getCidr());
+            sameSubnet = hasSameSubnet(ipv4, vlanGateway, vlanNetmask, newVlanGateway, newVlanNetmask, startIP, endIP,
+                    ipv6, ip6Gateway, ip6Cidr, startIPv6, endIPv6, network);
         }
-        if (newVlanGateway == null && newVlanNetmask == null && sameSubnet == false) {
+        if (newVlanGateway == null && newVlanNetmask == null && !sameSubnet) {
             throw new InvalidParameterValueException("The ip range dose not belong to any of the existing subnets, Provide the netmask and gateway if you want to add new subnet");
         }
         Pair<String, String> vlanDetails = null;
@@ -2935,8 +2963,48 @@
             throw new InvalidParameterValueException("The gateway ip should not be the part of the ip range being added.");
         }
 
-        final Pair<Boolean, Pair<String, String>> result = new Pair<Boolean, Pair<String, String>>(sameSubnet, vlanDetails);
-        return result;
+        return new Pair<Boolean, Pair<String, String>>(sameSubnet, vlanDetails);
+    }
+
+    public boolean hasSameSubnet(boolean ipv4, String vlanGateway, String vlanNetmask, String newVlanGateway, String newVlanNetmask, String newStartIp, String newEndIp,
+                                  boolean ipv6, String newIp6Gateway, String newIp6Cidr, String newIp6StartIp, String newIp6EndIp, Network network) {
+        if (ipv4) {
+            // check if subset or super set or neither.
+            final NetUtils.SupersetOrSubset val = checkIfSubsetOrSuperset(vlanGateway, vlanNetmask, newVlanGateway, newVlanNetmask, newStartIp, newEndIp);
+            if (val == NetUtils.SupersetOrSubset.isSuperset) {
+                // this means that new cidr is a superset of the
+                // existing subnet.
+                throw new InvalidParameterValueException("The subnet you are trying to add is a superset of the existing subnet having gateway " + vlanGateway
+                        + " and netmask " + vlanNetmask);
+            } else if (val == NetUtils.SupersetOrSubset.neitherSubetNorSuperset) {
+                // this implies the user is trying to add a new subnet
+                // which is not a superset or subset of this subnet.
+            } else if (val == NetUtils.SupersetOrSubset.isSubset) {
+                // this means he is trying to add to the same subnet.
+                throw new InvalidParameterValueException("The subnet you are trying to add is a subset of the existing subnet having gateway " + vlanGateway
+                        + " and netmask " + vlanNetmask);
+            } else if (val == NetUtils.SupersetOrSubset.sameSubnet) {
+                //check if the gateway provided by the user is same as that of the subnet.
+                if (newVlanGateway != null && !newVlanGateway.equals(vlanGateway)) {
+                    throw new InvalidParameterValueException("The gateway of the subnet should be unique. The subnet already has a gateway " + vlanGateway);
+                }
+                return true;
+            }
+        }
+        if (ipv6) {
+            if (newIp6Gateway != null && !newIp6Gateway.equals(network.getIp6Gateway())) {
+                throw new InvalidParameterValueException("The input gateway " + newIp6Gateway + " is not same as network gateway " + network.getIp6Gateway());
+            }
+            if (newIp6Cidr != null && !newIp6Cidr.equals(network.getIp6Cidr())) {
+                throw new InvalidParameterValueException("The input cidr " + newIp6Cidr + " is not same as network cidr " + network.getIp6Cidr());
+            }
+
+            newIp6Gateway = MoreObjects.firstNonNull(newIp6Gateway, network.getIp6Gateway());
+            newIp6Cidr = MoreObjects.firstNonNull(newIp6Cidr, network.getIp6Cidr());
+            _networkModel.checkIp6Parameters(newIp6StartIp, newIp6EndIp, newIp6Gateway, newIp6Cidr);
+            return true;
+        }
+        return false;
     }
 
     @Override
@@ -2988,20 +3056,32 @@
             }
         }
 
+
         // 1) if vlan is specified for the guest network range, it should be the
         // same as network's vlan
         // 2) if vlan is missing, default it to the guest network's vlan
         if (network.getTrafficType() == TrafficType.Guest) {
             String networkVlanId = null;
-            final URI uri = network.getBroadcastUri();
-            if (uri != null) {
-                final String[] vlan = uri.toString().split("vlan:\\/\\/");
-                networkVlanId = vlan[1];
-                // For pvlan
-                networkVlanId = networkVlanId.split("-")[0];
+            boolean connectivityWithoutVlan = false;
+            if (_networkModel.areServicesSupportedInNetwork(network.getId(), Service.Connectivity)) {
+                Map<Capability, String> connectivityCapabilities = _networkModel.getNetworkServiceCapabilities(network.getId(), Service.Connectivity);
+                connectivityWithoutVlan = MapUtils.isNotEmpty(connectivityCapabilities) && connectivityCapabilities.containsKey(Capability.NoVlan);
             }
 
-            if (vlanId != null) {
+            final URI uri = network.getBroadcastUri();
+            if (connectivityWithoutVlan) {
+                networkVlanId = network.getBroadcastDomainType().toUri(network.getUuid()).toString();
+            } else if (uri != null) {
+                // Do not search for the VLAN tag when the network doesn't support VLAN
+               if (uri.toString().startsWith("vlan")) {
+                    final String[] vlan = uri.toString().split("vlan:\\/\\/");
+                    networkVlanId = vlan[1];
+                    // For pvlan
+                    networkVlanId = networkVlanId.split("-")[0];
+                }
+            }
+
+            if (vlanId != null && !connectivityWithoutVlan) {
                 // if vlan is specified, throw an error if it's not equal to
                 // network's vlanId
                 if (networkVlanId != null && !NetUtils.isSameIsolationId(networkVlanId, vlanId)) {
@@ -4035,7 +4115,7 @@
             throw new InvalidParameterValueException("Capabilities for 'Connectivity' service can be specified " +
                     "only when Connectivity service is enabled for network offering.");
         }
-        validateConnectivityServiceCapablities(serviceProviderMap.get(Service.Connectivity), connectivityServiceCapabilityMap);
+        validateConnectivityServiceCapablities(guestType, serviceProviderMap.get(Service.Connectivity), connectivityServiceCapabilityMap);
 
         final Map<Service, Map<Capability, String>> serviceCapabilityMap = new HashMap<Service, Map<Capability, String>>();
         serviceCapabilityMap.put(Service.Lb, lbServiceCapabilityMap);
@@ -4177,15 +4257,18 @@
         }
     }
 
-    void validateConnectivityServiceCapablities(final Set<Provider> providers, final Map<Capability, String> connectivityServiceCapabilityMap) {
+    void validateConnectivityServiceCapablities(final Network.GuestType guestType, final Set<Provider> providers, final Map<Capability, String> connectivityServiceCapabilityMap) {
         if (connectivityServiceCapabilityMap != null && !connectivityServiceCapabilityMap.isEmpty()) {
             for (final Map.Entry<Capability, String>entry: connectivityServiceCapabilityMap.entrySet()) {
                 final Capability capability = entry.getKey();
-                if (capability == Capability.StretchedL2Subnet) {
+                if (capability == Capability.StretchedL2Subnet || capability == Capability.PublicAccess) {
                     final String value = entry.getValue().toLowerCase();
                     if (!(value.contains("true") ^ value.contains("false"))) {
                         throw new InvalidParameterValueException("Invalid value (" + value + ") for " + capability +
                                 " should be true/false");
+                    } else if (capability == Capability.PublicAccess && guestType != GuestType.Shared) {
+                        throw new InvalidParameterValueException("Capability " + capability.getName() + " can only be enabled for network offerings " +
+                                "with guest type Shared.");
                     }
                 } else {
                     throw new InvalidParameterValueException("Capability " + capability.getName() + " can not be "
@@ -4195,16 +4278,8 @@
 
             // validate connectivity service provider actually supports specified capabilities
             if (providers != null && !providers.isEmpty()) {
-                for (final Provider provider: providers) {
-                    final NetworkElement element = _networkModel.getElementImplementingProvider(provider.getName());
-                    final Map<Service, Map<Capability, String>> capabilities = element.getCapabilities();
-                    if (capabilities != null && !capabilities.isEmpty()) {
-                        final Map<Capability, String> connectivityCapabilities =  capabilities.get(Service.Connectivity);
-                        if (connectivityCapabilities == null || connectivityCapabilities != null && !connectivityCapabilities.keySet().contains(Capability.StretchedL2Subnet)) {
-                            throw new InvalidParameterValueException("Provider: " + provider.getName() + " does not support "
-                                    + Capability.StretchedL2Subnet.getName());
-                        }
-                    }
+                for (Capability capability : connectivityServiceCapabilityMap.keySet()) {
+                    _networkModel.providerSupportsCapability(providers, Service.Connectivity, capability);
                 }
             }
         }
@@ -4222,7 +4297,10 @@
 
         // specifyVlan should always be true for Shared network offerings
         if (!specifyVlan && type == GuestType.Shared) {
-            throw new InvalidParameterValueException("SpecifyVlan should be true if network offering's type is " + type);
+            Set<Provider> connectivityProviders = serviceProviderMap != null ? serviceProviderMap.get(Service.Connectivity) : null;
+            if (CollectionUtils.isEmpty(connectivityProviders) || !_networkModel.providerSupportsCapability(connectivityProviders, Service.Connectivity, Capability.NoVlan)) {
+                throw new InvalidParameterValueException("SpecifyVlan should be true if network offering's type is " + type);
+            }
         }
 
         // specifyIpRanges should always be true for Shared networks
@@ -4270,6 +4348,7 @@
         boolean publicLb = false;
         boolean internalLb = false;
         boolean strechedL2Subnet = false;
+        boolean publicAccess = false;
 
         if (serviceCapabilityMap != null && !serviceCapabilityMap.isEmpty()) {
             final Map<Capability, String> lbServiceCapabilityMap = serviceCapabilityMap.get(Service.Lb);
@@ -4341,9 +4420,18 @@
 
             final Map<Capability, String> connectivityServiceCapabilityMap = serviceCapabilityMap.get(Service.Connectivity);
             if (connectivityServiceCapabilityMap != null && !connectivityServiceCapabilityMap.isEmpty()) {
-                final String value = connectivityServiceCapabilityMap.get(Capability.StretchedL2Subnet);
-                if ("true".equalsIgnoreCase(value)) {
-                    strechedL2Subnet = true;
+                if (connectivityServiceCapabilityMap.containsKey(Capability.StretchedL2Subnet)) {
+                    final String value = connectivityServiceCapabilityMap.get(Capability.StretchedL2Subnet);
+                    if ("true".equalsIgnoreCase(value)) {
+                        strechedL2Subnet = true;
+                    }
+                }
+
+                if (connectivityServiceCapabilityMap.containsKey(Capability.PublicAccess)) {
+                    final String value = connectivityServiceCapabilityMap.get(Capability.PublicAccess);
+                    if ("true".equalsIgnoreCase(value)) {
+                        publicAccess = true;
+                    }
                 }
             }
         }
@@ -4355,7 +4443,7 @@
 
         final NetworkOfferingVO offeringFinal = new NetworkOfferingVO(name, displayText, trafficType, systemOnly, specifyVlan, networkRate, multicastRate, isDefault, availability,
                 tags, type, conserveMode, dedicatedLb, sharedSourceNat, redundantRouter, elasticIp, elasticLb, specifyIpRanges, inline, isPersistent, associatePublicIp, publicLb,
-                internalLb, egressDefaultPolicy, strechedL2Subnet);
+                internalLb, egressDefaultPolicy, strechedL2Subnet, publicAccess);
 
         if (serviceOfferingId != null) {
             offeringFinal.setServiceOfferingId(serviceOfferingId);
@@ -4490,7 +4578,7 @@
         }
 
         if (name != null) {
-            sc.addAnd("name", SearchCriteria.Op.LIKE, "%" + name + "%");
+            sc.addAnd("name", SearchCriteria.Op.EQ, name);
         }
 
         if (guestIpType != null) {
diff --git a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
index 80c417e..3363b0e 100644
--- a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
+++ b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
@@ -249,51 +249,17 @@
     public DeployDestination planDeployment(VirtualMachineProfile vmProfile, DeploymentPlan plan, ExcludeList avoids, DeploymentPlanner planner)
             throws InsufficientServerCapacityException, AffinityConflictException {
 
-        // call affinitygroup chain
+        ServiceOffering offering = vmProfile.getServiceOffering();
+        int cpu_requested = offering.getCpu() * offering.getSpeed();
+        long ram_requested = offering.getRamSize() * 1024L * 1024L;
         VirtualMachine vm = vmProfile.getVirtualMachine();
-        long vmGroupCount = _affinityGroupVMMapDao.countAffinityGroupsForVm(vm.getId());
         DataCenter dc = _dcDao.findById(vm.getDataCenterId());
 
-        if (vmGroupCount > 0) {
-            for (AffinityGroupProcessor processor : _affinityProcessors) {
-                processor.process(vmProfile, plan, avoids);
-            }
-        }
 
         if (vm.getType() == VirtualMachine.Type.User || vm.getType() == VirtualMachine.Type.DomainRouter) {
             checkForNonDedicatedResources(vmProfile, dc, avoids);
         }
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Deploy avoids pods: " + avoids.getPodsToAvoid() + ", clusters: " + avoids.getClustersToAvoid() + ", hosts: " + avoids.getHostsToAvoid());
-        }
-
-        // call planners
-        //DataCenter dc = _dcDao.findById(vm.getDataCenterId());
-        // check if datacenter is in avoid set
-        if (avoids.shouldAvoid(dc)) {
-            if (s_logger.isDebugEnabled()) {
-                s_logger.debug("DataCenter id = '" + dc.getId() + "' provided is in avoid set, DeploymentPlanner cannot allocate the VM, returning.");
-            }
-            return null;
-        }
-
-        ServiceOffering offering = vmProfile.getServiceOffering();
-        if(planner == null){
-            String plannerName = offering.getDeploymentPlanner();
-            if (plannerName == null) {
-                if (vm.getHypervisorType() == HypervisorType.BareMetal) {
-                    plannerName = "BareMetalPlanner";
-                } else {
-                    plannerName = _configDao.getValue(Config.VmDeploymentPlanner.key());
-                }
-            }
-            planner = getDeploymentPlannerByName(plannerName);
-        }
-
-        int cpu_requested = offering.getCpu() * offering.getSpeed();
-        long ram_requested = offering.getRamSize() * 1024L * 1024L;
-
-        if (s_logger.isDebugEnabled()) {
             s_logger.debug("DeploymentPlanner allocation algorithm: " + planner);
 
             s_logger.debug("Trying to allocate a host and storage pools from dc:" + plan.getDataCenterId() + ", pod:" + plan.getPodId() + ",cluster:" +
@@ -364,6 +330,44 @@
             return null;
         }
 
+        // call affinitygroup chain
+        long vmGroupCount = _affinityGroupVMMapDao.countAffinityGroupsForVm(vm.getId());
+
+        if (vmGroupCount > 0) {
+            for (AffinityGroupProcessor processor : _affinityProcessors) {
+                processor.process(vmProfile, plan, avoids);
+            }
+        }
+
+        if (vm.getType() == VirtualMachine.Type.User) {
+            checkForNonDedicatedResources(vmProfile, dc, avoids);
+        }
+        if (s_logger.isDebugEnabled()) {
+            s_logger.debug("Deploy avoids pods: " + avoids.getPodsToAvoid() + ", clusters: " + avoids.getClustersToAvoid() + ", hosts: " + avoids.getHostsToAvoid());
+        }
+
+        // call planners
+        // DataCenter dc = _dcDao.findById(vm.getDataCenterId());
+        // check if datacenter is in avoid set
+        if (avoids.shouldAvoid(dc)) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("DataCenter id = '" + dc.getId() + "' provided is in avoid set, DeploymentPlanner cannot allocate the VM, returning.");
+            }
+            return null;
+        }
+
+        if (planner == null) {
+            String plannerName = offering.getDeploymentPlanner();
+            if (plannerName == null) {
+                if (vm.getHypervisorType() == HypervisorType.BareMetal) {
+                    plannerName = "BareMetalPlanner";
+                } else {
+                    plannerName = _configDao.getValue(Config.VmDeploymentPlanner.key());
+                }
+            }
+            planner = getDeploymentPlannerByName(plannerName);
+        }
+
         if (vm.getLastHostId() != null && haVmTag == null) {
             s_logger.debug("This VM has last host_id specified, trying to choose the same host: " + vm.getLastHostId());
 
diff --git a/server/src/com/cloud/deploy/FirstFitPlanner.java b/server/src/com/cloud/deploy/FirstFitPlanner.java
index 640834b..5760e24 100644
--- a/server/src/com/cloud/deploy/FirstFitPlanner.java
+++ b/server/src/com/cloud/deploy/FirstFitPlanner.java
@@ -66,6 +66,7 @@
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
 public class FirstFitPlanner extends AdapterBase implements DeploymentClusterPlanner, Configurable, DeploymentPlanner {
@@ -89,6 +90,8 @@
     @Inject
     protected UserVmDao vmDao;
     @Inject
+    protected UserVmDetailsDao vmDetailsDao;
+    @Inject
     protected VMInstanceDao vmInstanceDao;
     @Inject
     protected VolumeDao volsDao;
@@ -309,6 +312,16 @@
     protected void removeClustersCrossingThreshold(List<Long> clusterListForVmAllocation, ExcludeList avoid,
             VirtualMachineProfile vmProfile, DeploymentPlan plan) {
 
+        // Check if cluster threshold for cpu/memory has to be checked or not. By default we
+        // always check cluster threshold isn't crossed. However, the check may be skipped for
+        // starting (not deploying) an instance.
+        VirtualMachine vm = vmProfile.getVirtualMachine();
+        Map<String, String> details = vmDetailsDao.listDetailsKeyPairs(vm.getId());
+        Boolean isThresholdEnabled = ClusterThresholdEnabled.value();
+        if (!(isThresholdEnabled || (details != null && details.containsKey("deployvm")))) {
+            return;
+        }
+
         List<Short> capacityList = getCapacitiesForCheckingThreshold();
         List<Long> clustersCrossingThreshold = new ArrayList<Long>();
 
@@ -323,12 +336,13 @@
             if (clusterListForVmAllocation == null || clusterListForVmAllocation.size() == 0) {
                 return;
             }
+
             if (capacity == Capacity.CAPACITY_TYPE_CPU) {
                 clustersCrossingThreshold =
- capacityDao.listClustersCrossingThreshold(capacity, plan.getDataCenterId(), ClusterCPUCapacityDisableThreshold.key(), cpu_requested);
+                        capacityDao.listClustersCrossingThreshold(capacity, plan.getDataCenterId(), ClusterCPUCapacityDisableThreshold.key(), cpu_requested);
             } else if (capacity == Capacity.CAPACITY_TYPE_MEMORY) {
                 clustersCrossingThreshold =
- capacityDao.listClustersCrossingThreshold(capacity, plan.getDataCenterId(), ClusterMemoryCapacityDisableThreshold.key(), ram_requested);
+                        capacityDao.listClustersCrossingThreshold(capacity, plan.getDataCenterId(), ClusterMemoryCapacityDisableThreshold.key(), ram_requested);
             }
 
             if (clustersCrossingThreshold != null && clustersCrossingThreshold.size() != 0) {
@@ -379,6 +393,10 @@
             }
 
             removeClustersCrossingThreshold(prioritizedClusterIds, avoid, vmProfile, plan);
+            String hostTagOnOffering = offering.getHostTag();
+            if (hostTagOnOffering != null) {
+                removeClustersWithoutMatchingTag(prioritizedClusterIds, hostTagOnOffering);
+            }
 
         } else {
             if (s_logger.isDebugEnabled()) {
@@ -506,6 +524,18 @@
 
     }
 
+    private void removeClustersWithoutMatchingTag(List<Long> clusterListForVmAllocation, String hostTagOnOffering) {
+
+        List<Long> matchingClusters = hostDao.listClustersByHostTag(hostTagOnOffering);
+
+        clusterListForVmAllocation.retainAll(matchingClusters);
+
+        if (s_logger.isDebugEnabled()) {
+            s_logger.debug("The clusterId list for the given offering tag: " + clusterListForVmAllocation);
+        }
+
+    }
+
     private boolean isRootAdmin(VirtualMachineProfile vmProfile) {
         if (vmProfile != null) {
             if (vmProfile.getOwner() != null) {
@@ -565,6 +595,6 @@
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {ClusterCPUCapacityDisableThreshold, ClusterMemoryCapacityDisableThreshold};
+        return new ConfigKey<?>[] {ClusterCPUCapacityDisableThreshold, ClusterMemoryCapacityDisableThreshold, ClusterThresholdEnabled};
     }
 }
diff --git a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
index 53d79f7..fe6b717 100644
--- a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
+++ b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
@@ -674,7 +674,7 @@
             }
 
             if (vm.getHostId() != null) {
-                _itMgr.destroy(vm.getUuid());
+                _itMgr.destroy(vm.getUuid(), false);
                 s_logger.info("Successfully destroy " + vm);
                 return null;
             } else {
diff --git a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
index e48c1f5..c413edd 100644
--- a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
+++ b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
@@ -87,6 +87,8 @@
         to.setNetworkRateMbps(profile.getNetworkRate());
         to.setName(profile.getName());
         to.setSecurityGroupEnabled(profile.isSecurityGroupEnabled());
+        to.setIp6Address(profile.getIPv6Address());
+        to.setIp6Cidr(profile.getIPv6Cidr());
 
         NetworkVO network = _networkDao.findById(profile.getNetworkId());
         to.setNetworkUuid(network.getUuid());
diff --git a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
index 0c00606..f3aedef 100644
--- a/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
+++ b/server/src/com/cloud/metadata/ResourceMetaDataManagerImpl.java
@@ -42,6 +42,7 @@
 import org.apache.cloudstack.resourcedetail.dao.VpcGatewayDetailsDao;
 import org.apache.cloudstack.resourcedetail.dao.LBStickinessPolicyDetailsDao;
 import org.apache.cloudstack.resourcedetail.dao.LBHealthCheckPolicyDetailsDao;
+import org.apache.cloudstack.resourcedetail.dao.GuestOsDetailsDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
 
 import org.apache.log4j.Logger;
@@ -121,6 +122,8 @@
     LBHealthCheckPolicyDetailsDao _healthcheckPolicyDetailsDao;
     @Inject
     SnapshotPolicyDetailsDao _snapshotPolicyDetailsDao;
+    @Inject
+    GuestOsDetailsDao _guestOsDetailsDao;
 
     private static Map<ResourceObjectType, ResourceDetailsDao<? extends ResourceDetail>> s_daoMap = new HashMap<ResourceObjectType, ResourceDetailsDao<? extends ResourceDetail>>();
 
@@ -153,7 +156,7 @@
         s_daoMap.put(ResourceObjectType.LBStickinessPolicy, _stickinessPolicyDetailsDao);
         s_daoMap.put(ResourceObjectType.LBHealthCheckPolicy, _healthcheckPolicyDetailsDao);
         s_daoMap.put(ResourceObjectType.SnapshotPolicy, _snapshotPolicyDetailsDao);
-
+        s_daoMap.put(ResourceObjectType.GuestOs, _guestOsDetailsDao);
         return true;
     }
 
diff --git a/server/src/com/cloud/network/IpAddressManagerImpl.java b/server/src/com/cloud/network/IpAddressManagerImpl.java
index 9c66f13..8068421 100644
--- a/server/src/com/cloud/network/IpAddressManagerImpl.java
+++ b/server/src/com/cloud/network/IpAddressManagerImpl.java
@@ -282,6 +282,8 @@
     SearchBuilder<IPAddressVO> AssignIpAddressSearch;
     SearchBuilder<IPAddressVO> AssignIpAddressFromPodVlanSearch;
 
+    static Boolean rulesContinueOnErrFlag = true;
+
     @Override
     public boolean configure(String name, Map<String, Object> params) {
         // populate providers
@@ -405,7 +407,11 @@
 
         Network.State.getStateMachine().registerListener(new NetworkStateListener(_configDao));
 
-        s_logger.info("Network Manager is configured.");
+        if (RulesContinueOnError.value() != null) {
+            rulesContinueOnErrFlag = RulesContinueOnError.value();
+        }
+
+        s_logger.info("IPAddress Manager is configured.");
 
         return true;
     }
@@ -571,7 +577,7 @@
         // the code would be triggered
         s_logger.debug("Cleaning up remote access vpns as a part of public IP id=" + ipId + " release...");
         try {
-            _vpnMgr.destroyRemoteAccessVpnForIp(ipId, caller);
+            _vpnMgr.destroyRemoteAccessVpnForIp(ipId, caller,false);
         } catch (ResourceUnavailableException e) {
             s_logger.warn("Unable to destroy remote access vpn for ip id=" + ipId + " as a part of ip release", e);
             success = false;
@@ -603,7 +609,7 @@
         if (ip.getAssociatedWithNetworkId() != null) {
             Network network = _networksDao.findById(ip.getAssociatedWithNetworkId());
             try {
-                if (!applyIpAssociations(network, true)) {
+                if (!applyIpAssociations(network, rulesContinueOnErrFlag)) {
                     s_logger.warn("Unable to apply ip address associations for " + network);
                     success = false;
                 }
@@ -1710,6 +1716,22 @@
 
     Random _rand = new Random(System.currentTimeMillis());
 
+    /**
+     * Get the list of public IPs that need to be applied for a static NAT enable/disable operation.
+     * Manipulating only these ips prevents concurrency issues when disabling static nat at the same time.
+     * @param staticNats
+     * @return The list of IPs that need to be applied for the static NAT to work.
+     */
+    public List<IPAddressVO> getStaticNatSourceIps(List<? extends StaticNat> staticNats) {
+        List<IPAddressVO> userIps = new ArrayList<>();
+
+        for (StaticNat snat : staticNats) {
+            userIps.add(_ipAddressDao.findById(snat.getSourceIpAddressId()));
+        }
+
+        return userIps;
+    }
+
     @Override
     public boolean applyStaticNats(List<? extends StaticNat> staticNats, boolean continueOnError, boolean forRevoke) throws ResourceUnavailableException {
         if (staticNats == null || staticNats.size() == 0) {
@@ -1726,8 +1748,8 @@
             return true;
         }
 
-        // get the list of public ip's owned by the network
-        List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null);
+        List<IPAddressVO> userIps = getStaticNatSourceIps(staticNats);
+
         List<PublicIp> publicIps = new ArrayList<PublicIp>();
         if (userIps != null && !userIps.isEmpty()) {
             for (IPAddressVO userIp : userIps) {
@@ -2031,6 +2053,6 @@
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {UseSystemPublicIps};
+        return new ConfigKey<?>[] {UseSystemPublicIps, RulesContinueOnError};
     }
 }
diff --git a/server/src/com/cloud/network/Ipv6AddressManager.java b/server/src/com/cloud/network/Ipv6AddressManager.java
index b5e257f..8a7049b 100644
--- a/server/src/com/cloud/network/Ipv6AddressManager.java
+++ b/server/src/com/cloud/network/Ipv6AddressManager.java
@@ -22,6 +22,7 @@
 import com.cloud.utils.component.Manager;
 
 public interface Ipv6AddressManager extends Manager {
+
     public UserIpv6Address assignDirectIp6Address(long dcId, Account owner, Long networkId, String requestedIp6) throws InsufficientAddressCapacityException;
 
     public void revokeDirectIpv6Address(long networkId, String ip6Address);
diff --git a/server/src/com/cloud/network/Ipv6AddressManagerImpl.java b/server/src/com/cloud/network/Ipv6AddressManagerImpl.java
index d147349..53fb25c 100644
--- a/server/src/com/cloud/network/Ipv6AddressManagerImpl.java
+++ b/server/src/com/cloud/network/Ipv6AddressManagerImpl.java
@@ -132,7 +132,7 @@
         dc.setMacAddress(nextMac);
         _dcDao.update(dc.getId(), dc);
 
-        String macAddress = NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(mac));
+        String macAddress = NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(mac,NetworkModel.MACIdentifier.value()));
         UserIpv6AddressVO ipVO = new UserIpv6AddressVO(ip, dcId, macAddress, ipVlan.getId());
         ipVO.setPhysicalNetworkId(network.getPhysicalNetworkId());
         ipVO.setSourceNetworkId(networkId);
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index f3e25e8..fbed851 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -34,6 +34,8 @@
 import javax.naming.ConfigurationException;
 
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.Configurable;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
 import org.apache.commons.codec.binary.Base64;
@@ -124,7 +126,7 @@
 import com.cloud.vm.dao.NicSecondaryIpDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
-public class NetworkModelImpl extends ManagerBase implements NetworkModel {
+public class NetworkModelImpl extends ManagerBase implements NetworkModel, Configurable {
     static final Logger s_logger = Logger.getLogger(NetworkModelImpl.class);
     @Inject
     EntityManager _entityMgr;
@@ -561,7 +563,8 @@
 
     @Override
     public String getNextAvailableMacAddressInNetwork(long networkId) throws InsufficientAddressCapacityException {
-        String mac = _networksDao.getNextAvailableMacAddress(networkId);
+        NetworkVO network = _networksDao.findById(networkId);
+        String mac = _networksDao.getNextAvailableMacAddress(networkId, MACIdentifier.value());
         if (mac == null) {
             throw new InsufficientAddressCapacityException("Unable to create another mac address", Network.class, networkId);
         }
@@ -1558,6 +1561,32 @@
     }
 
     @Override
+    public boolean providerSupportsCapability(Set<Provider> providers, Service service, Capability cap) {
+        for (Provider provider : providers) {
+            NetworkElement element = getElementImplementingProvider(provider.getName());
+            if (element != null) {
+                Map<Service, Map<Capability, String>> elementCapabilities = element.getCapabilities();
+                if (elementCapabilities == null || !elementCapabilities.containsKey(service)) {
+                    throw new UnsupportedServiceException("Service " + service.getName() + " is not supported by the element=" + element.getName() +
+                            " implementing Provider=" + provider.getName());
+                }
+                Map<Capability, String> serviceCapabilities = elementCapabilities.get(service);
+                if (serviceCapabilities == null || serviceCapabilities.isEmpty()) {
+                    throw new UnsupportedServiceException("Service " + service.getName() + " doesn't have capabilites for element=" + element.getName() +
+                            " implementing Provider=" + provider.getName());
+                }
+
+                if (serviceCapabilities.containsKey(cap)) {
+                    return true;
+                }
+            } else {
+                throw new UnsupportedServiceException("Unable to find network element for provider " + provider.getName());
+            }
+        }
+        return false;
+    }
+
+    @Override
     public void checkCapabilityForProvider(Set<Provider> providers, Service service, Capability cap, String capValue) {
         for (Provider provider : providers) {
             NetworkElement element = getElementImplementingProvider(provider.getName());
@@ -1569,7 +1598,7 @@
                 }
                 Map<Capability, String> serviceCapabilities = elementCapabilities.get(service);
                 if (serviceCapabilities == null || serviceCapabilities.isEmpty()) {
-                    throw new UnsupportedServiceException("Service " + service.getName() + " doesn't have capabilites for element=" + element.getName() +
+                    throw new UnsupportedServiceException("Service " + service.getName() + " doesn't have capabilities for element=" + element.getName() +
                         " implementing Provider=" + provider.getName());
                 }
 
@@ -2191,24 +2220,29 @@
     @Override
     public NicVO getPlaceholderNicForRouter(Network network, Long podId) {
         List<NicVO> nics = _nicDao.listPlaceholderNicsByNetworkIdAndVmType(network.getId(), VirtualMachine.Type.DomainRouter);
+        List<? extends Vlan> vlans = new ArrayList<VlanVO>();
+        if (podId != null) {
+            vlans = _vlanDao.listVlansForPod(podId);
+        }
         for (NicVO nic : nics) {
             if (nic.getReserver() == null && (nic.getIPv4Address() != null || nic.getIPv6Address() != null)) {
                 if (podId == null) {
                     return nic;
                 } else {
+                    IpAddress ip = null;
+                    UserIpv6AddressVO ipv6 = null;
+
+                    if (nic.getIPv4Address() != null) {
+                        ip = _ipAddressDao.findByIpAndSourceNetworkId(network.getId(), nic.getIPv4Address());
+                    } else {
+                        ipv6 = _ipv6Dao.findByNetworkIdAndIp(network.getId(), nic.getIPv6Address());
+                    }
                     //return nic only when its ip address belong to the pod range (for the Basic zone case)
-                    List<? extends Vlan> vlans = _vlanDao.listVlansForPod(podId);
                     for (Vlan vlan : vlans) {
-                        if (nic.getIPv4Address() != null) {
-                            IpAddress ip = _ipAddressDao.findByIpAndSourceNetworkId(network.getId(), nic.getIPv4Address());
-                            if (ip != null && ip.getVlanId() == vlan.getId()) {
-                                return nic;
-                            }
-                        } else {
-                            UserIpv6AddressVO ipv6 = _ipv6Dao.findByNetworkIdAndIp(network.getId(), nic.getIPv6Address());
-                            if (ipv6 != null && ipv6.getVlanId() == vlan.getId()) {
-                                return nic;
-                            }
+                        if (ip != null && ip.getVlanId() == vlan.getId()) {
+                            return nic;
+                        } else if (ipv6 != null && ipv6.getVlanId() == vlan.getId()) {
+                            return nic;
                         }
                     }
                 }
@@ -2333,4 +2367,14 @@
 
         return vmData;
     }
+
+    @Override
+    public String getConfigComponentName() {
+        return NetworkModel.class.getSimpleName();
+    }
+
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return new ConfigKey<?>[] {MACIdentifier};
+    }
 }
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java
index 46ff383..26ad1db 100644
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -108,6 +108,8 @@
 import com.cloud.network.dao.IPAddressVO;
 import com.cloud.network.dao.LoadBalancerVMMapDao;
 import com.cloud.network.dao.NetworkDao;
+import com.cloud.network.dao.NetworkDetailVO;
+import com.cloud.network.dao.NetworkDetailsDao;
 import com.cloud.network.dao.NetworkDomainDao;
 import com.cloud.network.dao.NetworkDomainVO;
 import com.cloud.network.dao.NetworkServiceMapDao;
@@ -187,11 +189,13 @@
 import com.cloud.vm.UserVmVO;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
+import com.cloud.vm.dao.DomainRouterDao;
 import com.cloud.vm.dao.NicDao;
 import com.cloud.vm.dao.NicSecondaryIpDao;
 import com.cloud.vm.dao.NicSecondaryIpVO;
 import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.VMInstanceDao;
+import com.cloud.network.dao.LoadBalancerDao;
 
 /**
  * NetworkServiceImpl implements NetworkService.
@@ -324,6 +328,15 @@
     @Inject
     MessageBus _messageBus;
 
+    @Inject
+    DomainRouterDao _routerDao;
+
+    @Inject
+    NetworkDetailsDao _networkDetailsDao;
+
+    @Inject
+    LoadBalancerDao _loadBalancerDao;
+
     int _cidrLimit;
     boolean _allowSubdomainNetworkAccess;
 
@@ -841,7 +854,7 @@
                 throw new InvalidParameterValueException("Can' remove the ip " + secondaryIp + "is associate with static NAT rule public IP address id " + publicIpVO.getId());
             }
 
-            if (_lbService.isLbRuleMappedToVmGuestIp(secondaryIp)) {
+            if (_loadBalancerDao.isLoadBalancerRulesMappedToVmGuestIp(vm.getId(), secondaryIp, network.getId())) {
                 s_logger.debug("VM nic IP " + secondaryIp + " is mapped to load balancing rule");
                 throw new InvalidParameterValueException("Can't remove the secondary ip " + secondaryIp + " is mapped to load balancing rule");
             }
@@ -1992,8 +2005,7 @@
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_NETWORK_UPDATE, eventDescription = "updating network", async = true)
     public Network updateGuestNetwork(final long networkId, String name, String displayText, Account callerAccount, User callerUser, String domainSuffix,
-            final Long networkOfferingId, Boolean changeCidr, String guestVmCidr, Boolean displayNetwork, String customId) {
-
+            final Long networkOfferingId, Boolean changeCidr, String guestVmCidr, Boolean displayNetwork, String customId, boolean updateInSequence, boolean forced) {
         boolean restartNetwork = false;
 
         // verify input parameters
@@ -2239,130 +2251,171 @@
         ReservationContext context = new ReservationContextImpl(null, null, callerUser, callerAccount);
         // 1) Shutdown all the elements and cleanup all the rules. Don't allow to shutdown network in intermediate
         // states - Shutdown and Implementing
-        boolean validStateToShutdown = (network.getState() == Network.State.Implemented || network.getState() == Network.State.Setup || network.getState() == Network.State.Allocated);
-        if (restartNetwork) {
-            if (validStateToShutdown) {
-                if (!changeCidr) {
-                    s_logger.debug("Shutting down elements and resources for network id=" + networkId + " as a part of network update");
+        int resourceCount=1;
+        if(updateInSequence && restartNetwork && _networkOfferingDao.findById(network.getNetworkOfferingId()).getRedundantRouter()
+                && (networkOfferingId==null || _networkOfferingDao.findById(networkOfferingId).getRedundantRouter()) && network.getVpcId()==null) {
+            _networkMgr.canUpdateInSequence(network, forced);
+            NetworkDetailVO networkDetail =new NetworkDetailVO(network.getId(),Network.updatingInSequence,"true",true);
+            _networkDetailsDao.persist(networkDetail);
+            _networkMgr.configureUpdateInSequence(network);
+            resourceCount=_networkMgr.getResourceCount(network);
+        }
+        List<String > servicesNotInNewOffering = null;
+        if(networkOfferingId != null)
+                 servicesNotInNewOffering = _networkMgr.getServicesNotSupportedInNewOffering(network,networkOfferingId);
+        if(!forced && servicesNotInNewOffering != null && !servicesNotInNewOffering.isEmpty()){
+            NetworkOfferingVO newOffering = _networkOfferingDao.findById(networkOfferingId);
+            throw new CloudRuntimeException("The new offering:"+newOffering.getUniqueName()
+                    +" will remove the following services "+servicesNotInNewOffering +"along with all the related configuration currently in use. will not proceed with the network update." +
+                    "set forced parameter to true for forcing an update.");
+        }
+        try{
+            if(servicesNotInNewOffering!=null && !servicesNotInNewOffering.isEmpty()){
+                _networkMgr.cleanupConfigForServicesInNetwork(servicesNotInNewOffering,network);
+            }
+        }catch (Throwable e){
+            s_logger.debug("failed to cleanup config related to unused services error:"+e.getMessage());
+        }
 
-                    if (!_networkMgr.shutdownNetworkElementsAndResources(context, true, network)) {
-                        s_logger.warn("Failed to shutdown the network elements and resources as a part of network restart: " + network);
-                        CloudRuntimeException ex = new CloudRuntimeException("Failed to shutdown the network elements and resources as a part of update to network of specified id");
+        boolean validStateToShutdown = (network.getState() == Network.State.Implemented || network.getState() == Network.State.Setup || network.getState() == Network.State.Allocated);
+        try {
+
+            do {
+                if (restartNetwork) {
+                    if (validStateToShutdown) {
+                        if (!changeCidr) {
+                            s_logger.debug("Shutting down elements and resources for network id=" + networkId + " as a part of network update");
+
+                            if (!_networkMgr.shutdownNetworkElementsAndResources(context, true, network)) {
+                                s_logger.warn("Failed to shutdown the network elements and resources as a part of network restart: " + network);
+                                CloudRuntimeException ex = new CloudRuntimeException("Failed to shutdown the network elements and resources as a part of update to network of specified id");
+                                ex.addProxyObject(network.getUuid(), "networkId");
+                                throw ex;
+                            }
+                        } else {
+                            // We need to shutdown the network, since we want to re-implement the network.
+                            s_logger.debug("Shutting down network id=" + networkId + " as a part of network update");
+
+                            //check if network has reservation
+                            if (NetUtils.isNetworkAWithinNetworkB(network.getCidr(), network.getNetworkCidr())) {
+                                s_logger.warn("Existing IP reservation will become ineffective for the network with id =  " + networkId
+                                        + " You need to reapply reservation after network reimplementation.");
+                                //set cidr to the newtork cidr
+                                network.setCidr(network.getNetworkCidr());
+                                //set networkCidr to null to bring network back to no IP reservation state
+                                network.setNetworkCidr(null);
+                            }
+
+                            if (!_networkMgr.shutdownNetwork(network.getId(), context, true)) {
+                                s_logger.warn("Failed to shutdown the network as a part of update to network with specified id");
+                                CloudRuntimeException ex = new CloudRuntimeException("Failed to shutdown the network as a part of update of specified network id");
+                                ex.addProxyObject(network.getUuid(), "networkId");
+                                throw ex;
+                            }
+                        }
+                    } else {
+                        CloudRuntimeException ex = new CloudRuntimeException(
+                                "Failed to shutdown the network elements and resources as a part of update to network with specified id; network is in wrong state: " + network.getState());
                         ex.addProxyObject(network.getUuid(), "networkId");
                         throw ex;
                     }
+                }
+
+                // 2) Only after all the elements and rules are shutdown properly, update the network VO
+                // get updated network
+                Network.State networkState = _networksDao.findById(networkId).getState();
+                boolean validStateToImplement = (networkState == Network.State.Implemented || networkState == Network.State.Setup || networkState == Network.State.Allocated);
+                if (restartNetwork && !validStateToImplement) {
+                    CloudRuntimeException ex = new CloudRuntimeException(
+                            "Failed to implement the network elements and resources as a part of update to network with specified id; network is in wrong state: " + networkState);
+                    ex.addProxyObject(network.getUuid(), "networkId");
+                    throw ex;
+                }
+
+                if (networkOfferingId != null) {
+                    if (networkOfferingChanged) {
+                        Transaction.execute(new TransactionCallbackNoReturn() {
+                            @Override
+                            public void doInTransactionWithoutResult(TransactionStatus status) {
+                                network.setNetworkOfferingId(networkOfferingId);
+                                _networksDao.update(networkId, network, newSvcProviders);
+                                // get all nics using this network
+                                // log remove usage events for old offering
+                                // log assign usage events for new offering
+                                List<NicVO> nics = _nicDao.listByNetworkId(networkId);
+                                for (NicVO nic : nics) {
+                                    long vmId = nic.getInstanceId();
+                                    VMInstanceVO vm = _vmDao.findById(vmId);
+                                    if (vm == null) {
+                                        s_logger.error("Vm for nic " + nic.getId() + " not found with Vm Id:" + vmId);
+                                        continue;
+                                    }
+                                    long isDefault = (nic.isDefaultNic()) ? 1 : 0;
+                                    String nicIdString = Long.toString(nic.getId());
+                                    UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterId(), vm.getId(), nicIdString,
+                                            oldNetworkOfferingId, null, isDefault, VirtualMachine.class.getName(), vm.getUuid(), vm.isDisplay());
+                                    UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterId(), vm.getId(), nicIdString,
+                                            networkOfferingId, null, isDefault, VirtualMachine.class.getName(), vm.getUuid(), vm.isDisplay());
+                                }
+                            }
+                        });
+                    } else {
+                        network.setNetworkOfferingId(networkOfferingId);
+                        _networksDao.update(networkId, network,
+                                _networkMgr.finalizeServicesAndProvidersForNetwork(_entityMgr.findById(NetworkOffering.class, networkOfferingId), network.getPhysicalNetworkId()));
+                    }
                 } else {
-                    // We need to shutdown the network, since we want to re-implement the network.
-                    s_logger.debug("Shutting down network id=" + networkId + " as a part of network update");
+                    _networksDao.update(networkId, network);
+                }
 
-                    //check if network has reservation
-                    if (NetUtils.isNetworkAWithinNetworkB(network.getCidr(), network.getNetworkCidr())) {
-                        s_logger.warn("Existing IP reservation will become ineffective for the network with id =  " + networkId
-                                + " You need to reapply reservation after network reimplementation.");
-                        //set cidr to the newtork cidr
-                        network.setCidr(network.getNetworkCidr());
-                        //set networkCidr to null to bring network back to no IP reservation state
-                        network.setNetworkCidr(null);
-                    }
-
-                    if (!_networkMgr.shutdownNetwork(network.getId(), context, true)) {
-                        s_logger.warn("Failed to shutdown the network as a part of update to network with specified id");
-                        CloudRuntimeException ex = new CloudRuntimeException("Failed to shutdown the network as a part of update of specified network id");
-                        ex.addProxyObject(network.getUuid(), "networkId");
-                        throw ex;
+                // 3) Implement the elements and rules again
+                if (restartNetwork) {
+                    if (network.getState() != Network.State.Allocated) {
+                        DeployDestination dest = new DeployDestination(_dcDao.findById(network.getDataCenterId()), null, null, null);
+                        s_logger.debug("Implementing the network " + network + " elements and resources as a part of network update");
+                        try {
+                            if (!changeCidr) {
+                                _networkMgr.implementNetworkElementsAndResources(dest, context, network, _networkOfferingDao.findById(network.getNetworkOfferingId()));
+                            } else {
+                                _networkMgr.implementNetwork(network.getId(), dest, context);
+                            }
+                        } catch (Exception ex) {
+                            s_logger.warn("Failed to implement network " + network + " elements and resources as a part of network update due to ", ex);
+                            CloudRuntimeException e = new CloudRuntimeException("Failed to implement network (with specified id) elements and resources as a part of network update");
+                            e.addProxyObject(network.getUuid(), "networkId");
+                            throw e;
+                        }
                     }
                 }
-            } else {
-                CloudRuntimeException ex = new CloudRuntimeException(
-                        "Failed to shutdown the network elements and resources as a part of update to network with specified id; network is in wrong state: " + network.getState());
-                ex.addProxyObject(network.getUuid(), "networkId");
-                throw ex;
-            }
-        }
 
-        // 2) Only after all the elements and rules are shutdown properly, update the network VO
-        // get updated network
-        Network.State networkState = _networksDao.findById(networkId).getState();
-        boolean validStateToImplement = (networkState == Network.State.Implemented || networkState == Network.State.Setup || networkState == Network.State.Allocated);
-        if (restartNetwork && !validStateToImplement) {
-            CloudRuntimeException ex = new CloudRuntimeException(
-                    "Failed to implement the network elements and resources as a part of update to network with specified id; network is in wrong state: " + networkState);
-            ex.addProxyObject(network.getUuid(), "networkId");
-            throw ex;
-        }
-
-        if (networkOfferingId != null) {
-            if (networkOfferingChanged) {
-                Transaction.execute(new TransactionCallbackNoReturn() {
-                    @Override
-                    public void doInTransactionWithoutResult(TransactionStatus status) {
-                network.setNetworkOfferingId(networkOfferingId);
-                _networksDao.update(networkId, network, newSvcProviders);
-                // get all nics using this network
-                // log remove usage events for old offering
-                // log assign usage events for new offering
-                List<NicVO> nics = _nicDao.listByNetworkId(networkId);
-                for (NicVO nic : nics) {
-                    long vmId = nic.getInstanceId();
-                    VMInstanceVO vm = _vmDao.findById(vmId);
-                    if (vm == null) {
-                        s_logger.error("Vm for nic " + nic.getId() + " not found with Vm Id:" + vmId);
-                        continue;
+                // 4) if network has been upgraded from a non persistent ntwk offering to a persistent ntwk offering,
+                // implement the network if its not already
+                if (networkOfferingChanged && !oldNtwkOff.getIsPersistent() && networkOffering.getIsPersistent()) {
+                    if (network.getState() == Network.State.Allocated) {
+                        try {
+                            DeployDestination dest = new DeployDestination(_dcDao.findById(network.getDataCenterId()), null, null, null);
+                            _networkMgr.implementNetwork(network.getId(), dest, context);
+                        } catch (Exception ex) {
+                            s_logger.warn("Failed to implement network " + network + " elements and resources as a part o" + "f network update due to ", ex);
+                            CloudRuntimeException e = new CloudRuntimeException("Failed to implement network (with specified" + " id) elements and resources as a part of network update");
+                            e.addProxyObject(network.getUuid(), "networkId");
+                            throw e;
+                        }
                     }
-                    long isDefault = (nic.isDefaultNic()) ? 1 : 0;
-                    String nicIdString = Long.toString(nic.getId());
-                            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_REMOVE, vm.getAccountId(), vm.getDataCenterId(), vm.getId(), nicIdString,
-                                    oldNetworkOfferingId, null, isDefault, VirtualMachine.class.getName(), vm.getUuid(), vm.isDisplay());
-                            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NETWORK_OFFERING_ASSIGN, vm.getAccountId(), vm.getDataCenterId(), vm.getId(), nicIdString,
-                                    networkOfferingId, null, isDefault, VirtualMachine.class.getName(), vm.getUuid(), vm.isDisplay());
                 }
-                    }
-                });
-            }   else {
-                network.setNetworkOfferingId(networkOfferingId);
-                _networksDao.update(networkId, network,
-                        _networkMgr.finalizeServicesAndProvidersForNetwork(_entityMgr.findById(NetworkOffering.class, networkOfferingId), network.getPhysicalNetworkId()));
-            }
-        }   else {
-            _networksDao.update(networkId, network);
-        }
-
-        // 3) Implement the elements and rules again
-        if (restartNetwork) {
-            if (network.getState() != Network.State.Allocated) {
-                DeployDestination dest = new DeployDestination(_dcDao.findById(network.getDataCenterId()), null, null, null);
-                s_logger.debug("Implementing the network " + network + " elements and resources as a part of network update");
-                try {
-                    if (!changeCidr) {
-                        _networkMgr.implementNetworkElementsAndResources(dest, context, network, _networkOfferingDao.findById(network.getNetworkOfferingId()));
-                    } else {
-                        _networkMgr.implementNetwork(network.getId(), dest, context);
-                    }
-                } catch (Exception ex) {
-                    s_logger.warn("Failed to implement network " + network + " elements and resources as a part of network update due to ", ex);
-                    CloudRuntimeException e = new CloudRuntimeException("Failed to implement network (with specified id) elements and resources as a part of network update");
-                    e.addProxyObject(network.getUuid(), "networkId");
-                    throw e;
+                resourceCount--;
+            } while(updateInSequence && resourceCount>0);
+        }catch (Exception exception){
+             if(updateInSequence)
+                 _networkMgr.finalizeUpdateInSequence(network,false);
+             throw new CloudRuntimeException("failed to update network "+network.getUuid()+" due to "+exception.getMessage());
+        }finally {
+            if(updateInSequence){
+                if( _networkDetailsDao.findDetail(networkId,Network.updatingInSequence)!=null){
+                    _networkDetailsDao.removeDetail(networkId,Network.updatingInSequence);
                 }
             }
         }
-
-        // 4) if network has been upgraded from a non persistent ntwk offering to a persistent ntwk offering,
-        // implement the network if its not already
-        if (networkOfferingChanged && !oldNtwkOff.getIsPersistent() && networkOffering.getIsPersistent()) {
-            if (network.getState() == Network.State.Allocated) {
-                try {
-                    DeployDestination dest = new DeployDestination(_dcDao.findById(network.getDataCenterId()), null, null, null);
-                    _networkMgr.implementNetwork(network.getId(), dest, context);
-                } catch (Exception ex) {
-                    s_logger.warn("Failed to implement network " + network + " elements and resources as a part o" + "f network update due to ", ex);
-                    CloudRuntimeException e = new CloudRuntimeException("Failed to implement network (with specified" + " id) elements and resources as a part of network update");
-                    e.addProxyObject(network.getUuid(), "networkId");
-                    throw e;
-                }
-            }
-        }
-
         return getNetwork(network.getId());
     }
 
@@ -4087,6 +4140,7 @@
         Account caller = CallContext.current().getCallingAccount();
         Long nicId = cmd.getNicId();
         long vmId = cmd.getVmId();
+        String keyword = cmd.getKeyword();
         Long networkId = cmd.getNetworkId();
         UserVmVO  userVm = _userVmDao.findById(vmId);
 
@@ -4097,7 +4151,26 @@
             }
 
         _accountMgr.checkAccess(caller, null, true, userVm);
-        return _networkMgr.listVmNics(vmId, nicId, networkId);
+        return _networkMgr.listVmNics(vmId, nicId, networkId, keyword);
+    }
+
+    @Override
+    public List<? extends NicSecondaryIp> listVmNicSecondaryIps(ListNicsCmd cmd)
+    {
+        Account caller = CallContext.current().getCallingAccount();
+        Long nicId = cmd.getNicId();
+        long vmId = cmd.getVmId();
+        String keyword = cmd.getKeyword();
+        UserVmVO  userVm = _userVmDao.findById(vmId);
+
+        if (userVm == null || (!userVm.isDisplayVm() && caller.getType() == Account.ACCOUNT_TYPE_NORMAL)) {
+            InvalidParameterValueException ex = new InvalidParameterValueException("Virtual mahine id does not exist");
+            ex.addProxyObject(Long.valueOf(vmId).toString(), "vmId");
+            throw ex;
+        }
+
+        _accountMgr.checkAccess(caller, null, true, userVm);
+        return _nicSecondaryIpDao.listSecondaryIpUsingKeyword(nicId, keyword);
     }
 
     public List<NetworkGuru> getNetworkGurus() {
diff --git a/server/src/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
index 657d4d4..d911360 100644
--- a/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
+++ b/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
@@ -1514,7 +1514,7 @@
                     public void run() {
                         try {
 
-                            _userVmManager.destroyVm(vmId);
+                            _userVmManager.destroyVm(vmId, false);
 
                         } catch (ResourceUnavailableException e) {
                             e.printStackTrace();
diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java
index 64c8f4a..4cc44c4 100644
--- a/server/src/com/cloud/network/element/VirtualRouterElement.java
+++ b/server/src/com/cloud/network/element/VirtualRouterElement.java
@@ -24,6 +24,22 @@
 
 import javax.inject.Inject;
 
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.log4j.Logger;
+import org.cloud.network.router.deployment.RouterDeploymentDefinition;
+import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder;
+
+import com.google.gson.Gson;
+
+import org.apache.cloudstack.api.command.admin.router.ConfigureOvsElementCmd;
+import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd;
+import org.apache.cloudstack.api.command.admin.router.CreateVirtualRouterElementCmd;
+import org.apache.cloudstack.api.command.admin.router.ListOvsElementsCmd;
+import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.network.topology.NetworkTopology;
+import org.apache.cloudstack.network.topology.NetworkTopologyContext;
+
 import com.cloud.agent.api.to.LoadBalancerTO;
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.dc.DataCenter;
@@ -57,6 +73,8 @@
 import com.cloud.network.dao.IPAddressDao;
 import com.cloud.network.dao.LoadBalancerDao;
 import com.cloud.network.dao.NetworkDao;
+import com.cloud.network.dao.NetworkDetailVO;
+import com.cloud.network.dao.NetworkDetailsDao;
 import com.cloud.network.dao.OvsProviderDao;
 import com.cloud.network.dao.VirtualRouterProviderDao;
 import com.cloud.network.lb.LoadBalancingRule;
@@ -82,6 +100,7 @@
 import com.cloud.utils.crypt.DBEncryptionUtil;
 import com.cloud.utils.db.QueryBuilder;
 import com.cloud.utils.db.SearchCriteria.Op;
+import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.net.NetUtils;
 import com.cloud.vm.DomainRouterVO;
 import com.cloud.vm.NicProfile;
@@ -93,23 +112,10 @@
 import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.dao.DomainRouterDao;
 import com.cloud.vm.dao.UserVmDao;
-import com.google.gson.Gson;
-
-import org.apache.cloudstack.api.command.admin.router.ConfigureOvsElementCmd;
-import org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd;
-import org.apache.cloudstack.api.command.admin.router.CreateVirtualRouterElementCmd;
-import org.apache.cloudstack.api.command.admin.router.ListOvsElementsCmd;
-import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.network.topology.NetworkTopology;
-import org.apache.cloudstack.network.topology.NetworkTopologyContext;
-import org.apache.log4j.Logger;
-import org.cloud.network.router.deployment.RouterDeploymentDefinition;
-import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder;
 
 public class VirtualRouterElement extends AdapterBase implements VirtualRouterElementService, DhcpServiceProvider, UserDataServiceProvider, SourceNatServiceProvider,
 StaticNatServiceProvider, FirewallServiceProvider, LoadBalancingServiceProvider, PortForwardingServiceProvider, RemoteAccessVPNServiceProvider, IpDeployer,
-NetworkMigrationResponder, AggregatedCommandExecutor {
+NetworkMigrationResponder, AggregatedCommandExecutor, RedundantResource, DnsServiceProvider {
     private static final Logger s_logger = Logger.getLogger(VirtualRouterElement.class);
     public static final AutoScaleCounterType AutoScaleCounterCpu = new AutoScaleCounterType("cpu");
     public static final AutoScaleCounterType AutoScaleCounterMemory = new AutoScaleCounterType("memory");
@@ -160,6 +166,9 @@
     NetworkTopologyContext networkTopologyContext;
 
     @Inject
+    NetworkDetailsDao _networkDetailsDao;
+
+    @Inject
     protected RouterDeploymentDefinitionBuilder routerDeploymentDefinitionBuilder;
 
     protected boolean canHandle(final Network network, final Service service) {
@@ -217,7 +226,13 @@
             routerCounts = 2;
         }
         if (routers == null || routers.size() < routerCounts) {
-            throw new ResourceUnavailableException("Can't find all necessary running routers!", DataCenter.class, network.getDataCenterId());
+            //we might have a router which is already deployed and running.
+            //so check the no of routers in network currently.
+            List<DomainRouterVO> current_routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
+            if (current_routers.size() < 2) {
+                updateToFailedState(network);
+                throw new ResourceUnavailableException("Can't find all necessary running routers!", DataCenter.class, network.getDataCenterId());
+            }
         }
 
         return true;
@@ -262,7 +277,7 @@
     public boolean applyFWRules(final Network network, final List<? extends FirewallRule> rules) throws ResourceUnavailableException {
         boolean result = true;
         if (canHandle(network, Service.Firewall)) {
-            final List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
+            final List<DomainRouterVO> routers = getRouters(network);
             if (routers == null || routers.isEmpty()) {
                 s_logger.debug("Virtual router elemnt doesn't need to apply firewall rules on the backend; virtual " + "router doesn't exist in the network " + network.getId());
                 return true;
@@ -407,7 +422,7 @@
                 return false;
             }
 
-            final List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
+            final List<DomainRouterVO> routers = getRouters(network);
             if (routers == null || routers.isEmpty()) {
                 s_logger.debug("Virtual router elemnt doesn't need to apply lb rules on the backend; virtual " + "router doesn't exist in the network " + network.getId());
                 return true;
@@ -498,7 +513,7 @@
         }
         boolean result = true;
         if (canHandle) {
-            final List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
+            final List<DomainRouterVO> routers = getRouters(network);
             if (routers == null || routers.isEmpty()) {
                 s_logger.debug("Virtual router elemnt doesn't need to associate ip addresses on the backend; virtual " + "router doesn't exist in the network " + network.getId());
                 return true;
@@ -657,7 +672,7 @@
     public boolean applyStaticNats(final Network network, final List<? extends StaticNat> rules) throws ResourceUnavailableException {
         boolean result = true;
         if (canHandle(network, Service.StaticNat)) {
-            final List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
+            final List<DomainRouterVO> routers = getRouters(network);
             if (routers == null || routers.isEmpty()) {
                 s_logger.debug("Virtual router elemnt doesn't need to apply static nat on the backend; virtual " + "router doesn't exist in the network " + network.getId());
                 return true;
@@ -673,9 +688,49 @@
         return result;
     }
 
+    public List<DomainRouterVO> getRouters(Network network){
+        List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
+        if (routers !=null && routers.isEmpty()) {
+            return null;
+        }
+        NetworkDetailVO updateInSequence=_networkDetailsDao.findDetail(network.getId(), Network.updatingInSequence);
+        if(network.isRedundant() && updateInSequence!=null && "true".equalsIgnoreCase(updateInSequence.getValue())){
+            List<DomainRouterVO> masterRouters=new ArrayList<DomainRouterVO>();
+            int noOfrouters=routers.size();
+            while (noOfrouters>0){
+                DomainRouterVO router = routers.get(0);
+                if(router.getUpdateState()== VirtualRouter.UpdateState.UPDATE_IN_PROGRESS){
+                    ArrayList<DomainRouterVO> routerList = new ArrayList<DomainRouterVO>();
+                    routerList.add(router);
+                    return routerList;
+                }
+                if(router.getUpdateState()== VirtualRouter.UpdateState.UPDATE_COMPLETE) {
+                    routers.remove(router);
+                    noOfrouters--;
+                    continue;
+                }
+                if(router.getRedundantState()!=VirtualRouter.RedundantState.BACKUP) {
+                    masterRouters.add(router);
+                    routers.remove(router);
+                }
+                noOfrouters--;
+            }
+            if(routers.size()==0 && masterRouters.size()==0){
+                return null;
+            }
+            if(routers.size()==0 && masterRouters.size()!=0){
+                routers=masterRouters;
+            }
+            routers=routers.subList(0,1);
+            routers.get(0).setUpdateState(VirtualRouter.UpdateState.UPDATE_IN_PROGRESS);
+            _routerDao.persist(routers.get(0));
+        }
+        return routers;
+    }
+
     @Override
     public boolean shutdown(final Network network, final ReservationContext context, final boolean cleanup) throws ConcurrentOperationException, ResourceUnavailableException {
-        final List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
+        final List<DomainRouterVO> routers = getRouters(network);
         if (routers == null || routers.isEmpty()) {
             return true;
         }
@@ -922,10 +977,24 @@
         return true;
     }
 
+
     @Override
     public boolean configDhcpSupportForSubnet(final Network network, final NicProfile nic, final VirtualMachineProfile vm, final DeployDestination dest,
-            final ReservationContext context) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
-        if (canHandle(network, Service.Dhcp)) {
+                                              final ReservationContext context) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
+            return configureDhcpSupport(network, nic, vm, dest, Service.Dhcp);
+    }
+
+    @Override
+    public boolean configDnsSupportForSubnet(Network network, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
+        // Ignore if virtual router is already dhcp provider
+        if (_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dhcp, getProvider())) {
+            return true;
+        }
+        return configureDhcpSupport(network, nic, vm, dest, Service.Dns);
+    }
+
+    protected boolean configureDhcpSupport(Network network, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, Service service) throws ResourceUnavailableException {
+        if (canHandle(network, service)) {
             if (vm.getType() != VirtualMachine.Type.User) {
                 return false;
             }
@@ -948,15 +1017,30 @@
 
     @Override
     public boolean removeDhcpSupportForSubnet(final Network network) throws ResourceUnavailableException {
-        if (canHandle(network, Service.Dhcp)) {
+        return removeDhcpSupportForSubnet(network, Service.Dhcp);
+    }
+
+    @Override
+    public boolean removeDnsSupportForSubnet(Network network) throws ResourceUnavailableException {
+        // Ignore if virtual router is already dhcp provider
+        if (_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dhcp, getProvider())) {
+            return true;
+        } else {
+            return removeDhcpSupportForSubnet(network, Service.Dns);
+        }
+    }
+
+    protected boolean removeDhcpSupportForSubnet(Network network, Network.Service service) throws ResourceUnavailableException {
+        if (canHandle(network, service)) {
             final List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
-            if (routers == null || routers.size() == 0) {
+
+            if (CollectionUtils.isEmpty(routers)) {
                 throw new ResourceUnavailableException("Can't find at least one router!", DataCenter.class, network.getDataCenterId());
             }
             try {
                 return _routerMgr.removeDhcpSupportForSubnet(network, routers);
             } catch (final ResourceUnavailableException e) {
-                s_logger.debug("Router resource unavailable ");
+                s_logger.info("Router resource unavailable ", e);
             }
         }
         return false;
@@ -965,8 +1049,23 @@
     @Override
     public boolean addDhcpEntry(final Network network, final NicProfile nic, final VirtualMachineProfile vm, final DeployDestination dest, final ReservationContext context)
             throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
+        return applyDhcpEntries(network, nic, vm, dest, Service.Dhcp);
+    }
+
+    @Override
+    public boolean addDnsEntry(Network network, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
+        // Ignore if virtual router is already dhcp provider
+        if (_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dhcp, getProvider())) {
+            return true;
+        }
+
+        return applyDhcpEntries(network, nic, vm, dest, Service.Dns);
+    }
+
+    protected boolean applyDhcpEntries (final Network network, final NicProfile nic, final VirtualMachineProfile vm, final DeployDestination dest, final Network.Service service) throws ResourceUnavailableException {
+
         boolean result = true;
-        if (canHandle(network, Service.Dhcp)) {
+        if (canHandle(network, service)) {
             if (vm.getType() != VirtualMachine.Type.User) {
                 return false;
             }
@@ -1031,7 +1130,7 @@
         List<DomainRouterVO> routers;
 
         if (publicNetwork) {
-            routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER);
+            routers = getRouters(network);
         } else {
             if (isPodBased && dest.getPod() != null) {
                 final Long podId = dest.getPod().getId();
@@ -1233,7 +1332,23 @@
             throw new ResourceUnavailableException("Can't find at least one router!", DataCenter.class, network.getDataCenterId());
         }
 
-        return _routerMgr.completeAggregatedExecution(network, routers);
+        NetworkDetailVO networkDetail=_networkDetailsDao.findDetail(network.getId(), Network.updatingInSequence);
+        boolean updateInSequence= "true".equalsIgnoreCase((networkDetail!=null ? networkDetail.getValue() : null));
+        if(updateInSequence){
+            DomainRouterVO router=routers.get(0);
+            router.setUpdateState(VirtualRouter.UpdateState.UPDATE_COMPLETE);
+            _routerDao.persist(router);
+        }
+        boolean result=false;
+        try{
+            result=_routerMgr.completeAggregatedExecution(network, routers);
+        } finally {
+            if(!result && updateInSequence) {
+                //fail the network update. even if one router fails we fail the network update.
+                updateToFailedState(network);
+            }
+        }
+        return result;
     }
 
     @Override
@@ -1242,4 +1357,38 @@
         // lets not waste another command
         return true;
     }
+
+    @Override
+    public void configureResource(Network network) {
+        NetworkDetailVO networkDetail=_networkDetailsDao.findDetail(network.getId(), Network.updatingInSequence);
+        if(networkDetail==null || !"true".equalsIgnoreCase(networkDetail.getValue()))
+            throw new CloudRuntimeException("failed to configure the resource, network update is not in progress.");
+        List<DomainRouterVO>routers = _routerDao.listByNetworkAndRole(network.getId(), VirtualRouter.Role.VIRTUAL_ROUTER);
+        for(DomainRouterVO router : routers){
+            router.setUpdateState(VirtualRouter.UpdateState.UPDATE_NEEDED);
+            _routerDao.persist(router);
+        }
+    }
+
+    @Override
+    public int getResourceCount(Network network) {
+        return _routerDao.listByNetworkAndRole(network.getId(), VirtualRouter.Role.VIRTUAL_ROUTER).size();
+    }
+
+    @Override
+    public void finalize(Network network, boolean success) {
+        if(!success){
+            updateToFailedState(network);
+        }
+    }
+
+    private void updateToFailedState(Network network){
+        //fail the network update. even if one router fails we fail the network update.
+        List<DomainRouterVO> routerList = _routerDao.listByNetworkAndRole(network.getId(), VirtualRouter.Role.VIRTUAL_ROUTER);
+        for (DomainRouterVO router : routerList) {
+            router.setUpdateState(VirtualRouter.UpdateState.UPDATE_FAILED);
+            _routerDao.persist(router);
+        }
+    }
+
 }
diff --git a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
index d633a8b..a8f4b17 100644
--- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
+++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
@@ -22,10 +22,12 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.Collections;
 
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import com.cloud.network.dao.FirewallRulesDcidrsDao;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -111,6 +113,8 @@
     @Inject
     FirewallRulesCidrsDao _firewallCidrsDao;
     @Inject
+    FirewallRulesDcidrsDao _firewallDcidrsDao;
+    @Inject
     AccountManager _accountMgr;
     @Inject
     NetworkOrchestrationService _networkMgr;
@@ -143,12 +147,16 @@
     IpAddressManager _ipAddrMgr;
 
     private boolean _elbEnabled = false;
+    static Boolean rulesContinueOnErrFlag = true;
 
     @Override
     public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
         _name = name;
         String elbEnabledString = _configDao.getValue(Config.ElasticLoadBalancerEnabled.key());
         _elbEnabled = Boolean.parseBoolean(elbEnabledString);
+        if (_ipAddrMgr.RulesContinueOnError.value() != null) {
+            rulesContinueOnErrFlag = _ipAddrMgr.RulesContinueOnError.value();
+        }
         return true;
     }
 
@@ -168,7 +176,11 @@
             throw new InvalidParameterValueException("Egress firewall rules are not supported for " + network.getGuestType() + "  networks");
         }
 
-        return createFirewallRule(null, caller, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(), rule.getSourceCidrList(),
+        List<String> sourceCidrs = rule.getSourceCidrList();
+        if (sourceCidrs != null && !sourceCidrs.isEmpty())
+        Collections.replaceAll(sourceCidrs, "0.0.0.0/0", network.getCidr());
+
+        return createFirewallRule(null, caller, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(), sourceCidrs, rule.getDestinationCidrList(),
                 rule.getIcmpCode(), rule.getIcmpType(), null, rule.getType(), rule.getNetworkId(), rule.getTrafficType(), rule.isDisplay());
     }
 
@@ -179,12 +191,12 @@
         Long sourceIpAddressId = rule.getSourceIpAddressId();
 
         return createFirewallRule(sourceIpAddressId, caller, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(),
-            rule.getSourceCidrList(), rule.getIcmpCode(), rule.getIcmpType(), null, rule.getType(), rule.getNetworkId(), rule.getTrafficType(), rule.isDisplay());
+            rule.getSourceCidrList(), null, rule.getIcmpCode(), rule.getIcmpType(), null, rule.getType(), rule.getNetworkId(), rule.getTrafficType(), rule.isDisplay());
     }
-
+    //Destination CIDR capability is currently implemented for egress rules only. For others, the field is passed as null.
     @DB
     protected FirewallRule createFirewallRule(final Long ipAddrId, Account caller, final String xId, final Integer portStart, final Integer portEnd,
-        final String protocol, final List<String> sourceCidrList, final Integer icmpCode, final Integer icmpType, final Long relatedRuleId,
+        final String protocol, final List<String> sourceCidrList, final List<String> destCidrList, final Integer icmpCode, final Integer icmpType, final Long relatedRuleId,
  final FirewallRule.FirewallRuleType type,
             final Long networkId, final FirewallRule.TrafficType trafficType, final Boolean forDisplay) throws NetworkRuleConflictException {
 
@@ -230,24 +242,24 @@
             @Override
             public FirewallRuleVO doInTransaction(TransactionStatus status) throws NetworkRuleConflictException {
                 FirewallRuleVO newRule =
-                    new FirewallRuleVO(xId, ipAddrId, portStart, portEnd, protocol.toLowerCase(), networkId, accountIdFinal, domainIdFinal, Purpose.Firewall,
-                        sourceCidrList, icmpCode, icmpType, relatedRuleId, trafficType);
-        newRule.setType(type);
+                        new FirewallRuleVO(xId, ipAddrId, portStart, portEnd, protocol.toLowerCase(), networkId, accountIdFinal, domainIdFinal, Purpose.Firewall,
+                                sourceCidrList, destCidrList, icmpCode, icmpType, relatedRuleId, trafficType);
+                newRule.setType(type);
                 if (forDisplay != null) {
                     newRule.setDisplay(forDisplay);
                 }
-        newRule = _firewallDao.persist(newRule);
+                newRule = _firewallDao.persist(newRule);
 
-        if (type == FirewallRuleType.User)
-            detectRulesConflict(newRule);
+                if (type == FirewallRuleType.User)
+                    detectRulesConflict(newRule);
 
-        if (!_firewallDao.setStateToAdd(newRule)) {
-            throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
-        }
-        CallContext.current().setEventDetails("Rule Id: " + newRule.getId());
+                if (!_firewallDao.setStateToAdd(newRule)) {
+                    throw new CloudRuntimeException("Unable to update the state to add for " + newRule);
+                }
+                CallContext.current().setEventDetails("Rule Id: " + newRule.getId());
 
-        return newRule;
-    }
+                return newRule;
+            }
         });
     }
 
@@ -336,6 +348,17 @@
         return new Pair<List<? extends FirewallRule>, Integer>(result.first(), result.second());
     }
 
+    //Intermediate funciton used in detectRulesConflict to check for the conflicting cidrs in the rules already applied and the newRule being applied.
+    boolean detectConflictingCidrs(List<String> cidrList1, List<String> cidrList2){
+        if(cidrList1.isEmpty() && cidrList2.isEmpty()){
+            return true;
+        }
+
+        Collection<String> similar = new HashSet<String>(cidrList1);
+        similar.retainAll(cidrList2);
+        return (similar.size()>0);
+    }
+
     @Override
     public void detectRulesConflict(FirewallRule newRule) throws NetworkRuleConflictException {
         List<FirewallRuleVO> rules;
@@ -362,23 +385,16 @@
             boolean bothRulesFirewall = (rule.getPurpose() == newRule.getPurpose() && rule.getPurpose() == Purpose.Firewall);
             boolean duplicatedCidrs = false;
             if (bothRulesFirewall) {
-                // Verify that the rules have different cidrs
                 _firewallDao.loadSourceCidrs(rule);
                 _firewallDao.loadSourceCidrs((FirewallRuleVO)newRule);
 
-                List<String> ruleCidrList = rule.getSourceCidrList();
-                List<String> newRuleCidrList = newRule.getSourceCidrList();
+                _firewallDao.loadDestinationCidrs(rule);
+                _firewallDao.loadDestinationCidrs((FirewallRuleVO) newRule);
 
-                if (ruleCidrList == null || newRuleCidrList == null) {
+                if (rule.getSourceCidrList() == null || newRule.getSourceCidrList() == null) {
                     continue;
                 }
-
-                Collection<String> similar = new HashSet<String>(ruleCidrList);
-                similar.retainAll(newRuleCidrList);
-
-                if (similar.size() > 0) {
-                    duplicatedCidrs = true;
-                }
+                duplicatedCidrs = (detectConflictingCidrs(rule.getSourceCidrList(), newRule.getSourceCidrList()) && detectConflictingCidrs(rule.getDestinationCidrList(), newRule.getDestinationCidrList()));
             }
 
             if (!oneOfRulesIsFirewall) {
@@ -389,10 +405,12 @@
                 }
             }
 
+            // Checking if the rule applied is to the same network that is passed in the rule.
             if (rule.getNetworkId() != newRule.getNetworkId() && rule.getState() != State.Revoke) {
                 throw new NetworkRuleConflictException("New rule is for a different network than what's specified in rule " + rule.getXid());
             }
 
+            //Check for the ICMP protocol. This has to be done separately from other protocols as we need to check the ICMP codes and ICMP type also.
             if (newRule.getProtocol().equalsIgnoreCase(NetUtils.ICMP_PROTO) && newRule.getProtocol().equalsIgnoreCase(rule.getProtocol())) {
                 if (newRule.getIcmpCode().longValue() == rule.getIcmpCode().longValue() && newRule.getIcmpType().longValue() == rule.getIcmpType().longValue() &&
                     newRule.getProtocol().equalsIgnoreCase(rule.getProtocol()) && duplicatedCidrs) {
@@ -404,10 +422,12 @@
                 (newRule.getSourcePortStart() != null && newRule.getSourcePortEnd() != null && rule.getSourcePortStart() != null && rule.getSourcePortEnd() != null);
             boolean nullPorts =
                 (newRule.getSourcePortStart() == null && newRule.getSourcePortEnd() == null && rule.getSourcePortStart() == null && rule.getSourcePortEnd() == null);
-            if(nullPorts && duplicatedCidrs && (rule.getProtocol().equalsIgnoreCase(newRule.getProtocol())) && !newRule.getProtocol().equalsIgnoreCase(NetUtils.ICMP_PROTO))
-            {
+
+            // If ports are not specified and cidrs are same and protocol is also same(NOT ICMP as it is separately checked above)
+            if(nullPorts && duplicatedCidrs && (rule.getProtocol().equalsIgnoreCase(newRule.getProtocol())) && !newRule.getProtocol().equalsIgnoreCase(NetUtils.ICMP_PROTO)) {
                 throw new NetworkRuleConflictException("There is already a firewall rule specified with protocol = " +newRule.getProtocol()+ " and no ports");
             }
+
             if (!notNullPorts) {
                 continue;
             } else if (!oneOfRulesIsFirewall &&
@@ -420,6 +440,7 @@
                     newRule.getSourcePortEnd().intValue() >= rule.getSourcePortStart().intValue()) ||
                 (newRule.getSourcePortStart().intValue() <= rule.getSourcePortEnd().intValue() &&
                 newRule.getSourcePortEnd().intValue() >= rule.getSourcePortEnd().intValue()))) {
+                //Above else if conditions checks for the conflicting port ranges.
 
                 // we allow port forwarding rules with the same parameters but different protocols
                 boolean allowPf =
@@ -653,6 +674,7 @@
         for (FirewallRuleVO rule : rules) {
             // load cidrs if any
             rule.setSourceCidrList(_firewallCidrsDao.getSourceCidrs(rule.getId()));
+            rule.setDestinationCidrsList(_firewallDcidrsDao.getDestCidrs(rule.getId()));
         }
 
         if (caller != null) {
@@ -678,10 +700,14 @@
 
         NetworkVO network = _networkDao.findById(networkId);
         List<String> sourceCidr = new ArrayList<String>();
+        List<String> destCidr = new ArrayList<String>();
 
-        sourceCidr.add(NetUtils.ALL_CIDRS);
+
+        sourceCidr.add(network.getCidr());
+        destCidr.add(NetUtils.ALL_CIDRS);
+
         FirewallRuleVO ruleVO =
-            new FirewallRuleVO(null, null, null, null, "all", networkId, network.getAccountId(), network.getDomainId(), Purpose.Firewall, sourceCidr, null, null, null,
+            new FirewallRuleVO(null, null, null, null, "all", networkId, network.getAccountId(), network.getDomainId(), Purpose.Firewall, sourceCidr, destCidr, null, null, null,
                 FirewallRule.TrafficType.Egress, FirewallRuleType.System);
         ruleVO.setState(add ? State.Add : State.Revoke);
         List<FirewallRuleVO> rules = new ArrayList<FirewallRuleVO>();
@@ -851,8 +877,12 @@
 
         // now send everything to the backend
         List<FirewallRuleVO> rulesToApply = _firewallDao.listByIpAndPurpose(ipId, Purpose.Firewall);
-        applyFirewallRules(rulesToApply, true, caller);
-
+        //apply rules
+        if (!applyFirewallRules(rulesToApply, rulesContinueOnErrFlag, caller)) {
+            if (!rulesContinueOnErrFlag) {
+                return false;
+            }
+        }
         // Now we check again in case more rules have been inserted.
         rules.addAll(_firewallDao.listByIpAndPurposeAndNotRevoked(ipId, Purpose.Firewall));
 
@@ -876,7 +906,7 @@
 
         List<String> oneCidr = new ArrayList<String>();
         oneCidr.add(NetUtils.ALL_CIDRS);
-        return createFirewallRule(ipAddrId, caller, null, startPort, endPort, protocol, oneCidr, icmpCode, icmpType, relatedRuleId, FirewallRule.FirewallRuleType.User,
+        return createFirewallRule(ipAddrId, caller, null, startPort, endPort, protocol, oneCidr, null, icmpCode, icmpType, relatedRuleId, FirewallRule.FirewallRuleType.User,
             networkId, FirewallRule.TrafficType.Ingress, true);
     }
 
@@ -990,7 +1020,7 @@
                 if (rule.getSourceCidrList() == null && (rule.getPurpose() == Purpose.Firewall || rule.getPurpose() == Purpose.NetworkACL)) {
                     _firewallDao.loadSourceCidrs(rule);
                 }
-                createFirewallRule(ip.getId(), acct, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(), rule.getSourceCidrList(),
+                createFirewallRule(ip.getId(), acct, rule.getXid(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(), rule.getSourceCidrList(),null,
                         rule.getIcmpCode(), rule.getIcmpType(), rule.getRelated(), FirewallRuleType.System, rule.getNetworkId(), rule.getTrafficType(), true);
             } catch (Exception e) {
                 s_logger.debug("Failed to add system wide firewall rule, due to:" + e.toString());
diff --git a/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java b/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
index 9154ece..6301ca5 100644
--- a/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
@@ -30,6 +30,7 @@
 import com.cloud.dc.Pod;
 import com.cloud.dc.PodVlanMapVO;
 import com.cloud.dc.Vlan;
+import com.cloud.dc.VlanVO;
 import com.cloud.dc.Vlan.VlanType;
 import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.dc.dao.PodVlanMapDao;
@@ -54,12 +55,14 @@
 import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
 import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.net.NetUtils;
 import com.cloud.vm.Nic;
 import com.cloud.vm.Nic.ReservationStrategy;
 import com.cloud.vm.NicProfile;
 import com.cloud.vm.ReservationContext;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
+import com.googlecode.ipv6.IPv6Address;
 
 public class DirectPodBasedNetworkGuru extends DirectNetworkGuru {
     private static final Logger s_logger = Logger.getLogger(DirectPodBasedNetworkGuru.class);
@@ -166,54 +169,81 @@
     protected void getIp(final NicProfile nic, final Pod pod, final VirtualMachineProfile vm, final Network network) throws InsufficientVirtualNetworkCapacityException,
         InsufficientAddressCapacityException, ConcurrentOperationException {
         final DataCenter dc = _dcDao.findById(pod.getDataCenterId());
-        if (nic.getIPv4Address() == null) {
             Transaction.execute(new TransactionCallbackWithExceptionNoReturn<InsufficientAddressCapacityException>() {
                 @Override
                 public void doInTransactionWithoutResult(TransactionStatus status) throws InsufficientAddressCapacityException {
                     PublicIp ip = null;
                     List<PodVlanMapVO> podRefs = _podVlanDao.listPodVlanMapsByPod(pod.getId());
-                    String podRangeGateway = null;
-                    if (!podRefs.isEmpty()) {
-                        podRangeGateway = _vlanDao.findById(podRefs.get(0).getVlanDbId()).getVlanGateway();
-                    }
-                    //Get ip address from the placeholder and don't allocate a new one
-                    if (vm.getType() == VirtualMachine.Type.DomainRouter) {
-                        Nic placeholderNic = _networkModel.getPlaceholderNicForRouter(network, pod.getId());
-                        if (placeholderNic != null) {
-                            IPAddressVO userIp = _ipAddressDao.findByIpAndSourceNetworkId(network.getId(), placeholderNic.getIPv4Address());
-                            ip = PublicIp.createFromAddrAndVlan(userIp, _vlanDao.findById(userIp.getVlanId()));
-                            s_logger.debug("Nic got an ip address " + placeholderNic.getIPv4Address() + " stored in placeholder nic for the network " + network +
-                                " and gateway " + podRangeGateway);
+                    VlanVO vlan = _vlanDao.findById(podRefs.get(0).getVlanDbId());
+
+                    if (nic.getIPv4Address() == null) {
+                        String podRangeGateway = null;
+                        if (!podRefs.isEmpty()) {
+                            podRangeGateway = vlan.getVlanGateway();
                         }
-                    }
-
-                    if (ip == null) {
-                        ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, false);
-                    }
-
-                    nic.setIPv4Address(ip.getAddress().toString());
-                    nic.setFormat(AddressFormat.Ip4);
-                    nic.setIPv4Gateway(ip.getGateway());
-                    nic.setIPv4Netmask(ip.getNetmask());
-                    if (ip.getVlanTag() != null && ip.getVlanTag().equalsIgnoreCase(Vlan.UNTAGGED)) {
-                        nic.setIsolationUri(IsolationType.Ec2.toUri(Vlan.UNTAGGED));
-                        nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(Vlan.UNTAGGED));
-                        nic.setBroadcastType(BroadcastDomainType.Native);
-                    }
-                    nic.setReservationId(String.valueOf(ip.getVlanTag()));
-                    nic.setMacAddress(ip.getMacAddress());
-
-                    //save the placeholder nic if the vm is the Virtual router
-                    if (vm.getType() == VirtualMachine.Type.DomainRouter) {
-                        Nic placeholderNic = _networkModel.getPlaceholderNicForRouter(network, pod.getId());
-                        if (placeholderNic == null) {
-                            s_logger.debug("Saving placeholder nic with ip4 address " + nic.getIPv4Address() + " for the network " + network);
-                            _networkMgr.savePlaceholderNic(network, nic.getIPv4Address(), null, VirtualMachine.Type.DomainRouter);
+                        //Get ip address from the placeholder and don't allocate a new one
+                        if (vm.getType() == VirtualMachine.Type.DomainRouter) {
+                            Nic placeholderNic = _networkModel.getPlaceholderNicForRouter(network, pod.getId());
+                            if (placeholderNic != null) {
+                                IPAddressVO userIp = _ipAddressDao.findByIpAndSourceNetworkId(network.getId(), placeholderNic.getIPv4Address());
+                                ip = PublicIp.createFromAddrAndVlan(userIp, _vlanDao.findById(userIp.getVlanId()));
+                                s_logger.debug("Nic got an ip address " + placeholderNic.getIPv4Address() + " stored in placeholder nic for the network " + network +
+                                    " and gateway " + podRangeGateway);
+                            }
                         }
-                    }
+
+                        if (ip == null) {
+                            ip = _ipAddrMgr.assignPublicIpAddress(dc.getId(), pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, false);
+                        }
+
+                        nic.setIPv4Address(ip.getAddress().toString());
+                        nic.setFormat(AddressFormat.Ip4);
+                        nic.setIPv4Gateway(ip.getGateway());
+                        nic.setIPv4Netmask(ip.getNetmask());
+                        if (ip.getVlanTag() != null && ip.getVlanTag().equalsIgnoreCase(Vlan.UNTAGGED)) {
+                            nic.setIsolationUri(IsolationType.Ec2.toUri(Vlan.UNTAGGED));
+                            nic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(Vlan.UNTAGGED));
+                            nic.setBroadcastType(BroadcastDomainType.Native);
+                        }
+                        nic.setReservationId(String.valueOf(ip.getVlanTag()));
+                        nic.setMacAddress(ip.getMacAddress());
+
+                        //save the placeholder nic if the vm is the Virtual router
+                        if (vm.getType() == VirtualMachine.Type.DomainRouter) {
+                            Nic placeholderNic = _networkModel.getPlaceholderNicForRouter(network, pod.getId());
+                            if (placeholderNic == null) {
+                                s_logger.debug("Saving placeholder nic with ip4 address " + nic.getIPv4Address() + " for the network " + network);
+                                _networkMgr.savePlaceholderNic(network, nic.getIPv4Address(), null, VirtualMachine.Type.DomainRouter);
+                            }
+                        }
                 }
-            });
-        }
+
+                /**
+                 * Calculate the IPv6 Address the Instance will obtain using SLAAC and IPv6 EUI-64
+                 *
+                 * Linux, FreeBSD and Windows all calculate the same IPv6 address when configured properly.
+                 *
+                 * Using Router Advertisements the routers in the network should announce the IPv6 CIDR which is configured
+                 * in in the vlan table in the database.
+                 *
+                 * This way the NIC will be populated with a IPv6 address on which the Instance is reachable.
+                 */
+                if (vlan.getIp6Cidr() != null) {
+                    if (nic.getIPv6Address() == null) {
+                        s_logger.debug("Found IPv6 CIDR " + vlan.getIp6Cidr() + " for VLAN " + vlan.getId());
+                        nic.setIPv6Cidr(vlan.getIp6Cidr());
+                        nic.setIPv6Gateway(vlan.getIp6Gateway());
+
+                        IPv6Address ipv6addr = NetUtils.EUI64Address(vlan.getIp6Cidr(), nic.getMacAddress());
+                        s_logger.info("Calculated IPv6 address " + ipv6addr + " using EUI-64 for NIC " + nic.getUuid());
+                        nic.setIPv6Address(ipv6addr.toString());
+                    }
+                } else {
+                    s_logger.debug("No IPv6 CIDR configured for VLAN " + vlan.getId());
+                }
+            }
+        });
+
         nic.setIPv4Dns1(dc.getDns1());
         nic.setIPv4Dns2(dc.getDns2());
     }
diff --git a/server/src/com/cloud/network/guru/PodBasedNetworkGuru.java b/server/src/com/cloud/network/guru/PodBasedNetworkGuru.java
index 9bffe2c..e760001 100644
--- a/server/src/com/cloud/network/guru/PodBasedNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/PodBasedNetworkGuru.java
@@ -20,6 +20,7 @@
 
 import javax.inject.Inject;
 
+import com.cloud.network.NetworkModel;
 import org.apache.log4j.Logger;
 
 import com.cloud.dc.Pod;
@@ -53,6 +54,7 @@
     DataCenterDao _dcDao;
     @Inject
     StorageNetworkManager _sNwMgr;
+
     Random _rand = new Random(System.currentTimeMillis());
 
     private static final TrafficType[] TrafficTypes = {TrafficType.Management};
@@ -123,7 +125,7 @@
         }
 
         nic.setIPv4Address(ip.first());
-        nic.setMacAddress(NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ip.second())));
+        nic.setMacAddress(NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ip.second(), NetworkModel.MACIdentifier.value())));
         nic.setIPv4Gateway(pod.getGateway());
         nic.setFormat(AddressFormat.Ip4);
         String netmask = NetUtils.getCidrNetmask(pod.getCidrSize());
diff --git a/server/src/com/cloud/network/guru/PrivateNetworkGuru.java b/server/src/com/cloud/network/guru/PrivateNetworkGuru.java
index be3c6e4..0cf2637 100644
--- a/server/src/com/cloud/network/guru/PrivateNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/PrivateNetworkGuru.java
@@ -186,7 +186,7 @@
             String vlanTag = BroadcastDomainType.getValue(network.getBroadcastUri());
             String netmask = NetUtils.getCidrNetmask(network.getCidr());
             PrivateIpAddress ip =
-                new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())));
+                new PrivateIpAddress(ipVO, vlanTag, network.getGateway(), netmask, NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress(), NetworkModel.MACIdentifier.value())));
 
             nic.setIPv4Address(ip.getIpAddress());
             nic.setIPv4Gateway(ip.getGateway());
diff --git a/server/src/com/cloud/network/guru/StorageNetworkGuru.java b/server/src/com/cloud/network/guru/StorageNetworkGuru.java
index f6c8dec..2a51a82 100644
--- a/server/src/com/cloud/network/guru/StorageNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/StorageNetworkGuru.java
@@ -18,6 +18,7 @@
 
 import javax.inject.Inject;
 
+import com.cloud.network.NetworkModel;
 import org.apache.log4j.Logger;
 
 import com.cloud.dc.Pod;
@@ -131,7 +132,7 @@
 
         vlan = ip.getVlan();
         nic.setIPv4Address(ip.getIpAddress());
-        nic.setMacAddress(NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ip.getMac())));
+        nic.setMacAddress(NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ip.getMac(), NetworkModel.MACIdentifier.value())));
         nic.setFormat(AddressFormat.Ip4);
         nic.setIPv4Netmask(ip.getNetmask());
         nic.setBroadcastType(BroadcastDomainType.Storage);
diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
index ddc6b0b..5e19ad7 100644
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
@@ -2001,7 +2001,10 @@
 
     @Override
     public boolean removeAllLoadBalanacersForIp(long ipId, Account caller, long callerUserId) {
-        List<FirewallRuleVO> rules = _firewallDao.listByIpAndPurposeAndNotRevoked(ipId, Purpose.LoadBalancing);
+
+        //Included revoked rules to remove the rules of ips which are in revoke state
+        List<FirewallRuleVO> rules = _firewallDao.listByIpAndPurpose(ipId, Purpose.LoadBalancing);
+
         if (rules != null) {
             s_logger.debug("Found " + rules.size() + " lb rules to cleanup");
             for (FirewallRule rule : rules) {
diff --git a/server/src/com/cloud/network/router/CommandSetupHelper.java b/server/src/com/cloud/network/router/CommandSetupHelper.java
index 13c8096..d00c9a8 100644
--- a/server/src/com/cloud/network/router/CommandSetupHelper.java
+++ b/server/src/com/cloud/network/router/CommandSetupHelper.java
@@ -84,6 +84,7 @@
 import com.cloud.network.dao.IPAddressDao;
 import com.cloud.network.dao.NetworkDao;
 import com.cloud.network.dao.NetworkVO;
+import com.cloud.network.dao.IPAddressVO;
 import com.cloud.network.dao.Site2SiteCustomerGatewayDao;
 import com.cloud.network.dao.Site2SiteCustomerGatewayVO;
 import com.cloud.network.dao.Site2SiteVpnGatewayDao;
@@ -440,6 +441,7 @@
             }
             for (final FirewallRule rule : rules) {
                 _rulesDao.loadSourceCidrs((FirewallRuleVO) rule);
+                _rulesDao.loadDestinationCidrs((FirewallRuleVO)rule);
                 final FirewallRule.TrafficType traffictype = rule.getTrafficType();
                 if (traffictype == FirewallRule.TrafficType.Ingress) {
                     final IpAddress sourceIp = _networkModel.getIp(rule.getSourceIpAddressId());
@@ -835,6 +837,23 @@
                 associatedWithNetworkId = ipAddrList.get(0).getNetworkId();
             }
 
+            // for network if the ips does not have any rules, then only last ip
+            List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(associatedWithNetworkId, null);
+
+            int ipsWithrules = 0;
+            int ipsStaticNat = 0;
+            for (IPAddressVO ip : userIps) {
+                if ( _rulesDao.countRulesByIpIdAndState(ip.getId(), FirewallRule.State.Active) > 0){
+                    ipsWithrules++;
+                }
+
+                // check onetoonenat and also check if the ip "add":false. If there are 2 PF rules remove and
+                // 1 static nat rule add
+                if (ip.isOneToOneNat() && ip.getRuleState() == null) {
+                    ipsStaticNat++;
+                }
+            }
+
             final IpAssocCommand cmd = new IpAssocCommand(ipsToSend);
             cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId()));
             cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, _routerControlHelper.getRouterIpInNetwork(associatedWithNetworkId, router.getId()));
@@ -842,6 +861,14 @@
             final DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId());
             cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString());
 
+            // if there is 1 static nat then it will be checked for remove at the resource
+            if (ipsWithrules == 0 && ipsStaticNat == 0) {
+                // there is only one ip address for the network.
+                cmd.setAccessDetail(NetworkElementCommand.NETWORK_PUB_LAST_IP, "true");
+            } else {
+                cmd.setAccessDetail(NetworkElementCommand.NETWORK_PUB_LAST_IP, "false");
+            }
+
             cmds.addCommand(ipAssocCommand, cmd);
         }
     }
diff --git a/server/src/com/cloud/network/router/NicProfileHelperImpl.java b/server/src/com/cloud/network/router/NicProfileHelperImpl.java
index 2fc5a42..7575aad 100644
--- a/server/src/com/cloud/network/router/NicProfileHelperImpl.java
+++ b/server/src/com/cloud/network/router/NicProfileHelperImpl.java
@@ -87,14 +87,14 @@
                                     router.getHypervisorType(), privateNetwork));
 
             if (router.getIsRedundantRouter()) {
-              String newMacAddress = NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress()));
+              String newMacAddress = NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress(), NetworkModel.MACIdentifier.value()));
               privateNicProfile.setMacAddress(newMacAddress);
             }
         } else {
             final String netmask = NetUtils.getCidrNetmask(privateNetwork.getCidr());
             final PrivateIpAddress ip =
                     new PrivateIpAddress(ipVO, privateNetwork.getBroadcastUri().toString(), privateNetwork.getGateway(), netmask,
-                            NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())));
+                            NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress(), NetworkModel.MACIdentifier.value())));
 
             final URI netUri = BroadcastDomainType.fromString(ip.getBroadcastUri());
             privateNicProfile.setIPv4Address(ip.getIpAddress());
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 903d31d..43669d1 100644
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -42,6 +42,11 @@
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.log4j.Logger;
+import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+
 import org.apache.cloudstack.alert.AlertService;
 import org.apache.cloudstack.alert.AlertService.AlertType;
 import org.apache.cloudstack.api.command.admin.router.RebootRouterCmd;
@@ -61,10 +66,6 @@
 import org.apache.cloudstack.network.topology.NetworkTopologyContext;
 import org.apache.cloudstack.utils.identity.ManagementServerNode;
 import org.apache.cloudstack.utils.usage.UsageUtils;
-import org.apache.log4j.Logger;
-import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.Listener;
@@ -1784,7 +1785,8 @@
     }
 
     protected void finalizeUserDataAndDhcpOnStart(final Commands cmds, final DomainRouterVO router, final Provider provider, final Long guestNetworkId) {
-        if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Dhcp, provider)) {
+        if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Dhcp, provider)
+                || _networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Dns, provider)) {
             // Resend dhcp
             s_logger.debug("Reapplying dhcp entries as a part of domR " + router + " start...");
             _commandSetupHelper.createDhcpEntryCommandsForVMs(router, cmds, guestNetworkId);
@@ -1847,7 +1849,15 @@
 
                 if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.StaticNat, provider)) {
                     if (ip.isOneToOneNat()) {
-                        final StaticNatImpl staticNat = new StaticNatImpl(ip.getAccountId(), ip.getDomainId(), guestNetworkId, ip.getId(), ip.getVmIp(), false);
+
+                        boolean revoke = false;
+                        if (ip.getState() == IpAddress.State.Releasing ) {
+                            // for ips got struck in releasing state we need to delete the rule not add.
+                            s_logger.debug("Rule revoke set to true for the ip " + ip.getAddress() +" becasue it is in releasing state");
+                            revoke = true;
+                        }
+                        final StaticNatImpl staticNat = new StaticNatImpl(ip.getAccountId(), ip.getDomainId(), guestNetworkId, ip.getId(), ip.getVmIp(), revoke);
+
                         staticNats.add(staticNat);
                     }
                 }
@@ -1942,10 +1952,13 @@
         // The default on the router is set to Deny all. So, if the default configuration in the offering is set to true (Allow), we change the Egress here
         if (defaultEgressPolicy) {
             final List<String> sourceCidr = new ArrayList<String>();
+            final List<String> destCidr = new ArrayList<String>();
 
-            sourceCidr.add(NetUtils.ALL_CIDRS);
+            sourceCidr.add(network.getCidr());
+            destCidr.add(NetUtils.ALL_CIDRS);
+
             final FirewallRule rule = new FirewallRuleVO(null, null, null, null, "all", networkId, network.getAccountId(), network.getDomainId(), Purpose.Firewall, sourceCidr,
-                    null, null, null, FirewallRule.TrafficType.Egress, FirewallRule.FirewallRuleType.System);
+                    destCidr, null, null, null, FirewallRule.TrafficType.Egress, FirewallRule.FirewallRuleType.System);
 
             rules.add(rule);
         } else {
@@ -2241,6 +2254,11 @@
 
         // verify parameters
         DomainRouterVO router = _routerDao.findById(routerId);
+        //clean up the update_state feild
+        if(router.getUpdateState()== VirtualRouter.UpdateState.UPDATE_FAILED){
+            router.setUpdateState(null);
+            _routerDao.update(router.getId(),router);
+        }
         if (router == null) {
             throw new InvalidParameterValueException("Unable to find router by id " + routerId + ".");
         }
@@ -2617,25 +2635,6 @@
         return false;
     }
 
-    protected class RebootTask extends ManagedContextRunnable {
-
-        long _routerId;
-
-        public RebootTask(final long routerId) {
-            _routerId = routerId;
-        }
-
-        @Override
-        protected void runInContext() {
-            try {
-                s_logger.info("Reboot router " + _routerId + " to refresh network rules");
-                rebootRouter(_routerId, true);
-            } catch (final Exception e) {
-                s_logger.warn("Error while rebooting the router", e);
-            }
-        }
-    }
-
     protected boolean aggregationExecution(final AggregationControlCommand.Action action, final Network network, final List<DomainRouterVO> routers)
             throws AgentUnavailableException, ResourceUnavailableException {
 
diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
index 3a50009..d22dcba 100644
--- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
@@ -607,11 +607,6 @@
     }
 
     @Override
-    public boolean start() {
-        return true;
-    }
-
-    @Override
     public boolean startSite2SiteVpn(final Site2SiteVpnConnection conn, final VirtualRouter router) throws ResourceUnavailableException {
         if (router.getState() != State.Running) {
             s_logger.warn("Unable to apply site-to-site VPN configuration, virtual router is not in the right state " + router.getState());
@@ -718,6 +713,16 @@
     }
 
     @Override
+    public boolean start() {
+        return true;
+    }
+
+    @Override
+    public boolean stop() {
+        return true;
+    }
+
+    @Override
     public boolean startRemoteAccessVpn(final RemoteAccessVpn vpn, final VirtualRouter router) throws ResourceUnavailableException {
         if (router.getState() != State.Running) {
             s_logger.warn("Unable to apply remote access VPN configuration, virtual router is not in the right state " + router.getState());
diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java b/server/src/com/cloud/network/rules/RulesManagerImpl.java
index b4f7217..629e35f 100644
--- a/server/src/com/cloud/network/rules/RulesManagerImpl.java
+++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java
@@ -701,7 +701,7 @@
         boolean success = false;
 
         if (apply) {
-            success = applyPortForwardingRules(rule.getSourceIpAddressId(), true, caller);
+            success = applyPortForwardingRules(rule.getSourceIpAddressId(), _ipAddrMgr.RulesContinueOnError.value(), caller);
         } else {
             success = true;
         }
@@ -736,7 +736,7 @@
         boolean success = false;
 
         if (apply) {
-            success = applyStaticNatRulesForIp(rule.getSourceIpAddressId(), true, caller, true);
+            success = applyStaticNatRulesForIp(rule.getSourceIpAddressId(),  _ipAddrMgr.RulesContinueOnError.value(), caller, true);
         } else {
             success = true;
         }
@@ -769,7 +769,7 @@
         // apply rules for all ip addresses
         for (Long ipId : ipsToReprogram) {
             s_logger.debug("Applying port forwarding rules for ip address id=" + ipId + " as a part of vm expunge");
-            if (!applyPortForwardingRules(ipId, true, _accountMgr.getSystemAccount())) {
+            if (!applyPortForwardingRules(ipId,  _ipAddrMgr.RulesContinueOnError.value(), _accountMgr.getSystemAccount())) {
                 s_logger.warn("Failed to apply port forwarding rules for ip id=" + ipId);
                 success = false;
             }
@@ -1098,10 +1098,10 @@
         boolean success = true;
 
         // revoke all port forwarding rules
-        success = success && applyPortForwardingRules(ipId, true, caller);
+        success = success && applyPortForwardingRules(ipId,  _ipAddrMgr.RulesContinueOnError.value(), caller);
 
         // revoke all all static nat rules
-        success = success && applyStaticNatRulesForIp(ipId, true, caller, true);
+        success = success && applyStaticNatRulesForIp(ipId,  _ipAddrMgr.RulesContinueOnError.value(), caller, true);
 
         // revoke static nat for the ip address
         success = success && applyStaticNatForIp(ipId, false, caller, true);
@@ -1144,9 +1144,11 @@
         boolean success = true;
         // revoke all PF rules for the network
         success = success && applyPortForwardingRulesForNetwork(networkId, true, caller);
+        success = success && applyPortForwardingRulesForNetwork(networkId,  _ipAddrMgr.RulesContinueOnError.value(), caller);
 
         // revoke all all static nat rules for the network
         success = success && applyStaticNatRulesForNetwork(networkId, true, caller);
+        success = success && applyStaticNatRulesForNetwork(networkId,  _ipAddrMgr.RulesContinueOnError.value(), caller);
 
         // Now we check again in case more rules have been inserted.
         rules.addAll(_portForwardingDao.listByNetworkAndNotRevoked(networkId));
@@ -1257,6 +1259,10 @@
             throw ex;
         }
 
+        ipAddress.setRuleState(IpAddress.State.Releasing);
+        _ipAddressDao.update(ipAddress.getId(), ipAddress);
+        ipAddress = _ipAddressDao.findById(ipId);
+
         // Revoke all firewall rules for the ip
         try {
             s_logger.debug("Revoking all " + Purpose.Firewall + "rules as a part of disabling static nat for public IP id=" + ipId);
@@ -1278,6 +1284,7 @@
             boolean isIpSystem = ipAddress.getSystem();
             ipAddress.setOneToOneNat(false);
             ipAddress.setAssociatedWithVmId(null);
+            ipAddress.setRuleState(null);
             ipAddress.setVmIp(null);
             if (isIpSystem && !releaseIpIfElastic) {
                 ipAddress.setSystem(false);
@@ -1293,6 +1300,9 @@
             return true;
         } else {
             s_logger.warn("Failed to disable one to one nat for the ip address id" + ipId);
+            ipAddress = _ipAddressDao.findById(ipId);
+            ipAddress.setRuleState(null);
+            _ipAddressDao.update(ipAddress.getId(), ipAddress);
             return false;
         }
     }
diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
index 442747a..1a4fd96 100644
--- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
+++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
@@ -496,7 +496,7 @@
         return affectedVms;
     }
 
-    protected SecurityGroupRulesCmd generateRulesetCmd(String vmName, String guestIp, String guestMac, Long vmId, String signature, long seqnum,
+    protected SecurityGroupRulesCmd generateRulesetCmd(String vmName, String guestIp, String guestIp6, String guestMac, Long vmId, String signature, long seqnum,
             Map<PortAndProto, Set<String>> ingressRules, Map<PortAndProto, Set<String>> egressRules, List<String> secIps) {
         List<IpPortAndProto> ingressResult = new ArrayList<IpPortAndProto>();
         List<IpPortAndProto> egressResult = new ArrayList<IpPortAndProto>();
@@ -516,7 +516,7 @@
                 egressResult.add(ipPortAndProto);
             }
         }
-        return new SecurityGroupRulesCmd(guestIp, guestMac, vmName, vmId, signature, seqnum, ingressResult.toArray(new IpPortAndProto[ingressResult.size()]),
+        return new SecurityGroupRulesCmd(guestIp, guestIp6, guestMac, vmName, vmId, signature, seqnum, ingressResult.toArray(new IpPortAndProto[ingressResult.size()]),
                 egressResult.toArray(new IpPortAndProto[egressResult.size()]), secIps);
     }
 
@@ -1005,7 +1005,7 @@
                                     nicSecIps = _nicSecIpDao.getSecondaryIpAddressesForNic(nic.getId());
                                 }
                             }
-                            SecurityGroupRulesCmd cmd = generateRulesetCmd(vm.getInstanceName(), vm.getPrivateIpAddress(), vm.getPrivateMacAddress(), vm.getId(),
+                            SecurityGroupRulesCmd cmd = generateRulesetCmd(vm.getInstanceName(), nic.getIPv6Address(), vm.getPrivateIpAddress(), vm.getPrivateMacAddress(), vm.getId(),
                                     generateRulesetSignature(ingressRules, egressRules), seqnum, ingressRules, egressRules, nicSecIps);
                             Commands cmds = new Commands(cmd);
                             try {
diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
index 64bbb75..2d0ec61 100644
--- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
+++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
@@ -186,7 +186,7 @@
                     }
                 }
                 SecurityGroupRulesCmd cmd =
-                    generateRulesetCmd(vm.getInstanceName(), vm.getPrivateIpAddress(), vm.getPrivateMacAddress(), vm.getId(), null, work.getLogsequenceNumber(),
+                    generateRulesetCmd(vm.getInstanceName(), vm.getPrivateIpAddress(), nic.getIPv6Address(), vm.getPrivateMacAddress(), vm.getId(), null, work.getLogsequenceNumber(),
                         ingressRules, egressRules, nicSecIps);
                 cmd.setMsId(_serverId);
                 if (s_logger.isDebugEnabled()) {
diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
index 29ff5c4..67b1cc0 100644
--- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@ -90,6 +90,7 @@
 import com.cloud.utils.db.TransactionCallbackWithException;
 import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.net.NetUtils;
+import org.apache.commons.collections.CollectionUtils;
 
 public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAccessVpnService, Configurable {
     private final static Logger s_logger = Logger.getLogger(RemoteAccessVpnManagerImpl.class);
@@ -281,7 +282,7 @@
     @Override
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_REMOTE_ACCESS_VPN_DESTROY, eventDescription = "removing remote access vpn", async = true)
-    public boolean destroyRemoteAccessVpnForIp(long ipId, Account caller) throws ResourceUnavailableException {
+    public boolean destroyRemoteAccessVpnForIp(long ipId, Account caller, final boolean forceCleanup) throws ResourceUnavailableException {
         final RemoteAccessVpnVO vpn = _remoteAccessVpnDao.findByPublicIpAddress(ipId);
         if (vpn == null) {
             s_logger.debug("there are no Remote access vpns for public ip address id=" + ipId);
@@ -309,7 +310,7 @@
                     RemoteAccessVpn.State.Running);
             success = false;
         } finally {
-            if (success) {
+            if (success|| forceCleanup) {
                 //Cleanup corresponding ports
                 final List<? extends FirewallRule> vpnFwRules = _rulesDao.listByIpAndPurpose(ipId, Purpose.Vpn);
 
@@ -339,7 +340,7 @@
                     success = _firewallMgr.applyIngressFirewallRules(ipId, caller);
                 }
 
-                if (success) {
+                if (success|| forceCleanup) {
                     try {
                         Transaction.execute(new TransactionCallbackNoReturn() {
                             @Override
@@ -501,7 +502,7 @@
 
     @DB
     @Override
-    public boolean applyVpnUsers(long vpnOwnerId, String userName) {
+    public boolean applyVpnUsers(long vpnOwnerId, String userName) throws  ResourceUnavailableException {
         Account caller = CallContext.current().getCallingAccount();
         Account owner = _accountDao.findById(vpnOwnerId);
         _accountMgr.checkAccess(caller, null, true, owner);
@@ -509,6 +510,13 @@
         s_logger.debug("Applying vpn users for " + owner);
         List<RemoteAccessVpnVO> vpns = _remoteAccessVpnDao.findByAccount(vpnOwnerId);
 
+        if (CollectionUtils.isEmpty(vpns)) {
+            s_logger.debug("There are no remote access vpns configured on this account  " + owner +" to apply vpn user, failing add vpn user ");
+            return false;
+        }
+
+        RemoteAccessVpnVO vpnTemp  = null;
+
         List<VpnUserVO> users = _vpnUsersDao.listByAccount(vpnOwnerId);
 
         //If user is in Active state, we still have to resend them therefore their status has to be Add
@@ -542,12 +550,14 @@
                             } else {
                                 finals[indexUser] = false;
                                 success = false;
+                                vpnTemp = vpn;
                             }
                         }
                     }
                 } catch (Exception e) {
                     s_logger.warn("Unable to apply vpn users ", e);
                     success = false;
+                    vpnTemp = vpn;
 
                     for (int i = 0; i < finals.length; i++) {
                         finals[i] = false;
@@ -580,6 +590,11 @@
             }
         }
 
+        if (!success) {
+            throw new  ResourceUnavailableException("Failed add vpn user due to Resource unavailable ",
+                    RemoteAccessVPNServiceProvider.class, vpnTemp.getId());
+        }
+
         return success;
     }
 
diff --git a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
index 2e72275..e465bfb 100644
--- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
@@ -190,10 +190,10 @@
         String ipsecPsk = cmd.getIpsecPsk();
         String ikePolicy = cmd.getIkePolicy();
         String espPolicy = cmd.getEspPolicy();
-        if (!NetUtils.isValidS2SVpnPolicy(ikePolicy)) {
-            throw new InvalidParameterValueException("The customer gateway IKE policy " + ikePolicy + " is invalid!");
+        if (!NetUtils.isValidS2SVpnPolicy("ike", ikePolicy)) {
+            throw new InvalidParameterValueException("The customer gateway IKE policy " + ikePolicy + " is invalid!  Verify the required Diffie Hellman (DH) group is specified.");
         }
-        if (!NetUtils.isValidS2SVpnPolicy(espPolicy)) {
+        if (!NetUtils.isValidS2SVpnPolicy("esp", espPolicy)) {
             throw new InvalidParameterValueException("The customer gateway ESP policy " + espPolicy + " is invalid!");
         }
         Long ikeLifetime = cmd.getIkeLifetime();
@@ -438,16 +438,16 @@
             name = "VPN-" + gatewayIp;
         }
         String guestCidrList = cmd.getGuestCidrList();
-        if (!NetUtils.validateGuestCidrList(guestCidrList)) {
-            throw new InvalidParameterValueException("The customer gateway guest cidr list " + guestCidrList + " contains invalid guest cidr!");
+        if (!NetUtils.isValidCidrList(guestCidrList)) {
+            throw new InvalidParameterValueException("The customer gateway peer cidr list " + guestCidrList + " contains an invalid cidr!");
         }
         String ipsecPsk = cmd.getIpsecPsk();
         String ikePolicy = cmd.getIkePolicy();
         String espPolicy = cmd.getEspPolicy();
-        if (!NetUtils.isValidS2SVpnPolicy(ikePolicy)) {
-            throw new InvalidParameterValueException("The customer gateway IKE policy" + ikePolicy + " is invalid!");
+        if (!NetUtils.isValidS2SVpnPolicy("ike", ikePolicy)) {
+            throw new InvalidParameterValueException("The customer gateway IKE policy" + ikePolicy + " is invalid!  Verify the required Diffie Hellman (DH) group is specified.");
         }
-        if (!NetUtils.isValidS2SVpnPolicy(espPolicy)) {
+        if (!NetUtils.isValidS2SVpnPolicy("esp", espPolicy)) {
             throw new InvalidParameterValueException("The customer gateway ESP policy" + espPolicy + " is invalid!");
         }
         Long ikeLifetime = cmd.getIkeLifetime();
@@ -517,7 +517,7 @@
 
         _accountMgr.checkAccess(caller, null, false, conn);
 
-        if (conn.getState() == State.Connected) {
+        if (conn.getState() != State.Pending) {
             stopVpnConnection(id);
         }
         _vpnConnectionDao.remove(id);
@@ -531,8 +531,8 @@
             throw new CloudRuntimeException("Unable to acquire lock on " + conn);
         }
         try {
-            if (conn.getState() != State.Connected && conn.getState() != State.Error) {
-                throw new InvalidParameterValueException("Site to site VPN connection with specified id is not in correct state(connected) to process disconnect!");
+            if (conn.getState() == State.Pending) {
+                throw new InvalidParameterValueException("Site to site VPN connection with specified id is currently Pending, unable to Disconnect!");
             }
 
             conn.setState(State.Disconnected);
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index 899ad21..af5344c 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -679,6 +679,12 @@
             }
         }
 
+        if ((hypervisorType.equalsIgnoreCase(HypervisorType.BareMetal.toString()))) {
+            if (hostTags.isEmpty()) {
+                throw new InvalidParameterValueException("hosttag is mandatory while adding host of type Baremetal");
+            }
+        }
+
         if (clusterName != null) {
             final HostPodVO pod = _podDao.findById(podId);
             if (pod == null) {
@@ -2172,7 +2178,7 @@
                 final List<VMInstanceVO> vmsOnLocalStorage = _storageMgr.listByStoragePool(storagePool.getId());
                 for (final VMInstanceVO vm : vmsOnLocalStorage) {
                     try {
-                        _vmMgr.destroy(vm.getUuid());
+                        _vmMgr.destroy(vm.getUuid(), false);
                     } catch (final Exception e) {
                         final String errorMsg = "There was an error Destory the vm: " + vm + " as a part of hostDelete id=" + host.getId();
                         s_logger.debug(errorMsg, e);
diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java
index 13f98a2..c94d92c 100644
--- a/server/src/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/com/cloud/server/ConfigurationServerImpl.java
@@ -564,7 +564,7 @@
             // Simple check to see if we got IP Address...
             boolean isIPAddress = Pattern.matches("[0-9]$", group[group.length - 1]);
             if (isIPAddress) {
-                ou = "cloud.com";
+                ou = "cloud.com"; // leaving this example reference to cloud.com as it has no real world relevance
             } else {
                 ou = group[group.length - 1];
                 for (int i = group.length - 2; i >= 0 && i >= group.length - 3; i--)
@@ -572,7 +572,7 @@
             }
         } catch (UnknownHostException ex) {
             s_logger.info("Fail to get user's domain name. Would use cloud.com. ", ex);
-            ou = "cloud.com";
+            ou = "cloud.com"; // leaving this example reference to cloud.com as it has no real world relevance
         }
 
         String o = ou;
@@ -1055,6 +1055,7 @@
 
         DiskOfferingVO newDiskOffering = new DiskOfferingVO(domainId, name, description, provisioningType, diskSize, tags, isCustomized, null, null, null);
         newDiskOffering.setUniqueName("Cloud.Com-" + name);
+        // leaving the above reference to cloud.com in as it is an identifyer and has no real world relevance
         newDiskOffering.setSystemUse(isSystemUse);
         newDiskOffering = _diskOfferingDao.persistDeafultDiskOffering(newDiskOffering);
         return newDiskOffering;
@@ -1066,6 +1067,7 @@
         ServiceOfferingVO offering =
                 new ServiceOfferingVO(name, cpu, ramSize, speed, null, null, offerHA, displayText, provisioningType, localStorageRequired, false, tags, false, null, false);
         offering.setUniqueName("Cloud.Com-" + name);
+        // leaving the above reference to cloud.com in as it is an identifyer and has no real world relevance
         offering = _serviceOfferingDao.persistSystemServiceOffering(offering);
         return offering;
     }
@@ -1203,7 +1205,7 @@
                 NetworkOfferingVO defaultNetscalerNetworkOffering =
                         new NetworkOfferingVO(NetworkOffering.DefaultSharedEIPandELBNetworkOffering,
                                 "Offering for Shared networks with Elastic IP and Elastic LB capabilities", TrafficType.Guest, false, true, null, null, true,
-                                Availability.Optional, null, Network.GuestType.Shared, true, false, false, false, true, true, true, false, false, true, true, false, false, false);
+                                Availability.Optional, null, Network.GuestType.Shared, true, false, false, false, true, true, true, false, false, true, true, false, false, false, false);
 
                 defaultNetscalerNetworkOffering.setState(NetworkOffering.State.Enabled);
                 defaultNetscalerNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(defaultNetscalerNetworkOffering);
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index 302f37c..fa513be 100644
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -220,6 +220,7 @@
 import org.apache.cloudstack.api.command.admin.user.DisableUserCmd;
 import org.apache.cloudstack.api.command.admin.user.EnableUserCmd;
 import org.apache.cloudstack.api.command.admin.user.GetUserCmd;
+import org.apache.cloudstack.api.command.admin.user.GetUserKeysCmd;
 import org.apache.cloudstack.api.command.admin.user.ListUsersCmd;
 import org.apache.cloudstack.api.command.admin.user.LockUserCmd;
 import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
@@ -409,6 +410,7 @@
 import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupEgressCmd;
 import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupIngressCmd;
 import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotCmd;
+import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotFromVMSnapshotCmd;
 import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd;
 import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd;
 import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd;
@@ -518,6 +520,7 @@
 import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
 import org.apache.cloudstack.framework.security.keystore.KeystoreManager;
 import org.apache.cloudstack.managed.context.ManagedContextRunnable;
+import org.apache.cloudstack.resourcedetail.dao.GuestOsDetailsDao;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
@@ -794,6 +797,8 @@
     private ServiceOfferingDao _offeringDao;
     @Inject
     private DeploymentPlanningManager _dpMgr;
+    @Inject
+    private GuestOsDetailsDao _guestOsDetailsDao;
 
     private LockMasterListener _lockMasterListener;
     private final ScheduledExecutorService _eventExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("EventChecker"));
@@ -1111,7 +1116,10 @@
     }
 
     @Override
-    public Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> listHostsForMigrationOfVM(final Long vmId, final Long startIndex, final Long pageSize) {
+    public Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>>
+                            listHostsForMigrationOfVM(final Long vmId,
+                                                      final Long startIndex,
+                                                      final Long pageSize, final String keyword) {
         final Account caller = getCaller();
         if (!_accountMgr.isRootAdmin(caller.getId())) {
             if (s_logger.isDebugEnabled()) {
@@ -1199,18 +1207,20 @@
         List<HostVO> allHosts = null;
         final Map<Host, Boolean> requiresStorageMotion = new HashMap<Host, Boolean>();
         DataCenterDeployment plan = null;
-
         if (canMigrateWithStorage) {
-            allHostsPair = searchForServers(startIndex, pageSize, null, hostType, null, srcHost.getDataCenterId(), null, null, null, null, null, null,
+            allHostsPair = searchForServers(startIndex, pageSize, null, hostType, null, srcHost.getDataCenterId(), null, null, null, keyword, null, null,
                     srcHost.getHypervisorType(), srcHost.getHypervisorVersion());
             allHosts = allHostsPair.first();
             allHosts.remove(srcHost);
+
             for (final VolumeVO volume : volumes) {
-                final Long volClusterId = _poolDao.findById(volume.getPoolId()).getClusterId();
-                // only check for volume which are not in zone wide primary store, as only those may require storage motion
-                if (volClusterId != null) {
-                    for (final Iterator<HostVO> iterator = allHosts.iterator(); iterator.hasNext();) {
-                        final Host host = iterator.next();
+                final StoragePool storagePool = _poolDao.findById(volume.getPoolId());
+                final Long volClusterId = storagePool.getClusterId();
+
+                for (final Iterator<HostVO> iterator = allHosts.iterator(); iterator.hasNext();) {
+                    final Host host = iterator.next();
+
+                    if (volClusterId != null) {
                         if (!host.getClusterId().equals(volClusterId) || usesLocal) {
                             if (hasSuitablePoolsForVolume(volume, host, vmProfile)) {
                                 requiresStorageMotion.put(host, true);
@@ -1219,15 +1229,23 @@
                             }
                         }
                     }
+                    else {
+                        if (storagePool.isManaged()) {
+                            if (srcHost.getClusterId() != host.getClusterId()) {
+                                requiresStorageMotion.put(host, true);
+                            }
+                        }
+                    }
                 }
             }
+
             plan = new DataCenterDeployment(srcHost.getDataCenterId(), null, null, null, null, null);
         } else {
             final Long cluster = srcHost.getClusterId();
             if (s_logger.isDebugEnabled()) {
                 s_logger.debug("Searching for all hosts in cluster " + cluster + " for migrating VM " + vm);
             }
-            allHostsPair = searchForServers(startIndex, pageSize, null, hostType, null, null, null, cluster, null, null, null, null, null, null);
+            allHostsPair = searchForServers(startIndex, pageSize, null, hostType, null, null, null, cluster, null, keyword, null, null, null, null);
             // Filter out the current host.
             allHosts = allHostsPair.first();
             allHosts.remove(srcHost);
@@ -1249,7 +1267,7 @@
         }
 
         for (final HostAllocator allocator : hostAllocators) {
-            if  (canMigrateWithStorage) {
+            if (canMigrateWithStorage) {
                 suitableHosts = allocator.allocateTo(vmProfile, plan, Host.Type.Routing, excludes, allHosts, HostAllocator.RETURN_UPTO_ALL, false);
             } else {
                 suitableHosts = allocator.allocateTo(vmProfile, plan, Host.Type.Routing, excludes, HostAllocator.RETURN_UPTO_ALL, false);
@@ -1661,6 +1679,7 @@
         final Long clusterId = cmd.getClusterId();
         final Long storagepoolId = cmd.getStoragepoolId();
         final Long accountId = cmd.getAccountId();
+        final Long imageStoreId = cmd.getImageStoreId();
         String scope = null;
         Long id = null;
         int paramCountCheck = 0;
@@ -1685,6 +1704,11 @@
             id = storagepoolId;
             paramCountCheck++;
         }
+        if (imageStoreId != null) {
+            scope = ConfigKey.Scope.ImageStore.toString();
+            id = imageStoreId;
+            paramCountCheck++;
+        }
 
         if (paramCountCheck > 1) {
             throw new InvalidParameterValueException("cannot handle multiple IDs, provide only one ID corresponding to the scope");
@@ -2078,12 +2102,22 @@
             throw new InvalidParameterValueException("The specified Guest OS name : " + displayName + " already exists. Please specify a unique name");
         }
 
+        s_logger.debug("GuestOSDetails");
         final GuestOSVO guestOsVo = new GuestOSVO();
         guestOsVo.setCategoryId(categoryId.longValue());
         guestOsVo.setDisplayName(displayName);
         guestOsVo.setName(name);
         guestOsVo.setIsUserDefined(true);
-        return _guestOSDao.persist(guestOsVo);
+        final GuestOS guestOsPersisted = _guestOSDao.persist(guestOsVo);
+
+        if(cmd.getDetails() != null && !cmd.getDetails().isEmpty()){
+            Map<String, String> detailsMap = cmd.getDetails();
+            for(Object key: detailsMap.keySet()){
+                _guestOsDetailsDao.addDetail(guestOsPersisted.getId(),(String) key,detailsMap.get((String) key), false);
+            }
+        }
+
+        return guestOsPersisted;
     }
 
     @Override
@@ -2109,6 +2143,13 @@
             throw new InvalidParameterValueException("Unable to modify system defined guest OS");
         }
 
+        if(cmd.getDetails() != null && !cmd.getDetails().isEmpty()){
+            Map<String, String> detailsMap = cmd.getDetails();
+            for(Object key: detailsMap.keySet()){
+                _guestOsDetailsDao.addDetail(id,(String) key,detailsMap.get((String) key), false);
+            }
+        }
+
         //Check if update is needed
         if (displayName.equals(guestOsHandle.getDisplayName())) {
             return guestOsHandle;
@@ -2360,7 +2401,7 @@
             }
         }
 
-        final List<SummedCapacity> summedCapacitiesForSecStorage = getSecStorageUsed(zoneId, capacityType);
+        List<SummedCapacity> summedCapacitiesForSecStorage = getStorageUsed(clusterId, podId, zoneId, capacityType);
         if (summedCapacitiesForSecStorage != null) {
             summedCapacities.addAll(summedCapacitiesForSecStorage);
         }
@@ -2398,7 +2439,7 @@
         return capacities;
     }
 
-    List<SummedCapacity> getSecStorageUsed(final Long zoneId, final Integer capacityType) {
+    List<SummedCapacity> getStorageUsed(Long clusterId, Long podId, Long zoneId, Integer capacityType) {
         if (capacityType == null || capacityType == Capacity.CAPACITY_TYPE_SECONDARY_STORAGE) {
             final List<SummedCapacity> list = new ArrayList<SummedCapacity>();
             if (zoneId != null) {
@@ -2406,19 +2447,10 @@
                 if (zone == null || zone.getAllocationState() == AllocationState.Disabled) {
                     return null;
                 }
-                final CapacityVO capacity = _storageMgr.getSecondaryStorageUsedStats(null, zoneId);
-                if (capacity.getTotalCapacity() != 0) {
-                    capacity.setUsedPercentage(capacity.getUsedCapacity() / capacity.getTotalCapacity());
-                } else {
-                    capacity.setUsedPercentage(0);
-                }
-                final SummedCapacity summedCapacity = new SummedCapacity(capacity.getUsedCapacity(), capacity.getTotalCapacity(), capacity.getUsedPercentage(),
-                        capacity.getCapacityType(), capacity.getDataCenterId(), capacity.getPodId(), capacity.getClusterId());
-                list.add(summedCapacity);
-            } else {
-                final List<DataCenterVO> dcList = _dcDao.listEnabledZones();
-                for (final DataCenterVO dc : dcList) {
-                    final CapacityVO capacity = _storageMgr.getSecondaryStorageUsedStats(null, dc.getId());
+                List<CapacityVO> capacities=new ArrayList<CapacityVO>();
+                capacities.add(_storageMgr.getSecondaryStorageUsedStats(null, zoneId));
+                capacities.add(_storageMgr.getStoragePoolUsedStats(null,clusterId, podId, zoneId));
+                for (CapacityVO capacity : capacities) {
                     if (capacity.getTotalCapacity() != 0) {
                         capacity.setUsedPercentage((float)capacity.getUsedCapacity() / capacity.getTotalCapacity());
                     } else {
@@ -2427,6 +2459,23 @@
                     final SummedCapacity summedCapacity = new SummedCapacity(capacity.getUsedCapacity(), capacity.getTotalCapacity(), capacity.getUsedPercentage(),
                             capacity.getCapacityType(), capacity.getDataCenterId(), capacity.getPodId(), capacity.getClusterId());
                     list.add(summedCapacity);
+                }
+            } else {
+                List<DataCenterVO> dcList = _dcDao.listEnabledZones();
+                for (DataCenterVO dc : dcList) {
+                    List<CapacityVO> capacities=new ArrayList<CapacityVO>();
+                    capacities.add(_storageMgr.getSecondaryStorageUsedStats(null, dc.getId()));
+                    capacities.add(_storageMgr.getStoragePoolUsedStats(null, null, null, dc.getId()));
+                    for (CapacityVO capacity : capacities) {
+                        if (capacity.getTotalCapacity() != 0) {
+                            capacity.setUsedPercentage((float)capacity.getUsedCapacity() / capacity.getTotalCapacity());
+                        } else {
+                            capacity.setUsedPercentage(0);
+                        }
+                        SummedCapacity summedCapacity = new SummedCapacity(capacity.getUsedCapacity(), capacity.getTotalCapacity(), capacity.getUsedPercentage(),
+                                capacity.getCapacityType(), capacity.getDataCenterId(), capacity.getPodId(), capacity.getClusterId());
+                        list.add(summedCapacity);
+                    }
                 }// End of for
             }
             return list;
@@ -2747,6 +2796,7 @@
         cmdList.add(RevokeSecurityGroupEgressCmd.class);
         cmdList.add(RevokeSecurityGroupIngressCmd.class);
         cmdList.add(CreateSnapshotCmd.class);
+        cmdList.add(CreateSnapshotFromVMSnapshotCmd.class);
         cmdList.add(DeleteSnapshotCmd.class);
         cmdList.add(CreateSnapshotPolicyCmd.class);
         cmdList.add(UpdateSnapshotPolicyCmd.class);
@@ -2967,6 +3017,7 @@
         cmdList.add(ConfigureOutOfBandManagementCmd.class);
         cmdList.add(IssueOutOfBandManagementPowerActionCmd.class);
         cmdList.add(ChangeOutOfBandManagementPasswordCmd.class);
+        cmdList.add(GetUserKeysCmd.class);
 
         return cmdList;
     }
diff --git a/server/src/com/cloud/storage/CreateSnapshotPayload.java b/server/src/com/cloud/storage/CreateSnapshotPayload.java
index 94de70b..3e9368d 100644
--- a/server/src/com/cloud/storage/CreateSnapshotPayload.java
+++ b/server/src/com/cloud/storage/CreateSnapshotPayload.java
@@ -23,6 +23,7 @@
     private Long snapshotId;
     private Account account;
     private boolean quiescevm;
+    private Snapshot.LocationType locationType;
 
     public Long getSnapshotPolicyId() {
         return snapshotPolicyId;
@@ -48,12 +49,13 @@
         this.account = account;
     }
 
-    public void setQuiescevm(boolean quiescevm) {
-        this.quiescevm = quiescevm;
-    }
+    public void setQuiescevm(boolean quiescevm) { this.quiescevm = quiescevm; }
 
     public boolean getQuiescevm() {
         return this.quiescevm;
     }
 
+    public Snapshot.LocationType getLocationType() { return this.locationType; }
+
+    public void setLocationType(Snapshot.LocationType locationType) { this.locationType = locationType; }
 }
diff --git a/server/src/com/cloud/storage/ImageStoreDetailsUtil.java b/server/src/com/cloud/storage/ImageStoreDetailsUtil.java
index 7107650..3e27ce6 100755
--- a/server/src/com/cloud/storage/ImageStoreDetailsUtil.java
+++ b/server/src/com/cloud/storage/ImageStoreDetailsUtil.java
@@ -20,48 +20,64 @@
 
 import javax.inject.Inject;
 
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDao;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
 
+import com.cloud.capacity.CapacityManager;
+import com.google.common.base.Preconditions;
+
 public class ImageStoreDetailsUtil {
 
     @Inject
     protected ImageStoreDao imageStoreDao;
     @Inject
     protected ImageStoreDetailsDao imageStoreDetailsDao;
+    @Inject
+    protected ConfigurationDao configurationDao;
 
     /**
-     * Obtain NFS protocol version (if provided) for a store id.<br/>
-     * It can be set by adding an entry in {@code image_store_details} table, providing {@code name=nfs.version} and {@code value=X} (e.g. 3)
+     * Retrieve global secondary storage NFS version default value
+     * @return global default value
+     */
+    protected Integer getGlobalDefaultNfsVersion(){
+        ConfigurationVO globalNfsVersion = configurationDao.findByName(CapacityManager.ImageStoreNFSVersion.key());
+        Preconditions.checkState(globalNfsVersion != null, "Unable to find global NFS version for version key " + CapacityManager.ImageStoreNFSVersion.key());
+        String value = globalNfsVersion.getValue();
+        return (value != null ? Integer.valueOf(value) : null);
+    }
+    /**
+     * Obtain NFS protocol version (if provided) for a store id, if not use default config value<br/>
      * @param storeId image store id
-     * @return {@code null} if {@code nfs.version} is not found for storeId <br/>
-     * {@code X} if {@code nfs.version} is found found for storeId
+     * @return {@code null} if {@code secstorage.nfs.version} is not found for storeId <br/>
+     * {@code X} if {@code secstorage.nfs.version} is found found for storeId
      */
     public Integer getNfsVersion(long storeId) throws NumberFormatException {
-        String nfsVersion = null;
-        if (imageStoreDetailsDao.getDetails(storeId) != null){
-            Map<String, String> storeDetails = imageStoreDetailsDao.getDetails(storeId);
-            if (storeDetails != null && storeDetails.containsKey("nfs.version")){
-                nfsVersion = storeDetails.get("nfs.version");
-            }
+
+        final Map<String, String> storeDetails = imageStoreDetailsDao.getDetails(storeId);
+        if (storeDetails != null && storeDetails.containsKey(CapacityManager.ImageStoreNFSVersion.key())) {
+            final String version = storeDetails.get(CapacityManager.ImageStoreNFSVersion.key());
+            return (version != null ? Integer.valueOf(version) : null);
         }
-        return (nfsVersion != null ? Integer.valueOf(nfsVersion) : null);
+
+        return getGlobalDefaultNfsVersion();
+
     }
 
     /**
      * Obtain NFS protocol version (if provided) for a store uuid.<br/>
-     * It can be set by adding an entry in {@code image_store_details} table, providing {@code name=nfs.version} and {@code value=X} (e.g. 3)
-     * @param storeId image store id
-     * @return {@code null} if {@code nfs.version} is not found for storeUuid <br/>
-     * {@code X} if {@code nfs.version} is found found for storeUuid
+     * @param resourceId image store id
+     * @return {@code null} if {@code secstorage.nfs.version} is not found for storeUuid <br/>
+     * {@code X} if {@code secstorage.nfs.version} is found found for storeUuid
      */
     public Integer getNfsVersionByUuid(String storeUuid){
         ImageStoreVO imageStore = imageStoreDao.findByUuid(storeUuid);
         if (imageStore != null){
             return getNfsVersion(imageStore.getId());
         }
-        return null;
+        return getGlobalDefaultNfsVersion();
     }
 
 }
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java
index e12e91a..a8a38ba 100644
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -32,7 +32,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
-import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
@@ -43,6 +42,8 @@
 
 import com.cloud.hypervisor.Hypervisor;
 
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotService;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 import org.apache.cloudstack.api.command.admin.storage.CancelPrimaryStorageMaintenanceCmd;
@@ -83,6 +84,7 @@
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.Configurable;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.storage.command.DettachCommand;
 import org.apache.cloudstack.managed.context.ManagedContextRunnable;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDao;
@@ -157,6 +159,7 @@
 import com.cloud.storage.dao.DiskOfferingDao;
 import com.cloud.storage.dao.SnapshotDao;
 import com.cloud.storage.dao.StoragePoolHostDao;
+import com.cloud.storage.dao.StoragePoolTagsDao;
 import com.cloud.storage.dao.StoragePoolWorkDao;
 import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.storage.dao.VMTemplatePoolDao;
@@ -290,6 +293,10 @@
     ResourceLimitService _resourceLimitMgr;
     @Inject
     EntityManager _entityMgr;
+    @Inject
+    SnapshotService _snapshotService;
+    @Inject
+    StoragePoolTagsDao _storagePoolTagsDao;
 
     protected List<StoragePoolDiscoverer> _discoverers;
 
@@ -522,7 +529,7 @@
 
     @Override
     public String getStoragePoolTags(long poolId) {
-        return StringUtils.listToCsvTags(_storagePoolDao.searchForStoragePoolDetails(poolId, "true"));
+        return StringUtils.listToCsvTags(_storagePoolDao.searchForStoragePoolTags(poolId));
     }
 
     @Override
@@ -776,51 +783,18 @@
     public PrimaryDataStoreInfo updateStoragePool(UpdateStoragePoolCmd cmd) throws IllegalArgumentException {
         // Input validation
         Long id = cmd.getId();
-        List<String> tags = cmd.getTags();
 
         StoragePoolVO pool = _storagePoolDao.findById(id);
         if (pool == null) {
             throw new IllegalArgumentException("Unable to find storage pool with ID: " + id);
         }
 
-        Map<String, String> updatedDetails = new HashMap<String, String>();
-
-        if (tags != null) {
-            Map<String, String> existingDetails = _storagePoolDetailsDao.listDetailsKeyPairs(id);
-            Set<String> existingKeys = existingDetails.keySet();
-
-            Map<String, String> existingDetailsToKeep = new HashMap<String, String>();
-
-            for (String existingKey : existingKeys) {
-                String existingValue = existingDetails.get(existingKey);
-
-                if (!Boolean.TRUE.toString().equalsIgnoreCase(existingValue)) {
-                    existingDetailsToKeep.put(existingKey, existingValue);
-                }
+        final List<String> storagePoolTags = cmd.getTags();
+        if (storagePoolTags != null) {
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("Updating Storage Pool Tags to :" + storagePoolTags);
             }
-
-            Map<String, String> details = new HashMap<String, String>();
-            for (String tag : tags) {
-                tag = tag.trim();
-                if (tag.length() > 0 && !details.containsKey(tag)) {
-                    details.put(tag, "true");
-                }
-            }
-
-            Set<String> existingKeysToKeep = existingDetailsToKeep.keySet();
-
-            for (String existingKeyToKeep : existingKeysToKeep) {
-                String existingValueToKeep = existingDetailsToKeep.get(existingKeyToKeep);
-
-                if (details.containsKey(existingKeyToKeep)) {
-                    throw new CloudRuntimeException("Storage tag '" + existingKeyToKeep +
-                            "' conflicts with a stored property of this primary storage. No changes were made.");
-                }
-
-                details.put(existingKeyToKeep, existingValueToKeep);
-            }
-
-            updatedDetails.putAll(details);
+            _storagePoolTagsDao.persist(pool.getId(), storagePoolTags);
         }
 
         Long updatedCapacityBytes = null;
@@ -863,8 +837,6 @@
             } else {
                 disablePrimaryStoragePool(pool);
             }
-        } else if (updatedDetails.size() >= 0) {
-            _storagePoolDao.updateDetails(id, updatedDetails);
         }
 
         if (updatedCapacityBytes != null) {
@@ -971,7 +943,7 @@
         List<CapacityVO> capacities = _capacityDao.search(capacitySC, null);
 
         long totalOverProvCapacity;
-        if (storagePool.getPoolType() == StoragePoolType.NetworkFilesystem || storagePool.getPoolType() == StoragePoolType.VMFS) {
+        if (storagePool.getPoolType().supportsOverProvisioning()) {
             // All this is for the inaccuracy of floats for big number multiplication.
             BigDecimal overProvFactor = getStorageOverProvisioningFactor(storagePool.getId());
             totalOverProvCapacity = overProvFactor.multiply(new BigDecimal(storagePool.getCapacityBytes())).longValue();
@@ -1124,12 +1096,35 @@
                         }
                     }
 
+                    //destroy snapshots in destroying state in snapshot_store_ref
+                    List<SnapshotDataStoreVO>  ssSnapshots = _snapshotStoreDao.listByState(ObjectInDataStoreStateMachine.State.Destroying);
+                    for(SnapshotDataStoreVO ssSnapshotVO : ssSnapshots){
+                        try {
+                            _snapshotService.deleteSnapshot(snapshotFactory.getSnapshot(ssSnapshotVO.getSnapshotId(), DataStoreRole.Image));
+                        } catch (Exception e) {
+                            s_logger.debug("Failed to delete snapshot: " + ssSnapshotVO.getId() + " from storage");
+                        }
+                    }
+
                     cleanupSecondaryStorage(recurring);
 
                     List<VolumeVO> vols = _volsDao.listVolumesToBeDestroyed(new Date(System.currentTimeMillis() - ((long) StorageCleanupDelay.value() << 10)));
                     for (VolumeVO vol : vols) {
                         try {
-                            volService.expungeVolumeAsync(volFactory.getVolume(vol.getId()));
+                            // If this fails, just log a warning. It's ideal if we clean up the host-side clustered file
+                            // system, but not necessary.
+                            handleManagedStorage(vol);
+                        } catch (Exception e) {
+                            s_logger.warn("Unable to destroy host-side clustered file system " + vol.getUuid(), e);
+                        }
+
+                        try {
+                            VolumeInfo volumeInfo = volFactory.getVolume(vol.getId());
+                            if (volumeInfo != null) {
+                                volService.expungeVolumeAsync(volumeInfo);
+                            } else {
+                                s_logger.debug("Volume " + vol.getUuid() + " is already destroyed");
+                            }
                         } catch (Exception e) {
                             s_logger.warn("Unable to destroy volume " + vol.getUuid(), e);
                         }
@@ -1247,6 +1242,47 @@
         }
     }
 
+    private void handleManagedStorage(Volume volume) {
+        Long instanceId = volume.getInstanceId();
+
+        // The idea of this "if" statement is to see if we need to remove an SR/datastore before
+        // deleting the volume that supports it on a SAN. This only applies for managed storage.
+        if (instanceId != null) {
+            StoragePoolVO storagePool = _storagePoolDao.findById(volume.getPoolId());
+
+            if (storagePool != null && storagePool.isManaged()) {
+                DataTO volTO = volFactory.getVolume(volume.getId()).getTO();
+                DiskTO disk = new DiskTO(volTO, volume.getDeviceId(), volume.getPath(), volume.getVolumeType());
+
+                DettachCommand cmd = new DettachCommand(disk, null);
+
+                cmd.setManaged(true);
+
+                cmd.setStorageHost(storagePool.getHostAddress());
+                cmd.setStoragePort(storagePool.getPort());
+
+                cmd.set_iScsiName(volume.get_iScsiName());
+
+                VMInstanceVO vmInstanceVO = _vmInstanceDao.findById(instanceId);
+
+                Long lastHostId = vmInstanceVO.getLastHostId();
+
+                if (lastHostId != null) {
+                    Answer answer = _agentMgr.easySend(lastHostId, cmd);
+
+                    if (answer != null && answer.getResult()) {
+                        VolumeInfo volumeInfo = volFactory.getVolume(volume.getId());
+                        HostVO host = _hostDao.findById(lastHostId);
+
+                        volService.revokeAccess(volumeInfo, host, volumeInfo.getDataStore());
+                    } else {
+                        s_logger.warn("Unable to remove host-side clustered file system for the following volume: " + volume.getUuid());
+                    }
+                }
+            }
+        }
+    }
+
     @DB
     List<Long> findAllVolumeIdInSnapshotTable(Long storeId) {
         String sql = "SELECT volume_id from snapshots, snapshot_store_ref WHERE snapshots.id = snapshot_store_ref.snapshot_id and store_id=? GROUP BY volume_id";
@@ -1787,7 +1823,7 @@
         }
 
         long totalOverProvCapacity;
-        if (pool.getPoolType() == StoragePoolType.NetworkFilesystem || pool.getPoolType() == StoragePoolType.VMFS || pool.getPoolType() == StoragePoolType.Filesystem) {
+        if (pool.getPoolType().supportsOverProvisioning()) {
             BigDecimal overProvFactor = getStorageOverProvisioningFactor(pool.getId());
             totalOverProvCapacity = overProvFactor.multiply(new BigDecimal(pool.getCapacityBytes())).longValue();
             s_logger.debug("Found storage pool " + poolVO.getName() + " of type " + pool.getPoolType().toString() + " with overprovisioning factor "
diff --git a/server/src/com/cloud/storage/TemplateProfile.java b/server/src/com/cloud/storage/TemplateProfile.java
index 81e34f3..1ca1d81 100644
--- a/server/src/com/cloud/storage/TemplateProfile.java
+++ b/server/src/com/cloud/storage/TemplateProfile.java
@@ -16,6 +16,8 @@
 // under the License.
 package com.cloud.storage;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
@@ -36,7 +38,7 @@
     Boolean isExtractable;
     ImageFormat format;
     Long guestOsId;
-    Long zoneId;
+    List<Long> zoneIdList;
     HypervisorType hypervisorType;
     String accountName;
     Long domainId;
@@ -51,8 +53,8 @@
     TemplateType templateType;
 
     public TemplateProfile(Long templateId, Long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHvm, String url,
-            Boolean isPublic, Boolean featured, Boolean isExtractable, ImageFormat format, Long guestOsId, Long zoneId, HypervisorType hypervisorType,
-            String accountName, Long domainId, Long accountId, String chksum, Boolean bootable, Map details, Boolean sshKeyEnabled) {
+                           Boolean isPublic, Boolean featured, Boolean isExtractable, ImageFormat format, Long guestOsId, List<Long> zoneIdList, HypervisorType hypervisorType,
+                           String accountName, Long domainId, Long accountId, String chksum, Boolean bootable, Map details, Boolean sshKeyEnabled) {
         this.templateId = templateId;
         this.userId = userId;
         this.name = name;
@@ -66,7 +68,7 @@
         this.isExtractable = isExtractable;
         this.format = format;
         this.guestOsId = guestOsId;
-        this.zoneId = zoneId;
+        this.zoneIdList = zoneIdList;
         this.hypervisorType = hypervisorType;
         this.accountName = accountName;
         this.domainId = domainId;
@@ -80,11 +82,15 @@
     public TemplateProfile(Long userId, VMTemplateVO template, Long zoneId) {
         this.userId = userId;
         this.template = template;
-        this.zoneId = zoneId;
+        if (zoneId != null) {
+            this.zoneIdList = new ArrayList<>();
+            this.zoneIdList.add(zoneId);
+        }
+        else this.zoneIdList = null;
     }
 
     public TemplateProfile(Long templateId, Long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHvm, String url,
-            Boolean isPublic, Boolean featured, Boolean isExtractable, ImageFormat format, Long guestOsId, Long zoneId,
+            Boolean isPublic, Boolean featured, Boolean isExtractable, ImageFormat format, Long guestOsId, List<Long> zoneId,
 
             HypervisorType hypervisorType, String accountName, Long domainId, Long accountId, String chksum, Boolean bootable, String templateTag, Map details,
             Boolean sshKeyEnabled, Long imageStoreId, Boolean isDynamicallyScalable, TemplateType templateType) {
@@ -219,12 +225,8 @@
         this.guestOsId = id;
     }
 
-    public Long getZoneId() {
-        return zoneId;
-    }
-
-    public void setZoneId(Long id) {
-        this.zoneId = id;
+    public List<Long> getZoneIdList() {
+        return zoneIdList;
     }
 
     public HypervisorType getHypervisorType() {
diff --git a/server/src/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
index eedb54d..98fd1a3 100644
--- a/server/src/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
@@ -16,76 +16,6 @@
 // under the License.
 package com.cloud.storage;
 
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ExecutionException;
-
-import javax.inject.Inject;
-
-import com.cloud.utils.EncryptionUtil;
-import com.cloud.utils.db.TransactionCallbackWithException;
-import com.google.common.base.Strings;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonParseException;
-
-import org.apache.cloudstack.api.command.user.volume.GetUploadParamsForVolumeCmd;
-import org.apache.cloudstack.api.response.GetUploadParamsResponse;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
-import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
-import org.apache.cloudstack.storage.command.TemplateOrVolumePostUploadCommand;
-import org.apache.cloudstack.utils.imagestore.ImageStoreUtil;
-import org.apache.cloudstack.utils.volume.VirtualMachineDiskInfo;
-import org.apache.log4j.Logger;
-import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
-import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
-import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
-import org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd;
-import org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd;
-import org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd;
-import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService;
-import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.HostScope;
-import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
-import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService.VolumeApiResult;
-import org.apache.cloudstack.framework.async.AsyncCallFuture;
-import org.apache.cloudstack.framework.config.ConfigKey;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.framework.jobs.AsyncJob;
-import org.apache.cloudstack.framework.jobs.AsyncJobExecutionContext;
-import org.apache.cloudstack.framework.jobs.AsyncJobManager;
-import org.apache.cloudstack.framework.jobs.Outcome;
-import org.apache.cloudstack.framework.jobs.dao.VmWorkJobDao;
-import org.apache.cloudstack.framework.jobs.impl.AsyncJobVO;
-import org.apache.cloudstack.framework.jobs.impl.OutcomeImpl;
-import org.apache.cloudstack.framework.jobs.impl.VmWorkJobVO;
-import org.apache.cloudstack.jobs.JobInfo;
-import org.apache.cloudstack.storage.command.AttachAnswer;
-import org.apache.cloudstack.storage.command.AttachCommand;
-import org.apache.cloudstack.storage.command.DettachCommand;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
-import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
-import org.apache.cloudstack.utils.identity.ManagementServerNode;
-
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.to.DataTO;
@@ -134,6 +64,7 @@
 import com.cloud.user.dao.AccountDao;
 import com.cloud.user.dao.VmDiskStatisticsDao;
 import com.cloud.utils.DateUtil;
+import com.cloud.utils.EncryptionUtil;
 import com.cloud.utils.EnumUtils;
 import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Pair;
@@ -146,6 +77,7 @@
 import com.cloud.utils.db.EntityManager;
 import com.cloud.utils.db.Transaction;
 import com.cloud.utils.db.TransactionCallback;
+import com.cloud.utils.db.TransactionCallbackWithException;
 import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.db.UUIDManager;
 import com.cloud.utils.exception.CloudRuntimeException;
@@ -172,10 +104,74 @@
 import com.cloud.vm.dao.VMInstanceDao;
 import com.cloud.vm.snapshot.VMSnapshotVO;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
-
+import com.google.common.base.Strings;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonParseException;
+import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.GetUploadParamsForVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd;
+import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
+import org.apache.cloudstack.api.response.GetUploadParamsResponse;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService;
+import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
+import org.apache.cloudstack.engine.subsystem.api.storage.HostScope;
+import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
+import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService.VolumeApiResult;
+import org.apache.cloudstack.framework.async.AsyncCallFuture;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.framework.jobs.AsyncJob;
+import org.apache.cloudstack.framework.jobs.AsyncJobExecutionContext;
+import org.apache.cloudstack.framework.jobs.AsyncJobManager;
+import org.apache.cloudstack.framework.jobs.Outcome;
+import org.apache.cloudstack.framework.jobs.dao.VmWorkJobDao;
+import org.apache.cloudstack.framework.jobs.impl.AsyncJobVO;
+import org.apache.cloudstack.framework.jobs.impl.OutcomeImpl;
+import org.apache.cloudstack.framework.jobs.impl.VmWorkJobVO;
+import org.apache.cloudstack.jobs.JobInfo;
+import org.apache.cloudstack.storage.command.AttachAnswer;
+import org.apache.cloudstack.storage.command.AttachCommand;
+import org.apache.cloudstack.storage.command.DettachCommand;
+import org.apache.cloudstack.storage.command.TemplateOrVolumePostUploadCommand;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
+import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
+import org.apache.cloudstack.utils.identity.ManagementServerNode;
+import org.apache.cloudstack.utils.imagestore.ImageStoreUtil;
+import org.apache.cloudstack.utils.volume.VirtualMachineDiskInfo;
+import org.apache.log4j.Logger;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 
+import javax.inject.Inject;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ExecutionException;
+
 public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiService, VmWorkJobHandler {
     private final static Logger s_logger = Logger.getLogger(VolumeApiServiceImpl.class);
     public static final String VM_WORK_JOB_HANDLER = VolumeApiServiceImpl.class.getSimpleName();
@@ -219,7 +215,7 @@
     @Inject
     AccountDao _accountDao;
     @Inject
-    final DataCenterDao _dcDao = null;
+    DataCenterDao _dcDao = null;
     @Inject
     VMTemplateDao _templateDao;
     @Inject
@@ -481,7 +477,7 @@
                 // decrement it
                 _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.volume);
                 //url can be null incase of postupload
-                if(url!=null) {
+                if (url != null) {
                     _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.secondary_storage, UriUtils.getRemoteSize(url));
                 }
 
@@ -872,8 +868,8 @@
         HypervisorType hypervisorType = _volsDao.getHypervisorType(volume.getId());
 
         if (hypervisorType != HypervisorType.KVM && hypervisorType != HypervisorType.XenServer &&
-                hypervisorType != HypervisorType.VMware && hypervisorType != HypervisorType.Any && hypervisorType != HypervisorType.None) {
-            throw new InvalidParameterValueException("CloudStack currently supports volume resize only on KVM, VMware, or XenServer.");
+                hypervisorType != HypervisorType.VMware && hypervisorType != HypervisorType.Any && hypervisorType != HypervisorType.None ) {
+            throw new InvalidParameterValueException("Hypervisor " + hypervisorType + " does not support  rootdisksize override");
         }
 
         if (volume.getState() != Volume.State.Ready && volume.getState() != Volume.State.Allocated) {
@@ -1030,6 +1026,10 @@
         UserVmVO userVm = _userVmDao.findById(volume.getInstanceId());
 
         if (userVm != null) {
+            if (volume.getVolumeType().equals(Volume.Type.ROOT) && userVm.getPowerState()!= VirtualMachine.PowerState.PowerOff && hypervisorType == HypervisorType.VMware){
+                s_logger.error(" For ROOT volume resize VM should be in Power Off state.");
+                throw new InvalidParameterValueException("VM current state is : "+userVm.getPowerState()+ ". But VM should be in "+VirtualMachine.PowerState.PowerOff+" state.");
+            }
             // serialize VM operation
             AsyncJobExecutionContext jobContext = AsyncJobExecutionContext.getCurrentExecutionContext();
 
@@ -1469,11 +1469,13 @@
 
         Account owner = _accountDao.findById(volumeToAttach.getAccountId());
 
-        try {
-            _resourceLimitMgr.checkResourceLimit(owner, ResourceType.primary_storage, volumeToAttach.getSize());
-        } catch (ResourceAllocationException e) {
-            s_logger.error("primary storage resource limit check failed", e);
-            throw new InvalidParameterValueException(e.getMessage());
+        if(!(volumeToAttach.getState() == Volume.State.Allocated || volumeToAttach.getState() == Volume.State.Ready)){
+            try {
+                _resourceLimitMgr.checkResourceLimit(owner, ResourceType.primary_storage, volumeToAttach.getSize());
+            } catch (ResourceAllocationException e) {
+                s_logger.error("primary storage resource limit check failed", e);
+                throw new InvalidParameterValueException(e.getMessage());
+            }
         }
 
         HypervisorType rootDiskHyperType = vm.getHypervisorType();
@@ -2050,8 +2052,8 @@
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_SNAPSHOT_CREATE, eventDescription = "taking snapshot", async = true)
-    public Snapshot takeSnapshot(Long volumeId, Long policyId, Long snapshotId, Account account, boolean quiescevm) throws ResourceAllocationException {
-
+    public Snapshot takeSnapshot(Long volumeId, Long policyId, Long snapshotId, Account account, boolean quiescevm, Snapshot.LocationType locationType)
+            throws ResourceAllocationException {
         VolumeInfo volume = volFactory.getVolume(volumeId);
         if (volume == null) {
             throw new InvalidParameterValueException("Creating snapshot failed due to volume:" + volumeId + " doesn't exist");
@@ -2061,6 +2063,11 @@
             throw new InvalidParameterValueException("VolumeId: " + volumeId + " is not in " + Volume.State.Ready + " state but " + volume.getState() + ". Cannot take snapshot.");
         }
 
+        StoragePoolVO storagePoolVO = _storagePoolDao.findById(volume.getPoolId());
+        if (storagePoolVO.isManaged() && locationType == null) {
+            locationType = Snapshot.LocationType.PRIMARY;
+        }
+
         VMInstanceVO vm = null;
         if (volume.getInstanceId() != null)
             vm = _vmInstanceDao.findById(volume.getInstanceId());
@@ -2074,13 +2081,13 @@
                 VmWorkJobVO placeHolder = null;
                 placeHolder = createPlaceHolderWork(vm.getId());
                 try {
-                    return orchestrateTakeVolumeSnapshot(volumeId, policyId, snapshotId, account, quiescevm);
+                    return orchestrateTakeVolumeSnapshot(volumeId, policyId, snapshotId, account, quiescevm, locationType);
                 } finally {
                     _workJobDao.expunge(placeHolder.getId());
                 }
 
             } else {
-                Outcome<Snapshot> outcome = takeVolumeSnapshotThroughJobQueue(vm.getId(), volumeId, policyId, snapshotId, account.getId(), quiescevm);
+                Outcome<Snapshot> outcome = takeVolumeSnapshotThroughJobQueue(vm.getId(), volumeId, policyId, snapshotId, account.getId(), quiescevm, locationType);
 
                 try {
                     outcome.get();
@@ -2113,7 +2120,8 @@
         }
     }
 
-    private Snapshot orchestrateTakeVolumeSnapshot(Long volumeId, Long policyId, Long snapshotId, Account account, boolean quiescevm)
+    private Snapshot orchestrateTakeVolumeSnapshot(Long volumeId, Long policyId, Long snapshotId, Account account,
+                                                   boolean quiescevm, Snapshot.LocationType locationType)
             throws ResourceAllocationException {
 
         VolumeInfo volume = volFactory.getVolume(volumeId);
@@ -2127,17 +2135,21 @@
         }
 
         CreateSnapshotPayload payload = new CreateSnapshotPayload();
+
         payload.setSnapshotId(snapshotId);
         payload.setSnapshotPolicyId(policyId);
         payload.setAccount(account);
         payload.setQuiescevm(quiescevm);
+        payload.setLocationType(locationType);
+
         volume.addPayload(payload);
+
         return volService.takeSnapshot(volume);
     }
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_SNAPSHOT_CREATE, eventDescription = "allocating snapshot", create = true)
-    public Snapshot allocSnapshot(Long volumeId, Long policyId, String snapshotName) throws ResourceAllocationException {
+    public Snapshot allocSnapshot(Long volumeId, Long policyId, String snapshotName, Snapshot.LocationType locationType) throws ResourceAllocationException {
         Account caller = CallContext.current().getCallingAccount();
 
         VolumeInfo volume = volFactory.getVolume(volumeId);
@@ -2168,12 +2180,68 @@
             }
         }
 
+        StoragePoolVO storagePoolVO = _storagePoolDao.findById(volume.getPoolId());
+        if (!storagePoolVO.isManaged() && locationType != null) {
+            throw new InvalidParameterValueException("VolumeId: " + volumeId + " LocationType is supported only for managed storage");
+        }
+
+        if (storagePoolVO.isManaged() && locationType == null) {
+            locationType = Snapshot.LocationType.PRIMARY;
+        }
+
         StoragePool storagePool = (StoragePool)volume.getDataStore();
         if (storagePool == null) {
             throw new InvalidParameterValueException("VolumeId: " + volumeId + " please attach this volume to a VM before create snapshot for it");
         }
 
-        return snapshotMgr.allocSnapshot(volumeId, policyId, snapshotName);
+        return snapshotMgr.allocSnapshot(volumeId, policyId, snapshotName, locationType);
+    }
+
+    @Override
+    public Snapshot allocSnapshotForVm(Long vmId, Long volumeId, String snapshotName) throws ResourceAllocationException {
+        Account caller = CallContext.current().getCallingAccount();
+        VMInstanceVO vm = _vmInstanceDao.findById(vmId);
+        if (vm == null) {
+            throw new InvalidParameterValueException("Creating snapshot failed due to vm:" + vmId + " doesn't exist");
+        }
+        _accountMgr.checkAccess(caller, null, true, vm);
+
+        VolumeInfo volume = volFactory.getVolume(volumeId);
+        if (volume == null) {
+            throw new InvalidParameterValueException("Creating snapshot failed due to volume:" + volumeId + " doesn't exist");
+        }
+        _accountMgr.checkAccess(caller, null, true, volume);
+        VirtualMachine attachVM = volume.getAttachedVM();
+        if (attachVM == null || attachVM.getId() != vm.getId()) {
+            throw new InvalidParameterValueException("Creating snapshot failed due to volume:" + volumeId + " doesn't attach to vm :" + vm);
+        }
+
+        DataCenter zone = _dcDao.findById(volume.getDataCenterId());
+        if (zone == null) {
+            throw new InvalidParameterValueException("Can't find zone by id " + volume.getDataCenterId());
+        }
+
+        if (Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(caller.getId())) {
+            throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: " + zone.getName());
+        }
+
+        if (volume.getState() != Volume.State.Ready) {
+            throw new InvalidParameterValueException("VolumeId: " + volumeId + " is not in " + Volume.State.Ready + " state but " + volume.getState() + ". Cannot take snapshot.");
+        }
+
+        if ( volume.getTemplateId() != null ) {
+            VMTemplateVO  template = _templateDao.findById(volume.getTemplateId());
+            if( template != null && template.getTemplateType() == Storage.TemplateType.SYSTEM ) {
+                throw new InvalidParameterValueException("VolumeId: " + volumeId + " is for System VM , Creating snapshot against System VM volumes is not supported");
+            }
+        }
+
+        StoragePool storagePool = (StoragePool)volume.getDataStore();
+        if (storagePool == null) {
+            throw new InvalidParameterValueException("VolumeId: " + volumeId + " please attach this volume to a VM before create snapshot for it");
+        }
+
+        return snapshotMgr.allocSnapshot(volumeId, Snapshot.MANUAL_POLICY_ID, snapshotName, null);
     }
 
     @Override
@@ -2412,6 +2480,26 @@
         return !storeForExistingStoreScope.isSameScope(storeForNewStoreScope);
     }
 
+    private synchronized void checkAndSetAttaching(Long volumeId, Long hostId) {
+        VolumeInfo volumeToAttach = volFactory.getVolume(volumeId);
+
+        if (volumeToAttach.isAttachedVM()) {
+            throw new CloudRuntimeException("volume: " + volumeToAttach.getName() + " is already attached to a VM: " + volumeToAttach.getAttachedVmName());
+        }
+        if (volumeToAttach.getState().equals(Volume.State.Ready)) {
+            volumeToAttach.stateTransit(Volume.Event.AttachRequested);
+        } else {
+            String error = null;
+            if (hostId == null) {
+                error = "Please try attach operation after starting VM once";
+            } else {
+                error = "Volume: " + volumeToAttach.getName() + " is in " + volumeToAttach.getState() + ". It should be in Ready state";
+            }
+            s_logger.error(error);
+            throw new CloudRuntimeException(error);
+        }
+    }
+
     private VolumeVO sendAttachVolumeCommand(UserVmVO vm, VolumeVO volumeToAttach, Long deviceId) {
         String errorMsg = "Failed to attach volume " + volumeToAttach.getName() + " to VM " + vm.getHostName();
         boolean sendCommand = vm.getState() == State.Running;
@@ -2442,112 +2530,128 @@
         // volumeToAttachStoragePool should be null if the VM we are attaching the disk to has never been started before
         DataStore dataStore = volumeToAttachStoragePool != null ? dataStoreMgr.getDataStore(volumeToAttachStoragePool.getId(), DataStoreRole.Primary) : null;
 
-        // if we don't have a host, the VM we are attaching the disk to has never been started before
-        if (host != null) {
-            try {
-                volService.grantAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore);
-            }
-            catch (Exception e) {
-                volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore);
+        checkAndSetAttaching(volumeToAttach.getId(), hostId);
 
-                throw new CloudRuntimeException(e.getMessage());
-            }
-        }
-
-        if (sendCommand) {
-            if (host != null && host.getHypervisorType() == HypervisorType.KVM &&
-                    volumeToAttachStoragePool.isManaged() &&
-                    volumeToAttach.getPath() == null) {
-                volumeToAttach.setPath(volumeToAttach.get_iScsiName());
-
-                _volsDao.update(volumeToAttach.getId(), volumeToAttach);
-            }
-
-            DataTO volTO = volFactory.getVolume(volumeToAttach.getId()).getTO();
-
-            deviceId = getDeviceId(vm, deviceId);
-
-            DiskTO disk = storageMgr.getDiskWithThrottling(volTO, volumeToAttach.getVolumeType(), deviceId, volumeToAttach.getPath(),
-                    vm.getServiceOfferingId(), volumeToAttach.getDiskOfferingId());
-
-            AttachCommand cmd = new AttachCommand(disk, vm.getInstanceName());
-
-            ChapInfo chapInfo = volService.getChapInfo(volFactory.getVolume(volumeToAttach.getId()), dataStore);
-
-            Map<String, String> details = new HashMap<String, String>();
-
-            disk.setDetails(details);
-
-            details.put(DiskTO.MANAGED, String.valueOf(volumeToAttachStoragePool.isManaged()));
-            details.put(DiskTO.STORAGE_HOST, volumeToAttachStoragePool.getHostAddress());
-            details.put(DiskTO.STORAGE_PORT, String.valueOf(volumeToAttachStoragePool.getPort()));
-            details.put(DiskTO.VOLUME_SIZE, String.valueOf(volumeToAttach.getSize()));
-            details.put(DiskTO.IQN, volumeToAttach.get_iScsiName());
-            details.put(DiskTO.MOUNT_POINT, volumeToAttach.get_iScsiName());
-            details.put(DiskTO.PROTOCOL_TYPE, (volumeToAttach.getPoolType() != null) ? volumeToAttach.getPoolType().toString() : null);
-
-            if (chapInfo != null) {
-                details.put(DiskTO.CHAP_INITIATOR_USERNAME, chapInfo.getInitiatorUsername());
-                details.put(DiskTO.CHAP_INITIATOR_SECRET, chapInfo.getInitiatorSecret());
-                details.put(DiskTO.CHAP_TARGET_USERNAME, chapInfo.getTargetUsername());
-                details.put(DiskTO.CHAP_TARGET_SECRET, chapInfo.getTargetSecret());
-            }
-            _userVmDao.loadDetails(vm);
-            Map<String, String> controllerInfo = new HashMap<String, String>();
-            controllerInfo.put(VmDetailConstants.ROOT_DISK_CONTROLLER, vm.getDetail(VmDetailConstants.ROOT_DISK_CONTROLLER));
-            controllerInfo.put(VmDetailConstants.DATA_DISK_CONTROLLER, vm.getDetail(VmDetailConstants.DATA_DISK_CONTROLLER));
-            cmd.setControllerInfo(controllerInfo);
-            s_logger.debug("Attach volume id:" + volumeToAttach.getId() +  " on VM id:" + vm.getId() + " has controller info:" + controllerInfo);
-
-            try {
-                answer = (AttachAnswer)_agentMgr.send(hostId, cmd);
-            } catch (Exception e) {
-                if(host!=null) {
-                    volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore);
+        boolean attached = false;
+        try {
+            // if we don't have a host, the VM we are attaching the disk to has never been started before
+            if (host != null) {
+                try {
+                    volService.grantAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore);
                 }
-                throw new CloudRuntimeException(errorMsg + " due to: " + e.getMessage());
+                catch (Exception e) {
+                    volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore);
+
+                    throw new CloudRuntimeException(e.getMessage());
+                }
             }
-        }
 
-        if (!sendCommand || (answer != null && answer.getResult())) {
-            // Mark the volume as attached
             if (sendCommand) {
-                DiskTO disk = answer.getDisk();
-                _volsDao.attachVolume(volumeToAttach.getId(), vm.getId(), disk.getDiskSeq());
-
-                volumeToAttach = _volsDao.findById(volumeToAttach.getId());
-
-                if (volumeToAttachStoragePool.isManaged() && volumeToAttach.getPath() == null) {
-                    volumeToAttach.setPath(answer.getDisk().getPath());
+                if (host != null && host.getHypervisorType() == HypervisorType.KVM &&
+                        volumeToAttachStoragePool.isManaged() &&
+                        volumeToAttach.getPath() == null) {
+                    volumeToAttach.setPath(volumeToAttach.get_iScsiName());
 
                     _volsDao.update(volumeToAttach.getId(), volumeToAttach);
                 }
-            } else {
+
+                DataTO volTO = volFactory.getVolume(volumeToAttach.getId()).getTO();
+
                 deviceId = getDeviceId(vm, deviceId);
 
-                _volsDao.attachVolume(volumeToAttach.getId(), vm.getId(), deviceId);
-            }
+                DiskTO disk = storageMgr.getDiskWithThrottling(volTO, volumeToAttach.getVolumeType(), deviceId, volumeToAttach.getPath(),
+                        vm.getServiceOfferingId(), volumeToAttach.getDiskOfferingId());
 
-            // insert record for disk I/O statistics
-            VmDiskStatisticsVO diskstats = _vmDiskStatsDao.findBy(vm.getAccountId(), vm.getDataCenterId(), vm.getId(), volumeToAttach.getId());
-            if (diskstats == null) {
-                diskstats = new VmDiskStatisticsVO(vm.getAccountId(), vm.getDataCenterId(), vm.getId(), volumeToAttach.getId());
-                _vmDiskStatsDao.persist(diskstats);
-            }
+                AttachCommand cmd = new AttachCommand(disk, vm.getInstanceName());
 
-            return _volsDao.findById(volumeToAttach.getId());
-        } else {
-            if (answer != null) {
-                String details = answer.getDetails();
-                if (details != null && !details.isEmpty()) {
-                    errorMsg += "; " + details;
+                ChapInfo chapInfo = volService.getChapInfo(volFactory.getVolume(volumeToAttach.getId()), dataStore);
+
+                Map<String, String> details = new HashMap<String, String>();
+
+                disk.setDetails(details);
+
+                details.put(DiskTO.MANAGED, String.valueOf(volumeToAttachStoragePool.isManaged()));
+                details.put(DiskTO.STORAGE_HOST, volumeToAttachStoragePool.getHostAddress());
+                details.put(DiskTO.STORAGE_PORT, String.valueOf(volumeToAttachStoragePool.getPort()));
+                details.put(DiskTO.VOLUME_SIZE, String.valueOf(volumeToAttach.getSize()));
+                details.put(DiskTO.IQN, volumeToAttach.get_iScsiName());
+                details.put(DiskTO.MOUNT_POINT, volumeToAttach.get_iScsiName());
+                details.put(DiskTO.PROTOCOL_TYPE, (volumeToAttach.getPoolType() != null) ? volumeToAttach.getPoolType().toString() : null);
+
+                if (chapInfo != null) {
+                    details.put(DiskTO.CHAP_INITIATOR_USERNAME, chapInfo.getInitiatorUsername());
+                    details.put(DiskTO.CHAP_INITIATOR_SECRET, chapInfo.getInitiatorSecret());
+                    details.put(DiskTO.CHAP_TARGET_USERNAME, chapInfo.getTargetUsername());
+                    details.put(DiskTO.CHAP_TARGET_SECRET, chapInfo.getTargetSecret());
+                }
+                _userVmDao.loadDetails(vm);
+                Map<String, String> controllerInfo = new HashMap<String, String>();
+                controllerInfo.put(VmDetailConstants.ROOT_DISK_CONTROLLER, vm.getDetail(VmDetailConstants.ROOT_DISK_CONTROLLER));
+                controllerInfo.put(VmDetailConstants.DATA_DISK_CONTROLLER, vm.getDetail(VmDetailConstants.DATA_DISK_CONTROLLER));
+                cmd.setControllerInfo(controllerInfo);
+                s_logger.debug("Attach volume id:" + volumeToAttach.getId() +  " on VM id:" + vm.getId() + " has controller info:" + controllerInfo);
+
+                try {
+                    answer = (AttachAnswer)_agentMgr.send(hostId, cmd);
+                } catch (Exception e) {
+                    if(host!=null) {
+                        volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore);
+                    }
+                    throw new CloudRuntimeException(errorMsg + " due to: " + e.getMessage());
                 }
             }
-            if(host!= null) {
-                volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore);
+
+            if (!sendCommand || (answer != null && answer.getResult())) {
+                // Mark the volume as attached
+                if (sendCommand) {
+                    DiskTO disk = answer.getDisk();
+                    _volsDao.attachVolume(volumeToAttach.getId(), vm.getId(), disk.getDiskSeq());
+
+                    volumeToAttach = _volsDao.findById(volumeToAttach.getId());
+
+                    if (volumeToAttachStoragePool.isManaged() && volumeToAttach.getPath() == null) {
+                        volumeToAttach.setPath(answer.getDisk().getPath());
+
+                        _volsDao.update(volumeToAttach.getId(), volumeToAttach);
+                    }
+                } else {
+                    deviceId = getDeviceId(vm, deviceId);
+
+                    _volsDao.attachVolume(volumeToAttach.getId(), vm.getId(), deviceId);
+                }
+
+                // insert record for disk I/O statistics
+                VmDiskStatisticsVO diskstats = _vmDiskStatsDao.findBy(vm.getAccountId(), vm.getDataCenterId(), vm.getId(), volumeToAttach.getId());
+                if (diskstats == null) {
+                    diskstats = new VmDiskStatisticsVO(vm.getAccountId(), vm.getDataCenterId(), vm.getId(), volumeToAttach.getId());
+                    _vmDiskStatsDao.persist(diskstats);
+                }
+
+                attached = true;
+            } else {
+                if (answer != null) {
+                    String details = answer.getDetails();
+                    if (details != null && !details.isEmpty()) {
+                        errorMsg += "; " + details;
+                    }
+                }
+                if (host != null) {
+                    volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore);
+                }
+                throw new CloudRuntimeException(errorMsg);
             }
-            throw new CloudRuntimeException(errorMsg);
+        } finally {
+            Volume.Event ev = Volume.Event.OperationFailed;
+            VolumeInfo volInfo = volFactory.getVolume(volumeToAttach.getId());
+            if(attached) {
+                ev = Volume.Event.OperationSucceeded;
+                s_logger.debug("Volume: " + volInfo.getName() + " successfully attached to VM: " + volInfo.getAttachedVmName());
+            } else {
+                s_logger.debug("Volume: " + volInfo.getName() + " failed to attach to VM: " + volInfo.getAttachedVmName());
+            }
+            volInfo.stateTransit(ev);
         }
+        return _volsDao.findById(volumeToAttach.getId());
     }
 
     private int getMaxDataVolumesSupported(UserVmVO vm) {
@@ -2852,7 +2956,7 @@
     }
 
     public Outcome<Snapshot> takeVolumeSnapshotThroughJobQueue(final Long vmId, final Long volumeId,
-            final Long policyId, final Long snapshotId, final Long accountId, final boolean quiesceVm) {
+            final Long policyId, final Long snapshotId, final Long accountId, final boolean quiesceVm, final Snapshot.LocationType locationType) {
 
         final CallContext context = CallContext.current();
         final User callingUser = context.getCallingUser();
@@ -2875,7 +2979,7 @@
         // save work context info (there are some duplications)
         VmWorkTakeVolumeSnapshot workInfo = new VmWorkTakeVolumeSnapshot(
                 callingUser.getId(), accountId != null ? accountId : callingAccount.getId(), vm.getId(),
-                VolumeApiServiceImpl.VM_WORK_JOB_HANDLER, volumeId, policyId, snapshotId, quiesceVm);
+                VolumeApiServiceImpl.VM_WORK_JOB_HANDLER, volumeId, policyId, snapshotId, quiesceVm, locationType);
         workJob.setCmdInfo(VmWorkSerializer.serialize(workInfo));
 
         _jobMgr.submitAsyncJob(workJob, VmWorkConstants.VM_WORK_QUEUE, vm.getId());
@@ -2925,7 +3029,7 @@
     private Pair<JobInfo.Status, String> orchestrateTakeVolumeSnapshot(VmWorkTakeVolumeSnapshot work) throws Exception {
         Account account = _accountDao.findById(work.getAccountId());
         orchestrateTakeVolumeSnapshot(work.getVolumeId(), work.getPolicyId(), work.getSnapshotId(),
-                account, work.isQuiesceVm());
+                account, work.isQuiesceVm(), work.getLocationType());
         return new Pair<JobInfo.Status, String>(JobInfo.Status.SUCCEEDED,
                 _jobMgr.marshallResultObject(work.getSnapshotId()));
     }
diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManager.java b/server/src/com/cloud/storage/snapshot/SnapshotManager.java
index 0bbc035..606109f 100644
--- a/server/src/com/cloud/storage/snapshot/SnapshotManager.java
+++ b/server/src/com/cloud/storage/snapshot/SnapshotManager.java
@@ -25,19 +25,25 @@
 import com.cloud.storage.Snapshot;
 import com.cloud.storage.SnapshotVO;
 import com.cloud.storage.Volume;
+import org.apache.cloudstack.framework.config.ConfigKey;
 
 /**
  *
  *
  */
 public interface SnapshotManager {
-
-    public static final int HOURLYMAX = 8;
-    public static final int DAILYMAX = 8;
-    public static final int WEEKLYMAX = 8;
-    public static final int MONTHLYMAX = 12;
     public static final int DELTAMAX = 16;
 
+    static final ConfigKey<Integer> SnapshotHourlyMax = new ConfigKey<Integer>(Integer.class, "snapshot.max.hourly", "Snapshots", "8",
+            "Maximum recurring hourly snapshots to be retained for a volume. If the limit is reached, early snapshots from the start of the hour are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring hourly snapshots can not be scheduled.", false, ConfigKey.Scope.Global, null);
+    static final ConfigKey<Integer> SnapshotDailyMax = new ConfigKey<Integer>(Integer.class, "snapshot.max.daily", "Snapshots", "8",
+            "Maximum recurring daily snapshots to be retained for a volume. If the limit is reached, snapshots from the start of the day are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring daily snapshots can not be scheduled.", false, ConfigKey.Scope.Global, null);
+    static final ConfigKey<Integer> SnapshotWeeklyMax = new ConfigKey<Integer>(Integer.class, "snapshot.max.weekly", "Snapshots", "8",
+            "Maximum recurring weekly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the week are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring weekly snapshots can not be scheduled.", false, ConfigKey.Scope.Global, null);
+    static final ConfigKey<Integer> SnapshotMonthlyMax = new ConfigKey<Integer>(Integer.class, "snapshot.max.monthly", "Snapshots", "8",
+            "Maximum recurring monthly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the month are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring monthly snapshots can not be scheduled.", false, ConfigKey.Scope.Global, null);
+    static final ConfigKey<Boolean> usageSnapshotSelection = new ConfigKey<Boolean>("Usage", Boolean.class, "usage.snapshot.virtualsize.select", "false",
+            "Set the value to true if snapshot usage need to consider virtual size, else physical size is considered ", false);
     void deletePoliciesForVolume(Long volumeId);
 
     /**
diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
old mode 100644
new mode 100755
index 9c3cd46..b2caa81
--- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
+++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
@@ -16,44 +16,6 @@
 // under the License.
 package com.cloud.storage.snapshot;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
-
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd;
-import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd;
-import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd;
-import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd;
-import org.apache.cloudstack.api.command.user.snapshot.UpdateSnapshotPolicyCmd;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
-import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotService;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy.SnapshotOperation;
-import org.apache.cloudstack.engine.subsystem.api.storage.StorageStrategyFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.Command;
 import com.cloud.agent.api.DeleteSnapshotsDirCommand;
@@ -128,9 +90,47 @@
 import com.cloud.vm.snapshot.VMSnapshot;
 import com.cloud.vm.snapshot.VMSnapshotVO;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
+import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd;
+import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd;
+import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd;
+import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd;
+import org.apache.cloudstack.api.command.user.snapshot.UpdateSnapshotPolicyCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotService;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy.SnapshotOperation;
+import org.apache.cloudstack.engine.subsystem.api.storage.StorageStrategyFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.Configurable;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import javax.inject.Inject;
+import javax.naming.ConfigurationException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
 
 @Component
-public class SnapshotManagerImpl extends MutualExclusiveIdsManagerBase implements SnapshotManager, SnapshotApiService {
+public class SnapshotManagerImpl extends MutualExclusiveIdsManagerBase implements SnapshotManager, SnapshotApiService, Configurable {
     private static final Logger s_logger = Logger.getLogger(SnapshotManagerImpl.class);
     @Inject
     VMTemplateDao _templateDao;
@@ -265,6 +265,11 @@
             if (vm.getState() != State.Stopped && vm.getState() != State.Shutdowned) {
                 throw new InvalidParameterValueException("The VM the specified disk is attached to is not in the shutdown state.");
             }
+            // If target VM has associated VM snapshots then don't allow to revert from snapshot
+            List<VMSnapshotVO> vmSnapshots = _vmSnapshotDao.findByVm(instanceId);
+            if (vmSnapshots.size() > 0) {
+                throw new InvalidParameterValueException("Unable to revert snapshot for VM, please remove VM snapshots before reverting VM from snapshot");
+            }
         }
 
         SnapshotInfo snapshotInfo = snapshotFactory.getSnapshot(snapshotId, DataStoreRole.Image);
@@ -367,6 +372,76 @@
     }
 
     @Override
+    public Snapshot backupSnapshotFromVmSnapshot(Long snapshotId, Long vmId, Long volumeId, Long vmSnapshotId) {
+        VMInstanceVO vm = _vmDao.findById(vmId);
+        if (vm == null) {
+            throw new InvalidParameterValueException("Creating snapshot failed due to vm:" + vmId + " doesn't exist");
+        }
+        if (! HypervisorType.KVM.equals(vm.getHypervisorType())) {
+            throw new InvalidParameterValueException("Unsupported hypervisor type " + vm.getHypervisorType() + ". This supports KVM only");
+        }
+
+        VMSnapshotVO vmSnapshot = _vmSnapshotDao.findById(vmSnapshotId);
+        if (vmSnapshot == null) {
+            throw new InvalidParameterValueException("Creating snapshot failed due to vmSnapshot:" + vmSnapshotId + " doesn't exist");
+        }
+        // check vmsnapshot permissions
+        Account caller = CallContext.current().getCallingAccount();
+        _accountMgr.checkAccess(caller, null, true, vmSnapshot);
+
+        SnapshotVO snapshot = _snapshotDao.findById(snapshotId);
+        if (snapshot == null) {
+            throw new InvalidParameterValueException("Creating snapshot failed due to snapshot:" + snapshotId + " doesn't exist");
+        }
+
+        VolumeInfo volume = volFactory.getVolume(volumeId);
+        if (volume == null) {
+            throw new InvalidParameterValueException("Creating snapshot failed due to volume:" + volumeId + " doesn't exist");
+        }
+
+        if (volume.getState() != Volume.State.Ready) {
+            throw new InvalidParameterValueException("VolumeId: " + volumeId + " is not in " + Volume.State.Ready + " state but " + volume.getState() + ". Cannot take snapshot.");
+        }
+
+        DataStore store = volume.getDataStore();
+        SnapshotDataStoreVO parentSnapshotDataStoreVO = _snapshotStoreDao.findParent(store.getRole(), store.getId(), volumeId);
+        if (parentSnapshotDataStoreVO != null) {
+            //Double check the snapshot is removed or not
+            SnapshotVO parentSnap = _snapshotDao.findById(parentSnapshotDataStoreVO.getSnapshotId());
+            if (parentSnap != null && parentSnapshotDataStoreVO.getInstallPath() != null && parentSnapshotDataStoreVO.getInstallPath().equals(vmSnapshot.getName())) {
+                throw new InvalidParameterValueException("Creating snapshot failed due to snapshot : " + parentSnap.getUuid() + " is created from the same vm snapshot");
+            }
+        }
+        SnapshotInfo snapshotInfo = this.snapshotFactory.getSnapshot(snapshotId, store);
+        snapshotInfo = (SnapshotInfo) store.create(snapshotInfo);
+        SnapshotDataStoreVO snapshotOnPrimaryStore = this._snapshotStoreDao.findBySnapshot(snapshot.getId(), store.getRole());
+        snapshotOnPrimaryStore.setState(ObjectInDataStoreStateMachine.State.Ready);
+        snapshotOnPrimaryStore.setInstallPath(vmSnapshot.getName());
+        _snapshotStoreDao.update(snapshotOnPrimaryStore.getId(), snapshotOnPrimaryStore);
+        snapshot.setState(Snapshot.State.CreatedOnPrimary);
+        _snapshotDao.update(snapshot.getId(), snapshot);
+
+        snapshotInfo = this.snapshotFactory.getSnapshot(snapshotId, store);
+
+        Long snapshotOwnerId = vm.getAccountId();
+
+        try {
+            SnapshotStrategy snapshotStrategy = _storageStrategyFactory.getSnapshotStrategy(snapshot, SnapshotOperation.BACKUP);
+            if (snapshotStrategy == null) {
+                throw new CloudRuntimeException("Unable to find snaphot strategy to handle snapshot with id '" + snapshotId + "'");
+            }
+            snapshotInfo = snapshotStrategy.backupSnapshot(snapshotInfo);
+
+        } catch(Exception e) {
+            s_logger.debug("Failed to backup snapshot from vm snapshot", e);
+            _resourceLimitMgr.decrementResourceCount(snapshotOwnerId, ResourceType.snapshot);
+            _resourceLimitMgr.decrementResourceCount(snapshotOwnerId, ResourceType.secondary_storage, new Long(volume.getSize()));
+            throw new CloudRuntimeException("Failed to backup snapshot from vm snapshot", e);
+        }
+        return snapshotInfo;
+    }
+
+    @Override
     public SnapshotVO getParentSnapshot(VolumeInfo volume) {
         long preId = _snapshotDao.getLastSnapshot(volume.getId(), DataStoreRole.Primary);
 
@@ -408,7 +483,7 @@
         Type type = spstVO.getRecurringType();
         int maxSnaps = type.getMax();
 
-        List<SnapshotVO> snaps = listSnapsforVolumeType(volumeId, type);
+        List<SnapshotVO> snaps = listSnapsforVolumeTypeNotDestroyed(volumeId, type);
         SnapshotPolicyVO policy = _snapshotPolicyDao.findById(policyId);
         if (policy != null && policy.getMaxSnaps() < maxSnaps) {
             maxSnaps = policy.getMaxSnaps();
@@ -441,6 +516,10 @@
             throw new InvalidParameterValueException("unable to find a snapshot with id " + snapshotId);
         }
 
+        if (snapshotCheck.getState() == Snapshot.State.Destroyed) {
+            throw new InvalidParameterValueException("Snapshot with id: " + snapshotId + " is already destroyed");
+        }
+
         _accountMgr.checkAccess(caller, null, true, snapshotCheck);
 
         SnapshotStrategy snapshotStrategy = _storageStrategyFactory.getSnapshotStrategy(snapshotCheck, SnapshotOperation.DELETE);
@@ -825,8 +904,8 @@
         return _snapshotDao.listByVolumeId(volumeId);
     }
 
-    private List<SnapshotVO> listSnapsforVolumeType(long volumeId, Type type) {
-        return _snapshotDao.listByVolumeIdType(volumeId, type);
+    private List<SnapshotVO> listSnapsforVolumeTypeNotDestroyed(long volumeId, Type type) {
+        return _snapshotDao.listByVolumeIdTypeNotDestroyed(volumeId, type);
     }
 
     @Override
@@ -1000,6 +1079,9 @@
     @DB
     public SnapshotInfo takeSnapshot(VolumeInfo volume) throws ResourceAllocationException {
         CreateSnapshotPayload payload = (CreateSnapshotPayload)volume.getpayload();
+
+        updateSnapshotPayload(volume.getPoolId(), payload);
+
         Long snapshotId = payload.getSnapshotId();
         Account snapshotOwner = payload.getAccount();
         SnapshotInfo snapshot = snapshotFactory.getSnapshot(snapshotId, volume.getDataStore());
@@ -1034,8 +1116,17 @@
             } catch (Exception e) {
                 s_logger.debug("post process snapshot failed", e);
             }
+        } catch (CloudRuntimeException cre) {
+            if(s_logger.isDebugEnabled()) {
+                s_logger.debug("Failed to create snapshot" + cre.getLocalizedMessage());
+            }
+            _resourceLimitMgr.decrementResourceCount(snapshotOwner.getId(), ResourceType.snapshot);
+            _resourceLimitMgr.decrementResourceCount(snapshotOwner.getId(), ResourceType.secondary_storage, new Long(volume.getSize()));
+            throw cre;
         } catch (Exception e) {
-            s_logger.debug("Failed to create snapshot", e);
+            if(s_logger.isDebugEnabled()) {
+                s_logger.debug("Failed to create snapshot", e);
+            }
             _resourceLimitMgr.decrementResourceCount(snapshotOwner.getId(), ResourceType.snapshot);
             _resourceLimitMgr.decrementResourceCount(snapshotOwner.getId(), ResourceType.secondary_storage, new Long(volume.getSize()));
             throw new CloudRuntimeException("Failed to create snapshot", e);
@@ -1043,6 +1134,21 @@
         return snapshot;
     }
 
+    private void updateSnapshotPayload(long storagePoolId, CreateSnapshotPayload payload) {
+        StoragePoolVO storagePoolVO = _storagePoolDao.findById(storagePoolId);
+
+        if (storagePoolVO.isManaged()) {
+            Snapshot.LocationType locationType = payload.getLocationType();
+
+            if (locationType == null) {
+                payload.setLocationType(Snapshot.LocationType.PRIMARY);
+            }
+        }
+        else {
+            payload.setLocationType(null);
+        }
+    }
+
     private static DataStoreRole getDataStoreRole(Snapshot snapshot, SnapshotDataStoreDao snapshotStoreDao, DataStoreManager dataStoreMgr) {
         SnapshotDataStoreVO snapshotStore = snapshotStoreDao.findBySnapshot(snapshot.getId(), DataStoreRole.Primary);
 
@@ -1072,10 +1178,10 @@
 
         String value = _configDao.getValue(Config.BackupSnapshotWait.toString());
 
-        Type.HOURLY.setMax(NumbersUtil.parseInt(_configDao.getValue("snapshot.max.hourly"), HOURLYMAX));
-        Type.DAILY.setMax(NumbersUtil.parseInt(_configDao.getValue("snapshot.max.daily"), DAILYMAX));
-        Type.WEEKLY.setMax(NumbersUtil.parseInt(_configDao.getValue("snapshot.max.weekly"), WEEKLYMAX));
-        Type.MONTHLY.setMax(NumbersUtil.parseInt(_configDao.getValue("snapshot.max.monthly"), MONTHLYMAX));
+        Type.HOURLY.setMax(SnapshotHourlyMax.value());
+        Type.DAILY.setMax(SnapshotDailyMax.value());
+        Type.WEEKLY.setMax(SnapshotWeeklyMax.value());
+        Type.MONTHLY.setMax(SnapshotMonthlyMax.value());
         _totalRetries = NumbersUtil.parseInt(_configDao.getValue("total.retries"), 4);
         _pauseInterval = 2 * NumbersUtil.parseInt(_configDao.getValue("ping.interval"), 60);
 
@@ -1086,6 +1192,17 @@
 
     @Override
     public boolean start() {
+        //destroy snapshots in destroying state
+        List<SnapshotVO> snapshots = _snapshotDao.listAllByStatus(Snapshot.State.Destroying);
+        for (SnapshotVO snapshotVO : snapshots) {
+            try {
+                if (!deleteSnapshot(snapshotVO.getId())) {
+                    s_logger.debug("Failed to delete snapshot in destroying state with id " + snapshotVO.getUuid());
+                }
+            } catch (Exception e) {
+                s_logger.debug("Failed to delete snapshot in destroying state with id " + snapshotVO.getUuid());
+            }
+        }
         return true;
     }
 
@@ -1152,7 +1269,7 @@
     }
 
     @Override
-    public Snapshot allocSnapshot(Long volumeId, Long policyId, String snapshotName) throws ResourceAllocationException {
+    public Snapshot allocSnapshot(Long volumeId, Long policyId, String snapshotName, Snapshot.LocationType locationType) throws ResourceAllocationException {
         Account caller = CallContext.current().getCallingAccount();
         VolumeInfo volume = volFactory.getVolume(volumeId);
         supportedByHypervisor(volume);
@@ -1203,7 +1320,7 @@
 
         SnapshotVO snapshotVO =
             new SnapshotVO(volume.getDataCenterId(), volume.getAccountId(), volume.getDomainId(), volume.getId(), volume.getDiskOfferingId(), snapshotName,
-                (short)snapshotType.ordinal(), snapshotType.name(), volume.getSize(), volume.getMinIops(), volume.getMaxIops(), hypervisorType);
+                (short)snapshotType.ordinal(), snapshotType.name(), volume.getSize(), volume.getMinIops(), volume.getMaxIops(), hypervisorType, locationType);
 
         SnapshotVO snapshot = _snapshotDao.persist(snapshotVO);
         if (snapshot == null) {
@@ -1215,5 +1332,12 @@
     }
 
 
+    @Override
+    public String getConfigComponentName() {
+        return SnapshotManager.class.getSimpleName();
+    }
 
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return new ConfigKey<?>[] { SnapshotHourlyMax, SnapshotDailyMax, SnapshotMonthlyMax, SnapshotWeeklyMax, usageSnapshotSelection}; }
 }
diff --git a/server/src/com/cloud/template/HypervisorTemplateAdapter.java b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
index bfb146b..49039d1 100644
--- a/server/src/com/cloud/template/HypervisorTemplateAdapter.java
+++ b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
@@ -159,14 +159,31 @@
             throw new CloudRuntimeException("Unable to persist the template " + profile.getTemplate());
         }
 
+        List<Long> zones = profile.getZoneIdList();
+
+        //zones is null when this template is to be registered to all zones
+        if (zones == null){
+            createTemplateWithinZone(null, profile, template);
+        }
+        else {
+            for (Long zId : zones) {
+                createTemplateWithinZone(zId, profile, template);
+            }
+        }
+        _resourceLimitMgr.incrementResourceCount(profile.getAccountId(), ResourceType.template);
+        return template;
+    }
+
+    private void createTemplateWithinZone(Long zId, TemplateProfile profile, VMTemplateVO template) {
         // find all eligible image stores for this zone scope
-        List<DataStore> imageStores = storeMgr.getImageStoresByScope(new ZoneScope(profile.getZoneId()));
+        List<DataStore> imageStores = storeMgr.getImageStoresByScope(new ZoneScope(zId));
         if (imageStores == null || imageStores.size() == 0) {
             throw new CloudRuntimeException("Unable to find image store to download template " + profile.getTemplate());
         }
 
         Set<Long> zoneSet = new HashSet<Long>();
-        Collections.shuffle(imageStores); // For private templates choose a random store. TODO - Have a better algorithm based on size, no. of objects, load etc.
+        Collections.shuffle(imageStores);
+        // For private templates choose a random store. TODO - Have a better algorithm based on size, no. of objects, load etc.
         for (DataStore imageStore : imageStores) {
             // skip data stores for a disabled zone
             Long zoneId = imageStore.getScope().getScopeId();
@@ -179,23 +196,22 @@
 
                 // Check if zone is disabled
                 if (Grouping.AllocationState.Disabled == zone.getAllocationState()) {
-                    s_logger.info("Zone " + zoneId + " is disabled, so skip downloading template to its image store " + imageStore.getId());
+                    s_logger.info("Zone " + zoneId + " is disabled. Skip downloading template to its image store " + imageStore.getId());
                     continue;
                 }
 
                 // Check if image store has enough capacity for template
                 if (!_statsCollector.imageStoreHasEnoughCapacity(imageStore)) {
-                    s_logger.info("Image store doesn't has enough capacity, so skip downloading template to this image store " + imageStore.getId());
+                    s_logger.info("Image store doesn't have enough capacity. Skip downloading template to this image store " + imageStore.getId());
                     continue;
                 }
                 // We want to download private template to one of the image store in a zone
-                if(isPrivateTemplate(template) && zoneSet.contains(zoneId)){
+                if (isPrivateTemplate(template) && zoneSet.contains(zoneId)) {
                     continue;
-                }else {
+                } else {
                     zoneSet.add(zoneId);
                 }
             }
-
             TemplateInfo tmpl = imageFactory.getTemplate(template.getId(), imageStore);
             CreateTemplateContext<TemplateApiResult> context = new CreateTemplateContext<TemplateApiResult>(null, tmpl);
             AsyncCallbackDispatcher<HypervisorTemplateAdapter, TemplateApiResult> caller = AsyncCallbackDispatcher.create(this);
@@ -203,9 +219,6 @@
             caller.setContext(context);
             imageService.createTemplateAsync(tmpl, imageStore, caller);
         }
-        _resourceLimitMgr.incrementResourceCount(profile.getAccountId(), ResourceType.template);
-
-        return template;
     }
 
     @Override
@@ -222,8 +235,15 @@
                     throw new CloudRuntimeException("Unable to persist the template " + profile.getTemplate());
                 }
 
+                if (profile.getZoneIdList() != null && profile.getZoneIdList().size() > 1)
+                    throw new CloudRuntimeException("Operation is not supported for more than one zone id at a time");
+
+                Long zoneId = null;
+                if (profile.getZoneIdList() != null)
+                    zoneId = profile.getZoneIdList().get(0);
+
                 // find all eligible image stores for this zone scope
-                List<DataStore> imageStores = storeMgr.getImageStoresByScope(new ZoneScope(profile.getZoneId()));
+                List<DataStore> imageStores = storeMgr.getImageStoresByScope(new ZoneScope(zoneId));
                 if (imageStores == null || imageStores.size() == 0) {
                     throw new CloudRuntimeException("Unable to find image store to download template " + profile.getTemplate());
                 }
@@ -233,25 +253,27 @@
                 Collections.shuffle(imageStores); // For private templates choose a random store. TODO - Have a better algorithm based on size, no. of objects, load etc.
                 for (DataStore imageStore : imageStores) {
                     // skip data stores for a disabled zone
-                    Long zoneId = imageStore.getScope().getScopeId();
+                    Long zoneId_is = imageStore.getScope().getScopeId();
                     if (zoneId != null) {
-                        DataCenterVO zone = _dcDao.findById(zoneId);
+                        DataCenterVO zone = _dcDao.findById(zoneId_is);
                         if (zone == null) {
-                            s_logger.warn("Unable to find zone by id " + zoneId + ", so skip downloading template to its image store " + imageStore.getId());
+                            s_logger.warn("Unable to find zone by id " + zoneId_is +
+                                        ", so skip downloading template to its image store " + imageStore.getId());
                             continue;
                         }
 
                         // Check if zone is disabled
                         if (Grouping.AllocationState.Disabled == zone.getAllocationState()) {
-                            s_logger.info("Zone " + zoneId + " is disabled, so skip downloading template to its image store " + imageStore.getId());
+                            s_logger.info("Zone " + zoneId_is +
+                                    " is disabled, so skip downloading template to its image store " + imageStore.getId());
                             continue;
                         }
 
                         // We want to download private template to one of the image store in a zone
-                        if (isPrivateTemplate(template) && zoneSet.contains(zoneId)) {
+                        if (isPrivateTemplate(template) && zoneSet.contains(zoneId_is)) {
                             continue;
                         } else {
-                            zoneSet.add(zoneId);
+                            zoneSet.add(zoneId_is);
                         }
 
                     }
@@ -363,8 +385,17 @@
 
         VMTemplateVO template = profile.getTemplate();
 
+        if (profile.getZoneIdList() != null && profile.getZoneIdList().size() > 1)
+            throw new CloudRuntimeException("Operation is not supported for more than one zone id at a time");
+
+        Long zoneId = null;
+        if (profile.getZoneIdList() != null)
+            zoneId = profile.getZoneIdList().get(0);
+
         // find all eligible image stores for this template
-        List<DataStore> imageStores = templateMgr.getImageStoreByTemplate(template.getId(), profile.getZoneId());
+        List<DataStore> imageStores = templateMgr.getImageStoreByTemplate(template.getId(),
+                                            zoneId);
+
         if (imageStores == null || imageStores.size() == 0) {
             // already destroyed on image stores
             s_logger.info("Unable to find image store still having template: " + template.getName() + ", so just mark the template removed");
@@ -427,7 +458,7 @@
             }
         }
         if (success) {
-            if ((imageStores.size() > 1) && (profile.getZoneId() != null)) {
+            if ((imageStores.size() > 1) && (profile.getZoneIdList() != null)) {
                 //if template is stored in more than one image stores, and the zone id is not null, then don't delete other templates.
                 return success;
             }
@@ -467,13 +498,13 @@
     public TemplateProfile prepareDelete(DeleteTemplateCmd cmd) {
         TemplateProfile profile = super.prepareDelete(cmd);
         VMTemplateVO template = profile.getTemplate();
-        Long zoneId = profile.getZoneId();
+        List<Long> zoneIdList = profile.getZoneIdList();
 
         if (template.getTemplateType() == TemplateType.SYSTEM) {
             throw new InvalidParameterValueException("The DomR template cannot be deleted.");
         }
 
-        if (zoneId != null && (storeMgr.getImageStore(zoneId) == null)) {
+        if (zoneIdList != null && (storeMgr.getImageStore(zoneIdList.get(0)) == null)) {
             throw new InvalidParameterValueException("Failed to find a secondary storage in the specified zone.");
         }
 
@@ -483,9 +514,10 @@
     @Override
     public TemplateProfile prepareDelete(DeleteIsoCmd cmd) {
         TemplateProfile profile = super.prepareDelete(cmd);
-        Long zoneId = profile.getZoneId();
+        List<Long> zoneIdList = profile.getZoneIdList();
 
-        if (zoneId != null && (storeMgr.getImageStore(zoneId) == null)) {
+        if (zoneIdList != null &&
+                (storeMgr.getImageStore(zoneIdList.get(0)) == null)) {
             throw new InvalidParameterValueException("Failed to find a secondary storage in the specified zone.");
         }
 
diff --git a/server/src/com/cloud/template/TemplateAdapter.java b/server/src/com/cloud/template/TemplateAdapter.java
index 4ed0a81..7233ac9 100644
--- a/server/src/com/cloud/template/TemplateAdapter.java
+++ b/server/src/com/cloud/template/TemplateAdapter.java
@@ -70,11 +70,11 @@
     public boolean delete(TemplateProfile profile);
 
     public TemplateProfile prepare(boolean isIso, Long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHVM, String url,
-        Boolean isPublic, Boolean featured, Boolean isExtractable, String format, Long guestOSId, Long zoneId, HypervisorType hypervisorType, String accountName,
+        Boolean isPublic, Boolean featured, Boolean isExtractable, String format, Long guestOSId, List<Long> zoneId, HypervisorType hypervisorType, String accountName,
         Long domainId, String chksum, Boolean bootable, Map details) throws ResourceAllocationException;
 
     public TemplateProfile prepare(boolean isIso, long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHVM, String url,
-        Boolean isPublic, Boolean featured, Boolean isExtractable, String format, Long guestOSId, Long zoneId, HypervisorType hypervisorType, String chksum,
+        Boolean isPublic, Boolean featured, Boolean isExtractable, String format, Long guestOSId, List<Long> zoneId, HypervisorType hypervisorType, String chksum,
         Boolean bootable, String templateTag, Account templateOwner, Map details, Boolean sshKeyEnabled, String imageStoreUuid, Boolean isDynamicallyScalable,
         TemplateType templateType) throws ResourceAllocationException;
 
diff --git a/server/src/com/cloud/template/TemplateAdapterBase.java b/server/src/com/cloud/template/TemplateAdapterBase.java
index 530c562..1e2c6d2 100644
--- a/server/src/com/cloud/template/TemplateAdapterBase.java
+++ b/server/src/com/cloud/template/TemplateAdapterBase.java
@@ -16,6 +16,7 @@
 // under the License.
 package com.cloud.template;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -119,7 +120,7 @@
 
     @Override
     public TemplateProfile prepare(boolean isIso, Long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHVM, String url,
-        Boolean isPublic, Boolean featured, Boolean isExtractable, String format, Long guestOSId, Long zoneId, HypervisorType hypervisorType, String accountName,
+        Boolean isPublic, Boolean featured, Boolean isExtractable, String format, Long guestOSId, List<Long> zoneId, HypervisorType hypervisorType, String accountName,
         Long domainId, String chksum, Boolean bootable, Map details) throws ResourceAllocationException {
         return prepare(isIso, userId, name, displayText, bits, passwordEnabled, requiresHVM, url, isPublic, featured, isExtractable, format, guestOSId, zoneId,
             hypervisorType, chksum, bootable, null, null, details, false, null, false, TemplateType.USER);
@@ -127,7 +128,7 @@
 
     @Override
     public TemplateProfile prepare(boolean isIso, long userId, String name, String displayText, Integer bits, Boolean passwordEnabled, Boolean requiresHVM, String url,
-        Boolean isPublic, Boolean featured, Boolean isExtractable, String format, Long guestOSId, Long zoneId, HypervisorType hypervisorType, String chksum,
+        Boolean isPublic, Boolean featured, Boolean isExtractable, String format, Long guestOSId, List<Long> zoneIdList, HypervisorType hypervisorType, String chksum,
         Boolean bootable, String templateTag, Account templateOwner, Map details, Boolean sshkeyEnabled, String imageStoreUuid, Boolean isDynamicallyScalable,
         TemplateType templateType) throws ResourceAllocationException {
         //Long accountId = null;
@@ -137,10 +138,6 @@
             isPublic = Boolean.FALSE;
         }
 
-        if (zoneId.longValue() == -1) {
-            zoneId = null;
-        }
-
         if (isIso) {
             if (bootable == null) {
                 bootable = Boolean.TRUE;
@@ -178,7 +175,7 @@
             isRegionStore = true;
         }
 
-        if (!isAdmin && zoneId == null && !isRegionStore ) {
+        if (!isAdmin && zoneIdList == null && !isRegionStore ) {
             // domain admin and user should also be able to register template on a region store
             throw new InvalidParameterValueException("Please specify a valid zone Id. Only admins can create templates in all zones.");
         }
@@ -215,14 +212,16 @@
         _resourceLimitMgr.checkResourceLimit(templateOwner, ResourceType.template);
 
         // If a zoneId is specified, make sure it is valid
-        if (zoneId != null) {
-            DataCenterVO zone = _dcDao.findById(zoneId);
-            if (zone == null) {
-                throw new IllegalArgumentException("Please specify a valid zone.");
-            }
-            Account caller = CallContext.current().getCallingAccount();
-            if(Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(caller.getId())){
-                throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: "+ zoneId );
+        if (zoneIdList != null) {
+            for (Long zoneId :zoneIdList) {
+                DataCenterVO zone = _dcDao.findById(zoneId);
+                if (zone == null) {
+                    throw new IllegalArgumentException("Please specify a valid zone.");
+                }
+                Account caller = CallContext.current().getCallingAccount();
+                if (Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(caller.getId())) {
+                    throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: " + zoneId);
+                }
             }
         }
 
@@ -248,7 +247,7 @@
 
         Long id = _tmpltDao.getNextInSequence(Long.class, "id");
         CallContext.current().setEventDetails("Id: " + id + " name: " + name);
-        return new TemplateProfile(id, userId, name, displayText, bits, passwordEnabled, requiresHVM, url, isPublic, featured, isExtractable, imgfmt, guestOSId, zoneId,
+        return new TemplateProfile(id, userId, name, displayText, bits, passwordEnabled, requiresHVM, url, isPublic, featured, isExtractable, imgfmt, guestOSId, zoneIdList,
             hypervisorType, templateOwner.getAccountName(), templateOwner.getDomainId(), templateOwner.getAccountId(), chksum, bootable, templateTag, details,
             sshkeyEnabled, null, isDynamicallyScalable, templateType);
 
@@ -263,11 +262,11 @@
 
         boolean isRouting = (cmd.isRoutingType() == null) ? false : cmd.isRoutingType();
 
-        Long zoneId = cmd.getZoneId();
+        List<Long> zoneId = cmd.getZoneIds();
         // ignore passed zoneId if we are using region wide image store
         List<ImageStoreVO> stores = _imgStoreDao.findRegionImageStores();
         if (stores != null && stores.size() > 0) {
-            zoneId = -1L;
+            zoneId = null;
         }
 
         HypervisorType hypervisorType = HypervisorType.getType(cmd.getHypervisor());
@@ -291,11 +290,13 @@
 
         boolean isRouting = (cmd.isRoutingType() == null) ? false : cmd.isRoutingType();
 
+        List<Long> zoneList = null;
         Long zoneId = cmd.getZoneId();
         // ignore passed zoneId if we are using region wide image store
         List<ImageStoreVO> stores = _imgStoreDao.findRegionImageStores();
-        if (stores != null && stores.size() > 0) {
-            zoneId = -1L;
+        if (!(stores != null && stores.size() > 0)) {
+            zoneList = new ArrayList<>();
+            zoneList.add(zoneId);
         }
 
         HypervisorType hypervisorType = HypervisorType.getType(cmd.getHypervisor());
@@ -305,7 +306,7 @@
         }
 
         return prepare(false, CallContext.current().getCallingUserId(), cmd.getName(), cmd.getDisplayText(), cmd.getBits(), cmd.isPasswordEnabled(),
-                       cmd.getRequiresHvm(), null, cmd.isPublic(), cmd.isFeatured(), cmd.isExtractable(), cmd.getFormat(), cmd.getOsTypeId(), zoneId,
+                       cmd.getRequiresHvm(), null, cmd.isPublic(), cmd.isFeatured(), cmd.isExtractable(), cmd.getFormat(), cmd.getOsTypeId(), zoneList,
                        hypervisorType, cmd.getChecksum(), true, cmd.getTemplateTag(), owner, cmd.getDetails(), cmd.isSshKeyEnabled(), null,
                        cmd.isDynamicallyScalable(), isRouting ? TemplateType.ROUTING : TemplateType.USER);
 
@@ -318,20 +319,22 @@
         Account owner = _accountMgr.getAccount(cmd.getEntityOwnerId());
         _accountMgr.checkAccess(caller, null, true, owner);
 
+        List<Long> zoneList = null;
         Long zoneId = cmd.getZoneId();
         // ignore passed zoneId if we are using region wide image store
         List<ImageStoreVO> stores = _imgStoreDao.findRegionImageStores();
-        if (stores != null && stores.size() > 0) {
-            zoneId = -1L;
+        if (!(stores != null && stores.size() > 0)) {
+            zoneList = new ArrayList<>();
+            zoneList.add(zoneId);
         }
 
         return prepare(true, CallContext.current().getCallingUserId(), cmd.getIsoName(), cmd.getDisplayText(), 64, false, true, cmd.getUrl(), cmd.isPublic(),
-            cmd.isFeatured(), cmd.isExtractable(), ImageFormat.ISO.toString(), cmd.getOsTypeId(), zoneId, HypervisorType.None, cmd.getChecksum(), cmd.isBootable(), null,
+            cmd.isFeatured(), cmd.isExtractable(), ImageFormat.ISO.toString(), cmd.getOsTypeId(), zoneList, HypervisorType.None, cmd.getChecksum(), cmd.isBootable(), null,
             owner, null, false, cmd.getImageStoreUuid(), cmd.isDynamicallyScalable(), TemplateType.USER);
     }
 
     protected VMTemplateVO persistTemplate(TemplateProfile profile, VirtualMachineTemplate.State initialState) {
-        Long zoneId = profile.getZoneId();
+        List<Long> zoneIdList = profile.getZoneIdList();
         VMTemplateVO template =
             new VMTemplateVO(profile.getTemplateId(), profile.getName(), profile.getFormat(), profile.getIsPublic(), profile.getFeatured(), profile.getIsExtractable(),
                 profile.getTemplateType(), profile.getUrl(), profile.getRequiresHVM(), profile.getBits(), profile.getAccountId(), profile.getCheckSum(),
@@ -339,7 +342,7 @@
                 profile.getTemplateTag(), profile.getDetails(), profile.getSshKeyEnabled(), profile.IsDynamicallyScalable());
         template.setState(initialState);
 
-        if (zoneId == null || zoneId.longValue() == -1) {
+        if (zoneIdList == null) {
             List<DataCenterVO> dcs = _dcDao.listAll();
 
             if (dcs.isEmpty()) {
@@ -352,7 +355,9 @@
             }
 
         } else {
-            _tmpltDao.addTemplateToZone(template, zoneId);
+            for (Long zoneId: zoneIdList) {
+                _tmpltDao.addTemplateToZone(template, zoneId);
+            }
         }
         return _tmpltDao.findById(template.getId());
     }
diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java
index 94d2fc9..1b7eb53 100644
--- a/server/src/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/com/cloud/template/TemplateManagerImpl.java
@@ -33,7 +33,11 @@
 import javax.naming.ConfigurationException;
 
 import com.cloud.storage.ImageStoreUploadMonitorImpl;
+import com.cloud.utils.StringUtils;
 import com.cloud.utils.EncryptionUtil;
+import com.cloud.utils.DateUtil;
+import com.cloud.utils.Pair;
+import com.cloud.utils.EnumUtils;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 
@@ -164,6 +168,7 @@
 import com.cloud.storage.dao.SnapshotDao;
 import com.cloud.storage.dao.StoragePoolHostDao;
 import com.cloud.storage.dao.VMTemplateDao;
+import com.cloud.storage.dao.VMTemplateDetailsDao;
 import com.cloud.storage.dao.VMTemplatePoolDao;
 import com.cloud.storage.dao.VMTemplateZoneDao;
 import com.cloud.storage.dao.VolumeDao;
@@ -176,9 +181,6 @@
 import com.cloud.user.ResourceLimitService;
 import com.cloud.user.dao.AccountDao;
 import com.cloud.uservm.UserVm;
-import com.cloud.utils.DateUtil;
-import com.cloud.utils.EnumUtils;
-import com.cloud.utils.Pair;
 import com.cloud.utils.component.AdapterBase;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.concurrency.NamedThreadFactory;
@@ -274,6 +276,8 @@
     private ImageStoreDao _imgStoreDao;
     @Inject
     MessageBus _messageBus;
+    @Inject
+    private VMTemplateDetailsDao _tmpltDetailsDao;
 
     private boolean _disableExtraction = false;
     private List<TemplateAdapter> _adapters;
@@ -777,7 +781,7 @@
         Long templateId = cmd.getId();
         Long userId = CallContext.current().getCallingUserId();
         Long sourceZoneId = cmd.getSourceZoneId();
-        Long destZoneId = cmd.getDestinationZoneId();
+        List<Long> destZoneIds = cmd.getDestinationZoneIds();
         Account caller = CallContext.current().getCallingAccount();
 
         // Verify parameters
@@ -786,28 +790,8 @@
             throw new InvalidParameterValueException("Unable to find template with id");
         }
 
-        DataStore srcSecStore = null;
         if (sourceZoneId != null) {
-            // template is on zone-wide secondary storage
-            srcSecStore = getImageStore(sourceZoneId, templateId);
-        } else {
-            // template is on region store
-            srcSecStore = getImageStore(templateId);
-        }
-
-        if (srcSecStore == null) {
-            throw new InvalidParameterValueException("There is no template " + templateId + " ready on image store.");
-        }
-
-        if (template.isCrossZones()) {
-            // sync template from cache store to region store if it is not there, for cases where we are going to migrate existing NFS to S3.
-            _tmpltSvr.syncTemplateToRegionStore(templateId, srcSecStore);
-            s_logger.debug("Template " + templateId + " is cross-zone, don't need to copy");
-            return template;
-        }
-
-        if (sourceZoneId != null) {
-            if (sourceZoneId.equals(destZoneId)) {
+            if (destZoneIds!= null && destZoneIds.contains(sourceZoneId)) {
                 throw new InvalidParameterValueException("Please specify different source and destination zones.");
             }
 
@@ -817,26 +801,77 @@
             }
         }
 
-        DataCenterVO dstZone = _dcDao.findById(destZoneId);
-        if (dstZone == null) {
-            throw new InvalidParameterValueException("Please specify a valid destination zone.");
-        }
+        Map<Long, DataCenterVO> dataCenterVOs = new HashMap();
 
-        DataStore dstSecStore = getImageStore(destZoneId, templateId);
-        if (dstSecStore != null) {
-            s_logger.debug("There is template " + templateId + " in secondary storage " + dstSecStore.getName() + " in zone " + destZoneId + " , don't need to copy");
-            return template;
+        for (Long destZoneId: destZoneIds) {
+            DataCenterVO dstZone = _dcDao.findById(destZoneId);
+            if (dstZone == null) {
+                throw new InvalidParameterValueException("Please specify a valid destination zone.");
+            }
+            dataCenterVOs.put(destZoneId, dstZone);
         }
 
         _accountMgr.checkAccess(caller, AccessType.OperateEntry, true, template);
 
-        boolean success = copy(userId, template, srcSecStore, dstZone);
+        List<String> failedZones = new ArrayList<>();
 
-        if (success) {
-            // increase resource count
-            long accountId = template.getAccountId();
-            if (template.getSize() != null) {
-                _resourceLimitMgr.incrementResourceCount(accountId, ResourceType.secondary_storage, template.getSize());
+        boolean success = false;
+        if (template.getHypervisorType() == HypervisorType.BareMetal) {
+            if (template.isCrossZones()) {
+                s_logger.debug("Template " + templateId + " is cross-zone, don't need to copy");
+                return template;
+            }
+            for (Long destZoneId: destZoneIds) {
+                if (!addTemplateToZone(template, destZoneId, sourceZoneId)) {
+                    failedZones.add(dataCenterVOs.get(destZoneId).getName());
+                }
+            }
+        } else {
+            DataStore srcSecStore = null;
+            if (sourceZoneId != null) {
+                // template is on zone-wide secondary storage
+                srcSecStore = getImageStore(sourceZoneId, templateId);
+            } else {
+                // template is on region store
+                srcSecStore = getImageStore(templateId);
+            }
+
+            if (srcSecStore == null) {
+                throw new InvalidParameterValueException("There is no template " + templateId + " ready on image store.");
+            }
+
+            if (template.isCrossZones()) {
+                // sync template from cache store to region store if it is not there, for cases where we are going to migrate existing NFS to S3.
+                _tmpltSvr.syncTemplateToRegionStore(templateId, srcSecStore);
+                s_logger.debug("Template " + templateId + " is cross-zone, don't need to copy");
+                return template;
+            }
+            for (Long destZoneId : destZoneIds) {
+                DataStore dstSecStore = getImageStore(destZoneId, templateId);
+                if (dstSecStore != null) {
+                    s_logger.debug("There is template " + templateId + " in secondary storage " + dstSecStore.getName() +
+                            " in zone " + destZoneId + " , don't need to copy");
+                    continue;
+                }
+                if (!copy(userId, template, srcSecStore, dataCenterVOs.get(destZoneId))) {
+                    failedZones.add(dataCenterVOs.get(destZoneId).getName());
+                }
+                else{
+                    if (template.getSize() != null) {
+                        // increase resource count
+                        long accountId = template.getAccountId();
+                        _resourceLimitMgr.incrementResourceCount(accountId, ResourceType.secondary_storage, template.getSize());
+                    }
+                }
+            }
+
+
+        }
+
+        if ((destZoneIds != null) && (destZoneIds.size() > failedZones.size())){
+            if (!failedZones.isEmpty()) {
+                s_logger.debug("There were failures when copying template to zones: " +
+                        StringUtils.listToCsvTags(failedZones));
             }
             return template;
         } else {
@@ -844,6 +879,25 @@
         }
     }
 
+    private boolean addTemplateToZone(VMTemplateVO template, long dstZoneId, long sourceZoneid) throws ResourceAllocationException{
+        long tmpltId = template.getId();
+        DataCenterVO dstZone = _dcDao.findById(dstZoneId);
+        DataCenterVO sourceZone = _dcDao.findById(sourceZoneid);
+
+        AccountVO account = _accountDao.findById(template.getAccountId());
+
+
+        _resourceLimitMgr.checkResourceLimit(account, ResourceType.template);
+
+        try {
+            _tmpltDao.addTemplateToZone(template, dstZoneId);
+            return true;
+        } catch (Exception ex) {
+            s_logger.debug("failed to copy template from Zone: " + sourceZone.getUuid() + " to Zone: " + dstZone.getUuid());
+        }
+        return false;
+    }
+
     @Override
     public boolean delete(long userId, long templateId, Long zoneId) {
         VMTemplateVO template = _tmpltDao.findById(templateId);
@@ -1900,6 +1954,7 @@
         Integer sortKey = cmd.getSortKey();
         Map details = cmd.getDetails();
         Account account = CallContext.current().getCallingAccount();
+        boolean cleanupDetails = cmd.isCleanupDetails();
 
         // verify that template exists
         VMTemplateVO template = _tmpltDao.findById(id);
@@ -1931,7 +1986,8 @@
                   sortKey == null &&
                   isDynamicallyScalable == null &&
                   isRoutingTemplate == null &&
-                        details == null);
+                  (! cleanupDetails && details == null) //update details in every case except this one
+                  );
         if (!updateNeeded) {
             return template;
         }
@@ -2009,7 +2065,11 @@
             }
         }
 
-        if (details != null && !details.isEmpty()) {
+        if (cleanupDetails) {
+            template.setDetails(null);
+            _tmpltDetailsDao.removeDetails(id);
+        }
+        else if (details != null && !details.isEmpty()) {
             template.setDetails(details);
             _tmpltDao.saveDetails(template);
         }
diff --git a/server/src/com/cloud/test/DatabaseConfig.java b/server/src/com/cloud/test/DatabaseConfig.java
index 13dab55..a27f671 100644
--- a/server/src/com/cloud/test/DatabaseConfig.java
+++ b/server/src/com/cloud/test/DatabaseConfig.java
@@ -193,7 +193,6 @@
         s_configurationDescriptions.put("consoleproxy.url.port", "Console proxy port for AJAX viewer");
         s_configurationDescriptions.put("consoleproxy.ram.size", "RAM size (in MB) used to create new console proxy VMs");
         s_configurationDescriptions.put("consoleproxy.cmd.port", "Console proxy command port that is used to communicate with management server");
-        s_configurationDescriptions.put("consoleproxy.loadscan.interval", "The time interval(in milliseconds) to scan console proxy working-load info");
         s_configurationDescriptions.put("consoleproxy.capacityscan.interval",
             "The time interval(in millisecond) to scan whether or not system needs more console proxy to ensure minimal standby capacity");
         s_configurationDescriptions.put("consoleproxy.capacity.standby",
@@ -283,7 +282,6 @@
         s_configurationComponents.put("guest.domain.suffix", "AgentManager");
         s_configurationComponents.put("consoleproxy.ram.size", "AgentManager");
         s_configurationComponents.put("consoleproxy.cmd.port", "AgentManager");
-        s_configurationComponents.put("consoleproxy.loadscan.interval", "AgentManager");
         s_configurationComponents.put("consoleproxy.capacityscan.interval", "AgentManager");
         s_configurationComponents.put("consoleproxy.capacity.standby", "AgentManager");
         s_configurationComponents.put("consoleproxy.session.max", "AgentManager");
diff --git a/server/src/com/cloud/user/AccountManager.java b/server/src/com/cloud/user/AccountManager.java
index 9789a22..9e0dde2 100644
--- a/server/src/com/cloud/user/AccountManager.java
+++ b/server/src/com/cloud/user/AccountManager.java
@@ -33,12 +33,14 @@
 import com.cloud.utils.Ternary;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.Configurable;
 
 /**
  * AccountManager includes logic that deals with accounts, domains, and users.
  *
  */
-public interface AccountManager extends AccountService {
+public interface AccountManager extends AccountService, Configurable{
     /**
      * Disables an account by accountId
      * @param accountId
@@ -198,4 +200,11 @@
     public static final String MESSAGE_ADD_ACCOUNT_EVENT = "Message.AddAccount.Event";
 
     public static final String MESSAGE_REMOVE_ACCOUNT_EVENT = "Message.RemoveAccount.Event";
+    public static final ConfigKey<Boolean> UseSecretKeyInResponse = new ConfigKey<Boolean>(
+            "Advanced",
+            Boolean.class,
+            "use.secret.key.in.response",
+            "false",
+            "This parameter allows the users to enable or disable of showing secret key as a part of response for various APIs. By default it is set to false.",
+            true);
 }
diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java
index bc1113e..e320947 100644
--- a/server/src/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/com/cloud/user/AccountManagerImpl.java
@@ -16,52 +16,6 @@
 // under the License.
 package com.cloud.user;
 
-import java.net.InetAddress;
-import java.net.URLEncoder;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-import javax.crypto.KeyGenerator;
-import javax.crypto.Mac;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-
-import org.apache.cloudstack.acl.ControlledEntity;
-import org.apache.cloudstack.acl.QuerySelector;
-import org.apache.cloudstack.acl.RoleType;
-import org.apache.cloudstack.acl.SecurityChecker;
-import org.apache.cloudstack.acl.SecurityChecker.AccessType;
-import org.apache.cloudstack.affinity.AffinityGroup;
-import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
-import org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd;
-import org.apache.cloudstack.api.command.admin.user.DeleteUserCmd;
-import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
-import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.framework.messagebus.MessageBus;
-import org.apache.cloudstack.framework.messagebus.PublishScope;
-import org.apache.cloudstack.managed.context.ManagedContextRunnable;
-import org.apache.cloudstack.region.gslb.GlobalLoadBalancerRuleDao;
-import org.apache.cloudstack.utils.baremetal.BaremetalUtils;
-
 import com.cloud.api.ApiDBUtils;
 import com.cloud.api.query.vo.ControlledViewEntity;
 import com.cloud.configuration.Config;
@@ -169,6 +123,53 @@
 import com.cloud.vm.snapshot.VMSnapshotManager;
 import com.cloud.vm.snapshot.VMSnapshotVO;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
+import org.apache.cloudstack.acl.ControlledEntity;
+import org.apache.cloudstack.acl.QuerySelector;
+import org.apache.cloudstack.acl.RoleType;
+import org.apache.cloudstack.acl.SecurityChecker;
+import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.affinity.AffinityGroup;
+import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
+import org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd;
+import org.apache.cloudstack.api.command.admin.user.DeleteUserCmd;
+import org.apache.cloudstack.api.command.admin.user.GetUserKeysCmd;
+import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
+import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.framework.messagebus.MessageBus;
+import org.apache.cloudstack.framework.messagebus.PublishScope;
+import org.apache.cloudstack.managed.context.ManagedContextRunnable;
+import org.apache.cloudstack.region.gslb.GlobalLoadBalancerRuleDao;
+import org.apache.cloudstack.utils.baremetal.BaremetalUtils;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+
+import javax.crypto.KeyGenerator;
+import javax.crypto.Mac;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+import javax.inject.Inject;
+import javax.naming.ConfigurationException;
+import java.net.InetAddress;
+import java.net.URLEncoder;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+
 
 public class AccountManagerImpl extends ManagerBase implements AccountManager, Manager {
     public static final Logger s_logger = Logger.getLogger(AccountManagerImpl.class);
@@ -762,7 +763,7 @@
             for (UserVmVO vm : vms) {
                 if (vm.getState() != VirtualMachine.State.Destroyed && vm.getState() != VirtualMachine.State.Expunging) {
                     try {
-                        _vmMgr.destroyVm(vm.getId());
+                        _vmMgr.destroyVm(vm.getId(), false);
                     } catch (Exception e) {
                         e.printStackTrace();
                         s_logger.warn("Failed destroying instance " + vm.getUuid() + " as part of account deletion.");
@@ -799,7 +800,7 @@
 
             try {
                 for (RemoteAccessVpnVO vpn : remoteAccessVpns) {
-                    _remoteAccessVpnMgr.destroyRemoteAccessVpnForIp(vpn.getServerAddressId(), caller);
+                    _remoteAccessVpnMgr.destroyRemoteAccessVpnForIp(vpn.getServerAddressId(), caller, false);
                 }
             } catch (ResourceUnavailableException ex) {
                 s_logger.warn("Failed to cleanup remote access vpn resources as a part of account id=" + accountId + " cleanup due to Exception: ", ex);
@@ -1372,10 +1373,10 @@
         boolean success = Transaction.execute(new TransactionCallback<Boolean>() {
             @Override
             public Boolean doInTransaction(TransactionStatus status) {
-        boolean success = doSetUserStatus(userId, State.enabled);
+                boolean success = doSetUserStatus(userId, State.enabled);
 
-        // make sure the account is enabled too
-        success = success && enableAccount(user.getAccountId());
+                // make sure the account is enabled too
+                success = success && enableAccount(user.getAccountId());
 
                 return success;
             }
@@ -2230,6 +2231,24 @@
     }
 
     @Override
+    public Map<String, String> getKeys(GetUserKeysCmd cmd){
+        final long userId = cmd.getID();
+
+        User user = getActiveUser(userId);
+        if(user==null){
+            throw new InvalidParameterValueException("Unable to find user by id");
+        }
+        final ControlledEntity account = getAccount(getUserAccountById(userId).getAccountId()); //Extracting the Account from the userID of the requested user.
+        checkAccess(CallContext.current().getCallingUser(), account);
+
+        Map <String, String> keys = new HashMap<String, String>();
+        keys.put("apikey", user.getApiKey());
+        keys.put("secretkey", user.getSecretKey());
+
+        return keys;
+    }
+
+    @Override
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_REGISTER_FOR_SECRET_API_KEY, eventDescription = "register for the developer API keys")
     public String[] createApiKeyAndSecretKey(RegisterCmd cmd) {
@@ -2641,4 +2660,28 @@
         assert false : "How can all of the security checkers pass on checking this caller?";
         throw new PermissionDeniedException("There's no way to confirm " + account + " has access to " + dof);
     }
+
+    @Override
+    public void checkAccess(User user, ControlledEntity entity)
+        throws PermissionDeniedException {
+        for(SecurityChecker checker : _securityCheckers){
+            if(checker.checkAccess(user,entity)){
+                if(s_logger.isDebugEnabled()){
+                    s_logger.debug("Access granted to " + user + "to " + entity + "by " + checker.getName());
+                }
+                return;
+            }
+        }
+        throw new PermissionDeniedException("There's no way to confirm " + user + " has access to " + entity);
+    }
+
+    @Override
+    public String getConfigComponentName() {
+        return AccountManager.class.getSimpleName();
+    }
+
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return new ConfigKey<?>[]{UseSecretKeyInResponse};
+    }
 }
diff --git a/server/src/com/cloud/user/DomainManager.java b/server/src/com/cloud/user/DomainManager.java
index f72b18a..9bb2e01 100644
--- a/server/src/com/cloud/user/DomainManager.java
+++ b/server/src/com/cloud/user/DomainManager.java
@@ -49,5 +49,6 @@
     Domain updateDomain(UpdateDomainCmd cmd);
 
     public static final String MESSAGE_ADD_DOMAIN_EVENT = "Message.AddDomain.Event";
+    public static final String MESSAGE_PRE_REMOVE_DOMAIN_EVENT = "Message.PreRemoveDomain.Event";
     public static final String MESSAGE_REMOVE_DOMAIN_EVENT = "Message.RemoveDomain.Event";
 }
diff --git a/server/src/com/cloud/user/DomainManagerImpl.java b/server/src/com/cloud/user/DomainManagerImpl.java
index 6efa121..60c48fa 100644
--- a/server/src/com/cloud/user/DomainManagerImpl.java
+++ b/server/src/com/cloud/user/DomainManagerImpl.java
@@ -23,9 +23,6 @@
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
 import org.apache.cloudstack.api.command.admin.domain.ListDomainChildrenCmd;
 import org.apache.cloudstack.api.command.admin.domain.ListDomainsCmd;
 import org.apache.cloudstack.api.command.admin.domain.UpdateDomainCmd;
@@ -34,6 +31,10 @@
 import org.apache.cloudstack.framework.messagebus.MessageBus;
 import org.apache.cloudstack.framework.messagebus.PublishScope;
 import org.apache.cloudstack.region.RegionManager;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
 
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.configuration.Resource.ResourceOwnerType;
@@ -64,6 +65,7 @@
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.db.DB;
 import com.cloud.utils.db.Filter;
+import com.cloud.utils.db.GlobalLock;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.utils.db.Transaction;
@@ -112,6 +114,14 @@
     @Inject
     MessageBus _messageBus;
 
+    protected GlobalLock getGlobalLock(String name) {
+        return GlobalLock.getInternLock(name);
+    }
+
+    protected Account getCaller() {
+        return CallContext.current().getCallingAccount();
+    }
+
     @Override
     public Domain getDomain(long domainId) {
         return _domainDao.findById(domainId);
@@ -154,7 +164,7 @@
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_DOMAIN_CREATE, eventDescription = "creating Domain")
     public Domain createDomain(String name, Long parentId, String networkDomain, String domainUUID) {
-        Account caller = CallContext.current().getCallingAccount();
+        Account caller = getCaller();
 
         if (parentId == null) {
             parentId = Long.valueOf(Domain.ROOT_DOMAIN);
@@ -259,7 +269,7 @@
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_DOMAIN_DELETE, eventDescription = "deleting Domain", async = true)
     public boolean deleteDomain(long domainId, Boolean cleanup) {
-        Account caller = CallContext.current().getCallingAccount();
+        Account caller = getCaller();
 
         DomainVO domain = _domainDao.findById(domainId);
 
@@ -276,89 +286,154 @@
 
     @Override
     public boolean deleteDomain(DomainVO domain, Boolean cleanup) {
-        // mark domain as inactive
-        s_logger.debug("Marking domain id=" + domain.getId() + " as " + Domain.State.Inactive + " before actually deleting it");
-        domain.setState(Domain.State.Inactive);
-        _domainDao.update(domain.getId(), domain);
-        boolean rollBackState = false;
-        boolean hasDedicatedResources = false;
+        GlobalLock lock = getGlobalLock("AccountCleanup");
+        if (lock == null) {
+            s_logger.debug("Couldn't get the global lock");
+            return false;
+        }
+
+        if (!lock.lock(30)) {
+            s_logger.debug("Couldn't lock the db");
+            return false;
+        }
 
         try {
-            long ownerId = domain.getAccountId();
-            if ((cleanup != null) && cleanup.booleanValue()) {
-                if (!cleanupDomain(domain.getId(), ownerId)) {
-                    rollBackState = true;
-                    CloudRuntimeException e =
-                        new CloudRuntimeException("Failed to clean up domain resources and sub domains, delete failed on domain " + domain.getName() + " (id: " +
-                            domain.getId() + ").");
-                    e.addProxyObject(domain.getUuid(), "domainId");
-                    throw e;
-                }
-            } else {
-                //don't delete the domain if there are accounts set for cleanup, or non-removed networks exist, or domain has dedicated resources
-                List<Long> networkIds = _networkDomainDao.listNetworkIdsByDomain(domain.getId());
-                List<AccountVO> accountsForCleanup = _accountDao.findCleanupsForRemovedAccounts(domain.getId());
-                List<DedicatedResourceVO> dedicatedResources = _dedicatedDao.listByDomainId(domain.getId());
-                if (dedicatedResources != null && !dedicatedResources.isEmpty()) {
-                    s_logger.error("There are dedicated resources for the domain " + domain.getId());
-                    hasDedicatedResources = true;
-                }
-                if (accountsForCleanup.isEmpty() && networkIds.isEmpty() && !hasDedicatedResources) {
-                    if (!_domainDao.remove(domain.getId())) {
-                        rollBackState = true;
-                        CloudRuntimeException e =
-                            new CloudRuntimeException("Delete failed on domain " + domain.getName() + " (id: " + domain.getId() +
-                                "); Please make sure all users and sub domains have been removed from the domain before deleting");
-                        e.addProxyObject(domain.getUuid(), "domainId");
-                        throw e;
-                    }
+            // mark domain as inactive
+            s_logger.debug("Marking domain id=" + domain.getId() + " as " + Domain.State.Inactive + " before actually deleting it");
+            domain.setState(Domain.State.Inactive);
+            _domainDao.update(domain.getId(), domain);
+
+            try {
+                long ownerId = domain.getAccountId();
+                if (BooleanUtils.toBoolean(cleanup)) {
+                    tryCleanupDomain(domain, ownerId);
                 } else {
-                    rollBackState = true;
-                    String msg = null;
-                    if (!accountsForCleanup.isEmpty()) {
-                        msg = accountsForCleanup.size() + " accounts to cleanup";
-                    } else if (!networkIds.isEmpty()) {
-                        msg = networkIds.size() + " non-removed networks";
-                    } else if (hasDedicatedResources) {
-                        msg = "dedicated resources.";
-                    }
+                    removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain);
+                }
 
-                    CloudRuntimeException e = new CloudRuntimeException("Can't delete the domain yet because it has " + msg);
+                if (!_configMgr.releaseDomainSpecificVirtualRanges(domain.getId())) {
+                    CloudRuntimeException e = new CloudRuntimeException("Can't delete the domain yet because failed to release domain specific virtual ip ranges");
                     e.addProxyObject(domain.getUuid(), "domainId");
                     throw e;
+                } else {
+                    s_logger.debug("Domain specific Virtual IP ranges " + " are successfully released as a part of domain id=" + domain.getId() + " cleanup.");
                 }
-            }
 
-            if (!_configMgr.releaseDomainSpecificVirtualRanges(domain.getId())) {
-                CloudRuntimeException e = new CloudRuntimeException("Can't delete the domain yet because failed to release domain specific virtual ip ranges");
-                e.addProxyObject(domain.getUuid(), "domainId");
-                throw e;
-            } else {
-                s_logger.debug("Domain specific Virtual IP ranges " + " are successfully released as a part of domain id=" + domain.getId() + " cleanup.");
+                cleanupDomainOfferings(domain.getId());
+                CallContext.current().putContextParameter(Domain.class, domain.getUuid());
+                return true;
+            } catch (Exception ex) {
+                s_logger.error("Exception deleting domain with id " + domain.getId(), ex);
+                if (ex instanceof CloudRuntimeException) {
+                    rollbackDomainState(domain);
+                    throw (CloudRuntimeException)ex;
+                }
+                else
+                    return false;
             }
-
-            cleanupDomainOfferings(domain.getId());
-            CallContext.current().putContextParameter(Domain.class, domain.getUuid());
-            _messageBus.publish(_name, MESSAGE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domain);
-            return true;
-        } catch (Exception ex) {
-            s_logger.error("Exception deleting domain with id " + domain.getId(), ex);
-            if (ex instanceof CloudRuntimeException)
-                throw (CloudRuntimeException)ex;
-            else
-                return false;
-        } finally {
-            //when success is false
-            if (rollBackState) {
-                s_logger.debug("Changing domain id=" + domain.getId() + " state back to " + Domain.State.Active +
-                    " because it can't be removed due to resources referencing to it");
-                domain.setState(Domain.State.Active);
-                _domainDao.update(domain.getId(), domain);
-            }
+        }
+        finally {
+            lock.unlock();
         }
     }
 
-    private void cleanupDomainOfferings(Long domainId) {
+    /**
+     * Roll back domain state to Active
+     * @param domain domain
+     */
+    protected void rollbackDomainState(DomainVO domain) {
+        s_logger.debug("Changing domain id=" + domain.getId() + " state back to " + Domain.State.Active +
+                " because it can't be removed due to resources referencing to it");
+        domain.setState(Domain.State.Active);
+        _domainDao.update(domain.getId(), domain);
+    }
+
+    /**
+     * Try cleaning up domain. If it couldn't throws CloudRuntimeException
+     * @param domain domain
+     * @param ownerId owner id
+     * @throws ConcurrentOperationException
+     * @throws ResourceUnavailableException
+     * @throws CloudRuntimeException when cleanupDomain
+     */
+    protected void tryCleanupDomain(DomainVO domain, long ownerId) throws ConcurrentOperationException, ResourceUnavailableException, CloudRuntimeException {
+        if (!cleanupDomain(domain.getId(), ownerId)) {
+            CloudRuntimeException e =
+                new CloudRuntimeException("Failed to clean up domain resources and sub domains, delete failed on domain " + domain.getName() + " (id: " +
+                    domain.getId() + ").");
+            e.addProxyObject(domain.getUuid(), "domainId");
+            throw e;
+        }
+    }
+
+    /**
+     * First check domain resources before removing domain. There are 2 cases:
+     * <ol>
+     * <li>Domain doesn't have accounts for cleanup, non-removed networks, or dedicated resources</li>
+     * <ul><li>Delete domain</li></ul>
+     * <li>Domain has one of the following: accounts set for cleanup, non-removed networks, dedicated resources</li>
+     * <ul><li>Dont' delete domain</li><li>Fail operation</li></ul>
+     * </ol>
+     * @param domain domain to remove
+     * @throws CloudRuntimeException when case 2 or when domain cannot be deleted on case 1
+     */
+    protected void removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(DomainVO domain) {
+        boolean hasDedicatedResources = false;
+        List<Long> networkIds = _networkDomainDao.listNetworkIdsByDomain(domain.getId());
+        List<AccountVO> accountsForCleanup = _accountDao.findCleanupsForRemovedAccounts(domain.getId());
+        List<DedicatedResourceVO> dedicatedResources = _dedicatedDao.listByDomainId(domain.getId());
+        if (CollectionUtils.isNotEmpty(dedicatedResources)) {
+            s_logger.error("There are dedicated resources for the domain " + domain.getId());
+            hasDedicatedResources = true;
+        }
+        if (accountsForCleanup.isEmpty() && networkIds.isEmpty() && !hasDedicatedResources) {
+            publishRemoveEventsAndRemoveDomain(domain);
+        } else {
+            failRemoveOperation(domain, accountsForCleanup, networkIds, hasDedicatedResources);
+        }
+    }
+
+    /**
+     * Fail domain remove operation including proper message
+     * @param domain domain
+     * @param accountsForCleanup domain accounts for cleanup
+     * @param networkIds domain network ids
+     * @param hasDedicatedResources indicates if domain has dedicated resources
+     * @throws CloudRuntimeException including descriptive message indicating the reason for failure
+     */
+    protected void failRemoveOperation(DomainVO domain, List<AccountVO> accountsForCleanup, List<Long> networkIds, boolean hasDedicatedResources) {
+        String msg = null;
+        if (!accountsForCleanup.isEmpty()) {
+            msg = accountsForCleanup.size() + " accounts to cleanup";
+        } else if (!networkIds.isEmpty()) {
+            msg = networkIds.size() + " non-removed networks";
+        } else if (hasDedicatedResources) {
+            msg = "dedicated resources.";
+        }
+
+        CloudRuntimeException e = new CloudRuntimeException("Can't delete the domain yet because it has " + msg);
+        e.addProxyObject(domain.getUuid(), "domainId");
+        throw e;
+    }
+
+    /**
+     * Publish pre-remove and remove domain events and remove domain
+     * @param domain domain to remove
+     * @throws CloudRuntimeException when domain cannot be removed
+     */
+    protected void publishRemoveEventsAndRemoveDomain(DomainVO domain) {
+        _messageBus.publish(_name, MESSAGE_PRE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domain);
+        if (!_domainDao.remove(domain.getId())) {
+            CloudRuntimeException e =
+                new CloudRuntimeException("Delete failed on domain " + domain.getName() + " (id: " + domain.getId() +
+                    "); Please make sure all users and sub domains have been removed from the domain before deleting");
+            e.addProxyObject(domain.getUuid(), "domainId");
+            throw e;
+        }
+        _messageBus.publish(_name, MESSAGE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domain);
+    }
+
+    protected void cleanupDomainOfferings(Long domainId) {
         // delete the service and disk offerings associated with this domain
         List<DiskOfferingVO> diskOfferingsForThisDomain = _diskOfferingDao.listByDomainId(domainId);
         for (DiskOfferingVO diskOffering : diskOfferingsForThisDomain) {
@@ -371,11 +446,11 @@
         }
     }
 
-    private boolean cleanupDomain(Long domainId, Long ownerId) throws ConcurrentOperationException, ResourceUnavailableException {
+    protected boolean cleanupDomain(Long domainId, Long ownerId) throws ConcurrentOperationException, ResourceUnavailableException {
         s_logger.debug("Cleaning up domain id=" + domainId);
         boolean success = true;
+        DomainVO domainHandle = _domainDao.findById(domainId);
         {
-            DomainVO domainHandle = _domainDao.findById(domainId);
             domainHandle.setState(Domain.State.Inactive);
             _domainDao.update(domainId, domainHandle);
 
@@ -409,7 +484,7 @@
         for (AccountVO account : accounts) {
             if (account.getType() != Account.ACCOUNT_TYPE_PROJECT) {
                 s_logger.debug("Deleting account " + account + " as a part of domain id=" + domainId + " cleanup");
-                boolean deleteAccount = _accountMgr.deleteAccount(account, CallContext.current().getCallingUserId(), CallContext.current().getCallingAccount());
+                boolean deleteAccount = _accountMgr.deleteAccount(account, CallContext.current().getCallingUserId(), getCaller());
                 if (!deleteAccount) {
                     s_logger.warn("Failed to cleanup account id=" + account.getId() + " as a part of domain cleanup");
                 }
@@ -417,7 +492,7 @@
             } else {
                 ProjectVO project = _projectDao.findByProjectAccountId(account.getId());
                 s_logger.debug("Deleting project " + project + " as a part of domain id=" + domainId + " cleanup");
-                boolean deleteProject = _projectMgr.deleteProject(CallContext.current().getCallingAccount(), CallContext.current().getCallingUserId(), project);
+                boolean deleteProject = _projectMgr.deleteProject(getCaller(), CallContext.current().getCallingUserId(), project);
                 if (!deleteProject) {
                     s_logger.warn("Failed to cleanup project " + project + " as a part of domain cleanup");
                 }
@@ -463,7 +538,9 @@
                 }
             }
             //delete domain
+            _messageBus.publish(_name, MESSAGE_PRE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domainHandle);
             deleteDomainSuccess = _domainDao.remove(domainId);
+            _messageBus.publish(_name, MESSAGE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domainHandle);
 
             // Delete resource count and resource limits entries set for this domain (if there are any).
             _resourceCountDao.removeEntriesByOwner(domainId, ResourceOwnerType.Domain);
@@ -478,7 +555,7 @@
 
     @Override
     public Pair<List<? extends Domain>, Integer> searchForDomains(ListDomainsCmd cmd) {
-        Account caller = CallContext.current().getCallingAccount();
+        Account caller = getCaller();
         Long domainId = cmd.getId();
         boolean listAll = cmd.listAll();
         boolean isRecursive = false;
@@ -550,7 +627,7 @@
         boolean listAll = cmd.listAll();
         String path = null;
 
-        Account caller = CallContext.current().getCallingAccount();
+        Account caller = getCaller();
         if (domainId != null) {
             _accountMgr.checkAccess(caller, getDomain(domainId));
         } else {
@@ -620,7 +697,7 @@
         }
 
         // check permissions
-        Account caller = CallContext.current().getCallingAccount();
+        Account caller = getCaller();
         _accountMgr.checkAccess(caller, domain);
 
         // domain name is unique in the cloud
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
old mode 100644
new mode 100755
index 3edde1d..3a47f38
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -102,6 +102,8 @@
 import com.cloud.agent.api.GetVmStatsAnswer;
 import com.cloud.agent.api.GetVmStatsCommand;
 import com.cloud.agent.api.PvlanSetupCommand;
+import com.cloud.agent.api.RestoreVMSnapshotAnswer;
+import com.cloud.agent.api.RestoreVMSnapshotCommand;
 import com.cloud.agent.api.StartAnswer;
 import com.cloud.agent.api.VmDiskStatsEntry;
 import com.cloud.agent.api.VmStatsEntry;
@@ -281,7 +283,6 @@
 import com.cloud.vm.dao.InstanceGroupVMMapDao;
 import com.cloud.vm.dao.NicDao;
 import com.cloud.vm.dao.SecondaryStorageVmDao;
-import com.cloud.vm.dao.UserVmCloneSettingDao;
 import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
@@ -296,10 +297,6 @@
 
     // seconds
 
-    public enum UserVmCloneType {
-        full, linked
-    }
-
     @Inject
     EntityManager _entityMgr;
     @Inject
@@ -319,8 +316,6 @@
     @Inject
     protected DomainDao _domainDao = null;
     @Inject
-    protected UserVmCloneSettingDao _vmCloneSettingDao = null;
-    @Inject
     protected UserVmDao _vmDao = null;
     @Inject
     protected UserVmJoinDao _vmJoinDao = null;
@@ -482,6 +477,7 @@
     protected IpAddressManager _ipAddrMgr;
 
     protected ScheduledExecutorService _executor = null;
+    protected ScheduledExecutorService _vmIpFetchExecutor = null;
     protected int _expungeInterval;
     protected int _expungeDelay;
     protected boolean _dailyOrHourly = false;
@@ -519,6 +515,12 @@
     static final ConfigKey<Integer> VmIpFetchThreadPoolMax = new ConfigKey<Integer>("Advanced", Integer.class, "externaldhcp.vmipFetch.threadPool.max", "10",
             "number of threads for fetching vms ip address", true);
 
+    static final ConfigKey<Integer> VmIpFetchTaskWorkers = new ConfigKey<Integer>("Advanced", Integer.class, "externaldhcp.vmipfetchtask.workers", "10",
+                        "number of worker threads for vm ip fetch task ", true);
+
+    static final ConfigKey<Boolean> AllowDeployVmIfGivenHostFails = new ConfigKey<Boolean>("Advanced", Boolean.class, "allow.deploy.vm.if.deploy.on.given.host.fails", "false",
+            "allow vm to deploy on different host if vm fails to deploy on the given host ", true);
+
 
     @Override
     public UserVmVO getVirtualMachine(long vmId) {
@@ -955,12 +957,6 @@
                     + "; make sure the virtual machine is stopped");
         }
 
-        // If target VM has associated VM snapshots then don't allow upgrading of VM
-        List<VMSnapshotVO> vmSnapshots = _vmSnapshotDao.findByVm(vmId);
-        if (vmSnapshots.size() > 0) {
-            throw new InvalidParameterValueException("Unable to change service offering for VM, please remove VM snapshots before changing service offering of VM");
-        }
-
         _accountMgr.checkAccess(caller, null, true, vmInstance);
 
         // Check resource limits for CPU and Memory.
@@ -1621,11 +1617,6 @@
         VMInstanceVO vmInstance = _vmInstanceDao.findById(vmId);
 
         if (vmInstance != null) {
-            // If target VM has associated VM snapshots then don't allow upgrading of VM
-            List<VMSnapshotVO> vmSnapshots = _vmSnapshotDao.findByVm(vmId);
-            if (vmSnapshots.size() > 0) {
-                throw new InvalidParameterValueException("Unable to scale VM, please remove VM snapshots before scaling VM");
-            }
             if (vmInstance.getState().equals(State.Stopped)) {
                 upgradeStoppedVirtualMachine(vmId, newServiceOfferingId, customParameters);
                 return true;
@@ -1660,7 +1651,7 @@
         // Check that the specified service offering ID is valid
         _itMgr.checkIfCanUpgrade(vmInstance, newServiceOffering);
 
-        ServiceOffering currentServiceOffering = _offeringDao.findByIdIncludingRemoved(vmInstance.getId(), vmInstance.getServiceOfferingId());
+        ServiceOfferingVO currentServiceOffering = _offeringDao.findByIdIncludingRemoved(vmInstance.getId(), vmInstance.getServiceOfferingId());
         int newCpu = newServiceOffering.getCpu();
         int newMemory = newServiceOffering.getRamSize();
         int newSpeed = newServiceOffering.getSpeed();
@@ -1677,6 +1668,19 @@
                     + ",memory=," + currentMemory + ")");
         }
 
+        _offeringDao.loadDetails(currentServiceOffering);
+        _offeringDao.loadDetails(newServiceOffering);
+
+        Map<String, String> currentDetails = currentServiceOffering.getDetails();
+        Map<String, String> newDetails = newServiceOffering.getDetails();
+        String currentVgpuType = currentDetails.get("vgpuType");
+        String newVgpuType = newDetails.get("vgpuType");
+        if(currentVgpuType != null) {
+            if(newVgpuType == null || !newVgpuType.equalsIgnoreCase(currentVgpuType)) {
+                throw new InvalidParameterValueException("Dynamic scaling of vGPU type is not supported. VM has vGPU Type: " + currentVgpuType);
+            }
+        }
+
         // Check resource limits
         if (newCpu > currentCpu) {
             _resourceLimitMgr.checkResourceLimit(caller, ResourceType.cpu, newCpu - currentCpu);
@@ -1882,54 +1886,54 @@
         }
 
         Transaction.execute(new TransactionCallbackWithExceptionNoReturn<ResourceAllocationException>() {
-            @Override
-            public void doInTransactionWithoutResult(TransactionStatus status) throws ResourceAllocationException {
+            @Override public void doInTransactionWithoutResult(TransactionStatus status) throws ResourceAllocationException {
 
                 Account account = _accountDao.lockRow(vm.getAccountId(), true);
 
-        // if the account is deleted, throw error
-        if (account.getRemoved() != null) {
+                // if the account is deleted, throw error
+                if (account.getRemoved() != null) {
                     throw new CloudRuntimeException("Unable to recover VM as the account is deleted");
-        }
+                }
 
-        // Get serviceOffering for Virtual Machine
+                // Get serviceOffering for Virtual Machine
                 ServiceOfferingVO serviceOffering = _serviceOfferingDao.findById(vm.getId(), vm.getServiceOfferingId());
 
-        // First check that the maximum number of UserVMs, CPU and Memory limit for the given
-        // accountId will not be exceeded
+                // First check that the maximum number of UserVMs, CPU and Memory limit for the given
+                // accountId will not be exceeded
                 resourceLimitCheck(account, vm.isDisplayVm(), new Long(serviceOffering.getCpu()), new Long(serviceOffering.getRamSize()));
 
-        _haMgr.cancelDestroy(vm, vm.getHostId());
+                _haMgr.cancelDestroy(vm, vm.getHostId());
 
-        try {
+                try {
                     if (!_itMgr.stateTransitTo(vm, VirtualMachine.Event.RecoveryRequested, null)) {
                         s_logger.debug("Unable to recover the vm because it is not in the correct state: " + vmId);
                         throw new InvalidParameterValueException("Unable to recover the vm because it is not in the correct state: " + vmId);
-            }
-        } catch (NoTransitionException e) {
+                    }
+                } catch (NoTransitionException e) {
                     throw new InvalidParameterValueException("Unable to recover the vm because it is not in the correct state: " + vmId);
-        }
+                }
 
-        // Recover the VM's disks
-        List<VolumeVO> volumes = _volsDao.findByInstance(vmId);
-        for (VolumeVO volume : volumes) {
-            if (volume.getVolumeType().equals(Volume.Type.ROOT)) {
-                // Create an event
-                Long templateId = volume.getTemplateId();
-                Long diskOfferingId = volume.getDiskOfferingId();
-                Long offeringId = null;
-                if (diskOfferingId != null) {
+                // Recover the VM's disks
+                List<VolumeVO> volumes = _volsDao.findByInstance(vmId);
+                for (VolumeVO volume : volumes) {
+                    if (volume.getVolumeType().equals(Volume.Type.ROOT)) {
+                        // Create an event
+                        Long templateId = volume.getTemplateId();
+                        Long diskOfferingId = volume.getDiskOfferingId();
+                        Long offeringId = null;
+                        if (diskOfferingId != null) {
                             DiskOfferingVO offering = _diskOfferingDao.findById(diskOfferingId);
                             if (offering != null && (offering.getType() == DiskOfferingVO.Type.Disk)) {
-                        offeringId = offering.getId();
+                                offeringId = offering.getId();
+                            }
+                        }
+                        UsageEventUtils
+                                .publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(), offeringId,
+                                        templateId, volume.getSize(), Volume.class.getName(), volume.getUuid(), volume.isDisplayVolume());
                     }
                 }
-                UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(),
-                        offeringId, templateId, volume.getSize(), Volume.class.getName(), volume.getUuid(), volume.isDisplayVolume());
-            }
-        }
 
-        //Update Resource Count for the given account
+                //Update Resource Count for the given account
                 resourceCountIncrement(account.getId(), vm.isDisplayVm(), new Long(serviceOffering.getCpu()), new Long(serviceOffering.getRamSize()));
             }
         });
@@ -1963,6 +1967,11 @@
 
         _executor = Executors.newScheduledThreadPool(wrks, new NamedThreadFactory("UserVm-Scavenger"));
 
+        String vmIpWorkers = configs.get(VmIpFetchTaskWorkers.value());
+        int vmipwrks = NumbersUtil.parseInt(vmIpWorkers, 10);
+
+        _vmIpFetchExecutor =   Executors.newScheduledThreadPool(vmipwrks, new NamedThreadFactory("UserVm-ipfetch"));
+
         String aggregationRange = configs.get("usage.stats.job.aggregation.range");
         int _usageAggregationRange  = NumbersUtil.parseInt(aggregationRange, 1440);
         int HOURLY_TIME = 60;
@@ -1982,7 +1991,9 @@
         String value = _configDao.getValue(Config.SetVmInternalNameUsingDisplayName.key());
         _instanceNameFlag = (value == null) ? false : Boolean.parseBoolean(value);
 
-       _scaleRetry = NumbersUtil.parseInt(configs.get(Config.ScaleRetry.key()), 2);
+        _scaleRetry = NumbersUtil.parseInt(configs.get(Config.ScaleRetry.key()), 2);
+
+        _vmIpFetchThreadExecutor = Executors.newFixedThreadPool(VmIpFetchThreadPoolMax.value(), new NamedThreadFactory("vmIpFetchThread"));
 
         s_logger.info("User VM Manager is configured.");
 
@@ -1997,7 +2008,7 @@
     @Override
     public boolean start() {
         _executor.scheduleWithFixedDelay(new ExpungeTask(), _expungeInterval, _expungeInterval, TimeUnit.SECONDS);
-        _executor.scheduleWithFixedDelay(new VmIpFetchTask(), VmIpFetchWaitInterval.value(), VmIpFetchWaitInterval.value(), TimeUnit.SECONDS);
+        _vmIpFetchExecutor.scheduleWithFixedDelay(new VmIpFetchTask(), VmIpFetchWaitInterval.value(), VmIpFetchWaitInterval.value(), TimeUnit.SECONDS);
         loadVmDetailsInMapForExternalDhcpIp();
         return true;
     }
@@ -2031,6 +2042,7 @@
     @Override
     public boolean stop() {
         _executor.shutdown();
+        _vmIpFetchExecutor.shutdown();
         return true;
     }
 
@@ -2314,6 +2326,7 @@
         Map<String,String> details = cmd.getDetails();
         Account caller = CallContext.current().getCallingAccount();
         List<Long> securityGroupIdList = getSecurityGroupIdList(cmd);
+        boolean cleanupDetails = cmd.isCleanupDetails();
 
         // Input validation and permission checks
         UserVmVO vmInstance = _vmDao.findById(id);
@@ -2352,14 +2365,11 @@
 
         }
 
-        if (details != null && !details.isEmpty()) {
-            _vmDao.loadDetails(vmInstance);
-
-            for(Map.Entry<String,String> entry : details.entrySet()) {
-                if(entry instanceof Map.Entry) {
-                    vmInstance.setDetail(entry.getKey(), entry.getValue());
-                }
-            }
+        if (cleanupDetails){
+            _vmDetailsDao.removeDetails(id);
+        }
+        else if (details != null && !details.isEmpty()) {
+            vmInstance.setDetails(details);
             _vmDao.saveDetails(vmInstance);
         }
 
@@ -2617,7 +2627,21 @@
             throw new InvalidParameterValueException("Unable to find service offering: " + serviceOfferingId + " corresponding to the vm");
         }
 
-        return rebootVirtualMachine(CallContext.current().getCallingUserId(), vmId);
+        UserVm userVm = rebootVirtualMachine(CallContext.current().getCallingUserId(), vmId);
+        if (userVm != null ) {
+            // update the vmIdCountMap if the vm is in advanced shared network with out services
+            final List<NicVO> nics = _nicDao.listByVmId(vmId);
+            for (NicVO nic : nics) {
+                Network network = _networkModel.getNetwork(nic.getNetworkId());
+                if (_networkModel.isSharedNetworkWithoutServices(network.getId())) {
+                    s_logger.debug("Adding vm " +vmId +" nic id "+ nic.getId() +" into vmIdCountMap as part of vm " +
+                            "reboot for vm ip fetch ");
+                    vmIdCountMap.put(nic.getId(), new VmAndCountDetails(nic.getInstanceId(), VmIpFetchTrialMax.value()));
+                }
+            }
+            return  userVm;
+        }
+        return  null;
     }
 
     @Override
@@ -2632,7 +2656,7 @@
             throw new PermissionDeniedException("Parameter " + ApiConstants.EXPUNGE + " can be passed by Admin only. Or when the allow.user.expunge.recover.vm key is set.");
         }
 
-        UserVm destroyedVm = destroyVm(vmId);
+        UserVm destroyedVm = destroyVm(vmId, expunge);
         if (expunge) {
             UserVmVO vm = _vmDao.findById(vmId);
             if (!expunge(vm, ctx.getCallingUserId(), ctx.getCallingAccount())) {
@@ -3529,27 +3553,17 @@
                     }
                     rootDiskSize = Long.parseLong(customParameters.get("rootdisksize"));
 
-                    // only KVM supports rootdisksize override
-                    if (hypervisorType != HypervisorType.KVM) {
-                        throw new InvalidParameterValueException("Hypervisor " + hypervisorType + " does not support rootdisksize override");
+                    // only KVM, XenServer and VMware  supports rootdisksize override
+                    if (!(hypervisorType == HypervisorType.KVM || hypervisorType == HypervisorType.XenServer || hypervisorType == HypervisorType.VMware)) {
+                        throw new InvalidParameterValueException("Hypervisor " + hypervisorType + " does not support  rootdisksize override");
                     }
 
-                    // rotdisksize must be larger than template
                     VMTemplateVO templateVO = _templateDao.findById(template.getId());
                     if (templateVO == null) {
                         throw new InvalidParameterValueException("Unable to look up template by id " + template.getId());
                     }
 
-                    if ((rootDiskSize << 30) < templateVO.getSize()) {
-                        Long templateVOSizeGB = templateVO.getSize() / 1024 / 1024 / 1024;
-                        throw new InvalidParameterValueException("unsupported: rootdisksize override is smaller than template size " + templateVO.getSize()
-                            + "B (" + templateVOSizeGB + "GB)");
-                    } else {
-                        s_logger.debug("rootdisksize of " + (rootDiskSize << 30) + " was larger than template size of " + templateVO.getSize());
-                    }
-
-                    s_logger.debug("found root disk size of " + rootDiskSize);
-                    customParameters.remove("rootdisksize");
+                    validateRootDiskResize(hypervisorType, rootDiskSize, templateVO, vm, customParameters);
                 }
 
                 if (isDisplayVm != null) {
@@ -3558,19 +3572,6 @@
                     vm.setDisplayVm(true);
                 }
 
-                // If hypervisor is vSphere, check for clone type setting.
-                if (hypervisorType.equals(HypervisorType.VMware)) {
-                    // retrieve clone flag.
-                    UserVmCloneType cloneType = UserVmCloneType.linked;
-                    String value = _configDao.getValue(Config.VmwareCreateFullClone.key());
-                    if (value != null) {
-                        if (Boolean.parseBoolean(value) == true)
-                            cloneType = UserVmCloneType.full;
-                    }
-                    UserVmCloneSettingVO vmCloneSettingVO = new UserVmCloneSettingVO(id, cloneType.toString());
-                    _vmCloneSettingDao.persist(vmCloneSettingVO);
-                }
-
                 long guestOSId = template.getGuestOSId();
                 GuestOSVO guestOS = _guestOSDao.findById(guestOSId);
                 long guestOSCategoryId = guestOS.getCategoryId();
@@ -3605,6 +3606,7 @@
                     //handle double byte strings.
                     vm.setDetail(key, Integer.toString(Integer.parseInt(customParameters.get(key))));
                 }
+                vm.setDetail("deployvm", "true");
                 _vmDao.saveDetails(vm);
 
                 s_logger.debug("Allocating in the DB for vm");
@@ -3645,6 +3647,29 @@
         });
     }
 
+    public void validateRootDiskResize(final HypervisorType hypervisorType, Long rootDiskSize, VMTemplateVO templateVO, UserVmVO vm, final Map<String, String> customParameters) throws InvalidParameterValueException
+    {
+        // rootdisksize must be larger than template.
+        if ((rootDiskSize << 30) < templateVO.getSize()) {
+            Long templateVOSizeGB = templateVO.getSize() / 1024 / 1024 / 1024;
+            s_logger.error("unsupported: rootdisksize override is smaller than template size " + templateVO.getSize() + "B (" + templateVOSizeGB + "GB)");
+            throw new InvalidParameterValueException("unsupported: rootdisksize override is smaller than template size " + templateVO.getSize() + "B (" + templateVOSizeGB + "GB)");
+        } else if ((rootDiskSize << 30) > templateVO.getSize()) {
+             if (hypervisorType == HypervisorType.VMware && (vm.getDetails() == null || vm.getDetails().get("rootDiskController") == null)) {
+                s_logger.warn("If Root disk controller parameter is not overridden, then Root disk resize may fail because current Root disk controller value is NULL.");
+             } else if (hypervisorType == HypervisorType.VMware && !vm.getDetails().get("rootDiskController").toLowerCase().contains("scsi")) {
+                s_logger.error("Found unsupported root disk controller : " + vm.getDetails().get("rootDiskController"));
+                throw new InvalidParameterValueException("Found unsupported root disk controller :" + vm.getDetails().get("rootDiskController"));
+             } else {
+                s_logger.debug("Rootdisksize override validation successful. Template root disk size "+(templateVO.getSize() / 1024 / 1024 / 1024)+ " GB" + " Root disk size specified "+ rootDiskSize+" GB");
+             }
+        } else {
+            s_logger.debug("Root disk size specified is " + (rootDiskSize << 30) + " and Template root disk size is " + templateVO.getSize()+" . Both are equal so no need to override");
+            customParameters.remove("rootdisksize");
+        }
+    }
+
+
     @Override
     public void generateUsageEvent(VirtualMachine vm, boolean isDisplay, String eventType){
         ServiceOfferingVO serviceOffering = _offeringDao.findById(vm.getId(), vm.getServiceOfferingId());
@@ -3824,16 +3849,22 @@
             }
         }
 
+        finalizeCommandsOnStart(cmds, profile);
         return true;
     }
 
     @Override
     public boolean finalizeCommandsOnStart(Commands cmds, VirtualMachineProfile profile) {
+        UserVmVO vm = _vmDao.findById(profile.getId());
+        List<VMSnapshotVO> vmSnapshots = _vmSnapshotDao.findByVm(vm.getId());
+        RestoreVMSnapshotCommand command = _vmSnapshotMgr.createRestoreCommand(vm, vmSnapshots);
+        if (command != null)
+            cmds.addCommand("restoreVMSnapshot", command);
         return true;
     }
 
     @Override
-    public boolean finalizeStart(VirtualMachineProfile profile, long hostId, Commands cmds, ReservationContext context) {
+    public boolean  finalizeStart(VirtualMachineProfile profile, long hostId, Commands cmds, ReservationContext context) {
         UserVmVO vm = _vmDao.findById(profile.getId());
 
         Answer[] answersToCmds = cmds.getAnswers();
@@ -3913,6 +3944,29 @@
             return false;
         }
 
+        Answer answer = cmds.getAnswer("restoreVMSnapshot");
+        if (answer != null && answer instanceof RestoreVMSnapshotAnswer) {
+            RestoreVMSnapshotAnswer restoreVMSnapshotAnswer = (RestoreVMSnapshotAnswer) answer;
+            if (restoreVMSnapshotAnswer == null || !restoreVMSnapshotAnswer.getResult()) {
+                s_logger.warn("Unable to restore the vm snapshot from image file to the VM: " + restoreVMSnapshotAnswer.getDetails());
+            }
+        }
+
+        final VirtualMachineProfile vmProfile = profile;
+        Transaction.execute(new TransactionCallbackNoReturn() {
+            @Override
+            public void doInTransactionWithoutResult(TransactionStatus status) {
+                final UserVmVO vm = _vmDao.findById(vmProfile.getId());
+                final List<NicVO> nics = _nicDao.listByVmId(vm.getId());
+                for (NicVO nic : nics) {
+                    Network network = _networkModel.getNetwork(nic.getNetworkId());
+                    if (_networkModel.isSharedNetworkWithoutServices(network.getId())) {
+                        vmIdCountMap.put(nic.getId(), new VmAndCountDetails(nic.getInstanceId(), VmIpFetchTrialMax.value()));
+                    }
+                }
+            }
+        });
+
         return true;
     }
 
@@ -4048,9 +4102,13 @@
         }
 
         DataCenterDeployment plan = null;
+        boolean deployOnGivenHost = false;
         if (destinationHost != null) {
             s_logger.debug("Destination Host to deploy the VM is specified, specifying a deployment plan to deploy the VM");
             plan = new DataCenterDeployment(vm.getDataCenterId(), destinationHost.getPodId(), destinationHost.getClusterId(), destinationHost.getId(), null, null);
+            if (!AllowDeployVmIfGivenHostFails.value()) {
+                deployOnGivenHost = true;
+            }
         }
 
         // Set parameters
@@ -4098,7 +4156,7 @@
         }
 
         String reservationId = vmEntity.reserve(planner, plan, new ExcludeList(), Long.toString(callerUser.getId()));
-        vmEntity.deploy(reservationId, Long.toString(callerUser.getId()), params);
+        vmEntity.deploy(reservationId, Long.toString(callerUser.getId()), params, deployOnGivenHost);
 
         Pair<UserVmVO, Map<VirtualMachineProfile.Param, Object>> vmParamPair = new Pair(vm, params);
         if (vm != null && vm.isUpdateParameters()) {
@@ -4118,7 +4176,7 @@
     }
 
     @Override
-    public UserVm destroyVm(long vmId) throws ResourceUnavailableException, ConcurrentOperationException {
+    public UserVm destroyVm(long vmId, boolean expunge) throws ResourceUnavailableException, ConcurrentOperationException {
         // Account caller = CallContext.current().getCallingAccount();
         // Long userId = CallContext.current().getCallingUserId();
         Long userId = 2L;
@@ -4140,7 +4198,7 @@
 
         try {
             VirtualMachineEntity vmEntity = _orchSrvc.getVirtualMachine(vm.getUuid());
-            status = vmEntity.destroy(Long.toString(userId));
+            status = vmEntity.destroy(Long.toString(userId), expunge);
         } catch (CloudException e) {
             CloudRuntimeException ex = new CloudRuntimeException("Unable to destroy with specified vmId", e);
             ex.addProxyObject(vm.getUuid(), "vmId");
@@ -4322,6 +4380,8 @@
             throw new PermissionDeniedException("Expunging a vm can only be done by an Admin. Or when the allow.user.expunge.recover.vm key is set.");
         }
 
+        _vmSnapshotMgr.deleteVMSnapshotsFromDB(vmId);
+
         boolean status;
 
         status = expunge(vm, userId, caller);
@@ -5072,14 +5132,8 @@
         if (oldAccount == null) {
             throw new InvalidParameterValueException("Invalid account for VM " + vm.getAccountId() + " in domain.");
         }
-        // don't allow to move the vm from the project
-        if (oldAccount.getType() == Account.ACCOUNT_TYPE_PROJECT) {
-            InvalidParameterValueException ex = new InvalidParameterValueException("Specified Vm id belongs to the project and can't be moved");
-            ex.addProxyObject(vm.getUuid(), "vmId");
-            throw ex;
-        }
-        final Account newAccount = _accountService.getActiveAccountByName(cmd.getAccountName(), cmd.getDomainId());
-        if (newAccount == null || newAccount.getType() == Account.ACCOUNT_TYPE_PROJECT) {
+        final Account newAccount = _accountMgr.finalizeOwner(caller, cmd.getAccountName(), cmd.getDomainId(), cmd.getProjectId());
+        if (newAccount == null) {
             throw new InvalidParameterValueException("Invalid accountid=" + cmd.getAccountName() + " in domain " + cmd.getDomainId());
         }
 
@@ -5270,17 +5324,155 @@
 
             s_logger.debug("AssignVM: Basic zone, adding security groups no " + securityGroupIdList.size() + " to " + vm.getInstanceName());
         } else {
-            if (zone.isSecurityGroupEnabled())  {
-                throw new InvalidParameterValueException("Not yet implemented for SecurityGroupEnabled advanced networks.");
-            } else {
-                if (securityGroupIdList != null && !securityGroupIdList.isEmpty()) {
-                    throw new InvalidParameterValueException("Can't move vm with security groups; security group feature is not enabled in this zone");
+            if (zone.isSecurityGroupEnabled())  { // advanced zone with security groups
+                // cleanup the old security groups
+                _securityGroupMgr.removeInstanceFromGroups(cmd.getVmId());
+
+                Set<NetworkVO> applicableNetworks = new HashSet<NetworkVO>();
+                String requestedIPv4ForDefaultNic = null;
+                String requestedIPv6ForDefaultNic = null;
+                // if networkIdList is null and the first network of vm is shared network, then keep it if possible
+                if (networkIdList == null || networkIdList.isEmpty()) {
+                    NicVO defaultNicOld = _nicDao.findDefaultNicForVM(vm.getId());
+                    if (defaultNicOld != null) {
+                        NetworkVO defaultNetworkOld = _networkDao.findById(defaultNicOld.getNetworkId());
+                        if (defaultNetworkOld != null && defaultNetworkOld.getGuestType() == Network.GuestType.Shared && defaultNetworkOld.getAclType() == ACLType.Domain) {
+                            try {
+                                _networkModel.checkNetworkPermissions(newAccount, defaultNetworkOld);
+                                applicableNetworks.add(defaultNetworkOld);
+                                requestedIPv4ForDefaultNic = defaultNicOld.getIPv4Address();
+                                requestedIPv6ForDefaultNic = defaultNicOld.getIPv6Address();
+                                s_logger.debug("AssignVM: use old shared network " + defaultNetworkOld.getName() + " with old ip " + requestedIPv4ForDefaultNic + " on default nic of vm:" + vm.getInstanceName());
+                            } catch (PermissionDeniedException e) {
+                                s_logger.debug("AssignVM: the shared network on old default nic can not be applied to new account");
+                            }
+                        }
+                    }
                 }
                 // cleanup the network for the oldOwner
                 _networkMgr.cleanupNics(vmOldProfile);
                 _networkMgr.expungeNics(vmOldProfile);
 
+                if (networkIdList != null && !networkIdList.isEmpty()) {
+                    // add any additional networks
+                    for (Long networkId : networkIdList) {
+                        NetworkVO network = _networkDao.findById(networkId);
+                        if (network == null) {
+                            InvalidParameterValueException ex = new InvalidParameterValueException(
+                                    "Unable to find specified network id");
+                            ex.addProxyObject(networkId.toString(), "networkId");
+                            throw ex;
+                        }
+
+                        _networkModel.checkNetworkPermissions(newAccount, network);
+
+                        // don't allow to use system networks
+                        NetworkOffering networkOffering = _entityMgr.findById(NetworkOffering.class, network.getNetworkOfferingId());
+                        if (networkOffering.isSystemOnly()) {
+                            InvalidParameterValueException ex = new InvalidParameterValueException(
+                                    "Specified Network id is system only and can't be used for vm deployment");
+                            ex.addProxyObject(network.getUuid(), "networkId");
+                            throw ex;
+                        }
+                        applicableNetworks.add(network);
+                    }
+                }
+
+                // add the new nics
+                LinkedHashMap<Network, List<? extends NicProfile>> networks = new LinkedHashMap<Network, List<? extends NicProfile>>();
+                int toggle = 0;
+                NetworkVO defaultNetwork = null;
+                for (NetworkVO appNet : applicableNetworks) {
+                    NicProfile defaultNic = new NicProfile();
+                    if (toggle == 0) {
+                        defaultNic.setDefaultNic(true);
+                        defaultNic.setRequestedIPv4(requestedIPv4ForDefaultNic);
+                        defaultNic.setRequestedIPv6(requestedIPv6ForDefaultNic);
+                        defaultNetwork = appNet;
+                        toggle++;
+                    }
+                    networks.put(appNet, new ArrayList<NicProfile>(Arrays.asList(defaultNic)));
+
+                }
+
+                boolean isVmWare = (template.getHypervisorType() == HypervisorType.VMware);
+                if (securityGroupIdList != null && isVmWare) {
+                    throw new InvalidParameterValueException("Security group feature is not supported for vmWare hypervisor");
+                } else if (!isVmWare && (defaultNetwork == null || _networkModel.isSecurityGroupSupportedInNetwork(defaultNetwork)) && _networkModel.canAddDefaultSecurityGroup()) {
+                    if (securityGroupIdList == null) {
+                        securityGroupIdList = new ArrayList<Long>();
+                    }
+                    SecurityGroup defaultGroup = _securityGroupMgr
+                            .getDefaultSecurityGroup(newAccount.getId());
+                    if (defaultGroup != null) {
+                        // check if security group id list already contains Default
+                        // security group, and if not - add it
+                        boolean defaultGroupPresent = false;
+                        for (Long securityGroupId : securityGroupIdList) {
+                            if (securityGroupId.longValue() == defaultGroup.getId()) {
+                                defaultGroupPresent = true;
+                                break;
+                            }
+                        }
+
+                        if (!defaultGroupPresent) {
+                            securityGroupIdList.add(defaultGroup.getId());
+                        }
+
+                    } else {
+                        // create default security group for the account
+                        if (s_logger.isDebugEnabled()) {
+                            s_logger.debug("Couldn't find default security group for the account "
+                                    + newAccount + " so creating a new one");
+                        }
+                        defaultGroup = _securityGroupMgr.createSecurityGroup(
+                                SecurityGroupManager.DEFAULT_GROUP_NAME,
+                                SecurityGroupManager.DEFAULT_GROUP_DESCRIPTION,
+                                newAccount.getDomainId(), newAccount.getId(),
+                                newAccount.getAccountName());
+                        securityGroupIdList.add(defaultGroup.getId());
+                    }
+                }
+
+                VirtualMachine vmi = _itMgr.findById(vm.getId());
+                VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(vmi);
+
+                if (applicableNetworks.isEmpty()) {
+                    throw new InvalidParameterValueException("No network is specified, please specify one when you move the vm. For now, please add a network to VM on NICs tab.");
+                } else {
+                    _networkMgr.allocate(vmProfile, networks);
+                }
+
+                _securityGroupMgr.addInstanceToGroups(vm.getId(),
+                        securityGroupIdList);
+                s_logger.debug("AssignVM: Advanced zone, adding security groups no "
+                        + securityGroupIdList.size() + " to "
+                        + vm.getInstanceName());
+
+            } else {
+                if (securityGroupIdList != null && !securityGroupIdList.isEmpty()) {
+                    throw new InvalidParameterValueException("Can't move vm with security groups; security group feature is not enabled in this zone");
+                }
                 Set<NetworkVO> applicableNetworks = new HashSet<NetworkVO>();
+                // if networkIdList is null and the first network of vm is shared network, then keep it if possible
+                if (networkIdList == null || networkIdList.isEmpty()) {
+                    NicVO defaultNicOld = _nicDao.findDefaultNicForVM(vm.getId());
+                    if (defaultNicOld != null) {
+                        NetworkVO defaultNetworkOld = _networkDao.findById(defaultNicOld.getNetworkId());
+                        if (defaultNetworkOld != null && defaultNetworkOld.getGuestType() == Network.GuestType.Shared && defaultNetworkOld.getAclType() == ACLType.Domain) {
+                            try {
+                                _networkModel.checkNetworkPermissions(newAccount, defaultNetworkOld);
+                                applicableNetworks.add(defaultNetworkOld);
+                            } catch (PermissionDeniedException e) {
+                                s_logger.debug("AssignVM: the shared network on old default nic can not be applied to new account");
+                            }
+                        }
+                    }
+                }
+
+                // cleanup the network for the oldOwner
+                _networkMgr.cleanupNics(vmOldProfile);
+                _networkMgr.expungeNics(vmOldProfile);
 
                 if (networkIdList != null && !networkIdList.isEmpty()) {
                     // add any additional networks
@@ -5303,7 +5495,7 @@
                         }
                         applicableNetworks.add(network);
                     }
-                } else {
+                } else if (applicableNetworks.isEmpty()) {
                     NetworkVO defaultNetwork = null;
                     List<NetworkOfferingVO> requiredOfferings = _networkOfferingDao.listByAvailability(Availability.Required, false);
                     if (requiredOfferings.size() < 1) {
@@ -5380,7 +5572,7 @@
                 s_logger.debug("AssignVM: Advance virtual, adding networks no " + networks.size() + " to " + vm.getInstanceName());
             } // END IF NON SEC GRP ENABLED
         } // END IF ADVANCED
-        s_logger.info("AssignVM: vm " + vm.getInstanceName() + " now belongs to account " + cmd.getAccountName());
+        s_logger.info("AssignVM: vm " + vm.getInstanceName() + " now belongs to account " + newAccount.getAccountName());
         return vm;
     }
 
@@ -5718,7 +5910,8 @@
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {EnableDynamicallyScaleVm, AllowUserExpungeRecoverVm, VmIpFetchWaitInterval, VmIpFetchTrialMax, VmIpFetchThreadPoolMax};
+        return new ConfigKey<?>[] {EnableDynamicallyScaleVm, AllowUserExpungeRecoverVm, VmIpFetchWaitInterval, VmIpFetchTrialMax, VmIpFetchThreadPoolMax,
+                VmIpFetchTaskWorkers, AllowDeployVmIfGivenHostFails};
     }
 
     @Override
diff --git a/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java b/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
index 5e6ec1c..e4ee451 100644
--- a/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
+++ b/server/src/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java
@@ -33,6 +33,8 @@
 import org.apache.cloudstack.engine.subsystem.api.storage.StorageStrategyFactory;
 import org.apache.cloudstack.engine.subsystem.api.storage.VMSnapshotOptions;
 import org.apache.cloudstack.engine.subsystem.api.storage.VMSnapshotStrategy;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.framework.jobs.AsyncJob;
@@ -44,23 +46,32 @@
 import org.apache.cloudstack.framework.jobs.impl.OutcomeImpl;
 import org.apache.cloudstack.framework.jobs.impl.VmWorkJobVO;
 import org.apache.cloudstack.jobs.JobInfo;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
 import org.apache.cloudstack.utils.identity.ManagementServerNode;
 
+import com.cloud.agent.api.RestoreVMSnapshotCommand;
+import com.cloud.agent.api.VMSnapshotTO;
 import com.cloud.api.query.MutualExclusiveIdsManagerBase;
 import com.cloud.event.ActionEvent;
 import com.cloud.event.EventTypes;
 import com.cloud.exception.ConcurrentOperationException;
 import com.cloud.exception.InsufficientCapacityException;
 import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.ManagementServerException;
 import com.cloud.exception.ResourceAllocationException;
 import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.exception.VirtualMachineMigrationException;
 import com.cloud.gpu.GPU;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.hypervisor.dao.HypervisorCapabilitiesDao;
 import com.cloud.projects.Project.ListProjectResourcesCriteria;
+import com.cloud.service.ServiceOfferingVO;
+import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.service.dao.ServiceOfferingDetailsDao;
+import com.cloud.storage.GuestOSVO;
 import com.cloud.storage.Snapshot;
 import com.cloud.storage.SnapshotVO;
+import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.Volume;
 import com.cloud.storage.Volume.Type;
 import com.cloud.storage.VolumeVO;
@@ -82,7 +93,13 @@
 import com.cloud.utils.db.Filter;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.Transaction;
+import com.cloud.utils.db.TransactionCallbackWithException;
+import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
+import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.vm.UserVmDetailVO;
+import com.cloud.vm.UserVmManager;
 import com.cloud.vm.UserVmVO;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
@@ -95,8 +112,10 @@
 import com.cloud.vm.VmWorkJobHandlerProxy;
 import com.cloud.vm.VmWorkSerializer;
 import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
+import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
 
 @Component
 public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase implements VMSnapshotManager, VMSnapshotService, VmWorkJobHandler {
@@ -119,7 +138,8 @@
     @Inject HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
     @Inject
     StorageStrategyFactory storageStrategyFactory;
-
+    @Inject
+    VolumeDataFactory volumeDataFactory;
     @Inject
     EntityManager _entityMgr;
     @Inject
@@ -127,6 +147,14 @@
 
     @Inject
     VmWorkJobDao _workJobDao;
+    @Inject
+    protected UserVmManager _userVmManager;
+    @Inject
+    protected ServiceOfferingDao _serviceOfferingDao;
+    @Inject
+    protected UserVmDetailsDao _userVmDetailsDao;
+    @Inject
+    protected VMSnapshotDetailsDao _vmSnapshotDetailsDao;
 
     VmWorkJobHandlerProxy _jobHandlerProxy = new VmWorkJobHandlerProxy(this);
 
@@ -293,8 +321,8 @@
             throw new InvalidParameterValueException("Creating vm snapshot failed due to VM:" + vmId + " is not in the running or Stopped state");
         }
 
-        if(snapshotMemory && userVmVo.getState() == VirtualMachine.State.Stopped){
-            throw new InvalidParameterValueException("Can not snapshot memory when VM is in stopped state");
+        if(snapshotMemory && userVmVo.getState() != VirtualMachine.State.Running){
+            throw new InvalidParameterValueException("Can not snapshot memory when VM is not in Running state");
         }
 
         // for KVM, only allow snapshot with memory when VM is in running state
@@ -318,6 +346,9 @@
             if (activeSnapshots.size() > 0) {
                 throw new CloudRuntimeException("There is other active volume snapshot tasks on the instance to which the volume is attached, please try again later.");
             }
+            if (userVmVo.getHypervisorType() == HypervisorType.KVM && volume.getFormat() != ImageFormat.QCOW2) {
+                throw new CloudRuntimeException("We only support create vm snapshots from vm with QCOW2 image");
+            }
         }
 
         // check if there are other active VM snapshot tasks
@@ -330,14 +361,7 @@
             vmSnapshotType = VMSnapshot.Type.DiskAndMemory;
 
         try {
-            VMSnapshotVO vmSnapshotVo =
-                new VMSnapshotVO(userVmVo.getAccountId(), userVmVo.getDomainId(), vmId, vsDescription, vmSnapshotName, vsDisplayName, userVmVo.getServiceOfferingId(),
-                    vmSnapshotType, null);
-            VMSnapshot vmSnapshot = _vmSnapshotDao.persist(vmSnapshotVo);
-            if (vmSnapshot == null) {
-                throw new CloudRuntimeException("Failed to create snapshot for vm: " + vmId);
-            }
-            return vmSnapshot;
+            return createAndPersistVMSnapshot(userVmVo, vsDescription, vmSnapshotName, vsDisplayName, vmSnapshotType);
         } catch (Exception e) {
             String msg = e.getMessage();
             s_logger.error("Create vm snapshot record failed for vm: " + vmId + " due to: " + msg);
@@ -345,6 +369,57 @@
         return null;
     }
 
+    /**
+     * Create, persist and return vm snapshot for userVmVo with given parameters.
+     * Persistence and support for custom service offerings are done on the same transaction
+     * @param userVmVo user vm
+     * @param vmId vm id
+     * @param vsDescription vm description
+     * @param vmSnapshotName vm snapshot name
+     * @param vsDisplayName vm snapshot display name
+     * @param vmSnapshotType vm snapshot type
+     * @return vm snapshot
+     * @throws CloudRuntimeException if vm snapshot couldn't be persisted
+     */
+    protected VMSnapshot createAndPersistVMSnapshot(UserVmVO userVmVo, String vsDescription, String vmSnapshotName, String vsDisplayName, VMSnapshot.Type vmSnapshotType) {
+        final Long vmId = userVmVo.getId();
+        final Long serviceOfferingId = userVmVo.getServiceOfferingId();
+        final VMSnapshotVO vmSnapshotVo =
+                new VMSnapshotVO(userVmVo.getAccountId(), userVmVo.getDomainId(), vmId, vsDescription, vmSnapshotName, vsDisplayName, serviceOfferingId,
+                        vmSnapshotType, null);
+        return Transaction.execute(new TransactionCallbackWithException<VMSnapshot, CloudRuntimeException>() {
+            @Override
+            public VMSnapshot doInTransaction(TransactionStatus status) {
+                VMSnapshot vmSnapshot = _vmSnapshotDao.persist(vmSnapshotVo);
+                if (vmSnapshot == null) {
+                    throw new CloudRuntimeException("Failed to create snapshot for vm: " + vmId);
+                }
+                addSupportForCustomServiceOffering(vmId, serviceOfferingId, vmSnapshot.getId());
+                return vmSnapshot;
+            }
+        });
+    }
+
+    /**
+     * Add entries on vm_snapshot_details if service offering is dynamic. This will allow setting details when revert to vm snapshot
+     * @param vmId vm id
+     * @param serviceOfferingId service offering id
+     * @param vmSnapshotId vm snapshot id
+     */
+    protected void addSupportForCustomServiceOffering(long vmId, long serviceOfferingId, long vmSnapshotId) {
+        ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(serviceOfferingId);
+        if (serviceOfferingVO.isDynamic()) {
+            List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(vmId);
+            List<VMSnapshotDetailsVO> vmSnapshotDetails = new ArrayList<VMSnapshotDetailsVO>();
+            for (UserVmDetailVO detail : vmDetails) {
+                if(detail.getName().equalsIgnoreCase("cpuNumber") || detail.getName().equalsIgnoreCase("cpuSpeed") || detail.getName().equalsIgnoreCase("memory")) {
+                    vmSnapshotDetails.add(new VMSnapshotDetailsVO(vmSnapshotId, detail.getName(), detail.getValue(), detail.isDisplay()));
+                }
+            }
+            _vmSnapshotDetailsDao.saveDetails(vmSnapshotDetails);
+        }
+    }
+
     @Override
     public String getName() {
         return _name;
@@ -362,7 +437,7 @@
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_VM_SNAPSHOT_CREATE, eventDescription = "creating VM snapshot", async = true)
-    public VMSnapshot creatVMSnapshot(Long vmId, Long vmSnapshotId, Boolean quiescevm) {
+    public VMSnapshot createVMSnapshot(Long vmId, Long vmSnapshotId, Boolean quiescevm) {
         UserVmVO userVm = _userVMDao.findById(vmId);
         if (userVm == null) {
             throw new InvalidParameterValueException("Create vm to snapshot failed due to vm: " + vmId + " is not found");
@@ -638,16 +713,76 @@
         }
     }
 
+    /**
+     * If snapshot was taken with a different service offering than actual used in vm, should change it back to it
+     * @param userVm vm to change service offering (if necessary)
+     * @param vmSnapshotVo vm snapshot
+     */
+    protected void updateUserVmServiceOffering(UserVm userVm, VMSnapshotVO vmSnapshotVo) {
+        if (vmSnapshotVo.getServiceOfferingId() != userVm.getServiceOfferingId()) {
+            changeUserVmServiceOffering(userVm, vmSnapshotVo);
+        }
+    }
+
+    /**
+     * Get user vm details as a map
+     * @param userVm user vm
+     * @return map
+     */
+    protected Map<String, String> getVmMapDetails(UserVm userVm) {
+        List<UserVmDetailVO> userVmDetails = _userVmDetailsDao.listDetails(userVm.getId());
+        Map<String, String> details = new HashMap<String, String>();
+        for (UserVmDetailVO detail : userVmDetails) {
+            details.put(detail.getName(), detail.getValue());
+        }
+        return details;
+    }
+
+    /**
+     * Update service offering on {@link userVm} to the one specified in {@link vmSnapshotVo}
+     * @param userVm user vm to be updated
+     * @param vmSnapshotVo vm snapshot
+     */
+    protected void changeUserVmServiceOffering(UserVm userVm, VMSnapshotVO vmSnapshotVo) {
+        Map<String, String> vmDetails = getVmMapDetails(userVm);
+        boolean result = upgradeUserVmServiceOffering(userVm.getId(), vmSnapshotVo.getServiceOfferingId(), vmDetails);
+        if (! result){
+            throw new CloudRuntimeException("VM Snapshot reverting failed due to vm service offering couldn't be changed to the one used when snapshot was taken");
+        }
+        s_logger.debug("Successfully changed service offering to " + vmSnapshotVo.getServiceOfferingId() + " for vm " + userVm.getId());
+    }
+
+    /**
+     * Upgrade virtual machine {@linkplain vmId} to new service offering {@linkplain serviceOfferingId}
+     * @param vmId vm id
+     * @param serviceOfferingId service offering id
+     * @param details vm details
+     * @return if operation was successful
+     */
+    protected boolean upgradeUserVmServiceOffering(Long vmId, Long serviceOfferingId, Map<String, String> details) {
+        boolean result;
+        try {
+            result = _userVmManager.upgradeVirtualMachine(vmId, serviceOfferingId, details);
+            if (! result){
+                s_logger.error("Couldn't change service offering for vm " + vmId + " to " + serviceOfferingId);
+            }
+            return result;
+        } catch (ConcurrentOperationException | ResourceUnavailableException | ManagementServerException | VirtualMachineMigrationException e) {
+            s_logger.error("Couldn't change service offering for vm " + vmId + " to " + serviceOfferingId + " due to: " + e.getMessage());
+            return false;
+        }
+    }
+
     private UserVm orchestrateRevertToVMSnapshot(Long vmSnapshotId) throws InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException {
 
         // check if VM snapshot exists in DB
-        VMSnapshotVO vmSnapshotVo = _vmSnapshotDao.findById(vmSnapshotId);
+        final VMSnapshotVO vmSnapshotVo = _vmSnapshotDao.findById(vmSnapshotId);
         if (vmSnapshotVo == null) {
             throw new InvalidParameterValueException(
                     "unable to find the vm snapshot with id " + vmSnapshotId);
         }
         Long vmId = vmSnapshotVo.getVmId();
-        UserVmVO userVm = _userVMDao.findById(vmId);
+        final UserVmVO userVm = _userVMDao.findById(vmId);
         // check if VM exists
         if (userVm == null) {
             throw new InvalidParameterValueException("Revert vm to snapshot: "
@@ -705,6 +840,13 @@
         try {
             VMSnapshotStrategy strategy = findVMSnapshotStrategy(vmSnapshotVo);
             strategy.revertVMSnapshot(vmSnapshotVo);
+            Transaction.execute(new TransactionCallbackWithExceptionNoReturn<CloudRuntimeException>() {
+                @Override
+                public void doInTransactionWithoutResult(TransactionStatus status) throws CloudRuntimeException {
+                    revertUserVmDetailsFromVmSnapshot(userVm, vmSnapshotVo);
+                    updateUserVmServiceOffering(userVm, vmSnapshotVo);
+                }
+            });
             return userVm;
         } catch (Exception e) {
             s_logger.debug("Failed to revert vmsnapshot: " + vmSnapshotId, e);
@@ -712,6 +854,57 @@
         }
     }
 
+    /**
+     * Update or add user vm details from vm snapshot for vms with custom service offerings
+     * @param userVm user vm
+     * @param vmSnapshotVo vm snapshot
+     */
+    protected void revertUserVmDetailsFromVmSnapshot(UserVmVO userVm, VMSnapshotVO vmSnapshotVo) {
+        ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId());
+        if (serviceOfferingVO.isDynamic()) {
+            List<VMSnapshotDetailsVO> vmSnapshotDetails = _vmSnapshotDetailsDao.listDetails(vmSnapshotVo.getId());
+            List<UserVmDetailVO> userVmDetails = new ArrayList<UserVmDetailVO>();
+            for (VMSnapshotDetailsVO detail : vmSnapshotDetails) {
+                userVmDetails.add(new UserVmDetailVO(userVm.getId(), detail.getName(), detail.getValue(), detail.isDisplay()));
+            }
+            _userVmDetailsDao.saveDetails(userVmDetails);
+        }
+    }
+
+    @Override
+    public RestoreVMSnapshotCommand createRestoreCommand(UserVmVO userVm, List<VMSnapshotVO> vmSnapshotVOs) {
+        if (!HypervisorType.KVM.equals(userVm.getHypervisorType()))
+            return null;
+
+        List<VMSnapshotTO> snapshots = new ArrayList<VMSnapshotTO>();
+        Map<Long, VMSnapshotTO> snapshotAndParents = new HashMap<Long, VMSnapshotTO>();
+        for (VMSnapshotVO vmSnapshotVO: vmSnapshotVOs) {
+            if (vmSnapshotVO.getType() == VMSnapshot.Type.DiskAndMemory) {
+                VMSnapshotVO snapshot = _vmSnapshotDao.findById(vmSnapshotVO.getId());
+                VMSnapshotTO parent = getSnapshotWithParents(snapshot).getParent();
+                VMSnapshotOptions options = snapshot.getOptions();
+                boolean quiescevm = true;
+                if (options != null)
+                    quiescevm = options.needQuiesceVM();
+                VMSnapshotTO vmSnapshotTO = new VMSnapshotTO(snapshot.getId(), snapshot.getName(), snapshot.getType(),
+                        snapshot.getCreated().getTime(), snapshot.getDescription(), snapshot.getCurrent(), parent, quiescevm);
+                snapshots.add(vmSnapshotTO);
+                snapshotAndParents.put(vmSnapshotVO.getId(), parent);
+            }
+        }
+        if (snapshotAndParents.isEmpty())
+            return null;
+
+        // prepare RestoreVMSnapshotCommand
+        String vmInstanceName = userVm.getInstanceName();
+        List<VolumeObjectTO> volumeTOs = getVolumeTOList(userVm.getId());
+        GuestOSVO guestOS = _guestOSDao.findById(userVm.getGuestOSId());
+        RestoreVMSnapshotCommand restoreSnapshotCommand = new RestoreVMSnapshotCommand(vmInstanceName, null, volumeTOs, guestOS.getDisplayName());
+        restoreSnapshotCommand.setSnapshots(snapshots);
+        restoreSnapshotCommand.setSnapshotAndParents(snapshotAndParents);
+        return restoreSnapshotCommand;
+    }
+
     @Override
     public VMSnapshot getVMSnapshotById(Long id) {
         VMSnapshotVO vmSnapshot = _vmSnapshotDao.findById(id);
@@ -1045,4 +1238,63 @@
 
         return workJob;
     }
+
+    private List<VolumeObjectTO> getVolumeTOList(Long vmId) {
+        List<VolumeObjectTO> volumeTOs = new ArrayList<VolumeObjectTO>();
+        List<VolumeVO> volumeVos = _volumeDao.findByInstance(vmId);
+        VolumeInfo volumeInfo = null;
+        for (VolumeVO volume : volumeVos) {
+            volumeInfo = volumeDataFactory.getVolume(volume.getId());
+
+            volumeTOs.add((VolumeObjectTO)volumeInfo.getTO());
+        }
+        return volumeTOs;
+    }
+
+    private VMSnapshotTO convert2VMSnapshotTO(VMSnapshotVO vo) {
+        return new VMSnapshotTO(vo.getId(), vo.getName(), vo.getType(), vo.getCreated().getTime(), vo.getDescription(), vo.getCurrent(), null, true);
+    }
+
+    private VMSnapshotTO getSnapshotWithParents(VMSnapshotVO snapshot) {
+        Map<Long, VMSnapshotVO> snapshotMap = new HashMap<Long, VMSnapshotVO>();
+        List<VMSnapshotVO> allSnapshots = _vmSnapshotDao.findByVm(snapshot.getVmId());
+        for (VMSnapshotVO vmSnapshotVO : allSnapshots) {
+            snapshotMap.put(vmSnapshotVO.getId(), vmSnapshotVO);
+        }
+
+        VMSnapshotTO currentTO = convert2VMSnapshotTO(snapshot);
+        VMSnapshotTO result = currentTO;
+        VMSnapshotVO current = snapshot;
+        while (current.getParent() != null) {
+            VMSnapshotVO parent = snapshotMap.get(current.getParent());
+            if (parent == null) {
+                break;
+            }
+            currentTO.setParent(convert2VMSnapshotTO(parent));
+            current = snapshotMap.get(current.getParent());
+            currentTO = currentTO.getParent();
+        }
+        return result;
+    }
+
+    @Override
+    public boolean deleteVMSnapshotsFromDB(Long vmId) {
+        List<VMSnapshotVO> listVmSnapshots = _vmSnapshotDao.findByVm(vmId);
+        if (listVmSnapshots == null || listVmSnapshots.isEmpty()) {
+            return true;
+        }
+        for (VMSnapshotVO snapshot : listVmSnapshots) {
+            try {
+                VMSnapshotStrategy strategy = findVMSnapshotStrategy(snapshot);
+                if (! strategy.deleteVMSnapshotFromDB(snapshot)) {
+                    s_logger.error("Couldn't delete vm snapshot with id " + snapshot.getId());
+                    return false;
+                }
+            }
+            catch (CloudRuntimeException e) {
+                s_logger.error("Couldn't delete vm snapshot due to: " + e.getMessage());
+            }
+        }
+        return true;
+    }
 }
diff --git a/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java b/server/src/org/apache/cloudstack/network/ssl/CertServiceImpl.java
similarity index 99%
rename from server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
rename to server/src/org/apache/cloudstack/network/ssl/CertServiceImpl.java
index 327d1b0..9da9bdd 100644
--- a/server/src/org/apache/cloudstack/network/lb/CertServiceImpl.java
+++ b/server/src/org/apache/cloudstack/network/ssl/CertServiceImpl.java
@@ -14,7 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package org.apache.cloudstack.network.lb;
+package org.apache.cloudstack.network.ssl;
 
 import com.cloud.domain.DomainVO;
 import com.cloud.domain.dao.DomainDao;
@@ -26,7 +26,7 @@
 import com.cloud.network.dao.LoadBalancerVO;
 import com.cloud.network.dao.SslCertDao;
 import com.cloud.network.dao.SslCertVO;
-import com.cloud.network.lb.CertService;
+import org.apache.cloudstack.network.tls.CertService;
 import com.cloud.network.rules.LoadBalancer;
 import com.cloud.projects.Project;
 import com.cloud.projects.ProjectService;
diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java
index 19f80b9..9b22562 100644
--- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java
+++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java
@@ -20,6 +20,9 @@
 import java.util.List;
 import java.util.Map;
 
+import com.cloud.network.dao.NetworkDetailVO;
+import com.cloud.network.dao.NetworkDetailsDao;
+import com.cloud.network.router.VirtualRouter;
 import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.log4j.Logger;
 
@@ -106,6 +109,7 @@
     protected Long tableLockId;
     protected boolean isPublicNetwork;
     protected PublicIp sourceNatIp;
+    protected NetworkDetailsDao networkDetailsDao;
 
     protected RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest,
             final Account owner, final Map<Param, Object> params) {
@@ -410,7 +414,13 @@
             // Don't start the router as we are holding the network lock that
             // needs to be released at the end of router allocation
             final DomainRouterVO router = nwHelper.deployRouter(this, false);
-
+            //check if the network update is in progress.
+            //if update is in progress add the update_pending flag to DomainRouterVO.
+            NetworkDetailVO detail =networkDetailsDao.findDetail(guestNetwork.getId(),Network.updatingInSequence);
+            if("true".equalsIgnoreCase(detail!=null ? detail.getValue() : null)) {
+                router.setUpdateState(VirtualRouter.UpdateState.UPDATE_IN_PROGRESS);
+                routerDao.persist(router);
+            }
             if (router != null) {
                 routerDao.addRouterToGuestNetwork(router, guestNetwork);
                 //Fix according to changes by Sheng Yang in commit ID cb4513379996b262ae378daf00c6388c6b7313cf
diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
index 3ba4fad..3765537 100644
--- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
+++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
@@ -22,6 +22,7 @@
 
 import javax.inject.Inject;
 
+import com.cloud.network.dao.NetworkDetailsDao;
 import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -96,6 +97,8 @@
     private VpcManager vpcMgr;
     @Inject
     private VlanDao vlanDao;
+    @Inject
+    private NetworkDetailsDao networkDetailsDao;
 
     @Autowired
     @Qualifier("networkHelper")
@@ -133,6 +136,7 @@
         routerDeploymentDefinition.ipv6Dao = ipv6Dao;
         routerDeploymentDefinition.ipAddressDao = ipAddressDao;
         routerDeploymentDefinition.serviceOfferingId = offeringId;
+        routerDeploymentDefinition.networkDetailsDao = networkDetailsDao;
 
         routerDeploymentDefinition.nwHelper = nwHelper;
 
diff --git a/server/test/com/cloud/api/ApiResponseHelperTest.java b/server/test/com/cloud/api/ApiResponseHelperTest.java
index 880332c..eda7ca4 100644
--- a/server/test/com/cloud/api/ApiResponseHelperTest.java
+++ b/server/test/com/cloud/api/ApiResponseHelperTest.java
@@ -16,21 +16,32 @@
 // under the License.
 package com.cloud.api;
 
-import java.lang.reflect.Field;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.TimeZone;
-
+import com.cloud.domain.DomainVO;
+import com.cloud.usage.UsageVO;
+import com.cloud.user.AccountVO;
+import org.apache.cloudstack.api.response.UsageRecordResponse;
 import org.apache.cloudstack.usage.UsageService;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
 
-@RunWith(MockitoJUnitRunner.class)
+import java.lang.reflect.Field;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.when;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ApiDBUtils.class)
 public class ApiResponseHelperTest {
 
     @Mock
@@ -54,15 +65,48 @@
     public void getDateStringInternal() throws ParseException {
         Mockito.when(usageService.getUsageTimezone()).thenReturn(
                 TimeZone.getTimeZone("UTC"));
-        Assert.assertEquals("2014-06-29'T'23:45:00+00:00", helper
+        assertEquals("2014-06-29'T'23:45:00+00:00", helper
                 .getDateStringInternal(dateFormat.parse("2014-06-29 23:45:00 UTC")));
-        Assert.assertEquals("2014-06-29'T'23:45:01+00:00", helper
+        assertEquals("2014-06-29'T'23:45:01+00:00", helper
                 .getDateStringInternal(dateFormat.parse("2014-06-29 23:45:01 UTC")));
-        Assert.assertEquals("2014-06-29'T'23:45:11+00:00", helper
+        assertEquals("2014-06-29'T'23:45:11+00:00", helper
                 .getDateStringInternal(dateFormat.parse("2014-06-29 23:45:11 UTC")));
-        Assert.assertEquals("2014-06-29'T'23:05:11+00:00", helper
+        assertEquals("2014-06-29'T'23:05:11+00:00", helper
                 .getDateStringInternal(dateFormat.parse("2014-06-29 23:05:11 UTC")));
-        Assert.assertEquals("2014-05-29'T'08:45:11+00:00", helper
+        assertEquals("2014-05-29'T'08:45:11+00:00", helper
                 .getDateStringInternal(dateFormat.parse("2014-05-29 08:45:11 UTC")));
     }
+
+    @Test
+    public void testUsageRecordResponse(){
+        //Creating the usageVO object to be passed to the createUsageResponse.
+        Long zoneId = null;
+        Long accountId = null;
+        Long domainId = null;
+        String Description = "Test Object";
+        String usageDisplay = " ";
+        int usageType = -1;
+        Double rawUsage = null;
+        Long vmId = null;
+        String vmName = " ";
+        Long offeringId = null;
+        Long templateId = null;
+        Long usageId = null;
+        Date startDate = null;
+        Date endDate = null;
+        String type = " ";
+        UsageVO usage = new UsageVO(zoneId,accountId,domainId,Description,usageDisplay,usageType,rawUsage,vmId,vmName,offeringId,templateId,usageId,startDate,endDate,type);
+
+        DomainVO domain = new DomainVO();
+        domain.setName("DomainName");
+
+        AccountVO account = new AccountVO();
+
+        PowerMockito.mockStatic(ApiDBUtils.class);
+        when(ApiDBUtils.findAccountById(anyLong())).thenReturn(account);
+        when(ApiDBUtils.findDomainById(anyLong())).thenReturn(domain);
+
+        UsageRecordResponse MockResponse = helper.createUsageResponse(usage);
+        assertEquals("DomainName",MockResponse.getDomainName());
+    }
 }
diff --git a/server/test/com/cloud/configuration/ConfigurationManagerTest.java b/server/test/com/cloud/configuration/ConfigurationManagerTest.java
index 496b5a0..34f91c4 100644
--- a/server/test/com/cloud/configuration/ConfigurationManagerTest.java
+++ b/server/test/com/cloud/configuration/ConfigurationManagerTest.java
@@ -23,6 +23,8 @@
 import static org.mockito.Matchers.anyLong;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.lang.reflect.Field;
@@ -34,6 +36,9 @@
 import java.util.UUID;
 
 import com.cloud.user.User;
+import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
 import org.apache.log4j.Logger;
 import org.junit.After;
 import org.junit.Assert;
@@ -141,6 +146,8 @@
     HostPodDao _podDao;
     @Mock
     PhysicalNetworkDao _physicalNetworkDao;
+    @Mock
+    ImageStoreDao _imageStoreDao;
 
     VlanVO vlan = new VlanVO(Vlan.VlanType.VirtualNetwork, "vlantag", "vlangateway", "vlannetmask", 1L, "iprange", 1L, 1L, null, null, null);
 
@@ -172,6 +179,7 @@
         configurationMgr._clusterDao = _clusterDao;
         configurationMgr._podDao = _podDao;
         configurationMgr._physicalNetworkDao = _physicalNetworkDao;
+        configurationMgr._imageStoreDao = _imageStoreDao;
 
 
         Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
@@ -677,6 +685,7 @@
         Mockito.when(_vmInstanceDao.listByZoneId(anyLong())).thenReturn(new ArrayList<VMInstanceVO>());
         Mockito.when(_volumeDao.findByDc(anyLong())).thenReturn(new ArrayList<VolumeVO>());
         Mockito.when(_physicalNetworkDao.listByZone(anyLong())).thenReturn(new ArrayList<PhysicalNetworkVO>());
+        Mockito.when(_imageStoreDao.findByScope(any(ZoneScope.class))).thenReturn(new ArrayList<ImageStoreVO>());
 
         configurationMgr.checkIfZoneIsDeletable(new Random().nextLong());
     }
@@ -694,6 +703,7 @@
         Mockito.when(_vmInstanceDao.listByZoneId(anyLong())).thenReturn(new ArrayList<VMInstanceVO>());
         Mockito.when(_volumeDao.findByDc(anyLong())).thenReturn(new ArrayList<VolumeVO>());
         Mockito.when(_physicalNetworkDao.listByZone(anyLong())).thenReturn(new ArrayList<PhysicalNetworkVO>());
+        Mockito.when(_imageStoreDao.findByScope(any(ZoneScope.class))).thenReturn(new ArrayList<ImageStoreVO>());
 
         configurationMgr.checkIfZoneIsDeletable(new Random().nextLong());
     }
@@ -711,6 +721,7 @@
         Mockito.when(_vmInstanceDao.listByZoneId(anyLong())).thenReturn(new ArrayList<VMInstanceVO>());
         Mockito.when(_volumeDao.findByDc(anyLong())).thenReturn(new ArrayList<VolumeVO>());
         Mockito.when(_physicalNetworkDao.listByZone(anyLong())).thenReturn(new ArrayList<PhysicalNetworkVO>());
+        Mockito.when(_imageStoreDao.findByScope(any(ZoneScope.class))).thenReturn(new ArrayList<ImageStoreVO>());
 
         configurationMgr.checkIfZoneIsDeletable(new Random().nextLong());
     }
@@ -724,6 +735,7 @@
         Mockito.when(_vmInstanceDao.listByZoneId(anyLong())).thenReturn(new ArrayList<VMInstanceVO>());
         Mockito.when(_volumeDao.findByDc(anyLong())).thenReturn(new ArrayList<VolumeVO>());
         Mockito.when(_physicalNetworkDao.listByZone(anyLong())).thenReturn(new ArrayList<PhysicalNetworkVO>());
+        Mockito.when(_imageStoreDao.findByScope(any(ZoneScope.class))).thenReturn(new ArrayList<ImageStoreVO>());
 
         configurationMgr.checkIfZoneIsDeletable(new Random().nextLong());
     }
@@ -737,6 +749,7 @@
         Mockito.when(_vmInstanceDao.listByZoneId(anyLong())).thenReturn(new ArrayList<VMInstanceVO>());
         Mockito.when(_volumeDao.findByDc(anyLong())).thenReturn(new ArrayList<VolumeVO>());
         Mockito.when(_physicalNetworkDao.listByZone(anyLong())).thenReturn(new ArrayList<PhysicalNetworkVO>());
+        Mockito.when(_imageStoreDao.findByScope(any(ZoneScope.class))).thenReturn(new ArrayList<ImageStoreVO>());
 
         configurationMgr.checkIfZoneIsDeletable(new Random().nextLong());
     }
@@ -754,6 +767,7 @@
         Mockito.when(_vmInstanceDao.listByZoneId(anyLong())).thenReturn(arrayList);
         Mockito.when(_volumeDao.findByDc(anyLong())).thenReturn(new ArrayList<VolumeVO>());
         Mockito.when(_physicalNetworkDao.listByZone(anyLong())).thenReturn(new ArrayList<PhysicalNetworkVO>());
+        Mockito.when(_imageStoreDao.findByScope(any(ZoneScope.class))).thenReturn(new ArrayList<ImageStoreVO>());
 
         configurationMgr.checkIfZoneIsDeletable(new Random().nextLong());
     }
@@ -771,6 +785,7 @@
         Mockito.when(_vmInstanceDao.listByZoneId(anyLong())).thenReturn(new ArrayList<VMInstanceVO>());
         Mockito.when(_volumeDao.findByDc(anyLong())).thenReturn(arrayList);
         Mockito.when(_physicalNetworkDao.listByZone(anyLong())).thenReturn(new ArrayList<PhysicalNetworkVO>());
+        Mockito.when(_imageStoreDao.findByScope(any(ZoneScope.class))).thenReturn(new ArrayList<ImageStoreVO>());
 
         configurationMgr.checkIfZoneIsDeletable(new Random().nextLong());
     }
@@ -788,7 +803,76 @@
         Mockito.when(_vmInstanceDao.listByZoneId(anyLong())).thenReturn(new ArrayList<VMInstanceVO>());
         Mockito.when(_volumeDao.findByDc(anyLong())).thenReturn(new ArrayList<VolumeVO>());
         Mockito.when(_physicalNetworkDao.listByZone(anyLong())).thenReturn(arrayList);
+        Mockito.when(_imageStoreDao.findByScope(any(ZoneScope.class))).thenReturn(new ArrayList<ImageStoreVO>());
 
         configurationMgr.checkIfZoneIsDeletable(new Random().nextLong());
     }
+
+    @Test
+    public void hasSameSubnetTest() {
+        //Ipv4 Test
+        boolean result;
+        result = configurationMgr.hasSameSubnet(false, null, null, null, null, null, null, false, null, null, null, null, null);
+        Assert.assertFalse(result);
+        try {
+            configurationMgr.hasSameSubnet(true, "10.0.0.1", "255.255.255.0", "10.0.0.2", "255.255.255.0", "10.0.0.2", "10.0.0.10", false, null, null, null, null, null);
+            Assert.fail();
+        } catch (InvalidParameterValueException e) {
+            Assert.assertEquals(e.getMessage(), "The gateway of the subnet should be unique. The subnet already has a gateway 10.0.0.1");
+        }
+        try {
+            configurationMgr.hasSameSubnet(true, "10.0.0.1", "255.255.0.0", "10.0.0.2", "255.255.255.0", "10.0.0.2", "10.0.0.10", false, null, null, null, null, null);
+            Assert.fail();
+        } catch (InvalidParameterValueException e){
+            Assert.assertEquals(e.getMessage(), "The subnet you are trying to add is a subset of the existing subnet having gateway 10.0.0.1 and netmask 255.255.0.0");
+        }
+        try {
+            configurationMgr.hasSameSubnet(true, "10.0.0.1", "255.255.255.0", "10.0.0.2", "255.255.0.0", "10.0.0.2", "10.0.0.10", false, null, null, null, null, null);
+            Assert.fail();
+        } catch (InvalidParameterValueException e) {
+            Assert.assertEquals(e.getMessage(), "The subnet you are trying to add is a superset of the existing subnet having gateway 10.0.0.1 and netmask 255.255.255.0");
+        }
+        result = configurationMgr.hasSameSubnet(true, "10.0.0.1", "255.255.255.0", "10.0.0.1", "255.255.255.0", "10.0.0.2", "10.0.0.10", false, null, null, null, null, null);
+        Assert.assertTrue(result);
+
+        //Ipv6 Test
+        Network ipV6Network = mock(Network.class);
+        when(ipV6Network.getIp6Gateway()).thenReturn("2001:db8:0:f101::1");
+        when(ipV6Network.getIp6Cidr()).thenReturn("2001:db8:0:f101::0/64");
+        doThrow(new InvalidParameterValueException("Exception from Mock: startIPv6 is not in ip6cidr indicated network!")).when(configurationMgr._networkModel).checkIp6Parameters("2001:db9:0:f101::2", "2001:db9:0:f101::a", "2001:db8:0:f101::1", "2001:db8:0:f101::0/64");
+        doThrow(new InvalidParameterValueException("Exception from Mock: endIPv6 is not in ip6cidr indicated network!")).when(configurationMgr._networkModel).checkIp6Parameters("2001:db8:0:f101::a", "2001:db9:0:f101::2", "2001:db8:0:f101::1", "2001:db8:0:f101::0/64");
+        doThrow(new InvalidParameterValueException("ip6Gateway and ip6Cidr should be defined when startIPv6/endIPv6 are passed in")).when(configurationMgr._networkModel).checkIp6Parameters(Mockito.anyString(), Mockito.anyString(), Mockito.isNull(String.class), Mockito.isNull(String.class));
+
+
+        configurationMgr.hasSameSubnet(false, null, null, null, null, null, null, true, "2001:db8:0:f101::1", "2001:db8:0:f101::0/64", "2001:db8:0:f101::2", "2001:db8:0:f101::a", ipV6Network);
+        Assert.assertTrue(result);
+        try {
+            configurationMgr.hasSameSubnet(false, null, null, null, null, null, null, true, "2001:db8:0:f101::2", "2001:db8:0:f101::0/64", "2001:db8:0:f101::2", "2001:db8:0:f101::a", ipV6Network);
+            Assert.fail();
+        } catch (InvalidParameterValueException e){
+            Assert.assertEquals(e.getMessage(), "The input gateway 2001:db8:0:f101::2 is not same as network gateway 2001:db8:0:f101::1");
+        }
+        try {
+            configurationMgr.hasSameSubnet(false, null, null, null, null, null, null, true, "2001:db8:0:f101::1", "2001:db8:0:f101::0/63", "2001:db8:0:f101::2", "2001:db8:0:f101::a", ipV6Network);
+            Assert.fail();
+        } catch (InvalidParameterValueException e){
+            Assert.assertEquals(e.getMessage(), "The input cidr 2001:db8:0:f101::0/63 is not same as network cidr 2001:db8:0:f101::0/64");
+        }
+
+        try {
+            configurationMgr.hasSameSubnet(false, null, null, null, null, null, null, true, "2001:db8:0:f101::1", "2001:db8:0:f101::0/64", "2001:db9:0:f101::2", "2001:db9:0:f101::a", ipV6Network);
+            Assert.fail();
+        } catch (InvalidParameterValueException e) {
+            Assert.assertEquals(e.getMessage(), "Exception from Mock: startIPv6 is not in ip6cidr indicated network!");
+        }
+        try {
+            configurationMgr.hasSameSubnet(false, null, null, null, null, null, null, true, "2001:db8:0:f101::1", "2001:db8:0:f101::0/64", "2001:db8:0:f101::a", "2001:db9:0:f101::2", ipV6Network);
+            Assert.fail();
+        } catch(InvalidParameterValueException e){
+            Assert.assertEquals(e.getMessage(), "Exception from Mock: endIPv6 is not in ip6cidr indicated network!");
+        }
+
+        result = configurationMgr.hasSameSubnet(false, null, null, null, null, null, null, true, null, null, "2001:db8:0:f101::2", "2001:db8:0:f101::a", ipV6Network);
+        Assert.assertTrue(result);
+    }
 }
diff --git a/server/test/com/cloud/network/CreatePrivateNetworkTest.java b/server/test/com/cloud/network/CreatePrivateNetworkTest.java
index 2e6cfa1..8a7b54c 100644
--- a/server/test/com/cloud/network/CreatePrivateNetworkTest.java
+++ b/server/test/com/cloud/network/CreatePrivateNetworkTest.java
@@ -103,7 +103,7 @@
 
         NetworkOfferingVO ntwkOff =
             new NetworkOfferingVO("offer", "fakeOffer", TrafficType.Guest, true, true, null, null, false, null, null, GuestType.Isolated, false, false, false, false,
-                false, false, false, false, false, false, false, false, false, false);
+                false, false, false, false, false, false, false, false, false, false, false);
         when(networkService._networkOfferingDao.findById(anyLong())).thenReturn(ntwkOff);
         List<NetworkOfferingVO> netofferlist = new ArrayList<NetworkOfferingVO>();
         netofferlist.add(ntwkOff);
diff --git a/server/test/com/cloud/network/IpAddressManagerTest.java b/server/test/com/cloud/network/IpAddressManagerTest.java
new file mode 100644
index 0000000..0bf92ee
--- /dev/null
+++ b/server/test/com/cloud/network/IpAddressManagerTest.java
@@ -0,0 +1,71 @@
+// 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;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import com.cloud.network.dao.IPAddressDao;
+import com.cloud.network.dao.IPAddressVO;
+import com.cloud.network.rules.StaticNat;
+import com.cloud.network.rules.StaticNatImpl;
+import com.cloud.utils.net.Ip;
+
+import static org.mockito.Mockito.when;
+
+import java.util.Collections;
+import java.util.List;
+
+import static org.mockito.Mockito.anyLong;
+import static org.mockito.Mockito.mock;
+
+public class IpAddressManagerTest {
+
+    @Mock
+    IPAddressDao _ipAddrDao;
+
+    @InjectMocks
+    IpAddressManagerImpl _ipManager;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testGetStaticNatSourceIps() {
+        String publicIpAddress = "192.168.1.3";
+        IPAddressVO vo = mock(IPAddressVO.class);
+        when(vo.getAddress()).thenReturn(new Ip(publicIpAddress));
+        when(vo.getId()).thenReturn(1l);
+
+        when(_ipAddrDao.findById(anyLong())).thenReturn(vo);
+        StaticNat snat = new StaticNatImpl(1, 1, 1, 1, publicIpAddress, false);
+
+        List<IPAddressVO> ips = _ipManager.getStaticNatSourceIps(Collections.singletonList(snat));
+        Assert.assertNotNull(ips);
+        Assert.assertEquals(1, ips.size());
+
+        IPAddressVO returnedVO = ips.get(0);
+        Assert.assertEquals(vo, returnedVO);
+    }
+}
diff --git a/server/test/com/cloud/network/MockNetworkModelImpl.java b/server/test/com/cloud/network/MockNetworkModelImpl.java
index c00d83f..f3d1f38 100644
--- a/server/test/com/cloud/network/MockNetworkModelImpl.java
+++ b/server/test/com/cloud/network/MockNetworkModelImpl.java
@@ -491,6 +491,11 @@
         return false;
     }
 
+    @Override
+    public boolean providerSupportsCapability(Set<Provider> providers, Service service, Capability cap) {
+        return false;
+    }
+
     /* (non-Javadoc)
      * @see com.cloud.network.NetworkModel#checkCapabilityForProvider(java.util.Set, com.cloud.network.Network.Service, com.cloud.network.Network.Capability, java.lang.String)
      */
diff --git a/server/test/com/cloud/network/NetworkModelTest.java b/server/test/com/cloud/network/NetworkModelTest.java
index 55f620b..ba57542 100644
--- a/server/test/com/cloud/network/NetworkModelTest.java
+++ b/server/test/com/cloud/network/NetworkModelTest.java
@@ -19,11 +19,17 @@
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.spy;
 
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import junit.framework.Assert;
 
@@ -32,13 +38,16 @@
 
 import com.cloud.dc.VlanVO;
 import com.cloud.dc.dao.VlanDao;
+import com.cloud.exception.UnsupportedServiceException;
 import com.cloud.network.dao.IPAddressDao;
 import com.cloud.network.dao.IPAddressVO;
+import com.cloud.network.element.NetworkElement;
 import com.cloud.user.Account;
 import com.cloud.utils.db.Filter;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.utils.net.Ip;
+import com.cloud.network.Network.Provider;
 
 public class NetworkModelTest {
     @Before
@@ -77,4 +86,53 @@
 
     }
 
+    @Test
+    public void testCapabilityForProvider() {
+        NetworkModelImpl modelImpl = spy(NetworkModelImpl.class);
+        Set<Provider> providers = new HashSet<>();
+        providers.add(Provider.NuageVsp);
+        NetworkElement nuageVspElement = mock(NetworkElement.class);
+        HashMap<Network.Service, Map<Network.Capability, String>> nuageVspCap = new HashMap<Network.Service, Map<Network.Capability, String>>();
+        HashMap<Network.Capability, String> nuageVspConnectivity = new HashMap<Network.Capability, String>();
+        nuageVspConnectivity.put(Network.Capability.NoVlan, "FindMe");
+        nuageVspConnectivity.put(Network.Capability.PublicAccess, "");
+
+        nuageVspCap.put(Network.Service.Connectivity, nuageVspConnectivity);
+        when(nuageVspElement.getName()).thenReturn("NuageVsp");
+        doReturn(nuageVspCap).when(nuageVspElement).getCapabilities();
+        doReturn(nuageVspElement).when(modelImpl).getElementImplementingProvider("NuageVsp");
+
+        try {
+            modelImpl.checkCapabilityForProvider(providers, Network.Service.UserData, null, null);
+            Assert.fail();
+        } catch (UnsupportedServiceException e) {
+            Assert.assertEquals(e.getMessage(), "Service " + Network.Service.UserData.getName() + " is not supported by the element=NuageVsp implementing Provider=" + Provider.NuageVsp.getName());
+        }
+
+        try {
+            modelImpl.checkCapabilityForProvider(providers, Network.Service.Connectivity, Network.Capability.ElasticIp, null);
+            Assert.fail();
+        } catch (UnsupportedServiceException e) {
+            Assert.assertEquals(e.getMessage(), "Service " + Network.Service.Connectivity.getName() + " doesn't have capability " + Network.Capability.ElasticIp.getName() + " for element=NuageVsp implementing Provider=" + Provider.NuageVsp.getName());
+        }
+        try {
+            modelImpl.checkCapabilityForProvider(providers, Network.Service.Connectivity, Network.Capability.PublicAccess, "NonExistingVal");
+            Assert.fail();
+        } catch (UnsupportedServiceException e){
+            Assert.assertEquals(e.getMessage(),"Service Connectivity doesn't have capability PublicAccess for element=NuageVsp implementing Provider=NuageVsp");
+        }
+
+        modelImpl.checkCapabilityForProvider(providers, Network.Service.Connectivity, Network.Capability.NoVlan, "FindMe");
+
+        NetworkElement nuageVspElement2 = mock(NetworkElement.class);
+        doReturn(null).when(nuageVspElement).getCapabilities();
+        try {
+            modelImpl.checkCapabilityForProvider(providers, Network.Service.Connectivity, Network.Capability.PublicAccess, "");
+            Assert.fail();
+        } catch (UnsupportedServiceException e) {
+            Assert.assertEquals(e.getMessage(), "Service Connectivity is not supported by the element=NuageVsp implementing Provider=NuageVsp");
+        }
+    }
+
+
 }
diff --git a/server/test/com/cloud/network/element/VirtualRouterElementTest.java b/server/test/com/cloud/network/element/VirtualRouterElementTest.java
index 6592778..4fbc28e 100644
--- a/server/test/com/cloud/network/element/VirtualRouterElementTest.java
+++ b/server/test/com/cloud/network/element/VirtualRouterElementTest.java
@@ -19,6 +19,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyList;
 import static org.mockito.Matchers.anyLong;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.when;
@@ -26,6 +27,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import com.cloud.exception.AgentUnavailableException;
+import com.cloud.network.dao.NetworkDetailVO;
+import com.cloud.network.dao.NetworkDetailsDao;
+import com.cloud.network.router.VirtualRouter;
+import com.cloud.utils.exception.CloudRuntimeException;
 import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder;
@@ -35,6 +41,8 @@
 import org.mockito.InjectMocks;
 import org.mockito.Matchers;
 import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
 import org.mockito.runners.MockitoJUnitRunner;
 
 import com.cloud.cluster.dao.ManagementServerHostDao;
@@ -111,6 +119,7 @@
 import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
+import org.mockito.stubbing.Answer;
 
 @RunWith(MockitoJUnitRunner.class)
 public class VirtualRouterElementTest {
@@ -127,6 +136,7 @@
     @Mock private ManagementServerHostDao _msHostDao;
     @Mock private NetworkDao _networkDao;
     @Mock private NetworkOfferingDao _networkOfferingDao;
+    @Mock private NetworkDetailsDao _networkDetailsDao;
     @Mock private NicDao _nicDao;
     @Mock private NicIpAliasDao _nicIpAliasDao;
     @Mock private OpRouterMonitorServiceDao _opRouterMonitorServiceDao;
@@ -225,6 +235,62 @@
 
     }
 
+    @Test
+    public void testGetRouters1(){
+        Network networkUpdateInprogress=new NetworkVO(1l,null,null,null,1l,1l,1l,1l,"d","d","d",null,1l,1l,null,true,null,true);
+        mockDAOs((NetworkVO)networkUpdateInprogress,testOffering);
+        //getRoutes should always return the router that is updating.
+        List<DomainRouterVO> routers=virtualRouterElement.getRouters(networkUpdateInprogress);
+        assertTrue(routers.size()==1);
+        assertTrue(routers.get(0).getUpdateState()== VirtualRouter.UpdateState.UPDATE_IN_PROGRESS);
+    }
+
+    @Test
+    public void testGetRouters2(){
+        Network networkUpdateInprogress=new NetworkVO(2l,null,null,null,1l,1l,1l,1l,"d","d","d",null,1l,1l,null,true,null,true);
+        mockDAOs((NetworkVO)networkUpdateInprogress,testOffering);
+        //alwyas return backup routers first when both master and backup need update.
+        List<DomainRouterVO> routers=virtualRouterElement.getRouters(networkUpdateInprogress);
+        assertTrue(routers.size()==1);
+        assertTrue(routers.get(0).getRedundantState()==RedundantState.BACKUP && routers.get(0).getUpdateState()==VirtualRouter.UpdateState.UPDATE_IN_PROGRESS);
+    }
+
+    @Test
+    public void testGetRouters3(){
+        Network network=new NetworkVO(3l,null,null,null,1l,1l,1l,1l,"d","d","d",null,1l,1l,null,true,null,true);
+        mockDAOs((NetworkVO)network,testOffering);
+        //alwyas return backup routers first when both master and backup need update.
+        List<DomainRouterVO> routers=virtualRouterElement.getRouters(network);
+        assertTrue(routers.size()==4);
+    }
+
+    @Test
+    public void getResourceCountTest(){
+        Network network=new NetworkVO(3l,null,null,null,1l,1l,1l,1l,"d","d","d",null,1l,1l,null,true,null,true);
+        mockDAOs((NetworkVO)network,testOffering);
+        int routers=virtualRouterElement.getResourceCount(network);
+        assertTrue(routers==4);
+    }
+
+    @Test
+    public void completeAggregationCommandTest1() throws AgentUnavailableException,ResourceUnavailableException {
+        virtualRouterElement._routerMgr = Mockito.mock(VpcVirtualNetworkApplianceManagerImpl.class);
+        virtualRouterElement.routerDeploymentDefinitionBuilder = routerDeploymentDefinitionBuilder;
+        Network network = new NetworkVO(6l, null, null, null, 1l, 1l, 1l, 1l, "d", "d", "d", null, 1l, 1l, null, true, null, true);
+        when(virtualRouterElement._routerMgr.completeAggregatedExecution(any(Network.class), anyList())).thenReturn(true);
+        mockDAOs((NetworkVO) network, testOffering);
+        when(virtualRouterElement._routerDao.persist(any(DomainRouterVO.class))).thenAnswer(new Answer<Object>() {
+            @Override
+            public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
+                Object args[] = invocationOnMock.getArguments();
+                DomainRouterVO router = (DomainRouterVO) args[0];
+                if (router.getUpdateState() != VirtualRouter.UpdateState.UPDATE_COMPLETE) {
+                    throw new CloudRuntimeException("TestFailed: completeAggregationCommandTest1 failed");
+                } else return null;
+            }
+        });
+        virtualRouterElement.completeAggregatedExecution(network, testDestination);
+    }
     /**
      * @param networks
      * @param offerings
@@ -293,11 +359,94 @@
                 /* haEnabled */ false,
                 /* stopPending */ false,
                 /* vpcId */ null);
-
+        final DomainRouterVO routerNeedUpdateBackup = new DomainRouterVO(/* id */ 2L,
+                /* serviceOfferingId */ 1L,
+                /* elementId */ 0L,
+                "name",
+                /* templateId */0L,
+                HypervisorType.XenServer,
+                /* guestOSId */ 0L,
+                /* domainId */ 0L,
+                /* accountId */ 1L,
+                /* userId */ 1L,
+                /* isRedundantRouter */ false,
+                RedundantState.BACKUP,
+                /* haEnabled */ false,
+                /* stopPending */ false,
+                /* vpcId */ null);
+                routerNeedUpdateBackup.setUpdateState(VirtualRouter.UpdateState.UPDATE_NEEDED);
+        final DomainRouterVO routerNeedUpdateMaster = new DomainRouterVO(/* id */ 3L,
+                /* serviceOfferingId */ 1L,
+                /* elementId */ 0L,
+                "name",
+                /* templateId */0L,
+                HypervisorType.XenServer,
+                /* guestOSId */ 0L,
+                /* domainId */ 0L,
+                /* accountId */ 1L,
+                /* userId */ 1L,
+                /* isRedundantRouter */ false,
+                RedundantState.MASTER,
+                /* haEnabled */ false,
+                /* stopPending */ false,
+                /* vpcId */ null);
+        routerNeedUpdateMaster.setUpdateState(VirtualRouter.UpdateState.UPDATE_NEEDED);
+        final DomainRouterVO routerUpdateComplete = new DomainRouterVO(/* id */ 4L,
+                /* serviceOfferingId */ 1L,
+                /* elementId */ 0L,
+                "name",
+                /* templateId */0L,
+                HypervisorType.XenServer,
+                /* guestOSId */ 0L,
+                /* domainId */ 0L,
+                /* accountId */ 1L,
+                /* userId */ 1L,
+                /* isRedundantRouter */ false,
+                RedundantState.UNKNOWN,
+                /* haEnabled */ false,
+                /* stopPending */ false,
+                /* vpcId */ null);
+                routerUpdateComplete.setUpdateState(VirtualRouter.UpdateState.UPDATE_COMPLETE);
+        final DomainRouterVO routerUpdateInProgress = new DomainRouterVO(/* id */ 5L,
+                /* serviceOfferingId */ 1L,
+                /* elementId */ 0L,
+                "name",
+                /* templateId */0L,
+                HypervisorType.XenServer,
+                /* guestOSId */ 0L,
+                /* domainId */ 0L,
+                /* accountId */ 1L,
+                /* userId */ 1L,
+                /* isRedundantRouter */ false,
+                RedundantState.UNKNOWN,
+                /* haEnabled */ false,
+                /* stopPending */ false,
+                /* vpcId */ null);
+                routerUpdateInProgress.setUpdateState(VirtualRouter.UpdateState.UPDATE_IN_PROGRESS);
+        List<DomainRouterVO> routerList1=new ArrayList<>();
+        routerList1.add(routerUpdateComplete);
+        routerList1.add(routerNeedUpdateBackup);
+        routerList1.add(routerNeedUpdateMaster);
+        routerList1.add(routerUpdateInProgress);
+        List<DomainRouterVO> routerList2=new ArrayList<>();
+        routerList2.add(routerUpdateComplete);
+        routerList2.add(routerNeedUpdateBackup);
+        routerList2.add(routerNeedUpdateMaster);
+        List<DomainRouterVO> routerList3=new ArrayList<>();
+        routerList3.add(routerUpdateComplete);
+        routerList3.add(routerUpdateInProgress);
         when(_routerDao.getNextInSequence(Long.class, "id")).thenReturn(1L);
         when(_templateDao.findRoutingTemplate(HypervisorType.XenServer, "SystemVM Template (XenServer)")).thenReturn(new VMTemplateVO());
         when(_routerDao.persist(any(DomainRouterVO.class))).thenReturn(router);
         when(_routerDao.findById(router.getId())).thenReturn(router);
+        when(_routerDao.listByNetworkAndRole(1l, VirtualRouter.Role.VIRTUAL_ROUTER)).thenReturn(routerList1);
+        when(_routerDao.listByNetworkAndRole(2l, VirtualRouter.Role.VIRTUAL_ROUTER)).thenReturn(routerList2);
+        when(_routerDao.listByNetworkAndRole(3l, VirtualRouter.Role.VIRTUAL_ROUTER)).thenReturn(routerList1);
+        when(_routerDao.listByNetworkAndRole(6l, VirtualRouter.Role.VIRTUAL_ROUTER)).thenReturn(routerList3);
+        when(_networkDetailsDao.findDetail(1l, Network.updatingInSequence)).thenReturn(new NetworkDetailVO(1l,Network.updatingInSequence,"true",true));
+        when(_networkDetailsDao.findDetail(2l, Network.updatingInSequence)).thenReturn(new NetworkDetailVO(2l,Network.updatingInSequence,"true",true));
+        when(_networkDetailsDao.findDetail(6l, Network.updatingInSequence)).thenReturn(new NetworkDetailVO(2l,Network.updatingInSequence,"true",true));
+        when(_routerDao.persist(any(DomainRouterVO.class))).thenReturn(router);
     }
 
 }
diff --git a/server/test/com/cloud/network/firewall/FirewallManagerTest.java b/server/test/com/cloud/network/firewall/FirewallManagerTest.java
index 823b495..a0bc897 100644
--- a/server/test/com/cloud/network/firewall/FirewallManagerTest.java
+++ b/server/test/com/cloud/network/firewall/FirewallManagerTest.java
@@ -25,6 +25,7 @@
 import static org.mockito.Mockito.spy;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import com.cloud.exception.NetworkRuleConflictException;
@@ -189,9 +190,17 @@
         FirewallRuleVO rule2 = spy(new FirewallRuleVO("rule2", 3, 1701, "UDP", 1, 2, 1, Purpose.Vpn, null, null, null, null));
         FirewallRuleVO rule3 = spy(new FirewallRuleVO("rule3", 3, 4500, "UDP", 1, 2, 1, Purpose.Vpn, null, null, null, null));
 
+        List<String> sString = Arrays.asList("10.1.1.1/24","192.168.1.1/24");
+        List<String> dString1 = Arrays.asList("10.1.1.1/25");
+        List<String> dString2 = Arrays.asList("10.1.1.128/25");
+
+        FirewallRuleVO rule4 = spy(new FirewallRuleVO("rule4", 3L, 10, 20, "TCP", 1, 2, 1, Purpose.Firewall, sString, dString1, null, null,
+                null, FirewallRule.TrafficType.Egress));
+
         ruleList.add(rule1);
         ruleList.add(rule2);
         ruleList.add(rule3);
+        ruleList.add(rule4);
 
         FirewallManagerImpl firewallMgr = (FirewallManagerImpl)_firewallMgr;
 
@@ -199,15 +208,19 @@
         when(rule1.getId()).thenReturn(1L);
         when(rule2.getId()).thenReturn(2L);
         when(rule3.getId()).thenReturn(3L);
+        when(rule4.getId()).thenReturn(4L);
 
         FirewallRule newRule1 = new FirewallRuleVO("newRule1", 3, 500, "TCP", 1, 2, 1, Purpose.PortForwarding, null, null, null, null);
         FirewallRule newRule2 = new FirewallRuleVO("newRule2", 3, 1701, "TCP", 1, 2, 1, Purpose.PortForwarding, null, null, null, null);
         FirewallRule newRule3 = new FirewallRuleVO("newRule3", 3, 4500, "TCP", 1, 2, 1, Purpose.PortForwarding, null, null, null, null);
+        FirewallRule newRule4 = new FirewallRuleVO("newRule4", 3L, 15, 25, "TCP", 1, 2, 1, Purpose.Firewall, sString, dString2, null, null,
+                null, FirewallRule.TrafficType.Egress);
 
         try {
             firewallMgr.detectRulesConflict(newRule1);
             firewallMgr.detectRulesConflict(newRule2);
             firewallMgr.detectRulesConflict(newRule3);
+            firewallMgr.detectRulesConflict(newRule4);
         }
         catch (NetworkRuleConflictException ex) {
             Assert.fail();
diff --git a/server/test/com/cloud/storage/ImageStoreDetailsUtilTest.java b/server/test/com/cloud/storage/ImageStoreDetailsUtilTest.java
index 4b3ce40..7efbe08 100755
--- a/server/test/com/cloud/storage/ImageStoreDetailsUtilTest.java
+++ b/server/test/com/cloud/storage/ImageStoreDetailsUtilTest.java
@@ -17,42 +17,54 @@
 package com.cloud.storage;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDao;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
 import org.junit.Before;
 import org.junit.Test;
 
+import com.cloud.capacity.CapacityManager;
+
 public class ImageStoreDetailsUtilTest {
 
     private final static long STORE_ID = 1l;
     private final static String STORE_UUID = "aaaa-aaaa-aaaa-aaaa";
     private final static Integer NFS_VERSION = 3;
+    private final static Integer NFS_VERSION_DEFAULT = 2;
 
     ImageStoreDetailsUtil imageStoreDetailsUtil = new ImageStoreDetailsUtil();
 
     ImageStoreDao imgStoreDao = mock(ImageStoreDao.class);
     ImageStoreDetailsDao imgStoreDetailsDao = mock(ImageStoreDetailsDao.class);
+    ConfigurationDao configurationDao = mock(ConfigurationDao.class);
 
     @Before
     public void setup() throws Exception {
         Map<String, String> imgStoreDetails = new HashMap<String, String>();
-        imgStoreDetails.put("nfs.version", String.valueOf(NFS_VERSION));
+        String nfsVersionKey = CapacityManager.ImageStoreNFSVersion.key();
+        imgStoreDetails.put(nfsVersionKey, String.valueOf(NFS_VERSION));
         when(imgStoreDetailsDao.getDetails(STORE_ID)).thenReturn(imgStoreDetails);
 
         ImageStoreVO imgStoreVO = mock(ImageStoreVO.class);
         when(imgStoreVO.getId()).thenReturn(Long.valueOf(STORE_ID));
         when(imgStoreDao.findByUuid(STORE_UUID)).thenReturn(imgStoreVO);
 
+        ConfigurationVO confVO = mock(ConfigurationVO.class);
+        String defaultValue = (NFS_VERSION_DEFAULT == null ? null : String.valueOf(NFS_VERSION_DEFAULT));
+        when(confVO.getValue()).thenReturn(defaultValue);
+        when(configurationDao.findByName(nfsVersionKey)).thenReturn(confVO);
+
         imageStoreDetailsUtil.imageStoreDao = imgStoreDao;
         imageStoreDetailsUtil.imageStoreDetailsDao = imgStoreDetailsDao;
+        imageStoreDetailsUtil.configurationDao = configurationDao;
     }
 
     @Test
@@ -68,7 +80,7 @@
         when(imgStoreDetailsDao.getDetails(STORE_ID)).thenReturn(imgStoreDetails);
 
         Integer nfsVersion = imageStoreDetailsUtil.getNfsVersion(STORE_ID);
-        assertNull(nfsVersion);
+        assertEquals(NFS_VERSION_DEFAULT, nfsVersion);
     }
 
     @Test
@@ -77,7 +89,7 @@
         when(imgStoreDetailsDao.getDetails(STORE_ID)).thenReturn(imgStoreDetails);
 
         Integer nfsVersion = imageStoreDetailsUtil.getNfsVersion(STORE_ID);
-        assertNull(nfsVersion);
+        assertEquals(NFS_VERSION_DEFAULT, nfsVersion);
     }
 
     @Test
@@ -90,6 +102,12 @@
     public void testGetNfsVersionByUuidNoImgStore(){
         when(imgStoreDao.findByUuid(STORE_UUID)).thenReturn(null);
         Integer nfsVersion = imageStoreDetailsUtil.getNfsVersionByUuid(STORE_UUID);
-        assertNull(nfsVersion);
+        assertEquals(NFS_VERSION_DEFAULT, nfsVersion);
     }
-}
\ No newline at end of file
+
+    @Test
+    public void testGetGlobalDefaultNfsVersion(){
+        Integer globalDefaultNfsVersion = imageStoreDetailsUtil.getGlobalDefaultNfsVersion();
+        assertEquals(NFS_VERSION_DEFAULT, globalDefaultNfsVersion);
+    }
+}
diff --git a/server/test/com/cloud/storage/VolumeApiServiceImplTest.java b/server/test/com/cloud/storage/VolumeApiServiceImplTest.java
index 71f6ded..35df0db 100644
--- a/server/test/com/cloud/storage/VolumeApiServiceImplTest.java
+++ b/server/test/com/cloud/storage/VolumeApiServiceImplTest.java
@@ -16,39 +16,35 @@
 // under the License.
 package com.cloud.storage;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import javax.inject.Inject;
-
+import com.cloud.dc.DataCenterVO;
+import com.cloud.dc.dao.DataCenterDao;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.org.Grouping;
 import com.cloud.serializer.GsonHelper;
+import com.cloud.storage.dao.VolumeDao;
+import com.cloud.user.Account;
+import com.cloud.user.AccountManager;
+import com.cloud.user.AccountVO;
 import com.cloud.user.User;
+import com.cloud.user.UserVO;
+import com.cloud.utils.db.TransactionLegacy;
 import com.cloud.vm.UserVmManager;
+import com.cloud.vm.UserVmVO;
 import com.cloud.vm.VirtualMachine;
-import junit.framework.Assert;
-import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-
+import com.cloud.vm.VirtualMachine.State;
+import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.VMInstanceDao;
+import com.cloud.vm.snapshot.VMSnapshotVO;
+import com.cloud.vm.snapshot.dao.VMSnapshotDao;
+import com.cloud.user.dao.AccountDao;
+import com.cloud.user.ResourceLimitService;
+import com.cloud.configuration.Resource;
+import com.cloud.host.dao.HostDao;
 import org.apache.cloudstack.acl.ControlledEntity;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
 import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
@@ -61,22 +57,31 @@
 import org.apache.cloudstack.framework.jobs.impl.AsyncJobVO;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.Assert;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
 
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.storage.dao.VolumeDao;
-import com.cloud.user.Account;
-import com.cloud.user.AccountManager;
-import com.cloud.user.AccountVO;
-import com.cloud.user.UserVO;
-import com.cloud.utils.db.TransactionLegacy;
-import com.cloud.vm.UserVmVO;
-import com.cloud.vm.VirtualMachine.State;
-import com.cloud.vm.dao.UserVmDao;
-import com.cloud.vm.dao.VMInstanceDao;
-import com.cloud.vm.snapshot.VMSnapshotVO;
-import com.cloud.vm.snapshot.dao.VMSnapshotDao;
+import javax.inject.Inject;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 public class VolumeApiServiceImplTest {
     @Inject
@@ -110,6 +115,14 @@
     CreateVolumeCmd createVol;
     @Mock
     UserVmManager _userVmMgr;
+    @Mock
+    DataCenterDao _dcDao;
+    @Mock
+    ResourceLimitService _resourceLimitMgr;
+    @Mock
+    AccountDao _accountDao;
+    @Mock
+    HostDao _hostDao;
 
     DetachVolumeCmd detachCmd = new DetachVolumeCmd();
     Class<?> _detachCmdClass = detachCmd.getClass();
@@ -128,10 +141,15 @@
         _svc.volFactory = _volFactory;
         _svc.volService = volService;
         _svc._userVmMgr = _userVmMgr;
+        _svc._dcDao = _dcDao;
+        _svc._resourceLimitMgr = _resourceLimitMgr;
+        _svc._accountDao = _accountDao;
+        _svc._hostDao = _hostDao;
         _svc._gson = GsonHelper.getGsonLogger();
 
         // mock caller context
         AccountVO account = new AccountVO("admin", 1L, "networkDomain", Account.ACCOUNT_TYPE_NORMAL, "uuid");
+        AccountVO account2 = new AccountVO("Account2", 2L, "networkDomain", Account.ACCOUNT_TYPE_NORMAL, "uuid");
         UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN);
         CallContext.register(user, account);
         // mock async context
@@ -180,6 +198,7 @@
             when(_svc._volsDao.findById(3L)).thenReturn(volumeOfStoppeHyperVVm);
 
             StoragePoolVO unmanagedPool = new StoragePoolVO();
+
             when(_svc._storagePoolDao.findById(1L)).thenReturn(unmanagedPool);
 
             // volume of managed pool id=4
@@ -203,6 +222,9 @@
             when(correctRootVolume.getDataCenterId()).thenReturn(1L);
             when(correctRootVolume.getVolumeType()).thenReturn(Volume.Type.ROOT);
             when(correctRootVolume.getInstanceId()).thenReturn(null);
+            when(correctRootVolume.getState()).thenReturn(Volume.State.Ready);
+            when(correctRootVolume.getTemplateId()).thenReturn(null);
+            when(correctRootVolume.getPoolId()).thenReturn(1L);
             when(_svc.volFactory.getVolume(6L)).thenReturn(correctRootVolume);
 
             VolumeVO correctRootVolumeVO = new VolumeVO("root", 1L, 1L, 1L, 1L, 2L, "root", "root", Storage.ProvisioningType.THIN, 1, null,
@@ -255,6 +277,11 @@
             when(_svc._vmSnapshotDao.findByVm(any(Long.class))).thenReturn(new ArrayList<VMSnapshotVO>());
             when(_svc._vmInstanceDao.findById(any(Long.class))).thenReturn(stoppedVm);
 
+            DataCenterVO enabledZone = Mockito.mock(DataCenterVO.class);
+            when(enabledZone.getAllocationState()).thenReturn(Grouping.AllocationState.Enabled);
+
+            when(_svc._dcDao.findById(anyLong())).thenReturn(enabledZone);
+
         } finally {
             txn.close("runVolumeDaoImplTest");
         }
@@ -358,7 +385,8 @@
     public void testTakeSnapshotF1() throws ResourceAllocationException {
         when(_volFactory.getVolume(anyLong())).thenReturn(volumeInfoMock);
         when(volumeInfoMock.getState()).thenReturn(Volume.State.Allocated);
-        _svc.takeSnapshot(5L, Snapshot.MANUAL_POLICY_ID, 3L, null, false);
+        when(volumeInfoMock.getPoolId()).thenReturn(1L);
+        _svc.takeSnapshot(5L, Snapshot.MANUAL_POLICY_ID, 3L, null, false, null);
     }
 
     @Test
@@ -366,8 +394,9 @@
         when(_volFactory.getVolume(anyLong())).thenReturn(volumeInfoMock);
         when(volumeInfoMock.getState()).thenReturn(Volume.State.Ready);
         when(volumeInfoMock.getInstanceId()).thenReturn(null);
+        when(volumeInfoMock.getPoolId()).thenReturn(1L);
         when (volService.takeSnapshot(Mockito.any(VolumeInfo.class))).thenReturn(snapshotInfoMock);
-        _svc.takeSnapshot(5L, Snapshot.MANUAL_POLICY_ID, 3L, null, false);
+        _svc.takeSnapshot(5L, Snapshot.MANUAL_POLICY_ID, 3L, null, false, null);
     }
 
     @Test
@@ -408,6 +437,56 @@
         verify(_svc._userVmMgr, times(1)).persistDeviceBusInfo(any(UserVmVO.class), eq("scsi"));
     }
 
+    @Test
+    /**
+     * Setting locationType for a non-managed storage should give an error
+     */
+    public void testAllocSnapshotNonManagedStorageArchive() {
+        try {
+            _svc.allocSnapshot(6L, 1L, "test", Snapshot.LocationType.SECONDARY);
+        } catch (InvalidParameterValueException e) {
+            Assert.assertEquals(e.getMessage(), "VolumeId: 6 LocationType is supported only for managed storage");
+            return;
+        } catch (ResourceAllocationException e) {
+            Assert.fail("Unexpected excepiton " + e.getMessage());
+        }
+
+        Assert.fail("Expected Exception for archive in non-managed storage");
+    }
+
+    /**
+     * The resource limit check for primary storage should not be skipped for Volume in 'Uploaded' state.
+     * @throws NoSuchFieldException
+     * @throws IllegalAccessException
+     * @throws ResourceAllocationException
+     */
+    @Test
+    public void testResourceLimitCheckForUploadedVolume() throws NoSuchFieldException, IllegalAccessException, ResourceAllocationException {
+        doThrow(new ResourceAllocationException("primary storage resource limit check failed", Resource.ResourceType.primary_storage)).when(_svc._resourceLimitMgr).checkResourceLimit(any(AccountVO.class), any(Resource.ResourceType.class), any(Long.class));
+        UserVmVO vm = Mockito.mock(UserVmVO.class);
+        VolumeInfo volumeToAttach = Mockito.mock(VolumeInfo.class);
+        when(volumeToAttach.getId()).thenReturn(9L);
+        when(volumeToAttach.getDataCenterId()).thenReturn(34L);
+        when(volumeToAttach.getVolumeType()).thenReturn(Volume.Type.DATADISK);
+        when(volumeToAttach.getInstanceId()).thenReturn(null);
+        when(_userVmDao.findById(anyLong())).thenReturn(vm);
+        when(vm.getType()).thenReturn(VirtualMachine.Type.User);
+        when(vm.getState()).thenReturn(State.Running);
+        when(vm.getDataCenterId()).thenReturn(34L);
+        when(_svc._volsDao.findByInstanceAndType(anyLong(), any(Volume.Type.class))).thenReturn(new ArrayList(10));
+        when(_svc.volFactory.getVolume(9L)).thenReturn(volumeToAttach);
+        when(volumeToAttach.getState()).thenReturn(Volume.State.Uploaded);
+        DataCenterVO zoneWithDisabledLocalStorage = Mockito.mock(DataCenterVO.class);
+        when(_svc._dcDao.findById(anyLong())).thenReturn(zoneWithDisabledLocalStorage);
+        when(zoneWithDisabledLocalStorage.isLocalStorageEnabled()).thenReturn(true);
+        try {
+            _svc.attachVolumeToVM(2L, 9L, null);
+        } catch (InvalidParameterValueException e) {
+            Assert.assertEquals(e.getMessage(), ("primary storage resource limit check failed"));
+        }
+    }
+
+
     @After
     public void tearDown() {
         CallContext.unregister();
diff --git a/server/test/com/cloud/storage/snapshot/SnapshotManagerTest.java b/server/test/com/cloud/storage/snapshot/SnapshotManagerTest.java
old mode 100644
new mode 100755
index 4fb5964..685f495
--- a/server/test/com/cloud/storage/snapshot/SnapshotManagerTest.java
+++ b/server/test/com/cloud/storage/snapshot/SnapshotManagerTest.java
@@ -16,37 +16,6 @@
 // under the License.
 package com.cloud.storage.snapshot;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.cloudstack.acl.ControlledEntity;
-import org.apache.cloudstack.acl.SecurityChecker.AccessType;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy;
-import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy.SnapshotOperation;
-import org.apache.cloudstack.engine.subsystem.api.storage.StorageStrategyFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
-import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
-import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.mockito.Spy;
-
 import com.cloud.configuration.Resource.ResourceType;
 import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.exception.ResourceAllocationException;
@@ -57,9 +26,9 @@
 import com.cloud.storage.ScopeType;
 import com.cloud.storage.Snapshot;
 import com.cloud.storage.SnapshotVO;
+import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.Volume;
 import com.cloud.storage.VolumeVO;
-import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.dao.SnapshotDao;
 import com.cloud.storage.dao.VolumeDao;
 import com.cloud.user.Account;
@@ -75,6 +44,38 @@
 import com.cloud.vm.snapshot.VMSnapshot;
 import com.cloud.vm.snapshot.VMSnapshotVO;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
+import org.apache.cloudstack.acl.ControlledEntity;
+import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy;
+import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy.SnapshotOperation;
+import org.apache.cloudstack.engine.subsystem.api.storage.StorageStrategyFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
+import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+
+import java.util.List;
+import java.util.UUID;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class SnapshotManagerTest {
     @Spy
@@ -90,6 +91,8 @@
     @Mock
     VMSnapshotDao _vmSnapshotDao;
     @Mock
+    VMSnapshotVO vmSnapshotMock;
+    @Mock
     Account account;
     @Mock
     UserVmVO vmMock;
@@ -119,11 +122,16 @@
     ResourceManager _resourceMgr;
     @Mock
     DataStore storeMock;
+    @Mock
+    SnapshotDataStoreDao _snapshotStoreDao;
+    @Mock
+    SnapshotDataStoreVO snapshotStoreMock;
 
     private static final long TEST_SNAPSHOT_ID = 3L;
     private static final long TEST_VOLUME_ID = 4L;
     private static final long TEST_VM_ID = 5L;
     private static final long TEST_STORAGE_POOL_ID = 6L;
+    private static final long TEST_VM_SNAPSHOT_ID = 6L;
 
     @Before
     public void setup() throws ResourceAllocationException {
@@ -139,6 +147,7 @@
         _snapshotMgr._storagePoolDao = _storagePoolDao;
         _snapshotMgr._resourceMgr = _resourceMgr;
         _snapshotMgr._vmSnapshotDao = _vmSnapshotDao;
+        _snapshotMgr._snapshotStoreDao = _snapshotStoreDao;
 
         when(_snapshotDao.findById(anyLong())).thenReturn(snapshotMock);
         when(snapshotMock.getVolumeId()).thenReturn(TEST_VOLUME_ID);
@@ -148,9 +157,11 @@
         when(volumeMock.getState()).thenReturn(Volume.State.Ready);
         when(volumeFactory.getVolume(anyLong())).thenReturn(volumeInfoMock);
         when(volumeInfoMock.getDataStore()).thenReturn(storeMock);
+        when(volumeInfoMock.getState()).thenReturn(Volume.State.Ready);
         when(storeMock.getId()).thenReturn(TEST_STORAGE_POOL_ID);
 
         when(snapshotFactory.getSnapshot(anyLong(), Mockito.any(DataStoreRole.class))).thenReturn(snapshotInfoMock);
+        when(_storageStrategyFactory.getSnapshotStrategy(Mockito.any(SnapshotVO.class), Mockito.eq(SnapshotOperation.BACKUP))).thenReturn(snapshotStrategy);
         when(_storageStrategyFactory.getSnapshotStrategy(Mockito.any(SnapshotVO.class), Mockito.eq(SnapshotOperation.REVERT))).thenReturn(snapshotStrategy);
         when(_storageStrategyFactory.getSnapshotStrategy(Mockito.any(SnapshotVO.class), Mockito.eq(SnapshotOperation.DELETE))).thenReturn(snapshotStrategy);
 
@@ -182,7 +193,7 @@
     public void testAllocSnapshotF1() throws ResourceAllocationException {
         when(_vmDao.findById(anyLong())).thenReturn(vmMock);
         when(vmMock.getState()).thenReturn(State.Destroyed);
-        _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null);
+        _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null);
     }
 
     // active snapshots
@@ -197,7 +208,7 @@
         List<SnapshotVO> mockList = mock(List.class);
         when(mockList.size()).thenReturn(1);
         when(_snapshotDao.listByInstanceId(TEST_VM_ID, Snapshot.State.Creating, Snapshot.State.CreatedOnPrimary, Snapshot.State.BackingUp)).thenReturn(mockList);
-        _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null);
+        _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null);
     }
 
     // active vm snapshots
@@ -215,7 +226,7 @@
         List<VMSnapshotVO> mockList2 = mock(List.class);
         when(mockList2.size()).thenReturn(1);
         when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2);
-        _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null);
+        _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null);
     }
 
     // successful test
@@ -234,17 +245,16 @@
         when(mockList2.size()).thenReturn(0);
         when(_vmSnapshotDao.listByInstanceId(TEST_VM_ID, VMSnapshot.State.Creating, VMSnapshot.State.Reverting, VMSnapshot.State.Expunging)).thenReturn(mockList2);
         when(_snapshotDao.persist(any(SnapshotVO.class))).thenReturn(snapshotMock);
-        _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null);
+        _snapshotMgr.allocSnapshot(TEST_VOLUME_ID, Snapshot.MANUAL_POLICY_ID, null, null);
     }
 
-    @Test
+    @Test(expected = InvalidParameterValueException.class)
     public void testDeleteSnapshotF1() {
         when(snapshotStrategy.deleteSnapshot(TEST_SNAPSHOT_ID)).thenReturn(true);
         when(snapshotMock.getState()).thenReturn(Snapshot.State.Destroyed);
         when(snapshotMock.getAccountId()).thenReturn(2L);
         when(snapshotMock.getDataCenterId()).thenReturn(2L);
-        boolean result =_snapshotMgr.deleteSnapshot(TEST_SNAPSHOT_ID);
-        Assert.assertTrue(result);
+        _snapshotMgr.deleteSnapshot(TEST_SNAPSHOT_ID);
     }
 
     // vm state not stopped
@@ -279,4 +289,46 @@
         Snapshot snapshot = _snapshotMgr.revertSnapshot(TEST_SNAPSHOT_ID);
         Assert.assertNotNull(snapshot);
     }
+
+    // vm on Xenserver, expected exception
+    @Test(expected = InvalidParameterValueException.class)
+    public void testBackupSnapshotFromVmSnapshotF1() {
+        when(_vmDao.findById(anyLong())).thenReturn(vmMock);
+        when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.XenServer);
+        Snapshot snapshot = _snapshotMgr.backupSnapshotFromVmSnapshot(TEST_SNAPSHOT_ID, TEST_VM_ID, TEST_VOLUME_ID, TEST_VM_SNAPSHOT_ID);
+        Assert.assertNull(snapshot);
+    }
+
+    // vm on KVM, first time
+    @Test
+    public void testBackupSnapshotFromVmSnapshotF2() {
+        when(_vmDao.findById(anyLong())).thenReturn(vmMock);
+        when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM);
+        when(_vmSnapshotDao.findById(anyLong())).thenReturn(vmSnapshotMock);
+        when(_snapshotStoreDao.findParent(any(DataStoreRole.class), anyLong(), anyLong())).thenReturn(null);
+        when(snapshotFactory.getSnapshot(anyLong(), Mockito.any(DataStore.class))).thenReturn(snapshotInfoMock);
+        when(storeMock.create(snapshotInfoMock)).thenReturn(snapshotInfoMock);
+        when(_snapshotStoreDao.findBySnapshot(anyLong(), any(DataStoreRole.class))).thenReturn(snapshotStoreMock);
+        when(_snapshotStoreDao.update(anyLong(), any(SnapshotDataStoreVO.class))).thenReturn(true);
+        when(_snapshotDao.update(anyLong(), any(SnapshotVO.class))).thenReturn(true);
+        when(vmMock.getAccountId()).thenReturn(2L);
+        when(snapshotStrategy.backupSnapshot(any(SnapshotInfo.class))).thenReturn(snapshotInfoMock);;;
+
+        Snapshot snapshot = _snapshotMgr.backupSnapshotFromVmSnapshot(TEST_SNAPSHOT_ID, TEST_VM_ID, TEST_VOLUME_ID, TEST_VM_SNAPSHOT_ID);
+        Assert.assertNotNull(snapshot);
+    }
+
+    // vm on KVM, already backed up
+    @Test(expected = InvalidParameterValueException.class)
+    public void testBackupSnapshotFromVmSnapshotF3() {
+        when(_vmDao.findById(anyLong())).thenReturn(vmMock);
+        when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM);
+        when(_vmSnapshotDao.findById(anyLong())).thenReturn(vmSnapshotMock);
+        when(_snapshotStoreDao.findParent(any(DataStoreRole.class), anyLong(), anyLong())).thenReturn(snapshotStoreMock);
+        when(snapshotStoreMock.getInstallPath()).thenReturn("VM_SNAPSHOT_NAME");
+        when(vmSnapshotMock.getName()).thenReturn("VM_SNAPSHOT_NAME");
+        Snapshot snapshot = _snapshotMgr.backupSnapshotFromVmSnapshot(TEST_SNAPSHOT_ID, TEST_VM_ID, TEST_VOLUME_ID, TEST_VM_SNAPSHOT_ID);
+        Assert.assertNull(snapshot);
+    }
+
 }
diff --git a/server/test/com/cloud/template/HypervisorTemplateAdapterTest.java b/server/test/com/cloud/template/HypervisorTemplateAdapterTest.java
index 50ed870..3a67748 100644
--- a/server/test/com/cloud/template/HypervisorTemplateAdapterTest.java
+++ b/server/test/com/cloud/template/HypervisorTemplateAdapterTest.java
@@ -241,7 +241,7 @@
 
         TemplateProfile profile = mock(TemplateProfile.class);
         when(profile.getTemplate()).thenReturn(template);
-        when(profile.getZoneId()).thenReturn(1l);
+        when(profile.getZoneIdList()).thenReturn(null);
 
         TemplateApiResult result = mock(TemplateApiResult.class);
         when(result.isSuccess()).thenReturn(true);
diff --git a/server/test/com/cloud/template/TemplateManagerImplTest.java b/server/test/com/cloud/template/TemplateManagerImplTest.java
index e6e9edd..3039b8b 100644
--- a/server/test/com/cloud/template/TemplateManagerImplTest.java
+++ b/server/test/com/cloud/template/TemplateManagerImplTest.java
@@ -45,6 +45,7 @@
 import com.cloud.storage.dao.SnapshotDao;
 import com.cloud.storage.dao.StoragePoolHostDao;
 import com.cloud.storage.dao.VMTemplateDao;
+import com.cloud.storage.dao.VMTemplateDetailsDao;
 import com.cloud.storage.dao.VMTemplatePoolDao;
 import com.cloud.storage.dao.VMTemplateZoneDao;
 import com.cloud.storage.dao.VolumeDao;
@@ -163,6 +164,9 @@
     SnapshotDao snapshotDao;
 
     @Inject
+    VMTemplateDetailsDao tmpltDetailsDao;
+
+    @Inject
     StorageStrategyFactory storageStrategyFactory;
 
     public class CustomThreadPoolExecutor extends ThreadPoolExecutor {
@@ -632,6 +636,11 @@
             return Mockito.mock(TemplateAdapter.class);
         }
 
+        @Bean
+        public VMTemplateDetailsDao vmTemplateDetailsDao() {
+            return Mockito.mock(VMTemplateDetailsDao.class);
+        }
+
         public static class Library implements TypeFilter {
             @Override
             public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
diff --git a/server/test/com/cloud/user/AccountManagerImplTest.java b/server/test/com/cloud/user/AccountManagerImplTest.java
index 9d32e19..9190cf8 100644
--- a/server/test/com/cloud/user/AccountManagerImplTest.java
+++ b/server/test/com/cloud/user/AccountManagerImplTest.java
@@ -22,9 +22,13 @@
 import java.util.Arrays;
 import java.util.List;
 
+import com.cloud.acl.DomainChecker;
+import com.cloud.exception.PermissionDeniedException;
 import com.cloud.server.auth.UserAuthenticator;
 import com.cloud.utils.Pair;
 
+import org.apache.cloudstack.api.command.admin.user.GetUserKeysCmd;
+import org.apache.cloudstack.context.CallContext;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -179,5 +183,38 @@
         Mockito.verify(userAuthenticator, Mockito.never()).authenticate("test", "", 1L, null);
     }
 
+    @Mock
+    AccountVO callingAccount;
+    @Mock
+    DomainChecker domainChecker;
+    @Mock
+    AccountService accountService;
+    @Mock
+    private GetUserKeysCmd _listkeyscmd;
+    @Mock
+    private Account _account;
+    @Mock
+    private User _user;
+    @Mock
+    private UserAccountVO userAccountVO;
 
+
+    @Test (expected = PermissionDeniedException.class)
+    public void testgetUserCmd(){
+        CallContext.register(callingUser, callingAccount); // Calling account is user account i.e normal account
+        Mockito.when(_listkeyscmd.getID()).thenReturn(1L);
+        Mockito.when(accountManager.getActiveUser(1L)).thenReturn(_user);
+        Mockito.when(accountManager.getUserAccountById(1L)).thenReturn(userAccountVO);
+        Mockito.when(userAccountVO.getAccountId()).thenReturn(1L);
+        Mockito.when(accountManager.getAccount(Mockito.anyLong())).thenReturn(_account); // Queried account - admin account
+
+        Mockito.when(callingUser.getAccountId()).thenReturn(1L);
+        Mockito.when(_accountDao.findById(1L)).thenReturn(callingAccount);
+
+        Mockito.when(accountService.isNormalUser(Mockito.anyLong())).thenReturn(Boolean.TRUE);
+        Mockito.when(_account.getAccountId()).thenReturn(2L);
+
+        accountManager.getKeys(_listkeyscmd);
+
+        }
 }
diff --git a/server/test/com/cloud/user/AccountManagerImplVolumeDeleteEventTest.java b/server/test/com/cloud/user/AccountManagerImplVolumeDeleteEventTest.java
index 43c8cfc..2397713 100644
--- a/server/test/com/cloud/user/AccountManagerImplVolumeDeleteEventTest.java
+++ b/server/test/com/cloud/user/AccountManagerImplVolumeDeleteEventTest.java
@@ -21,6 +21,7 @@
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.anyLong;
 import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.anyBoolean;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
@@ -118,7 +119,7 @@
         VirtualMachineEntity vmEntity = mock(VirtualMachineEntity.class);
 
         when(_orchSrvc.getVirtualMachine(anyString())).thenReturn(vmEntity);
-        when(vmEntity.destroy(anyString())).thenReturn(true);
+        when(vmEntity.destroy(anyString(), anyBoolean())).thenReturn(true);
 
         Mockito.doReturn(vm).when(_vmDao).findById(anyLong());
 
diff --git a/server/test/com/cloud/user/DomainManagerImplTest.java b/server/test/com/cloud/user/DomainManagerImplTest.java
index b1b2b92..03ab340 100644
--- a/server/test/com/cloud/user/DomainManagerImplTest.java
+++ b/server/test/com/cloud/user/DomainManagerImplTest.java
@@ -17,6 +17,26 @@
 
 package com.cloud.user;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.cloudstack.framework.messagebus.MessageBus;
+import org.apache.cloudstack.framework.messagebus.PublishScope;
+import org.apache.cloudstack.region.RegionManager;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.mockito.runners.MockitoJUnitRunner;
+
 import com.cloud.configuration.ConfigurationManager;
 import com.cloud.configuration.Resource.ResourceOwnerType;
 import com.cloud.configuration.dao.ResourceCountDao;
@@ -26,6 +46,8 @@
 import com.cloud.domain.Domain;
 import com.cloud.domain.DomainVO;
 import com.cloud.domain.dao.DomainDao;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.PermissionDeniedException;
 import com.cloud.network.dao.NetworkDomainDao;
 import com.cloud.projects.ProjectManager;
 import com.cloud.projects.dao.ProjectDao;
@@ -35,23 +57,9 @@
 import com.cloud.storage.dao.DiskOfferingDao;
 import com.cloud.user.dao.AccountDao;
 import com.cloud.utils.db.Filter;
+import com.cloud.utils.db.GlobalLock;
 import com.cloud.utils.db.SearchCriteria;
-import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
-import org.apache.cloudstack.framework.messagebus.MessageBus;
-import org.apache.cloudstack.region.RegionManager;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-
-import javax.inject.Inject;
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.UUID;
+import com.cloud.utils.exception.CloudRuntimeException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class DomainManagerImplTest {
@@ -86,23 +94,42 @@
     @Mock
     ConfigurationManager _configMgr;
 
-    DomainManagerImpl domainManager;
+    @Spy
+    @InjectMocks
+    DomainManagerImpl domainManager = new DomainManagerImpl();
+
+    @Mock
+    DomainVO domain;
+    @Mock
+    Account adminAccount;
+    @Mock
+    GlobalLock lock;
+
+    List<AccountVO> domainAccountsForCleanup;
+    List<Long> domainNetworkIds;
+    List<DedicatedResourceVO> domainDedicatedResources;
+
+    private static final long DOMAIN_ID = 3l;
+    private static final long ACCOUNT_ID = 1l;
+
+    private static boolean testDomainCleanup = false;
 
     @Before
     public void setup() throws NoSuchFieldException, SecurityException,
             IllegalArgumentException, IllegalAccessException {
-        domainManager = new DomainManagerImpl();
-        for (Field field : DomainManagerImpl.class.getDeclaredFields()) {
-            if (field.getAnnotation(Inject.class) != null) {
-                field.setAccessible(true);
-                try {
-                    Field mockField = this.getClass().getDeclaredField(
-                            field.getName());
-                    field.set(domainManager, mockField.get(this));
-                } catch (Exception ignored) {
-                }
-            }
-        }
+        Mockito.doReturn(adminAccount).when(domainManager).getCaller();
+        Mockito.doReturn(lock).when(domainManager).getGlobalLock("AccountCleanup");
+        Mockito.when(lock.lock(Mockito.anyInt())).thenReturn(true);
+        Mockito.when(_domainDao.findById(DOMAIN_ID)).thenReturn(domain);
+        Mockito.when(domain.getAccountId()).thenReturn(ACCOUNT_ID);
+        Mockito.when(domain.getId()).thenReturn(DOMAIN_ID);
+        Mockito.when(_domainDao.remove(DOMAIN_ID)).thenReturn(true);
+        domainAccountsForCleanup = new ArrayList<AccountVO>();
+        domainNetworkIds = new ArrayList<Long>();
+        domainDedicatedResources = new ArrayList<DedicatedResourceVO>();
+        Mockito.when(_accountDao.findCleanupsForRemovedAccounts(DOMAIN_ID)).thenReturn(domainAccountsForCleanup);
+        Mockito.when(_networkDomainDao.listNetworkIdsByDomain(DOMAIN_ID)).thenReturn(domainNetworkIds);
+        Mockito.when(_dedicatedDao.listByDomainId(DOMAIN_ID)).thenReturn(domainDedicatedResources);
     }
 
     @Test
@@ -147,6 +174,67 @@
         Assert.assertEquals(domain, domainManager.findDomainByIdOrPath(1L, "/validDomain/"));
     }
 
+    @Test(expected=InvalidParameterValueException.class)
+    public void testDeleteDomainNullDomain() {
+        Mockito.when(_domainDao.findById(DOMAIN_ID)).thenReturn(null);
+        domainManager.deleteDomain(DOMAIN_ID, testDomainCleanup);
+    }
+
+    @Test(expected=PermissionDeniedException.class)
+    public void testDeleteDomainRootDomain() {
+        Mockito.when(_domainDao.findById(Domain.ROOT_DOMAIN)).thenReturn(domain);
+        domainManager.deleteDomain(Domain.ROOT_DOMAIN, testDomainCleanup);
+    }
+
+    @Test
+    public void testDeleteDomainNoCleanup() {
+        Mockito.when(_configMgr.releaseDomainSpecificVirtualRanges(Mockito.anyLong())).thenReturn(true);
+        domainManager.deleteDomain(DOMAIN_ID, testDomainCleanup);
+        Mockito.verify(domainManager).deleteDomain(domain, testDomainCleanup);
+        Mockito.verify(domainManager).removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain);
+        Mockito.verify(domainManager).cleanupDomainOfferings(DOMAIN_ID);
+        Mockito.verify(lock).unlock();
+    }
+
+    @Test
+    public void testRemoveDomainWithNoAccountsForCleanupNetworksOrDedicatedResourcesRemoveDomain() {
+        domainManager.removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain);
+        Mockito.verify(domainManager).publishRemoveEventsAndRemoveDomain(domain);
+    }
+
+    @Test(expected=CloudRuntimeException.class)
+    public void testRemoveDomainWithNoAccountsForCleanupNetworksOrDedicatedResourcesDontRemoveDomain() {
+        domainNetworkIds.add(2l);
+        domainManager.removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain);
+        Mockito.verify(domainManager).failRemoveOperation(domain, domainAccountsForCleanup, domainNetworkIds, false);
+    }
+
+    @Test
+    public void testPublishRemoveEventsAndRemoveDomainSuccessfulDelete() {
+        domainManager.publishRemoveEventsAndRemoveDomain(domain);
+        Mockito.verify(_messageBus).publish(Mockito.anyString(), Matchers.eq(DomainManager.MESSAGE_PRE_REMOVE_DOMAIN_EVENT),
+                Matchers.eq(PublishScope.LOCAL), Matchers.eq(domain));
+        Mockito.verify(_messageBus).publish(Mockito.anyString(), Matchers.eq(DomainManager.MESSAGE_REMOVE_DOMAIN_EVENT),
+                Matchers.eq(PublishScope.LOCAL), Matchers.eq(domain));
+        Mockito.verify(_domainDao).remove(DOMAIN_ID);
+    }
+
+    @Test(expected=CloudRuntimeException.class)
+    public void testPublishRemoveEventsAndRemoveDomainExceptionDelete() {
+        Mockito.when(_domainDao.remove(DOMAIN_ID)).thenReturn(false);
+        domainManager.publishRemoveEventsAndRemoveDomain(domain);
+        Mockito.verify(_messageBus).publish(Mockito.anyString(), Matchers.eq(DomainManager.MESSAGE_PRE_REMOVE_DOMAIN_EVENT),
+                Matchers.eq(PublishScope.LOCAL), Matchers.eq(domain));
+        Mockito.verify(_messageBus, Mockito.never()).publish(Mockito.anyString(), Matchers.eq(DomainManager.MESSAGE_REMOVE_DOMAIN_EVENT),
+                Matchers.eq(PublishScope.LOCAL), Matchers.eq(domain));
+        Mockito.verify(_domainDao).remove(DOMAIN_ID);
+    }
+
+    @Test(expected=CloudRuntimeException.class)
+    public void testFailRemoveOperation() {
+        domainManager.failRemoveOperation(domain, domainAccountsForCleanup, domainNetworkIds, true);
+    }
+
     @Test
     public void deleteDomain() {
         DomainVO domain = new DomainVO();
diff --git a/server/test/com/cloud/user/MockAccountManagerImpl.java b/server/test/com/cloud/user/MockAccountManagerImpl.java
index fd85167..9429c86 100644
--- a/server/test/com/cloud/user/MockAccountManagerImpl.java
+++ b/server/test/com/cloud/user/MockAccountManagerImpl.java
@@ -22,6 +22,8 @@
 
 import javax.naming.ConfigurationException;
 
+import org.apache.cloudstack.api.command.admin.user.GetUserKeysCmd;
+import org.apache.cloudstack.framework.config.ConfigKey;
 import org.springframework.stereotype.Component;
 
 import org.apache.cloudstack.acl.ControlledEntity;
@@ -401,5 +403,24 @@
         return null;
     }
 
+    @Override
+    public Map<String, String> getKeys(GetUserKeysCmd cmd) {
+        return null;
+    }
+
+    @Override
+    public void checkAccess(User user, ControlledEntity entity)
+        throws PermissionDeniedException {
+
+    }
+    @Override
+    public String getConfigComponentName() {
+        return null;
+    }
+
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return null;
+    }
 
 }
diff --git a/server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java b/server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java
index 72960e3..272a4fc 100644
--- a/server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java
+++ b/server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java
@@ -31,7 +31,9 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Matchers;
+import org.mockito.Mock;
 import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan.Filter;
@@ -94,6 +96,7 @@
 import com.cloud.user.AccountManager;
 import com.cloud.utils.component.ComponentContext;
 import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
 @RunWith(SpringJUnit4ClassRunner.class)
@@ -121,7 +124,7 @@
     @Inject
     DataCenterDao _dcDao;
 
-    @Inject
+    @Mock
     FirstFitPlanner _planner;
 
     @Inject
@@ -130,6 +133,9 @@
     @Inject
     DedicatedResourceDao _dedicatedDao;
 
+    @Inject
+    UserVmDetailsDao vmDetailsDao;
+
     private static long domainId = 5L;
 
     private static long dataCenterId = 1L;
@@ -140,6 +146,8 @@
 
     @Before
     public void testSetUp() {
+        MockitoAnnotations.initMocks(this);
+
         ComponentContext.initComponentsLifeCycle();
 
         PlannerHostReservationVO reservationVO = new PlannerHostReservationVO(200L, 1L, 2L, 3L, PlannerResourceUsage.Shared);
@@ -150,6 +158,8 @@
         VMInstanceVO vm = new VMInstanceVO();
         Mockito.when(vmProfile.getVirtualMachine()).thenReturn(vm);
 
+        Mockito.when(vmDetailsDao.listDetailsKeyPairs(Matchers.anyLong())).thenReturn(null);
+
         Mockito.when(_dcDao.findById(Matchers.anyLong())).thenReturn(dc);
         Mockito.when(dc.getId()).thenReturn(dataCenterId);
 
@@ -383,6 +393,11 @@
         }
 
         @Bean
+        public UserVmDetailsDao userVmDetailsDao() {
+            return Mockito.mock(UserVmDetailsDao.class);
+        }
+
+        @Bean
         public VMInstanceDao vmInstanceDao() {
             return Mockito.mock(VMInstanceDao.class);
         }
diff --git a/server/test/com/cloud/vm/FirstFitPlannerTest.java b/server/test/com/cloud/vm/FirstFitPlannerTest.java
index b7b103b..85463de 100644
--- a/server/test/com/cloud/vm/FirstFitPlannerTest.java
+++ b/server/test/com/cloud/vm/FirstFitPlannerTest.java
@@ -30,9 +30,15 @@
 
 import javax.inject.Inject;
 
+import com.cloud.offering.ServiceOffering;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
+import org.apache.cloudstack.framework.config.ConfigDepot;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.ScopedConfigStorage;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.framework.config.impl.ConfigDepotImpl;
+import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.test.utils.SpringUtils;
 import org.junit.After;
@@ -63,6 +69,7 @@
 import com.cloud.dc.dao.DataCenterDao;
 import com.cloud.dc.dao.HostPodDao;
 import com.cloud.deploy.DataCenterDeployment;
+import com.cloud.deploy.DeploymentClusterPlanner;
 import com.cloud.deploy.DeploymentPlanner.ExcludeList;
 import com.cloud.deploy.FirstFitPlanner;
 import com.cloud.exception.InsufficientServerCapacityException;
@@ -86,6 +93,7 @@
 import com.cloud.utils.Pair;
 import com.cloud.utils.component.ComponentContext;
 import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
 @RunWith(SpringJUnit4ClassRunner.class)
@@ -101,6 +109,8 @@
     @Inject
     UserVmDao vmDao;
     @Inject
+    UserVmDetailsDao vmDetailsDao;
+    @Inject
     ConfigurationDao configDao;
     @Inject
     CapacityDao capacityDao;
@@ -114,6 +124,12 @@
     HostGpuGroupsDao hostGpuGroupsDao;
     @Inject
     HostTagsDao hostTagsDao;
+    @Inject
+    ConfigDepotImpl configDepot;
+    @Inject
+    ScopedConfigStorage scopedStorage;
+    @Inject
+    HostDao hostDao;
 
     private static long domainId = 1L;
     long dataCenterId = 1L;
@@ -126,6 +142,8 @@
 
     @Before
     public void setUp() {
+        ConfigKey.init(configDepot);
+
         when(configDao.getValue(Mockito.anyString())).thenReturn(null);
         when(configDao.getValue(Config.ImplicitHostTags.key())).thenReturn("GPU");
 
@@ -138,6 +156,7 @@
 
     @After
     public void tearDown() {
+        ConfigKey.init(null);
         CallContext.unregister();
     }
 
@@ -157,7 +176,77 @@
         reorderedClusterList.add(6L);
         reorderedClusterList.add(2L);
 
-        assertTrue("Reordered cluster list is not ownering the implict host tags", (clusterList.equals(reorderedClusterList)));
+        assertTrue("Reordered cluster list is not honoring the implict host tags", (clusterList.equals(reorderedClusterList)));
+    }
+
+    @Test
+    public void checkClusterReorderingForDeployVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException {
+        VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
+        DataCenterDeployment plan = mock(DataCenterDeployment.class);
+        ExcludeList avoids = mock(ExcludeList.class);
+        initializeForTest(vmProfile, plan, avoids);
+        List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled();
+
+        Map<String, String> details = new HashMap<String, String>();
+        details.put("deployvm", "true");
+        when(vmDetailsDao.listDetailsKeyPairs(vmProfile.getVirtualMachine().getId())).thenReturn(details);
+
+        List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);
+        assertTrue("Reordered cluster list have clusters exceeding threshold", (!clusterList.containsAll(clustersCrossingThreshold)));
+    }
+
+    @Test
+    public void checkClusterListBasedOnHostTag() throws InsufficientServerCapacityException {
+        VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
+        DataCenterDeployment plan = mock(DataCenterDeployment.class);
+        ExcludeList avoids = mock(ExcludeList.class);
+        initializeForTest(vmProfile, plan, avoids);
+        List<Long> matchingClusters = initializeForClusterListBasedOnHostTag(vmProfile.getServiceOffering());
+
+        List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);
+
+        assertTrue("Reordered cluster list have clusters which has hosts with specified host tag on offering", (clusterList.containsAll(matchingClusters)));
+        assertTrue("Reordered cluster list does not have clusters which dont have hosts with matching host tag on offering", (!clusterList.contains(2L)));
+    }
+
+    private List<Long> initializeForClusterListBasedOnHostTag(ServiceOffering offering) {
+
+
+        when(offering.getHostTag()).thenReturn("hosttag1");
+        initializeForClusterThresholdDisabled();
+        List<Long> matchingClusters = new ArrayList<>();
+        matchingClusters.add(3L);
+        matchingClusters.add(5L);
+        when(hostDao.listClustersByHostTag("hosttag1")).thenReturn(matchingClusters);
+
+        return matchingClusters;
+    }
+
+    @Test
+    public void checkClusterReorderingForStartVMWithThresholdCheckDisabled() throws InsufficientServerCapacityException {
+        VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
+        DataCenterDeployment plan = mock(DataCenterDeployment.class);
+        ExcludeList avoids = mock(ExcludeList.class);
+        initializeForTest(vmProfile, plan, avoids);
+        List<Long> clustersCrossingThreshold = initializeForClusterThresholdDisabled();
+
+        List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);
+        assertTrue("Reordered cluster list does not have clusters exceeding threshold", (clusterList.containsAll(clustersCrossingThreshold)));
+    }
+
+    private List<Long> initializeForClusterThresholdDisabled() {
+        when(configDepot.global()).thenReturn(configDao);
+
+        ConfigurationVO config = mock(ConfigurationVO.class);
+        when(config.getValue()).thenReturn(String.valueOf(false));
+        when(configDao.findById(DeploymentClusterPlanner.ClusterThresholdEnabled.key())).thenReturn(config);
+
+        List<Long> clustersCrossingThreshold = new ArrayList<Long>();
+        clustersCrossingThreshold.add(3L);
+        when(capacityDao.listClustersCrossingThreshold(
+                Mockito.anyShort(), Mockito.anyLong(), Mockito.anyString(), Mockito.anyLong())).thenReturn(clustersCrossingThreshold);
+
+        return clustersCrossingThreshold;
     }
 
     private void initializeForTest(VirtualMachineProfileImpl vmProfile, DataCenterDeployment plan, ExcludeList avoids) {
@@ -312,6 +401,11 @@
         }
 
         @Bean
+        public UserVmDetailsDao userVmDetailsDao() {
+            return Mockito.mock(UserVmDetailsDao.class);
+        }
+
+        @Bean
         public VMInstanceDao vmInstanceDao() {
             return Mockito.mock(VMInstanceDao.class);
         }
@@ -376,6 +470,16 @@
             return Mockito.mock(ResourceManager.class);
         }
 
+        @Bean
+        public ConfigDepot configDepot() {
+            return Mockito.mock(ConfigDepotImpl.class);
+        }
+
+        @Bean
+        public ScopedConfigStorage configStorage() {
+            return Mockito.mock(ScopedConfigStorage.class);
+        }
+
         public static class Library implements TypeFilter {
             @Override
             public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
diff --git a/server/test/com/cloud/vm/UserVmManagerTest.java b/server/test/com/cloud/vm/UserVmManagerTest.java
index 9df3f68..1bab84c 100644
--- a/server/test/com/cloud/vm/UserVmManagerTest.java
+++ b/server/test/com/cloud/vm/UserVmManagerTest.java
@@ -16,7 +16,8 @@
 // under the License.
 
 package com.cloud.vm;
-
+import static org.hamcrest.Matchers.instanceOf;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
@@ -36,7 +37,9 @@
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import com.cloud.network.element.UserDataServiceProvider;
@@ -44,6 +47,7 @@
 import com.cloud.user.User;
 import com.cloud.event.dao.UsageEventDao;
 import com.cloud.uservm.UserVm;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -236,6 +240,7 @@
         _userVmMgr._entityMgr = _entityMgr;
         _userVmMgr._storagePoolDao = _storagePoolDao;
         _userVmMgr._vmSnapshotDao = _vmSnapshotDao;
+        _userVmMgr._configDao = _configDao;
         _userVmMgr._nicDao = _nicDao;
         _userVmMgr._networkModel = _networkModel;
         _userVmMgr._networkDao = _networkDao;
@@ -260,6 +265,56 @@
 
     }
 
+
+    @Test
+    public void testValidateRootDiskResize()
+    {
+        HypervisorType hypervisorType = HypervisorType.Any;
+        Long rootDiskSize = Long.valueOf(10);
+        UserVmVO  vm = Mockito.mock(UserVmVO.class);
+        VMTemplateVO templateVO = Mockito.mock(VMTemplateVO.class);
+        Map<String, String> customParameters = new HashMap<String, String>();
+        Map<String, String> vmDetals = new HashMap<String, String>();
+
+
+        vmDetals.put("rootDiskController","ide");
+        when(vm.getDetails()).thenReturn(vmDetals);
+        when(templateVO.getSize()).thenReturn((rootDiskSize<<30)+1);
+        //Case 1: >
+        try{
+            _userVmMgr.validateRootDiskResize(hypervisorType, rootDiskSize, templateVO, vm, customParameters);
+            Assert.fail("Function should throw InvalidParameterValueException");
+        }catch(Exception e){
+            assertThat(e, instanceOf(InvalidParameterValueException.class));
+        }
+
+        //Case 2: =
+        when(templateVO.getSize()).thenReturn((rootDiskSize<<30));
+        customParameters.put("rootdisksize","10");
+        _userVmMgr.validateRootDiskResize(hypervisorType, rootDiskSize, templateVO, vm, customParameters);
+        assert(!customParameters.containsKey("rootdisksize"));
+
+        when(templateVO.getSize()).thenReturn((rootDiskSize<<30)-1);
+
+        //Case 3:  <
+
+        //Case 3.1: HypervisorType!=VMware
+        _userVmMgr.validateRootDiskResize(hypervisorType, rootDiskSize, templateVO, vm, customParameters);
+
+        hypervisorType = HypervisorType.VMware;
+        //Case 3.2:   0->(rootDiskController!=scsi)
+        try {
+            _userVmMgr.validateRootDiskResize(hypervisorType, rootDiskSize, templateVO, vm, customParameters);
+            Assert.fail("Function should throw InvalidParameterValueException");
+        }catch(Exception e) {
+            assertThat(e, instanceOf(InvalidParameterValueException.class));
+        }
+
+        //Case 3.3:   1->(rootDiskController==scsi)
+        vmDetals.put("rootDiskController","scsi");
+        _userVmMgr.validateRootDiskResize(hypervisorType, rootDiskSize, templateVO, vm, customParameters);
+    }
+
     // Test restoreVm when VM state not in running/stopped case
     @Test(expected = CloudRuntimeException.class)
     public void testRestoreVMF1() throws ResourceAllocationException, InsufficientCapacityException, ResourceUnavailableException {
@@ -690,7 +745,7 @@
 
         when(_accountService.getActiveAccountById(anyLong())).thenReturn(oldAccount);
 
-        when(_accountService.getActiveAccountByName(anyString(), anyLong())).thenReturn(newAccount);
+        when(_accountMgr.finalizeOwner(any(Account.class), anyString(), anyLong(), anyLong())).thenReturn(newAccount);
 
         doThrow(new PermissionDeniedException("Access check failed")).when(_accountMgr).checkAccess(any(Account.class), any(AccessType.class), any(Boolean.class),
             any(ControlledEntity.class));
diff --git a/server/test/com/cloud/vm/snapshot/VMSnapshotManagerTest.java b/server/test/com/cloud/vm/snapshot/VMSnapshotManagerTest.java
index 9d1ed4f..2cf763f 100644
--- a/server/test/com/cloud/vm/snapshot/VMSnapshotManagerTest.java
+++ b/server/test/com/cloud/vm/snapshot/VMSnapshotManagerTest.java
@@ -16,6 +16,7 @@
 // under the License.
 package com.cloud.vm.snapshot;
 
+import static org.junit.Assert.assertEquals;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyLong;
 import static org.mockito.Matchers.anyString;
@@ -23,30 +24,45 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.never;
 
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.mockito.Spy;
 
 import org.apache.cloudstack.acl.ControlledEntity;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.api.ResourceDetail;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.exception.AgentUnavailableException;
+import com.cloud.exception.ConcurrentOperationException;
 import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.ManagementServerException;
 import com.cloud.exception.OperationTimedoutException;
 import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.exception.VirtualMachineMigrationException;
 import com.cloud.host.dao.HostDao;
 import com.cloud.hypervisor.Hypervisor;
 import com.cloud.hypervisor.HypervisorGuruManager;
 import com.cloud.hypervisor.dao.HypervisorCapabilitiesDao;
+import com.cloud.service.ServiceOfferingVO;
+import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.service.dao.ServiceOfferingDetailsDao;
 import com.cloud.storage.GuestOSVO;
 import com.cloud.storage.Snapshot;
@@ -59,14 +75,19 @@
 import com.cloud.user.AccountManager;
 import com.cloud.user.dao.AccountDao;
 import com.cloud.user.dao.UserDao;
+import com.cloud.uservm.UserVm;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.fsm.NoTransitionException;
+import com.cloud.vm.UserVmDetailVO;
+import com.cloud.vm.UserVmManager;
 import com.cloud.vm.UserVmVO;
 import com.cloud.vm.VirtualMachine.State;
 import com.cloud.vm.VirtualMachineManager;
 import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 import com.cloud.vm.snapshot.dao.VMSnapshotDao;
+import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
 
 public class VMSnapshotManagerTest {
     @Spy
@@ -107,13 +128,52 @@
     HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
     @Mock
     ServiceOfferingDetailsDao _serviceOfferingDetailsDao;
+    @Mock
+    ServiceOfferingDao _serviceOfferingDao;
+    @Mock
+    UserVmDetailsDao _userVmDetailsDao;
+    @Mock
+    VMSnapshotDetailsDao _vmSnapshotDetailsDao;
+    @Mock
+    UserVmManager _userVmManager;
     int _vmSnapshotMax = 10;
 
     private static final long TEST_VM_ID = 3L;
+    private static final long SERVICE_OFFERING_ID = 1L;
+    private static final long SERVICE_OFFERING_DIFFERENT_ID = 2L;
+    private static VMSnapshot.Type vmSnapshotType;
+    private static List<UserVmDetailVO> userVmDetails;
+    private static List<VMSnapshotDetailsVO> vmSnapshotDetails;
+
+    private static final long VM_SNAPSHOT_ID = 1L;
+    private static final String VM_SNAPSHOT_NAME = "Vm-Snapshot-Name";
+    private static final String VM_SNAPSHOT_DESCRIPTION = "Vm-Snapshot-Desc";
+    private static final String VM_SNAPSHOT_DISPLAY_NAME = "Vm-Snapshot-Display-Name";
     @Mock
     UserVmVO vmMock;
     @Mock
     VolumeVO volumeMock;
+    @Mock
+    VMSnapshotVO vmSnapshotVO;
+    @Mock
+    ServiceOfferingVO serviceOffering;
+    @Mock
+    UserVmDetailVO userVmDetailCpuNumber;
+    @Mock
+    UserVmDetailVO userVmDetailMemory;
+    @Mock
+    VMSnapshotDetailsVO vmSnapshotDetailCpuNumber;
+    @Mock
+    VMSnapshotDetailsVO vmSnapshotDetailMemory;
+    @Mock
+    UserVm userVm;
+
+    @Captor
+    ArgumentCaptor<List<VMSnapshotDetailsVO>> listVmSnapshotDetailsCaptor;
+    @Captor
+    ArgumentCaptor<Map<String,String>> mapDetailsCaptor;
+    @Captor
+    ArgumentCaptor<List<UserVmDetailVO>> listUserVmDetailsCaptor;
 
     @Before
     public void setup() {
@@ -133,6 +193,11 @@
 
         _vmSnapshotMgr._vmSnapshotMax = _vmSnapshotMax;
 
+        _vmSnapshotMgr._serviceOfferingDao = _serviceOfferingDao;
+        _vmSnapshotMgr._userVmDetailsDao = _userVmDetailsDao;
+        _vmSnapshotMgr._vmSnapshotDetailsDao = _vmSnapshotDetailsDao;
+        _vmSnapshotMgr._userVmManager = _userVmManager;
+
         when(_userVMDao.findById(anyLong())).thenReturn(vmMock);
         when(_vmSnapshotDao.findByName(anyLong(), anyString())).thenReturn(null);
         when(_vmSnapshotDao.findByVm(anyLong())).thenReturn(new ArrayList<VMSnapshotVO>());
@@ -144,10 +209,40 @@
         when(volumeMock.getInstanceId()).thenReturn(TEST_VM_ID);
         when(_volumeDao.findByInstance(anyLong())).thenReturn(mockVolumeList);
 
+        when(vmMock.getId()).thenReturn(TEST_VM_ID);
+        when(vmMock.getServiceOfferingId()).thenReturn(SERVICE_OFFERING_ID);
+        when(vmMock.getAccountId()).thenReturn(1L);
+        when(vmMock.getDomainId()).thenReturn(1L);
         when(vmMock.getInstanceName()).thenReturn("i-3-VM-TEST");
         when(vmMock.getState()).thenReturn(State.Running);
         when(vmMock.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.XenServer);
         when(_guestOSDao.findById(anyLong())).thenReturn(mock(GuestOSVO.class));
+
+        when(vmSnapshotVO.getId()).thenReturn(VM_SNAPSHOT_ID);
+        when(serviceOffering.isDynamic()).thenReturn(false);
+        when(_serviceOfferingDao.findById(SERVICE_OFFERING_ID)).thenReturn(serviceOffering);
+
+        for (ResourceDetail detail : Arrays.asList(userVmDetailCpuNumber, vmSnapshotDetailCpuNumber)) {
+            when(detail.getName()).thenReturn("cpuNumber");
+            when(detail.getValue()).thenReturn("2");
+            when(detail.isDisplay()).thenReturn(true);
+        }
+
+        for (ResourceDetail detail : Arrays.asList(userVmDetailMemory, vmSnapshotDetailMemory)) {
+            when(detail.getName()).thenReturn("memory");
+            when(detail.getValue()).thenReturn("2048");
+            when(detail.isDisplay()).thenReturn(true);
+        }
+
+        userVmDetails = Arrays.asList(userVmDetailCpuNumber, userVmDetailMemory);
+        vmSnapshotDetails = Arrays.asList(vmSnapshotDetailCpuNumber, vmSnapshotDetailMemory);
+        when(_userVmDetailsDao.listDetails(TEST_VM_ID)).thenReturn(userVmDetails);
+        when(_vmSnapshotDetailsDao.listDetails(VM_SNAPSHOT_ID)).thenReturn(vmSnapshotDetails);
+
+        when(userVm.getId()).thenReturn(TEST_VM_ID);
+        when(userVm.getServiceOfferingId()).thenReturn(SERVICE_OFFERING_ID);
+
+        when(vmSnapshotVO.getServiceOfferingId()).thenReturn(SERVICE_OFFERING_ID);
     }
 
     // vmId null case
@@ -207,4 +302,104 @@
 
     }
 
+    @Test
+    public void testCreateAndPersistVMSnapshot() {
+        when(_vmSnapshotDao.persist(any(VMSnapshotVO.class))).thenReturn(vmSnapshotVO);
+        _vmSnapshotMgr.createAndPersistVMSnapshot(vmMock, VM_SNAPSHOT_DESCRIPTION,
+                VM_SNAPSHOT_NAME, VM_SNAPSHOT_DISPLAY_NAME, vmSnapshotType);
+
+        verify(_vmSnapshotMgr).addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
+    }
+
+    @Test(expected=CloudRuntimeException.class)
+    public void testCreateAndPersistVMSnapshotNullVMSnapshot() {
+        when(_vmSnapshotDao.persist(any(VMSnapshotVO.class))).thenReturn(null);
+        _vmSnapshotMgr.createAndPersistVMSnapshot(vmMock, VM_SNAPSHOT_DESCRIPTION,
+                VM_SNAPSHOT_NAME, VM_SNAPSHOT_DISPLAY_NAME, vmSnapshotType);
+    }
+
+    @Test
+    public void testAddSupportForCustomServiceOfferingNotDynamicServiceOffering() {
+        _vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
+        verify(_userVmDetailsDao, never()).listDetails(TEST_VM_ID);
+    }
+
+    @Test
+    public void testAddSupportForCustomServiceOfferingDynamicServiceOffering() {
+        when(serviceOffering.isDynamic()).thenReturn(true);
+        _vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
+
+        verify(_userVmDetailsDao).listDetails(TEST_VM_ID);
+        verify(_vmSnapshotDetailsDao).saveDetails(listVmSnapshotDetailsCaptor.capture());
+    }
+
+    @Test
+    public void testUpdateUserVmServiceOfferingSameServiceOffering() {
+        _vmSnapshotMgr.updateUserVmServiceOffering(userVm, vmSnapshotVO);
+        verify(_vmSnapshotMgr, never()).changeUserVmServiceOffering(userVm, vmSnapshotVO);
+    }
+
+    @Test
+    public void testUpdateUserVmServiceOfferingDifferentServiceOffering() throws ConcurrentOperationException, ResourceUnavailableException, ManagementServerException, VirtualMachineMigrationException {
+        when(userVm.getServiceOfferingId()).thenReturn(SERVICE_OFFERING_DIFFERENT_ID);
+        when(_userVmManager.upgradeVirtualMachine(Matchers.eq(TEST_VM_ID), Matchers.eq(SERVICE_OFFERING_ID), mapDetailsCaptor.capture())).thenReturn(true);
+        _vmSnapshotMgr.updateUserVmServiceOffering(userVm, vmSnapshotVO);
+
+        verify(_vmSnapshotMgr).changeUserVmServiceOffering(userVm, vmSnapshotVO);
+        verify(_vmSnapshotMgr).getVmMapDetails(userVm);
+        verify(_vmSnapshotMgr).upgradeUserVmServiceOffering(Matchers.eq(TEST_VM_ID), Matchers.eq(SERVICE_OFFERING_ID), mapDetailsCaptor.capture());
+    }
+
+    @Test
+    public void testGetVmMapDetails() {
+        Map<String, String> result = _vmSnapshotMgr.getVmMapDetails(userVm);
+        assert(result.containsKey(userVmDetailCpuNumber.getName()));
+        assert(result.containsKey(userVmDetailMemory.getName()));
+        assertEquals(userVmDetails.size(), result.size());
+        assertEquals(userVmDetailCpuNumber.getValue(), result.get(userVmDetailCpuNumber.getName()));
+        assertEquals(userVmDetailMemory.getValue(), result.get(userVmDetailMemory.getName()));
+    }
+
+    @Test
+    public void testChangeUserVmServiceOffering() throws ConcurrentOperationException, ResourceUnavailableException, ManagementServerException, VirtualMachineMigrationException {
+        when(_userVmManager.upgradeVirtualMachine(Matchers.eq(TEST_VM_ID), Matchers.eq(SERVICE_OFFERING_ID), mapDetailsCaptor.capture())).thenReturn(true);
+        _vmSnapshotMgr.changeUserVmServiceOffering(userVm, vmSnapshotVO);
+        verify(_vmSnapshotMgr).getVmMapDetails(userVm);
+        verify(_vmSnapshotMgr).upgradeUserVmServiceOffering(Matchers.eq(TEST_VM_ID), Matchers.eq(SERVICE_OFFERING_ID), mapDetailsCaptor.capture());
+    }
+
+    @Test(expected=CloudRuntimeException.class)
+    public void testChangeUserVmServiceOfferingFailOnUpgradeVMServiceOffering() throws ConcurrentOperationException, ResourceUnavailableException, ManagementServerException, VirtualMachineMigrationException {
+        when(_userVmManager.upgradeVirtualMachine(Matchers.eq(TEST_VM_ID), Matchers.eq(SERVICE_OFFERING_ID), mapDetailsCaptor.capture())).thenReturn(false);
+        _vmSnapshotMgr.changeUserVmServiceOffering(userVm, vmSnapshotVO);
+        verify(_vmSnapshotMgr).getVmMapDetails(userVm);
+        verify(_vmSnapshotMgr).upgradeUserVmServiceOffering(Matchers.eq(TEST_VM_ID), Matchers.eq(SERVICE_OFFERING_ID), mapDetailsCaptor.capture());
+    }
+
+    @Test
+    public void testUpgradeUserVmServiceOffering() throws ConcurrentOperationException, ResourceUnavailableException, ManagementServerException, VirtualMachineMigrationException {
+        Map<String, String> details = new HashMap<String, String>() {{
+                put(userVmDetailCpuNumber.getName(), userVmDetailCpuNumber.getValue());
+                put(userVmDetailMemory.getName(), userVmDetailMemory.getValue());
+        }};
+        when(_userVmManager.upgradeVirtualMachine(TEST_VM_ID, SERVICE_OFFERING_ID, details)).thenReturn(true);
+        _vmSnapshotMgr.upgradeUserVmServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, details);
+
+        verify(_userVmManager).upgradeVirtualMachine(TEST_VM_ID, SERVICE_OFFERING_ID, details);
+    }
+
+    @Test
+    public void testRevertUserVmDetailsFromVmSnapshotNotDynamicServiceOffering() {
+        _vmSnapshotMgr.revertUserVmDetailsFromVmSnapshot(vmMock, vmSnapshotVO);
+        verify(_vmSnapshotDetailsDao, never()).listDetails(anyLong());
+    }
+
+    @Test
+    public void testRevertUserVmDetailsFromVmSnapshotDynamicServiceOffering() {
+        when(serviceOffering.isDynamic()).thenReturn(true);
+        _vmSnapshotMgr.revertUserVmDetailsFromVmSnapshot(vmMock, vmSnapshotVO);
+        verify(_vmSnapshotDetailsDao).listDetails(VM_SNAPSHOT_ID);
+        verify(_userVmDetailsDao).saveDetails(listUserVmDetailsCaptor.capture());
+    }
+
 }
diff --git a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
index a5d8a1a..d61378b 100644
--- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
@@ -59,6 +59,7 @@
 import com.cloud.network.dao.NetworkServiceMapDao;
 import com.cloud.network.dao.NetworkVO;
 import com.cloud.network.element.DhcpServiceProvider;
+import com.cloud.network.element.DnsServiceProvider;
 import com.cloud.network.element.LoadBalancingServiceProvider;
 import com.cloud.network.element.NetworkElement;
 import com.cloud.network.element.StaticNatServiceProvider;
@@ -247,7 +248,7 @@
      */
     @Override
     public Network updateGuestNetwork(long networkId, String name, String displayText, Account callerAccount, User callerUser, String domainSuffix,
-        Long networkOfferingId, Boolean changeCidr, String guestVmCidr, Boolean displayNetwork, String newUUID) {
+        Long networkOfferingId, Boolean changeCidr, String guestVmCidr, Boolean displayNetwork, String newUUID,boolean updateInSequence, boolean forced) {
         // TODO Auto-generated method stub
         return null;
     }
@@ -799,7 +800,7 @@
     }
 
     @Override
-    public List<? extends Nic> listVmNics(long vmId, Long nicId, Long networkId) {
+    public List<? extends Nic> listVmNics(long vmId, Long nicId, Long networkId, String keyword) {
         // TODO Auto-generated method stub
         return null;
     }
@@ -827,6 +828,11 @@
     }
 
     @Override
+    public DnsServiceProvider getDnsServiceProvider(Network network) {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    @Override
     public void removeDhcpServiceInSubnet(Nic nic) {
         //To change body of implemented methods use File | Settings | File Templates.
     }
@@ -842,6 +848,36 @@
     }
 
     @Override
+    public boolean canUpdateInSequence(Network network, boolean forced) {
+        return false;
+    }
+
+    @Override
+    public List<String> getServicesNotSupportedInNewOffering(Network network, long newNetworkOfferingId) {
+        return null;
+    }
+
+    @Override
+    public void cleanupConfigForServicesInNetwork(List<String> services, Network network) {
+        return;
+    }
+
+    @Override
+    public void configureUpdateInSequence(Network network) {
+        return;
+    }
+
+    @Override
+    public int getResourceCount(Network network) {
+        return 0;
+    }
+
+    @Override
+    public void finalizeUpdateInSequence(Network network, boolean success) {
+        return;
+    }
+
+    @Override
     public void prepareNicForMigration(VirtualMachineProfile vm, DeployDestination dest) {
         // TODO Auto-generated method stub
 
@@ -870,4 +906,9 @@
         return false;  //To change body of implemented methods use File | Settings | File Templates.
     }
 
+    @Override
+    public List<? extends NicSecondaryIp> listVmNicSecondaryIps(ListNicsCmd listNicsCmd) {
+        return null;
+    }
+
 }
diff --git a/server/test/com/cloud/vpc/MockNetworkModelImpl.java b/server/test/com/cloud/vpc/MockNetworkModelImpl.java
index 93b31e9..89a7ab7 100644
--- a/server/test/com/cloud/vpc/MockNetworkModelImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkModelImpl.java
@@ -508,9 +508,14 @@
         return false;
     }
 
+    @Override
+    public boolean providerSupportsCapability(Set<Provider> providers, Service service, Capability cap) {
+        return false;
+    }
+
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkModel#checkCapabilityForProvider(java.util.Set, com.cloud.network.Network.Service, com.cloud.network.Network.Capability, java.lang.String)
-     */
+         * @see com.cloud.network.NetworkModel#checkCapabilityForProvider(java.util.Set, com.cloud.network.Network.Service, com.cloud.network.Network.Capability, java.lang.String)
+         */
     @Override
     public void checkCapabilityForProvider(Set<Provider> providers, Service service, Capability cap, String capValue) {
         // TODO Auto-generated method stub
diff --git a/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java b/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java
index e80b1cf..757b024 100644
--- a/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java
+++ b/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java
@@ -106,7 +106,7 @@
      * @see com.cloud.network.dao.NetworkDao#getNextAvailableMacAddress(long)
      */
     @Override
-    public String getNextAvailableMacAddress(final long networkConfigId) {
+    public String getNextAvailableMacAddress(final long networkConfigId, Integer zoneMacIdentifier) {
         // TODO Auto-generated method stub
         return null;
     }
diff --git a/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java b/server/test/org/apache/cloudstack/network/ssl/CertServiceTest.java
similarity index 80%
rename from server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
rename to server/test/org/apache/cloudstack/network/ssl/CertServiceTest.java
index b71b8a0..88b0b69 100644
--- a/server/test/org/apache/cloudstack/network/lb/CertServiceTest.java
+++ b/server/test/org/apache/cloudstack/network/ssl/CertServiceTest.java
@@ -14,7 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-package org.apache.cloudstack.network.lb;
+package org.apache.cloudstack.network.ssl;
 
 import com.cloud.domain.DomainVO;
 import com.cloud.domain.dao.DomainDao;
@@ -35,9 +35,11 @@
 import org.apache.cloudstack.api.command.user.loadbalancer.UploadSslCertCmd;
 import org.apache.cloudstack.context.CallContext;
 import org.junit.After;
+import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Matchers;
 import org.mockito.Mockito;
 
 import java.io.File;
@@ -50,11 +52,6 @@
 import java.util.UUID;
 
 import static org.apache.commons.io.FileUtils.readFileToString;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.when;
 
 public class CertServiceTest {
@@ -111,17 +108,17 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         certService._accountDao = Mockito.mock(AccountDao.class);
-        when(certService._accountDao.findByIdIncludingRemoved(anyLong())).thenReturn((AccountVO)account);
+        when(certService._accountDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn((AccountVO)account);
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -162,17 +159,17 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         certService._accountDao = Mockito.mock(AccountDao.class);
-        when(certService._accountDao.findByIdIncludingRemoved(anyLong())).thenReturn((AccountVO)account);
+        when(certService._accountDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn((AccountVO)account);
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -212,17 +209,17 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         certService._accountDao = Mockito.mock(AccountDao.class);
-        when(certService._accountDao.findByIdIncludingRemoved(anyLong())).thenReturn((AccountVO)account);
+        when(certService._accountDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn((AccountVO)account);
 
         //creating the command
         UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -259,14 +256,14 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -286,9 +283,9 @@
 
         try {
             certService.uploadSslCert(uploadCmd);
-            fail("The chain given is not the correct chain for the certificate");
+            Assert.fail("The chain given is not the correct chain for the certificate");
         } catch (final Exception e) {
-            assertTrue(e.getMessage().contains("Invalid certificate chain"));
+            Assert.assertTrue(e.getMessage().contains("Invalid certificate chain"));
         }
     }
 
@@ -311,14 +308,14 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -338,9 +335,9 @@
 
         try {
             certService.uploadSslCert(uploadCmd);
-            fail("Chain is given but does not link to the certificate");
+            Assert.fail("Chain is given but does not link to the certificate");
         } catch (final Exception e) {
-            assertTrue(e.getMessage().contains("Invalid certificate chain"));
+            Assert.assertTrue(e.getMessage().contains("Invalid certificate chain"));
         }
 
     }
@@ -361,14 +358,14 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -388,9 +385,9 @@
 
         try {
             certService.uploadSslCert(uploadCmd);
-            fail("Given an encrypted private key with a bad password. Upload should fail.");
+            Assert.fail("Given an encrypted private key with a bad password. Upload should fail.");
         } catch (final Exception e) {
-            assertTrue("Did not expect message: " + e.getMessage(),
+            Assert.assertTrue("Did not expect message: " + e.getMessage(),
                     e.getMessage().contains("Parsing certificate/key failed: Invalid Key format."));
         }
 
@@ -410,14 +407,14 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -434,7 +431,7 @@
         try {
             certService.uploadSslCert(uploadCmd);
         } catch (final Exception e) {
-            assertTrue(e.getMessage().contains("Bad public-private key"));
+            Assert.assertTrue(e.getMessage().contains("Bad public-private key"));
         }
     }
 
@@ -453,14 +450,14 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -476,9 +473,9 @@
 
         try {
             certService.uploadSslCert(uploadCmd);
-            fail("Given a private key which has a different algorithm than the certificate, upload should fail");
+            Assert.fail("Given a private key which has a different algorithm than the certificate, upload should fail");
         } catch (final Exception e) {
-            assertTrue("Did not expect message: " + e.getMessage(),
+            Assert.assertTrue("Did not expect message: " + e.getMessage(),
                     e.getMessage().contains("Parsing certificate/key failed: Invalid Key format."));
         }
     }
@@ -498,14 +495,14 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -521,10 +518,10 @@
 
         try {
             certService.uploadSslCert(uploadCmd);
-            fail("Given an expired certificate, upload should fail");
+            Assert.fail("Given an expired certificate, upload should fail");
         } catch (final Exception e) {
             System.out.println(e.getMessage());
-            assertTrue(e.getMessage().contains("Parsing certificate/key failed: NotAfter:"));
+            Assert.assertTrue(e.getMessage().contains("Parsing certificate/key failed: NotAfter:"));
         }
     }
 
@@ -542,14 +539,14 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -565,9 +562,9 @@
 
         try {
             certService.uploadSslCert(uploadCmd);
-            fail("Given a Certificate which is not X509, upload should fail");
+            Assert.fail("Given a Certificate which is not X509, upload should fail");
         } catch (final Exception e) {
-            assertTrue(e.getMessage().contains("Expected X509 certificate"));
+            Assert.assertTrue(e.getMessage().contains("Expected X509 certificate"));
         }
     }
 
@@ -586,14 +583,14 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.persist(any(SslCertVO.class))).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.persist(Matchers.any(SslCertVO.class))).thenReturn(new SslCertVO());
 
         //creating the command
         final UploadSslCertCmd uploadCmd = new UploadSslCertCmdExtn();
@@ -608,7 +605,7 @@
         keyField.set(uploadCmd, key);
 
         certService.uploadSslCert(uploadCmd);
-        fail("Given a Certificate in bad format (Not PEM), upload should fail");
+        Assert.fail("Given a Certificate in bad format (Not PEM), upload should fail");
     }
 
     @Test
@@ -625,20 +622,20 @@
         //setting mock objects
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.remove(anyLong())).thenReturn(true);
-        when(certService._sslCertDao.findById(anyLong())).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.remove(Matchers.anyLong())).thenReturn(true);
+        when(certService._sslCertDao.findById(Matchers.anyLong())).thenReturn(new SslCertVO());
 
         // a rule holding the cert
 
         certService._lbCertDao = Mockito.mock(LoadBalancerCertMapDao.class);
-        when(certService._lbCertDao.listByCertId(anyLong())).thenReturn(null);
+        when(certService._lbCertDao.listByCertId(Matchers.anyLong())).thenReturn(null);
 
         //creating the command
         final DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
@@ -663,27 +660,27 @@
 
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.remove(anyLong())).thenReturn(true);
-        when(certService._sslCertDao.findById(anyLong())).thenReturn(new SslCertVO());
+        when(certService._sslCertDao.remove(Matchers.anyLong())).thenReturn(true);
+        when(certService._sslCertDao.findById(Matchers.anyLong())).thenReturn(new SslCertVO());
 
         // rule holding the cert
         certService._lbCertDao = Mockito.mock(LoadBalancerCertMapDao.class);
 
-        final List<LoadBalancerCertMapVO> lbMapList = new ArrayList<LoadBalancerCertMapVO>();
+        final List<LoadBalancerCertMapVO> lbMapList = new ArrayList<>();
         lbMapList.add(new LoadBalancerCertMapVO());
 
         certService._lbCertDao = Mockito.mock(LoadBalancerCertMapDao.class);
-        when(certService._lbCertDao.listByCertId(anyLong())).thenReturn(lbMapList);
+        when(certService._lbCertDao.listByCertId(Matchers.anyLong())).thenReturn(lbMapList);
 
         certService._entityMgr = Mockito.mock(EntityManager.class);
-        when(certService._entityMgr.findById(eq(LoadBalancerVO.class), anyLong())).thenReturn(new LoadBalancerVO());
+        when(certService._entityMgr.findById(Matchers.eq(LoadBalancerVO.class), Matchers.anyLong())).thenReturn(new LoadBalancerVO());
 
         //creating the command
         final DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
@@ -695,9 +692,9 @@
 
         try {
             certService.deleteSslCert(deleteCmd);
-            fail("Delete with a cert id bound to a lb should fail");
+            Assert.fail("Delete with a cert id bound to a lb should fail");
         } catch (final Exception e) {
-            assertTrue(e.getMessage().contains("Certificate in use by a loadbalancer"));
+            Assert.assertTrue(e.getMessage().contains("Certificate in use by a loadbalancer"));
         }
 
     }
@@ -711,19 +708,19 @@
 
         certService._accountMgr = Mockito.mock(AccountManager.class);
         final Account account = new AccountVO("testaccount", 1, "networkdomain", (short)0, UUID.randomUUID().toString());
-        when(certService._accountMgr.getAccount(anyLong())).thenReturn(account);
+        when(certService._accountMgr.getAccount(Matchers.anyLong())).thenReturn(account);
 
         certService._domainDao = Mockito.mock(DomainDao.class);
         final DomainVO domain = new DomainVO("networkdomain", 1L, 1L, "networkdomain");
-        when(certService._domainDao.findByIdIncludingRemoved(anyLong())).thenReturn(domain);
+        when(certService._domainDao.findByIdIncludingRemoved(Matchers.anyLong())).thenReturn(domain);
 
         certService._sslCertDao = Mockito.mock(SslCertDao.class);
-        when(certService._sslCertDao.remove(anyLong())).thenReturn(true);
-        when(certService._sslCertDao.findById(anyLong())).thenReturn(null);
+        when(certService._sslCertDao.remove(Matchers.anyLong())).thenReturn(true);
+        when(certService._sslCertDao.findById(Matchers.anyLong())).thenReturn(null);
 
         // no rule holding the cert
         certService._lbCertDao = Mockito.mock(LoadBalancerCertMapDao.class);
-        when(certService._lbCertDao.listByCertId(anyLong())).thenReturn(null);
+        when(certService._lbCertDao.listByCertId(Matchers.anyLong())).thenReturn(null);
 
         //creating the command
         final DeleteSslCertCmd deleteCmd = new DeleteSslCertCmdExtn();
@@ -735,9 +732,9 @@
 
         try {
             certService.deleteSslCert(deleteCmd);
-            fail("Delete with an invalid ID should fail");
+            Assert.fail("Delete with an invalid ID should fail");
         } catch (final Exception e) {
-            assertTrue(e.getMessage().contains("Invalid certificate id"));
+            Assert.assertTrue(e.getMessage().contains("Invalid certificate id"));
         }
 
     }
diff --git a/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java b/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
index 343589c..92d421c 100644
--- a/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
+++ b/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
@@ -19,6 +19,7 @@
 
 import java.io.IOException;
 
+import com.cloud.network.dao.FirewallRulesDcidrsDaoImpl;
 import com.cloud.storage.StorageManager;
 import org.mockito.Mockito;
 import org.springframework.context.annotation.Bean;
@@ -41,6 +42,8 @@
 import org.apache.cloudstack.region.PortableIpDaoImpl;
 import org.apache.cloudstack.region.PortableIpRangeDaoImpl;
 import org.apache.cloudstack.region.dao.RegionDaoImpl;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreDaoImpl;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDaoImpl;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl;
 import org.apache.cloudstack.test.utils.SpringUtils;
 
@@ -129,9 +132,9 @@
     DiskOfferingDaoImpl.class, DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class, DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class,
     DataCenterDetailsDaoImpl.class, NicSecondaryIpDaoImpl.class, UserIpv6AddressDaoImpl.class, UserDaoImpl.class, NicDaoImpl.class,
     NetworkDomainDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, ClusterDaoImpl.class, FirewallRulesDaoImpl.class,
-    FirewallRulesCidrsDaoImpl.class, PhysicalNetworkDaoImpl.class, PhysicalNetworkTrafficTypeDaoImpl.class, PhysicalNetworkServiceProviderDaoImpl.class,
+    FirewallRulesCidrsDaoImpl.class, FirewallRulesDcidrsDaoImpl.class, PhysicalNetworkDaoImpl.class, PhysicalNetworkTrafficTypeDaoImpl.class, PhysicalNetworkServiceProviderDaoImpl.class,
     LoadBalancerDaoImpl.class, NetworkServiceMapDaoImpl.class, PrimaryDataStoreDaoImpl.class, StoragePoolDetailsDaoImpl.class,
-    PortableIpRangeDaoImpl.class, RegionDaoImpl.class, PortableIpDaoImpl.class, AccountGuestVlanMapDaoImpl.class},
+    PortableIpRangeDaoImpl.class, RegionDaoImpl.class, PortableIpDaoImpl.class, AccountGuestVlanMapDaoImpl.class, ImageStoreDaoImpl.class, ImageStoreDetailsDaoImpl.class},
                includeFilters = {@Filter(value = ChildTestConfiguration.Library.class, type = FilterType.CUSTOM)},
                useDefaultFilters = false)
 public class
diff --git a/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java b/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java
index 5d2eb4c..1fe58b3 100644
--- a/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java
+++ b/server/test/org/apache/cloudstack/networkoffering/CreateNetworkOfferingTest.java
@@ -24,6 +24,7 @@
 
 import javax.inject.Inject;
 
+import com.cloud.network.dao.LoadBalancerVMMapDao;
 import junit.framework.TestCase;
 
 import org.apache.cloudstack.context.CallContext;
@@ -93,6 +94,9 @@
     @Inject
     UserIpAddressDetailsDao userIpAddressDetailsDao;
 
+    @Inject
+    LoadBalancerVMMapDao _loadBalancerVMMapDao;
+
     @Override
     @Before
     public void setUp() {
diff --git a/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java b/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java
index eff16c1..6195387 100644
--- a/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java
+++ b/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java
@@ -714,7 +714,7 @@
         final DomainRouterVO routerVO2 = mock(DomainRouterVO.class);
         when(mockNetworkHelper.deployRouter(deploymentUT, false))
         .thenReturn(routerVO1).thenReturn(routerVO2);
-
+        when(networkDetailsDao.findById(anyLong())).thenReturn(null);
         // Execute
         deploymentUT.deployAllVirtualRouters();
 
diff --git a/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTestBase.java b/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTestBase.java
index 4225083..626c2d7 100644
--- a/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTestBase.java
+++ b/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTestBase.java
@@ -23,6 +23,7 @@
 import java.util.List;
 import java.util.Map;
 
+import com.cloud.network.dao.NetworkDetailsDao;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
@@ -79,6 +80,8 @@
     @Mock
     protected NetworkHelper mockNetworkHelper;
     @Mock
+    protected NetworkDetailsDao networkDetailsDao;
+    @Mock
     protected VpcNetworkHelperImpl vpcNwHelper;
     @Mock
     protected VMInstanceDao mockVmDao;
diff --git a/server/test/resources/CloneSettingDaoTestContext.xml b/server/test/resources/CloneSettingDaoTestContext.xml
index cb35004..0afa3df 100644
--- a/server/test/resources/CloneSettingDaoTestContext.xml
+++ b/server/test/resources/CloneSettingDaoTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:annotation-config />
 
diff --git a/server/test/resources/SecurityGroupManagerTestContext.xml b/server/test/resources/SecurityGroupManagerTestContext.xml
index 3b9a752..a4d0063 100644
--- a/server/test/resources/SecurityGroupManagerTestContext.xml
+++ b/server/test/resources/SecurityGroupManagerTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx

-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop

-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context

-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

+                      http://www.springframework.org/schema/context/spring-context.xsd">
 

   <context:annotation-config />

 

diff --git a/server/test/resources/SnapshotDaoTestContext.xml b/server/test/resources/SnapshotDaoTestContext.xml
index 30151b5..448b309 100644
--- a/server/test/resources/SnapshotDaoTestContext.xml
+++ b/server/test/resources/SnapshotDaoTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx

-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop

-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context

-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

+                      http://www.springframework.org/schema/context/spring-context.xsd">
 

   <context:annotation-config />

 

diff --git a/server/test/resources/StoragePoolDaoTestContext.xml b/server/test/resources/StoragePoolDaoTestContext.xml
index afaad87..979963f 100644
--- a/server/test/resources/StoragePoolDaoTestContext.xml
+++ b/server/test/resources/StoragePoolDaoTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx

-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop

-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context

-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

+                      http://www.springframework.org/schema/context/spring-context.xsd">
 

   <context:annotation-config />

 

diff --git a/server/test/resources/UserVMDaoTestContext.xml b/server/test/resources/UserVMDaoTestContext.xml
index 6045f59..dad656d 100644
--- a/server/test/resources/UserVMDaoTestContext.xml
+++ b/server/test/resources/UserVMDaoTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:annotation-config />
 
diff --git a/server/test/resources/VpcApiUnitTestContext.xml b/server/test/resources/VpcApiUnitTestContext.xml
index 1dc1122..f09c16b 100644
--- a/server/test/resources/VpcApiUnitTestContext.xml
+++ b/server/test/resources/VpcApiUnitTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 

-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop

-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context

-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

+                      http://www.springframework.org/schema/context/spring-context.xsd">
 

   <context:annotation-config />

   <context:component-scan base-package="org.apache.cloudstack, com.cloud" />

diff --git a/server/test/resources/VpcTestContext.xml b/server/test/resources/VpcTestContext.xml
index 5303736..e124f72 100644
--- a/server/test/resources/VpcTestContext.xml
+++ b/server/test/resources/VpcTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 

-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop

-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context

-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

+                      http://www.springframework.org/schema/context/spring-context.xsd">
 

   <context:annotation-config />

 

diff --git a/server/test/resources/appLoadBalancer.xml b/server/test/resources/appLoadBalancer.xml
index d7c1502..403aff6 100644
--- a/server/test/resources/appLoadBalancer.xml
+++ b/server/test/resources/appLoadBalancer.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
      <context:annotation-config />
 
diff --git a/server/test/resources/createNetworkOffering.xml b/server/test/resources/createNetworkOffering.xml
index 1336367..9d44942 100644
--- a/server/test/resources/createNetworkOffering.xml
+++ b/server/test/resources/createNetworkOffering.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                      http://www.springframework.org/schema/beans/spring-beans.xsd

                       http://www.springframework.org/schema/tx 

-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+                      http://www.springframework.org/schema/tx/spring-tx.xsd

                       http://www.springframework.org/schema/aop

-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+                      http://www.springframework.org/schema/aop/spring-aop.xsd

                       http://www.springframework.org/schema/context

-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

+                      http://www.springframework.org/schema/context/spring-context.xsd">

 

      <context:annotation-config />

 

@@ -34,22 +34,24 @@
             <ref bean="transactionContextBuilder" />

             <ref bean="actionEventInterceptor" />

         </list>

-    </property>
-  </bean>
-
-    <bean id="nicIpAliasDaoImpl" class="com.cloud.vm.dao.NicIpAliasDaoImpl" />
-    <bean id="ConfigurationManager" class="com.cloud.configuration.ConfigurationManagerImpl">
-        <property name="name" value="ConfigurationManager"/>
-    </bean>
-
-    <bean class="org.apache.cloudstack.networkoffering.ChildTestConfiguration" />
+    </property>

+  </bean>

+

+    <bean id="nicIpAliasDaoImpl" class="com.cloud.vm.dao.NicIpAliasDaoImpl" />

+    <bean id="ConfigurationManager" class="com.cloud.configuration.ConfigurationManagerImpl">

+        <property name="name" value="ConfigurationManager"/>

+    </bean>

+

+    <bean class="org.apache.cloudstack.networkoffering.ChildTestConfiguration" />

     <bean id="UservmDetailsDaoImpl" class="com.cloud.vm.dao.UserVmDetailsDaoImpl" />

     <bean id="hostGpuGroupsDaoImpl" class="com.cloud.gpu.dao.HostGpuGroupsDaoImpl" />

-    <bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
-    <bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />
-    <bean id="usageEventDetailsDaoImpl" class="com.cloud.event.dao.UsageEventDetailsDaoImpl" />
-    <bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" />
+    <bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />

+    <bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />

+    <bean id="usageEventDetailsDaoImpl" class="com.cloud.event.dao.UsageEventDetailsDaoImpl" />

+    <bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" />

+    <bean id="storagePoolTagsDaoImpl" class="com.cloud.storage.dao.StoragePoolTagsDaoImpl" />

     <bean id="primaryDataStoreDaoImpl" class="org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl" />

     <bean id="userIpAddressDetailsDao" class="org.apache.cloudstack.resourcedetail.dao.UserIpAddressDetailsDaoImpl" />

-    
-</beans>
+    <bean id="loadBalancerVMMapDaoImpl" class="com.cloud.network.dao.LoadBalancerVMMapDaoImpl" />

+    <bean id="imageStoreDaoImpl" class="org.apache.cloudstack.storage.datastore.db.ImageStoreDaoImpl" />

+</beans>

diff --git a/server/test/resources/testContext.xml b/server/test/resources/testContext.xml
index 6a21198..e842448 100644
--- a/server/test/resources/testContext.xml
+++ b/server/test/resources/testContext.xml
@@ -22,13 +22,13 @@
   xmlns:tx="http://www.springframework.org/schema/tx" 

   xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 

-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop

-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context

-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">                     

+                      http://www.springframework.org/schema/context/spring-context.xsd">
 

   <context:annotation-config />

 

diff --git a/services/console-proxy-rdp/rdpconsole/pom.xml b/services/console-proxy-rdp/rdpconsole/pom.xml
index e53d133..9dbe106 100755
--- a/services/console-proxy-rdp/rdpconsole/pom.xml
+++ b/services/console-proxy-rdp/rdpconsole/pom.xml
@@ -27,7 +27,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/services/console-proxy/plugin/pom.xml b/services/console-proxy/plugin/pom.xml
index fb34ea8..40d464e 100644
--- a/services/console-proxy/plugin/pom.xml
+++ b/services/console-proxy/plugin/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-console-proxy</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 </project>
diff --git a/services/console-proxy/pom.xml b/services/console-proxy/pom.xml
index 7752036..d88f0e2 100644
--- a/services/console-proxy/pom.xml
+++ b/services/console-proxy/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>
diff --git a/services/console-proxy/server/pom.xml b/services/console-proxy/server/pom.xml
index 86429ec..d61049c 100644
--- a/services/console-proxy/server/pom.xml
+++ b/services/console-proxy/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-console-proxy</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/services/iam/plugin/pom.xml b/services/iam/plugin/pom.xml
index 710879b..22ca14c 100644
--- a/services/iam/plugin/pom.xml
+++ b/services/iam/plugin/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-iam</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/services/iam/plugin/resources/META-INF/cloudstack/iam-access-checkers/spring-iam-access-checkers-context.xml b/services/iam/plugin/resources/META-INF/cloudstack/iam-access-checkers/spring-iam-access-checkers-context.xml
index 983bf08..87e8c94 100644
--- a/services/iam/plugin/resources/META-INF/cloudstack/iam-access-checkers/spring-iam-access-checkers-context.xml
+++ b/services/iam/plugin/resources/META-INF/cloudstack/iam-access-checkers/spring-iam-access-checkers-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
     <bean id="RoleBasedAPIAccessChecker" class="org.apache.cloudstack.iam.RoleBasedAPIAccessChecker" />
diff --git a/services/iam/server/pom.xml b/services/iam/server/pom.xml
index 7aece00..9546292 100644
--- a/services/iam/server/pom.xml
+++ b/services/iam/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-iam</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/services/iam/server/resources/META-INF/cloudstack/core/spring-iam-server-context.xml b/services/iam/server/resources/META-INF/cloudstack/core/spring-iam-server-context.xml
index 4994a34..1c79836 100644
--- a/services/iam/server/resources/META-INF/cloudstack/core/spring-iam-server-context.xml
+++ b/services/iam/server/resources/META-INF/cloudstack/core/spring-iam-server-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >                     
 
     <bean id="IAMGroupDaoImpl" class="org.apache.cloudstack.iam.server.dao.IAMGroupDaoImpl" />
diff --git a/services/pom.xml b/services/pom.xml
index 845ebd0..381cd42 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <build>
diff --git a/services/secondary-storage/controller/pom.xml b/services/secondary-storage/controller/pom.xml
index 93a693c..1ab8f9e 100644
--- a/services/secondary-storage/controller/pom.xml
+++ b/services/secondary-storage/controller/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-secondary-storage</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/services/secondary-storage/controller/resources/META-INF/cloudstack/core/spring-services-secondary-storage-controller-core-context.xml b/services/secondary-storage/controller/resources/META-INF/cloudstack/core/spring-services-secondary-storage-controller-core-context.xml
index a62fede..daa385c 100644
--- a/services/secondary-storage/controller/resources/META-INF/cloudstack/core/spring-services-secondary-storage-controller-core-context.xml
+++ b/services/secondary-storage/controller/resources/META-INF/cloudstack/core/spring-services-secondary-storage-controller-core-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
     <bean id="premiumSecondaryStorageManagerImpl" class="org.apache.cloudstack.secondarystorage.PremiumSecondaryStorageManagerImpl">
             <property name="secondaryStorageVmAllocators"
diff --git a/services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java b/services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java
index 79c1de1..79c6bab 100644
--- a/services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java
+++ b/services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java
@@ -36,6 +36,8 @@
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
+import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.Configurable;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.framework.security.keystore.KeystoreManager;
 import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
@@ -164,7 +166,7 @@
 // because sooner or later, it will be driven into Running state
 //
 public class SecondaryStorageManagerImpl extends ManagerBase implements SecondaryStorageVmManager, VirtualMachineGuru, SystemVmLoadScanHandler<Long>,
-        ResourceStateAdapter {
+        ResourceStateAdapter, Configurable {
     private static final Logger s_logger = Logger.getLogger(SecondaryStorageManagerImpl.class);
 
     private static final int DEFAULT_CAPACITY_SCAN_INTERVAL = 30000; // 30
@@ -257,6 +259,9 @@
 
     private final GlobalLock _allocLock = GlobalLock.getInternLock(getAllocLockName());
 
+    static final ConfigKey<String> NTPServerConfig = new ConfigKey<String>(String.class, "ntp.server.list", "Advanced", null,
+            "Comma separated list of NTP servers to configure in Secondary storage VM", false, ConfigKey.Scope.Global, null);
+
     public SecondaryStorageManagerImpl() {
     }
 
@@ -1145,6 +1150,10 @@
             buf.append(" vmpassword=").append(_configDao.getValue("system.vm.password"));
         }
 
+        if (NTPServerConfig.value() != null) {
+            buf.append(" ntpserverlist=").append(NTPServerConfig.value().replaceAll("\\s+",""));
+        }
+
         for (NicProfile nic : profile.getNics()) {
             int deviceId = nic.getDeviceId();
             if (nic.getIPv4Address() == null) {
@@ -1490,4 +1499,14 @@
         _ssVmAllocators = ssVmAllocators;
     }
 
+    @Override
+    public String getConfigComponentName() {
+        return SecondaryStorageManagerImpl.class.getSimpleName();
+    }
+
+    @Override
+    public ConfigKey<?>[] getConfigKeys() {
+        return new ConfigKey<?>[] {NTPServerConfig};
+    }
+
 }
diff --git a/services/secondary-storage/pom.xml b/services/secondary-storage/pom.xml
index f91771a..eb54f09 100644
--- a/services/secondary-storage/pom.xml
+++ b/services/secondary-storage/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-services</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <modules>
diff --git a/services/secondary-storage/server/pom.xml b/services/secondary-storage/server/pom.xml
index e5d1188..064371e 100644
--- a/services/secondary-storage/server/pom.xml
+++ b/services/secondary-storage/server/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack-service-secondary-storage</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
     <dependencies>
diff --git a/services/secondary-storage/server/resources/META-INF/cloudstack/secondary-storage-discoverer/spring-secondary-storage-discoverer-context.xml b/services/secondary-storage/server/resources/META-INF/cloudstack/secondary-storage-discoverer/spring-secondary-storage-discoverer-context.xml
index 30521aa..f9cec09 100644
--- a/services/secondary-storage/server/resources/META-INF/cloudstack/secondary-storage-discoverer/spring-secondary-storage-discoverer-context.xml
+++ b/services/secondary-storage/server/resources/META-INF/cloudstack/secondary-storage-discoverer/spring-secondary-storage-discoverer-context.xml
@@ -21,10 +21,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+                      http://www.springframework.org/schema/context/spring-context.xsd"
                       >
 
     <bean id="SecondaryStorageDiscoverer"
diff --git a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
index b38e0b7..60424c1 100644
--- a/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
+++ b/services/secondary-storage/server/src/org/apache/cloudstack/storage/resource/NfsSecondaryStorageResource.java
@@ -16,91 +16,7 @@
 // under the License.
 package org.apache.cloudstack.storage.resource;
 
-import static com.cloud.utils.storage.S3.S3Utils.putFile;
-import static com.cloud.utils.StringUtils.join;
-import static java.lang.String.format;
-import static java.util.Arrays.asList;
-import static org.apache.commons.lang.StringUtils.substringAfterLast;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.math.BigInteger;
-import java.net.InetAddress;
-import java.net.URI;
-import java.net.UnknownHostException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.naming.ConfigurationException;
-
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.storage.Storage;
-import com.cloud.storage.template.TemplateConstants;
-import com.cloud.utils.EncryptionUtil;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import io.netty.bootstrap.ServerBootstrap;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelInitializer;
-import io.netty.channel.ChannelPipeline;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.SocketChannel;
-import io.netty.channel.socket.nio.NioServerSocketChannel;
-import io.netty.handler.codec.http.HttpContentCompressor;
-import io.netty.handler.codec.http.HttpRequestDecoder;
-import io.netty.handler.codec.http.HttpResponseEncoder;
-import io.netty.handler.logging.LogLevel;
-import io.netty.handler.logging.LoggingHandler;
-import org.apache.cloudstack.storage.command.TemplateOrVolumePostUploadCommand;
-import org.apache.cloudstack.storage.template.UploadEntity;
-import org.apache.cloudstack.utils.imagestore.ImageStoreUtil;
-import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.NameValuePair;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.utils.URLEncodedUtils;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.log4j.Logger;
-
 import com.amazonaws.services.s3.model.S3ObjectSummary;
-
-import org.apache.cloudstack.framework.security.keystore.KeystoreManager;
-import org.apache.cloudstack.storage.command.CopyCmdAnswer;
-import org.apache.cloudstack.storage.command.CopyCommand;
-import org.apache.cloudstack.storage.command.DeleteCommand;
-import org.apache.cloudstack.storage.command.DownloadCommand;
-import org.apache.cloudstack.storage.command.DownloadProgressCommand;
-import org.apache.cloudstack.storage.command.UploadStatusAnswer;
-import org.apache.cloudstack.storage.command.UploadStatusAnswer.UploadStatus;
-import org.apache.cloudstack.storage.command.UploadStatusCommand;
-import org.apache.cloudstack.storage.template.DownloadManager;
-import org.apache.cloudstack.storage.template.DownloadManagerImpl;
-import org.apache.cloudstack.storage.template.DownloadManagerImpl.ZfsPathParser;
-import org.apache.cloudstack.storage.template.UploadManager;
-import org.apache.cloudstack.storage.template.UploadManagerImpl;
-import org.apache.cloudstack.storage.to.SnapshotObjectTO;
-import org.apache.cloudstack.storage.to.TemplateObjectTO;
-import org.apache.cloudstack.storage.to.VolumeObjectTO;
-
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.CheckHealthAnswer;
 import com.cloud.agent.api.CheckHealthCommand;
@@ -135,11 +51,13 @@
 import com.cloud.agent.api.to.S3TO;
 import com.cloud.agent.api.to.SwiftTO;
 import com.cloud.exception.InternalErrorException;
+import com.cloud.exception.InvalidParameterValueException;
 import com.cloud.host.Host;
 import com.cloud.host.Host.Type;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.resource.ServerResourceBase;
 import com.cloud.storage.DataStoreRole;
+import com.cloud.storage.Storage;
 import com.cloud.storage.Storage.ImageFormat;
 import com.cloud.storage.StorageLayer;
 import com.cloud.storage.VMTemplateStorageResourceAssoc;
@@ -149,21 +67,99 @@
 import com.cloud.storage.template.QCOW2Processor;
 import com.cloud.storage.template.RawImageProcessor;
 import com.cloud.storage.template.TARProcessor;
+import com.cloud.storage.template.TemplateConstants;
 import com.cloud.storage.template.TemplateLocation;
 import com.cloud.storage.template.TemplateProp;
 import com.cloud.storage.template.VhdProcessor;
 import com.cloud.storage.template.VmdkProcessor;
+import com.cloud.utils.EncryptionUtil;
 import com.cloud.utils.NumbersUtil;
-import com.cloud.utils.storage.S3.S3Utils;
 import com.cloud.utils.SwiftUtil;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.net.NetUtils;
 import com.cloud.utils.script.OutputInterpreter;
 import com.cloud.utils.script.Script;
+import com.cloud.utils.storage.S3.S3Utils;
 import com.cloud.vm.SecondaryStorageVm;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import io.netty.bootstrap.ServerBootstrap;
+import io.netty.channel.Channel;
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.ChannelPipeline;
+import io.netty.channel.EventLoopGroup;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.channel.socket.nio.NioServerSocketChannel;
+import io.netty.handler.codec.http.HttpContentCompressor;
+import io.netty.handler.codec.http.HttpRequestDecoder;
+import io.netty.handler.codec.http.HttpResponseEncoder;
+import io.netty.handler.logging.LogLevel;
+import io.netty.handler.logging.LoggingHandler;
+import org.apache.cloudstack.framework.security.keystore.KeystoreManager;
+import org.apache.cloudstack.storage.command.CopyCmdAnswer;
+import org.apache.cloudstack.storage.command.CopyCommand;
+import org.apache.cloudstack.storage.command.DeleteCommand;
+import org.apache.cloudstack.storage.command.DownloadCommand;
+import org.apache.cloudstack.storage.command.DownloadProgressCommand;
+import org.apache.cloudstack.storage.command.TemplateOrVolumePostUploadCommand;
+import org.apache.cloudstack.storage.command.UploadStatusAnswer;
+import org.apache.cloudstack.storage.command.UploadStatusAnswer.UploadStatus;
+import org.apache.cloudstack.storage.command.UploadStatusCommand;
+import org.apache.cloudstack.storage.template.DownloadManager;
+import org.apache.cloudstack.storage.template.DownloadManagerImpl;
+import org.apache.cloudstack.storage.template.DownloadManagerImpl.ZfsPathParser;
+import org.apache.cloudstack.storage.template.UploadEntity;
+import org.apache.cloudstack.storage.template.UploadManager;
+import org.apache.cloudstack.storage.template.UploadManagerImpl;
+import org.apache.cloudstack.storage.to.SnapshotObjectTO;
+import org.apache.cloudstack.storage.to.TemplateObjectTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.cloudstack.utils.imagestore.ImageStoreUtil;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.utils.URLEncodedUtils;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.log4j.Logger;
 import org.joda.time.DateTime;
 import org.joda.time.format.ISODateTimeFormat;
 
+import javax.naming.ConfigurationException;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.math.BigInteger;
+import java.net.InetAddress;
+import java.net.URI;
+import java.net.UnknownHostException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import static com.cloud.utils.StringUtils.join;
+import static com.cloud.utils.storage.S3.S3Utils.putFile;
+import static java.lang.String.format;
+import static java.util.Arrays.asList;
+import static org.apache.commons.lang.StringUtils.substringAfterLast;
+
 public class NfsSecondaryStorageResource extends ServerResourceBase implements SecondaryStorageResource {
 
     public static final Logger s_logger = Logger.getLogger(NfsSecondaryStorageResource.class);
@@ -583,8 +579,11 @@
         String filePath = getRootDir(nfsPath, nfsVersion) + File.separator + path;
         File f = new File(filePath);
         if (!f.exists()) {
-            _storage.mkdirs(filePath);
-            f = new File(filePath);
+            f = findFile(filePath);
+            if (f == null) {
+                _storage.mkdirs(filePath);
+                f = new File(filePath);
+            }
         }
         return f;
     }
@@ -660,6 +659,8 @@
 
         if (destDataStore instanceof S3TO) {
             return copyFromNfsToS3(cmd);
+        } else if (destDataStore instanceof SwiftTO) {
+            return copyFromNfsToSwift(cmd);
         } else {
             return new CopyCmdAnswer("unsupported ");
         }
@@ -874,6 +875,28 @@
 
     }
 
+    protected File findFile(String path) {
+
+        File srcFile = _storage.getFile(path);
+        if (!srcFile.exists()) {
+            srcFile = _storage.getFile(path + ".qcow2");
+            if (!srcFile.exists()) {
+                srcFile = _storage.getFile(path + ".vhd");
+                if (!srcFile.exists()) {
+                    srcFile = _storage.getFile(path + ".ova");
+                    if (!srcFile.exists()) {
+                        srcFile = _storage.getFile(path + ".vmdk");
+                        if (!srcFile.exists()) {
+                            return null;
+                        }
+                    }
+                }
+            }
+        }
+
+        return srcFile;
+    }
+
     protected Answer copyFromNfsToS3(CopyCommand cmd) {
         final DataTO srcData = cmd.getSrcTO();
         final DataTO destData = cmd.getDestTO();
@@ -891,23 +914,9 @@
             }
 
             final String bucket = s3.getBucketName();
-            File srcFile = _storage.getFile(templatePath);
-            // guard the case where templatePath does not have file extension, since we are not completely sure
-            // about hypervisor, so we check each extension
-            if (!srcFile.exists()) {
-                srcFile = _storage.getFile(templatePath + ".qcow2");
-                if (!srcFile.exists()) {
-                    srcFile = _storage.getFile(templatePath + ".vhd");
-                    if (!srcFile.exists()) {
-                        srcFile = _storage.getFile(templatePath + ".ova");
-                        if (!srcFile.exists()) {
-                            srcFile = _storage.getFile(templatePath + ".vmdk");
-                            if (!srcFile.exists()) {
-                                return new CopyCmdAnswer("Can't find src file:" + templatePath);
-                            }
-                        }
-                    }
-                }
+            File srcFile = findFile(templatePath);
+            if (srcFile == null) {
+                return new CopyCmdAnswer("Can't find src file:" + templatePath);
             }
 
             ImageFormat format = getTemplateFormat(srcFile.getName());
@@ -975,12 +984,10 @@
      *
      * @param swift  The swift object
      * @param srcFile Source file on the staging NFS
-     * @param containerName Destination container
-     * @return true on successful write
+     * @param containerName Destination container  @return true on successful write
+     * @param uniqueName Unique name identifying the template
      */
-    protected boolean swiftUploadMetadataFile(SwiftTO swift, File srcFile, String containerName) throws IOException {
-
-        String uniqueName = FilenameUtils.getBaseName(srcFile.getName());
+    protected boolean swiftUploadMetadataFile(SwiftTO swift, File srcFile, String containerName, String uniqueName) throws IOException {
 
         File uniqDir = _storage.createUniqDir();
         String metaFileName = uniqDir.getAbsolutePath() + File.separator + _tmpltpp;
@@ -1018,16 +1025,23 @@
         File srcFile = getFile(srcData.getPath(), srcStore.getUrl(), _nfsVersion);
 
         SwiftTO swift = (SwiftTO)destDataStore;
+        long pathId = destData.getId();
 
         try {
 
-            String containerName = SwiftUtil.getContainerName(destData.getObjectType().toString(), destData.getId());
+            if (destData instanceof SnapshotObjectTO) {
+                pathId = ((SnapshotObjectTO) destData).getVolume().getId();
+            }
+
+            String containerName = SwiftUtil.getContainerName(destData.getObjectType().toString(), pathId);
             String swiftPath = SwiftUtil.putObject(swift, srcFile, containerName, srcFile.getName());
 
 
             DataTO retObj = null;
             if (destData.getObjectType() == DataObjectType.TEMPLATE) {
-                swiftUploadMetadataFile(swift, srcFile, containerName);
+                TemplateObjectTO destTemplateData = (TemplateObjectTO) destData;
+                String uniqueName = destTemplateData.getName();
+                swiftUploadMetadataFile(swift, srcFile, containerName, uniqueName);
                 TemplateObjectTO newTemplate = new TemplateObjectTO();
                 newTemplate.setPath(swiftPath);
                 newTemplate.setSize(getVirtualSize(srcFile, getTemplateFormat(srcFile.getName())));
@@ -1041,7 +1055,7 @@
                 retObj = newVol;
             } else if (destData.getObjectType() == DataObjectType.SNAPSHOT) {
                 SnapshotObjectTO newSnapshot = new SnapshotObjectTO();
-                newSnapshot.setPath(containerName);
+                newSnapshot.setPath(containerName + File.separator + srcFile.getName());
                 retObj = newSnapshot;
             }
 
@@ -2412,7 +2426,6 @@
      * @param uri
      *            crresponding to the remote device. Will throw for unsupported
      *            scheme.
-     * @param imgStoreId
      * @param nfsVersion NFS version to use in mount command
      * @return name of folder in _parent that device was mounted.
      * @throws UnknownHostException
diff --git a/setup/bindir/cloud-get-vm-data-configdrive.in b/setup/bindir/cloud-get-vm-data-configdrive.in
new file mode 100644
index 0000000..a862fe0
--- /dev/null
+++ b/setup/bindir/cloud-get-vm-data-configdrive.in
@@ -0,0 +1,132 @@
+#!/bin/bash
+# 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.
+
+
+mountdir=$(mktemp -d)
+filepath=$mountdir/cloudstack
+
+user_data=$filepath/userdata/user_data.txt
+availability_zone=$filepath/metadata/availability_zone.txt
+cloud_identifier=$filepath/metadata/cloud_identifier.txt
+instance_id=$filepath/metadata/instance_id.txt
+local_hostname=$filepath/metadata/local_hostname.txt
+service_offering=$filepath/metadata/service_offering.txt
+vm_id=$filepath/metadata/vm_id.txt
+public_key=$filepath/metadata/public_keys.txt
+vm_password=$filepath/password/vm_password.txt
+
+# If lable name is other than config, please change the below line as required
+DefaultDisk=/dev/disk/by-label/config
+
+function usage
+{
+    echo -e "USAGE: cloud-get-vm-data -options"
+    echo -e "  where options include:"
+    echo -e "\\t-m | --metadata [availability-zone | cloud-identifier | instance-id | local-hostname | service-offering | vm-id | public-key] \\n\\t\\tprint vm metadata"
+    echo -e "\\t-p | --password \\n\\t\\tprint vm password"
+    echo -e "\\t-u | --userdata \\n\\t\\tprint vm userdata"
+}
+
+function prepare_mount
+{
+    if [ ! -e $mountdir ]; then
+        mkdir $mountdir
+        chmod 700 $mountdir
+    fi
+
+    if [ -e $DefaultDisk ]; then
+        Disk=$DefaultDisk
+    else
+        BLOCK_DEVICE=$(blkid -t LABEL='config' /dev/hd? /dev/sd? /dev/xvd? -o device)
+        if [ -n $BLOCK_DEVICE ]; then
+            Disk=$BLOCK_DEVICE
+        else
+            logger -t "cloud" "Unable to get the VM data: Config drive device not found"
+            exit 1
+        fi
+    fi
+
+    mount -r $Disk $mountdir
+    if [ $? -ne 0 ]; then
+        echo "Failed mounting $Disk to /mnt/configdrive"
+        exit 1
+    fi
+}
+
+function remove_mount
+{
+  umount $mountdir
+}
+
+prepare_mount
+
+case $1 in
+    -u | --userdata )   echo -n "USERDATA: "
+                        filename=$user_data
+                        ;;
+    -m | --metadata )   shift
+                        if [ "$1" != "" ]; then
+                            case $1 in
+                                availability-zone ) echo -n "availability zone: ";  filename=$availability_zone
+                                                    ;;
+                                cloud-identifier )  echo -n "cloud identifier: ";   filename=$cloud_identifier
+                                                    ;;
+                                instance-id )       echo -n "instance-id: ";        filename=$instance_id
+                                                    ;;
+                                local-hostname )    echo -n "local-hostname: ";     filename=$local_hostname
+                                                    ;;
+                                service-offering )  echo -n "service-offering: ";   filename=$service_offering
+                                                    ;;
+                                vm-id )             echo -n  "vm-id: ";             filename=$vm_id
+                                                    ;;
+                                public-key )       echo -n  "public-key: ";         filename=$public_key
+                                                    ;;
+                                * )                 usage
+                                                    remove_mount
+                                                    exit 1
+                            esac
+                        else
+                            echo -e "METADATA\\n"
+                            [ -f $availability_zone ] && echo -e "availability zone:\t" "$(cat $availability_zone)"
+                            [ -f $cloud_identifier ]  && echo -e "cloud identifier:\t"  "$(cat $cloud_identifier)"
+                            [ -f $instance_id ]       && echo -e "instance-id:\t\t"     "$(cat $instance_id)"
+                            [ -f $local_hostname ]    && echo -e "local-hostname:\t\t"  "$(cat $local_hostname)"
+                            [ -f $service_offering ]  && echo -e "service-offering:\t"  "$(cat $service_offering)"
+                            [ -f $vm_id ]             && echo -e "vm-id:\t\t\t"         "$(cat $vm_id)"
+                            [ -f $public_key ]        && echo -e "public-key:\t\t"      "$(cat $public_key)"
+                        fi
+                        ;;
+    -p | --password )   echo -n "PASSWORD: "
+                        filename=$vm_password
+                        ;;
+    -h | --help )       usage
+                        remove_mount
+                        exit 0
+                        ;;
+    * )                 usage
+                        remove_mount
+                        exit 1
+esac
+
+if [ "$filename" != "" ] && [ -e $filename ]
+then
+    cat $filename
+fi
+
+remove_mount
+exit 0
diff --git a/setup/bindir/cloud-set-guest-password-configdrive.in b/setup/bindir/cloud-set-guest-password-configdrive.in
new file mode 100644
index 0000000..1aef8bc
--- /dev/null
+++ b/setup/bindir/cloud-set-guest-password-configdrive.in
@@ -0,0 +1,130 @@
+                                  #!/bin/bash
+#
+# Init file for Password Download Client
+#
+# chkconfig: 345 98 02
+# description: Password Download Client
+
+# 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.
+
+
+# Modify this line to specify the user (default is root)
+user=root
+
+mountdir=$(mktemp -d)
+
+# If lable name is other than config, please change the below line as required
+DefaultDisk=/dev/disk/by-label/config
+
+
+Password_File=$mountdir/cloudstack/password/vm_password.txt
+password_received=0
+
+function prepare_mount
+{
+    if [ ! -e $mountdir ]; then
+        mkdir $mountdir
+        chmod 700 $mountdir
+    fi
+
+    if [ -e $DefaultDisk ]; then
+        Disk=$DefaultDisk
+    else
+        BLOCK_DEVICE=$(blkid -t LABEL='config' /dev/hd? /dev/sd? /dev/xvd? /dev/vd? -o device)
+        if [ -n $BLOCK_DEVICE ]; then
+            Disk=$BLOCK_DEVICE
+        else
+            logger -t "cloud" "Unable to set password to VM: Config drive not found"
+            exit 1
+        fi
+    fi
+
+    mount -r $Disk $mountdir
+    if [ $? -ne 0 ]; then
+        echo "Failed mounting $Disk to /mnt/configdrive"
+        exit 1
+    fi
+}
+
+function remove_mount
+{
+  umount $mountdir
+}
+
+prepare_mount
+
+
+if [ -f $Password_File ]
+then
+    password=$(cat $Password_File)
+    password=$(echo $password | tr -d '\r')
+    remove_mount
+
+    case $password in
+
+        "")                 logger -t "cloud" "Config drive did not have any password for the VM"
+                            exit 0
+                            ;;
+
+        "saved_password")   logger -t "cloud" "VM has already saved a password"
+                            exit 0
+                            ;;
+
+        *)                  logger -t "cloud" "VM got a valid password"
+                            password_received=1
+                            ;;
+        esac
+else
+    remove_mount
+    logger -t "cloud" "Password set failed on VM: password file not found in config drive"
+    exit 0
+fi
+
+if [ "$password_received" = "1" ]; then
+
+   newmd5sum=$(echo $password | md5sum | awk '{print $1}')
+   if [ -f /var/vmpasswordmd5sum ]
+   then
+       oldsum=$(cat /var/vmpasswordmd5sum)
+
+       if [ "$newmd5sum" ==  "$oldsum" ]
+       then
+           logger -t "cloud"  "There is no update of VM password from cloudstack, returning true"
+           exit 0
+       fi
+   fi
+
+    logger -t "cloud" "Changing password ..."
+    echo $user:$password | chpasswd
+
+    if [ $? -gt 0 ]
+    then
+        usermod -p `mkpasswd -m SHA-512 $password` $user
+
+        if [ $? -gt 0 ]
+        then
+            logger -t "cloud" "Failed to change password for user $user"
+            exit 1
+        else
+            logger -t "cloud" "Successfully changed password for user $user"
+        fi
+    fi
+fi
+
+ echo $newmd5sum > /var/vmpasswordmd5sum
+exit 0
diff --git a/setup/bindir/cloud-set-guest-sshkey-configdrive.in b/setup/bindir/cloud-set-guest-sshkey-configdrive.in
new file mode 100644
index 0000000..df10b43
--- /dev/null
+++ b/setup/bindir/cloud-set-guest-sshkey-configdrive.in
@@ -0,0 +1,107 @@
+#!/bin/bash
+#
+# Init file for SSH Public Keys Download Client
+#
+# chkconfig: 345 98 02
+# description: SSH Public Keys Download Client
+
+# 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.
+
+
+# Modify this line to specify the user (default is root)
+user=root
+
+mountdir=$(mktemp -d)
+
+# If lable name is other than config, please change the below line as required
+DefaultDisk=/dev/disk/by-label/config
+
+SSHKey_File=$mountdir/cloudstack/metadata/public_keys.txt
+keys_received=0
+
+function prepare_mount
+{
+    if [ ! -e $mountdir ]; then
+        mkdir $mountdir
+        chmod 700 $mountdir
+    fi
+
+    if [ -e $DefaultDisk ]; then
+        Disk=$DefaultDisk
+    else
+        BLOCK_DEVICE=$(blkid -t LABEL='config' /dev/hd? /dev/sd? /dev/xvd? /dev/vd? -o device)
+        if [ -n $BLOCK_DEVICE ]; then
+            Disk=$BLOCK_DEVICE
+        else
+            logger -t "cloud" "Unable to get SSH public key: Config drive not found"
+            exit 1
+        fi
+    fi
+
+    mount -r $Disk $mountdir
+    if [ $? -ne 0 ]; then
+        echo "Failed mounting $Disk to /mnt/configdrive"
+        exit 1
+    fi
+}
+
+function remove_mount
+{
+  umount $mountdir
+}
+
+prepare_mount
+
+
+if [ -f $SSHKey_File ]
+then
+    publickey=$(cat $SSHKey_File)
+    publickey=$(echo $publickey | tr -d '\r')
+    remove_mount
+
+    if [ -z "$publickey" ]; then
+        logger -t "cloud" "Did not receive any keys"
+        exit 1
+    fi
+else
+    remove_mount
+    logger -t "cloud" "Did not receive any keys"
+    exit 1
+fi
+
+homedir=$(grep ^$user /etc/passwd|awk -F ":" '{print $6}')
+sshdir=$homedir/.ssh
+authorized=$sshdir/authorized_keys
+
+if [ ! -e $sshdir ]; then
+    mkdir $sshdir
+    chmod 700 $sshdir
+fi
+
+if [ ! -e $authorized ]; then
+    touch $authorized
+    chmod 600 $authorized
+fi
+
+
+cat $authorized|grep -v "$publickey"|tee $authorized > /dev/null
+echo "$publickey" >> $authorized
+
+which restorecon && restorecon -R -v $sshdir
+
+exit 0
diff --git a/setup/bindir/cloud-set-windows-guest-password-configdrive.bat.in b/setup/bindir/cloud-set-windows-guest-password-configdrive.bat.in
new file mode 100644
index 0000000..805150a
--- /dev/null
+++ b/setup/bindir/cloud-set-windows-guest-password-configdrive.bat.in
@@ -0,0 +1,140 @@
+@echo off
+
+REM Licensed to the Apache Software Foundation (ASF) under one
+REM or more contributor license agreements.  See the NOTICE file
+REM distributed with this work for additional information
+REM regarding copyright ownership.  The ASF licenses this file
+REM to you under the Apache License, Version 2.0 (the
+REM "License"); you may not use this file except in compliance
+REM with the License.  You may obtain a copy of the License at
+REM
+REM   http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM Unless required by applicable law or agreed to in writing,
+REM software distributed under the License is distributed on an
+REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+REM KIND, either express or implied.  See the License for the
+REM specific language governing permissions and limitations
+REM under the License.
+
+rem ----------------------------------------------------------------------------------------------------------------
+set PasswordReset_Script=cloud-set-guest-password-configdrive.vbs
+echo Set owshNet = CreateObject^("WScript.Network"^)                                                                                                 > %PasswordReset_Script%
+echo strComputer = owshNet.ComputerName                                                                                                             >> %PasswordReset_Script%
+echo Const HKEY_CURRENT_USER = ^&H80000001                                                                                                          >> %PasswordReset_Script%
+echo registryKeyPath = "SOFTWARE\CLOUDSTACKmd5Checksum\"                                                                                            >> %PasswordReset_Script%
+echo registryKeyName = "PasswordMd5Checksum"                                                                                                        >> %PasswordReset_Script%
+echo CDPath = ""                                                                                                                                    >> %PasswordReset_Script%
+echo configLabelName = "config"                                                                                                                     >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo Set fso = CreateObject ^("Scripting.FileSystemobject"^)                                                                                        >> %PasswordReset_Script%
+echo For Each drive In fso.Drives                                                                                                                   >> %PasswordReset_Script%
+echo    If drive.DriveType = 4 And drive.IsReady Then                                                                                               >> %PasswordReset_Script%
+echo       If drive.VolumeName = configLabelName Then                                                                                               >> %PasswordReset_Script%
+echo            CDPath = drive.Path                                                                                                                 >> %PasswordReset_Script%
+echo       End If                                                                                                                                   >> %PasswordReset_Script%
+echo       Exit For                                                                                                                                 >> %PasswordReset_Script%
+echo    End If                                                                                                                                      >> %PasswordReset_Script%
+echo Next                                                                                                                                           >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo IF CDPath = "" Then                                                                                                                            >> %PasswordReset_Script%
+echo    WScript.Echo "Config Drive not found to set the password to VM"                                                                             >> %PasswordReset_Script%
+echo    WScript.Quit                                                                                                                                >> %PasswordReset_Script%
+echo End If                                                                                                                                         >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo PasswordFileName = "\VM_PASSWORD.txt"                                                                                                          >> %PasswordReset_Script%
+echo PasswordFilePath = CDPath ^& "\CLOUDSTACK\PASSWORD" ^& PasswordFileName                                                                        >> %PasswordReset_Script%
+echo Set ObjFile = fso.OpenTextFile^(PasswordFilePath^)                                                                                             >> %PasswordReset_Script%
+echo If Err.Number ^<^> 0 Then                                                                                                                      >> %PasswordReset_Script%
+echo    WScript.Echo "Error: " ^& PasswordFilePath ^& " --- " ^& Err.Description                                                                    >> %PasswordReset_Script%
+echo    WScript.Quit                                                                                                                                >> %PasswordReset_Script%
+echo End If                                                                                                                                         >> %PasswordReset_Script%
+echo Password = ObjFile.ReadLine                                                                                                                    >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo PasswordMd5checsumFileName = "\VM_PASSWORD_MD5CHECKSUM.txt"                                                                                    >> %PasswordReset_Script%
+echo PasswordMd5checsumFilePath = CDPath ^& "\CLOUDSTACK\PASSWORD" ^& PasswordMd5checsumFileName                                                    >> %PasswordReset_Script%
+echo Set ObjFile2 = fso.OpenTextFile^(PasswordMd5checsumFilePath^)                                                                                  >> %PasswordReset_Script%
+echo If Err.Number ^<^> 0 Then                                                                                                                      >> %PasswordReset_Script%
+echo    WScript.Echo "Error: " ^& PasswordMd5checsumFilePath ^& " --- " ^& Err.Description                                                          >> %PasswordReset_Script%
+echo    WScript.Quit                                                                                                                                >> %PasswordReset_Script%
+echo End If                                                                                                                                         >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo registryKeyValue = ObjFile2.ReadLine                                                                                                           >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo ' The below logic is to make sure script sets the password to VM only when new password appears in config drive                                >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo Set registryObject=GetObject^("winmgmts:{impersonationLevel=impersonate}!\\" ^& strComputer ^& "\root\default:StdRegProv"^)                    >> %PasswordReset_Script%
+echo If registryObject.EnumKey^(HKEY_CURRENT_USER, registryKeyPath, "", ""^) = 0 Then                                                               >> %PasswordReset_Script%
+echo    registryObject.GetStringValue HKEY_CURRENT_USER, registryKeyPath, registryKeyName, previousRegistryKeyValue                                 >> %PasswordReset_Script%
+echo    If ^(previousRegistryKeyValue ^<^> registryKeyValue^) Then                                                                                  >> %PasswordReset_Script%
+echo        SavePasswordChecksum^(^)                                                                                                                >> %PasswordReset_Script%
+echo        SetPasswordToVM^(^)                                                                                                                     >> %PasswordReset_Script%
+echo    End If                                                                                                                                      >> %PasswordReset_Script%
+echo Else                                                                                                                                           >> %PasswordReset_Script%
+echo    Return = registryObject.CreateKey^(HKEY_CURRENT_USER, registryKeyPath^)                                                                     >> %PasswordReset_Script%
+echo    If ^(Return = 0^) And ^(Err.Number = 0^) Then                                                                                               >> %PasswordReset_Script%
+echo        SavePasswordChecksum^(^)                                                                                                                >> %PasswordReset_Script%
+echo        SetPasswordToVM^(^)                                                                                                                     >> %PasswordReset_Script%
+echo    Else                                                                                                                                        >> %PasswordReset_Script%
+echo        Wscript.Echo Now ^& vbTab ^& "Create Registry Key failed while setting the password to VM. Error = " ^& Err.Number                      >> %PasswordReset_Script%
+echo    End If                                                                                                                                      >> %PasswordReset_Script%
+echo End If                                                                                                                                         >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo '                                                                                                                                              >> %PasswordReset_Script%
+echo ' Procedure to set the password to the VM                                                                                                      >> %PasswordReset_Script%
+echo '                                                                                                                                              >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo Sub SetPasswordToVM^(^)                                                                                                                        >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo    Set objUser = GetObject^("WinNT://" ^& strComputer ^& "/administrator"^)                                                                    >> %PasswordReset_Script%
+echo    If Err.Number ^<^> 0 Then                                                                                                                   >> %PasswordReset_Script%
+echo        WScript.Echo Now ^& vbTab ^& "Error connecting to " ^& strComputer ^& " --- " ^& Err.Description                                        >> %PasswordReset_Script%
+echo        Err.Clear                                                                                                                               >> %PasswordReset_Script%
+echo        WScript.Quit                                                                                                                            >> %PasswordReset_Script%
+echo    Else                                                                                                                                        >> %PasswordReset_Script%
+echo        Select Case Password                                                                                                                    >> %PasswordReset_Script%
+echo            Case ""                                                                                                                             >> %PasswordReset_Script%
+echo                WScript.Echo Now ^& vbTab ^& "Config drive did not have any password for the VM"                                                >> %PasswordReset_Script%
+echo                WScript.Quit                                                                                                                    >> %PasswordReset_Script%
+echo            Case "saved_password"                                                                                                               >> %PasswordReset_Script%
+echo                WScript.Echo Now ^& vbTab ^& "VM has already saved the password"                                                                >> %PasswordReset_Script%
+echo                WScript.Quit                                                                                                                    >> %PasswordReset_Script%
+echo            Case else                                                                                                                           >> %PasswordReset_Script%
+echo                objUser.Setpassword Password                                                                                                    >> %PasswordReset_Script%
+echo                objUser.Setinfo                                                                                                                 >> %PasswordReset_Script%
+echo                If Err.Number ^<^> 0 Then                                                                                                       >> %PasswordReset_Script%
+echo                    wscript.Echo Now ^& vbTab ^& "Error setting password for " ^& strComputer ^& "\Administrator" ^& " --- " ^& Err.Description >> %PasswordReset_Script%
+echo                    Err.Clear                                                                                                                   >> %PasswordReset_Script%
+echo                    WScript.Quit                                                                                                                >> %PasswordReset_Script%
+echo                Else                                                                                                                            >> %PasswordReset_Script%
+echo                    WScript.Echo Now ^& vbTab ^& "Password set for " ^& strComputer ^& "\Administrator"                                         >> %PasswordReset_Script%
+echo                End If                                                                                                                          >> %PasswordReset_Script%
+echo        End Select                                                                                                                              >> %PasswordReset_Script%
+echo    End If                                                                                                                                      >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo End Sub                                                                                                                                        >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo Sub SavePasswordChecksum^(^)                                                                                                                   >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo    Return = registryObject.SetStringValue^(HKEY_CURRENT_USER, registryKeyPath, registryKeyName, registryKeyValue^)                             >> %PasswordReset_Script%
+echo    If ^(Return ^<^> 0^) Or ^(Err.Number ^<^> 0^) Then                                                                                          >> %PasswordReset_Script%
+echo        Wscript.Echo Now ^& vbTab ^& "SetStringValue to Registry Key failed while setting the password to VM. Error = " ^& Err.Number           >> %PasswordReset_Script%
+echo    End If                                                                                                                                      >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+echo End Sub                                                                                                                                        >> %PasswordReset_Script%
+echo.                                                                                                                                               >> %PasswordReset_Script%
+rem -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+cscript //Nologo %PasswordReset_Script%
diff --git a/setup/db/db/schema-21to22.sql b/setup/db/db/schema-21to22.sql
index 0c0ad7d..7ab7228 100755
--- a/setup/db/db/schema-21to22.sql
+++ b/setup/db/db/schema-21to22.sql
@@ -960,15 +960,15 @@
 UPDATE `cloud`.`guest_os` SET name = display_name;
 
 INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
-    VALUES (3, 'routing-3', 'SystemVM Template (KVM)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/releases/2.2.0/systemvm.qcow2.bz2', 'ec463e677054f280f152fcc264255d2f', 0, 'SystemVM Template (KVM)', 'QCOW2', 15, 0, 1, 'KVM');
+    VALUES (3, 'routing-3', 'SystemVM Template (KVM)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloudstack.org/releases/2.2.0/systemvm.qcow2.bz2', 'ec463e677054f280f152fcc264255d2f', 0, 'SystemVM Template (KVM)', 'QCOW2', 15, 0, 1, 'KVM');
 INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
-    VALUES (8, 'routing-8', 'SystemVM Template (vSphere)', 0, now(), 'SYSTEM', 0, 32, 1, 'http://download.cloud.com/releases/2.2.0/systemvm.ova', '3c9d4c704af44ebd1736e1bc78cec1fa', 0, 'SystemVM Template (vSphere)', 'OVA', 15, 0, 1, 'VMware');
+    VALUES (8, 'routing-8', 'SystemVM Template (vSphere)', 0, now(), 'SYSTEM', 0, 32, 1, 'http://download.cloudstack.org/releases/2.2.0/systemvm.ova', '3c9d4c704af44ebd1736e1bc78cec1fa', 0, 'SystemVM Template (vSphere)', 'OVA', 15, 0, 1, 'VMware');
 
 INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, display_text, enable_password, format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
-    VALUES (4, 'centos55-x86_64', 'CentOS 5.5(64-bit) no GUI (KVM)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/2.2.0/eec2209b-9875-3c8d-92be-c001bd8a0faf.qcow2.bz2', 'ed0e788280ff2912ea40f7f91ca7a249', 'CentOS 5.5(64-bit) no GUI (KVM)', 0, 'QCOW2', 112, 1, 1, 'KVM', 1);
+    VALUES (4, 'centos55-x86_64', 'CentOS 5.5(64-bit) no GUI (KVM)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/releases/2.2.0/eec2209b-9875-3c8d-92be-c001bd8a0faf.qcow2.bz2', 'ed0e788280ff2912ea40f7f91ca7a249', 'CentOS 5.5(64-bit) no GUI (KVM)', 0, 'QCOW2', 112, 1, 1, 'KVM', 1);
 
 INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text,  format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
-    VALUES (7, 'centos53-x64', 'CentOS 5.3(64-bit) no GUI (vSphere)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/2.2.0/CentOS5.3-x86_64.ova', 'f6f881b7f2292948d8494db837fe0f47', 0, 'CentOS 5.3(64-bit) no GUI (vSphere)', 'OVA', 12, 1, 1, 'VMware', 1);
+    VALUES (7, 'centos53-x64', 'CentOS 5.3(64-bit) no GUI (vSphere)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/releases/2.2.0/CentOS5.3-x86_64.ova', 'f6f881b7f2292948d8494db837fe0f47', 0, 'CentOS 5.3(64-bit) no GUI (vSphere)', 'OVA', 12, 1, 1, 'VMware', 1);
 UPDATE vm_instance SET guest_os_id=15 where vm_template_id=1;
 UPDATE vm_instance SET vm_template_id=(SELECT id FROM vm_template WHERE name='systemvm-xenserver-2.2.4' AND removed IS NULL) where vm_template_id=1;
 
diff --git a/setup/db/db/schema-2214to30.sql b/setup/db/db/schema-2214to30.sql
index 326e9a7..f1d2d7d 100755
--- a/setup/db/db/schema-2214to30.sql
+++ b/setup/db/db/schema-2214to30.sql
@@ -626,7 +626,7 @@
 update `cloud`.`vm_template` set removed=now() where id=2;
 
 INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text,  format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
-    VALUES (5, 'centos56-x86_64-xen', 'CentOS 5.6(64-bit) no GUI (XenServer)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/templates/builtin/centos56-x86_64.vhd.bz2', '905cec879afd9c9d22ecc8036131a180', 0, 'CentOS 5.6(64-bit) no GUI (XenServer)', 'VHD', 12, 1, 1, 'XenServer', 1);
+    VALUES (5, 'centos56-x86_64-xen', 'CentOS 5.6(64-bit) no GUI (XenServer)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/templates/builtin/centos56-x86_64.vhd.bz2', '905cec879afd9c9d22ecc8036131a180', 0, 'CentOS 5.6(64-bit) no GUI (XenServer)', 'VHD', 12, 1, 1, 'XenServer', 1);
 
 DELETE from `cloud`.`configuration` where name='firewall.rule.ui.enabled';
 
diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql
index ebbcfef..d5173af 100644
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@ -669,7 +669,7 @@
 UPDATE configuration SET value='KVM,XenServer,VMware,BareMetal,Ovm,LXC' WHERE name='hypervisor.list';
  
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
-     VALUES (10, UUID(), 'routing-10', 'SystemVM Template (LXC)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2', '2755de1f9ef2ce4d6f2bee2efbb4da92', 0, 'SystemVM Template (LXC)', 'QCOW2', 15, 0, 1, 'LXC');
+     VALUES (10, UUID(), 'routing-10', 'SystemVM Template (LXC)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloudstack.org/templates/acton/acton-systemvm-02062012.qcow2.bz2', '2755de1f9ef2ce4d6f2bee2efbb4da92', 0, 'SystemVM Template (LXC)', 'QCOW2', 15, 0, 1, 'LXC');
 
 ALTER TABLE `cloud`.`user_vm` MODIFY user_data TEXT(32768);
 
diff --git a/setup/db/db/schema-421to430.sql b/setup/db/db/schema-421to430.sql
index 0a96ea0..80d32da 100644
--- a/setup/db/db/schema-421to430.sql
+++ b/setup/db/db/schema-421to430.sql
@@ -863,12 +863,12 @@
 INSERT IGNORE INTO `cloud`.`configuration` VALUES ("Advanced", 'DEFAULT', 'VMSnapshotManager', "vmsnapshot.max", "10", "Maximum vm snapshots for a vm", NULL, NULL,NULL,0);
 
 INSERT IGNORE INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type, state)
-    VALUES (9, UUID(), 'routing-9', 'SystemVM Template (HyperV)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/4.3/systemvm64template-2013-12-23-hyperv.vhd.bz2', '5df45ee6ebe1b703a8805f4e1f4d0818', 0, 'SystemVM Template (HyperV)', 'VHD', 15, 0, 1, 'Hyperv', 'Active' );
+    VALUES (9, UUID(), 'routing-9', 'SystemVM Template (HyperV)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloudstack.org/templates/4.3/systemvm64template-2013-12-23-hyperv.vhd.bz2', '5df45ee6ebe1b703a8805f4e1f4d0818', 0, 'SystemVM Template (HyperV)', 'VHD', 15, 0, 1, 'Hyperv', 'Active' );
 
-UPDATE `cloud`.`vm_template` SET `bits` = "64", `url` = "http://download.cloud.com/templates/4.3/systemvm64template-2013-12-23-hyperv.vhd.bz2", `state` = "Active", `checksum` = "5df45ee6ebe1b703a8805f4e1f4d0818" WHERE `id` = "9";
+UPDATE `cloud`.`vm_template` SET `bits` = "64", `url` = "http://download.cloudstack.org/templates/4.3/systemvm64template-2013-12-23-hyperv.vhd.bz2", `state` = "Active", `checksum` = "5df45ee6ebe1b703a8805f4e1f4d0818" WHERE `id` = "9";
 
 INSERT IGNORE INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text,  format, guest_os_id, featured, cross_zones, hypervisor_type, extractable, state)
-    VALUES (6, UUID(), 'centos64-x64', 'CentOS 6.4(64-bit) GUI (Hyperv)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/4.3/centos6_4_64bit.vhd.bz2', 'eef6b9940ea3ed01221d963d4a012d0a', 0, 'CentOS 6.4 (64-bit) GUI (Hyperv)', 'VHD', 182, 1, 1, 'Hyperv', 1, 'Active');
+    VALUES (6, UUID(), 'centos64-x64', 'CentOS 6.4(64-bit) GUI (Hyperv)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/releases/4.3/centos6_4_64bit.vhd.bz2', 'eef6b9940ea3ed01221d963d4a012d0a', 0, 'CentOS 6.4 (64-bit) GUI (Hyperv)', 'VHD', 182, 1, 1, 'Hyperv', 1, 'Active');
 
 UPDATE `cloud`.`configuration` SET `component` = 'VMSnapshotManager' WHERE `name` IN ("vmsnapshot.create.wait", "vmsnapshot.max");
 
diff --git a/setup/db/db/schema-442to450.sql b/setup/db/db/schema-442to450.sql
index 774eee5..5f9fff5 100644
--- a/setup/db/db/schema-442to450.sql
+++ b/setup/db/db/schema-442to450.sql
@@ -981,7 +981,7 @@
 UPDATE `cloud`.`host` SET resource = REPLACE(resource, 'com.cloud.hypervisor.xen.resource', 'com.cloud.hypervisor.xenserver.resource') WHERE hypervisor_type='XenServer' AND REMOVED IS NULL;
 
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text,  format, guest_os_id, featured, cross_zones, hypervisor_type, extractable, state)
-    VALUES (11, UUID(), 'centos7-x86_64-lxc', 'CentOS 7(64-bit) no GUI (LXC)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/templates/builtin/centos-7-x86_64.tar.gz', 'c2c4fa2d0978121c7977db571f132d6e', 0, 'CentOS 7(64-bit) no GUI (LXC)', 'TAR', 246, 1, 1, 'LXC', 1, 'Active');
+    VALUES (11, UUID(), 'centos7-x86_64-lxc', 'CentOS 7(64-bit) no GUI (LXC)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/templates/builtin/centos-7-x86_64.tar.gz', 'c2c4fa2d0978121c7977db571f132d6e', 0, 'CentOS 7(64-bit) no GUI (LXC)', 'TAR', 246, 1, 1, 'LXC', 1, 'Active');
 
 --Support for RHEL 6.5 in relevant hypervisor versions
 INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (252, UUID(), 4, 'Red Hat Enterprise Linux 6.5 (32-bit)', utc_timestamp());
diff --git a/setup/db/db/schema-452to460.sql b/setup/db/db/schema-452to460.sql
index dfb629f..1989b6c 100644
--- a/setup/db/db/schema-452to460.sql
+++ b/setup/db/db/schema-452to460.sql
@@ -377,7 +377,7 @@
 UPDATE  `cloud`.`volumes` v,  `cloud`.`storage_pool` s,  `cloud`.`cluster` c  set v.format='RAW' where v.pool_id=s.id and s.cluster_id=c.id and c.hypervisor_type='Ovm3';
 UPDATE configuration SET value='KVM,XenServer,VMware,BareMetal,Ovm,Ovm3,LXC' WHERE name='hypervisor.list';
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id,featured, cross_zones, hypervisor_type, state)
-VALUES (12, UUID(), 'routing-12', 'SystemVM Template (Ovm3)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-ovm.raw.bz2', 'c8577d27b2daafb2d9a4ed307ce2f00f', 0, 'SystemVM Template (Ovm3)', 'RAW', 183, 0, 1, 'Ovm3', 'Active' );
+VALUES (12, UUID(), 'routing-12', 'SystemVM Template (Ovm3)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloudstack.org/systemvm/4.6/systemvm64template-4.6.0-ovm.raw.bz2', 'c8577d27b2daafb2d9a4ed307ce2f00f', 0, 'SystemVM Template (Ovm3)', 'RAW', 183, 0, 1, 'Ovm3', 'Active' );
 
 INSERT IGNORE INTO `cloud`.`configuration` (`category`, `instance`, `component`, `name`, `value`, `default_value`, `description`) VALUES ('Advanced', 'DEFAULT', 'ManagementServer', 'ovm3.heartbeat.timeout' , '180', '120', 'Timeout value to send to the checkheartbeat script for guarding the self fencing functionality on ovm3');
 INSERT IGNORE INTO `cloud`.`configuration` (`category`, `instance`, `component`, `name`, `value`, `default_value`, `description`) VALUES ('Advanced', 'DEFAULT', 'ManagementServer', 'ovm3.heartbeat.interval' , '10', '1', 'Interval value the checkheartbeat script uses before triggering the timeout for ovm3');
@@ -420,3 +420,5 @@
 INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'KVM', 'default', 'CentOS 7', 246, utc_timestamp(), 0);
 
 UPDATE  `cloud`.`hypervisor_capabilities` SET  `max_data_volumes_limit` =  '32' WHERE  `hypervisor_capabilities`.`hypervisor_type` =  'KVM';
+
+
diff --git a/setup/db/db/schema-481to490.sql b/setup/db/db/schema-481to490.sql
index bd1dd82..7f33043 100644
--- a/setup/db/db/schema-481to490.sql
+++ b/setup/db/db/schema-481to490.sql
@@ -545,3 +545,4 @@
 INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '5.0', 'centos64Guest', 228, now(), 0);
 INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '5.1', 'centos64Guest', 228, now(), 0);
 INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '5.5', 'centos64Guest', 228, now(), 0);
+
diff --git a/setup/db/db/schema-490to4910-cleanup.sql b/setup/db/db/schema-490to4910-cleanup.sql
index 71638f1..657713b 100644
--- a/setup/db/db/schema-490to4910-cleanup.sql
+++ b/setup/db/db/schema-490to4910-cleanup.sql
@@ -16,6 +16,6 @@
 -- under the License.
 
 --;
--- Schema cleanup from 4.9.0 to 4.9.1;
+-- Schema cleanup from 4.9.0 to 4.9.1.0;
 --;
 
diff --git a/setup/db/db/schema-490to4910.sql b/setup/db/db/schema-490to4910.sql
index ec3928f..a89358c 100644
--- a/setup/db/db/schema-490to4910.sql
+++ b/setup/db/db/schema-490to4910.sql
@@ -16,7 +16,7 @@
 -- under the License.
 
 --;
--- Schema upgrade from 4.9.0 to 4.9.1;
+-- Schema upgrade from 4.9.0 to 4.9.1.0;
 --;
 
 -- Fix default user role description
diff --git a/setup/db/db/schema-4930to41000-cleanup.sql b/setup/db/db/schema-4930to41000-cleanup.sql
new file mode 100644
index 0000000..986dcdf
--- /dev/null
+++ b/setup/db/db/schema-4930to41000-cleanup.sql
@@ -0,0 +1,24 @@
+-- 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.
+
+--;
+-- Schema upgrade cleanup from 4.9.3.0 to 4.10.0.0;
+--;
+
+DELETE FROM `cloud`.`configuration` WHERE name='consoleproxy.loadscan.interval';
+
+DELETE FROM `cloud`.`host_details` where name = 'vmName' and  value in (select name from `cloud`.`vm_instance`  where state = 'Expunging' and hypervisor_type ='BareMetal');
diff --git a/setup/db/db/schema-4930to41000.sql b/setup/db/db/schema-4930to41000.sql
new file mode 100644
index 0000000..59c452f
--- /dev/null
+++ b/setup/db/db/schema-4930to41000.sql
@@ -0,0 +1,257 @@
+-- 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.
+
+--;
+-- Schema upgrade from 4.9.3.0 to 4.10.0.0;
+--;
+
+ALTER TABLE `cloud`.`domain_router` ADD COLUMN  update_state varchar(64) DEFAULT NULL;
+
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (257, UUID(), 6, 'Windows 10 (32-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (258, UUID(), 6, 'Windows 10 (64-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (259, UUID(), 6, 'Windows Server 2016 (64-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (260, UUID(), 1, 'CentOS 7.1', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (261, UUID(), 1, 'CentOS 6.6 (32-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (262, UUID(), 1, 'CentOS 6.6 (64-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (263, UUID(), 1, 'CentOS 6.7 (32-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (264, UUID(), 1, 'CentOS 6.7 (64-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (265, UUID(), 4, 'Red Hat Enterprise Linux 6.6 (32-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (266, UUID(), 4, 'Red Hat Enterprise Linux 6.6 (64-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (267, UUID(), 4, 'Red Hat Enterprise Linux 6.7 (32-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (268, UUID(), 4, 'Red Hat Enterprise Linux 6.7 (64-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (269, UUID(), 2, 'Debian GNU/Linux 8 (32-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (270, UUID(), 2, 'Debian GNU/Linux 8 (64-bit)', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (271, UUID(), 7, 'CoreOS', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (272, UUID(), 4, 'Red Hat Enterprise Linux 7.1', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (273, UUID(), 4, 'Red Hat Enterprise Linux 7.2', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (274, UUID(), 1, 'CentOS 7.2', now());
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name, created) VALUES (275, UUID(), 6, 'Other PV Virtio-SCSI (64-bit)', now());
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'Xenserver', '6.5.0', 'Windows 10 (32-bit)', 257, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '6.0', 'windows9Guest', 257, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'KVM', 'default', 'Windows 10', 257, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'Xenserver', '6.5.0', 'Windows 10 (64-bit)', 258, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '6.0', 'windows9_64Guest', 258, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'KVM', 'default', 'Windows 10', 258, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'Xenserver', '6.5.0', 'Windows Server 2016 (64-bit)', 259, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'Xenserver', '7.0.0', 'Windows Server 2016 (64-bit)', 259, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '6.0', 'windows9Server64Guest', 259, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'KVM', 'default', 'Windows Server 2016', 259, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'CentOS 7', 260, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '5.5', 'centos64Guest', 260, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'centos64Guest', 260, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'KVM', 'default', 'CentOS 7.1', 260, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'CentOS 6 (32-bit)', 261, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'centosGuest', 261, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'CentOS 6 (64-bit)', 262, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'centos64Guest', 262, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'CentOS 6 (32-bit)', 263, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'centosGuest', 263, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'CentOS 6 (64-bit)', 264, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'centos64Guest', 264, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'Red Hat Enterprise Linux 6 (32-bit)', 265, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'rhel6Guest', 265, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'Red Hat Enterprise Linux 6 (64-bit)', 266, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'rhel6_64Guest', 266, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'Red Hat Enterprise Linux 6 (32-bit)', 267, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'rhel6Guest', 267, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'Red Hat Enterprise Linux 6 (64-bit)', 268, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'rhel6_64Guest', 268, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'debian8Guest', 269, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'debian8Guest', 270, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', 'default', 'CoreOS', 271, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', 'default', 'coreos64Guest', 271, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '5.5', 'coreos64Guest', 271, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'coreos64Guest', 271, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'KVM', 'default', 'CoreOS', 271, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'Red Hat Enterprise Linux 7', 272, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '5.5', 'rhel7_64Guest', 272, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'rhel7_64Guest', 272, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'KVM', 'default', 'Red Hat Enterprise Linux 7.1', 272, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'Xenserver', '6.5.0', 'Red Hat Enterprise Linux 7', 273, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'Xenserver', '7.0.0', 'Red Hat Enterprise Linux 7', 273, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '5.5', 'rhel7_64Guest', 273, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '6.0', 'rhel7_64Guest', 273, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'KVM', 'default', 'Red Hat Enterprise Linux 7.2', 273, now(), 0);
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'Xenserver', '6.5.0', 'CentOS 7', 274, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'Xenserver', '7.0.0', 'CentOS 7', 274, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '5.5', 'centos64Guest', 274, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'VMware', '6.0', 'centos64Guest', 274, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'KVM', 'default', 'CentOS 7.2', 274, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid, hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(), 'KVM', 'default', 'Other PV Virtio-SCSI (64-bit)', 275, now(), 0);
+
+CREATE TABLE `cloud`.`vlan_details` (
+  `id` bigint unsigned NOT NULL auto_increment,
+  `vlan_id` bigint unsigned NOT NULL COMMENT 'vlan id',
+  `name` varchar(255) NOT NULL,
+  `value` varchar(1024) NOT NULL,
+  `display` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Should detail be displayed to the end user',
+  PRIMARY KEY (`id`),
+  CONSTRAINT `fk_vlan_details__vlan_id` FOREIGN KEY `fk_vlan_details__vlan_id`(`vlan_id`) REFERENCES `vlan`(`id`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+ALTER TABLE `cloud`.`network_offerings` ADD COLUMN supports_public_access boolean default false;
+
+ALTER TABLE `cloud`.`image_store_details` CHANGE COLUMN `value` `value` VARCHAR(255) NULL DEFAULT NULL COMMENT 'value of the detail', ADD COLUMN `display` tinyint(1) NOT
+NULL DEFAULT '1' COMMENT 'True if the detail can be displayed to the end user' AFTER `value`;
+
+ALTER TABLE `snapshots` ADD COLUMN `location_type` VARCHAR(32) COMMENT 'Location of snapshot (ex. Primary)';
+
+-- Database change for CLOUDSTACK-8746 (VM Snapshotting implementation for KVM)
+UPDATE `cloud`.`hypervisor_capabilities` SET `vm_snapshot_enabled` = 1 WHERE `hypervisor_type` ='KVM' AND `hypervisor_version` = 'default';
+
+-- [VM-SNAPSHOT] add role permissions for new API command createSnapshotFromVMSnapshot
+INSERT INTO `cloud`.`role_permissions` (`uuid`, `role_id`, `rule`, `permission`, `sort_order`) values (UUID(), 2, 'createSnapshotFromVMSnapshot', 'ALLOW', 318) ON DUPLICATE KEY UPDATE rule=rule;
+INSERT INTO `cloud`.`role_permissions` (`uuid`, `role_id`, `rule`, `permission`, `sort_order`) values (UUID(), 3, 'createSnapshotFromVMSnapshot', 'ALLOW', 302) ON DUPLICATE KEY UPDATE rule=rule;
+INSERT INTO `cloud`.`role_permissions` (`uuid`, `role_id`, `rule`, `permission`, `sort_order`) values (UUID(), 4, 'createSnapshotFromVMSnapshot', 'ALLOW', 260) ON DUPLICATE KEY UPDATE rule=rule;
+
+-- Create table storage_pool_tags
+CREATE TABLE `cloud`.`storage_pool_tags` (
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  `pool_id` bigint(20) unsigned NOT NULL COMMENT "pool id",
+  `tag` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`),
+  KEY `fk_storage_pool_tags__pool_id` (`pool_id`),
+  CONSTRAINT `fk_storage_pool_tags__pool_id` FOREIGN KEY (`pool_id`) REFERENCES `storage_pool` (`id`) ON DELETE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
+
+-- Insert storage tags from storage_pool_details
+INSERT INTO `cloud`.`storage_pool_tags` (pool_id, tag) SELECT pool_id, 
+name FROM `cloud`.`storage_pool_details` WHERE value = 'true';
+
+-- Alter view storage_pool_view
+CREATE OR REPLACE
+VIEW `storage_pool_view` AS
+    SELECT
+        `storage_pool`.`id` AS `id`,
+        `storage_pool`.`uuid` AS `uuid`,
+        `storage_pool`.`name` AS `name`,
+        `storage_pool`.`status` AS `status`,
+        `storage_pool`.`path` AS `path`,
+        `storage_pool`.`pool_type` AS `pool_type`,
+        `storage_pool`.`host_address` AS `host_address`,
+        `storage_pool`.`created` AS `created`,
+        `storage_pool`.`removed` AS `removed`,
+        `storage_pool`.`capacity_bytes` AS `capacity_bytes`,
+        `storage_pool`.`capacity_iops` AS `capacity_iops`,
+        `storage_pool`.`scope` AS `scope`,
+        `storage_pool`.`hypervisor` AS `hypervisor`,
+        `storage_pool`.`storage_provider_name` AS `storage_provider_name`,
+        `cluster`.`id` AS `cluster_id`,
+        `cluster`.`uuid` AS `cluster_uuid`,
+        `cluster`.`name` AS `cluster_name`,
+        `cluster`.`cluster_type` AS `cluster_type`,
+        `data_center`.`id` AS `data_center_id`,
+        `data_center`.`uuid` AS `data_center_uuid`,
+        `data_center`.`name` AS `data_center_name`,
+        `data_center`.`networktype` AS `data_center_type`,
+        `host_pod_ref`.`id` AS `pod_id`,
+        `host_pod_ref`.`uuid` AS `pod_uuid`,
+        `host_pod_ref`.`name` AS `pod_name`,
+        `storage_pool_tags`.`tag` AS `tag`,
+        `op_host_capacity`.`used_capacity` AS `disk_used_capacity`,
+        `op_host_capacity`.`reserved_capacity` AS `disk_reserved_capacity`,
+        `async_job`.`id` AS `job_id`,
+        `async_job`.`uuid` AS `job_uuid`,
+        `async_job`.`job_status` AS `job_status`,
+        `async_job`.`account_id` AS `job_account_id`
+    FROM
+        ((((((`storage_pool`
+        LEFT JOIN `cluster` ON ((`storage_pool`.`cluster_id` = `cluster`.`id`)))
+        LEFT JOIN `data_center` ON ((`storage_pool`.`data_center_id` = `data_center`.`id`)))
+        LEFT JOIN `host_pod_ref` ON ((`storage_pool`.`pod_id` = `host_pod_ref`.`id`)))
+        LEFT JOIN `storage_pool_tags` ON (((`storage_pool_tags`.`pool_id` = `storage_pool`.`id`))))
+        LEFT JOIN `op_host_capacity` ON (((`storage_pool`.`id` = `op_host_capacity`.`host_id`)
+            AND (`op_host_capacity`.`capacity_type` IN (3 , 9)))))
+        LEFT JOIN `async_job` ON (((`async_job`.`instance_id` = `storage_pool`.`id`)
+            AND (`async_job`.`instance_type` = 'StoragePool')
+            AND (`async_job`.`job_status` = 0))));
+
+-- Alter view image_store_view
+CREATE OR REPLACE
+VIEW `image_store_view` AS
+    SELECT
+        `image_store`.`id` AS `id`,
+        `image_store`.`uuid` AS `uuid`,
+        `image_store`.`name` AS `name`,
+        `image_store`.`image_provider_name` AS `image_provider_name`,
+        `image_store`.`protocol` AS `protocol`,
+        `image_store`.`url` AS `url`,
+        `image_store`.`scope` AS `scope`,
+        `image_store`.`role` AS `role`,
+        `image_store`.`removed` AS `removed`,
+        `data_center`.`id` AS `data_center_id`,
+        `data_center`.`uuid` AS `data_center_uuid`,
+        `data_center`.`name` AS `data_center_name`
+    FROM
+        (`image_store`
+        LEFT JOIN `data_center` ON ((`image_store`.`data_center_id` = `data_center`.`id`)));
+
+-- Add service_offering_id column to vm_snapshots table
+ALTER TABLE `cloud`.`vm_snapshots` ADD COLUMN `service_offering_id` BIGINT(20) UNSIGNED NOT NULL COMMENT '' AFTER `domain_id`;
+UPDATE `cloud`.`vm_snapshots` s JOIN `cloud`.`vm_instance` v ON v.id = s.vm_id SET s.service_offering_id = v.service_offering_id;
+ALTER TABLE `cloud`.`vm_snapshots` ADD CONSTRAINT `fk_vm_snapshots_service_offering_id` FOREIGN KEY (`service_offering_id`) REFERENCES `cloud`.`service_offering` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- Update vm snapshot details for instances with custom service offerings
+INSERT INTO `cloud`.`vm_snapshot_details` (vm_snapshot_id, name, value)
+SELECT s.id, d.name, d.value
+FROM `cloud`.`user_vm_details` d JOIN `cloud`.`vm_instance` v ON (d.vm_id = v.id)
+JOIN `cloud`.`service_offering` o ON (v.service_offering_id = o.id) 
+JOIN `cloud`.`vm_snapshots` s ON (s.service_offering_id = o.id AND s.vm_id = v.id)
+WHERE (o.cpu is null AND o.speed IS NULL AND o.ram_size IS NULL) AND
+(d.name = 'cpuNumber' OR d.name = 'cpuSpeed' OR d.name = 'memory');
+
+-- CLOUDSTACK-9827: Storage tags stored in multiple places
+DROP VIEW IF EXISTS `cloud`.`storage_tag_view`;
+
+CREATE TABLE `cloud`.`guest_os_details` (
+  `id` bigint unsigned NOT NULL auto_increment,
+  `guest_os_id` bigint unsigned NOT NULL COMMENT 'VPC gateway id',
+  `name` varchar(255) NOT NULL,
+  `value` varchar(1024) NOT NULL,
+  `display` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'True if the detail can be displayed to the end user',
+  PRIMARY KEY (`id`),
+  CONSTRAINT `fk_guest_os_details__guest_os_id` FOREIGN KEY `fk_guest_os_details__guest_os_id`(`guest_os_id`) REFERENCES `guest_os`(`id`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+ALTER TABLE `user_ip_address` ADD COLUMN `rule_state` VARCHAR(32) COMMENT 'static  rule state while removing';
+CREATE TABLE `cloud`.`firewall_rules_dcidrs`(
+  `id` BIGINT(20) unsigned NOT NULL AUTO_INCREMENT,
+  `firewall_rule_id` BIGINT(20) unsigned NOT NULL,
+  `destination_cidr` VARCHAR(18) DEFAULT NULL,
+  PRIMARY KEY (id),
+  UNIQUE KEY `unique_rule_dcidrs` (`firewall_rule_id`, `destination_cidr`),
+  KEY `fk_firewall_dcidrs_firewall_rules` (`firewall_rule_id`),
+  CONSTRAINT `fk_firewall_dcidrs_firewall_rules` FOREIGN KEY (`firewall_rule_id`) REFERENCES `firewall_rules` (`id`) ON DELETE CASCADE
+)ENGINE=InnoDB DEFAULT CHARSET=utf8;
\ No newline at end of file
diff --git a/setup/db/templates.sql b/setup/db/templates.sql
index c42de21..ba51489 100755
--- a/setup/db/templates.sql
+++ b/setup/db/templates.sql
@@ -15,32 +15,35 @@
 -- specific language governing permissions and limitations
 -- under the License.
 
+-- LXC, "http://download.cloudstack.org/systemvm/4.6/systemvm64template-4.6.0-kvm.qcow2.bz2", "c059b0d051e0cd6fbe9d5d4fc40c7e5d");
+-- Ovm3, "http://download.cloudstack.org/systemvm/4.6/systemvm64template-4.6.0-ovm.raw.bz2", "c8577d27b2daafb2d9a4ed307ce2f00f");
+
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
-    VALUES (1, UUID(), 'routing-1', 'SystemVM Template (XenServer)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/4.3/systemvm64template-2014-01-14-master-xen.vhd.bz2', '74b92f031cc5c2089ee89efb81344dcf', 0, 'SystemVM Template (XenServer)', 'VHD', 184, 0, 1, 'XenServer' );
+    VALUES (1, UUID(), 'routing-1', 'SystemVM Template (XenServer)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloudstack.org/systemvm/4.6/systemvm64template-4.6.0-xen.vhd.bz2', '8886f554a499ec5405b6f203d9d36460', 0, 'SystemVM Template (XenServer)', 'VHD', 184, 0, 1, 'XenServer' );
+
+INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
+    VALUES (3, UUID(), 'routing-3', 'SystemVM Template (KVM)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloudstack.org/systemvm/4.6/systemvm64template-4.6.0-kvm.qcow2.bz2', 'c059b0d051e0cd6fbe9d5d4fc40c7e5d', 0, 'SystemVM Template (KVM)', 'QCOW2', 15, 0, 1, 'KVM' );
+
+INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
+    VALUES (8, UUID(), 'routing-8', 'SystemVM Template (vSphere)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloudstack.org/systemvm/4.6/systemvm64template-4.6.0-vmware.ova', '4b415224fe00b258f66cad9fce9f73fc', 0, 'SystemVM Template (vSphere)', 'OVA', 15, 0, 1, 'VMware' );
+
+INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
+    VALUES (9, UUID(), 'routing-9', 'SystemVM Template (HyperV)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloudstack.org/systemvm/4.6/systemvm64template-4.6.0-hyperv.vhd.zip', '53e24bddfa56ea3139ed37af4b519013', 0, 'SystemVM Template (HyperV)', 'VHD', 15, 0, 1, 'Hyperv' );
 
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, removed, type, hvm, bits, account_id, url, checksum, enable_password, display_text,  format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
-    VALUES (2, UUID(), 'centos53-x86_64', 'CentOS 5.3(64-bit) no GUI (XenServer)', 1, now(), now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/templates/builtin/f59f18fb-ae94-4f97-afd2-f84755767aca.vhd.bz2', 'b63d854a9560c013142567bbae8d98cf', 0, 'CentOS 5.3(64-bit) no GUI (XenServer)', 'VHD', 12, 1, 1, 'XenServer', 1);
-
-INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
-    VALUES (3, UUID(), 'routing-3', 'SystemVM Template (KVM)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/4.3/systemvm64template-2014-01-14-master-kvm.qcow2.bz2', '85a1bed07bf43cbf022451cb2ecae4ff', 0, 'SystemVM Template (KVM)', 'QCOW2', 15, 0, 1, 'KVM' );
+    VALUES (2, UUID(), 'centos53-x86_64', 'CentOS 5.3(64-bit) no GUI (XenServer)', 1, now(), now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/templates/builtin/f59f18fb-ae94-4f97-afd2-f84755767aca.vhd.bz2', 'b63d854a9560c013142567bbae8d98cf', 0, 'CentOS 5.3(64-bit) no GUI (XenServer)', 'VHD', 12, 1, 1, 'XenServer', 1);
 
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, display_text, enable_password, format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
-    VALUES (4, UUID(), 'centos55-x86_64', 'CentOS 5.5(64-bit) no GUI (KVM)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/2.2.0/eec2209b-9875-3c8d-92be-c001bd8a0faf.qcow2.bz2', 'ed0e788280ff2912ea40f7f91ca7a249', 'CentOS 5.5(64-bit) no GUI (KVM)', 0, 'QCOW2', 112, 1, 1, 'KVM', 1);
+    VALUES (4, UUID(), 'centos55-x86_64', 'CentOS 5.5(64-bit) no GUI (KVM)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/releases/2.2.0/eec2209b-9875-3c8d-92be-c001bd8a0faf.qcow2.bz2', 'ed0e788280ff2912ea40f7f91ca7a249', 'CentOS 5.5(64-bit) no GUI (KVM)', 0, 'QCOW2', 112, 1, 1, 'KVM', 1);
 
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text,  format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
-    VALUES (5, UUID(), 'centos56-x86_64-xen', 'CentOS 5.6(64-bit) no GUI (XenServer)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/templates/builtin/centos56-x86_64.vhd.bz2', '905cec879afd9c9d22ecc8036131a180', 0, 'CentOS 5.6(64-bit) no GUI (XenServer)', 'VHD', 142, 1, 1, 'XenServer', 1);
+    VALUES (5, UUID(), 'centos56-x86_64-xen', 'CentOS 5.6(64-bit) no GUI (XenServer)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/templates/builtin/centos56-x86_64.vhd.bz2', '905cec879afd9c9d22ecc8036131a180', 0, 'CentOS 5.6(64-bit) no GUI (XenServer)', 'VHD', 142, 1, 1, 'XenServer', 1);
 
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text,  format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
-    VALUES (7, UUID(), 'centos53-x64', 'CentOS 5.3(64-bit) no GUI (vSphere)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/2.2.0/CentOS5.3-x86_64.ova', 'f6f881b7f2292948d8494db837fe0f47', 0, 'CentOS 5.3(64-bit) no GUI (vSphere)', 'OVA', 12, 1, 1, 'VMware', 1);
-
-INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
-    VALUES (8, UUID(), 'routing-8', 'SystemVM Template (vSphere)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/4.3/systemvm64template-2014-01-14-master-vmware.ova', 'ef593a061f3b7594ab0bfd9b0ed0a0d4', 0, 'SystemVM Template (vSphere)', 'OVA', 15, 0, 1, 'VMware' );
-
-INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
-    VALUES (9, UUID(), 'routing-9', 'SystemVM Template (HyperV)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/4.3/systemvm64template-2013-12-23-hyperv.vhd.bz2', '5df45ee6ebe1b703a8805f4e1f4d0818', 0, 'SystemVM Template (HyperV)', 'VHD', 15, 0, 1, 'Hyperv' );
+    VALUES (6, UUID(), 'centos64-x64', 'CentOS 6.4(64-bit) GUI (Hyperv)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/releases/4.3/centos6_4_64bit.vhd.bz2', 'eef6b9940ea3ed01221d963d4a012d0a', 0, 'CentOS 6.4 (64-bit) GUI (Hyperv)', 'VHD', 182, 1, 1, 'Hyperv', 1);
 
 INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text,  format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
-    VALUES (6, UUID(), 'centos64-x64', 'CentOS 6.4(64-bit) GUI (Hyperv)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/4.3/centos6_4_64bit.vhd.bz2', 'eef6b9940ea3ed01221d963d4a012d0a', 0, 'CentOS 6.4 (64-bit) GUI (Hyperv)', 'VHD', 182, 1, 1, 'Hyperv', 1);
+    VALUES (7, UUID(), 'centos53-x64', 'CentOS 5.3(64-bit) no GUI (vSphere)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloudstack.org/releases/2.2.0/CentOS5.3-x86_64.ova', 'f6f881b7f2292948d8494db837fe0f47', 0, 'CentOS 5.3(64-bit) no GUI (vSphere)', 'OVA', 12, 1, 1, 'VMware', 1);
 
 INSERT INTO `cloud`.`guest_os_category` (id, uuid, name) VALUES (1, UUID(), 'CentOS');
 INSERT INTO `cloud`.`guest_os_category` (id, uuid, name) VALUES (2, UUID(), 'Debian');
diff --git a/systemvm/patches/debian/config/etc/init.d/cloud-early-config b/systemvm/patches/debian/config/etc/init.d/cloud-early-config
index 789f929..ac54ebf 100755
--- a/systemvm/patches/debian/config/etc/init.d/cloud-early-config
+++ b/systemvm/patches/debian/config/etc/init.d/cloud-early-config
@@ -114,8 +114,14 @@
           sed -i "s/%/ /g" /var/cache/cloud/cmdline
           ;;
      kvm)
-          if [ ! -e /dev/vport0p1 ]; then
-            log_it "/dev/vport0p1 not loaded, perhaps guest kernel is too old." && exit 2
+          VPORT=$(find /dev/virtio-ports -type l -name '*.vport' 2>/dev/null|head -1)
+
+          if [ -z "$VPORT" ]; then
+            log_it "No suitable VirtIO port was found in /dev/virtio-ports" && exit 2
+          fi
+
+          if [ ! -e "$VPORT" ]; then
+            log_it "${VPORT} not loaded, perhaps guest kernel is too old." && exit 2
           fi
 
 	      local factor=2
@@ -131,7 +137,7 @@
 	            echo $pubkey > /var/cache/cloud/authorized_keys
 	            echo $pubkey > /root/.ssh/authorized_keys
               fi
-	        done < /dev/vport0p1
+	        done < $VPORT
 	        # In case of reboot we do not send the boot args again.
 	        # So, no need to wait for them, as the boot args are already set at startup
 	        if [ -s /var/cache/cloud/cmdline  ]
@@ -1133,6 +1139,27 @@
   echo $public_ip
 }
 
+setup_ntp() {
+    log_it "Setting up NTP"
+    NTP_CONF_FILE="/etc/ntp.conf"
+    if [ -f $NTP_CONF_FILE ]
+    then
+        IFS=',' read -a server_list <<< "$NTP_SERVER_LIST"
+        for (( iterator=${#server_list[@]}-1 ; iterator>=0 ; iterator-- ))
+        do
+            server=$(echo ${server_list[iterator]} | tr -d '\r')
+            PATTERN="server $server"
+            if grep -q "^$PATTERN$" $NTP_CONF_FILE ; then
+                sed -i "/^$PATTERN$/d" $NTP_CONF_FILE
+            fi
+            sed -i "0,/^server/s//$PATTERN\nserver/" $NTP_CONF_FILE
+        done
+        service ntp restart
+    else
+        log_it "NTP configuration file not found"
+    fi
+}
+
 setup_secstorage() {
   log_it "Setting up secondary storage system vm"
   sysctl vm.min_free_kbytes=8192
@@ -1185,6 +1212,7 @@
   enable_svc cloud-passwd-srvr 0
   enable_svc cloud 1
   rm /etc/logrotate.d/cloud
+  setup_ntp
 }
 
 setup_console_proxy() {
@@ -1507,6 +1535,9 @@
       advert_int)
         ADVERT_INT=$VALUE
         ;;
+      ntpserverlist)
+        NTP_SERVER_LIST=$VALUE
+        ;;
     esac
 done
 echo -e "\n\t}\n}" >> ${CHEF_TMP_FILE}
diff --git a/systemvm/patches/debian/config/etc/logrotate.conf b/systemvm/patches/debian/config/etc/logrotate.conf
index 6b5fcc6..a44abf9 100644
--- a/systemvm/patches/debian/config/etc/logrotate.conf
+++ b/systemvm/patches/debian/config/etc/logrotate.conf
@@ -1,13 +1,14 @@
 # rotate log files daily
 daily
-# keep 5 days worth
-rotate 5
+# keep 3 days worth
+rotate 3
 # create new (empty) log files after rotating old ones
 create
 # use date as a suffix of the rotated file
 #dateext
 # max size 50M
 size 50M
+compress
 # RPM packages drop log rotation information into this directory
 include /etc/logrotate.d
 # no packages own wtmp and btmp -- we'll rotate them here
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/checks2svpn.sh b/systemvm/patches/debian/config/opt/cloud/bin/checks2svpn.sh
index 59ab426..a78ec88 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/checks2svpn.sh
+++ b/systemvm/patches/debian/config/opt/cloud/bin/checks2svpn.sh
@@ -22,18 +22,9 @@
     exit 1
 fi
 
-ipsec auto --status | grep vpn-$1 > /tmp/vpn-$1.status
+ipsec status  vpn-$1 > /tmp/vpn-$1.status
 
-cat /tmp/vpn-$1.status | grep "ISAKMP SA established" > /dev/null
-isakmpok=$?
-if [ $isakmpok -ne 0 ]
-then
-    echo -n "ISAKMP SA NOT found but checking IPsec;"
-else
-    echo -n "ISAKMP SA found;"
-fi
-
-cat /tmp/vpn-$1.status | grep "IPsec SA established" > /dev/null
+cat /tmp/vpn-$1.status | grep "ESTABLISHED" > /dev/null
 ipsecok=$?
 if [ $ipsecok -ne 0 ]
 then
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/configure.py b/systemvm/patches/debian/config/opt/cloud/bin/configure.py
index 7f0df5b..a39e10b 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/configure.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/configure.py
@@ -100,18 +100,26 @@
             self.rule['allowed'] = True
             self.rule['action'] = "ACCEPT"
 
-            if self.rule['type'] == 'all' and not obj['source_cidr_list']:
-                self.rule['cidr'] = ['0.0.0.0/0']
+            if self.rule['type'] == 'all' and  obj['source_cidr_list']:
+                self.rule['cidr'] = []
             else:
                 self.rule['cidr'] = obj['source_cidr_list']
 
+            if self.direction == 'egress':
+                try:
+                    if not obj['dest_cidr_list']:
+                        self.rule['dcidr'] = []
+                    else:
+                        self.rule['dcidr'] = obj['dest_cidr_list']
+                except Exception:
+                    self.rule['dcidr'] = []
+
             logging.debug("AclIP created for rule ==> %s", self.rule)
 
         def create(self):
-            for cidr in self.rule['cidr']:
-                self.add_rule(cidr)
+            self.add_rule()
 
-        def add_rule(self, cidr):
+        def add_rule(self):
             icmp_type = ''
             rule = self.rule
             icmp_type = "any"
@@ -126,24 +134,48 @@
             if "first_port" in self.rule.keys() and \
                self.rule['first_port'] != self.rule['last_port']:
                     rnge = " --dport %s:%s" % (rule['first_port'], rule['last_port'])
-            if self.direction == 'ingress':
-                if rule['protocol'] == "icmp":
-                    self.fw.append(["mangle", "front",
-                                    " -A FIREWALL_%s" % self.ip +
-                                    " -s %s " % cidr +
-                                    " -p %s " % rule['protocol'] +
-                                    " -m %s " % rule['protocol'] +
-                                    " --icmp-type %s -j %s" % (icmp_type, self.rule['action'])])
-                else:
-                    self.fw.append(["mangle", "front",
-                                    " -A FIREWALL_%s" % self.ip +
-                                    " -s %s " % cidr +
-                                    " -p %s " % rule['protocol'] +
-                                    " -m %s " % rule['protocol'] +
-                                    "  %s -j %s" % (rnge, self.rule['action'])])
 
             logging.debug("Current ACL IP direction is ==> %s", self.direction)
+
+            if self.direction == 'ingress':
+                for cidr in self.rule['cidr']:
+                    if rule['protocol'] == "icmp":
+                        self.fw.append(["mangle", "front",
+                                        " -A FIREWALL_%s" % self.ip +
+                                        " -s %s " % cidr +
+                                        " -p %s " % rule['protocol'] +
+                                        " --icmp-type %s -j %s" % (icmp_type, self.rule['action'])])
+                    else:
+                        self.fw.append(["mangle", "front",
+                                        " -A FIREWALL_%s" % self.ip +
+                                        " -s %s " % cidr +
+                                        " -p %s " % rule['protocol'] +
+                                        "  %s -j %s" % (rnge, self.rule['action'])])
+
+            sflag=False
+            dflag=False
             if self.direction == 'egress':
+                ruleId = self.rule['id']
+                sourceIpsetName = 'sourceCidrIpset-%d' %ruleId
+                destIpsetName = 'destCidrIpset-%d' %ruleId
+
+                #create source cidr ipset
+                srcIpset = 'ipset create '+sourceIpsetName + ' hash:net '
+                dstIpset = 'ipset create '+destIpsetName + ' hash:net '
+
+                CsHelper.execute(srcIpset)
+                CsHelper.execute(dstIpset)
+                for cidr in self.rule['cidr']:
+                    ipsetAddCmd = 'ipset add '+ sourceIpsetName + ' '+cidr
+                    CsHelper.execute(ipsetAddCmd)
+                    sflag = True
+
+                logging.debug("egress   rule  ####==> %s", self.rule)
+                for cidr in self.rule['dcidr']:
+                    ipsetAddCmd = 'ipset add '+ destIpsetName + ' '+cidr
+                    CsHelper.execute(ipsetAddCmd)
+                    dflag = True
+
                 self.fw.append(["filter", "", " -A FW_OUTBOUND -j FW_EGRESS_RULES"])
 
                 fwr = " -I FW_EGRESS_RULES"
@@ -165,18 +197,23 @@
                     else:
                         self.rule['action'] = "ACCEPT"
 
+                egressIpsetStr=''
+                if sflag == True and dflag == True:
+                    egressIpsetStr = " -m set --match-set %s src " % sourceIpsetName + \
+                                " -m set --match-set %s dst " % destIpsetName
+                elif sflag == True:
+                    egressIpsetStr = " -m set --match-set %s src " % sourceIpsetName
+                elif dflag == True:
+                    egressIpsetStr = " -m set --match-set %s dst " % destIpsetName
+
                 if rule['protocol'] == "icmp":
-                    fwr += " -s %s " % cidr + \
-                                    " -p %s " % rule['protocol'] + \
-                                    " -m %s " % rule['protocol'] + \
+                    fwr += egressIpsetStr + " -p %s " % rule['protocol'] + " -m %s " % rule['protocol'] + \
                                     " --icmp-type %s" % icmp_type
                 elif rule['protocol'] != "all":
-                    fwr += " -s %s " % cidr + \
-                           " -p %s " % rule['protocol'] + \
-                           " -m %s " % rule['protocol'] + \
-                           "  %s" % rnge
+                    fwr += egressIpsetStr + " -p %s " % rule['protocol'] + " -m %s " % rule['protocol'] + \
+                           " %s" % rnge
                 elif rule['protocol'] == "all":
-                    fwr += " -s %s " % cidr
+                    fwr += egressIpsetStr
 
                 self.fw.append(["filter", "", "%s -j %s" % (fwr, rule['action'])])
                 logging.debug("EGRESS rule configured for protocol ==> %s, action ==> %s", rule['protocol'], rule['action'])
@@ -267,6 +304,9 @@
         # Ensure that FW_EGRESS_RULES chain exists
         CsHelper.execute("iptables-save | grep '^:FW_EGRESS_RULES' || iptables -t filter -N FW_EGRESS_RULES")
         CsHelper.execute("iptables-save | grep '^-A FW_EGRESS_RULES -j ACCEPT$' | sed 's/^-A/iptables -t filter -D/g' | bash")
+        CsHelper.execute("iptables -F FW_EGRESS_RULES")
+        CsHelper.execute("ipset -L | grep Name:  | awk {'print $2'} | ipset flush")
+        CsHelper.execute("ipset -L | grep Name:  | awk {'print $2'} | ipset destroy")
 
     def process(self):
         for item in self.dbag:
@@ -471,13 +511,13 @@
 
     def deletevpn(self, ip):
         logging.info("Removing VPN configuration for %s", ip)
-        CsHelper.execute("ipsec auto --down vpn-%s" % ip)
-        CsHelper.execute("ipsec auto --delete vpn-%s" % ip)
+        CsHelper.execute("ipsec down vpn-%s" % ip)
+        CsHelper.execute("ipsec down vpn-%s" % ip)
         vpnconffile = "%s/ipsec.vpn-%s.conf" % (self.VPNCONFDIR, ip)
         vpnsecretsfile = "%s/ipsec.vpn-%s.secrets" % (self.VPNCONFDIR, ip)
         os.remove(vpnconffile)
         os.remove(vpnsecretsfile)
-        CsHelper.execute("ipsec auto --rereadall")
+        CsHelper.execute("ipsec reload")
 
     def configure_iptables(self, dev, obj):
         self.fw.append(["", "front", "-A INPUT -i %s -p udp -m udp --dport 500 -s %s -d %s -j ACCEPT" % (dev, obj['peer_gateway_ip'], obj['local_public_ip'])])
@@ -497,54 +537,60 @@
     def configure_ipsec(self, obj):
         leftpeer = obj['local_public_ip']
         rightpeer = obj['peer_gateway_ip']
-        peerlist = obj['peer_guest_cidr_list'].lstrip().rstrip().replace(',', ' ')
+        peerlist = obj['peer_guest_cidr_list'].replace(' ', '')
         vpnconffile = "%s/ipsec.vpn-%s.conf" % (self.VPNCONFDIR, rightpeer)
         vpnsecretsfile = "%s/ipsec.vpn-%s.secrets" % (self.VPNCONFDIR, rightpeer)
+        ikepolicy=obj['ike_policy'].replace(';','-')
+        esppolicy=obj['esp_policy'].replace(';','-')
+
+        pfs='no'
+        if 'modp' in esppolicy:
+            pfs='yes'
+
         if rightpeer in self.confips:
             self.confips.remove(rightpeer)
         file = CsFile(vpnconffile)
+        file.add("#conn for vpn-%s" % rightpeer, 0)
         file.search("conn ", "conn vpn-%s" % rightpeer)
         file.addeq(" left=%s" % leftpeer)
         file.addeq(" leftsubnet=%s" % obj['local_guest_cidr'])
         file.addeq(" leftnexthop=%s" % obj['local_public_gateway'])
         file.addeq(" right=%s" % rightpeer)
-        file.addeq(" rightsubnets={%s}" % peerlist)
+        file.addeq(" rightsubnet=%s" % peerlist)
         file.addeq(" type=tunnel")
         file.addeq(" authby=secret")
         file.addeq(" keyexchange=ike")
-        file.addeq(" ike=%s" % obj['ike_policy'])
+        file.addeq(" ike=%s" % ikepolicy)
         file.addeq(" ikelifetime=%s" % self.convert_sec_to_h(obj['ike_lifetime']))
-        file.addeq(" esp=%s" % obj['esp_policy'])
-        file.addeq(" salifetime=%s" % self.convert_sec_to_h(obj['esp_lifetime']))
-        if "modp" in obj['esp_policy']:
-            file.addeq(" pfs=yes")
-        else:
-            file.addeq(" pfs=no")
+        file.addeq(" esp=%s" % esppolicy)
+        file.addeq(" lifetime=%s" % self.convert_sec_to_h(obj['esp_lifetime']))
+        file.addeq(" pfs=%s" % pfs)
         file.addeq(" keyingtries=2")
         file.addeq(" auto=start")
         if 'encap' not in obj:
             obj['encap']=False
         file.addeq(" forceencaps=%s" % CsHelper.bool_to_yn(obj['encap']))
         if obj['dpd']:
-            file.addeq("  dpddelay=30")
-            file.addeq("  dpdtimeout=120")
-            file.addeq("  dpdaction=restart")
+            file.addeq(" dpddelay=30")
+            file.addeq(" dpdtimeout=120")
+            file.addeq(" dpdaction=restart")
         secret = CsFile(vpnsecretsfile)
-        secret.search("%s " % leftpeer, "%s %s: PSK \"%s\"" % (leftpeer, rightpeer, obj['ipsec_psk']))
+        secret.search("%s " % leftpeer, "%s %s : PSK \"%s\"" % (leftpeer, rightpeer, obj['ipsec_psk']))
         if secret.is_changed() or file.is_changed():
             secret.commit()
             file.commit()
             logging.info("Configured vpn %s %s", leftpeer, rightpeer)
-            CsHelper.execute("ipsec auto --rereadall")
-            CsHelper.execute("ipsec auto --add vpn-%s" % rightpeer)
-            if not obj['passive']:
-                CsHelper.execute("ipsec auto --up vpn-%s" % rightpeer)
-        os.chmod(vpnsecretsfile, 0o400)
+            CsHelper.execute("ipsec rereadsecrets")
+
+        # This will load the new config and start the connection when needed since auto=start in the config
+        CsHelper.execute("ipsec reload")
+        os.chmod(vpnsecretsfile, 0400)
 
     def convert_sec_to_h(self, val):
         hrs = int(val) / 3600
         return "%sh" % hrs
 
+
 class CsVpnUser(CsDataBag):
     PPP_CHAP='/etc/ppp/chap-secrets'
 
@@ -563,25 +609,23 @@
         userfound = False
         password = obj['password']
 
-        userSearchEntry = "%s \* %s \*"%(user,password)
         userAddEntry = "%s * %s *" %(user,password)
-        logging.debug("Adding vpn user %s" %userSearchEntry)
+        logging.debug("Adding vpn user '%s'" % user)
 
         file = CsFile(self.PPP_CHAP)
-        userfound = file.searchString(userSearchEntry, '#')
+        userfound = file.searchString(userAddEntry, '#')
         if not userfound:
-            logging.debug("User is not there already, so adding user ")
+            logging.debug("User is not there already, so adding user")
             self.del_l2tp_ipsec_user(user, obj)
             file.add(userAddEntry)
         file.commit()
 
-
     def del_l2tp_ipsec_user(self, user, obj):
         userfound = False
         password = obj['password']
-        userentry = "%s \* %s \*"%(user,password)
+        userentry = "%s * %s *" % (user,password)
 
-        logging.debug("Deleting the user %s " % user)
+        logging.debug("Deleting the user '%s'" % user)
         file = CsFile(self.PPP_CHAP)
         file.deleteLine(userentry)
         file.commit()
@@ -589,16 +633,13 @@
         if not os.path.exists('/var/run/pppd2.tdb'):
             return
 
-        logging.debug("kiing the PPPD process for the user %s " % user)
+        logging.debug("killing the PPPD process for the user '%s'" % user)
 
         fileContents = CsHelper.execute("tdbdump /var/run/pppd2.tdb")
-        print fileContents
-
         for line in fileContents:
             if user in line:
                 contentlist = line.split(';')
                 for str in contentlist:
-                    print 'in del_l2tp str = '+ str
                     pppd = str.split('=')[0]
                     if pppd == 'PPPD_PID':
                         pid = str.split('=')[1]
@@ -607,7 +648,6 @@
                             CsHelper.execute('kill -9 %s' % pid)
 
 
-
 class CsRemoteAccessVpn(CsDataBag):
     VPNCONFDIR = "/etc/ipsec.d"
 
@@ -634,24 +674,23 @@
                 logging.debug("Remote accessvpn  data bag %s",  self.dbag)
                 self.remoteaccessvpn_iptables(public_ip, self.dbag[public_ip])
 
-                CsHelper.execute("ipsec auto --rereadall")
+                CsHelper.execute("ipsec update")
                 CsHelper.execute("service xl2tpd start")
-                CsHelper.execute("ipsec auto --rereadsecrets")
-                CsHelper.execute("ipsec auto --replace L2TP-PSK")
+                CsHelper.execute("ipsec rereadsecrets")
             else:
                 logging.debug("Disabling remote access vpn .....")
                 #disable remote access vpn
-                CsHelper.execute("ipsec auto --down L2TP-PSK")
+                CsHelper.execute("ipsec down L2TP-PSK")
                 CsHelper.execute("service xl2tpd stop")
 
 
     def configure_l2tpIpsec(self, left,  obj):
-        vpnconffile="%s/l2tp.conf" % (self.VPNCONFDIR)
+        l2tpconffile="%s/l2tp.conf" % (self.VPNCONFDIR)
         vpnsecretfilte="%s/ipsec.any.secrets" % (self.VPNCONFDIR)
         xl2tpdconffile="/etc/xl2tpd/xl2tpd.conf"
         xl2tpoptionsfile='/etc/ppp/options.xl2tpd'
 
-        file = CsFile(vpnconffile)
+        file = CsFile(l2tpconffile)
         localip=obj['local_ip']
         localcidr=obj['local_cidr']
         publicIface=obj['public_interface']
@@ -1029,6 +1068,7 @@
             static_routes.process()
     except Exception:
         logging.exception("Exception while configuring router")
+        return 1
 
 if __name__ == "__main__":
     main(sys.argv)
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py
index 43cd639..071a7b2 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsAddress.py
@@ -382,7 +382,7 @@
                             "-A FIREWALL_%s " % self.address['public_ip'] +
                             "-m state --state RELATED,ESTABLISHED -j ACCEPT"])
             self.fw.append(["mangle", "",
-                            "-A FIREWALL_%s DROP" % self.address['public_ip']])
+                            "-A FIREWALL_%s -j DROP" % self.address['public_ip']])
             self.fw.append(["mangle", "",
                             "-I VPN_%s -m state --state RELATED,ESTABLISHED -j ACCEPT" % self.address['public_ip']])
             self.fw.append(["mangle", "",
@@ -392,8 +392,6 @@
             self.fw.append(["mangle", "",
                             "-A PREROUTING -i %s -m state --state NEW " % self.dev +
                             "-j CONNMARK --set-xmark %s/0xffffffff" % self.dnum])
-            self.fw.append(
-                ["mangle", "", "-A FIREWALL_%s -j DROP" % self.address['public_ip']])
             self.fw.append(["filter", "",
                             "-A FORWARD -i %s -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT" % self.dev])
             self.fw.append(["filter", "",
@@ -484,10 +482,6 @@
                             (guestNetworkCidr, self.dev, self.address['public_ip'])])
 
         if self.get_type() in ["public"]:
-            self.fw.append(["", "front",
-                            "-A FORWARD -o %s -d %s -j ACL_INBOUND_%s" % (
-                                self.dev, self.address['network'], self.dev)
-                            ])
             self.fw.append(
                 ["mangle", "", "-A FORWARD -j VPN_STATS_%s" % self.dev])
             self.fw.append(
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py
index 1d6baff..d0e512e 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py
@@ -181,8 +181,11 @@
 
 def execute(command):
     """ Execute command """
-    logging.debug("Executing: %s" % command)
     p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
+    p.wait()
+    rc = p.returncode
+
+    logging.debug("Executed: %s - exitstatus=%s " % (command, rc))
     result = p.communicate()[0]
     return result.splitlines()
 
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
index 80b930e..035125e 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsNetfilter.py
@@ -16,8 +16,7 @@
 # specific language governing permissions and limitations
 # under the License.
 import CsHelper
-from pprint import pprint
-from CsDatabag import CsDataBag, CsCmdLine
+from CsDatabag import CsCmdLine
 import logging
 
 
@@ -173,7 +172,15 @@
                         cpy = cpy.replace("-A %s" % new_rule.get_chain(), '-I %s %s' % (new_rule.get_chain(), rule_count))
                     else:
                         cpy = cpy.replace("-A %s" % new_rule.get_chain(), '-I %s %s' % (new_rule.get_chain(), fw[1]))
-                CsHelper.execute("iptables -t %s %s" % (new_rule.get_table(), cpy))
+                ret = CsHelper.execute2("iptables -t %s %s" % (new_rule.get_table(), cpy))
+                #There are some issues in this framework causing failures  .. like adding a chain without checking it is present causing
+                # the failures. Also some of the rule like removeFromLoadBalancerRule is deleting rule and deleteLoadBalancerRule
+                #trying to delete which causes the failure.
+                #For now raising the log.
+                #TODO: Need to fix in the framework.
+                if ret.returncode != 0 :
+                    error = ret.communicate()[0]
+                    logging.debug("iptables command got failed ... continuing")
                 ruleSet.add(tupledFw)
                 self.chain.add_rule(rule_chain)
         self.del_standard()
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs_ip.py b/systemvm/patches/debian/config/opt/cloud/bin/cs_ip.py
index 1ce78f9..f83bf29 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/cs_ip.py
+++ b/systemvm/patches/debian/config/opt/cloud/bin/cs_ip.py
@@ -15,12 +15,10 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-from pprint import pprint
+
 from netaddr import *
 
-
 def merge(dbag, ip):
-    added = False
     nic_dev_id = None
     for dev in dbag:
         if dev == "id":
@@ -44,8 +42,11 @@
     else:
         ip['nw_type'] = ip['nw_type'].lower()
     if ip['nw_type'] == 'control':
-        dbag['eth' + str(nic_dev_id)] = [ip]
+        dbag[ip['device']] = [ip]
     else:
-        dbag.setdefault('eth' + str(nic_dev_id), []).append(ip)
+        if 'source_nat' in ip and ip['source_nat'] and ip['device'] in dbag and len(dbag[ip['device']]) > 0:
+            dbag[ip['device']].insert(0, ip) # make sure the source_nat ip is first (primary) on the device
+        else:
+            dbag.setdefault(ip['device'], []).append(ip)
 
     return dbag
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/vr_cfg.sh b/systemvm/patches/debian/config/opt/cloud/bin/vr_cfg.sh
index a0be91c..619ec5c 100755
--- a/systemvm/patches/debian/config/opt/cloud/bin/vr_cfg.sh
+++ b/systemvm/patches/debian/config/opt/cloud/bin/vr_cfg.sh
@@ -81,7 +81,12 @@
 
 unset DEFER_CONFIG
 # trigger finish_config()
-/opt/cloud/bin/configure.py
+if [ -f /etc/cloudstack/dhcpentry.json ]; then
+    /opt/cloud/bin/configure.py vm_dhcp_entry.json
+fi
+if [ -f /etc/cloudstack/vmdata.json ]; then
+    /opt/cloud/bin/configure.py vm_metadata.json
+fi
 
 # Flush kernel conntrack table
 log_it "VR config: Flushing conntrack table"
diff --git a/systemvm/patches/debian/vpn/etc/ipsec.conf b/systemvm/patches/debian/vpn/etc/ipsec.conf
index dc363b3..344d0c3 100644
--- a/systemvm/patches/debian/vpn/etc/ipsec.conf
+++ b/systemvm/patches/debian/vpn/etc/ipsec.conf
@@ -1,9 +1,5 @@
-# Manual:     ipsec.conf.5
-version	2.0	
+# ipsec.conf - strongSwan IPsec configuration file
 
 config setup
-	nat_traversal=yes
-	virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
-	protostack=auto
-	
+
 include /etc/ipsec.d/*.conf
diff --git a/systemvm/patches/debian/vpn/etc/ipsec.d/l2tp.conf b/systemvm/patches/debian/vpn/etc/ipsec.d/l2tp.conf
index 7459e25..1cbfe78 100644
--- a/systemvm/patches/debian/vpn/etc/ipsec.d/l2tp.conf
+++ b/systemvm/patches/debian/vpn/etc/ipsec.d/l2tp.conf
@@ -1,8 +1,14 @@
+#ipsec remote access vpn configuration
 conn L2TP-PSK
-        authby=secret
+        authby=psk
         pfs=no
         rekey=no
         keyingtries=3
+        keyexchange=ikev1
+        forceencaps=yes
+        leftfirewall=yes
+        leftnexthop=%defaultroute
+        type=transport
         #
         # ----------------------------------------------------------
         # The VPN server.
@@ -30,4 +36,5 @@
         # ----------------------------------------------------------
         # Change 'ignore' to 'add' to enable this configuration.
         #
+        rightsubnetwithin=0.0.0.0/0
         auto=add
diff --git a/systemvm/patches/debian/vpn/etc/ipsec.secrets b/systemvm/patches/debian/vpn/etc/ipsec.secrets
index d9a9a43..0e4715c 100644
--- a/systemvm/patches/debian/vpn/etc/ipsec.secrets
+++ b/systemvm/patches/debian/vpn/etc/ipsec.secrets
@@ -1,2 +1,2 @@
-include /var/lib/openswan/ipsec.secrets.inc
+include /var/lib/strongswan/ipsec.conf.inc
 include /etc/ipsec.d/ipsec.*.secrets
diff --git a/systemvm/pom.xml b/systemvm/pom.xml
index 880a974..80055b8 100644
--- a/systemvm/pom.xml
+++ b/systemvm/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <properties>
diff --git a/systemvm/scripts/run.sh b/systemvm/scripts/run.sh
index 76e89a8..1e12f12 100755
--- a/systemvm/scripts/run.sh
+++ b/systemvm/scripts/run.sh
@@ -54,7 +54,7 @@
   grep 'stop' /usr/local/cloud/systemvm/user_request &>/dev/null
   if [ $? -eq 0 ]; then
       timestamp=$(date)
-      echo "$timestamp User stops cloud.com service" >> /var/log/cloud.log
+      echo "$timestamp User stops Apache CloudStack service" >> /var/log/cloud.log
       exit 0
   fi
   sleep 5
diff --git a/systemvm/scripts/ssvm-check.sh b/systemvm/scripts/ssvm-check.sh
index 2ab51c5..ffd3d95 100644
--- a/systemvm/scripts/ssvm-check.sh
+++ b/systemvm/scripts/ssvm-check.sh
@@ -56,16 +56,16 @@
 
 # check dns resolve
 echo ================================================
-nslookup download.cloud.com 1> /tmp/dns 2>&1
+nslookup cloudstack.apache.org 1> /tmp/dns 2>&1
 grep 'no servers could' /tmp/dns 1> /dev/null 2>&1
 if [ $? -eq 0 ]
 then
-    echo "ERROR: DNS not resolving download.cloud.com"
+    echo "ERROR: DNS not resolving cloudstack.apache.org"
     echo resolv.conf follows
     cat /etc/resolv.conf
     exit 2
 else
-    echo "Good: DNS resolves download.cloud.com"
+    echo "Good: DNS resolves cloudstack.apache.org"
 fi
 
 
diff --git a/test/integration/component/maint/test_escalations_instances.py b/test/integration/component/maint/test_escalations_instances.py
new file mode 100644
index 0000000..f2410ea
--- /dev/null
+++ b/test/integration/component/maint/test_escalations_instances.py
@@ -0,0 +1,267 @@
+# 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.
+
+#Import Local Modules
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.lib.utils import (cleanup_resources,
+                              validateList,
+                              get_hypervisor_type)
+from marvin.lib.base import (Account,
+                             VirtualMachine,
+                             ServiceOffering,
+                             Volume,
+                             DiskOffering,
+                             Template,
+                             Configurations)
+from marvin.lib.common import (get_domain,
+                               get_zone,
+                               get_template)
+from nose.plugins.attrib import attr
+from marvin.codes import PASS
+from marvin.sshClient import SshClient
+import time
+
+class TestInstance(cloudstackTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        try:
+            cls._cleanup = []
+            cls.testClient = super(TestInstance, cls).getClsTestClient()
+            cls.api_client = cls.testClient.getApiClient()
+            cls.services = cls.testClient.getParsedTestDataConfig()
+            # Get Domain, Zone, Template
+            cls.domain = get_domain(cls.api_client)
+            cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
+            cls.template = get_template(
+                cls.api_client,
+                cls.zone.id,
+                cls.services["ostype"]
+            )
+            if cls.zone.localstorageenabled:
+                cls.storagetype = 'local'
+                cls.services["service_offerings"]["tiny"]["storagetype"] = 'local'
+                cls.services["disk_offering"]["storagetype"] = 'local'
+            else:
+                cls.storagetype = 'shared'
+                cls.services["service_offerings"]["tiny"]["storagetype"] = 'shared'
+                cls.services["disk_offering"]["storagetype"] = 'shared'
+
+            cls.services['mode'] = cls.zone.networktype
+            cls.services["virtual_machine"]["hypervisor"] = cls.testClient.getHypervisorInfo()
+            cls.services["virtual_machine"]["zoneid"] = cls.zone.id
+            cls.services["virtual_machine"]["template"] = cls.template.id
+            cls.services["custom_volume"]["zoneid"] = cls.zone.id
+            # Creating Disk offering, Service Offering and Account
+            cls.disk_offering = DiskOffering.create(
+                cls.api_client,
+                cls.services["disk_offering"]
+            )
+            cls.service_offering = ServiceOffering.create(
+                cls.api_client,
+                cls.services["service_offerings"]["small"]
+            )
+            cls.account = Account.create(
+                cls.api_client,
+                cls.services["account"],
+                domainid=cls.domain.id
+            )
+            # Getting authentication for user in newly created Account
+            cls.user = cls.account.user[0]
+            cls.userapiclient = cls.testClient.getUserApiClient(cls.user.username, cls.domain.name)
+            cls._cleanup.append(cls.disk_offering)
+            cls._cleanup.append(cls.service_offering)
+            cls._cleanup.append(cls.account)
+            cls.mgtSvrDetails = cls.config.__dict__["mgtSvr"][0].__dict__
+        except Exception as e:
+            cls.tearDownClass()
+            raise Exception("Warning: Exception in setup : %s" % e)
+        return
+
+    def setUp(self):
+
+        self.apiClient = self.testClient.getApiClient()
+        self.cleanup = []
+
+    def tearDown(self):
+        #Clean up, terminate the created volumes
+        cleanup_resources(self.apiClient, self.cleanup)
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            cleanup_resources(cls.api_client, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+
+    def RestartServers(self):
+        """ Restart management server and usage server """
+
+        sshClient = SshClient(
+            self.mgtSvrDetails["mgtSvrIp"],
+            22,
+            self.mgtSvrDetails["user"],
+            self.mgtSvrDetails["passwd"]
+        )
+        command = "service cloudstack-management restart"
+        sshClient.execute(command)
+        return
+
+    def updateConfigurAndRestart(self,name, value):
+        Configurations.update(self.apiClient,
+                              name,value )
+        self.RestartServers()
+        time.sleep(self.services["sleep"])
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test1_attach_volume(self):
+        """
+        @desc: Unable to attach 7th Disk to windows server 2012R2 instance. Add a valid windows server 2012 URL to execute this test case
+        Step1: Set global config vmware.root.disk.controller to 'osdefault'
+        Step2: Deploy a Windows 2012 R2 instance.
+        Step3:  Attach 6 disks to the VM.
+        Step4: Try attaching a 7th disk to the VM
+        Verify that step4 succeeds without any exception
+        """
+        self.hypervisor = str(get_hypervisor_type(self.api_client)).lower()
+        if self.hypervisor != "vmware":
+            self.skipTest("This test can be run only on vmware")
+        self.updateConfigurAndRestart("vmware.root.disk.controller","osdefault")
+
+        self.services["Windows Server 2012"]["url"]="http://10.147.28.7/templates/Windows2012/WindowsServer2012R2.ova.gz",
+        template = Template.register(
+           self.userapiclient,
+          self.services["Windows Server 2012"],
+            zoneid=self.zone.id,
+           account=self.account.name,
+           domainid=self.account.domainid
+        )
+        self.assertIsNotNone(template,"Failed to register Windows server 2012 R2 template")
+        self.debug(
+           "Registered a template with format {} and id {}".format(
+              self.services["Windows Server 2012"]["format"],template.id)
+        )
+        template.download(self.userapiclient)
+        self.cleanup.append(template)
+
+        # Creating a big service offering for windows VM launch
+        big_service_offering = ServiceOffering.create(
+                self.apiClient,
+                self.services["service_offerings"]["big"]
+            )
+        self.cleanup.append(big_service_offering)
+        vm = VirtualMachine.create(
+            self.userapiclient,
+            self.services["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            serviceofferingid=big_service_offering.id,
+            templateid=template.id,
+            zoneid=self.zone.id
+        )
+        self.assertIsNotNone(vm,"Failed to deploy virtual machine")
+        self.cleanup.append(vm)
+        response = VirtualMachine.list(self.userapiclient,id=vm.id)
+        status = validateList(response)
+        self.assertEqual(status[0],PASS,"list vm response returned invalid list")
+
+        for i in range(0,7):
+            self.services["volume"]["diskname"]=i
+            disk = Volume.create(
+                self.userapiclient,
+                self.services["volume"],
+                zoneid=self.zone.id,
+                diskofferingid=self.disk_offering.id
+            )
+            self.assertIsNotNone(disk,"Failed to create custom volume")
+            self.cleanup.append(disk)
+            try:
+                vm.attach_volume(self.userapiclient,disk)
+                list_volumes = Volume.list(
+                    self.userapiclient,
+                    listall=self.services["listall"],
+                    id=disk.id
+                )
+
+                attached_volume = list_volumes[0]
+                self.assertEqual(
+                    disk.id,
+                    attached_volume.id,
+                    "list volume response does not match with the volume created and attached to vm"
+                )
+            except Exception as e:
+                self.fail("Failed to attach {} data disk to Windows server 2012 R2 vm ".format(i))
+        return
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_Scale_VM(self):
+        """
+        @desc:
+        1. Enable dynamic scaling in Global settings
+        2. Register an CentOS 7 tempplate(with tools) and tick dynamic scaling
+        3. Deploy VM with this template
+        4.Start the VM and try to change service offering
+
+        """
+        self.hypervisor = str(get_hypervisor_type(self.api_client)).lower()
+        if self.hypervisor != "xenserver":
+            self.skipTest("This test can be run only on xenserver")
+        self.updateConfigurAndRestart("enable.dynamic.scale.vm","true")
+        template = Template.register(
+           self.userapiclient,
+          self.services["CentOS7template"],
+            zoneid=self.zone.id,
+           account=self.account.name,
+           domainid=self.account.domainid
+        )
+        self.assertIsNotNone(template,"Failed to register CentOS 7 template")
+        self.debug(
+           "Registered a template with format {} and id {}".format(
+              self.services["CentOS7template"]["format"],template.id)
+        )
+        template.download(self.userapiclient)
+        self.cleanup.append(template)
+        vm = VirtualMachine.create(
+            self.userapiclient,
+            self.services["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            serviceofferingid=self.service_offering.id,
+            templateid=template.id,
+            zoneid=self.zone.id
+        )
+        self.assertIsNotNone(vm,"Failed to deploy virtual machine")
+        self.cleanup.append(vm)
+        response = VirtualMachine.list(self.userapiclient,id=vm.id)
+        status = validateList(response)
+        self.assertEqual(status[0],PASS,"list vm response returned invalid list")
+        self.assertEqual(status[1].state,"Running", "vm is not running")
+
+        service_offering = ServiceOffering.create(
+                self.apiClient,
+                self.services["service_offerings"]["big"]
+            )
+        time.sleep(self.services["sleep"])
+        vm.scale(self.userapiclient,service_offering.id)
+        scaleresponse = VirtualMachine.list(self.userapiclient,id=vm.id)
+        scalestatus = validateList(scaleresponse)
+        self.assertEqual(scalestatus[0],PASS,"list vm response returned invalid list")
+        self.assertEqual(scalestatus[1].serviceofferingname,service_offering.name, " service offering is not same")
+        self.assertEqual(scalestatus[1].serviceofferingid,service_offering.id, " service offering ids are not same")
+
+
+        return
diff --git a/test/integration/component/maint/test_high_availability.py b/test/integration/component/maint/test_high_availability.py
index 9e8978b..7d662c7 100644
--- a/test/integration/component/maint/test_high_availability.py
+++ b/test/integration/component/maint/test_high_availability.py
@@ -102,7 +102,7 @@
                 "displaytext": "Public Template",
                 "name": "Public template",
                 "ostype": 'CentOS 5.3 (64-bit)',
-                "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
+                "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
                 "hypervisor": 'XenServer',
                 "format": 'VHD',
                 "isfeatured": True,
diff --git a/test/integration/component/maint/test_ip_resource_count_for_vpc.py b/test/integration/component/maint/test_ip_resource_count_for_vpc.py
index 83ebcd4..9f853fa 100644
--- a/test/integration/component/maint/test_ip_resource_count_for_vpc.py
+++ b/test/integration/component/maint/test_ip_resource_count_for_vpc.py
@@ -124,7 +124,7 @@
                 # Max networks allowed as per hypervisor
                 # Xenserver -> 5, VMWare -> 9
             },
-
+ 
             "virtual_machine": {
                 "displayname": "Test VM",
                 "username": "root",
@@ -348,3 +348,5 @@
         account_list = Account.list(self.apiclient, id=self.account.id)
         totalip = account_list[0].iptotal
         self.assertTrue(totalip - totalip_1 == 3, "publicip count is 3")
+
+
diff --git a/test/integration/component/maint/test_redundant_router.py b/test/integration/component/maint/test_redundant_router.py
index 98b0bae..94ddae2 100644
--- a/test/integration/component/maint/test_redundant_router.py
+++ b/test/integration/component/maint/test_redundant_router.py
@@ -29,6 +29,7 @@
                                get_zone,
                                get_process_status)
 import time
+import multiprocessing
 
 # Import Local Modules
 from marvin.cloudstackTestCase import cloudstackTestCase
@@ -145,6 +146,7 @@
             cls.zone.id,
             cls.testdata["ostype"]
         )
+
         cls.testdata["small"]["zoneid"] = cls.zone.id
         cls.testdata["small"]["template"] = cls.template.id
 
@@ -872,9 +874,16 @@
             cls.testdata["nw_off_isolated_RVR"],
             conservemode=True
         )
+        cls.network_offering_for_update=NetworkOffering.create(
+            cls.api_client,
+            cls.testdata["nw_off_isolated_RVR"],
+            conservemode=True
+        )
+        cls._cleanup.append(cls.network_offering_for_update)
         cls._cleanup.append(cls.network_offering)
         # Enable Network offering
         cls.network_offering.update(cls.api_client, state='Enabled')
+        cls.network_offering_for_update.update(cls.api_client, state='Enabled')
         return
 
     @classmethod
@@ -1511,3 +1520,152 @@
             "Redundant state of the router should be BACKUP but is %s" %
             routers[0].redundantstate)
         return
+
+    def updateNetwork(self, conn):
+        try:
+            self.network.update(
+                self.api_client,
+                networkofferingid=self.network_offering_for_update.id,
+                updateinsequence=True,
+                forced=True,
+                changecidr=False
+            )
+        except Exception as e:
+               conn.send("Failed to update network: %s due to %s"%(self.network.name, e))
+        conn.send("update Network Complete")
+        return
+
+
+
+    def get_master_and_backupRouter(self):
+        retry = 4
+        master_router = backup_router=None
+        while retry > 0:
+            routers = Router.list(
+                self.apiclient,
+                networkid=self.network.id,
+                listall=True
+            )
+            retry = retry-1
+            if len(routers) < 2:
+               continue
+            if not (routers[0].redundantstate == 'MASTER' or routers[1].redundantstate == 'MASTER'):
+                continue;
+            if routers[0].redundantstate == 'MASTER':
+               master_router = routers[0]
+               backup_router = routers[1]
+               break
+            else:
+               master_router = routers[1]
+               backup_router = routers[0]
+               break
+            self.info("master_router: %s, backup_router: %s" % (master_router, backup_router))
+        return master_router, backup_router
+
+
+    def chek_for_new_backupRouter(self,old_backup_router):
+        master_router, backup_router = self.get_master_and_backupRouter()
+        retry = 4
+        self.info("Checking if new router is getting created.")
+        self.info("old_backup_router:"+old_backup_router.name+" new_backup_router:"+backup_router.name)
+        while old_backup_router.name == backup_router.name:
+            self.debug("waiting for new router old router:"+backup_router.name)
+            retry = retry-1
+            if retry == 0:
+                break;
+            time.sleep(self.testdata["sleep"])
+            master_router, backup_router = self.get_master_and_backupRouter()
+        if retry == 0:
+            self.fail("New router creation taking too long, timed out")
+
+    def wait_untill_router_stabilises(self):
+        retry=4
+        while retry > 0:
+            routers = Router.list(
+                self.apiclient,
+                networkid=self.network.id,
+                listall=True
+            )
+            retry = retry-1
+            self.info("waiting untill state of the routers is stable")
+            if routers[0].redundantstate != 'UNKNOWN' and routers[1].redundantstate != 'UNKNOWN':
+                return
+            elif retry==0:
+                self.fail("timedout while waiting for routers to stabilise")
+                return
+            time.sleep(self.testdata["sleep"])
+
+    @attr(tags=["bharat"])
+    def test_06_updateVRs_in_sequence(self):
+        """Test update network and check if VRs are updated in sequence
+        """
+
+        # Steps to validate
+        # update network to a new offering
+        # check if the master router is running while backup is starting.
+        # check if the backup is running while master is starting.
+        # check if both the routers are running after the update is complete.
+
+        #clean up the network to make sure it is in proper state.
+        self.network.restart(self.apiclient,cleanup=True)
+        time.sleep(self.testdata["sleep"])
+        self.wait_untill_router_stabilises()
+        old_master_router, old_backup_router = self.get_master_and_backupRouter()
+        self.info("old_master_router:"+old_master_router.name+" old_backup_router"+old_backup_router.name)
+        #chek if the network is in correct state
+        self.assertEqual(old_master_router.state, "Running", "The master router is not running, network is not in a correct state to start the test")
+        self.assertEqual(old_backup_router.state, "Running", "The backup router is not running, network is not in a correct state to start the test")
+
+        worker, monitor = multiprocessing.Pipe()
+        worker_process = multiprocessing.Process(target=self.updateNetwork, args=(worker,))
+        worker_process.start()
+        if not worker_process.is_alive():
+            message = monitor.recv()
+            if "Complete" not in message:
+                self.fail(message)
+
+        self.info("Network update Started, the old backup router will get destroyed and a new router will be created")
+
+        self.chek_for_new_backupRouter(old_backup_router)
+        master_router, new_backup_router=self.get_master_and_backupRouter()
+        #the state of the master router should be running. while backup is being updated
+        self.assertEqual(master_router.state, "Running", "State of the master router is not running")
+        self.assertEqual(master_router.redundantstate, 'MASTER', "Redundant state of the master router should be MASTER, but it is %s"%master_router.redundantstate)
+        self.info("Old backup router:"+old_backup_router.name+" is destroyed and new router:"+new_backup_router.name+" got created")
+
+        #wait for the new backup to become master.
+        retry = 4
+        while new_backup_router.name != master_router.name:
+            retry = retry-1
+            if retry == 0:
+                break
+            time.sleep(self.testdata["sleep"])
+            self.info("wating for backup router to become master router name:"+new_backup_router.name)
+            master_router, backup_router = self.get_master_and_backupRouter()
+        if retry == 0:
+            self.fail("timed out while waiting for new backup router to change state to MASTER.")
+
+        #new backup router has become master.
+        self.info("newly created router:"+new_backup_router.name+" has changed state to Master")
+        self.info("old master router:"+old_master_router.name+"is destroyed")
+        #old master will get destroyed and a new backup will be created.
+        #wait until new backup changes state from unknown to backup
+        master_router, backup_router = self.get_master_and_backupRouter()
+        retry = 4
+        while backup_router.redundantstate != 'BACKUP':
+            retry = retry-1
+            self.info("waiting for router:"+backup_router.name+" to change state to Backup")
+            if retry == 0:
+                break
+            time.sleep(self.testdata["sleep"])
+            master_router, backup_router = self.get_master_and_backupRouter()
+            self.assertEqual(master_router.state, "Running", "State of the master router is not running")
+            self.assertEqual(master_router.redundantstate, 'MASTER', "Redundant state of the master router should be MASTER, but it is %s"%master_router.redundantstate)
+        if retry == 0:
+            self.fail("timed out while waiting for new backup rotuer to change state to MASTER.")
+
+        #the network update is complete.finally both the router should be running.
+        new_master_router, new_backup_router=self.get_master_and_backupRouter()
+        self.assertEqual(new_master_router.state, "Running", "State of the master router:"+new_master_router.name+" is not running")
+        self.assertEqual(new_backup_router.state, "Running", "State of the backup router:"+new_backup_router.name+" is not running")
+        worker_process.join()
diff --git a/test/integration/component/maint/test_vpc.py b/test/integration/component/maint/test_vpc.py
index 5973f85..8a4447f 100644
--- a/test/integration/component/maint/test_vpc.py
+++ b/test/integration/component/maint/test_vpc.py
@@ -177,7 +177,7 @@
             },
             "vpn_customer_gw": {
                 "ipsecpsk": "s2svpn",
-                "ikepolicy": "3des-md5",
+                "ikepolicy": "3des-md5;modp1536",
                 "ikelifetime": "86400",
                 "esppolicy": "3des-md5",
                 "esplifetime": "3600",
diff --git a/test/integration/component/test_base_image_updation.py b/test/integration/component/test_base_image_updation.py
index c2d37c1..e38aa33 100644
--- a/test/integration/component/test_base_image_updation.py
+++ b/test/integration/component/test_base_image_updation.py
@@ -97,7 +97,7 @@
                        "displaytext": "Public Template - Xen",
                         "name": "Public template - Xen",
                         "ostype": "CentOS 5.3 (64-bit)",
-                        "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
+                        "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
                         "hypervisor": "xenserver",
                         "format": "VHD",
                         "isfeatured": True,
@@ -108,7 +108,7 @@
                         "displaytext": "Public Template - KVM",
                         "name": "Public template -KVM",
                         "ostype": "CentOS 5.3 (64-bit)",
-                        "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.qcow2.bz2",
+                        "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.qcow2.bz2",
                         "hypervisor": "kvm",
                         "format": "qcow2",
                         "isfeatured": True,
@@ -120,7 +120,7 @@
                         "displaytext": "Public Template - VMware",
                         "name": "Public template -VMware",
                         "ostype": "CentOS 5.3 (64-bit)",
-                        "url": "http://download.cloud.com/releases/2.2.0/CentOS5.3-x86_64.ova",
+                        "url": "http://download.cloudstack.org/releases/2.2.0/CentOS5.3-x86_64.ova",
                         "hypervisor": "vmware",
                         "format": "ova",
                         "isfeatured": True,
diff --git a/test/integration/component/test_browse_templates.py b/test/integration/component/test_browse_templates.py
index 9366914..445fae8 100644
--- a/test/integration/component/test_browse_templates.py
+++ b/test/integration/component/test_browse_templates.py
@@ -874,7 +874,7 @@
                 self.skipTest("Marvin configuration has no host credentials to check router services")
         res = str(result)
         self.debug("Cloud Process status: %s" % res)
-        # cloud.com service (type=secstorage) is running: process id: 2346
+        # Apache CloudStack service (type=secstorage) is running: process id: 2346
         self.assertEqual(
                             res.count("is running"),
                             1,
diff --git a/test/integration/component/test_browse_volumes.py b/test/integration/component/test_browse_volumes.py
index 12aa037..390d0ab 100644
--- a/test/integration/component/test_browse_volumes.py
+++ b/test/integration/component/test_browse_volumes.py
@@ -1306,7 +1306,7 @@
                 self.skipTest("Marvin configuration has no host credentials to check router services")
         res = str(result)
         self.debug("Cloud Process status: %s" % res)
-        # cloud.com service (type=secstorage) is running: process id: 2346
+        # Apache CloudStack service (type=secstorage) is running: process id: 2346
         self.assertEqual(
                             res.count("is running"),
                             1,
diff --git a/test/integration/component/test_concurrent_create_volume_from_snapshot.py b/test/integration/component/test_concurrent_create_volume_from_snapshot.py
new file mode 100644
index 0000000..8e31cc8
--- /dev/null
+++ b/test/integration/component/test_concurrent_create_volume_from_snapshot.py
@@ -0,0 +1,306 @@
+# 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.
+
+from marvin.cloudstackAPI import *
+from marvin.lib.utils import random_gen
+from nose.plugins.attrib import attr
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.lib.utils import (cleanup_resources)
+from marvin.lib.base import (Account,
+                             Volume,
+                             ServiceOffering,
+                             DiskOffering,
+                             VirtualMachine,
+                             Snapshot)
+from marvin.lib.common import (get_domain,
+                               get_template,
+                               get_zone,
+                               get_pod,
+                               list_snapshots,
+                               list_volumes)
+from marvin.lib.decoratorGenerators import skipTestIf
+from marvin.codes import (
+    FAILED,
+    JOB_FAILED,
+    JOB_CANCELLED,
+    JOB_SUCCEEDED
+)
+import time
+from marvin.codes import PASS
+
+class TestSnapshotRootDisk(cloudstackTestCase):
+    @classmethod
+    def setUpClass(cls):
+        testClient = super(TestSnapshotRootDisk, cls).getClsTestClient()
+        cls.apiclient = testClient.getApiClient()
+        cls.services = testClient.getParsedTestDataConfig()
+
+        # Get Zone, Domain and templates
+        cls.domain = get_domain(cls.apiclient)
+        cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
+        cls.pod = get_pod(cls.apiclient, cls.zone.id)
+        cls.services['mode'] = cls.zone.networktype
+
+
+        cls.hypervisorNotSupported = False
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+        if cls.hypervisor.lower() in ['hyperv', 'lxc'] or 'kvm-centos6' in cls.testClient.getZoneForTests():
+            cls.hypervisorNotSupported = True
+
+        cls._cleanup = []
+        if not cls.hypervisorNotSupported:
+            cls.template = get_template(cls.apiclient, template_type='BUILTIN')
+            cls.services["domainid"] = cls.domain.id
+            cls.services["small"]["zoneid"] = cls.zone.id
+            cls.services["templates"]["ostypeid"] = cls.template.ostypeid
+            cls.services["zoneid"] = cls.zone.id
+            # Create VMs, NAT Rules etc
+            cls.account = Account.create(
+                cls.apiclient,
+                cls.services["account"],
+                domainid=cls.domain.id
+            )
+            cls.service_offering = ServiceOffering.create(
+                cls.apiclient,
+                cls.services["service_offerings"]["tiny"]
+            )
+            cls.disk_offering = DiskOffering.create(
+                cls.apiclient,
+                cls.services["disk_offering"]
+            )
+            cls.virtual_machine = cls.virtual_machine_with_disk = \
+                VirtualMachine.create(
+                    cls.apiclient,
+                    cls.services["small"],
+                    templateid=cls.template.id,
+                    accountid=cls.account.name,
+                    domainid=cls.account.domainid,
+                    zoneid=cls.zone.id,
+                    serviceofferingid=cls.service_offering.id,
+                    mode=cls.services["mode"]
+                )
+
+            cls._cleanup.append(cls.service_offering)
+            cls._cleanup.append(cls.account)
+            # cls._cleanup.append(cls.template)
+            cls._cleanup.append(cls.disk_offering)
+
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            # Cleanup resources used
+            cleanup_resources(cls.apiclient, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    def setUp(self):
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+        return
+
+    def tearDown(self):
+        try:
+            # Clean up, terminate the created instance, volumes and snapshots
+            # cleanup_resources(self.apiclient, self.cleanup)
+
+            for obj in self.cleanup:
+                """Delete Volume"""
+                cmd = deleteVolume.deleteVolumeCmd()
+                cmd.id = obj.id
+                self.apiclient.deleteVolume(cmd)
+
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+
+    # Method to create volume from snapshot but will return immediately as an asynchronous task does.
+    def create_from_snapshot(cls, apiclient, snapshot_id, services,
+                             account=None, domainid=None):
+            """Create volume from snapshot"""
+            cmd = createVolume.createVolumeCmd()
+            cmd.isAsync = "false"
+            cmd.name = "-".join([services["diskname"], random_gen()])
+            cmd.snapshotid = snapshot_id
+            cmd.zoneid = services["zoneid"]
+            if "size" in services:
+                cmd.size = services["size"]
+            if services["ispublic"]:
+                cmd.ispublic = services["ispublic"]
+            else:
+                cmd.ispublic = False
+            if account:
+                cmd.account = account
+            else:
+                cmd.account = services["account"]
+            if domainid:
+                cmd.domainid = domainid
+            else:
+                cmd.domainid = services["domainid"]
+            return Volume(apiclient.createVolume(cmd).__dict__)
+
+
+    def query_async_job(self, apiclient, jobid):
+        """Query the status for Async Job"""
+        try:
+            asyncTimeout = 5600
+            cmd = queryAsyncJobResult.queryAsyncJobResultCmd()
+            cmd.jobid = jobid
+            timeout = asyncTimeout
+            async_response = FAILED
+            while timeout > 0:
+                async_response = apiclient.queryAsyncJobResult(cmd)
+                if async_response != FAILED:
+                    job_status = async_response.jobstatus
+                    if job_status in [JOB_CANCELLED,
+                                      JOB_SUCCEEDED]:
+                        break
+                    elif job_status == JOB_FAILED:
+                        raise Exception("Job failed: %s" \
+                                        % async_response)
+                time.sleep(5)
+                timeout -= 5
+                self.debug("=== JobId: %s is Still Processing, "
+                           "Will TimeOut in: %s ====" % (str(jobid),
+                                                         str(timeout)))
+            return async_response
+        except Exception as e:
+            self.debug("==== Exception Occurred for Job: %s ====" %
+                       str(e))
+            return FAILED
+
+    @skipTestIf("hypervisorNotSupported")
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
+    def test_01_snapshot_root_disk(self):
+        """Test Snapshot Root Disk
+        """
+
+        # Validate the following
+        # 1. Account List should list the accounts that was existed.
+        # 2. List Volumes
+        # 3. Create Snapshot From the volume[0] from volume list
+        # 4. List Snapshots
+        # 5. Create Volume V1,V2,V3 from Snapshot List[0]
+        # 6. Verify that Async Job id's status
+        # 7. List all the volumes
+        # 8. Add Volumes V1,V2,V3 to cleanup
+        # 9. Check list response returns a valid list
+        # 10. Check if result exists in list item call
+
+        # 1. Account List should list the accounts that was existed.
+        account_list = Account.list(
+            self.apiclient,
+            listAll = True,
+            roleType ='Admin'
+            );
+
+        # 2. List Volumes
+        volumes = list_volumes(
+            self.apiclient,
+            virtualmachineid=self.virtual_machine_with_disk.id,
+            type='ROOT',
+            listall=True
+        )
+
+        # 3. Create Snapshot From the volume[0] from volume list
+        snapshot = Snapshot.create(
+            self.apiclient,
+            volumes[0].id,
+            account=self.account.name,
+            domainid=self.account.domainid
+        )
+        #self._cleanup.append(snapshot)
+        self.debug("Snapshot created: ID - %s" % snapshot.id)
+
+        # 4. List Snapshots
+        snapshots = list_snapshots(
+            self.apiclient,listall=True
+            )
+
+        # 5. Create Volume V1,V2,V3 from Snapshot List[0]
+        services = {"diskname": "Vol", "zoneid": self.zone.id, "size": 10, "ispublic": True}
+        vol1_jobId = self.create_from_snapshot(
+             self.apiclient,snapshots[0].id,
+            services,
+
+            account_list[0].name,
+            account_list[0].domainid
+         );
+
+        vol2_jobId = self.create_from_snapshot(
+            self.apiclient, snapshots[0].id,
+            services,
+
+            account_list[0].name,
+            account_list[0].domainid
+        );
+
+        vol3_jobId = self.create_from_snapshot(
+             self.apiclient, snapshots[0].id,
+             services,
+
+             account_list[0].name,
+             account_list[0].domainid
+         );
+
+        # 6. Verify that Async Job id's status
+        self.query_async_job(self.apiclient, vol1_jobId.jobid)
+        self.query_async_job(self.apiclient, vol2_jobId.jobid)
+        self.query_async_job(self.apiclient, vol3_jobId.jobid)
+
+        # 7. List all the volumes
+        list_volume_response = Volume.list(
+            self.apiclient,
+            type="DATADISK",
+            account=account_list[0].name,
+            domainid=account_list[0].domainid
+        )
+
+        # 8. Add Volumes V1,V2,V3 to cleanup
+        self.cleanup.append(list_volume_response[0]);
+        self.cleanup.append(list_volume_response[1]);
+        self.cleanup.append(list_volume_response[2]);
+
+        # 9. Check list response returns a valid list
+        self.assertEqual(
+            isinstance(list_volume_response, list),
+            True,
+            "Check list response returns a valid list"
+        )
+
+
+        # 10.Check if result exists in list item call
+        self.assertNotEqual(
+            list_volume_response,
+            None,
+            "Check if result exists in list item call"
+        )
+
+        self.assertIsNotNone(snapshots[0].zoneid,
+                             "Zone id is not none in listSnapshots")
+        self.assertEqual(
+            snapshots[0].zoneid,
+            self.zone.id,
+            "Check zone id in the list snapshots"
+        )
+
+        return
+
diff --git a/test/integration/component/test_concurrent_snapshots_limit.py b/test/integration/component/test_concurrent_snapshots_limit.py
old mode 100644
new mode 100755
index d4170fa..fce1dd4
--- a/test/integration/component/test_concurrent_snapshots_limit.py
+++ b/test/integration/component/test_concurrent_snapshots_limit.py
@@ -297,3 +297,16 @@
                 more than concurrent.snapshots.threshold.perhost\
                 value successfully created")
         return
+
+    @attr(tags=["advanced", "basic"], required_hardware="false")
+    def test_03_concurrent_snapshot_global_value_assignment(self):
+        """ Test verifies that exception is raised if string value is assigned to
+             concurrent.snapshots.threshold.perhost parameter.
+        """
+        with self.assertRaises(Exception):
+           Configurations.update(
+             self.apiclient,
+             "concurrent.snapshots.threshold.perhost",
+             "String"
+           )
+        return
\ No newline at end of file
diff --git a/test/integration/component/test_escalations_instances.py b/test/integration/component/test_escalations_instances.py
index 82e832c..bbff907 100644
--- a/test/integration/component/test_escalations_instances.py
+++ b/test/integration/component/test_escalations_instances.py
@@ -42,7 +42,7 @@
 from marvin.sshClient import SshClient
 from nose.plugins.attrib import attr
 import time
-
+from marvin.cloudstackException import CloudstackAPIException
 
 class TestListInstances(cloudstackTestCase):
     @classmethod
@@ -2068,6 +2068,95 @@
                 "VM NIC is not same as expected"
             )
         return
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_14_Create_vm_with_same_sshkey(self):
+        """
+        @Desc: Test to verify API call Register ssh key pair fails when uses same public key for differnet key name
+        """
+
+
+        # Listing all the SSH Key pairs
+        list_keypairs_before = SSHKeyPair.list(
+            self.userapiclient
+        )
+        list_keypairs_before_size = 0
+        if list_keypairs_before is not None:
+            list_keypairs_before_size = len(list_keypairs_before)
+
+        # Registering first Key pair
+        new_keypair1 = SSHKeyPair.register(
+            self.userapiclient,
+            name="keypair1",
+            publickey="ssh-rsa: e6:9a:1e:b5:98:75:88:5d:56:bc:92:7b:43:48:05:b2")
+        self.assertIsNotNone(
+            new_keypair1,
+            "New Key pair generation failed"
+        )
+        self.assertEquals(
+            "keypair1",
+            new_keypair1.name,
+            "Key Pair not created with given name"
+        )
+        # Listing all the SSH Key pairs again
+        list_keypairs_after = SSHKeyPair.list(
+            self.userapiclient
+        )
+        status = validateList(list_keypairs_after)
+        self.assertEquals(
+            PASS,
+            status[0],
+            "Listing of Key pairs failed"
+        )
+        # Verifying that list size is increased by 1
+        self.assertEquals(
+            list_keypairs_before_size + 1,
+            len(list_keypairs_after),
+            "List count is not matching"
+        )
+
+        # Deploying a VM with keypair 1
+        first_vm_created = VirtualMachine.create(
+            self.userapiclient,
+            self.services["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            serviceofferingid=self.service_offering.id,
+            keypair=new_keypair1.name
+        )
+        self.assertIsNotNone(
+            first_vm_created,
+            "VM creation failed"
+        )
+        # Listing all the VMs for a user again
+        list_vms_after = VirtualMachine.list(
+            self.userapiclient,id=first_vm_created.id,
+            listall=True,
+        )
+        status = validateList(list_vms_after)
+        self.assertEquals(
+            PASS,
+            status[0],
+            "VM creation failed"
+        )
+        vm = list_vms_after[0]
+        self.assertEqual(
+            vm.state,
+            "Running",
+            "VM state should be running after deployment")
+        self.assertEqual(vm.keypair , new_keypair1.name , "VM keypair name is not keypair1")
+
+        try:
+
+            # Registering second key pair using same public key
+            new_keypair2 = SSHKeyPair.register(
+                self.userapiclient,
+                name="keypair2",
+                publickey="ssh-rsa: e6:9a:1e:b5:98:75:88:5d:56:bc:92:7b:43:48:05:b2")
+            self.fail("SSH Key creation passed using same public key ")
+        except CloudstackAPIException  as e:
+            self.assertRaises("Exception Raised : %s" % e)
+
+        return
 
 
 class TestInstances(cloudstackTestCase):
diff --git a/test/integration/component/test_escalations_vmware.py b/test/integration/component/test_escalations_vmware.py
index aba4af0..1169625 100644
--- a/test/integration/component/test_escalations_vmware.py
+++ b/test/integration/component/test_escalations_vmware.py
@@ -267,4 +267,67 @@
         self.assertEqual(attachedIsoName, "vmware-tools.iso", "vmware-tools.iso not attached")
         return
 
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test3_attach_ISO_in_RHEL7OSVM(self):
+        """
+        @desc:Incorrect guest os mapping in vmware for Rhel7. Add a valid RHEL7 URL to execute this test case
+        Step1 :Register an RHEL 7 template
+        Step2 :Launch a VM
+        Step3: Try to attach VMware Tools ISO
+        Step4: Verify VMware tools ISO attached correctly
+        """
+        self.hypervisor = str(get_hypervisor_type(self.api_client)).lower()
+        if self.hypervisor != "vmware":
+            self.skipTest("This test can be run only on vmware")
+        self.services["Rhel7template"]["url"]="http://10.147.28.7/templates/rhel71.ova",
+        template = Template.register(
+            self.userapiclient,
+            self.services["Rhel7template"],
+            zoneid=self.zone.id,
+            account=self.account.name,
+            domainid=self.account.domainid,
+            hypervisor=self.hypervisor
+        )
+        self.debug(
+            "Registered a template with format {} and id {}".format(
+                self.services["Rhel7template"]["format"],template.id)
+        )
+        template.download(self.userapiclient)
+        self.cleanup.append(template)
+        vm = VirtualMachine.create(
+            self.userapiclient,
+            self.services["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            serviceofferingid=self.service_offering.id,
+            templateid=template.id,
+            zoneid=self.zone.id
+        )
+        self.cleanup.append(vm)
+        response = VirtualMachine.list(self.userapiclient,id=vm.id)
+        status = validateList(response)
+        self.assertEqual(status[0],PASS,"list vm response returned invalid list")
+        list_default_iso_response = list_isos(
+            self.api_client,
+            name="vmware-tools.iso",
+            account="system",
+            isready="true"
+        )
+        status = validateList(list_default_iso_response)
+        self.assertEquals(
+                PASS,
+                status[0],
+                "ISO list is empty")
+        self.debug(
+            "Registered a ISO with name {}".format(list_default_iso_response[0].name))
+        try:
+            vm.attach_iso(self.userapiclient,list_default_iso_response[0])
+        except CloudstackAPIException  as e:
+            self.fail("Attached ISO failed : %s" % e)
+        response = VirtualMachine.list(self.userapiclient, id=vm.id)
+        status = validateList(response)
+        self.assertEqual(status[0], PASS,"list vm response returned invalid list")
+        attachedIsoName=response[0].isoname;
+        self.assertEqual(attachedIsoName, "vmware-tools.iso", "vmware-tools.iso not attached")
+        return
 
diff --git a/test/integration/component/test_ldap_auto_import.py b/test/integration/component/test_ldap_auto_import.py
new file mode 100644
index 0000000..b7b9e2a
--- /dev/null
+++ b/test/integration/component/test_ldap_auto_import.py
@@ -0,0 +1,598 @@
+# 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.
+
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.cloudstackAPI import (
+    updateConfiguration,
+    deleteAccount,
+    addLdapConfiguration,
+    linkDomainToLdap,
+    deleteLdapConfiguration,
+    disableAccount)
+from marvin.lib.common import get_domain
+from marvin.lib.base import (Account,
+                             Configurations,
+                             Domain)
+from marvin.cloudstackAPI import login
+from marvin.lib.utils import (cleanup_resources)
+from nose.plugins.attrib import attr
+import telnetlib
+import random
+import string
+
+
+def randomword(length):
+    return ''.join(random.choice(string.lowercase) for i in range(length))
+
+
+def addLdapConfiguration1(cls, ldapConfiguration):
+    """
+            :param ldapConfiguration
+            """
+    cls.chkConfig = checkLdapConfiguration(cls, ldapConfiguration)
+    if not cls.chkConfig:
+        return 0
+
+    # Setup Global settings
+    Configurations.update(
+        cls.apiClient,
+        name="ldap.basedn",
+        value=ldapConfiguration['basedn']
+    )
+    Configurations.update(
+        cls.apiClient,
+        name="ldap.bind.password",
+        value=ldapConfiguration['bindpassword']
+    )
+    Configurations.update(
+        cls.apiClient,
+        name="ldap.bind.principal",
+        value=ldapConfiguration['principal']
+    )
+    Configurations.update(
+        cls.apiClient,
+        name="ldap.email.attribute",
+        value=ldapConfiguration['emailAttribute']
+    )
+    Configurations.update(
+        cls.apiClient,
+        name="ldap.user.object",
+        value=ldapConfiguration['userObject']
+    )
+    Configurations.update(
+        cls.apiClient,
+        name="ldap.username.attribute",
+        value=ldapConfiguration['usernameAttribute']
+    )
+    Configurations.update(
+        cls.apiClient,
+        name="ldap.nested.groups.enable",
+        value="true"
+    )
+
+    ldapServer = addLdapConfiguration.addLdapConfigurationCmd()
+    ldapServer.hostname = ldapConfiguration['hostname']
+    ldapServer.port = ldapConfiguration['port']
+
+    cls.debug("calling addLdapConfiguration API command")
+    try:
+        cls.apiClient.addLdapConfiguration(ldapServer)
+        cls.debug("addLdapConfiguration was successful")
+        return 1
+    except Exception as e:
+        cls.debug(
+            "addLdapConfiguration failed %s Check the Passed passed"
+            " ldap attributes" %
+            e)
+        cls.reason = "addLdapConfiguration failed %s Check the Passed " \
+                     "passed ldap attributes" % e
+        raise Exception(
+            "addLdapConfiguration failed %s Check the Passed passed"
+            " ldap attributes" %
+            e)
+        return 1
+
+
+def checklogin(cls, username, password, domain, method):
+    """
+    :param username:
+    :param password:
+    """
+    cls.debug("Attempting to login.")
+    try:
+        loginParams = login.loginCmd()
+        loginParams.username = username
+        loginParams.password = password
+        loginParams.domain = domain
+        loginRes = cls.apiClient.login(loginParams, method)
+        cls.debug("login response %s" % loginRes)
+        if loginRes is None:
+            cls.debug("login not successful")
+            return 0
+        else:
+            cls.debug("login successful")
+            return 1
+    except Exception as p:
+        cls.debug("login operation failed %s" % p)
+        cls.reason = "Login operation Failed %s" % p
+
+
+def checkLdapConfiguration(cls, ldapConfiguration):
+    """This function checks whether the passed ldap server in
+        the configuration is up and running or not.
+                 """
+    flag = False
+    try:
+        tn = telnetlib.Telnet(
+            ldapConfiguration['hostname'],
+            ldapConfiguration['port'],
+            timeout=15)
+        if tn is not None:
+            tn.set_debuglevel(1)
+            print tn.msg("Connected to the server")
+            cls.debug(
+                "Ldap Server is Up and listening on the port %s" %
+                tn.msg("Connected to the server"))
+            flag = True
+            tn.close()
+    except Exception as e:
+        cls.debug(
+            "Not able to reach the LDAP server ,"
+            "please check the Services on LDAP %s and  exception is %s" %
+            ((ldapConfiguration['hostname']), e))
+        cls.reason = "Not able to reach the LDAP server ,please check" \
+                     " the Services on LDAP %s and exception is %s" \
+                     % ((ldapConfiguration['hostname']), e)
+    return flag
+
+
+class TestLdap(cloudstackTestCase):
+    """
+    LDAP AutoImport smoke tests
+    """
+    @classmethod
+    def setUpClass(cls):
+        """
+        :type cls: object
+        """
+        testClient = super(TestLdap, cls).getClsTestClient()
+        cls.api_client = testClient.getApiClient()
+        cls.services = testClient.getParsedTestDataConfig()
+        cls.cleanup = []
+        cls.domain = get_domain(cls.api_client)
+        cls.delflag = 0
+        cls.reason = ""
+
+        cls.apiClient = cls.testClient.getApiClient()
+        try:
+            cls.ldapconfRes = addLdapConfiguration1(
+                cls, cls.services["configurableData"]["ldap_configuration"])
+        except Exception as e:
+            raise Exception("Configuring LDAP failed. Check attributes")
+
+        cls.cleanup.append(cls.ldapconfRes)
+
+    @classmethod
+    def tearDownClass(cls):
+        """
+        #cleanup includes : delete normal account, remove ldap configuration
+        :type cls: object
+        """
+        testClient = super(TestLdap, cls).getClsTestClient()
+        cls.api_client = testClient.getApiClient()
+        cls.services = testClient.getParsedTestDataConfig()
+
+        if cls.ldapconfRes == 1:
+            ldapserver = deleteLdapConfiguration.deleteLdapConfigurationCmd()
+            ldapserver.hostname = cls.services["configurableData"][
+                "ldap_configuration"]["hostname"]
+
+            try:
+                cls.apiClient.deleteLdapConfiguration(ldapserver)
+                cls.debug("deleteLdapConfiguration was successful")
+                return 1
+            except Exception as e:
+                cls.debug("deleteLdapConfiguration failed %s" % e)
+                return 0
+
+    def setUp(self):
+        self.user = self.services["configurableData"]["link_ldap_details"]["linkLdapUsername"]
+        self.password = self.services["configurableData"]["link_ldap_details"]["linkLdapPassword"]
+        self.delflag1 = 0
+        self.delflag2 = 0
+        self.delflag3 = 0
+        self.delflag4 = 0
+
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+
+        self.parent_domain = Domain.create(
+            self.apiclient,
+            services=self.services["domain"],
+            parentdomainid=self.domain.id)
+
+        self.ldaplink = linkDomainToLdap.linkDomainToLdapCmd()
+        self.ldaplink.domainid = self.parent_domain.id
+        self.ldaplink.accounttype = self.services[
+            "configurableData"]["link_ldap_details"]["accounttype"]
+        self.ldaplink.name = self.services[
+            "configurableData"]["link_ldap_details"]["name"]
+        self.ldaplink.type = self.services[
+            "configurableData"]["link_ldap_details"]["type"]
+        if self.services["configurableData"][
+            "link_ldap_details"]["admin"] is not None:
+            self.ldaplink.admin = self.services[
+                "configurableData"]["link_ldap_details"]["admin"]
+
+        if self.ldaplink.domainid == "" or self.ldaplink.accounttype == "" \
+                or self.ldaplink.name == "" \
+                or self.ldaplink.type == "":
+            self.debug(
+                "Please rerun the test by providing "
+                "values in link_ldap configuration user details")
+            self.skipTest(
+                "Please rerun the test by providing "
+                "proper values in configuration file(link ldap)")
+        else:
+            self.delflag1 = 1
+            self.ldaplinkRes = self.apiClient.linkDomainToLdap(self.ldaplink)
+        self.assertEquals(
+            self.delflag1,
+            1,
+            "Linking LDAP failed,please check the configuration")
+        loginRes = checklogin(self,
+                              self.user, self.password,
+                              self.parent_domain.name,
+                              method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, 1, self.reason)
+
+        lsap_user = Account.list(self.api_client,
+                                 domainid=self.parent_domain.id,
+                                 name=self.user
+                                 )
+        self.ldapacctID = lsap_user[0].id
+
+    def tearDown(self):
+
+        try:
+            self.parent_domain.delete(self.apiclient, cleanup=True)
+        except Exception as e:
+            raise Exception(
+                "Warning: Exception during cleanup of domain : %s" % e)
+        try:
+            # Clean up, terminate the created instance, volumes and snapshots
+            cleanup_resources(self.apiclient, self.cleanup)
+            pass
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_01_ldap(self):
+        """Check the linkDomainToLdap functionality"""
+        self.domain1 = Domain.create(
+            self.apiclient,
+            services=self.services["domain"],
+            parentdomainid=self.domain.id)
+
+        self.ldaplink4 = linkDomainToLdap.linkDomainToLdapCmd()
+        self.ldaplink4.domainid = self.domain1.id
+        self.ldaplink4.accounttype = self.services[
+            "configurableData"]["link_ldap_details"]["accounttype"]
+        self.ldaplink4.name = self.services[
+            "configurableData"]["link_ldap_details"]["name"]
+        self.ldaplink4.type = self.services[
+            "configurableData"]["link_ldap_details"]["type"]
+        if self.services["configurableData"][
+            "link_ldap_details"]["admin"] is not None:
+            self.ldaplink4.admin = self.services[
+                "configurableData"]["link_ldap_details"]["admin"]
+
+        try:
+            self.ldaplinkRes4 = self.apiClient.linkDomainToLdap(self.ldaplink4)
+
+        except Exception as e:
+            raise Exception(
+                "Linking LDAP failed,please check the configuration")
+
+        try:
+            self.domain1.delete(self.apiclient)
+        except Exception as e:
+            raise Exception(
+                "Warning: Exception during deletion of domain : %s" % e)
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_02_ldap(self):
+        """User is both in LDAP and imported into CS(i.e already logged in
+           once.So just check the log in again)"""
+        loginRes = checklogin(
+            self,
+            self.user,
+            self.password,
+            self.parent_domain.name,
+            method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, 1, self.reason)
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_03_ldap(self):
+        """User in LDAP, wrong password --> login should fail"""
+        loginRes = checklogin(
+            self,
+            self.user,
+            randomword(8),
+            self.parent_domain.name,
+            method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, None, self.reason)
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_04_ldap(self):
+        """User is only present locally, password is wrong --> login should
+          fail"""
+        loginRes = checklogin(
+            self,
+            self.services["configurableData"]["ldap_account"]["username"],
+            randomword(10),
+            "",
+            method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, None, self.reason)
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_05_ldap(self):
+        """user is not present anywhere --> login should fail"""
+        loginRes = checklogin(self, randomword(10), randomword(10),
+                              self.parent_domain.name,
+                              method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, None, self.reason)
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_06_ldap(self):
+        """Delete the LDAP user from CS and try to login --> User should be
+          created again"""
+        try:
+
+            deleteAcct2 = deleteAccount.deleteAccountCmd()
+            deleteAcct2.id = self.ldapacctID
+
+            acct_name = self.services["configurableData"][
+                "link_ldap_details"]["linkLdapUsername"]
+
+            self.apiClient.deleteAccount(deleteAcct2)
+
+            self.debug(
+                "Deleted the the following account name %s:" %
+                acct_name)
+
+        except Exception as e:
+            raise Exception(
+                "Warning: Exception during deleting "
+                "ldap imported account : %s" %
+                e)
+
+        loginRes = checklogin(
+            self,
+            self.user,
+            self.password,
+            self.parent_domain.name,
+            method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, 1, self.reason)
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_07_ldap(self):
+        """Lock the user from CS and attempt to login --> login should fail"""
+        self.lockAcct = disableAccount.disableAccountCmd()
+        self.lockAcct.lock = 'true'
+        self.lockAcct.account = self.services["configurableData"][
+            "ldap_account"]["username"]
+        self.lockAcct.domainid = self.parent_domain.id
+        self.apiClient.disableAccount(self.lockAcct)
+
+        loginRes = checklogin(
+            self,
+            self.user,
+            self.password,
+            self.parent_domain.name,
+            method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, None, self.reason)
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_08_ldap(self):
+        """Create different domains and link all of them to LDAP. Check
+                        login in each domain --> login should be successful"""
+        try:
+            loginRes = checklogin(
+                self,
+                self.user,
+                self.password,
+                self.parent_domain.name,
+                method="POST")
+            self.debug(loginRes)
+            self.assertEquals(loginRes, 1, self.reason)
+
+            self.domain2 = Domain.create(
+                self.apiclient,
+                services=self.services["domain"],
+                parentdomainid=self.domain.id)
+
+            # here link ldap to domain
+            self.ldaplink2 = linkDomainToLdap.linkDomainToLdapCmd()
+            self.ldaplink2.domainid = self.domain2.id
+            self.ldaplink2.accounttype = self.services[
+                "configurableData"]["link_ldap_details"]["accounttype"]
+            self.ldaplink2.name = self.services[
+                "configurableData"]["link_ldap_details"]["name"]
+            self.ldaplink2.type = self.services[
+                "configurableData"]["link_ldap_details"]["type"]
+
+            if self.services["configurableData"][
+                "link_ldap_details"]["admin"] is not None:
+                self.ldaplink2.admin = self.services[
+                    "configurableData"]["link_ldap_details"]["admin"]
+
+            if self.ldaplink2.domainid == "" \
+                    or self.ldaplink2.accounttype == "" \
+                    or self.ldaplink2.name == "" \
+                    or self.ldaplink2.type == "":
+                self.debug(
+                    "Please rerun the test by providing"
+                    " values in link_ldap configuration user details")
+                self.skipTest(
+                    "Please rerun the test by providing "
+                    "proper values in configuration file(link ldap)")
+
+            else:
+                self.delflag2 = 1
+                self.ldaplinkRes2 = self.apiClient.linkDomainToLdap(
+                    self.ldaplink2)
+            self.assertEquals(
+                self.delflag2,
+                1,
+                "Linking LDAP failed,please check the configuration")
+
+            loginRes = checklogin(
+                self,
+                self.user,
+                self.password,
+                self.domain2.name,
+                method="POST")
+            self.debug(loginRes)
+            self.assertEquals(loginRes, 1, self.reason)
+
+            self.domain3 = Domain.create(
+                self.apiclient,
+                services=self.services["domain"],
+                parentdomainid=self.domain.id)
+            # here link ldap to domain
+            self.ldaplink3 = linkDomainToLdap.linkDomainToLdapCmd()
+            self.ldaplink3.domainid = self.domain3.id
+            self.ldaplink3.accounttype = self.services[
+                "configurableData"]["link_ldap_details"]["accounttype"]
+            self.ldaplink3.name = self.services[
+                "configurableData"]["link_ldap_details"]["name"]
+            self.ldaplink3.type = self.services[
+                "configurableData"]["link_ldap_details"]["type"]
+            if self.services["configurableData"][
+                "link_ldap_details"]["admin"] is not None:
+                self.ldaplink3.admin = self.services[
+                    "configurableData"]["link_ldap_details"]["admin"]
+
+            if self.ldaplink3.domainid == "" \
+                    or self.ldaplink3.accounttype == "" \
+                    or self.ldaplink3.name == "" \
+                    or self.ldaplink3.type == "":
+                self.debug(
+                    "Please rerun the test by providing"
+                    " values in link_ldap configuration user details")
+                self.skipTest(
+                    "Please rerun the test by providing "
+                    "proper values in configuration file(link ldap)")
+            else:
+                self.delflag3 = 1
+                self.ldaplinkRes3 = self.apiClient.linkDomainToLdap(
+                    self.ldaplink3)
+            self.assertEquals(
+                self.delflag3,
+                1,
+                "Linking LDAP failed,please check the configuration")
+            loginRes = checklogin(
+                self,
+                self.user,
+                self.password,
+                self.domain2.name,
+                method="POST")
+            self.debug(loginRes)
+            self.assertEquals(loginRes, 1, self.reason)
+
+        finally:
+            try:
+                self.domain2.delete(self.apiclient, cleanup=True)
+            except Exception as e:
+                raise Exception(
+                    "Warning: Exception during deletion of domain : %s" % e)
+
+            try:
+                self.domain3.delete(self.apiclient, cleanup=True)
+            except Exception as e:
+                raise Exception(
+                    "Warning: Exception during deletion of domain : %s" % e)
+
+        return
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_09_ldap(self):
+        """ Enable nested groups and try to login with a user that is in
+             nested group --> login should be successful"""
+        if self.services["configurableData"]["link_ldap_details"]["linkLdapNestedUser"] == "":
+            self.skipTest("No nested user mentioned")
+        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
+        updateConfigurationCmd.name = "ldap.nested.groups.enable"
+        updateConfigurationCmd.value = 'true'
+        self.apiClient.updateConfiguration(updateConfigurationCmd)
+        loginRes = checklogin(
+            self,
+            self.services["configurableData"]["link_ldap_details"]["linkLdapNestedUser"],
+            self.services["configurableData"]["link_ldap_details"]["linkLdapNestedPassword"],
+            self.parent_domain.name,
+            method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, 1, self.reason)
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_10_ldap(self):
+        """Check db tables"""
+        db_check = 1
+
+        domainID = self.dbclient.execute(
+            "SELECT id FROM domain WHERE uuid=" + "'" +
+            self.parent_domain.id + "'" + ";",
+            db="cloud")
+
+        dbChecking = self.dbclient.execute(
+            "SELECT type,name,account_type "
+            "FROM ldap_trust_map WHERE domain_id=" + "'" +
+            str(domainID[0][0]) + "'" + ";",
+            db="cloud")
+
+        if dbChecking is not None and str(
+                dbChecking[0][0]) == \
+                self.services["configurableData"]["link_ldap_details"]["type"] \
+                and str(
+                    dbChecking[0][1]) == \
+                        self.services["configurableData"]["link_ldap_details"]["name"] \
+                and str(
+                    dbChecking[0][2]) == \
+                        self.services["configurableData"]["link_ldap_details"]["accounttype"]:
+            db_check = 0
+        self.assertEquals(db_check, 0, "DB check failed")
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_11_ldap(self):
+        """Password/domain empty --> login should fail"""
+        loginRes = checklogin(
+            self,
+            "", "", self.parent_domain.name, method="POST")
+        self.debug(loginRes)
+        self.assertEquals(loginRes, None, self.reason)
+
+
diff --git a/test/integration/component/test_migrate_vol_to_maintained_pool.py b/test/integration/component/test_migrate_vol_to_maintained_pool.py
new file mode 100644
index 0000000..6c83470
--- /dev/null
+++ b/test/integration/component/test_migrate_vol_to_maintained_pool.py
@@ -0,0 +1,168 @@
+# 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.
+
+from marvin.cloudstackTestCase import *
+from marvin.lib.utils import *
+from marvin.lib.base import *
+from marvin.lib.common import *
+from nose.plugins.attrib import attr
+
+
+class TestMigrationMaintainedPool(cloudstackTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+
+        cls.testClient = super(TestMigrationMaintainedPool, cls).getClsTestClient()
+        cls.apiclient = cls.testClient.getApiClient()
+        cls.services = cls.testClient.getParsedTestDataConfig()
+
+        # Get Zone, Domain and templates
+        domain = get_domain(cls.apiclient)
+        cls.zone = get_zone(cls.apiclient, cls.testClient.getZoneForTests())
+        cls.services['mode'] = cls.zone.networktype
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+
+        cls.pod = get_pod(cls.apiclient, cls.zone.id)
+
+        template = get_template(
+                            cls.apiclient,
+                            cls.zone.id,
+                            cls.services["ostype"]
+                            )
+        # Set Zones and disk offerings
+        cls.services["small"]["zoneid"] = cls.zone.id
+        cls.services["small"]["template"] = template.id
+
+        cls.account = Account.create(
+                            cls.apiclient,
+                            cls.services["account"],
+                            domainid=domain.id
+                            )
+
+        cls.small_offering = ServiceOffering.create(
+                                    cls.apiclient,
+                                    cls.services["service_offerings"]["small"]
+                                    )
+
+        #create a virtual machine
+        cls.virtual_machine = VirtualMachine.create(
+                                        cls.apiclient,
+                                        cls.services["small"],
+                                        accountid=cls.account.name,
+                                        domainid=cls.account.domainid,
+                                        serviceofferingid=cls.small_offering.id,
+                                        mode=cls.services["mode"]
+                                        )
+        cls._cleanup = [
+                        cls.small_offering,
+                        cls.virtual_machine,
+                        cls.account
+                        ]
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.apiclient = super(TestMigrationMaintainedPool, cls).getClsTestClient().getApiClient()
+        cleanup_resources(cls.apiclient, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+
+    def tearDown(self):
+        #Clean up, terminate the created ISOs
+        cleanup_resources(self.apiclient, self.cleanup)
+        return
+
+
+    @attr(tags=["advanced", "basic", "multipool", "storagemotion", "xenserver"], required_hardware="false")
+    def test_02_migrate_volume_to_maintenance_pool(self):
+            """
+             Trying to migrate a volume to a pool in maintenance mode should fail
+            """
+            #List Available Storage pools
+            storage_pools_response = list_storage_pools(
+                                                        self.apiclient,
+                                                        account=self.account.name,
+                                                        domainid=self.account.domainid
+                                                        )
+            self.assertEqual(
+                            isinstance(storage_pools_response, list),
+                            True,
+                            "Check list response returns a valid list"
+                        )
+            self.assertNotEqual(
+                            len(storage_pools_response),
+                            0,
+                            "Check list Storage pools response"
+                        )
+            # Check if there are atleast two storage pools , else skip the test
+            if len(storage_pools_response) < 2 :
+                self.skipTest("Atleast two storage pools are need to test Storage migration")
+
+            list_volumes_response = list_volumes(
+                                    self.apiclient,
+                                    virtualmachineid=self.virtual_machine.id,
+                                    listall=True
+                                    )
+            self.assertEqual(
+                         isinstance(list_volumes_response, list),
+                         True,
+                         "Check list volumes response for valid list"
+                        )
+            self.assertNotEqual(
+                        list_volumes_response,
+                        None,
+                        "Check if volume exists in ListVolumes"
+                        )
+            volume = list_volumes_response[0]
+
+            # Ge the list of pools suitable for migration for the volume
+            pools = StoragePool.listForMigration(
+                                            self.apiclient,
+                                            id=volume.id
+                                    )
+            self.assertEqual(
+                         isinstance(pools, list),
+                         True,
+                         "Check eligible pools for migration returns a valid list"
+                        )
+            self.assertNotEqual(
+                        len(pools),
+                        0,
+                        "Check if atleast one pool is suitable for migration"
+                        )
+            pool = pools[0]
+            self.debug("Migrating Volume-ID: %s to Pool: %s which is in Maintenance mode" % (volume.id, pool.id))
+
+            # Enable maintenance mode for one of the suitable pools
+            StoragePool.enableMaintenance(self.apiclient,id=pool.id)
+
+            # Trying to migrate volume should fail , which is caught here
+            with self.assertRaises(Exception):
+                    Volume.migrate(
+                           self.apiclient,
+                           volumeid=volume.id,
+                           storageid=pool.id,
+                           livemigrate='true'
+                           )
+            # Cancel the maintenance mode , so that the pool can be cleaned up in teardown
+            StoragePool.cancelMaintenance(self.apiclient,id=pool.id)
+
+            return
diff --git a/test/integration/component/test_project_configs.py b/test/integration/component/test_project_configs.py
index 1a560cc..c7028ee 100644
--- a/test/integration/component/test_project_configs.py
+++ b/test/integration/component/test_project_configs.py
@@ -88,7 +88,7 @@
                                 "displaytext": "Public Template",
                                 "name": "Public template",
                                 "ostype": 'CentOS 5.3 (64-bit)',
-                                "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
+                                "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
                                 "hypervisor": 'XenServer',
                                 "format": 'VHD',
                                 "isfeatured": True,
diff --git a/test/integration/component/test_project_resources.py b/test/integration/component/test_project_resources.py
index 0816e9d..7302476 100644
--- a/test/integration/component/test_project_resources.py
+++ b/test/integration/component/test_project_resources.py
@@ -45,7 +45,7 @@
 
 from marvin.lib.utils import cleanup_resources
 import random
-
+import time
 
 class Services:
     """Test Resource creation Services
@@ -626,13 +626,15 @@
         return
 
     @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], required_hardware="false")
-    def test_04_public_template_use_in_project(self):
+    def test_04_public_private_template_use_in_project(self):
         """Test Templates creation in projects
         """
         # 1. Create a project
         # 2. Verify Public templates can be used without any restriction
-        # 3. Verify that template created in project can be used in project
-        #    without any restrictions
+        # 3. Verify that private template created in project belongs to this project
+        # Verify that list template api wth project id list this template
+
+
 
         try:
             self.debug("Deploying VM for with public template: %s" %
@@ -682,6 +684,11 @@
                             True,
                             "Check Template is in ready state or not"
                         )
+            # Verify list template with project id is listing this template
+            templatelist = Template.list(self.apiclient,projectid=self.project.id,id=template_1.id,templatefilter="all")
+            self.assertEqual(templatelist[0].id,template_1.id,"template created does not belong to the project")
+
+
         except Exception as e:
             self.fail("Exception occured: %s" % e)
         return
diff --git a/test/integration/component/test_project_usage.py b/test/integration/component/test_project_usage.py
index cb95d89..829cbc7 100644
--- a/test/integration/component/test_project_usage.py
+++ b/test/integration/component/test_project_usage.py
@@ -20,7 +20,7 @@
 from nose.plugins.attrib import attr
 from marvin.cloudstackTestCase import cloudstackTestCase, unittest
 from marvin.cloudstackAPI import deleteVolume
-from marvin.lib.utils import (cleanup_resources)
+from marvin.lib.utils import (cleanup_resources, validateList)
 from marvin.lib.base import (Project,
                              VirtualMachine,
                              Account,
@@ -35,14 +35,17 @@
                              DiskOffering,
                              LoadBalancerRule,
                              Template,
-                             Iso)
+                             Iso,
+                             VmSnapshot)
 from marvin.lib.common import (get_domain,
                                get_zone,
                                get_template,
                                list_volumes,
                                get_builtin_template_info,
-                               find_storage_pool_type)
+                               find_storage_pool_type
+                               )
 import time
+from marvin.codes import PASS
 
 class Services:
     """Test Snapshots Services
@@ -67,8 +70,8 @@
                                     "name": "Tiny Instance",
                                     "displaytext": "Tiny Instance",
                                     "cpunumber": 1,
-                                    "cpuspeed": 100,    # in MHz
-                                    "memory": 128,       # In MBs
+                                    "cpuspeed": 256,    # in MHz
+                                    "memory": 256,       # In MBs
                         },
                         "disk_offering": {
                                     "displaytext": "Small",
@@ -93,7 +96,7 @@
                                     "name": 'Template',
                                     "ostype": 'CentOS 5.3 (64-bit)',
                                     "templatefilter": 'self',
-                                    "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.qcow2.bz2"
+                                    "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.qcow2.bz2"
                                 },
                         "iso": {
                                   "displaytext": "Test ISO",
@@ -142,14 +145,14 @@
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
         cls.services['mode'] = cls.zone.networktype
 
-        template = get_template(
+        cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
                             cls.services["ostype"]
                             )
         cls.services["server"]["zoneid"] = cls.zone.id
 
-        cls.services["template"] = template.id
+        cls.services["template"] = cls.template.id
 
         # Create Account, VMs etc
         cls.account = Account.create(
@@ -171,13 +174,7 @@
                                             cls.api_client,
                                             cls.services["service_offering"]
                                             )
-        cls.virtual_machine = VirtualMachine.create(
-                                cls.api_client,
-                                cls.services["server"],
-                                templateid=template.id,
-                                serviceofferingid=cls.service_offering.id,
-                                projectid=cls.project.id
-                                )
+
         cls._cleanup = [
                         cls.project,
                         cls.service_offering,
@@ -213,6 +210,7 @@
         """Test Create/Destroy VM and verify usage calculation
         """
         # Validate the following
+        # Validate 'listProjects' return tags 'vmstopped' or 'vmrunning' when their value is zero
         # 1. Create a VM. Verify usage_events table contains VM .create,
         #    VM.start , Network.offering.assign , Volume.create events
         # 2. Stop the VM. Verify usage_events table contains
@@ -221,10 +219,38 @@
         #    VM.Destroy and volume .delete Event for the created account
         # 4. Delete the account
 
+        projectlist=Project.list(self.apiclient,account=self.account.name,
+                                 domainid=self.account.domainid,id=self.project.id)
+        self.assertEqual(hasattr(projectlist[0],"vmrunning"), True ,
+                         "vmrunningattribute is not returned in list project api ")
+        self.assertEqual(projectlist[0].vmrunning,0,"vmrunning value is not returned")
+        self.assertEqual(hasattr(projectlist[0], "vmrunning"), True,
+                         "vmrunningattribute is not returned in list project api ")
+        self.assertEqual(projectlist[0].vmstopped,0,"vmstopped value is not returned")
+
+        self.virtual_machine = VirtualMachine.create(
+                                self.apiclient,
+                                self.services["server"],
+                                templateid=self.template.id,
+                                serviceofferingid=self.service_offering.id,
+                                projectid=self.project.id
+                                )
+
+        projectlist=Project.list(self.apiclient,account=self.account.name,
+                                 domainid=self.account.domainid,id=self.project.id)
+
+        self.assertEqual(projectlist[0].vmrunning,1,"vmrunning value is not returned")
+        self.assertEqual(projectlist[0].vmstopped,0,"vmstopped value is not returned")
         try:
             self.debug("Stopping the VM: %s" % self.virtual_machine.id)
             # Stop the VM
             self.virtual_machine.stop(self.apiclient)
+            projectlist=Project.list(self.apiclient,account=self.account.name,
+                                 domainid=self.account.domainid,id=self.project.id)
+
+            self.assertEqual(projectlist[0].vmrunning,0,"vmrunning value is not returned")
+            self.assertEqual(projectlist[0].vmstopped,1,"vmstopped value is not returned")
+
         except Exception as e:
             self.fail("Failed to stop VM: %s" % e)
 
@@ -308,6 +334,8 @@
                             "Check VM.STOP in events table"
                         )
 
+
+
         self.assertEqual(
                             qresult.count('NETWORK.OFFERING.REMOVE'),
                             1,
@@ -1819,3 +1847,183 @@
                             "Check VPN.USER.ADD in events table"
                         )
         return
+
+class TestVMSnapshotUsage(cloudstackTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        cls.testClient = super(TestVMSnapshotUsage, cls).getClsTestClient()
+        cls.api_client = cls.testClient.getApiClient()
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+        cls.snapshotSupported = True
+        cls._cleanup = []
+        if cls.hypervisor.lower() in ['hyperv', 'lxc', 'kvm','baremetal']:
+            cls.snapshotSupported = False
+            return
+        cls.services = Services().services
+        # Get Zone, Domain and templates
+        cls.domain = get_domain(cls.api_client)
+        cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
+        cls.services['mode'] = cls.zone.networktype
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+        template = get_template(
+                            cls.api_client,
+                            cls.zone.id,
+                            cls.services["ostype"]
+                            )
+        cls.services["server"]["zoneid"] = cls.zone.id
+
+        cls.services["template"] = template.id
+
+        # Create Account, VMs etc
+        cls.account = Account.create(
+                            cls.api_client,
+                            cls.services["account"],
+                            domainid=cls.domain.id
+                            )
+
+        cls.services["account"] = cls.account.name
+
+        cls.project = Project.create(
+                                 cls.api_client,
+                                 cls.services["project"],
+                                 account=cls.account.name,
+                                 domainid=cls.account.domainid
+                                 )
+
+        cls.service_offering = ServiceOffering.create(
+                                            cls.api_client,
+                                            cls.services["service_offering"]
+                                            )
+        cls.virtual_machine = VirtualMachine.create(
+                                cls.api_client,
+                                cls.services["server"],
+                                templateid=template.id,
+                                serviceofferingid=cls.service_offering.id,
+                                projectid=cls.project.id
+                                )
+        cls._cleanup = [
+                        cls.project,
+                        cls.service_offering,
+                        cls.account,
+                        ]
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            #Cleanup resources used
+            cleanup_resources(cls.api_client, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    def setUp(self):
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+        if not self.snapshotSupported:
+            self.skipTest("Snapshots are not supported on %s" % self.hypervisor)
+        return
+
+    def tearDown(self):
+        try:
+            #Clean up, terminate the created instance and snapshots
+            cleanup_resources(self.apiclient, self.cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+
+    @attr(tags=["advanced", "basic"])
+    def test_01_vmsnapshot_usage(self):
+        """Test Create/Delete a manual snap shot and verify
+        correct usage is recorded
+        """
+        # Validate the following
+        # 1. Create vmsnapshot of the VM  for this account. vm.Snapshot.create
+        #    event is there for the created account in cloud.usage_event table
+        # 2. Destroy the snapshot after some time. vm.Snapshot.delete event is
+        #    generated for the destroyed Snapshot
+        # 3. Delete the account
+
+        vmsnapshot=VmSnapshot.create(self.apiclient,self.virtual_machine.id,snapshotmemory="true")
+        vmsnap = VmSnapshot.list(
+                            self.apiclient,
+                            projectid=self.project.id,
+                            type='ROOT',
+                            listall=True
+                            )
+        self.assertEqual(
+                         isinstance(vmsnap, list),
+                         True,
+                         "Check if list volumes return a valid data"
+                        )
+        self.assertEqual(vmsnapshot.projectid, self.project.id, "check if list vmsnapshot api returns projectid")
+        self.assertEqual(vmsnapshot.project, self.project.name,"check if list vmsnapshot returns project name")
+
+        # Delete snapshot Rule
+        self.debug("Deleting vmsnapshot: %s" % vmsnapshot.id)
+        VmSnapshot.deleteVMSnapshot(self.apiclient,vmsnapshot.id)
+
+
+        # Fetch project account ID from project UUID
+        self.debug(
+            "select project_account_id from projects where uuid = '%s';" \
+                        % self.project.id)
+
+        qresultset = self.dbclient.execute(
+                        "select project_account_id from projects where uuid = '%s';" \
+                        % self.project.id
+                        )
+        self.assertEqual(
+                         isinstance(qresultset, list),
+                         True,
+                         "Check DB query result set for valid data"
+                         )
+
+        self.assertNotEqual(
+                            len(qresultset),
+                            0,
+                            "Check DB Query result set"
+                            )
+        qresult = qresultset[0]
+
+        account_id = qresult[0]
+        self.debug("select type from usage_event where account_id = '%s';" \
+                        % account_id)
+
+        qresultset = self.dbclient.execute(
+                        "select type from usage_event where account_id = '%s';" \
+                        % account_id
+                        )
+
+        self.assertEqual(
+                         isinstance(qresultset, list),
+                         True,
+                         "Check if database query returns a valid data"
+                         )
+
+        self.assertNotEqual(
+                            len(qresultset),
+                            0,
+                            "Check DB Query result set"
+                            )
+
+        qresult = str(qresultset)
+        self.debug("Query Result: %s" % qresult)
+
+        # Check for VM.SNAPSHOT.CREATE, VM.SNAPSHOT.DELETE events in cloud.usage_event
+        # table
+        self.assertEqual(
+                            qresult.count('VMSNAPSHOT.CREATE'),
+                            1,
+                            "Check VM.SNAPSHOT.CREATE event in events table"
+                        )
+
+        self.assertEqual(
+                            qresult.count('VMSNAPSHOT.DELETE'),
+                            1,
+                            "Check VM.SNAPSHOT.DELETE in events table"
+                        )
+        return
\ No newline at end of file
diff --git a/test/integration/component/test_ps_resize_volume.py b/test/integration/component/test_ps_resize_volume.py
old mode 100644
new mode 100755
index cddd6f8..c396016
--- a/test/integration/component/test_ps_resize_volume.py
+++ b/test/integration/component/test_ps_resize_volume.py
@@ -89,7 +89,8 @@
 
         try:
             cls.hypervisor = str(get_hypervisor_type(cls.api_client)).lower()
-
+            if cls.hypervisor.lower() in ['hyperv']:
+                raise unittest.SkipTest("Volume resize is not supported on %s" % cls.hypervisor)
             # Creating service offering with normal config
             cls.service_offering = ServiceOffering.create(
                 cls.api_client,
diff --git a/test/integration/component/test_rootvolume_resize.py b/test/integration/component/test_rootvolume_resize.py
new file mode 100644
index 0000000..59488e6
--- /dev/null
+++ b/test/integration/component/test_rootvolume_resize.py
@@ -0,0 +1,1139 @@
+# 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.
+
+""" P1 tests for testing resize of  root volume functionality
+
+    Test Plan: https://cwiki.apache.org/confluence/display/CLOUDSTACK/
+    Root+Resize+Support
+
+    Issue Link: https://issues.apache.org/jira/browse/CLOUDSTACK-9829
+"""
+# Import Local Modules
+from nose.plugins.attrib import attr
+from marvin.cloudstackTestCase import cloudstackTestCase, unittest
+from marvin.lib.base import (Account,
+                             ServiceOffering,
+                             VirtualMachine,
+                             Resources,
+                             Domain,
+                             Volume,
+                             Snapshot,
+                             Template,
+                             VmSnapshot,
+                             Host,
+                             Configurations,
+                             StoragePool)
+from marvin.lib.common import (get_domain,
+                               get_zone,
+                               get_template,
+                               matchResourceCount,
+                               list_snapshots,
+                               list_hosts,
+                               list_configurations,
+                               list_storage_pools)
+from marvin.lib.utils import (cleanup_resources,
+                              validateList)
+from marvin.codes import (PASS,
+                          FAIL,
+                          FAILED,
+                          RESOURCE_PRIMARY_STORAGE,
+                          INVALID_INPUT)
+from marvin.lib.utils import checkVolumeSize
+import time
+from marvin.sshClient import SshClient
+
+
+class TestResizeVolume(cloudstackTestCase):
+    @classmethod
+    def setUpClass(cls):
+        cls.testClient = super(TestResizeVolume, cls).getClsTestClient()
+        cls.api_client = cls.testClient.getApiClient()
+        cls.hypervisor = (cls.testClient.getHypervisorInfo()).lower()
+        cls.storageID = None
+        # Fill services from the external config file
+        cls.services = cls.testClient.getParsedTestDataConfig()
+        # Get Zone, Domain and templates
+        cls.domain = get_domain(cls.api_client)
+        cls.zone = get_zone(
+            cls.api_client,
+            cls.testClient.getZoneForTests())
+        cls.services["mode"] = cls.zone.networktype
+        cls._cleanup = []
+        cls.unsupportedStorageType = False
+        cls.unsupportedHypervisorType = False
+        cls.updateclone = False
+        if cls.hypervisor not in ['xenserver',"kvm","vmware"]:
+            cls.unsupportedHypervisorType=True
+            return
+        cls.template = get_template(
+            cls.api_client,
+            cls.zone.id
+        )
+        cls.services["virtual_machine"]["zoneid"] = cls.zone.id
+        cls.services["virtual_machine"]["template"] = cls.template.id
+        cls.services["volume"]["zoneid"] = cls.zone.id
+        try:
+            cls.parent_domain = Domain.create(cls.api_client,
+                                              services=cls.services[
+                                                  "domain"],
+                                              parentdomainid=cls.domain.id)
+            cls.parentd_admin = Account.create(cls.api_client,
+                                               cls.services["account"],
+                                               admin=True,
+                                               domainid=cls.parent_domain.id)
+            cls._cleanup.append(cls.parentd_admin)
+            cls._cleanup.append(cls.parent_domain)
+            list_pool_resp = list_storage_pools(cls.api_client,
+                                               account=cls.parentd_admin.name,domainid=cls.parent_domain.id)
+            res = validateList(list_pool_resp)
+            if res[2]== INVALID_INPUT:
+                raise Exception("Failed to  list storage pool-no storagepools found ")
+            #Identify the storage pool type  and set vmware fullclone to true if storage is VMFS
+            if cls.hypervisor == 'vmware':
+                for strpool in list_pool_resp:
+                    if strpool.type.lower() == "vmfs" or strpool.type.lower()== "networkfilesystem":
+                        list_config_storage_response = list_configurations(
+                            cls.api_client
+                            , name=
+                            "vmware.create.full.clone",storageid=strpool.id)
+                        res = validateList(list_config_storage_response)
+                        if res[2]== INVALID_INPUT:
+                         raise Exception("Failed to  list configurations ")
+                        if list_config_storage_response[0].value == "false":
+                            Configurations.update(cls.api_client,
+                                                  "vmware.create.full.clone",
+                                                  value="true",storageid=strpool.id)
+                            cls.updateclone = True
+                            StoragePool.update(cls.api_client,id=strpool.id,tags="scsi")
+                            cls.storageID = strpool.id
+                            cls.unsupportedStorageType = False
+                            break
+                    else:
+                        cls.unsupportedStorageType = True
+            # Creating service offering with normal config
+            cls.service_offering = ServiceOffering.create(
+                cls.api_client,
+                cls.services["service_offering"])
+            cls.services_offering_vmware=ServiceOffering.create(
+                cls.api_client,cls.services["service_offering"],tags="scsi")
+            cls._cleanup.extend([cls.service_offering,cls.services_offering_vmware])
+
+        except Exception as e:
+            cls.tearDownClass()
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            # Cleanup resources used
+
+            if cls.updateclone:
+                Configurations.update(cls.api_client,
+                                      "vmware.create.full.clone",
+                                      value="false",storageid=cls.storageID)
+
+            cleanup_resources(cls.api_client, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    def setUp(self):
+        if self.unsupportedStorageType:
+            self.skipTest("Tests are Skipped - unsupported Storage type used ")
+        elif self.unsupportedHypervisorType:
+            self.skipTest("Tests are Skipped - unsupported Hypervisor type used")
+
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+        return
+
+    def tearDown(self):
+        try:
+            # Clean up, terminate the created instance, volumes and snapshots
+
+            cleanup_resources(self.apiclient, self.cleanup)
+            pass
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    def updateResourceLimits(self, accountLimit=None, domainLimit=None):
+        """Update primary storage limits of the parent domain and its
+        child domains"""
+        try:
+            if domainLimit:
+                # Update resource limit for domain
+                Resources.updateLimit(self.apiclient, resourcetype=10,
+                                      max=domainLimit,
+                                      domainid=self.parent_domain.id)
+            if accountLimit:
+                # Update resource limit for domain
+                Resources.updateLimit(self.apiclient,
+                                      resourcetype=10,
+                                      max=accountLimit,
+                                      account=self.parentd_admin.name,
+                                      domainid=self.parent_domain.id)
+        except Exception as e:
+            return [FAIL, e]
+        return [PASS, None]
+
+
+    def setupAccounts(self):
+        try:
+            self.parent_domain = Domain.create(self.apiclient,
+                                              services=self.services[
+                                                  "domain"],
+                                              parentdomainid=self.domain.id)
+            self.parentd_admin = Account.create(self.apiclient,
+                                               self.services["account"],
+                                               admin=True,
+                                               domainid=self.parent_domain.id)
+            # Cleanup the resources created at end of test
+            self.cleanup.append(self.parent_domain)
+            self.cleanup.append(self.parentd_admin)
+
+
+        except Exception as e:
+            return [FAIL, e]
+        return [PASS, None]
+
+    def chk_volume_resize(self, apiclient, vm):
+
+        self.assertEqual(
+            vm.state,
+            "Running",
+            msg="VM is not in Running state"
+        )
+        # get root vol from created vm, verify its size
+        list_volume_response = Volume.list(
+            apiclient,
+            virtualmachineid=vm.id,
+            type='ROOT',
+            listall='True'
+        )
+        rootvolume = list_volume_response[0]
+        if vm.state == "Running" and \
+                (vm.hypervisor.lower() == "xenserver" or \
+                             vm.hypervisor.lower() == "vmware"):
+            self.virtual_machine.stop(apiclient)
+            time.sleep(self.services["sleep"])
+            if vm.hypervisor.lower() == "vmware":
+                rootdiskcontroller = self.getDiskController(vm)
+                if rootdiskcontroller!="scsi":
+                    raise Exception("root volume resize only supported on scsi disk ,"
+                                    "please check rootdiskcontroller type")
+
+        rootvolobj = Volume(rootvolume.__dict__)
+        newsize = (rootvolume.size >> 30) + 2
+        success = False
+        if rootvolume is not None:
+            try:
+                rootvolobj.resize(apiclient, size=newsize)
+                if vm.hypervisor.lower() == "xenserver" or \
+                                vm.hypervisor.lower() == "vmware":
+                    self.virtual_machine.start(apiclient)
+                    time.sleep(self.services["sleep"])
+                ssh = SshClient(self.virtual_machine.ssh_ip, 22,
+                                "root", "password")
+                newsizeinbytes = newsize * 1024 * 1024 * 1024
+
+                if vm.hypervisor.lower() == "xenserver":
+                    volume_name = "/dev/xvd" + \
+                                  chr(ord('a') +
+                                      int(
+                                          list_volume_response[0].deviceid))
+                    self.debug(" Using XenServer"
+                               " volume_name: %s" % volume_name)
+                    ret = checkVolumeSize(ssh_handle=ssh,
+                                          volume_name=volume_name,
+                                          size_to_verify=newsizeinbytes)
+                    success = True
+                elif vm.hypervisor.lower() == "kvm":
+                    volume_name = "/dev/vd" + chr(ord('a') + int
+                    (list_volume_response[0]
+                     .deviceid))
+                    self.debug(" Using KVM volume_name:"
+                               " %s" % volume_name)
+                    ret = checkVolumeSize(ssh_handle=ssh,
+                                          volume_name=volume_name,
+                                          size_to_verify=newsizeinbytes)
+                    success = True
+                elif vm.hypervisor.lower() == "vmware":
+                    ret = checkVolumeSize(ssh_handle=ssh,
+                                          volume_name="/dev/sdb",
+                                          size_to_verify=newsizeinbytes)
+                    success = True
+                self.debug(" Volume Size Expected %s "
+                           " Actual :%s" % (newsizeinbytes, ret[1]))
+            except Exception as e:
+                # need to write the rootdisk controller  code.
+                if vm.hypervisor == "vmware" and rootdiskcontroller == "ide":
+                    assert "Found unsupported root disk " \
+                           "controller :ide" in e.message, \
+                        "able to resize ide root volume Testcase failed"
+                else:
+                    raise Exception("fail to resize the volume: %s" % e)
+        else:
+            self.debug("hypervisor %s unsupported for test "
+                       ", verifying it errors properly" % self.hypervisor)
+            success = False
+        return success
+
+    def getDiskController(self, vm, diskcontroller="ide"):
+
+        if vm.hypervisor.lower() == "vmware":
+            try:
+                qresultvmuuid = self.dbclient.execute(
+                    "select id from vm_instance where uuid = '%s' ;" %
+                    vm.id
+                )
+                self.assertNotEqual(
+                    len(qresultvmuuid),
+                    0,
+                    "Check DB Query result set"
+                )
+                vmid = int(qresultvmuuid[0][0])
+                qresult = self.dbclient.execute(
+                    "select rootDiskController from"
+                    " user_vm_details where id = '%s';" % vmid
+                )
+                self.debug("Query result: %s" % qresult)
+                diskcontroller = qresult[0][0]
+            except Exception as e:
+                raise Exception("Warning: Exception while"
+                                " checking usage event for the "
+                                "root_volume_resize : %s" % e)
+        return diskcontroller
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_01_create__snapshot_new_resized_rootvolume_size(self):
+        """Test create snapshot on resized root volume
+
+        # Validate the following
+
+        # 1. Deploy a VM without any disk offering (only root disk)
+        # 2. Perform(resize)  of the root  volume
+        # 3. Perform snapshot on resized volume
+        """
+
+        # deploy a vm
+
+        try:
+            if self.updateclone:
+
+                    self.virtual_machine = VirtualMachine.create(
+                        self.apiclient, self.services["virtual_machine"],
+                        accountid=self.parentd_admin.name,
+                        domainid=self.parent_domain.id,
+                        serviceofferingid=self.services_offering_vmware.id,
+                        mode=self.zone.networktype
+                    )
+            else:
+                    self.virtual_machine = VirtualMachine.create(
+                        self.apiclient, self.services["virtual_machine"],
+                        accountid=self.parentd_admin.name,
+                        domainid=self.parent_domain.id,
+                        serviceofferingid=self.service_offering.id,
+                        mode=self.zone.networktype
+                    )
+
+            # listVirtual machine
+            list_vms = VirtualMachine.list(self.apiclient,
+                                           id=self.virtual_machine.id)
+
+            self.debug(
+                "Verify listVirtualMachines response for virtual machine: %s" %
+                self.virtual_machine.id
+            )
+            res = validateList(list_vms)
+            self.assertNotEqual(res[2], INVALID_INPUT, "Invalid list response")
+
+            vm = list_vms[0]
+            self.assertEqual(
+                vm.id,
+                self.virtual_machine.id,
+                "Virtual Machine ids do not match"
+            )
+            self.assertEqual(
+                vm.name,
+                self.virtual_machine.name,
+                "Virtual Machine names do not match"
+            )
+            self.assertEqual(
+                vm.state,
+                "Running",
+                msg="VM is not in Running state"
+            )
+            result = self.chk_volume_resize(self.apiclient, vm)
+            if result:
+                # get root vol from created vm, verify it is correct size
+                list_volume_response = Volume.list(
+                    self.apiclient,
+                    virtualmachineid=
+                    self.virtual_machine.id,
+                    type='ROOT',
+                    listall='True'
+                )
+                res = validateList(list_volume_response)
+                self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
+                rootvolume = list_volume_response[0]
+                self.debug("Creating a Snapshot from root  volume: "
+                           "%s" % rootvolume.id)
+                snapshot = Snapshot.create(
+                    self.apiclient,
+                    rootvolume.id,
+                    account=self.parentd_admin.name,
+                    domainid=self.parent_domain.id
+                )
+                snapshots = list_snapshots(
+                    self.apiclient,
+                    id=snapshot.id
+                )
+                res = validateList(snapshots)
+                self.assertNotEqual(res[2], INVALID_INPUT, "Invalid list response")
+                self.assertEqual(
+                    snapshots[0].id,
+                    snapshot.id,
+                    "Check resource id in list resources call"
+                )
+            else:
+                self.debug("Volume resize is failed")
+
+        except Exception as e:
+            raise Exception("Exception while performing"
+                            "  the snapshot on resized root volume"
+                            " test case: %s" % e)
+
+        self.cleanup.append(self.virtual_machine)
+        self.cleanup.append(snapshot)
+
+        return
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_02_create__template_new_resized_rootvolume_size(self):
+        """Test create Template resized root volume
+
+        # Validate the following
+
+        # 1. Deploy a VM without any disk offering (only root disk)
+        # 2. Perform(resize)  of the root  volume
+        # 3. Stop the vm
+        # 4. Create a template from  resized  root volume
+        """
+
+        result = self.setupAccounts()
+        self.assertEqual(result[0], PASS, result[1])
+        apiclient = self.testClient.getUserApiClient(
+            UserName=self.parentd_admin.name,
+            DomainName=self.parentd_admin.domain)
+        self.assertNotEqual(apiclient, FAILED, "Failed to get api client\
+                            of account: %s" % self.parentd_admin.name)
+
+        # deploy a vm
+        try:
+            if self.updateclone:
+
+                self.virtual_machine = VirtualMachine.create(
+                    apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.services_offering_vmware.id,
+                    mode=self.zone.networktype
+                )
+            else:
+                self.virtual_machine = VirtualMachine.create(
+                    apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.service_offering.id,
+                    mode=self.zone.networktype
+                )
+
+            # listVirtual macine
+            list_vms = VirtualMachine.list(apiclient,
+                                           id=self.virtual_machine.id)
+            self.debug("Verify listVirtualMachines response"
+                       " for virtual machine: %s" % self.virtual_machine.id
+                       )
+            res = validateList(list_vms)
+            self.assertNotEqual(res[2], INVALID_INPUT, "Invalid list response")
+            self.cleanup.append(self.virtual_machine)
+            vm = list_vms[0]
+            self.assertEqual(
+                vm.id,
+                self.virtual_machine.id,
+                "Virtual Machine ids do not match"
+            )
+            self.assertEqual(
+                vm.name,
+                self.virtual_machine.name,
+                "Virtual Machine names do not match"
+            )
+            self.assertEqual(
+                vm.state,
+                "Running",
+                msg="VM is not in Running state"
+            )
+            # get root vol from created vm, verify it is correct size
+            list_volume_response = Volume.list(
+                apiclient,
+                virtualmachineid=
+                self.virtual_machine.id,
+                type='ROOT',
+                listall='True'
+            )
+            res = validateList(list_volume_response)
+            self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
+            rootvolume = list_volume_response[0]
+            newsize = (rootvolume.size >> 30) + 2
+            result = self.chk_volume_resize(apiclient, vm)
+            if result:
+                try:
+                    # create a template from stopped VM instances root volume
+                    if vm.state == "Running":
+                        self.virtual_machine.stop(apiclient)
+                    template_from_root = Template.create(
+                        apiclient,
+                        self.services["template"],
+                        volumeid=rootvolume.id,
+                        account=self.parentd_admin.name,
+                        domainid=self.parent_domain.id)
+                    list_template_response = Template.list(
+                        apiclient,
+                        id=template_from_root.id,
+                        templatefilter="all")
+                    res = validateList(list_template_response)
+                    self.assertNotEqual(res[2], INVALID_INPUT, "Check if template exists in ListTemplates")
+                    # Deploy new virtual machine using template
+                    self.virtual_machine2 = VirtualMachine.create(
+                        apiclient,
+                        self.services["virtual_machine"],
+                        templateid=template_from_root.id,
+                        accountid=self.parentd_admin.name,
+                        domainid=self.parent_domain.id,
+                        serviceofferingid=self.service_offering.id,
+                    )
+
+                    vm_response = VirtualMachine.list(
+                        apiclient,
+                        id=self.virtual_machine2.id,
+                        account=self.parentd_admin.name,
+                        domainid=self.parent_domain.id
+                    )
+                    res = validateList(vm_response)
+                    self.assertNotEqual(res[2], INVALID_INPUT, "Check for list VM response return valid list")
+                    self.cleanup.append(self.virtual_machine2)
+                    self.cleanup.reverse()
+                    vm2 = vm_response[0]
+                    self.assertEqual(
+                        vm2.state,
+                        'Running',
+                        "Check the state of VM created from Template"
+                    )
+                    list_volume_response = Volume.list(
+                        apiclient,
+                        virtualmachineid=vm2.id,
+                        type='ROOT',
+                        listall='True'
+                    )
+                    self.assertEqual(
+                        list_volume_response[0].size,
+                        (newsize * 1024 * 1024 * 1024),
+
+                        "Check for root volume size  not matched with template size"
+                    )
+                except Exception as e:
+                    raise Exception("Exception while resizing the "
+                                    "root volume: %s" % e)
+
+            else:
+                self.debug(" volume resize failed for root volume")
+        except Exception as e:
+            raise Exception("Exception while performing"
+                            " template creation from "
+                            "resized_root_volume : %s" % e)
+
+        return
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_03_vmsnapshot__on_resized_rootvolume_vm(self):
+        """Test vmsnapshot on resized root volume
+
+        # Validate the following
+
+        # 1. Deploy a VM without any disk offering (only root disk)
+        # 2. Perform(resize)  of the root  volume
+        # 3. Perform VM snapshot on VM
+        """
+
+        # deploy a vm
+
+        try:
+            if self.updateclone:
+
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.services_offering_vmware.id,
+                    mode=self.zone.networktype
+                )
+            else:
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.service_offering.id,
+                    mode=self.zone.networktype
+                )
+
+            # listVirtual macine
+            list_vms = VirtualMachine.list(self.apiclient,
+                                           id=self.virtual_machine.id)
+            self.debug(
+                "Verify listVirtualMachines response for virtual machine: %s" \
+                % self.virtual_machine.id
+            )
+            res = validateList(list_vms)
+            self.assertNotEqual(res[2], INVALID_INPUT, "Invalid list response")
+            self.cleanup.append(self.virtual_machine)
+            vm = list_vms[0]
+            self.assertEqual(
+                vm.id,
+                self.virtual_machine.id,
+                "Virtual Machine ids do not match"
+            )
+            # get root vol from created vm, verify it is correct size
+            list_volume_response = Volume.list(
+                self.apiclient,
+                virtualmachineid=
+                self.virtual_machine.id,
+                type='ROOT',
+                listall='True'
+            )
+            res = validateList(list_volume_response)
+            self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
+            rootvolume = list_volume_response[0]
+            newsize = (rootvolume.size >> 30) + 2
+            result = self.chk_volume_resize(self.apiclient, vm)
+            if result:
+                try:
+                    virtualmachine_snapshot = VmSnapshot.create \
+                        (self.apiclient, self.virtual_machine.id)
+                    virtulmachine_snapshot_list = VmSnapshot. \
+                        list(self.apiclient,
+                             vmsnapshotid=virtualmachine_snapshot.id)
+                    status = validateList(virtulmachine_snapshot_list)
+                    self.assertEquals(
+                        PASS,
+                        status[0],
+                        "Listing of configuration failed")
+                    self.assertEqual(virtualmachine_snapshot.id,
+                                     virtulmachine_snapshot_list[0].id,
+                                     "Virtual Machine Snapshot id do not match")
+                except Exception as  e:
+                    raise Exception("Exception while performing"
+                                    " vmsnapshot: %s" % e)
+            else:
+                self.debug("volume resize failed for root volume")
+        except Exception as e:
+            raise Exception("Exception while performing"
+                            " vmsnapshot on resized volume Test: %s" % e)
+
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_04_vmreset_after_migrate_vm__rootvolume_resized(self):
+        """Test migrate vm after  root volume resize
+
+        # Validate the following
+
+        # 1. Deploy a VM without any disk offering (only root disk)
+        # 2. Perform(resize)  of the root  volume
+        # 3. migrate vm from host to another
+        # 4. perform vm reset after vm migration
+
+        """
+
+        try:
+            if self.updateclone:
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.services_offering_vmware.id,
+                    mode=self.zone.networktype
+                )
+            else:
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.service_offering.id,
+                    mode=self.zone.networktype
+                )
+
+            # listVirtual macine
+            list_vms = VirtualMachine.list(self.apiclient,
+                                           id=self.virtual_machine.id)
+            self.debug(
+                "Verify listVirtualMachines response for virtual machine: %s" \
+                % self.virtual_machine.id
+            )
+            res = validateList(list_vms)
+            self.assertNotEqual(res[2], INVALID_INPUT, "Invalid list response")
+            self.cleanup.append(self.virtual_machine)
+            vm = list_vms[0]
+            self.assertEqual(
+                vm.id,
+                self.virtual_machine.id,
+                "Virtual Machine ids do not match"
+            )
+            # get root vol from created vm, verify it is correct size
+            list_volume_response = Volume.list(
+                self.apiclient,
+                virtualmachineid=
+                self.virtual_machine.id,
+                type='ROOT',
+                listall='True'
+            )
+            res = validateList(list_volume_response)
+            self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
+            rootvolume = list_volume_response[0]
+            result = self.chk_volume_resize(self.apiclient, vm)
+            if result:
+                try:
+                    list_host_response = list_hosts(
+                        self.apiclient,
+                        id=self.virtual_machine.hostid
+                    )
+                    res = validateList(list_host_response)
+                    self.assertNotEqual(res[2], INVALID_INPUT, "listHosts returned invalid object in response")
+
+                    sourcehost = list_host_response[0]
+                    try:
+                        self.list_hosts_suitable = Host.listForMigration \
+                            (self.apiclient,
+                             virtualmachineid=self.virtual_machine.id
+                             )
+                    except Exception as e:
+                        self.debug("Not found suitable host")
+                        raise Exception("Exception while getting hosts"
+                                        " list suitable for migration: %s" % e)
+                    self.virtualmachine_migrate_response = \
+                        self.virtual_machine.migrate(
+                            self.apiclient,
+                            self.list_hosts_suitable[0].id)
+                    list_vms = VirtualMachine.list(
+                        self.apiclient,
+                        id=self.virtual_machine.id,
+                        hostid=self.list_hosts_suitable[0].id)
+
+                    res = validateList(list_vms)
+                    self.assertNotEqual(res[2], INVALID_INPUT, "listVirtualMachines returned "
+                                                               "invalid object in response")
+
+                    self.virtual_machine_reset = self.virtual_machine.restore \
+                        (self.apiclient,
+                         self.services["virtual_machine"]["template"])
+                    list_restorevolume_response = Volume.list(
+                        self.apiclient,
+                        virtualmachineid=
+                        self.virtual_machine.id,
+                        type='ROOT',
+                        listall='True'
+                    )
+                    restorerootvolume = list_restorevolume_response[0]
+                    self.assertEqual(rootvolume.size, restorerootvolume.size,
+                                     "root volume  and restore root"
+                                     " volume size differs")
+                except Exception as e:
+                    raise Exception("Warning: Exception "
+                                    "during VM migration: %s" % e)
+
+        except Exception as e:
+            raise Exception("Warning: Exception during executing"
+                            " the test-migrate_vm_after_rootvolume_resize: %s" % e)
+
+        return
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_5_vmdeployment_with_size(self):
+        """Test vm deployment with new rootdisk size parameter
+
+        # Validate the following
+        # 1. Deploy a VM without any disk offering (only root disk)
+        # 2. Verify the  root disksize after deployment
+
+        """
+        templateSize = (self.template.size / (1024 ** 3))
+        newsize = templateSize + 2
+        # deploy a vm
+        try:
+            if self.updateclone:
+
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.services_offering_vmware.id,
+                    mode=self.zone.networktype
+                )
+            else:
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.service_offering.id,
+                    mode=self.zone.networktype
+                )
+
+            # listVirtual macine
+            list_vms = VirtualMachine.list(self.apiclient,
+                                           id=self.virtual_machine.id)
+            self.debug(
+                "Verify listVirtualMachines response for virtual machine: %s"
+                % self.virtual_machine.id
+            )
+            res = validateList(list_vms)
+            self.assertNotEqual(res[2], INVALID_INPUT, "Invalid list response")
+            self.cleanup.append(self.virtual_machine)
+            vm = list_vms[0]
+            ssh = SshClient(self.virtual_machine.ssh_ip, 22, "root",
+                            "password")
+            newsize = newsize * 1024 * 1024 * 1024
+            list_volume_response = Volume.list(
+                self.apiclient,
+                virtualmachineid=
+                self.virtual_machine.id,
+                type='ROOT',
+                listall='True'
+            )
+            res = validateList(list_volume_response)
+            self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
+            if vm.hypervisor.lower() == "xenserver":
+                volume_name = "/dev/xvd" + chr(ord('a') + int(
+                    list_volume_response[0].deviceid))
+                self.debug(" Using XenServer"
+                           " volume_name: %s" % volume_name)
+                ret = checkVolumeSize(ssh_handle=ssh,
+                                      volume_name=volume_name,
+                                      size_to_verify=newsize)
+            elif vm.hypervisor.lower() == "kvm":
+                volume_name = "/dev/vd" + chr(ord('a')
+                                              + int(
+                    list_volume_response[0].deviceid))
+                self.debug(" Using KVM volume_name: %s" % volume_name)
+                ret = checkVolumeSize(ssh_handle=ssh,
+                                      volume_name=volume_name,
+                                      size_to_verify=newsize)
+            elif vm.hypervisor.lower() == "vmware":
+                ret = checkVolumeSize(ssh_handle=ssh,
+                                      volume_name="/dev/sdb",
+                                      size_to_verify=newsize)
+            self.debug(" Volume Size Expected %s"
+                       "  Actual :%s" % (newsize, ret[1]))
+        except Exception as e:
+            raise Exception("Warning: Exception during"
+                            " VM deployment with new"
+                            "  rootdisk paramter : %s" % e)
+
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_6_resized_rootvolume_with_lessvalue(self):
+        """Test resize root volume with less than original volume size
+
+        # Validate the following
+
+        # 1. Deploy a VM without any disk offering (only root disk)
+        # 2. Perform(resize)  of the root  volume with less
+         than current root volume
+        # 3. Check for proper error message
+
+        """
+
+        # deploy a vm
+        try:
+            if self.updateclone:
+
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.services_offering_vmware.id,
+                    mode=self.zone.networktype
+                )
+            else:
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.service_offering.id,
+                    mode=self.zone.networktype
+                )
+
+            # listVirtual macine
+            time.sleep(self.services["sleep"])
+            list_vms = VirtualMachine.list(self.apiclient,
+                                           id=self.virtual_machine.id)
+            self.debug(
+                "Verify listVirtualMachines response for virtual machine: %s" \
+                % self.virtual_machine.id
+            )
+            res = validateList(list_vms)
+            self.assertNotEqual(res[2], INVALID_INPUT, "Invalid list response")
+            self.cleanup.append(self.virtual_machine)
+            vm = list_vms[0]
+            self.assertEqual(
+                vm.id,
+                self.virtual_machine.id,
+                "Virtual Machine ids do not match"
+            )
+            # get root vol from created vm, verify it is correct size
+            list_volume_response = Volume.list(
+                self.apiclient,
+                virtualmachineid=
+                self.virtual_machine.id,
+                type='ROOT',
+                listall='True'
+            )
+            res = validateList(list_volume_response)
+            self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
+            if vm.state == "Running" and (
+                            vm.hypervisor.lower() == "xenserver" or
+                            vm.hypervisor.lower() == "vmware"):
+                self.virtual_machine.stop(self.apiclient)
+                time.sleep(self.services["sleep"])
+
+            rootvolume = list_volume_response[0]
+            # converting json response to Volume  Object
+            rootvol = Volume(rootvolume.__dict__)
+            newsize = (rootvolume.size >> 30) - 1
+            success = False
+            if rootvolume is not None:
+                try:
+                    rootvol.resize(self.apiclient, size=newsize)
+                except Exception as e:
+                    assert "Shrink operation on ROOT volume not supported" \
+                           in e.message, \
+                        "TestCase Failed,able to resize root volume  or error message is not matched"
+        except Exception as e:
+            raise Exception("Warning: Exception "
+                            "during executing test resize"
+                            " volume with less value : %s" % e)
+
+    @attr(tags=["advanced"], required_hrdware="true")
+    def test_7_usage_events_after_rootvolume_resized_(self):
+        """Test check usage events after root volume resize
+
+        # Validate the following
+
+        # 1. Deploy a VM without any disk offering (only root disk)
+        # 2. Perform(resize)  of the root  volume
+        # 3. Check the corresponding usage events
+        """
+
+        # deploy a vm
+        try:
+            if self.updateclone:
+
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.services_offering_vmware.id,
+                    mode=self.zone.networktype
+                )
+            else:
+                self.virtual_machine = VirtualMachine.create(
+                    self.apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.service_offering.id,
+                    mode=self.zone.networktype
+                )
+            # listVirtual macine
+            time.sleep(self.services["sleep"])
+            list_vms = VirtualMachine.list(self.apiclient,
+                                           id=self.virtual_machine.id)
+            self.debug(
+                "Verify listVirtualMachines response for virtual machine: %s"
+                % self.virtual_machine.id
+            )
+            res = validateList(list_vms)
+            self.assertNotEqual(res[2], INVALID_INPUT, "Invalid list response")
+            self.cleanup.append(self.virtual_machine)
+            vm = list_vms[0]
+            self.assertEqual(
+                vm.id,
+                self.virtual_machine.id,
+                "Virtual Machine ids do not match"
+            )
+            # get root vol from created vm, verify it is correct size
+            list_volume_response = Volume.list(
+                self.apiclient,
+                virtualmachineid=
+                self.virtual_machine.id,
+                type='ROOT',
+                listall='True'
+            )
+            res = validateList(list_volume_response)
+            self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
+            if vm.state == "Running" and (
+                            vm.hypervisor.lower() == "xenserver" or
+                            vm.hypervisor.lower() == "vmware"):
+                self.virtual_machine.stop(self.apiclient)
+                time.sleep(self.services["sleep"])
+            rootvolume = list_volume_response[0]
+            # converting json response to Volume  Object
+            rootvol = Volume(rootvolume.__dict__)
+            newsize = (rootvolume.size >> 30) + 2
+            success = False
+            if rootvolume is not None:
+                try:
+                    rootvol.resize(self.apiclient, size=newsize)
+                    qresultset = self.dbclient.execute(
+                        "select id from account where uuid = '%s';"
+                        % self.parentd_admin.id)
+
+                    res = validateList(qresultset)
+                    self.assertNotEqual(res[2], INVALID_INPUT, "Check DB Query result set")
+                    qresult = qresultset[0]
+                    account_id = qresult[0]
+                    self.debug("select type,size from usage_event"
+                               " where account_id = '%s';"
+                               % account_id)
+                    qresultsize = self.dbclient.execute(
+                        "select size from usage_event where account_id = '%s' "
+                        "and type='VOLUME.RESIZE' ORDER BY ID  DESC LIMIT 1;"
+                        % account_id
+                    )
+                    res = validateList(qresultsize)
+                    self.assertNotEqual(res[2], INVALID_INPUT, "Check DB Query result set")
+                    qresult = int(qresultsize[0][0])
+                    self.debug("Query result: %s" % qresult)
+                    self.assertEquals(
+                        qresult,
+                        (newsize * 1024 * 1024 * 1024),
+                        "Usage event not logged properly with right volume"
+                        " size please check ")
+                except Exception as e:
+                    raise Exception("Warning: Exception while checking usage "
+                                    "event for the root volume resize : %s"
+                                    % e)
+        except Exception as e:
+            raise Exception("Warning: Exception performing "
+                            "usage_events_after_rootvolume_resized Test  : %s"
+                            % e)
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_08_increase_volume_size_within_account_limit(self):
+        """Test increasing volume size within the account limit and verify
+           primary storage usage
+
+        # Validate the following
+        # 1. Create a domain and its admin account
+        # 2. Set account primary storage limit well beyond (20 GB volume +
+        #    template size of VM)
+        # 3. Deploy a VM without any disk offering (only root disk)
+        #
+        # 4. Increase (resize) the volume to 20 GB
+        # 6. Resize operation should be successful and primary storage count
+        #    for account should be updated successfully"""
+
+        # Setting up account and domain hierarchy
+
+        result = self.setupAccounts()
+        self.assertEqual(result[0], PASS, result[1])
+        apiclient = self.testClient.getUserApiClient(
+            UserName=self.parentd_admin.name,
+            DomainName=self.parentd_admin.domain)
+        self.assertNotEqual(apiclient, FAILED, "Failed to get api client\
+                            of account: %s" % self.parentd_admin.name)
+
+        templateSize = (self.template.size / (1024 ** 3))
+        accountLimit = (templateSize + 20)
+        response = self.updateResourceLimits(accountLimit=accountLimit)
+        self.assertEqual(response[0], PASS, response[1])
+
+        try:
+
+            if self.updateclone:
+
+                self.virtual_machine = VirtualMachine.create(
+                    apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.services_offering_vmware.id
+                )
+            else:
+                self.virtual_machine = VirtualMachine.create(
+                    apiclient, self.services["virtual_machine"],
+                    accountid=self.parentd_admin.name,
+                    domainid=self.parent_domain.id,
+                    serviceofferingid=self.service_offering.id
+                )
+            list_vms = VirtualMachine.list(apiclient,
+                                           id=self.virtual_machine.id)
+            self.debug(
+                "Verify listVirtualMachines response for virtual machine: %s" \
+                % self.virtual_machine.id
+            )
+            self.assertEqual(
+                isinstance(list_vms, list),
+                True,
+                "List VM response was not a valid list"
+            )
+            self.cleanup.append(self.virtual_machine)
+            self.cleanup.reverse()
+            vm = list_vms[0]
+            list_volume_response = Volume.list(
+                apiclient,
+                virtualmachineid=
+                self.virtual_machine.id,
+                type='ROOT',
+                listall='True'
+            )
+            res = validateList(list_volume_response)
+            self.assertNotEqual(res[2], INVALID_INPUT, "listVolumes returned invalid object in response")
+            if vm.state == "Running" and \
+                    (vm.hypervisor.lower() == "xenserver" or
+                             vm.hypervisor.lower() == "vmware"):
+                self.virtual_machine.stop(self.apiclient)
+                time.sleep(self.services["sleep"])
+            rootvolume = list_volume_response[0]
+            # converting json response to Volume  Object
+            rootvol = Volume(rootvolume.__dict__)
+            newsize = (rootvolume.size >> 30) + 20
+            if rootvolume is not None:
+                try:
+                    rootvol.resize(apiclient, size=newsize)
+                    response = matchResourceCount(
+                        self.apiclient, newsize,
+                        RESOURCE_PRIMARY_STORAGE,
+                        accountid=self.parentd_admin.id)
+                    if response[0] == FAIL:
+                        raise Exception(response[1])
+                except Exception as e:
+                    self.fail("Failed with exception: %s" % e)
+
+        except Exception as e:
+            raise Exception("Warning: Exception while checking primary"
+                            " storage capacity after root "
+                            "volume resize  : %s" % e)
+
+        return
\ No newline at end of file
diff --git a/test/integration/component/test_stopped_vm.py b/test/integration/component/test_stopped_vm.py
index 8d4234c..589c71b 100644
--- a/test/integration/component/test_stopped_vm.py
+++ b/test/integration/component/test_stopped_vm.py
@@ -249,6 +249,9 @@
         #    should be "Stopped".
         # 3. Attach volume should be successful
 
+        # Skipping this test
+        self.skipTest("Skipping test as proper implementation seems to be missing")
+
         self.debug("Deploying instance in the account: %s" %
                    self.account.name)
         self.virtual_machine = VirtualMachine.create(
@@ -369,6 +372,9 @@
         # 3. Attach volume should be successful
         # 4. Detach volume from instance. Detach should be successful
 
+        # Skipping this test
+        self.skipTest("Skipping test as proper implementation seems to be missing")
+
         self.debug("Deploying instance in the account: %s" %
                    self.account.name)
         self.virtual_machine = VirtualMachine.create(
@@ -1474,7 +1480,7 @@
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
         cls.hypervisor = cls.testClient.getHypervisorInfo()
-        cls.skip = False
+        cls.skip = True
 
         if cls.hypervisor.lower() == 'lxc':
             if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
@@ -1519,7 +1525,8 @@
 
     def setUp(self):
         if self.skip:
-            self.skipTest("RBD storage type is required for data volumes for LXC")
+            self.skipTest("Attach operation for uploaded volume to VM which is not started once is not supported")
+            # self.skipTest("RBD storage type is required for data volumes for LXC")
 
         self.apiclient = self.testClient.getApiClient()
         self.dbclient = self.testClient.getDbConnection()
diff --git a/test/integration/component/test_template_from_snapshot_with_template_details b/test/integration/component/test_template_from_snapshot_with_template_details
index f8269e2..3b56713 100644
--- a/test/integration/component/test_template_from_snapshot_with_template_details
+++ b/test/integration/component/test_template_from_snapshot_with_template_details
@@ -87,7 +87,7 @@
                     "displaytext": "Public Template",
                     "name": "Public template",
                     "ostype": 'CentOS 5.3 (64-bit)',
-                    "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
+                    "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
                     "hypervisor": 'XenServer',
                     "format": 'VHD',
                     "isfeatured": True,
diff --git a/test/integration/component/test_templates.py b/test/integration/component/test_templates.py
index 4e9a868..496c1d6 100644
--- a/test/integration/component/test_templates.py
+++ b/test/integration/component/test_templates.py
@@ -85,7 +85,7 @@
                     "displaytext": "Public Template",
                     "name": "Public template",
                     "ostype": 'CentOS 5.3 (64-bit)',
-                    "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
+                    "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
                     "hypervisor": 'XenServer',
                     "format": 'VHD',
                     "isfeatured": True,
diff --git a/test/integration/component/test_usage.py b/test/integration/component/test_usage.py
index 3bbef39..e6c6565 100644
--- a/test/integration/component/test_usage.py
+++ b/test/integration/component/test_usage.py
@@ -20,7 +20,7 @@
 from nose.plugins.attrib import attr
 from marvin.cloudstackTestCase import cloudstackTestCase, unittest
 from marvin.cloudstackAPI import deleteVolume
-from marvin.lib.utils import (cleanup_resources)
+from marvin.lib.utils import (cleanup_resources,get_hypervisor_type)
 from marvin.lib.base import (Account,
                              ServiceOffering,
                              NATRule,
@@ -88,7 +88,7 @@
                 "name": 'Template',
                 "ostype": 'CentOS 5.3 (64-bit)',
                 "templatefilter": 'self',
-                "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.qcow2.bz2"
+                "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.qcow2.bz2"
             },
             "iso": {
                 "displaytext": "Test ISO",
@@ -491,6 +491,7 @@
         cls.api_client = cls.testClient.getApiClient()
 
         cls.services = Services().services
+        cls.testdata = cls.testClient.getParsedTestDataConfig()
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
@@ -573,9 +574,8 @@
             "basic",
             "sg",
             "eip",
-            "advancedns",
-            "simulator"],
-        required_hardware="false")
+            "advancedns"],
+        required_hardware="true")
     def test_01_volume_usage(self):
         """Test Create/delete a volume and verify correct usage is recorded
         """
@@ -586,6 +586,11 @@
         # 3. Detach the data disk from this VM
         # 4. Destroy the Data disk. Volume.delete event is generated for data
         #    disk of the destroyed VM
+        # Upload a volume
+        # Verify Volume.upload event in usage table
+        # attach the uploaded volume to a VM
+        # Verify Volume.create Event is there for the attached volume
+
 
         try:
             # Stop VM
@@ -674,6 +679,127 @@
             1,
             "Check VOLUME.DELETE in events table"
         )
+        self.hypervisor = str(get_hypervisor_type(self.apiclient)).lower()
+        if self.hypervisor == "vmware":
+            self.testdata["coreos_volume"][
+                "url"] = self.testdata["coreos_volume"]["urlvmware"]
+            self.testdata["coreos_volume"]["format"] = "OVA"
+        elif self.hypervisor == "xenserver":
+            self.testdata["coreos_volume"][
+                "url"] = self.testdata["coreos_volume"]["urlxen"]
+            self.testdata["coreos_volume"]["format"] = "VHD"
+        elif self.hypervisor == "kvm":
+            self.testdata["coreos_volume"][
+                "url"] = self.testdata["coreos_volume"]["urlkvm"]
+            self.testdata["coreos_volume"]["format"] = "QCOW2"
+        elif self.hypervisor == "hyperv":
+            self.testdata["coreos_volume"][
+                "url"] = self.testdata["coreos_volume"]["urlxen"]
+            self.testdata["coreos_volume"]["format"] = "VHD"
+
+        volume_uploaded = Volume.upload(
+            self.apiclient,
+            self.testdata["coreos_volume"],
+            self.zone.id,
+            account=self.account.name,
+            domainid=self.account.domainid)
+        self.assertIsNotNone(volume_uploaded, "Volume creation failed")
+        volume_uploaded.wait_for_upload(self.apiclient)
+        # Fetch volume ID from volume_uuid
+        self.debug("select id from volumes where uuid = '%s';"
+                   % volume_uploaded.id)
+
+        qresultset = self.dbclient.execute(
+            "select id from volumes where uuid = '%s';"
+            % volume_uploaded.id
+        )
+        self.assertEqual(
+            isinstance(qresultset, list),
+            True,
+            "Check DB query result set for valid data"
+        )
+
+        self.assertNotEqual(
+            len(qresultset),
+            0,
+            "Check DB Query result set"
+        )
+        qresult = qresultset[0]
+
+        volume_id = qresult[0]
+
+        self.debug("select type from usage_event where volume_id = '%s';"
+                   % volume_id)
+
+        qresultset = self.dbclient.execute(
+            "select type from usage_event where resource_id = '%s';"
+            % volume_id
+        )
+        self.assertNotEqual(
+            len(qresultset),
+            0,
+            "Check DB Query result set"
+        )
+        self.assertEqual(
+            isinstance(qresultset, list),
+            True,
+            "Check DB query result set for valid data"
+        )
+
+        qresult = str(qresultset)
+        self.debug("Query result: %s" % qresult)
+        # Check VOLUME.UPLOAD event in cloud.usage_event table
+        self.assertEqual(
+            qresult.count('VOLUME.UPLOAD'),
+            1,
+            "Check VOLUME.UPLOAD event in events table"
+        )
+        self.virtual_machine.start(self.apiclient)
+        vms = VirtualMachine.list(
+            self.apiclient,
+            id=self.virtual_machine.id,
+            listall=True
+        )
+        self.assertEqual(
+            isinstance(vms, list),
+            True,
+            "List VMs should return the valid list"
+        )
+        vm = vms[0]
+        self.assertEqual(
+            vm.state,
+            "Running",
+            "VM state should be running after deployment"
+        )
+        self.virtual_machine.attach_volume(self.apiclient,volume_uploaded)
+        self.debug("select type from usage_event where offering_id = 6 and volume_id = '%s';"
+                   % volume_id)
+
+        qresultset = self.dbclient.execute(
+            "select type from usage_event where offering_id = 6 and resource_id = '%s';"
+            % volume_id
+        )
+        self.assertNotEqual(
+            len(qresultset),
+            0,
+            "Check DB Query result set"
+        )
+        self.assertEqual(
+            isinstance(qresultset, list),
+            True,
+            "Check DB query result set for valid data"
+        )
+
+        qresult = str(qresultset)
+        self.debug("Query result: %s" % qresult)
+        # Check VOLUME.CREATE event in cloud.usage_event table
+        self.assertEqual(
+            qresult.count('VOLUME.CREATE'),
+            1,
+            "Check VOLUME.CREATE event in events table"
+        )
+
+
         return
 
 
diff --git a/test/integration/component/test_vpc.py b/test/integration/component/test_vpc.py
index 5f7ea98..335a4c9 100644
--- a/test/integration/component/test_vpc.py
+++ b/test/integration/component/test_vpc.py
@@ -186,7 +186,7 @@
             },
             "vpn_customer_gw": {
                 "ipsecpsk": "s2svpn",
-                "ikepolicy": "3des-md5",
+                "ikepolicy": "3des-md5;modp1536",
                 "ikelifetime": "86400",
                 "esppolicy": "3des-md5",
                 "esplifetime": "3600",
diff --git a/test/integration/plugins/nuagevsp/nuageTestCase.py b/test/integration/plugins/nuagevsp/nuageTestCase.py
index a71945c..c673a9b 100644
--- a/test/integration/plugins/nuagevsp/nuageTestCase.py
+++ b/test/integration/plugins/nuagevsp/nuageTestCase.py
@@ -19,7 +19,8 @@
 """
 # Import Local Modules
 from marvin.cloudstackTestCase import cloudstackTestCase, unittest
-from marvin.lib.base import (EgressFireWallRule,
+from marvin.lib.base import (Domain,
+                             EgressFireWallRule,
                              FireWallRule,
                              Host,
                              Hypervisor,
@@ -36,40 +37,89 @@
                              StaticNATRule,
                              VirtualMachine,
                              VPC,
-                             VpcOffering)
+                             VpcOffering,
+                             Zone)
 from marvin.lib.common import (get_domain,
                                get_template,
                                get_zone)
-from marvin.lib.utils import cleanup_resources
-from marvin.cloudstackAPI import restartVPC
+from marvin.cloudstackAPI import restartVPC, listNuageUnderlayVlanIpRanges
 # Import System Modules
 import importlib
+import functools
 import logging
 import socket
 import sys
 import time
+from retry import retry
+
+
+class needscleanup(object):
+    def __init__(self, method):
+        self.method = method
+
+    def __get__(self, obj=None, objtype=None):
+        @functools.wraps(self.method)
+        def _wrapper(*args, **kwargs):
+            wants_cleanup = True
+            if "cleanup" in kwargs:
+                wants_cleanup = kwargs["cleanup"]
+                del kwargs["cleanup"]
+            if obj is not None:
+                result = self.method(obj, *args, **kwargs)
+                if hasattr(obj, 'cleanup'):
+                    cleanup = obj.cleanup
+            else:
+                result = self.method(objtype, *args, **kwargs)
+                cleanup = objtype._cleanup
+            if wants_cleanup:
+                cleanup.append(result)
+            return result
+        return _wrapper
 
 
 class nuageTestCase(cloudstackTestCase):
 
     @classmethod
-    def setUpClass(cls, zone=None):
+    def setUpClass(cls):
         cls.debug("setUpClass nuageTestCase")
 
         # We want to fail quicker, if it's a failure
         socket.setdefaulttimeout(60)
 
-        test_client = super(nuageTestCase, cls).getClsTestClient()
-        cls.api_client = test_client.getApiClient()
-        cls.db_client = test_client.getDbConnection()
-        cls.test_data = test_client.getParsedTestDataConfig()
+        # Get test client and test data
+        cls.test_client = super(nuageTestCase, cls).getClsTestClient()
+        cls.api_client = cls.test_client.getApiClient()
+        cls.db_client = cls.test_client.getDbConnection()
+        cls.test_data = cls.test_client.getParsedTestDataConfig()
 
-        # Get Zone, Domain and templates
-        cls.zone = get_zone(cls.api_client,
-                            zone_name=zone.name if zone else None,
-                            zone_id=zone.id if zone else None
-                            )
+        # Get Zones and Domains
+        cls.zones = Zone.list(cls.api_client)
+        cls.domains = Domain.list(cls.api_client, listall=True)
         cls.domain = get_domain(cls.api_client)
+        cls.root_domain = get_domain(cls.api_client, domain_name="ROOT")
+
+        # Get Zone details
+        cls.getZoneDetails()
+
+        # Configure VSD sessions
+        cls.configureVSDSessions()
+
+        # Create service offering
+        cls.service_offering = ServiceOffering.create(
+            cls.api_client,
+            cls.test_data["service_offering"]
+        )
+        cls._cleanup = [cls.service_offering]
+
+        cls.debug("setUpClass nuageTestCase [DONE]")
+
+    @classmethod
+    def getZoneDetails(cls, zone=None):
+        # Get Zone details
+        cls.zone = zone if zone else get_zone(
+            cls.api_client,
+            zone_name=cls.test_client.getZoneForTests()
+        )
         cls.template = get_template(cls.api_client,
                                     cls.zone.id,
                                     cls.test_data["ostype"]
@@ -77,73 +127,129 @@
         cls.test_data["virtual_machine"]["zoneid"] = cls.zone.id
         cls.test_data["virtual_machine"]["template"] = cls.template.id
 
-        # Create service offering
-        cls.service_offering = ServiceOffering.create(cls.api_client,
-                                                      cls.test_data["service_offering"]
-                                                      )
-        cls._cleanup = [cls.service_offering]
-
         # Check if the host hypervisor type is simulator
-        cls.isSimulator = Hypervisor.list(cls.api_client, zoneid=cls.zone.id)[0].name == "Simulator"
+        hypervisors = Hypervisor.list(cls.api_client, zoneid=cls.zone.id)
+        assert hypervisors is not None and len(hypervisors) > 0, \
+            "Expected at least one hypervisor"
+        cls.isSimulator = any(map(lambda h: h.name == "Simulator",
+                                  hypervisors))
 
         # Get configured Nuage VSP device details
         try:
-            physical_networks = PhysicalNetwork.list(cls.api_client, zoneid=cls.zone.id)
-            for pn in physical_networks:
-                if pn.isolationmethods == "VSP":
-                    cls.vsp_physical_network = pn
-                    break
-            cls.nuage_vsp_device = Nuage.list(cls.api_client,
-                                              physicalnetworkid=cls.vsp_physical_network.id
-                                              )[0]
-            pns = cls.config.zones[0].physical_networks
-            providers = filter(lambda physical_network: "VSP" in physical_network.isolationmethods, pns)[0].providers
-            devices = filter(lambda provider: provider.name == "NuageVsp", providers)[0].devices
-            cls.nuage_vsp_device.username = devices[0].username
-            cls.nuage_vsp_device.password = devices[0].password
+            physical_networks = PhysicalNetwork.list(
+                cls.api_client,
+                zoneid=cls.zone.id
+            )
+
+            cls.vsp_physical_network = next(pn for pn in physical_networks
+                                            if pn.isolationmethods == "VSP")
+            cls.nuage_vsp_device = Nuage.list(
+                cls.api_client,
+                physicalnetworkid=cls.vsp_physical_network.id)[0]
+
+            # Get username and password from the Marvin config file,
+            # as they are not returned by the API.
+            config_nuage_device = next(device for zone in cls.config.zones
+                                       if zone.name == cls.zone.name
+                                       for physnet in zone.physical_networks
+                                       if "VSP" in physnet.isolationmethods
+                                       for provider in physnet.providers
+                                       if provider.name == "NuageVsp"
+                                       for device in provider.devices)
+
+            cls.nuage_vsp_device.username = config_nuage_device.username
+            cls.nuage_vsp_device.password = config_nuage_device.password
             cls.cms_id = cls.nuage_vsp_device.cmsid
         except Exception as e:
             cls.tearDownClass()
-            raise unittest.SkipTest("Warning: Could not get configured Nuage VSP device details - %s" % e)
+            raise unittest.SkipTest("Warning: Could not get configured "
+                                    "Nuage VSP device details - %s" % e)
 
-        # VSD is a programmable policy and analytics engine of Nuage VSP SDN platform
-        # vspk is a Python SDK for Nuage VSP's VSD
-        # libVSD is a library that wraps vspk package
+        # Get data center Internet connectivity information from the Marvin
+        # config file, which is required to perform Internet connectivity and
+        # traffic tests from the guest VMs.
+        cls.dcInternetConnectivityInfo()
+
+        # Check if the configured Nuage VSP SDN platform infrastructure
+        # supports underlay networking
+        cmd = listNuageUnderlayVlanIpRanges.listNuageUnderlayVlanIpRangesCmd()
+        cmd.zoneid = cls.zone.id
+        cmd.underlay = True
+        cls.isNuageInfraUnderlay = isinstance(
+            cls.api_client.listNuageUnderlayVlanIpRanges(cmd), list)
+        return
+
+    @classmethod
+    def dcInternetConnectivityInfo(cls):
+        cls.isInternetConnectivityAvailable = False
+        cls.http_proxy = None
+        cls.https_proxy = None
+        zone = next(zone for zone in cls.config.zones
+                    if zone.name == cls.zone.name)
+
+        cls.isInternetConnectivityAvailable = \
+            hasattr(zone, "dcInternetConnectivityInfo") \
+            and hasattr(zone.dcInternetConnectivityInfo, "available") \
+            and zone.dcInternetConnectivityInfo.available == "true"
+
+        if cls.isInternetConnectivityAvailable:
+            if zone.dcInternetConnectivityInfo.httpProxy:
+                cls.http_proxy = zone.dcInternetConnectivityInfo.httpProxy
+            if zone.dcInternetConnectivityInfo.httpsProxy:
+                cls.https_proxy = zone.dcInternetConnectivityInfo.httpsProxy
+
+    @classmethod
+    def configureVSDSessions(cls):
+        # VSD is a programmable policy and analytics engine of Nuage VSP SDN
+        # platform; vspk is a Python SDK for Nuage VSP's VSD; libVSD is a
+        # library that wraps vspk package
         try:
-            vspk_module = "vspk." + cls.nuage_vsp_device.apiversion if int(cls.nuage_vsp_device.apiversion[1]) >= 4 \
-                else "vspk.vsdk." + cls.nuage_vsp_device.apiversion
+            vspk_module = "vspk." + cls.nuage_vsp_device.apiversion
             cls.vsdk = importlib.import_module(vspk_module)
+        except ImportError as e:
+            try:
+                vspk_module = "vspk.vsdk." + cls.nuage_vsp_device.apiversion
+                cls.vsdk = importlib.import_module(vspk_module)
+            except ImportError:
+                cls.tearDownClass()
+                raise unittest.SkipTest("Warning: vspk import failure"
+                                        " - %s" % e)
+
+        try:
             from libVSD import ApiClient, VSDHelpers
-        except Exception as e:
+        except ImportError as e:
             cls.tearDownClass()
-            raise unittest.SkipTest("Warning: vspk (and/or) libVSD package import failure - %s" % e)
+            raise unittest.SkipTest("Warning: libVSD package import failure "
+                                    "- %s" % e)
 
         # Configure VSD session
-        cls._session = cls.vsdk.NUVSDSession(username=cls.nuage_vsp_device.username,
-                                             password=cls.nuage_vsp_device.password,
-                                             enterprise="csp",
-                                             api_url="https://%s:%d" % (cls.nuage_vsp_device.hostname,
-                                                                        cls.nuage_vsp_device.port)
-                                             )
+        cls._session = cls.vsdk.NUVSDSession(
+            username=cls.nuage_vsp_device.username,
+            password=cls.nuage_vsp_device.password,
+            enterprise="csp",
+            api_url="https://%s:%d" % (cls.nuage_vsp_device.hostname,
+                                       cls.nuage_vsp_device.port)
+            )
         cls._session.start()
 
         # Configure libVSD session
         root = logging.getLogger()
         log_handler = logging.StreamHandler(sys.stdout)
-        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
+        formatter = logging.Formatter('%(asctime)s - %(name)s - '
+                                      '%(levelname)s - %(message)s')
         log_handler.setFormatter(formatter)
         root.addHandler(log_handler)
         vsd_info = cls.nuage_vsp_device.__dict__
         cls.debug("Nuage VSP device (VSD) details - %s" % vsd_info)
-        vsd_api_client = ApiClient(address=vsd_info["hostname"],
-                                   user=vsd_info["username"],
-                                   password=vsd_info["password"],
-                                   version=vsd_info["apiversion"][1] + "." + vsd_info["apiversion"][3]
-                                   )
+        vsd_api_client = ApiClient(
+            address=vsd_info["hostname"],
+            user=vsd_info["username"],
+            password=vsd_info["password"],
+            version=vsd_info["apiversion"][1] + "." + vsd_info["apiversion"][3]
+        )
         vsd_api_client.new_session()
         cls.vsd = VSDHelpers(vsd_api_client)
-
-        cls.debug("setUpClass nuageTestCase [DONE]")
+        return
 
     def setUp(self):
         self.cleanup = []
@@ -151,11 +257,19 @@
 
     @classmethod
     def tearDownClass(cls):
-        try:
-            # Cleanup resources used
-            cleanup_resources(cls.api_client, cls._cleanup)
-        except Exception as e:
-            cls.debug("Warning: Exception during cleanup: %s" % e)
+        # Cleanup resources used
+        cls.debug("Cleaning up the resources")
+        for obj in reversed(cls._cleanup):
+            try:
+                if isinstance(obj, VirtualMachine):
+                    obj.delete(cls.api_client, expunge=True)
+                else:
+                    obj.delete(cls.api_client)
+            except Exception as e:
+                cls.error("Failed to cleanup %s, got %s" % (obj, e))
+        # cleanup_resources(cls.api_client, cls._cleanup)
+        cls._cleanup = []
+        cls.debug("Cleanup complete!")
         return
 
     def tearDown(self):
@@ -175,45 +289,44 @@
         return
 
     # create_VpcOffering - Creates VPC offering
-    def create_VpcOffering(self, vpc_offering, suffix=None):
-        self.debug("Creating VPC offering")
+    @needscleanup
+    def create_VpcOffering(cls, vpc_offering, suffix=None):
+        cls.debug("Creating VPC offering")
         if suffix:
             vpc_offering["name"] = "VPC_OFF-" + str(suffix)
-        vpc_off = VpcOffering.create(self.api_client,
+        vpc_off = VpcOffering.create(cls.api_client,
                                      vpc_offering
                                      )
         # Enable VPC offering
-        vpc_off.update(self.api_client, state="Enabled")
-        self.cleanup.append(vpc_off)
-        self.debug("Created and Enabled VPC offering")
+        vpc_off.update(cls.api_client, state="Enabled")
+        cls.debug("Created and Enabled VPC offering")
         return vpc_off
 
     # create_Vpc - Creates VPC with the given VPC offering
-    def create_Vpc(self, vpc_offering, cidr='10.1.0.0/16', testdata=None, account=None, networkDomain=None,
-                   cleanup=True):
+    @needscleanup
+    def create_Vpc(cls, vpc_offering, cidr='10.1.0.0/16', testdata=None,
+                   account=None, networkDomain=None):
         if not account:
-            account = self.account
-        self.debug("Creating a VPC in the account - %s" % account.name)
+            account = cls.account
+        cls.debug("Creating a VPC in the account - %s" % account.name)
         if not testdata:
-            testdata = self.test_data["vpc"]
+            testdata = cls.test_data["vpc"]
             testdata["name"] = "TestVPC-" + cidr + "-" + str(vpc_offering.name)
             testdata["displaytext"] = "Test VPC"
             testdata["cidr"] = cidr
-        vpc = VPC.create(self.api_client,
+        vpc = VPC.create(cls.api_client,
                          testdata,
                          vpcofferingid=vpc_offering.id,
-                         zoneid=self.zone.id,
+                         zoneid=cls.zone.id,
                          account=account.name,
                          domainid=account.domainid,
                          networkDomain=networkDomain
                          )
-        self.debug("Created VPC with ID - %s" % vpc.id)
-        if cleanup:
-            self.cleanup.append(vpc)
+        cls.debug("Created VPC with ID - %s" % vpc.id)
         return vpc
 
     # restart_Vpc - Restarts the given VPC with/without cleanup
-    def restart_Vpc(self, vpc, cleanup=None):
+    def restart_Vpc(self, vpc, cleanup=False):
         self.debug("Restarting VPC with ID - %s" % vpc.id)
         cmd = restartVPC.restartVPCCmd()
         cmd.id = vpc.id
@@ -223,54 +336,57 @@
         self.debug("Restarted VPC with ID - %s" % vpc.id)
 
     # create_NetworkOffering - Creates Network offering
-    def create_NetworkOffering(self, net_offering, suffix=None, conserve_mode=False):
-        self.debug("Creating Network offering")
+    @needscleanup
+    def create_NetworkOffering(cls, net_offering, suffix=None,
+                               conserve_mode=False):
+        cls.debug("Creating Network offering")
         if suffix:
             net_offering["name"] = "NET_OFF-" + str(suffix)
-        nw_off = NetworkOffering.create(self.api_client,
+        nw_off = NetworkOffering.create(cls.api_client,
                                         net_offering,
                                         conservemode=conserve_mode
                                         )
         # Enable Network offering
-        nw_off.update(self.api_client, state="Enabled")
-        self.cleanup.append(nw_off)
-        self.debug("Created and Enabled Network offering")
+        nw_off.update(cls.api_client, state="Enabled")
+        cls.debug("Created and Enabled Network offering")
         return nw_off
 
     # create_Network - Creates network with the given Network offering
-    def create_Network(self, nw_off, gateway="10.1.1.1", netmask="255.255.255.0", vpc=None, acl_list=None,
-                       testdata=None, account=None, cleanup=True):
+    @needscleanup
+    def create_Network(cls, nw_off, gateway="10.1.1.1",
+                       netmask="255.255.255.0", vpc=None, acl_list=None,
+                       testdata=None, account=None):
         if not account:
-            account = self.account
-        self.debug("Creating a network in the account - %s" % account.name)
+            account = cls.account
+        cls.debug("Creating a network in the account - %s" % account.name)
         if not testdata:
-            testdata = self.test_data["network"]
-            testdata["name"] = "TestNetwork-" + gateway + "-" + str(nw_off.name)
+            testdata = cls.test_data["network"]
+            testdata["name"] = "TestNet-" + gateway + "-" + str(nw_off.name)
             testdata["displaytext"] = "Test Network"
             testdata["netmask"] = netmask
-        network = Network.create(self.api_client,
+        network = Network.create(cls.api_client,
                                  testdata,
                                  accountid=account.name,
                                  domainid=account.domainid,
                                  networkofferingid=nw_off.id,
-                                 zoneid=self.zone.id,
+                                 zoneid=cls.zone.id,
                                  gateway=gateway,
-                                 vpcid=vpc.id if vpc else self.vpc.id if hasattr(self, "vpc") else None,
+                                 vpcid=vpc.id if vpc else cls.vpc.id
+                                 if hasattr(cls, "vpc") else None,
                                  aclid=acl_list.id if acl_list else None
                                  )
-        self.debug("Created network with ID - %s" % network.id)
-        if cleanup:
-            self.cleanup.append(network)
+        cls.debug("Created network with ID - %s" % network.id)
         return network
 
     # upgrade_Network - Upgrades the given network
-    def upgrade_Network(self, nw_off, network):
+    def upgrade_Network(self, nw_off, network, forced=True):
         if not hasattr(nw_off, "id"):
-            nw_off = self.create_NetworkOffering(nw_off, network.gateway)
+            nw_off = self.create_NetworkOffering(nw_off)
         self.debug("Updating Network with ID - %s" % network.id)
         network.update(self.api_client,
                        networkofferingid=nw_off.id,
-                       changecidr=False
+                       changecidr=False,
+                       forced=forced
                        )
         self.debug("Updated network with ID - %s" % network.id)
 
@@ -283,7 +399,9 @@
         self.debug("Deleted Network with ID - %s" % network.id)
 
     # create_VM - Creates VM in the given network(s)
-    def create_VM(self, network_list, host_id=None, start_vm=True, testdata=None, account=None, cleanup=True):
+    @needscleanup
+    def create_VM(cls, network_list, host_id=None, start_vm=True,
+                  testdata=None, account=None):
         network_ids = []
         if isinstance(network_list, list):
             for network in network_list:
@@ -291,45 +409,48 @@
         else:
             network_ids.append(str(network_list.id))
         if not account:
-            account = self.account
-        self.debug("Creating VM in network(s) with ID(s) - %s in the account - %s" % (network_ids, account.name))
+            account = cls.account
+        cls.debug("Creating VM in network(s) with ID(s) - %s in the "
+                  "account - %s" % (network_ids, account.name))
         if not testdata:
-            testdata = self.test_data["virtual_machine"]
-        vm = VirtualMachine.create(self.api_client,
+            testdata = cls.test_data["virtual_machine"]
+        vm = VirtualMachine.create(cls.api_client,
                                    testdata,
                                    accountid=account.name,
                                    domainid=account.domainid,
-                                   serviceofferingid=self.service_offering.id,
-                                   templateid=self.template.id,
-                                   zoneid=self.zone.id,
+                                   serviceofferingid=cls.service_offering.id,
+                                   templateid=cls.template.id,
+                                   zoneid=cls.zone.id,
                                    networkids=network_ids,
                                    startvm=start_vm,
                                    hostid=host_id
                                    )
-        self.debug("Created VM with ID - %s in network(s) with ID(s) - %s" % (vm.id, network_ids))
-        if cleanup:
-            self.cleanup.append(vm)
+        cls.debug("Created VM with ID - %s in network(s) with ID(s) - %s"
+                  % (vm.id, network_ids))
         return vm
 
-    # nic_operation_VM - Performs NIC operations such as add, remove, and update default NIC in the given VM and network
-    def nic_operation_VM(self, vm, network, operation="update"):
-        self.debug("Performing %s NIC operation in VM with ID - %s and network with ID - %s" %
-                   (operation, vm.id, network.id))
-        for nic in vm.nic:
+    # nic_operation_VM - Performs NIC operations such as add, remove, and
+    # update default NIC in the given VM and network
+    def nic_operation_VM(self, vm, network, operation="add"):
+        self.debug("Performing %s NIC operation in VM with ID - %s and "
+                   "network with ID - %s" % (operation, vm.id, network.id))
+        if operation is "add":
+            vm.add_nic(self.api_client, network.id)
+            self.debug("Added NIC in VM with ID - %s and network with ID - %s"
+                       % (vm.id, network.id))
+        vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        for nic in vm_info.nic:
             if nic.networkid == network.id:
                 nic_id = nic.id
         if operation is "update":
             vm.update_default_nic(self.api_client, nic_id)
-            self.debug("Updated default NIC to NIC with ID - %s in VM with ID - %s and network with ID - %s" %
+            self.debug("Updated default NIC to NIC with ID - %s in VM with ID "
+                       "- %s and network with ID - %s" %
                        (nic_id, vm.id, network.id))
         if operation is "remove":
             vm.remove_nic(self.api_client, nic_id)
-            self.debug("Removed NIC with ID - %s in VM with ID - %s and network with ID - %s" %
-                       (nic_id, vm.id, network.id))
-        if operation is "add":
-            vm.add_nic(self.api_client, network.id)
-            self.debug("Added NIC with ID - %s in VM with ID - %s and network with ID - %s" %
-                       (nic_id, vm.id, network.id))
+            self.debug("Removed NIC with ID - %s in VM with ID - %s and "
+                       "network with ID - %s" % (nic_id, vm.id, network.id))
 
     # migrate_VM - Migrates VM to another host, if available
     def migrate_VM(self, vm):
@@ -339,9 +460,11 @@
                          "List hosts should return a valid list"
                          )
         # Remove the host of current VM from the hosts list
-        hosts[:] = [host for host in hosts if host.id != vm.hostid]
+        vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        hosts[:] = [host for host in hosts if host.id != vm_info.hostid]
         if len(hosts) <= 0:
-            self.skipTest("No host available for migration. Test requires at-least 2 hosts")
+            self.skipTest("No host available for migration. "
+                          "Test requires at-least 2 hosts")
         host = hosts[0]
         self.debug("Migrating VM with ID: %s to Host: %s" % (vm.id, host.id))
         try:
@@ -360,60 +483,75 @@
 
     # get_Router - Returns router for the given network
     def get_Router(self, network):
-        self.debug("Finding the virtual router for network with ID - %s" % network.id)
+        self.debug("Finding the virtual router for network with ID - %s" %
+                   network.id)
         routers = Router.list(self.api_client,
                               networkid=network.id,
                               listall=True
                               )
         self.assertEqual(isinstance(routers, list), True,
-                         "List routers should return a valid virtual router for network"
+                         "List routers should return a valid virtual router "
+                         "for network"
                          )
         return routers[0]
 
-    # acquire_PublicIPAddress - Acquires public IP address for the given network/VPC
+    # acquire_PublicIPAddress - Acquires public IP address for the given
+    # network/VPC
     def acquire_PublicIPAddress(self, network, vpc=None, account=None):
         if not account:
             account = self.account
-        self.debug("Associating public IP for network with ID - %s in the account - %s" % (network.id, account.name))
+        self.debug("Associating public IP for network with ID - %s in the "
+                   "account - %s" % (network.id, account.name))
         public_ip = PublicIPAddress.create(self.api_client,
                                            accountid=account.name,
                                            domainid=account.domainid,
                                            zoneid=self.zone.id,
-                                           networkid=network.id if vpc is None else None,
-                                           vpcid=vpc.id if vpc else self.vpc.id if hasattr(self, "vpc") else None
+                                           networkid=network.id
+                                           if vpc is None else None,
+                                           vpcid=vpc.id if vpc else self.vpc.id
+                                           if hasattr(self, "vpc") else None
                                            )
-        self.debug("Associated public IP address - %s with network with ID - %s" %
-                   (public_ip.ipaddress.ipaddress, network.id))
+        self.debug("Associated public IP address - %s with network with ID - "
+                   "%s" % (public_ip.ipaddress.ipaddress, network.id))
         return public_ip
 
-    # create_StaticNatRule_For_VM - Creates Static NAT rule on the given public IP for the given VM in the given network
-    def create_StaticNatRule_For_VM(self, vm, public_ip, network, vmguestip=None):
-        self.debug("Enabling Static NAT rule on public IP - %s for VM with ID - %s in network with ID - %s" %
+    # create_StaticNatRule_For_VM - Creates Static NAT rule on the given
+    # public IP for the given VM in the given network
+    def create_StaticNatRule_For_VM(self, vm, public_ip, network,
+                                    vmguestip=None):
+        self.debug("Enabling Static NAT rule on public IP - %s for VM with ID "
+                   "- %s in network with ID - %s" %
                    (public_ip.ipaddress.ipaddress, vm.id, network.id))
-        static_nat_rule = StaticNATRule.enable(self.api_client,
-                                               ipaddressid=public_ip.ipaddress.id,
-                                               virtualmachineid=vm.id,
-                                               networkid=network.id,
-                                               vmguestip=vmguestip
-                                               )
-        self.debug("Static NAT rule enabled on public IP - %s for VM with ID - %s in network with ID - %s" %
+        static_nat_rule = StaticNATRule.enable(
+            self.api_client,
+            ipaddressid=public_ip.ipaddress.id,
+            virtualmachineid=vm.id,
+            networkid=network.id,
+            vmguestip=vmguestip
+        )
+        self.debug("Static NAT rule enabled on public IP - %s for VM with ID "
+                   "- %s in network with ID - %s" %
                    (public_ip.ipaddress.ipaddress, vm.id, network.id))
         return static_nat_rule
 
-    # delete_StaticNatRule_For_VM - Deletes Static NAT rule on the given public IP
+    # delete_StaticNatRule_For_VM - Deletes Static NAT rule on the given
+    # public IP
     def delete_StaticNatRule_For_VM(self, public_ip):
-        self.debug("Disabling Static NAT rule on public IP - %s" % public_ip.ipaddress.ipaddress)
+        self.debug("Disabling Static NAT rule on public IP - %s" %
+                   public_ip.ipaddress.ipaddress)
         StaticNATRule.disable(self.api_client,
                               ipaddressid=public_ip.ipaddress.id
                               )
-        self.debug("Static NAT rule disabled on public IP - %s" % public_ip.ipaddress.ipaddress)
+        self.debug("Static NAT rule disabled on public IP - %s" %
+                   public_ip.ipaddress.ipaddress)
 
-    # create_FirewallRule - Creates (Ingress) Firewall rule on the given Static NAT rule enabled public IP for Isolated
-    # networks
+    # create_FirewallRule - Creates (Ingress) Firewall rule on the given
+    # Static NAT rule enabled public IP for Isolated networks
     def create_FirewallRule(self, public_ip, rule=None):
         if not rule:
             rule = self.test_data["ingress_rule"]
-        self.debug("Adding an (Ingress) Firewall rule to make Guest VMs accessible through Static NAT rule - %s" % rule)
+        self.debug("Adding an (Ingress) Firewall rule to make Guest VMs "
+                   "accessible through Static NAT rule - %s" % rule)
         return FireWallRule.create(self.api_client,
                                    ipaddressid=public_ip.ipaddress.id,
                                    protocol=rule["protocol"],
@@ -422,9 +560,11 @@
                                    endport=rule["endport"]
                                    )
 
-    # create_EgressFirewallRule - Creates Egress Firewall rule in the given Isolated network
+    # create_EgressFirewallRule - Creates Egress Firewall rule in the given
+    # Isolated network
     def create_EgressFirewallRule(self, network, rule):
-        self.debug("Adding an Egress Firewall rule to allow/deny outgoing traffic from Guest VMs - %s" % rule)
+        self.debug("Adding an Egress Firewall rule to allow/deny outgoing "
+                   "traffic from Guest VMs - %s" % rule)
         return EgressFireWallRule.create(self.api_client,
                                          networkid=network.id,
                                          protocol=rule["protocol"],
@@ -443,8 +583,10 @@
                                      vpcid=vpc.id
                                      )
 
-    # create_NetworkAclRule - Creates Ingress/Egress Network ACL rule in the given VPC network/acl list
-    def create_NetworkAclRule(self, rule, traffic_type="Ingress", network=None, acl_list=None):
+    # create_NetworkAclRule - Creates Ingress/Egress Network ACL rule in the
+    # given VPC network/acl list
+    def create_NetworkAclRule(self, rule, traffic_type="Ingress", network=None,
+                              acl_list=None):
         self.debug("Adding NetworkACL rule - %s" % rule)
         if acl_list:
             return NetworkACL.create(self.api_client,
@@ -461,23 +603,25 @@
                                      )
 
     # ssh_into_VM - Gets into the shell of the given VM using its public IP
-    def ssh_into_VM(self, vm, public_ip, reconnect=True):
-        self.debug("SSH into VM with ID - %s on public IP address - %s" % (vm.id, public_ip.ipaddress.ipaddress))
-        tries = 0
-        while tries < 3:
-            try:
-                ssh_client = vm.get_ssh_client(ipaddress=public_ip.ipaddress.ipaddress, reconnect=reconnect)
-            except Exception as e:
-                self.debug("Failed to SSH into VM: %s" % e)
-                self.debug("Waiting for the VM to be fully resolved for SSH connection...")
-                time.sleep(120)
-                self.debug("Retrying SSH into VM...")
-                tries += 1
-                continue
-            self.debug("Successful to SSH into VM with ID - %s on public IP address - %s" %
+    def ssh_into_VM(self, vm, public_ip, reconnect=True, negative_test=False):
+        self.debug("SSH into VM with ID - %s on public IP address - %s" %
+                   (vm.id, public_ip.ipaddress.ipaddress))
+        tries = 1 if negative_test else 3
+
+        @retry(tries=tries)
+        def retry_ssh():
+            ssh_client = vm.get_ssh_client(
+                ipaddress=public_ip.ipaddress.ipaddress,
+                reconnect=reconnect,
+                retries=3 if negative_test else 30
+            )
+            self.debug("Successful to SSH into VM with ID - %s on "
+                       "public IP address - %s" %
                        (vm.id, public_ip.ipaddress.ipaddress))
             return ssh_client
 
+        return retry_ssh()
+
     # execute_cmd - Executes the given command on the given ssh client
     def execute_cmd(self, ssh_client, cmd):
         self.debug("SSH client executing command - %s" % cmd)
@@ -490,41 +634,62 @@
             self.debug("SSH client executed command result is None")
         return ret_data
 
-    # wget_from_server - Fetches index.html file from a web server listening on the given public IP address and port
-    def wget_from_server(self, public_ip, port):
+    # wget_from_server - Fetches file with the given file name from a web
+    # server listening on the given public IP address and port
+    def wget_from_server(self, public_ip, port=80, file_name="index.html",
+                         disable_system_proxies=True):
         import urllib
-        self.debug("wget index.html file from a http web server listening on public IP address - %s and port - %s" %
-                   (public_ip.ipaddress.ipaddress, port))
-        filename, headers = urllib.urlretrieve("http://%s:%s/index.html" % (public_ip.ipaddress.ipaddress, port),
-                                               filename="index.html"
-                                               )
+        if disable_system_proxies:
+            urllib.getproxies = lambda: {}
+        self.debug("wget file - %s from a http web server listening on "
+                   "public IP address - %s and port - %s" %
+                   (file_name, public_ip.ipaddress.ipaddress, port))
+        filename, headers = urllib.urlretrieve(
+            "http://%s:%s/%s" %
+            (public_ip.ipaddress.ipaddress, port, file_name),
+            filename=file_name
+        )
+        self.debug("Successful to wget file - %s from a http web server "
+                   "listening on public IP address - %s and port - %s" %
+                   (file_name, public_ip.ipaddress.ipaddress, port))
         return filename, headers
 
-    # validate_NetworkServiceProvider - Validates the given Network Service Provider in the Nuage VSP Physical Network,
-    # matches the given provider name and state against the list of providers fetched
+    # validate_NetworkServiceProvider - Validates the given Network Service
+    # Provider in the Nuage VSP Physical Network, matches the given provider
+    # name and state against the list of providers fetched
     def validate_NetworkServiceProvider(self, provider_name, state=None):
-        """Validates the Network Service Provider in the Nuage VSP Physical Network"""
-        self.debug("Validating the creation and state of Network Service Provider - %s" % provider_name)
-        providers = NetworkServiceProvider.list(self.api_client,
-                                                name=provider_name,
-                                                physicalnetworkid=self.vsp_physical_network.id)
+        """Validates the Network Service Provider in the Nuage VSP Physical
+        Network"""
+        self.debug("Validating the creation and state of Network Service "
+                   "Provider - %s" % provider_name)
+        providers = NetworkServiceProvider.list(
+            self.api_client,
+            name=provider_name,
+            physicalnetworkid=self.vsp_physical_network.id
+        )
         self.assertEqual(isinstance(providers, list), True,
-                         "List Network Service Provider should return a valid list"
+                         "List Network Service Provider should return a "
+                         "valid list"
                          )
         self.assertEqual(provider_name, providers[0].name,
-                         "Name of the Network Service Provider should match with the returned list data"
+                         "Name of the Network Service Provider should match "
+                         "with the returned list data"
                          )
         if state:
             self.assertEqual(providers[0].state, state,
-                             "Network Service Provider state should be '%s'" % state
+                             "Network Service Provider state should be '%s'" %
+                             state
                              )
-        self.debug("Successfully validated the creation and state of Network Service Provider - %s" % provider_name)
+        self.debug("Successfully validated the creation and state of Network "
+                   "Service Provider - %s" % provider_name)
 
-    # validate_VpcOffering - Validates the given VPC offering, matches the given VPC offering name and state against the
-    # list of VPC offerings fetched
+    # validate_VpcOffering - Validates the given VPC offering, matches the
+    # given VPC offering name and state against the list of VPC offerings
+    # fetched
     def validate_VpcOffering(self, vpc_offering, state=None):
         """Validates the VPC offering"""
-        self.debug("Validating the creation and state of VPC offering - %s" % vpc_offering.name)
+        self.debug("Validating the creation and state of VPC offering - %s" %
+                   vpc_offering.name)
         vpc_offs = VpcOffering.list(self.api_client,
                                     id=vpc_offering.id
                                     )
@@ -532,15 +697,18 @@
                          "List VPC offering should return a valid list"
                          )
         self.assertEqual(vpc_offering.name, vpc_offs[0].name,
-                         "Name of the VPC offering should match with the returned list data"
+                         "Name of the VPC offering should match with the "
+                         "returned list data"
                          )
         if state:
             self.assertEqual(vpc_offs[0].state, state,
                              "VPC offering state should be '%s'" % state
                              )
-        self.debug("Successfully validated the creation and state of VPC offering - %s" % vpc_offering.name)
+        self.debug("Successfully validated the creation and state of VPC "
+                   "offering - %s" % vpc_offering.name)
 
-    # validate_Vpc - Validates the given VPC, matches the given VPC name and state against the list of VPCs fetched
+    # validate_Vpc - Validates the given VPC, matches the given VPC name and
+    # state against the list of VPCs fetched
     def validate_Vpc(self, vpc, state=None):
         """Validates the VPC"""
         self.debug("Validating the creation and state of VPC - %s" % vpc.name)
@@ -551,19 +719,23 @@
                          "List VPC should return a valid list"
                          )
         self.assertEqual(vpc.name, vpcs[0].name,
-                         "Name of the VPC should match with the returned list data"
+                         "Name of the VPC should match with the returned "
+                         "list data"
                          )
         if state:
             self.assertEqual(vpcs[0].state, state,
                              "VPC state should be '%s'" % state
                              )
-        self.debug("Successfully validated the creation and state of VPC - %s" % vpc.name)
+        self.debug("Successfully validated the creation and state of VPC - %s"
+                   % vpc.name)
 
-    # validate_NetworkOffering - Validates the given Network offering, matches the given network offering name and state
-    # against the list of network offerings fetched
+    # validate_NetworkOffering - Validates the given Network offering, matches
+    # the given network offering name and state against the list of network
+    # offerings fetched
     def validate_NetworkOffering(self, net_offering, state=None):
         """Validates the Network offering"""
-        self.debug("Validating the creation and state of Network offering - %s" % net_offering.name)
+        self.debug("Validating the creation and state of Network offering - %s"
+                   % net_offering.name)
         net_offs = NetworkOffering.list(self.api_client,
                                         id=net_offering.id
                                         )
@@ -571,19 +743,22 @@
                          "List Network offering should return a valid list"
                          )
         self.assertEqual(net_offering.name, net_offs[0].name,
-                         "Name of the Network offering should match with the returned list data"
+                         "Name of the Network offering should match with the "
+                         "returned list data"
                          )
         if state:
             self.assertEqual(net_offs[0].state, state,
                              "Network offering state should be '%s'" % state
                              )
-        self.debug("Successfully validated the creation and state of Network offering - %s" % net_offering.name)
+        self.debug("Successfully validated the creation and state of Network "
+                   "offering - %s" % net_offering.name)
 
-    # validate_Network - Validates the given network, matches the given network name and state against the list of
-    # networks fetched
+    # validate_Network - Validates the given network, matches the given network
+    # name and state against the list of networks fetched
     def validate_Network(self, network, state=None):
         """Validates the network"""
-        self.debug("Validating the creation and state of Network - %s" % network.name)
+        self.debug("Validating the creation and state of Network - %s" %
+                   network.name)
         networks = Network.list(self.api_client,
                                 id=network.id
                                 )
@@ -591,15 +766,18 @@
                          "List network should return a valid list"
                          )
         self.assertEqual(network.name, networks[0].name,
-                         "Name of the network should match with with the returned list data"
+                         "Name of the network should match with with the "
+                         "returned list data"
                          )
         if state:
             self.assertEqual(networks[0].state, state,
                              "Network state should be '%s'" % state
                              )
-        self.debug("Successfully validated the creation and state of Network - %s" % network.name)
+        self.debug("Successfully validated the creation and state of Network "
+                   "- %s" % network.name)
 
-    # check_VM_state - Checks if the given VM is in the expected state form the list of fetched VMs
+    # check_VM_state - Checks if the given VM is in the expected state form the
+    # list of fetched VMs
     def check_VM_state(self, vm, state=None):
         """Validates the VM state"""
         self.debug("Validating the deployment and state of VM - %s" % vm.name)
@@ -614,12 +792,15 @@
             self.assertEqual(vms[0].state, state,
                              "Virtual machine is not in the expected state"
                              )
-        self.debug("Successfully validated the deployment and state of VM - %s" % vm.name)
+        self.debug("Successfully validated the deployment and state of VM - %s"
+                   % vm.name)
 
-    # check_Router_state - Checks if the given router is in the expected state form the list of fetched routers
+    # check_Router_state - Checks if the given router is in the expected state
+    # form the list of fetched routers
     def check_Router_state(self, router, state=None):
         """Validates the Router state"""
-        self.debug("Validating the deployment and state of Router - %s" % router.name)
+        self.debug("Validating the deployment and state of Router - %s" %
+                   router.name)
         routers = Router.list(self.api_client,
                               id=router.id,
                               listall=True
@@ -631,13 +812,16 @@
             self.assertEqual(routers[0].state, state,
                              "Virtual router is not in the expected state"
                              )
-        self.debug("Successfully validated the deployment and state of Router - %s" % router.name)
+        self.debug("Successfully validated the deployment and state of Router "
+                   "- %s" % router.name)
 
-    # validate_PublicIPAddress - Validates if the given public IP address is in the expected state form the list of
-    # fetched public IP addresses
-    def validate_PublicIPAddress(self, public_ip, network, static_nat=False, vm=None):
+    # validate_PublicIPAddress - Validates if the given public IP address is in
+    # the expected state form the list of fetched public IP addresses
+    def validate_PublicIPAddress(self, public_ip, network, static_nat=False,
+                                 vm=None):
         """Validates the Public IP Address"""
-        self.debug("Validating the assignment and state of public IP address - %s" % public_ip.ipaddress.ipaddress)
+        self.debug("Validating the assignment and state of public IP address "
+                   "- %s" % public_ip.ipaddress.ipaddress)
         public_ips = PublicIPAddress.list(self.api_client,
                                           id=public_ip.ipaddress.id,
                                           networkid=network.id,
@@ -645,181 +829,390 @@
                                           listall=True
                                           )
         self.assertEqual(isinstance(public_ips, list), True,
-                         "List public IP for network should return a valid list"
+                         "List public IP for network should return a "
+                         "valid list"
                          )
-        self.assertEqual(public_ips[0].ipaddress, public_ip.ipaddress.ipaddress,
-                         "List public IP for network should list the assigned public IP address"
+        self.assertEqual(public_ips[0].ipaddress,
+                         public_ip.ipaddress.ipaddress,
+                         "List public IP for network should list the assigned "
+                         "public IP address"
                          )
         self.assertEqual(public_ips[0].state, "Allocated",
                          "Assigned public IP is not in the allocated state"
                          )
         if static_nat and vm:
             self.assertEqual(public_ips[0].virtualmachineid, vm.id,
-                             "Static NAT rule is not enabled for the VM on the assigned public IP"
+                             "Static NAT rule is not enabled for the VM on "
+                             "the assigned public IP"
                              )
-        self.debug("Successfully validated the assignment and state of public IP address - %s" %
-                   public_ip.ipaddress.ipaddress)
+        self.debug("Successfully validated the assignment and state of public "
+                   "IP address - %s" % public_ip.ipaddress.ipaddress)
 
-    # VSD verifications
-    # VSD is a programmable policy and analytics engine of Nuage VSP SDN platform
+    # VSD verifications; VSD is a programmable policy and analytics engine of
+    # Nuage VSP SDN platform
 
-    # get_externalID_filter - Returns corresponding external ID filter of the given object in VSD
+    # get_externalID_filter - Returns corresponding external ID filter of the
+    # given object in VSD
     def get_externalID_filter(self, object_id):
         ext_id = object_id + "@" + self.cms_id
         return self.vsd.set_externalID_filter(ext_id)
 
     # fetch_by_externalID - Returns VSD object with the given external ID
     def fetch_by_externalID(self, fetcher, *cs_objects):
-        """ Fetches a child object by external id using the given fetcher, and uuids of the given cloudstack objects.
+        """ Fetches a child object by external id using the given fetcher, and
+        uuids of the given cloudstack objects.
         E.G.
-          - fetch_by_external_id(vsdk.NUSubnet(id="954de425-b860-410b-be09-c560e7dbb474").vms, cs_vm)
-          - fetch_by_external_id(session.user.floating_ips, cs_network, cs_public_ip)
+          - fetch_by_external_id(vsdk.NUSubnet
+          (id="954de425-b860-410b-be09-c560e7dbb474").vms, cs_vm)
+          - fetch_by_external_id
+          (session.user.floating_ips, cs_network, cs_public_ip)
         :param fetcher: VSPK Fetcher to use to find the child entity
         :param cs_objects: Cloudstack objects to take the UUID from.
         :return: the VSPK object having the correct externalID
         """
-        return fetcher.get_first(filter="externalID BEGINSWITH '%s'" % ":".join([o.id for o in cs_objects]))
+        return fetcher.get_first(filter="externalID BEGINSWITH '%s'" %
+                                        ":".join([o.id for o in cs_objects]))
 
-    # verify_vsd_network - Verifies the given domain and network/VPC against the corresponding installed enterprise,
-    # domain, zone, and subnet in VSD
+    # verify_vsd_network - Verifies the given CloudStack domain and network/VPC
+    # against the corresponding installed enterprise, domain, zone, and subnet
+    # in VSD
     def verify_vsd_network(self, domain_id, network, vpc=None):
-        self.debug("Verifying the creation and state of Network - %s in VSD" % network.name)
-        vsd_enterprise = self.vsd.get_enterprise(filter=self.get_externalID_filter(domain_id))
-        ext_network_filter = self.get_externalID_filter(vpc.id) if vpc else self.get_externalID_filter(network.id)
+        self.debug("Verifying the creation and state of Network - %s in VSD" %
+                   network.name)
+        vsd_enterprise = self.vsd.get_enterprise(
+            filter=self.get_externalID_filter(domain_id))
+        ext_network_filter = self.get_externalID_filter(vpc.id) if vpc \
+            else self.get_externalID_filter(network.id)
         vsd_domain = self.vsd.get_domain(filter=ext_network_filter)
         vsd_zone = self.vsd.get_zone(filter=ext_network_filter)
-        vsd_subnet = self.vsd.get_subnet(filter=self.get_externalID_filter(network.id))
+        vsd_subnet = self.vsd.get_subnet(
+            filter=self.get_externalID_filter(network.id))
         self.assertEqual(vsd_enterprise.name, domain_id,
-                         "VSD enterprise name should match CloudStack domain uuid"
+                         "VSD enterprise name should match CloudStack domain "
+                         "uuid"
                          )
         if vpc:
             self.assertEqual(vsd_domain.description, "VPC_" + vpc.name,
-                             "VSD domain description should match VPC name in CloudStack"
+                             "VSD domain description should match VPC name in "
+                             "CloudStack"
                              )
             self.assertEqual(vsd_zone.description, "VPC_" + vpc.name,
-                             "VSD zone description should match VPC name in CloudStack"
+                             "VSD zone description should match VPC name in "
+                             "CloudStack"
                              )
         else:
             self.assertEqual(vsd_domain.description, network.name,
-                             "VSD domain description should match network name in CloudStack"
+                             "VSD domain description should match network "
+                             "name in CloudStack"
                              )
             self.assertEqual(vsd_zone.description, network.name,
-                             "VSD zone description should match network name in CloudStack"
+                             "VSD zone description should match network name "
+                             "in CloudStack"
                              )
         self.assertEqual(vsd_subnet.description, network.name,
-                         "VSD subnet description should match network name in CloudStack"
+                         "VSD subnet description should match network name in "
+                         "CloudStack"
                          )
-        self.debug("Successfully verified the creation and state of Network - %s in VSD" % network.name)
+        self.debug("Successfully verified the creation and state of Network "
+                   "- %s in VSD" % network.name)
 
-    # verify_vsd_vm - Verifies the given VM deployment and state in VSD
-    def verify_vsd_vm(self, vm, stopped=None):
-        self.debug("Verifying the deployment and state of VM - %s in VSD" % vm.name)
+    # get_subnet_id - Calculates and returns the subnet ID in VSD with the
+    # given CloudStack network ID and subnet gateway
+    def get_subnet_id(self, network_id, gateway):
+        try:
+            import uuid
+
+            class NULL_NAMESPACE:
+                bytes = b''
+            # The UUID of the shared network in ACS
+            # The gateway IP of the address range
+            network_id = str(network_id)
+            bytes = bytearray(network_id)
+            ipbytes = bytearray(gateway)
+            subnet_id = uuid.uuid3(NULL_NAMESPACE, bytes + ipbytes)
+            self.debug("The required subnet id is %s in VSD" % subnet_id)
+            return str(subnet_id)
+        except Exception as e:
+            self.debug("Failed to get the subnet id due to %s" % e)
+            self.fail("Unable to get the subnet id, failing the test case")
+
+    # verify_vsd_shared_network - Verifies the given CloudStack domain and
+    # shared network against the corresponding installed enterprise, domain,
+    # zone, subnet, and shared network resource in VSD
+    def verify_vsd_shared_network(self, domain_id, network,
+                                  gateway="10.1.1.1"):
+        self.debug("Verifying the creation and state of Shared Network - %s "
+                   "in VSD" % network.name)
+        vsd_enterprise = self.vsd.get_enterprise(
+            filter=self.get_externalID_filter(domain_id))
+        ext_network_id_filter = self.get_externalID_filter(network.id)
+        vsd_domain = self.vsd.get_domain(filter=ext_network_id_filter)
+        vsd_zone = self.vsd.get_zone(filter=ext_network_id_filter)
+        subnet_id = self.get_subnet_id(network.id, gateway)
+        vsd_subnet = self.vsd.get_subnet(
+            filter=self.get_externalID_filter(subnet_id))
+        self.assertNotEqual(vsd_enterprise, None,
+                            "VSD enterprise (CloudStack domain) data format "
+                            "should not be of type None"
+                            )
+        self.assertEqual(vsd_domain.description, network.name,
+                         "VSD domain description should match network name in "
+                         "CloudStack"
+                         )
+        self.assertEqual(vsd_zone.description, network.name,
+                         "VSD zone description should match network name in "
+                         "CloudStack"
+                         )
+        self.assertEqual(vsd_subnet.description, network.name,
+                         "VSD subnet description '%s' should match network "
+                         "name in CloudStack" % vsd_subnet.description
+                         )
+        shared_resource = self.vsd.get_shared_network_resource(
+            filter=self.get_externalID_filter(subnet_id))
+        self.assertEqual(shared_resource.description, network.name,
+                         "VSD shared resources description should match "
+                         "network name in CloudStack"
+                         )
+        self.debug("Successfully verified the creation and state of Shared "
+                   "Network - %s in VSD" % network.name)
+
+    # verify_vsd_object_status - Verifies the given CloudStack object status in
+    # VSD
+    def verify_vsd_object_status(self, cs_object, stopped):
+        vsd_object = self.vsd.get_vm(
+            filter=self.get_externalID_filter(cs_object.id))
+        expected_status = cs_object.state.upper() if not stopped \
+            else "DELETE_PENDING"
+        tries = 0
+        while (vsd_object.status != expected_status) and (tries < 10):
+            self.debug("Waiting for the CloudStack object " + cs_object.name +
+                       " to be fully resolved in VSD...")
+            time.sleep(30)
+            self.debug("Rechecking the CloudStack object " + cs_object.name +
+                       " status in VSD...")
+            vsd_object = self.vsd.get_vm(
+                filter=self.get_externalID_filter(cs_object.id))
+            tries += 1
+        self.assertEqual(vsd_object.status, expected_status,
+                         "Object " + cs_object.name +
+                         " state in VSD should match its state in CloudStack"
+                         )
+
+    # verify_vsd_vm - Verifies the given CloudStack VM deployment and status in
+    # VSD
+    def verify_vsd_vm(self, vm, stopped=False):
+        self.debug("Verifying the deployment and state of VM - %s in VSD" %
+                   vm.name)
         vsd_vm = self.vsd.get_vm(filter=self.get_externalID_filter(vm.id))
         self.assertNotEqual(vsd_vm, None,
                             "VM data format in VSD should not be of type None"
                             )
-        for nic in vm.nic:
-            vsd_subnet = self.vsd.get_subnet(filter=self.get_externalID_filter(nic.networkid))
-            vsd_vport = self.vsd.get_vport(subnet=vsd_subnet, filter=self.get_externalID_filter(nic.id))
-            vsd_vm_interface = self.vsd.get_vm_interface(filter=self.get_externalID_filter(nic.id))
+        vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        for nic in vm_info.nic:
+            vsd_subnet = self.vsd.get_subnet(
+                filter=self.get_externalID_filter(nic.networkid))
+            vsd_vport = self.vsd.get_vport(
+                subnet=vsd_subnet, filter=self.get_externalID_filter(nic.id))
+            vsd_vm_interface = self.vsd.get_vm_interface(
+                filter=self.get_externalID_filter(nic.id))
             self.assertEqual(vsd_vport.active, True,
                              "VSD VM vport should be active"
                              )
             self.assertEqual(vsd_vm_interface.ip_address, nic.ipaddress,
-                             "VSD VM interface IP address should match VM's NIC IP address in CloudStack"
+                             "VSD VM interface IP address should match VM's "
+                             "NIC IP address in CloudStack"
                              )
         if not self.isSimulator:
-            if stopped:
-                self.assertEqual(vsd_vm.status, "DELETE_PENDING",
-                                 "VM state in VSD should be DELETE_PENDING"
-                                 )
-            else:
-                self.assertEqual(vsd_vm.status, vm.state.upper(),
-                                 "VM state in VSD should match its state in CloudStack"
-                                 )
-        self.debug("Successfully verified the deployment and state of VM - %s in VSD" % vm.name)
+            self.verify_vsd_object_status(vm, stopped)
+        self.debug("Successfully verified the deployment and state of VM - %s "
+                   "in VSD" % vm.name)
 
-    # verify_vsd_router - Verifies the given network router deployment and state in VSD
-    def verify_vsd_router(self, router, stopped=None):
-        self.debug("Verifying the deployment and state of Router - %s in VSD" % router.name)
-        vsd_router = self.vsd.get_vm(filter=self.get_externalID_filter(router.id))
+    # verify_vsd_enterprise_vm - Verifies the given CloudStack domain VM
+    # deployment and status in the corresponding VSD enterprise
+    def verify_vsd_enterprise_vm(self, domain_id, network, vm, vpc=None,
+                                 stopped=False, sharedsubnetid=None):
+        self.debug("Verifying the creation and state of Network - %s in VSD" %
+                   network.name)
+        vsd_enterprise = self.vsd.get_enterprise(
+            filter=self.get_externalID_filter(domain_id))
+        ext_network_id_filter = self.get_externalID_filter(vpc.id) if vpc \
+            else self.get_externalID_filter(network.id)
+        vsd_domain = self.vsd.get_domain(
+            enterprise=vsd_enterprise, filter=ext_network_id_filter)
+        vsd_zone = self.vsd.get_zone(
+            domain=vsd_domain, filter=ext_network_id_filter)
+        if sharedsubnetid:
+            vsd_subnet = self.vsd.get_subnet(
+                zone=vsd_zone,
+                filter=self.get_externalID_filter(sharedsubnetid))
+        else:
+            vsd_subnet = self.vsd.get_subnet(
+                zone=vsd_zone, filter=self.get_externalID_filter(network.id))
+        self.assertNotEqual(vsd_enterprise, None,
+                            "VSD enterprise (CloudStack domain) data format "
+                            "should not be of type None"
+                            )
+        if vpc:
+            self.assertEqual(vsd_domain.description, "VPC_" + vpc.name,
+                             "VSD domain description should match VPC name in "
+                             "CloudStack"
+                             )
+            self.assertEqual(vsd_zone.description, "VPC_" + vpc.name,
+                             "VSD zone description should match VPC name in "
+                             "CloudStack"
+                             )
+        else:
+            self.assertEqual(vsd_domain.description, network.name,
+                             "VSD domain description should match network "
+                             "name in CloudStack"
+                             )
+            self.assertEqual(vsd_zone.description, network.name,
+                             "VSD zone description should match network name "
+                             "in CloudStack"
+                             )
+        self.assertEqual(vsd_subnet.description, network.name,
+                         "VSD subnet description '%s' should match network "
+                         "name in CloudStack" % vsd_subnet.description
+                         )
+        self.debug("Successfully verified the creation and state of Network - "
+                   "%s in VSD" % network.name)
+        self.debug("Verifying the deployment and state of VM - %s in VSD" %
+                   vm.name)
+        vsd_vm = self.vsd.get_vm(
+            subnet=vsd_subnet, filter=self.get_externalID_filter(vm.id))
+        self.assertNotEqual(vsd_vm, None,
+                            "VM data format in VSD should not be of type None"
+                            )
+        vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        for nic in vm_info.nic:
+            if nic.networkid == network.id:
+                vsd_vport = self.vsd.get_vport(
+                    subnet=vsd_subnet,
+                    filter=self.get_externalID_filter(nic.id))
+                vsd_vm_interface = self.vsd.get_vm_interface(
+                    filter=self.get_externalID_filter(nic.id))
+                self.assertEqual(vsd_vport.active, True,
+                                 "VSD VM vport should be active"
+                                 )
+                self.assertEqual(vsd_vm_interface.ip_address, nic.ipaddress,
+                                 "VSD VM interface IP address should match "
+                                 "VM's NIC IP address in CloudStack"
+                                 )
+        if not self.isSimulator:
+            self.verify_vsd_object_status(vm, stopped)
+        self.debug("Successfully verified the deployment and state of VM - %s "
+                   "in VSD" % vm.name)
+
+    # verify_vsd_router - Verifies the given CloudStack network router
+    # deployment and status in VSD
+    def verify_vsd_router(self, router, stopped=False):
+        self.debug("Verifying the deployment and state of Router - %s in VSD" %
+                   router.name)
+        vsd_router = self.vsd.get_vm(
+            filter=self.get_externalID_filter(router.id))
         self.assertNotEqual(vsd_router, None,
-                            "Router data format in VSD should not be of type None"
+                            "Router data format in VSD should not be of type "
+                            "None"
                             )
         if not self.isSimulator:
-            if stopped:
-                self.assertEqual(vsd_router.status, "DELETE_PENDING",
-                                 "Router state in VSD should be DELETE_PENDING"
-                                 )
-            else:
-                self.assertEqual(vsd_router.status, router.state.upper(),
-                                 "Router state in VSD should match its state in CloudStack"
-                                 )
-        self.debug("Successfully verified the deployment and state of Router - %s in VSD" % router.name)
+            self.verify_vsd_object_status(router, stopped)
+        self.debug("Successfully verified the deployment and state of Router "
+                   "- %s in VSD" % router.name)
 
-    # verify_vsd_lb_device - Verifies the given LB device deployment and state in VSD
-    def verify_vsd_lb_device(self, lb_device, stopped=None):
-        self.debug("Verifying the deployment and state of LB device - %s in VSD" % lb_device.name)
-        vsd_lb_device = self.vsd.get_vm(filter=self.get_externalID_filter(lb_device.id))
+    # verify_vsd_lb_device - Verifies the given CloudStack LB device deployment
+    # and status in VSD
+    def verify_vsd_lb_device(self, lb_device, stopped=False):
+        self.debug("Verifying the deployment and state of LB device - %s in "
+                   "VSD" % lb_device.name)
+        vsd_lb_device = self.vsd.get_vm(
+            filter=self.get_externalID_filter(lb_device.id))
         self.assertNotEqual(vsd_lb_device, None,
-                            "LB device data format in VSD should not be of type None"
+                            "LB device data format in VSD should not be of "
+                            "type None"
                             )
         if not self.isSimulator:
-            if stopped:
-                self.assertEqual(vsd_lb_device.status, "DELETE_PENDING",
-                                 "LB device state in VSD should be DELETE_PENDING"
-                                 )
-            else:
-                self.assertEqual(vsd_lb_device.status, lb_device.state.upper(),
-                                 "LB device state in VSD should match its state in CloudStack"
-                                 )
-        self.debug("Successfully verified the deployment and state of LB device - %s in VSD" % lb_device.name)
+            self.verify_vsd_object_status(lb_device, stopped)
+        self.debug("Successfully verified the deployment and state of LB "
+                   "device - %s in VSD" % lb_device.name)
 
-    # verify_vsd_floating_ip -  Verifies the Static NAT rule on the given public IP of the given VM in the given network
-    # against the corresponding installed Floating IP in VSD
+    # verify_vsd_floating_ip -  Verifies the CloudStack Static NAT rule on the
+    # given public IP of the given VM in the given network against the
+    # corresponding installed Floating IP in VSD
     def verify_vsd_floating_ip(self, network, vm, public_ipaddress, vpc=None):
-        self.debug("Verifying the assignment and state of public IP address - %s in VSD" % public_ipaddress.ipaddress)
-        ext_fip_filter = self.get_externalID_filter(vpc.id + ":" + public_ipaddress.id) if vpc else \
-            self.get_externalID_filter(network.id + ":" + public_ipaddress.id)
+        self.debug("Verifying the assignment and state of public IP address "
+                   "- %s in VSD" % public_ipaddress.ipaddress)
+        ext_fip_filter = self.get_externalID_filter(vpc.id + ":" +
+                                                    public_ipaddress.id) \
+            if vpc else self.get_externalID_filter(network.id + ":" +
+                                                   public_ipaddress.id)
         vsd_fip = self.vsd.get_floating_ip(filter=ext_fip_filter)
         self.assertEqual(vsd_fip.address, public_ipaddress.ipaddress,
-                         "Floating IP address in VSD should match acquired public IP address in CloudStack"
+                         "Floating IP address in VSD should match acquired "
+                         "public IP address in CloudStack"
                          )
         self.assertEqual(vsd_fip.assigned, True,
                          "Floating IP in VSD should be assigned"
                          )
-        ext_network_filter = self.get_externalID_filter(vpc.id) if vpc else self.get_externalID_filter(network.id)
+        ext_fip_subnet_filter = self.get_externalID_filter(
+            public_ipaddress.vlanid)
+        vsd_fip_subnet = self.vsd.get_shared_network_resource(
+            filter=ext_fip_subnet_filter)
+        if self.isNuageInfraUnderlay:
+            self.assertEqual(vsd_fip_subnet.underlay, True,
+                             "Floating IP subnet in VSD should be underlay "
+                             "enabled"
+                             )
+        else:
+            self.assertEqual(vsd_fip_subnet.underlay, False,
+                             "Floating IP subnet in VSD should be underlay "
+                             "disabled"
+                             )
+        ext_network_filter = self.get_externalID_filter(vpc.id) if vpc \
+            else self.get_externalID_filter(network.id)
         vsd_domain = self.vsd.get_domain(filter=ext_network_filter)
         self.assertEqual(vsd_domain.id, vsd_fip.parent_id,
-                         "Floating IP in VSD should be associated with the correct VSD domain, which in turn should "
-                         "correspond to the correct VPC (or) network in CloudStack"
+                         "Floating IP in VSD should be associated with the "
+                         "correct VSD domain, which in turn should correspond "
+                         "to the correct VPC (or) network in CloudStack"
                          )
-        vsd_subnet = self.vsd.get_subnet(filter=self.get_externalID_filter(network.id))
-        for nic in vm.nic:
+        vsd_subnet = self.vsd.get_subnet(
+            filter=self.get_externalID_filter(network.id))
+        vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        for nic in vm_info.nic:
             if nic.networkid == network.id:
-                vsd_vport = self.vsd.get_vport(subnet=vsd_subnet, filter=self.get_externalID_filter(nic.id))
+                vsd_vport = self.vsd.get_vport(
+                    subnet=vsd_subnet,
+                    filter=self.get_externalID_filter(nic.id))
         self.assertEqual(vsd_vport.associated_floating_ip_id, vsd_fip.id,
-                         "Floating IP in VSD should be associated to the correct VSD vport, which in turn should "
-                         "correspond to the correct Static NAT rule enabled VM and network in CloudStack"
+                         "Floating IP in VSD should be associated to the "
+                         "correct VSD vport, which in turn should correspond "
+                         "to the correct Static NAT rule enabled VM and "
+                         "network in CloudStack"
                          )
-        self.debug("Successfully verified the assignment and state of public IP address - %s in VSD" %
-                   public_ipaddress.ipaddress)
+        self.debug("Successfully verified the assignment and state of public "
+                   "IP address - %s in VSD" % public_ipaddress.ipaddress)
 
-    # verify_vsd_firewall_rule - Verifies the given Network Firewall (Ingress/Egress ACL) rule against the corresponding
-    # installed firewall rule in VSD
+    # verify_vsd_firewall_rule - Verifies the given CloudStack Network Firewall
+    # (Ingress/Egress ACL) rule against the corresponding installed firewall
+    # rule in VSD
     def verify_vsd_firewall_rule(self, firewall_rule, traffic_type="Ingress"):
-        self.debug("Verifying the creation and state of Network Firewall (Ingress/Egress ACL) rule with ID - %s in VSD"
-                   % firewall_rule.id)
+        self.debug("Verifying the creation and state of Network Firewall "
+                   "(Ingress/Egress ACL) rule with ID - %s in VSD" %
+                   firewall_rule.id)
         ext_fw_rule_filter = self.get_externalID_filter(firewall_rule.id)
-        vsd_fw_rule = self.vsd.get_egress_acl_entry(filter=ext_fw_rule_filter) if traffic_type is "Ingress" else \
-            self.vsd.get_ingress_acl_entry(filter=ext_fw_rule_filter)
+        vsd_fw_rule = self.vsd.get_egress_acl_entry(
+            filter=ext_fw_rule_filter) if traffic_type is "Ingress" \
+            else self.vsd.get_ingress_acl_entry(filter=ext_fw_rule_filter)
         self.assertEqual(vsd_fw_rule.policy_state, "LIVE",
-                         "Ingress/Egress ACL rule's policy state in VSD should be LIVE"
+                         "Ingress/Egress ACL rule's policy state in VSD "
+                         "should be LIVE"
                          )
-        dest_port = str(firewall_rule.startport) + "-" + str(firewall_rule.endport)
+        dest_port = \
+            str(firewall_rule.startport) + "-" + str(firewall_rule.endport)
         self.assertEqual(vsd_fw_rule.destination_port, dest_port,
-                         "Ingress/Egress ACL rule's destination port in VSD should match corresponding rule's "
-                         "destination port in CloudStack"
+                         "Ingress/Egress ACL rule's destination port in VSD "
+                         "should match corresponding rule's destination port "
+                         "in CloudStack"
                          )
         vsd_protocol = int(vsd_fw_rule.protocol)
         protocol = "tcp"
@@ -830,8 +1223,9 @@
         elif vsd_protocol == 17:
             protocol = "udp"
         self.assertEqual(protocol, firewall_rule.protocol.lower(),
-                         "Ingress/Egress ACL rule's protocol in VSD should match corresponding rule's protocol in "
-                         "CloudStack"
+                         "Ingress/Egress ACL rule's protocol in VSD should "
+                         "match corresponding rule's protocol in CloudStack"
                          )
-        self.debug("Successfully verified the creation and state of Network Firewall (Ingress/Egress ACL) rule with ID "
-                   "- %s in VSD" % firewall_rule.id)
+        self.debug("Successfully verified the creation and state of Network "
+                   "Firewall (Ingress/Egress ACL) rule with ID - %s in VSD" %
+                   firewall_rule.id)
diff --git a/test/integration/plugins/nuagevsp/test_nuage_internal_dns.py b/test/integration/plugins/nuagevsp/test_nuage_internal_dns.py
new file mode 100644
index 0000000..1e774a3
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_internal_dns.py
@@ -0,0 +1,947 @@
+# 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.
+
+""" Component tests for Internal DNS functionality with Nuage VSP SDN plugin
+"""
+# Import Local Modules
+from nuageTestCase import nuageTestCase
+from marvin.cloudstackAPI import updateZone
+from marvin.lib.base import Account, Network
+# Import System Modules
+from nose.plugins.attrib import attr
+
+
+class TestNuageInternalDns(nuageTestCase):
+    DNS = "06"
+    HOSTNAME = "0c"
+    DOMAINNAME = "0f"
+
+    @classmethod
+    def setUpClass(cls):
+        super(TestNuageInternalDns, cls).setUpClass()
+        cls.dnsdata = cls.test_data["nuagevsp"]
+        return
+
+    def setUp(self):
+        self.apiclient = self.testClient.getApiClient()
+        self.account = Account.create(
+            self.apiclient,
+            self.test_data["account"],
+            admin=True,
+            domainid=self.domain.id
+        )
+        self.test_data["virtual_machine"]["displayname"] = "vm1"
+        self.test_data["virtual_machine"]["name"] = "vm1"
+
+        self.cleanup = [self.account]
+        return
+
+    # Creates and verifies the firewall rule
+    def create_and_verify_fw(self, vm, public_ip, network):
+        self.debug("Create and verify firewall rule")
+        self.create_StaticNatRule_For_VM(vm, public_ip, network)
+
+        # VSD verification
+        self.verify_vsd_floating_ip(network, vm, public_ip.ipaddress)
+
+        fw_rule = self.create_FirewallRule(
+            public_ip, self.test_data["ingress_rule"])
+        self.verify_vsd_firewall_rule(fw_rule)
+
+    def verify_vsd_dhcp_option(self, dhcp_type, value, subnet_or_vm_interface,
+                               is_vm_interface=False):
+        self.debug("Verifying the creation and value of DHCP option type - %s "
+                   "in VSD" % dhcp_type)
+        found_dhcp_type = False
+        if is_vm_interface:
+            dhcp_options = self.vsd.get_vm_interface_dhcpoptions(
+                filter=self.get_externalID_filter(subnet_or_vm_interface.id))
+        else:
+            dhcp_options = self.vsd.get_subnet_dhcpoptions(
+                filter=self.get_externalID_filter(subnet_or_vm_interface.id))
+        for dhcp_option in dhcp_options:
+            self.debug("dhcptype option is %s:" % dhcp_option.actual_type)
+            self.debug("dhcptype expected value is option is %s:" % dhcp_type)
+            if dhcp_option.type == dhcp_type:
+                found_dhcp_type = True
+                if isinstance(dhcp_option.actual_values, list):
+                    self.debug("dhcptype actual value is %s:" %
+                               dhcp_option.actual_values)
+                    if value in dhcp_option.actual_values:
+                        self.debug("Excepted DHCP option value found in VSD")
+                    else:
+                        self.fail("Excepted DHCP option value not found in "
+                                  "VSD")
+                else:
+                    self.assertEqual(dhcp_options.actual_values, value,
+                                     "Expected DHCP option value is not same "
+                                     "in both CloudStack and VSD"
+                                     )
+        if not found_dhcp_type:
+            self.fail("Expected DHCP option type and value not found in the "
+                      "VSD")
+        self.debug("Successfully verified the creation and value of DHCP "
+                   "option type - %s in VSD" % dhcp_type)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_01_Isolated_Network_with_zone(self):
+        """ Verify InternalDns on Isolated Network
+        """
+
+        # Validate the following
+        # 1. Create an Isolated network - network1 (10.1.1.1/24) by using DNS
+        #    network offering.
+        # 2. Deploy vm1 in network1.
+        # 3. Verify dhcp option 06 and 0f for subnet
+        # 4. Verify dhcp option 06,15 and 0f for vm Interface.
+
+        # update Network Domain at zone level
+        cmd = updateZone.updateZoneCmd()
+        cmd.id = self.zone.id
+        cmd.domain = "isolated.com"
+        self.apiclient.updateZone(cmd)
+        self.debug("Creating and enabling Nuage Vsp Isolated Network "
+                   "offering...")
+        network_offering = self.create_NetworkOffering(
+            self.dnsdata["isolated_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
+
+        network_1 = self.create_Network(network_offering)
+        vm_1 = self.create_VM(network_1)
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_vm(vm_1)
+
+        # Internal DNS check point on VSD
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "isolated.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "isolated.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_02_Isolated_Network(self):
+        """ Verify InternalDns on Isolated Network with ping by hostname
+        """
+
+        # Validate the following
+        # 1. Create an Isolated network - network1 (10.1.1.1/24) by using DNS
+        #    network offering.
+        # 2. Deploy vm1 in network1.
+        # 3. Verify dhcp option 06 and 0f for subnet
+        # 4. Verify dhcp option 06,15 and 0f for vm Interface.
+        # 5. Deploy VM2 in network1.
+        # 6. Verify end to end by pinging with hostname
+
+        cmd = updateZone.updateZoneCmd()
+        cmd.id = self.zone.id
+        cmd.domain = "isolated.com"
+        self.apiclient.updateZone(cmd)
+
+        self.debug("Creating and enabling Nuage Vsp Isolated Network "
+                   "offering...")
+        network_offering = self.create_NetworkOffering(
+            self.dnsdata["isolated_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
+
+        network_1 = self.create_Network(network_offering)
+        vm_1 = self.create_VM(network_1)
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_vm(vm_1)
+
+        # Internal DNS check point on VSD
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "isolated.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "isolated.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+        self.test_data["virtual_machine"]["displayname"] = "vm2"
+        self.test_data["virtual_machine"]["name"] = "vm2"
+        vm_2 = self.create_VM(network_1)
+        self.test_data["virtual_machine"]["displayname"] = "vm1"
+        self.test_data["virtual_machine"]["name"] = "vm1"
+        self.verify_vsd_vm(vm_2)
+        for nic in vm_2.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "isolated.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True)
+
+        public_ip_1 = self.acquire_PublicIPAddress(network_1)
+        self.create_and_verify_fw(vm_1, public_ip_1, network_1)
+
+        vm_public_ip = public_ip_1.ipaddress.ipaddress
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.isolated.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_03_Isolated_Network_restarts(self):
+        """ Verify InternalDns on Isolated Network with restart networks and
+        ping by hostname
+        """
+
+        # Validate the following
+        # 1. Create an Isolated network - network1 (10.1.1.1/24) by using DNS
+        #    network offering.
+        # 2. Deploy vm1 in network1.
+        # 3. Verify dhcp option 06 and 0f for subnet
+        # 4. Verify dhcp option 06,15 and 0f for vm Interface.
+        # 5. Deploy VM2 in network1.
+        # 6. Verify end to end by pinging with hostname while restarting
+        #    network1 without and with cleanup.
+
+        cmd = updateZone.updateZoneCmd()
+        cmd.id = self.zone.id
+        cmd.domain = "isolated.com"
+        self.apiclient.updateZone(cmd)
+
+        self.debug("Creating and enabling Nuage Vsp Isolated Network "
+                   "offering...")
+        network_offering = self.create_NetworkOffering(
+            self.dnsdata["isolated_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
+
+        network_1 = self.create_Network(network_offering)
+        vm_1 = self.create_VM(network_1)
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_vm(vm_1)
+
+        # Internal DNS check point on VSD
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "isolated.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "isolated.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+        self.test_data["virtual_machine"]["displayname"] = "vm2"
+        self.test_data["virtual_machine"]["name"] = "vm2"
+        vm_2 = self.create_VM(network_1)
+        self.test_data["virtual_machine"]["displayname"] = "vm1"
+        self.test_data["virtual_machine"]["name"] = "vm1"
+        self.verify_vsd_vm(vm_2)
+        for nic in vm_2.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "isolated.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True)
+
+        public_ip_1 = self.acquire_PublicIPAddress(network_1)
+        self.create_and_verify_fw(vm_1, public_ip_1, network_1)
+
+        vm_public_ip = public_ip_1.ipaddress.ipaddress
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.isolated.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+        # Restarting Isolated network (cleanup = false)
+        self.debug("Restarting the created Isolated network without "
+                   "cleanup...")
+        Network.restart(network_1, self.api_client, cleanup=False)
+        self.validate_Network(network_1, state="Implemented")
+        vr = self.get_Router(network_1)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+        self.verify_vsd_vm(vm_2)
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.isolated.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+        # Restarting Isolated network (cleanup = true)
+        self.debug("Restarting the created Isolated network with cleanup...")
+        Network.restart(network_1, self.api_client, cleanup=True)
+        self.validate_Network(network_1, state="Implemented")
+        vr = self.get_Router(network_1)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+        self.verify_vsd_vm(vm_2)
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.isolated.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_04_Update_Network_with_Domain(self):
+        """ Verify update NetworkDomain for InternalDns on Isolated Network
+        """
+
+        # Validate the following
+        # 1. Create an Isolated network - network1 (10.1.1.1/24) by using DNS
+        #    network offering.
+        # 2. Deploy vm1 in network1.
+        # 3. Verify dhcp option 06 and 0f for subnet
+        # 4. Verify dhcp option 06,15 and 0f for vm Interface.
+        # 5. Update Network domain and verify it is properly updated
+
+        # update Network Domain at zone level
+        cmd = updateZone.updateZoneCmd()
+        cmd.id = self.zone.id
+        cmd.domain = "isolated.com"
+        self.apiclient.updateZone(cmd)
+
+        self.debug("Creating and enabling Nuage Vsp Isolated Network "
+                   "offering...")
+        network_offering = self.create_NetworkOffering(
+            self.dnsdata["isolated_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
+
+        network_1 = self.create_Network(network_offering)
+        vm_1 = self.create_VM(network_1)
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_vm(vm_1)
+
+        # Internal DNS check point on VSD
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "isolated.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "isolated.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+        update_response = Network.update(
+            network_1, self.apiclient, id=network_1.id,
+            networkdomain="update.com", changecidr=False)
+        completeoutput = str(update_response).strip('[]')
+        self.debug("network update response is " + completeoutput)
+        self.assertEqual("update.com", update_response.networkdomain,
+                         "Network Domain is not updated as expected"
+                         )
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "update.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "update.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_05_Update_Network_with_Domain(self):
+        """ Verify update NetworkDomain for InternalDns on Isolated Network
+        with ping VM
+        """
+
+        # Validate the following
+        # 1. Create an Isolated network - network1 (10.1.1.1/24) by using DNS
+        #    network offering.
+        # 2. Deploy vm1 in network1.
+        # 3. Verify dhcp option 06 and 0f for subnet
+        # 4. Verify dhcp option 06,15 and 0f for vm Interface.
+        # 5. Update Network domain and verify it is properly updated
+
+        # update Network Domain at zone level
+        cmd = updateZone.updateZoneCmd()
+        cmd.id = self.zone.id
+        cmd.domain = "isolated.com"
+        self.apiclient.updateZone(cmd)
+
+        self.debug("Creating and enabling Nuage Vsp Isolated Network "
+                   "offering...")
+        network_offering = self.create_NetworkOffering(
+            self.dnsdata["isolated_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
+
+        network_1 = self.create_Network(network_offering)
+        vm_1 = self.create_VM(network_1)
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_vm(vm_1)
+
+        # Internal DNS check point on VSD
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(
+            self.DOMAINNAME, "isolated.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "isolated.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+        update_response = Network.update(
+            network_1, self.apiclient, id=network_1.id,
+            networkdomain="update.com", changecidr=False)
+        completeoutput = str(update_response).strip('[]')
+        self.debug("network update response is " + completeoutput)
+        self.assertEqual("update.com", update_response.networkdomain,
+                         "Network Domain is not updated as expected"
+                         )
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "update.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "update.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+        # stop and start VM to get new DHCP option
+        try:
+            vm_1.stop(self.apiclient)
+        except Exception as e:
+            self.fail("Failed to stop the virtual instances, %s" % e)
+
+        self.test_data["virtual_machine"]["displayname"] = "vm2"
+        self.test_data["virtual_machine"]["name"] = "vm2"
+        vm_2 = self.create_VM(network_1)
+        self.test_data["virtual_machine"]["displayname"] = "vm1"
+        self.test_data["virtual_machine"]["name"] = "vm1"
+        self.verify_vsd_vm(vm_2)
+        for nic in vm_2.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(
+                self.DOMAINNAME, "update.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True)
+
+        try:
+            vm_1.start(self.apiclient)
+        except Exception as e:
+            self.fail("Failed to start the virtual instances, %s" % e)
+
+        public_ip_1 = self.acquire_PublicIPAddress(network_1)
+        self.create_and_verify_fw(vm_1, public_ip_1, network_1)
+
+        vm_public_ip = public_ip_1.ipaddress.ipaddress
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception: %s " % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.update.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_06_VPC_Network_With_InternalDns(self):
+        """ Verify InternalDns on VPC Network
+        """
+
+        # Validate the following
+        # 1. Create a VPC and tier network by using DNS network offering.
+        # 2. Deploy vm1 in tier network.
+        # 3. Verify dhcp option 06 and 0f for subnet
+        # 4. Verify dhcp option 06,15 and 0f for vm Interface.
+
+        cmd = updateZone.updateZoneCmd()
+        cmd.id = self.zone.id
+        cmd.domain = "vpc.com"
+        self.apiclient.updateZone(cmd)
+        vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False)
+
+        self.debug("Creating Nuage Vsp VPC Network offering...")
+        network_offering = self.create_NetworkOffering(
+            self.dnsdata["vpc_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
+        network_1 = self.create_Network(
+            network_offering, gateway='10.1.1.1', vpc=vpc)
+
+        vm_1 = self.create_VM(network_1)
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1, vpc)
+        self.verify_vsd_vm(vm_1)
+
+        # Internal DNS check point on VSD
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_07_VPC_Network_With_InternalDns(self):
+        """ Verify InternalDns on VPC Network by ping with hostname
+        """
+
+        # Validate the following
+        # 1. Create a VPC and Tier network by using DNS network offering.
+        # 2. Deploy vm1 in Tier network network1.
+        # 3. Verify dhcp option 06 and 0f for subnet
+        # 4. Verify dhcp option 06,15 and 0f for vm Interface.
+        # 5. Deploy Vm2.
+        # 6. Verify end to end by pinging with hostname
+
+        cmd = updateZone.updateZoneCmd()
+        cmd.id = self.zone.id
+        cmd.domain = "vpc.com"
+        self.apiclient.updateZone(cmd)
+
+        vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False)
+
+        self.debug("Creating Nuage Vsp VPC Network offering...")
+        network_offering = self.create_NetworkOffering(
+            self.dnsdata["vpc_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
+        network_1 = self.create_Network(
+            network_offering, gateway='10.1.1.1', vpc=vpc)
+
+        vm_1 = self.create_VM(network_1)
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1, vpc)
+        self.verify_vsd_vm(vm_1)
+        # Internal DNS check point on VSD
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+        self.test_data["virtual_machine"]["displayname"] = "vm2"
+        self.test_data["virtual_machine"]["name"] = "vm2"
+        vm_2 = self.create_VM(network_1)
+        self.test_data["virtual_machine"]["displayname"] = "vm1"
+        self.test_data["virtual_machine"]["name"] = "vm1"
+        self.verify_vsd_vm(vm_2)
+        for nic in vm_2.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True)
+
+        public_ip_1 = self.acquire_PublicIPAddress(network_1, vpc)
+        self.create_StaticNatRule_For_VM(vm_1, public_ip_1, network_1)
+        # Adding Network ACL rule in the Public tier
+        self.debug("Adding Network ACL rule to make the created NAT rule "
+                   "(SSH) accessible...")
+        public_ssh_rule = self.create_NetworkAclRule(
+            self.test_data["ingress_rule"], network=network_1)
+
+        # VSD verification
+        self.verify_vsd_firewall_rule(public_ssh_rule)
+        vm_public_ip = public_ip_1.ipaddress.ipaddress
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.vpc.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_08_VPC_Network_Restarts_With_InternalDns(self):
+        """ Verify InternalDns on VPC Network with restarts and ping by
+        hostname
+        """
+
+        # Validate the following
+        # 1. Create a VPC and Tier network by using DNS network offering.
+        # 2. Deploy vm1 in Tier network network1.
+        # 3. Verify dhcp option 06 and 0f for subnet
+        # 4. Verify dhcp option 06,15 and 0f for vm Interface.
+        # 5. Deploy Vm2.
+        # 6. Verify end to end by pinging with hostname while restarting
+        #    VPC and Tier without and with cleanup.
+
+        cmd = updateZone.updateZoneCmd()
+        cmd.id = self.zone.id
+        cmd.domain = "vpc.com"
+        self.apiclient.updateZone(cmd)
+
+        vpc_off = self.create_VpcOffering(self.dnsdata["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16', cleanup=False)
+
+        self.debug("Creating Nuage Vsp VPC Network offering...")
+        network_offering = self.create_NetworkOffering(
+            self.dnsdata["vpc_network_offering"])
+        self.validate_NetworkOffering(network_offering, state="Enabled")
+        network_1 = self.create_Network(
+            network_offering, gateway='10.1.1.1', vpc=vpc)
+
+        vm_1 = self.create_VM(network_1)
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1, vpc)
+        self.verify_vsd_vm(vm_1)
+        # Internal DNS check point on VSD
+        self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", network_1)
+        self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", network_1)
+        for nic in vm_1.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm1", nic, True)
+
+        self.test_data["virtual_machine"]["displayname"] = "vm2"
+        self.test_data["virtual_machine"]["name"] = "vm2"
+        vm_2 = self.create_VM(network_1)
+        self.test_data["virtual_machine"]["displayname"] = "vm1"
+        self.test_data["virtual_machine"]["name"] = "vm1"
+        self.verify_vsd_vm(vm_2)
+        for nic in vm_2.nic:
+            self.verify_vsd_dhcp_option(self.DNS, "10.1.1.2", nic, True)
+            self.verify_vsd_dhcp_option(self.DOMAINNAME, "vpc.com", nic, True)
+            self.verify_vsd_dhcp_option(self.HOSTNAME, "vm2", nic, True)
+
+        public_ip_1 = self.acquire_PublicIPAddress(network_1, vpc)
+        self.create_StaticNatRule_For_VM(vm_1, public_ip_1, network_1)
+        # Adding Network ACL rule in the Public tier
+        self.debug("Adding Network ACL rule to make the created NAT rule "
+                   "(SSH) accessible...")
+        public_ssh_rule = self.create_NetworkAclRule(
+            self.test_data["ingress_rule"], network=network_1)
+
+        # VSD verification
+        self.verify_vsd_firewall_rule(public_ssh_rule)
+        vm_public_ip = public_ip_1.ipaddress.ipaddress
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.vpc.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+        # Restarting VPC network (cleanup = false)
+        self.debug("Restarting the created VPC network without cleanup...")
+        Network.restart(network_1, self.api_client, cleanup=False)
+        self.validate_Network(network_1, state="Implemented")
+        vr = self.get_Router(network_1)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1, vpc)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+        self.verify_vsd_vm(vm_2)
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.vpc.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+        # Restarting VPC network (cleanup = true)
+        self.debug("Restarting the created VPC network with cleanup...")
+        Network.restart(network_1, self.api_client, cleanup=True)
+        self.validate_Network(network_1, state="Implemented")
+        vr = self.get_Router(network_1)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1, vpc)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+        self.verify_vsd_vm(vm_2)
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.vpc.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+        # Restarting VPC (cleanup = false)
+        self.debug("Restarting the VPC without cleanup...")
+        self.restart_Vpc(vpc, cleanup=False)
+        self.validate_Network(network_1, state="Implemented")
+        vr = self.get_Router(network_1)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1, vpc)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.vpc.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
+
+        # Restarting VPC (cleanup = true)
+        self.debug("Restarting the VPC with cleanup...")
+        self.restart_Vpc(vpc, cleanup=True)
+        self.validate_Network(network_1, state="Implemented")
+        vr = self.get_Router(network_1)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1, vpc)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+
+        try:
+            vm_1.ssh_ip = vm_public_ip
+            vm_1.ssh_port = self.test_data["virtual_machine"]["ssh_port"]
+            vm_1.username = self.test_data["virtual_machine"]["username"]
+            vm_1.password = self.test_data["virtual_machine"]["password"]
+            self.debug("SSHing into VM: %s with %s" %
+                       (vm_1.ssh_ip, vm_1.password))
+
+            ssh = vm_1.get_ssh_client(ipaddress=vm_public_ip)
+
+        except Exception as e:
+            self.fail("SSH into VM failed with exception %s" % e)
+
+        cmd = 'ping -c 2 vm2'
+        self.debug("ping vm2 by hostname with command: " + cmd)
+        outputlist = ssh.execute(cmd)
+        self.debug("command is executed properly " + cmd)
+        completeoutput = str(outputlist).strip('[]')
+        self.debug("complete output is " + completeoutput)
+        expectedlist = ['2 received', 'vm2.vpc.com', vm_2.ipaddress]
+        for item in expectedlist:
+            if item in completeoutput:
+                self.debug("excepted value found in vm: " + item)
+            else:
+                self.fail("excepted value not found in vm: " + item)
diff --git a/test/integration/plugins/nuagevsp/test_nuage_non_public_sharednetwork_ip_range.py b/test/integration/plugins/nuagevsp/test_nuage_non_public_sharednetwork_ip_range.py
new file mode 100644
index 0000000..a3d550a
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_non_public_sharednetwork_ip_range.py
@@ -0,0 +1,654 @@
+# 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.
+
+""" Component tests for Shared Network functionality with Nuage VSP SDN plugin:
+Non Public Shared Network IP Range
+"""
+# Import Local Modules
+from nuageTestCase import nuageTestCase
+from marvin.lib.utils import cleanup_resources
+from marvin.lib.base import Account, Domain, User, Network, NetworkOffering
+from marvin.lib.common import list_virtual_machines
+from marvin.cloudstackAPI import (createVlanIpRange,
+                                  listVlanIpRanges,
+                                  deleteVlanIpRange,
+                                  updateVmNicIp)
+# Import System Modules
+from nose.plugins.attrib import attr
+
+
+class TestNuageSharedNetworkNonPublicIPRange(nuageTestCase):
+    """Test Shared Network functionality with Nuage VSP SDN plugin:
+    Non Public Shared Network IP Range
+    """
+
+    @classmethod
+    def setUpClass(cls):
+        """
+        Create the following domain tree and accounts that are required for
+        executing Nuage VSP SDN plugin test cases for shared networks:
+            Under ROOT - create domain D1
+            Under domain D1 - Create two subdomains D11 and D12
+            Under each of the domains - create one admin user and couple of
+            regular users.
+        Create shared network with the following scope:
+            1. Network with scope="all"
+            2. Network with scope="domain" with no subdomain access
+            3. Network with scope="domain" with subdomain access
+            4. Network with scope="account"
+        """
+
+        super(TestNuageSharedNetworkNonPublicIPRange, cls).setUpClass()
+        cls.sharednetworkdata = cls.test_data["acl"]
+        cls.nuagenetworkdata = cls.test_data["nuagevsp"]
+
+        cls.domain_1 = None
+        cls.domain_2 = None
+
+        try:
+            # backup default apikey and secretkey
+            cls.default_apikey = cls.api_client.connection.apiKey
+            cls.default_secretkey = cls.api_client.connection.securityKey
+
+            # Create domains
+            cls.domain_1 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain1"]
+            )
+            cls.domain_11 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain11"],
+                parentdomainid=cls.domain_1.id
+            )
+            cls.domain_12 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain12"],
+                parentdomainid=cls.domain_1.id
+            )
+            # Create  1 admin account and 2 user accounts for domain_1
+            cls.account_d1 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1"],
+                admin=True,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1)
+            cls.user_d1_apikey = user.apikey
+            cls.user_d1_secretkey = user.secretkey
+
+            cls.account_d1a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1A"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1a)
+            cls.user_d1a_apikey = user.apikey
+            cls.user_d1a_secretkey = user.secretkey
+
+            cls.account_d1b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1B"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1b)
+            cls.user_d1b_apikey = user.apikey
+            cls.user_d1b_secretkey = user.secretkey
+
+            # Create  1 admin and 2 user accounts for doamin_11
+            cls.account_d11 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11"],
+                admin=True,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11)
+            cls.user_d11_apikey = user.apikey
+            cls.user_d11_secretkey = user.secretkey
+
+            cls.account_d11a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11A"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11a)
+            cls.user_d11a_apikey = user.apikey
+            cls.user_d11a_secretkey = user.secretkey
+
+            cls.account_d11b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11B"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11b)
+            cls.user_d11b_apikey = user.apikey
+            cls.user_d11b_secretkey = user.secretkey
+
+            # Create  2 user accounts for doamin_12
+            cls.account_d12a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12A"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12a)
+            cls.user_d12a_apikey = user.apikey
+            cls.user_d12a_secretkey = user.secretkey
+
+            cls.account_d12b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12B"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12b)
+            cls.user_d12b_apikey = user.apikey
+            cls.user_d12b_secretkey = user.secretkey
+
+            # Create 1 user account and admin account in "ROOT" domain
+
+            cls.account_roota = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=False,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_roota)
+            cls.user_roota_apikey = user.apikey
+            cls.user_roota_secretkey = user.secretkey
+
+            cls.account_root = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=True,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_root)
+            cls.user_root_apikey = user.apikey
+            cls.user_root_secretkey = user.secretkey
+
+            # service offering is already created in Nuagetestcase
+            cls.sharednetworkdata['mode'] = cls.zone.networktype
+
+            # As admin user, create shared network with scope "all", "domain"
+            # with subdomain access, "domain" without subdomain access and
+            # "account"
+
+            cls.api_client.connection.apiKey = cls.default_apikey
+            cls.api_client.connection.securityKey = cls.default_secretkey
+
+            cls.shared_network_offering = NetworkOffering.create(
+                cls.api_client,
+                cls.nuagenetworkdata["shared_nuage_network_offering"],
+                conservemode=False
+            )
+            # Enable Network offering
+            cls.shared_network_offering.update(cls.api_client, state='Enabled')
+            cls.shared_network_offering_id = cls.shared_network_offering.id
+
+            cls.shared_network_all = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id
+            )
+
+            cls.shared_network_domain_d11 = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=False
+            )
+
+            cls.shared_network_domain_with_subdomain_d11 = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=True
+            )
+
+            cls.shared_network_account_d111a = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                accountid=cls.account_d11a.user[0].username
+            )
+
+            cls._cleanup = [
+                cls.account_root,
+                cls.account_roota,
+                cls.shared_network_all,
+                cls.shared_network_offering,
+                cls.service_offering,
+            ]
+        except Exception as e:
+            cls.domain_1.delete(cls.api_client, cleanup="true")
+            cleanup_resources(cls.api_client, cls._cleanup)
+            raise Exception("Failed to create the setup required to execute "
+                            "the test cases: %s" % e)
+
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.api_client.connection.apiKey = cls.default_apikey
+        cls.api_client.connection.securityKey = cls.default_secretkey
+        cls.domain_1.delete(cls.api_client, cleanup="true")
+        cleanup_resources(cls.api_client, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.api_client = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+
+    def tearDown(self):
+        # restore back default apikey and secretkey
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        return
+
+    def add_subnet_verify(self, network, services):
+        """verify required nic is present in the VM"""
+
+        self.debug("Going to add new ip range in shared network %s" %
+                   network.name)
+        cmd = createVlanIpRange.createVlanIpRangeCmd()
+        cmd.networkid = network.id
+        cmd.gateway = services["gateway"]
+        cmd.netmask = services["netmask"]
+        cmd.startip = services["startip"]
+        cmd.endip = services["endip"]
+        cmd.forVirtualNetwork = services["forvirtualnetwork"]
+        addedsubnet = self.api_client.createVlanIpRange(cmd)
+
+        self.debug("verify above iprange is successfully added in shared "
+                   "network %s or not" % network.name)
+
+        cmd1 = listVlanIpRanges.listVlanIpRangesCmd()
+        cmd1.networkid = network.id
+        cmd1.id = addedsubnet.vlan.id
+
+        allsubnets = self.api_client.listVlanIpRanges(cmd1)
+        self.assertEqual(
+            allsubnets[0].id,
+            addedsubnet.vlan.id,
+            "Check New subnet is successfully added to the shared Network"
+        )
+        return addedsubnet
+
+    def delete_subnet_verify(self, network, subnet):
+        """verify required nic is present in the VM"""
+
+        self.debug("Going to delete ip range in shared network %s" %
+                   network.name)
+        cmd = deleteVlanIpRange.deleteVlanIpRangeCmd()
+        cmd.id = subnet.vlan.id
+        self.api_client.deleteVlanIpRange(cmd)
+
+        self.debug("verify above iprange is successfully deleted from shared "
+                   "network %s or not" % network.name)
+
+        cmd1 = listVlanIpRanges.listVlanIpRangesCmd()
+        cmd1.networkid = network.id
+        cmd1.id = subnet.vlan.id
+
+        try:
+            allsubnets = self.api_client.listVlanIpRanges(cmd1)
+            self.assertEqual(
+                allsubnets[0].id,
+                subnet.vlan.id,
+                "Check Subnet is not present to the shared Network"
+            )
+            self.fail("iprange is not successfully deleted from shared "
+                      "network %s" % network.name)
+        except Exception as e:
+            self.debug("iprange is not successfully deleted from shared "
+                       "network %s" % network.name)
+            self.debug("exception msg is %s" % e)
+
+    def shared_subnet_not_present(self, network, subnetid):
+        shared_resources = self.vsd.get_shared_network_resource(
+            filter=self.get_externalID_filter(subnetid))
+        try:
+            self.assertEqual(shared_resources.description, network.name,
+                             "VSD shared resources description should match "
+                             "network name in CloudStack"
+                             )
+            self.fail("still shared resource are present on VSD")
+        except Exception as e:
+            self.debug("sharedNetwork resources is successfully deleted from "
+                       "VSD")
+            self.debug("exception msg is %s" % e)
+
+    # Test cases relating to add/delete Shared Network IP ranges
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_01_add_delete_Subnet_in_sharednetwork_scope_all(self):
+        """Validate that subnet of same and different public gateway can be
+        added to shared network with scope=all
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as all")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_1,
+            sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network scope "
+                   "as all")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange2"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange2"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_2,
+            sharedsubnetid=subnet_id)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_all, subnet1)
+        self.delete_subnet_verify(self.shared_network_all, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_02_add_delete_Subnet_in_sharednetwork_scope_domain(self):
+        """Validate subnet of same and different gateway can be added to public
+        shared network scope=domain with subdomain access
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope domain "
+                   "with subdomain access")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11,
+            self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_domain_with_subdomain_d11,
+            account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11, vm_1,
+            sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11,
+            self.nuagenetworkdata["publiciprange2"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange2"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_domain_with_subdomain_d11,
+            account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11, vm_2,
+            sharedsubnetid=subnet_id)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11, subnet1)
+        self.delete_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_03_add_delete_Subnet_in_sharednetwork_scope_nosubdomain(self):
+        """Validate subnet of same and different gateway can added to public
+        shared network scope=domain without subdomain access
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope domain "
+                   "without subdomain access")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_domain_d11,
+            self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_domain_d11, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_domain_d11, vm_1,
+            sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_domain_d11,
+            self.nuagenetworkdata["publiciprange2"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange2"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_domain_d11, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_domain_d11, vm_2,
+            sharedsubnetid=subnet_id)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_domain_d11, subnet1)
+        self.delete_subnet_verify(self.shared_network_domain_d11, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_04_add_delete_Subnet_in_sharednetwork_scope_account(self):
+        """Validate subnet of same and different gateway can be added to shared
+        network scope=Account
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as "
+                   "Account")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_account_d111a,
+            self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_account_d111a, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_account_d111a.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            vm_1, sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_account_d111a,
+            self.nuagenetworkdata["publiciprange2"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange2"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_account_d111a, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_account_d111a.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            vm_2, sharedsubnetid=subnet_id)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_account_d111a, subnet1)
+        self.delete_subnet_verify(self.shared_network_account_d111a, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_05_change_ip_from_different_Subnet_in_sharednetwork(self):
+        """Validate that ip of a vm can be changed to a different subnet ip for
+        shared_network_scope_all
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as all")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_1,
+            sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network scope "
+                   "as all")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange2"])
+
+        # stop VM to update the ipaddress
+        try:
+            vm_1.stop(self.api_client)
+        except Exception as e:
+            self.fail("Failed to stop the virtual instances, %s" % e)
+        vm_list = list_virtual_machines(self.api_client, id=vm_1.id)
+        nics = [x for x in vm_list[0].nic
+                if x.networkid == self.shared_network_all.id]
+        self.debug("Filtered nics list: %s:" % nics)
+
+        cmd = updateVmNicIp.updateVmNicIpCmd()
+        for x in vm_list[0].nic:
+            cmd.nicid = x.id
+        cmd.ipaddress = self.nuagenetworkdata["publiciprange2"]["startip"]
+        self.api_client.updateVmNicIp(cmd)
+
+        try:
+            vm_1.start(self.api_client)
+        except Exception as e:
+            self.fail("Failed to start the virtual instances, %s" % e)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_1,
+            sharedsubnetid=subnet_id)
+
+        self.delete_VM(vm_1)
+        self.delete_subnet_verify(self.shared_network_all, subnet1)
+        self.delete_subnet_verify(self.shared_network_all, subnet2)
+
+    @staticmethod
+    def generateKeysForUser(api_client, account):
+        user = User.list(
+            api_client,
+            account=account.name,
+            domainid=account.domainid)[0]
+        return (User.registerUserKeys(
+            api_client,
+            user.id))
diff --git a/test/integration/plugins/nuagevsp/test_nuage_password_reset.py b/test/integration/plugins/nuagevsp/test_nuage_password_reset.py
index bd8bba6..7973a3e 100644
--- a/test/integration/plugins/nuagevsp/test_nuage_password_reset.py
+++ b/test/integration/plugins/nuagevsp/test_nuage_password_reset.py
@@ -15,7 +15,8 @@
 # specific language governing permissions and limitations
 # under the License.
 
-""" Component tests for user data and password reset functionality with Nuage VSP SDN plugin
+""" Component tests for user data and password reset functionality with
+Nuage VSP SDN plugin
 """
 # Import Local Modules
 from nuageTestCase import nuageTestCase
@@ -31,7 +32,8 @@
 
 
 class TestNuagePasswordReset(nuageTestCase):
-    """Test user data and password reset functionality with Nuage VSP SDN plugin
+    """Test user data and password reset functionality with
+    Nuage VSP SDN plugin
     """
 
     @classmethod
@@ -60,22 +62,26 @@
         if isinstance(list_volume, list):
             self.volume = list_volume[0]
         else:
-            raise Exception("Exception: Unable to find root volume for VM with ID - %s" % vm.id)
-        self.pw_enabled_template = Template.create(self.api_client,
-                                                   self.test_data["template"],
-                                                   self.volume.id,
-                                                   account=self.account.name,
-                                                   domainid=self.account.domainid
-                                                   )
+            raise Exception("Exception: Unable to find root volume for VM "
+                            "with ID - %s" % vm.id)
+        self.pw_enabled_template = Template.create(
+            self.api_client,
+            self.test_data["template"],
+            self.volume.id,
+            account=self.account.name,
+            domainid=self.account.domainid
+        )
         self.assertEqual(self.pw_enabled_template.passwordenabled, True,
-                         "template is not passwordenabled"
+                         "Template is not password enabled"
                          )
         self.cleanup.append(self.pw_enabled_template)
         self.debug("Created guest VM template")
 
-    # updateTemplate - Updates value of the guest VM template's password enabled setting
+    # updateTemplate - Updates value of the guest VM template's password
+    # enabled setting
     def updateTemplate(self, value):
-        self.debug("Updating value of guest VM template's password enabled setting")
+        self.debug("Updating value of guest VM template's password enabled "
+                   "setting")
         cmd = updateTemplate.updateTemplateCmd()
         cmd.id = self.template.id
         cmd.passwordenabled = value
@@ -96,7 +102,8 @@
         user_data_url = 'curl "http://' + gateway + ':80/latest/user-data"'
         return user_data_url
 
-    # create_and_verify_fw - Creates and verifies (Ingress) firewall rule with a Static NAT rule enabled public IP
+    # create_and_verify_fw - Creates and verifies (Ingress) firewall rule with
+    # a Static NAT rule enabled public IP
     def create_and_verify_fw(self, vm, public_ip, network):
         self.debug("Creating and verifying firewall rule")
         self.create_StaticNatRule_For_VM(vm, public_ip, network)
@@ -104,7 +111,8 @@
         # VSD verification
         self.verify_vsd_floating_ip(network, vm, public_ip.ipaddress)
 
-        fw_rule = self.create_FirewallRule(public_ip, self.test_data["ingress_rule"])
+        fw_rule = self.create_FirewallRule(
+            public_ip, self.test_data["ingress_rule"])
 
         # VSD verification
         self.verify_vsd_firewall_rule(fw_rule)
@@ -122,14 +130,17 @@
             if vm.state != 'Stopped':
                 raise Exception("Failed to stop VM (ID: %s) " % self.vm.id)
         else:
-            raise Exception("Invalid response from list_virtual_machines VM (ID: %s) " % self.vm.id)
+            raise Exception("Invalid response from list_virtual_machines VM "
+                            "(ID: %s) " % self.vm.id)
         self.debug("Stopped VM")
 
-    # install_cloud_set_guest_password_script - Installs the cloud-set-guest-password script from people.apache.org in
-    # the given VM (SSH client)
+    # install_cloud_set_guest_password_script - Installs the
+    # cloud-set-guest-password script from people.apache.org in the given VM
+    # (SSH client)
     def install_cloud_set_guest_password_script(self, ssh_client):
         self.debug("Installing cloud-set-guest-password script")
-        cmd = "cd /etc/init.d;wget http://people.apache.org/~tsp/cloud-set-guest-password"
+        cmd = "cd /etc/init.d;wget http://people.apache.org/~tsp/" \
+              "cloud-set-guest-password"
         result = self.execute_cmd(ssh_client, cmd)
         self.debug("wget file cloud-set-guest-password: " + result)
         if "200 OK" not in result:
@@ -145,141 +156,191 @@
 
     @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
     def test_nuage_UserDataPasswordReset(self):
-        """Test user data and password reset functionality with Nuage VSP SDN plugin
+        """Test user data and password reset functionality with
+        Nuage VSP SDN plugin
         """
 
-        # 1. Create an Isolated Network with Nuage VSP Isolated Network offering, check if it is successfully created
-        #    and is in the "Allocated" state.
+        # 1. Create an Isolated Network with Nuage VSP Isolated Network
+        #    offering, check if it is successfully created and is in the
+        #    "Allocated" state.
         # 2. Set password enabled to false in the guest VM template.
-        # 3. Deploy a VM in the created Isolated network with user data, check if the Isolated network state is changed
-        #    to "Implemented", and both the VM & VR are successfully deployed and are in the "Running" state.
-        # 4. Verify that the guest VM template is not password enabled by checking the deployed VM's password
-        #    (password == "password").
-        # 5. SSH into the deployed VM and verify its user data (expected user data == actual user data).
-        # 6. Check for cloud-set-guest-password script in the deployed VM for testing password reset functionality.
-        # 7. if cloud-set-guest-password script does not exist in the deployed VM:
-        #       7.1  Install the cloud-set-guest-password script from people.apache.org in the deployed VM.
-        #       7.2  Stop the deployed VM, and create a new password enabled guest VM template with it.
-        #       7.3  Deploy a new VM in the created Isolated network with the newly created guest VM template,
-        #            check if the VM is successfully deployed and is in the "Running" state.
-        #       7.4  Verify that the new guest VM template is password enabled by checking the newly deployed VM's
-        #            password (password != "password").
+        # 3. Deploy a VM in the created Isolated network with user data, check
+        #    if the Isolated network state is changed to "Implemented", and
+        #    both the VM & VR are successfully deployed and are in the
+        #    "Running" state.
+        # 4. Verify that the guest VM template is not password enabled by
+        #    checking the deployed VM's password (password == "password").
+        # 5. SSH into the deployed VM and verify its user data
+        #    (expected user data == actual user data).
+        # 6. Check for cloud-set-guest-password script in the deployed VM for
+        #    testing password reset functionality.
+        # 7. if cloud-set-guest-password script does not exist in the deployed
+        #    VM:
+        #       7.1  Install the cloud-set-guest-password script from
+        #            people.apache.org in the deployed VM.
+        #       7.2  Stop the deployed VM, and create a new password enabled
+        #            guest VM template with it.
+        #       7.3  Deploy a new VM in the created Isolated network with the
+        #            newly created guest VM template, check if the VM is
+        #            successfully deployed and is in the "Running" state.
+        #       7.4  Verify that the new guest VM template is password enabled
+        #            by checking the newly deployed VM's password
+        #            (password != "password").
         #       7.5  SSH into the newly deployed VM for verifying its password.
         # 8. else cloud-set-guest-password script exists in the deployed VM:
         #       8.1  Change password enabled to true in the guest VM template.
         #       8.2  Verify that the guest VM template is password enabled.
         # 9. Reset VM password, and start the VM.
-        # 10. Verify that the new guest VM template is password enabled by checking the VM's password
-        #     (password != "password").
-        # 11. SSH into the VM for verifying its new password after its password reset.
-        # 12. Set password enabled to the default value in the guest VM template.
+        # 10. Verify that the new guest VM template is password enabled by
+        #     checking the VM's password (password != "password").
+        # 11. SSH into the VM for verifying its new password after its password
+        #     reset.
+        # 12. Set password enabled to the default value in the guest VM
+        #     template.
         # 13. Delete all the created objects (cleanup).
 
-        self.debug("Testing user data & password reset functionality in an Isolated network...")
+        for zone in self.zones:
+            self.debug("Zone - %s" % zone.name)
+            # Get Zone details
+            self.getZoneDetails(zone=zone)
+            # Configure VSD sessions
+            self.configureVSDSessions()
 
-        self.debug("Creating an Isolated network...")
-        net_off = self.create_NetworkOffering(self.test_data["nuagevsp"]["isolated_network_offering"])
-        self.network = self.create_Network(net_off)
-        self.validate_Network(self.network, state="Allocated")
+            self.debug("Testing user data & password reset functionality in "
+                       "an Isolated network...")
 
-        self.debug("Setting password enabled to false in the guest VM template...")
-        self.defaultTemplateVal = self.template.passwordenabled
-        if self.template.passwordenabled:
-            self.updateTemplate(False)
+            self.debug("Creating an Isolated network...")
+            net_off = self.create_NetworkOffering(
+                self.test_data["nuagevsp"]["isolated_network_offering"])
+            self.network = self.create_Network(net_off)
+            self.validate_Network(self.network, state="Allocated")
 
-        self.debug("Deploying a VM in the created Isolated network with user data...")
-        expected_user_data = "hello world vm1"
-        user_data = base64.b64encode(expected_user_data)
-        self.test_data["virtual_machine_userdata"]["userdata"] = user_data
-        self.vm_1 = self.create_VM(self.network, testdata=self.test_data["virtual_machine_userdata"])
-        self.validate_Network(self.network, state="Implemented")
-        vr = self.get_Router(self.network)
-        self.check_Router_state(vr, state="Running")
-        self.check_VM_state(self.vm_1, state="Running")
+            self.debug("Setting password enabled to false in the guest VM "
+                       "template...")
+            self.defaultTemplateVal = self.template.passwordenabled
+            if self.template.passwordenabled:
+                self.updateTemplate(False)
 
-        # VSD verification
-        self.verify_vsd_network(self.domain.id, self.network)
-        self.verify_vsd_router(vr)
-        self.verify_vsd_vm(self.vm_1)
-
-        self.debug("verifying that the guest VM template is not password enabled...")
-        self.debug("VM - %s password - %s !" % (self.vm_1.name, self.vm_1.password))
-        self.assertEqual(self.vm_1.password, self.test_data["virtual_machine_userdata"]["password"],
-                         "Password is enabled for the VM (vm_1)"
-                         )
-
-        self.debug("SSHing into the VM for verifying its user data...")
-        public_ip_1 = self.acquire_PublicIPAddress(self.network)
-        self.create_and_verify_fw(self.vm_1, public_ip_1, self.network)
-        ssh = self.ssh_into_VM(self.vm_1, public_ip_1)
-        user_data_cmd = self.get_userdata_url(self.vm_1)
-        self.debug("Getting user data with command: " + user_data_cmd)
-        actual_user_data = base64.b64decode(self.execute_cmd(ssh, user_data_cmd))
-        self.debug("Actual user data - " + actual_user_data + ", Expected user data - " + expected_user_data)
-        self.assertEqual(actual_user_data, expected_user_data,
-                         "Un-expected VM (VM_1) user data"
-                         )
-
-        self.debug("Checking for cloud-set-guest-password script in the VM for testing password reset functionality...")
-        ls_cmd = "ls /etc/init.d/cloud-set-guest-password"
-        ls_result = self.execute_cmd(ssh, ls_cmd)
-        ls_result = ls_result.lower()
-        self.debug("Response from ls_cmd: " + ls_result)
-        if "no such file" in ls_result:
-            self.debug("No cloud-set-guest-password script in the VM")
-            self.debug("Installing the cloud-set-guest-password script from people.apache.org in the VM...")
-            self.install_cloud_set_guest_password_script(ssh)
-            self.debug("Stopping the VM, and creating a new password enabled guest VM template with it...")
-            self.stop_vm(self.vm_1)
-            self.create_template(self.vm_1)
-
-            self.debug("Deploying a new VM in the created Isolated network with the newly created guest VM template...")
-            self.vm_2 = self.create_VM(self.network, testdata=self.test_data["virtual_machine_userdata"])
-            self.debug("Starting the VM...")
-            vm_2a = self.vm_2.start(self.api_client)
-            self.vm_2.password = vm_2a.password.strip()
-            self.vm_2.nic = vm_2a.nic
+            self.debug("Deploying a VM in the created Isolated network with "
+                       "user data...")
+            expected_user_data = "hello world vm1"
+            user_data = base64.b64encode(expected_user_data)
+            self.test_data["virtual_machine_userdata"]["userdata"] = user_data
+            self.vm_1 = self.create_VM(
+                self.network,
+                testdata=self.test_data["virtual_machine_userdata"])
+            self.validate_Network(self.network, state="Implemented")
+            vr = self.get_Router(self.network)
+            self.check_Router_state(vr, state="Running")
+            self.check_VM_state(self.vm_1, state="Running")
 
             # VSD verification
-            self.verify_vsd_vm(self.vm_2)
+            self.verify_vsd_network(self.domain.id, self.network)
+            self.verify_vsd_router(vr)
+            self.verify_vsd_vm(self.vm_1)
 
-            self.debug("verifying that the guest VM template is password enabled...")
-            self.debug("VM - %s password - %s !" % (self.vm_2.name, self.vm_2.password))
-            self.assertNotEqual(self.vm_2.password, self.test_data["virtual_machine_userdata"]["password"],
-                                "Password is not enabled for the VM"
-                                )
+            self.debug("verifying that the guest VM template is not password "
+                       "enabled...")
+            self.debug("VM - %s password - %s !" %
+                       (self.vm_1.name, self.vm_1.password))
+            self.assertEqual(
+                self.vm_1.password,
+                self.test_data["virtual_machine_userdata"]["password"],
+                "Password is enabled for the VM (vm_1)"
+            )
 
-            self.debug("SSHing into the VM for verifying its password...")
-            public_ip_2 = self.acquire_PublicIPAddress(self.network)
-            self.create_and_verify_fw(self.vm_2, public_ip_2, self.network)
-            self.ssh_into_VM(self.vm_2, public_ip_2)
-
-            vm_test = self.vm_2
-            vm_test_public_ip = public_ip_2
-        else:
-            self.debug("Updating the guest VM template to password enabled")
-            self.updateTemplate(True)
-            self.assertEqual(self.template.passwordenabled, True,
-                             "Guest VM template is not password enabled"
+            self.debug("SSHing into the VM for verifying its user data...")
+            public_ip_1 = self.acquire_PublicIPAddress(self.network)
+            self.create_and_verify_fw(self.vm_1, public_ip_1, self.network)
+            ssh = self.ssh_into_VM(self.vm_1, public_ip_1)
+            user_data_cmd = self.get_userdata_url(self.vm_1)
+            self.debug("Getting user data with command: " + user_data_cmd)
+            actual_user_data = base64.b64decode(self.execute_cmd
+                                                (ssh, user_data_cmd))
+            self.debug("Actual user data - " + actual_user_data +
+                       ", Expected user data - " + expected_user_data)
+            self.assertEqual(actual_user_data, expected_user_data,
+                             "Un-expected VM (VM_1) user data"
                              )
-            vm_test = self.vm_1
-            vm_test_public_ip = public_ip_1
 
-        self.debug("Resetting password for VM - %s" % vm_test.name)
-        vm_test.password = vm_test.resetPassword(self.api_client)
-        self.debug("Password reset to - %s" % vm_test.password)
+            self.debug("Checking for cloud-set-guest-password script in the "
+                       "VM for testing password reset functionality...")
+            ls_cmd = "ls /etc/init.d/cloud-set-guest-password"
+            ls_result = self.execute_cmd(ssh, ls_cmd)
+            ls_result = ls_result.lower()
+            self.debug("Response from ls_cmd: " + ls_result)
+            if "no such file" in ls_result:
+                self.debug("No cloud-set-guest-password script in the VM")
+                self.debug("Installing the cloud-set-guest-password script "
+                           "from people.apache.org in the VM...")
+                self.install_cloud_set_guest_password_script(ssh)
+                self.debug("Stopping the VM, and creating a new password "
+                           "enabled guest VM template with it...")
+                self.stop_vm(self.vm_1)
+                self.create_template(self.vm_1)
 
-        self.debug("Starting the VM")
-        vm_test.start(self.api_client)
+                self.debug("Deploying a new VM in the created Isolated "
+                           "network with the newly created guest VM "
+                           "template...")
+                self.vm_2 = self.create_VM(
+                    self.network,
+                    testdata=self.test_data["virtual_machine_userdata"])
+                self.debug("Starting the VM...")
+                vm_2a = self.vm_2.start(self.api_client)
+                self.vm_2.password = vm_2a.password.strip()
+                self.vm_2.nic = vm_2a.nic
 
-        self.debug("verifying that the guest VM template is password enabled...")
-        self.debug("VM - %s password - %s !" % (vm_test.name, vm_test.password))
-        self.assertNotEqual(vm_test.password, self.test_data["virtual_machine_userdata"]["password"],
-                            "Password is not enabled for the VM"
-                            )
+                # VSD verification
+                self.verify_vsd_vm(self.vm_2)
 
-        self.debug("SSHing into the VM for verifying its new password after its password reset...")
-        self.ssh_into_VM(vm_test, vm_test_public_ip)
+                self.debug("verifying that the guest VM template is password "
+                           "enabled...")
+                self.debug("VM - %s password - %s !" %
+                           (self.vm_2.name, self.vm_2.password))
+                self.assertNotEqual(
+                    self.vm_2.password,
+                    self.test_data["virtual_machine_userdata"]["password"],
+                    "Password is not enabled for the VM"
+                )
 
-        self.debug("Setting password enabled to the default value in the guest VM template...")
-        self.updateTemplate(self.defaultTemplateVal)
+                self.debug("SSHing into the VM for verifying its password...")
+                public_ip_2 = self.acquire_PublicIPAddress(self.network)
+                self.create_and_verify_fw(self.vm_2, public_ip_2, self.network)
+                self.ssh_into_VM(self.vm_2, public_ip_2)
+
+                vm_test = self.vm_2
+                vm_test_public_ip = public_ip_2
+            else:
+                self.debug("Updating the guest VM template to password "
+                           "enabled")
+                self.updateTemplate(True)
+                self.assertEqual(self.template.passwordenabled, True,
+                                 "Guest VM template is not password enabled"
+                                 )
+                vm_test = self.vm_1
+                vm_test_public_ip = public_ip_1
+
+            self.debug("Resetting password for VM - %s" % vm_test.name)
+            vm_test.password = vm_test.resetPassword(self.api_client)
+            self.debug("Password reset to - %s" % vm_test.password)
+
+            self.debug("Starting the VM")
+            vm_test.start(self.api_client)
+
+            self.debug("verifying that the guest VM template is password "
+                       "enabled...")
+            self.debug("VM - %s password - %s !" %
+                       (vm_test.name, vm_test.password))
+            self.assertNotEqual(
+                vm_test.password,
+                self.test_data["virtual_machine_userdata"]["password"],
+                "Password is not enabled for the VM"
+            )
+
+            self.debug("SSHing into the VM for verifying its new password "
+                       "after its password reset...")
+            self.ssh_into_VM(vm_test, vm_test_public_ip)
+
+            self.debug("Setting password enabled to the default value in the "
+                       "guest VM template...")
+            self.updateTemplate(self.defaultTemplateVal)
diff --git a/test/integration/plugins/nuagevsp/test_nuage_public_sharednetwork_ip_range.py b/test/integration/plugins/nuagevsp/test_nuage_public_sharednetwork_ip_range.py
new file mode 100644
index 0000000..b0a5ae9
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_public_sharednetwork_ip_range.py
@@ -0,0 +1,823 @@
+# 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.
+
+""" Component tests for Shared Network functionality with Nuage VSP SDN plugin:
+Public Shared Network IP Range
+"""
+# Import Local Modules
+from nuageTestCase import nuageTestCase
+from marvin.lib.utils import cleanup_resources, validateList
+from marvin.lib.base import (Account,
+                             Domain,
+                             User,
+                             VirtualMachine,
+                             Network,
+                             NetworkOffering)
+from marvin.lib.common import list_virtual_machines
+from marvin.cloudstackAPI import (createVlanIpRange,
+                                  listVlanIpRanges,
+                                  deleteVlanIpRange,
+                                  updateVmNicIp)
+from marvin.codes import PASS
+# Import System Modules
+from nose.plugins.attrib import attr
+
+
+class TestNuageSharedNetworkPublicIPRange(nuageTestCase):
+    """Test Shared Network functionality with Nuage VSP SDN plugin:
+    Public Shared Network IP Range
+    """
+
+    @classmethod
+    def setUpClass(cls):
+        """
+        Create the following domain tree and accounts that are required for
+        executing Nuage VSP SDN plugin test cases for shared networks:
+            Under ROOT - create domain D1
+            Under domain D1 - Create two subdomains D11 and D12
+            Under each of the domains - create one admin user and couple of
+            regular users.
+        Create shared network with the following scope:
+            1. Network with scope="all"
+            2. Network with scope="domain" with no subdomain access
+            3. Network with scope="domain" with subdomain access
+            4. Network with scope="account"
+        """
+
+        super(TestNuageSharedNetworkPublicIPRange, cls).setUpClass()
+        cls.sharednetworkdata = cls.test_data["acl"]
+        cls.nuagenetworkdata = cls.test_data["nuagevsp"]
+
+        cls.domain_1 = None
+        cls.domain_2 = None
+
+        try:
+            # backup default apikey and secretkey
+            cls.default_apikey = cls.api_client.connection.apiKey
+            cls.default_secretkey = cls.api_client.connection.securityKey
+
+            # Create domains
+            cls.domain_1 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain1"]
+            )
+            cls.domain_11 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain11"],
+                parentdomainid=cls.domain_1.id
+            )
+            cls.domain_12 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain12"],
+                parentdomainid=cls.domain_1.id
+            )
+            # Create  1 admin account and 2 user accounts for doamin_1
+            cls.account_d1 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1"],
+                admin=True,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1)
+            cls.user_d1_apikey = user.apikey
+            cls.user_d1_secretkey = user.secretkey
+
+            cls.account_d1a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1A"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1a)
+            cls.user_d1a_apikey = user.apikey
+            cls.user_d1a_secretkey = user.secretkey
+
+            cls.account_d1b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1B"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1b)
+            cls.user_d1b_apikey = user.apikey
+            cls.user_d1b_secretkey = user.secretkey
+
+            # Create  1 admin and 2 user accounts for doamin_11
+            cls.account_d11 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11"],
+                admin=True,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11)
+            cls.user_d11_apikey = user.apikey
+            cls.user_d11_secretkey = user.secretkey
+
+            cls.account_d11a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11A"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11a)
+            cls.user_d11a_apikey = user.apikey
+            cls.user_d11a_secretkey = user.secretkey
+
+            cls.account_d11b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11B"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11b)
+            cls.user_d11b_apikey = user.apikey
+            cls.user_d11b_secretkey = user.secretkey
+
+            # Create  2 user accounts for doamin_12
+            cls.account_d12a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12A"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12a)
+            cls.user_d12a_apikey = user.apikey
+            cls.user_d12a_secretkey = user.secretkey
+
+            cls.account_d12b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12B"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12b)
+            cls.user_d12b_apikey = user.apikey
+            cls.user_d12b_secretkey = user.secretkey
+
+            # Create 1 user account and admin account in "ROOT" domain
+
+            cls.account_roota = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=False,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_roota)
+            cls.user_roota_apikey = user.apikey
+            cls.user_roota_secretkey = user.secretkey
+
+            cls.account_root = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=True,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_root)
+            cls.user_root_apikey = user.apikey
+            cls.user_root_secretkey = user.secretkey
+
+            # service offering is already created in Nuagetestcase
+            cls.sharednetworkdata['mode'] = cls.zone.networktype
+
+            # As admin user , create shared network with scope "all", "domain"
+            # with subdomain access ,"domain" without subdomain access and
+            # "account"
+
+            cls.api_client.connection.apiKey = cls.default_apikey
+            cls.api_client.connection.securityKey = cls.default_secretkey
+
+            cls.shared_network_offering = NetworkOffering.create(
+                cls.api_client,
+                cls.nuagenetworkdata["shared_nuage_public_network_offering"],
+                conservemode=False
+            )
+
+            # Enable Network offering
+            cls.shared_network_offering.update(cls.api_client, state='Enabled')
+            cls.shared_network_offering_id = cls.shared_network_offering.id
+
+            cls.shared_network_all = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id
+            )
+
+            cls.shared_network_domain_d11 = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=False
+            )
+
+            cls.shared_network_domain_with_subdomain_d11 = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=True
+            )
+
+            cls.shared_network_account_d111a = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                accountid=cls.account_d11a.user[0].username
+            )
+
+            cls._cleanup = [
+                cls.account_root,
+                cls.account_roota,
+                cls.shared_network_all,
+                cls.shared_network_offering,
+                cls.service_offering,
+            ]
+        except Exception as e:
+            cls.domain_1.delete(cls.api_client, cleanup="true")
+            cleanup_resources(cls.api_client, cls._cleanup)
+            raise Exception("Failed to create the setup required to execute "
+                            "the test cases: %s" % e)
+
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.api_client.connection.apiKey = cls.default_apikey
+        cls.api_client.connection.securityKey = cls.default_secretkey
+        cleanup_resources(cls.api_client, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.api_client = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+
+    def tearDown(self):
+        # restore back default apikey and secretkey
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.debug("Cleaning up the resources")
+        for obj in reversed(self.cleanup):
+            try:
+                if isinstance(obj, VirtualMachine):
+                    obj.delete(self.api_client, expunge=True)
+                else:
+                    obj.delete(self.api_client)
+            except Exception as e:
+                self.error("Failed to cleanup %s, got %s" % (obj, e))
+        # cleanup_resources(self.api_client, self.cleanup)
+        self.cleanup = []
+        self.debug("Cleanup complete!")
+        return
+
+    def add_subnet_verify(self, network, services):
+        """verify required nic is present in the VM"""
+
+        self.debug("Going to add new ip range in shared network %s" %
+                   network.name)
+        cmd = createVlanIpRange.createVlanIpRangeCmd()
+        cmd.networkid = network.id
+        cmd.gateway = services["gateway"]
+        cmd.netmask = services["netmask"]
+        cmd.startip = services["startip"]
+        cmd.endip = services["endip"]
+        cmd.forVirtualNetwork = services["forvirtualnetwork"]
+        addedsubnet = self.api_client.createVlanIpRange(cmd)
+
+        self.debug("verify above iprange is successfully added in shared "
+                   "network %s or not" % network.name)
+
+        cmd1 = listVlanIpRanges.listVlanIpRangesCmd()
+        cmd1.networkid = network.id
+        cmd1.id = addedsubnet.vlan.id
+
+        allsubnets = self.api_client.listVlanIpRanges(cmd1)
+        self.assertEqual(
+            allsubnets[0].id,
+            addedsubnet.vlan.id,
+            "Check New subnet is successfully added to the shared Network"
+        )
+        return addedsubnet
+
+    def delete_subnet_verify(self, network, subnet):
+        """verify required nic is present in the VM"""
+
+        self.debug("Going to delete ip range in shared network %s" %
+                   network.name)
+        cmd = deleteVlanIpRange.deleteVlanIpRangeCmd()
+        cmd.id = subnet.vlan.id
+        self.api_client.deleteVlanIpRange(cmd)
+
+        self.debug("verify above iprange is successfully deleted from shared "
+                   "network %s or not" % network.name)
+
+        cmd1 = listVlanIpRanges.listVlanIpRangesCmd()
+        cmd1.networkid = network.id
+        cmd1.id = subnet.vlan.id
+
+        try:
+            allsubnets = self.api_client.listVlanIpRanges(cmd1)
+            self.assertEqual(
+                allsubnets[0].id,
+                subnet.vlan.id,
+                "Check Subnet is not present to the shared Network"
+            )
+            self.fail("iprange is not successfully deleted from shared "
+                      "network %s" % network.name)
+        except Exception as e:
+            self.debug("iprange is not successfully deleted from shared "
+                       "network %s" % network.name)
+            self.debug("exception msg is %s" % e)
+
+    def shared_subnet_not_present(self, network, subnetid):
+        shared_resources = self.vsd.get_shared_network_resource(
+            filter=self.get_externalID_filter(subnetid))
+        try:
+            self.assertEqual(shared_resources.description, network.name,
+                             "VSD shared resources description should match "
+                             "network name in CloudStack"
+                             )
+            self.fail("still shared resource are present on VSD")
+        except Exception as e:
+            self.debug("sharedNetwork resources is successfully deleted from "
+                       "VSD")
+            self.debug("exception msg is %s" % e)
+
+    # Test cases relating to add/delete Shared Network IP ranges
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_01_add_delete_Subnet_in_public_sharednetwork_scope_all(self):
+        """Validate that subnet of same and different public gateway can be
+        added to shared network with scope=all
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as all")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_1,
+            sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network scope "
+                   "as all")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange2"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange2"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_2,
+            sharedsubnetid=subnet_id)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_all, subnet1)
+        self.delete_subnet_verify(self.shared_network_all, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_02_add_delete_Subnet_in_public_sharednetwork_scope_domain(self):
+        """Validate subnet of same and different gateway can be added to public
+        shared network scope=domain with subdomain access
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope domain "
+                   "with subdomain access")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11,
+            self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_domain_with_subdomain_d11,
+            account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11, vm_1,
+            sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11,
+            self.nuagenetworkdata["publiciprange2"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange2"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_domain_with_subdomain_d11,
+            account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11, vm_2,
+            sharedsubnetid=subnet_id)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11, subnet1)
+        self.delete_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_03_add_delete_Subnet_in_pub_sharednetwork_scope_nosubdomain(self):
+        """Validate subnet of same and different gateway can added to public
+        shared network scope=domain without subdomain access
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope domain "
+                   "without subdomain access")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_domain_d11,
+            self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_domain_d11, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_domain_d11, vm_1,
+            sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_domain_d11,
+            self.nuagenetworkdata["publiciprange2"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange2"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_domain_d11, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_domain_d11, vm_2,
+            sharedsubnetid=subnet_id)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_domain_d11, subnet1)
+        self.delete_subnet_verify(self.shared_network_domain_d11, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_04_add_delete_Subnet_in_public_sharednetwork_scope_account(self):
+        """Validate subnet of same and different gateway can be added to shared
+        network scope=Account
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as "
+                   "Account")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_account_d111a,
+            self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_account_d111a, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_account_d111a.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            vm_1, sharedsubnetid=subnet_id)
+
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_account_d111a,
+            self.nuagenetworkdata["publiciprange2"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange2"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_account_d111a, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_account_d111a.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            vm_2, sharedsubnetid=subnet_id)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_account_d111a, subnet1)
+        self.delete_subnet_verify(self.shared_network_account_d111a, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_05_change_ip_from_different_Subnet_public_shared(self):
+        """Validate that ip of a vm can be changed to a different subnet ip for
+        shared_network_scope_all
+        """
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as all")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange1"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_1,
+            sharedsubnetid=subnet_id)
+        # Add subnet with different cidr
+        self.debug("Adding subnet of different cidr to shared Network scope "
+                   "as all")
+        subnet2 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange2"])
+
+        # stop VM to update the ipaddress
+        try:
+            vm_1.stop(self.api_client)
+        except Exception as e:
+            self.fail("Failed to stop the virtual instances, %s" % e)
+        vm_list = list_virtual_machines(self.api_client, id=vm_1.id)
+        nics = [x for x in vm_list[0].nic
+                if x.networkid == self.shared_network_all.id]
+        self.debug("Filtered nics list: %s:" % nics)
+
+        cmd = updateVmNicIp.updateVmNicIpCmd()
+        for x in vm_list[0].nic:
+            cmd.nicid = x.id
+        cmd.ipaddress = self.nuagenetworkdata["publiciprange2"]["startip"]
+        self.api_client.updateVmNicIp(cmd)
+
+        try:
+            vm_1.start(self.api_client)
+        except Exception as e:
+            self.fail("Failed to start the virtual instances, %s" % e)
+
+        vm_list = list_virtual_machines(self.api_client, id=vm_1.id)
+        vm_list_validation_result = validateList(vm_list)
+        self.assertEqual(vm_list_validation_result[0], PASS,
+                         "vm list validation failed due to %s" %
+                         vm_list_validation_result[2])
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange2"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange2"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_list[0],
+            sharedsubnetid=subnet_id)
+
+        self.delete_VM(vm_1)
+        self.delete_subnet_verify(self.shared_network_all, subnet1)
+        self.delete_subnet_verify(self.shared_network_all, subnet2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_06_restart_public_sharedNetwork_scope_all(self):
+        """Validate that restart Shared Network is done successfully without
+        any Error
+        """
+
+        self.debug("Adding subnet of same cidr to shared Network scope as all")
+        try:
+            self.add_subnet_verify(
+                self.shared_network_all,
+                self.nuagenetworkdata["publiciprange1"])
+        except Exception as e:
+            self.debug("seems above test case is not able to clean the subnet")
+            self.debug("exception msg is %s" % e)
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange1"]["startip"]
+        vm_1 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_1,
+            sharedsubnetid=subnet_id)
+
+        # Restart network with cleanup
+        self.debug("Restarting shared Network with cleanup")
+        self.shared_network_all.restart(self.api_client, cleanup=True)
+
+        self.debug("validating SharedNetwork on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange1"]["gateway"])
+        self.delete_VM(vm_1)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_07_delete_first_subnet_public_sharednetwork_scope_all(self):
+        """Validate that when first subnet is removed then deletion of Network
+        works fine
+        """
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_2,
+            sharedsubnetid=subnet_id)
+        # Restart network with cleanup
+        cmd = listVlanIpRanges.listVlanIpRangesCmd()
+        cmd.networkid = self.shared_network_all.id
+        allsubnets = self.api_client.listVlanIpRanges(cmd)
+        self.delete_VM(vm_2)
+        firstsubnet = None
+        for subnet in allsubnets:
+            if subnet.endip == self.nuagenetworkdata["network_all"]["endip"]:
+                firstsubnet = subnet
+
+        self.debug("cleanning first subnet")
+        try:
+            cmd = deleteVlanIpRange.deleteVlanIpRangeCmd()
+            cmd.id = firstsubnet.id
+            self.api_client.deleteVlanIpRange(cmd)
+        except Exception as e:
+            self.fail("Fail to delete the first subnet of shared Network")
+            self.debug("exception msg is %s" % e)
+
+        self.shared_network_all.delete(self.api_client)
+        if self.shared_network_all in self._cleanup:
+            self._cleanup.remove(self.shared_network_all)
+        self.shared_subnet_not_present(self.shared_network_all, subnet_id)
+
+    def test_08_public_sharednetwork_domain_cleanup(self):
+        """Validate that  sharedNetwork Parent domain is cleaned up properly
+        """
+
+        try:
+            self.test_data["virtual_machine"]["ipaddress"] = \
+                self.nuagenetworkdata["network_all"]["startip"]
+            vm_1 = self.create_VM(
+                self.shared_network_domain_with_subdomain_d11,
+                account=self.account_d11a)
+
+            self.verify_vsd_shared_network(
+                self.account_d11a.domainid,
+                self.shared_network_domain_with_subdomain_d11,
+                gateway=self.nuagenetworkdata["network_all"]["gateway"])
+            subnet_id_subdomain = self.get_subnet_id(
+                self.shared_network_domain_with_subdomain_d11.id,
+                self.nuagenetworkdata["network_all"]["gateway"])
+            self.verify_vsd_enterprise_vm(
+                self.account_d11a.domainid,
+                self.shared_network_domain_with_subdomain_d11,
+                vm_1, sharedsubnetid=subnet_id_subdomain)
+
+            self.test_data["virtual_machine"]["ipaddress"] = \
+                self.nuagenetworkdata["network_all"]["endip"]
+            vm_2 = self.create_VM(
+                self.shared_network_domain_d11, account=self.account_d11a)
+
+            self.verify_vsd_shared_network(
+                self.account_d11a.domainid, self.shared_network_domain_d11,
+                gateway=self.nuagenetworkdata["network_all"]["gateway"])
+            subnet_id_nosubdomain = self.get_subnet_id(
+                self.shared_network_domain_d11.id,
+                self.nuagenetworkdata["network_all"]["gateway"])
+            self.verify_vsd_enterprise_vm(
+                self.account_d11a.domainid, self.shared_network_domain_d11,
+                vm_2, sharedsubnetid=subnet_id_nosubdomain)
+            subnet_id_nosubdomain1 = self.get_subnet_id(
+                self.shared_network_domain_d11.id,
+                self.nuagenetworkdata["publiciprange2"]["gateway"])
+            subnet_id_subdomain1 = self.get_subnet_id(
+                self.shared_network_domain_with_subdomain_d11.id,
+                self.nuagenetworkdata["publiciprange2"]["gateway"])
+            self.domain_1.delete(self.api_client, cleanup="true")
+        except Exception as e:
+            self.debug("test case Fail")
+            self.debug("exception msg is %s" % e)
+            self.domain_1.delete(self.api_client, cleanup="true")
+            self.fail("Fail to delete the Parent domain")
+
+        self.shared_subnet_not_present(
+            self.shared_network_domain_with_subdomain_d11,
+            subnet_id_subdomain)
+        self.shared_subnet_not_present(
+            self.shared_network_domain_d11, subnet_id_nosubdomain)
+        self.shared_subnet_not_present(
+            self.shared_network_domain_with_subdomain_d11,
+            subnet_id_subdomain1)
+        self.shared_subnet_not_present(
+            self.shared_network_domain_d11, subnet_id_nosubdomain1)
+
+    @staticmethod
+    def generateKeysForUser(api_client, account):
+        user = User.list(
+            api_client,
+            account=account.name,
+            domainid=account.domainid)[0]
+
+        return (User.registerUserKeys(
+            api_client,
+            user.id))
diff --git a/test/integration/plugins/nuagevsp/test_nuage_public_sharednetwork_userdata.py b/test/integration/plugins/nuagevsp/test_nuage_public_sharednetwork_userdata.py
new file mode 100644
index 0000000..d33d076
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_public_sharednetwork_userdata.py
@@ -0,0 +1,948 @@
+# 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.
+
+""" Component tests for Shared Network functionality with Nuage VSP SDN plugin:
+Public Shared Network IP Range
+"""
+# Import Local Modules
+from nuageTestCase import nuageTestCase
+from marvin.lib.utils import cleanup_resources
+from marvin.lib.common import list_templates
+from marvin.lib.base import (Account,
+                             Domain,
+                             User,
+                             VirtualMachine,
+                             Network,
+                             NetworkOffering)
+from marvin.cloudstackAPI import (createVlanIpRange,
+                                  listVlanIpRanges,
+                                  deleteVlanIpRange,
+                                  updateTemplate)
+# Import System Modules
+from nose.plugins.attrib import attr
+import random
+import string
+
+
+class TestNuageSharedNetworkUserdata(nuageTestCase):
+    """Test Shared Network functionality with Nuage VSP SDN plugin:
+    Public Shared Network IP Range
+    """
+
+    @classmethod
+    def setUpClass(cls):
+        """
+        Create the following domain tree and accounts that are required for
+        executing Nuage VSP SDN plugin test cases for shared networks:
+            Under ROOT - create domain D1
+            Under domain D1 - Create two subdomains D11 and D12
+            Under each of the domains - create one admin user and couple of
+            regular users.
+        Create shared network with the following scope:
+            1. Network with scope="all"
+            2. Network with scope="domain" with no subdomain access
+            3. Network with scope="domain" with subdomain access
+            4. Network with scope="account"
+        """
+
+        super(TestNuageSharedNetworkUserdata, cls).setUpClass()
+        cls.sharednetworkdata = cls.test_data["acl"]
+        cls.nuagenetworkdata = cls.test_data["nuagevsp"]
+
+        cls.domain_1 = None
+        cls.domain_2 = None
+
+        try:
+            # backup default apikey and secretkey
+            cls.default_apikey = cls.api_client.connection.apiKey
+            cls.default_secretkey = cls.api_client.connection.securityKey
+
+            # Create domains
+            cls.domain_1 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain1"]
+            )
+            cls.domain_11 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain11"],
+                parentdomainid=cls.domain_1.id
+            )
+            cls.domain_12 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain12"],
+                parentdomainid=cls.domain_1.id
+            )
+            # Create  1 admin account and 2 user accounts for doamin_1
+            cls.account_d1 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1"],
+                admin=True,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1)
+            cls.user_d1_apikey = user.apikey
+            cls.user_d1_secretkey = user.secretkey
+
+            cls.account_d1a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1A"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1a)
+            cls.user_d1a_apikey = user.apikey
+            cls.user_d1a_secretkey = user.secretkey
+
+            cls.account_d1b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1B"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1b)
+            cls.user_d1b_apikey = user.apikey
+            cls.user_d1b_secretkey = user.secretkey
+
+            # Create  1 admin and 2 user accounts for doamin_11
+            cls.account_d11 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11"],
+                admin=True,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11)
+            cls.user_d11_apikey = user.apikey
+            cls.user_d11_secretkey = user.secretkey
+
+            cls.account_d11a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11A"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11a)
+            cls.user_d11a_apikey = user.apikey
+            cls.user_d11a_secretkey = user.secretkey
+
+            cls.account_d11b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11B"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11b)
+            cls.user_d11b_apikey = user.apikey
+            cls.user_d11b_secretkey = user.secretkey
+
+            # Create  2 user accounts for doamin_12
+            cls.account_d12a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12A"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12a)
+            cls.user_d12a_apikey = user.apikey
+            cls.user_d12a_secretkey = user.secretkey
+
+            cls.account_d12b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12B"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12b)
+            cls.user_d12b_apikey = user.apikey
+            cls.user_d12b_secretkey = user.secretkey
+
+            # Create 1 user account and admin account in "ROOT" domain
+
+            cls.account_roota = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=False,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_roota)
+            cls.user_roota_apikey = user.apikey
+            cls.user_roota_secretkey = user.secretkey
+
+            cls.account_root = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=True,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_root)
+            cls.user_root_apikey = user.apikey
+            cls.user_root_secretkey = user.secretkey
+
+            # service offering is already created in Nuagetestcase
+            cls.sharednetworkdata['mode'] = cls.zone.networktype
+
+            # As admin user , create shared network with scope "all", "domain"
+            # with subdomain access ,"domain" without subdomain access and
+            # "account"
+
+            cls.api_client.connection.apiKey = cls.default_apikey
+            cls.api_client.connection.securityKey = cls.default_secretkey
+            cls.nuagenetworkdata["shared_nuage_public_network_offering"][
+                "serviceProviderList"].update({"UserData": 'VirtualRouter'})
+            cls.nuagenetworkdata["shared_nuage_public_network_offering"][
+                "supportedservices"] = 'Dhcp,Connectivity,UserData'
+            for key, value in cls.test_data["nuagevsp"][
+                "shared_nuage_public_network_offering"]["serviceProviderList"]\
+                    .iteritems():
+                cls.debug("elements are  %s and value is %s" % (key, value))
+
+            cls.shared_network_offering = NetworkOffering.create(
+                cls.api_client,
+                cls.nuagenetworkdata["shared_nuage_public_network_offering"],
+                conservemode=False
+            )
+
+            # Enable Network offering
+            cls.shared_network_offering.update(cls.api_client, state='Enabled')
+            cls.shared_network_offering_id = cls.shared_network_offering.id
+
+            cls.shared_network_all = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id
+            )
+
+            cls.shared_network_domain_d11 = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=False
+            )
+
+            cls.shared_network_domain_with_subdomain_d11 = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=True
+            )
+
+            cls.shared_network_account_d111a = Network.create(
+                cls.api_client,
+                cls.nuagenetworkdata["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                accountid=cls.account_d11a.user[0].username
+            )
+
+            cls._cleanup = [
+                cls.account_root,
+                cls.account_roota,
+                cls.shared_network_all,
+                cls.shared_network_offering,
+                cls.service_offering,
+            ]
+            user_data = ''.join(random.choice(
+                string.ascii_uppercase + string.digits) for x in range(2500))
+            cls.test_data["virtual_machine"]["userdata"] = user_data
+        except Exception as e:
+            cls.domain_1.delete(cls.api_client, cleanup="true")
+            cleanup_resources(cls.api_client, cls._cleanup)
+            raise Exception("Failed to create the setup required to execute "
+                            "the test cases: %s" % e)
+
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.api_client.connection.apiKey = cls.default_apikey
+        cls.api_client.connection.securityKey = cls.default_secretkey
+        cleanup_resources(cls.api_client, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.api_client = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+
+    def tearDown(self):
+        # restore back default apikey and secretkey
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.debug("Cleaning up the resources")
+        for obj in reversed(self.cleanup):
+            try:
+                if isinstance(obj, VirtualMachine):
+                    obj.delete(self.api_client, expunge=True)
+                else:
+                    obj.delete(self.api_client)
+            except Exception as e:
+                self.error("Failed to cleanup %s, got %s" % (obj, e))
+        # cleanup_resources(self.api_client, self.cleanup)
+        self.cleanup = []
+        self.debug("Cleanup complete!")
+        self.updateTemplate(False)
+        return
+
+    def add_subnet_verify(self, network, services):
+        """verify required nic is present in the VM"""
+
+        self.debug("Going to add new ip range in shared network %s" %
+                   network.name)
+        cmd = createVlanIpRange.createVlanIpRangeCmd()
+        cmd.networkid = network.id
+        cmd.gateway = services["gateway"]
+        cmd.netmask = services["netmask"]
+        cmd.startip = services["startip"]
+        cmd.endip = services["endip"]
+        cmd.forVirtualNetwork = services["forvirtualnetwork"]
+        addedsubnet = self.api_client.createVlanIpRange(cmd)
+
+        self.debug("verify above iprange is successfully added in shared "
+                   "network %s or not" % network.name)
+
+        cmd1 = listVlanIpRanges.listVlanIpRangesCmd()
+        cmd1.networkid = network.id
+        cmd1.id = addedsubnet.vlan.id
+
+        allsubnets = self.api_client.listVlanIpRanges(cmd1)
+        self.assertEqual(
+            allsubnets[0].id,
+            addedsubnet.vlan.id,
+            "Check New subnet is successfully added to the shared Network"
+        )
+        return addedsubnet
+
+    def delete_subnet_verify(self, network, subnet):
+        """verify required nic is present in the VM"""
+
+        self.debug("Going to delete ip range in shared network %s" %
+                   network.name)
+        cmd = deleteVlanIpRange.deleteVlanIpRangeCmd()
+        cmd.id = subnet.vlan.id
+        self.api_client.deleteVlanIpRange(cmd)
+
+        self.debug("verify above iprange is successfully deleted from shared "
+                   "network %s or not" % network.name)
+
+        cmd1 = listVlanIpRanges.listVlanIpRangesCmd()
+        cmd1.networkid = network.id
+        cmd1.id = subnet.vlan.id
+
+        try:
+            allsubnets = self.api_client.listVlanIpRanges(cmd1)
+            self.assertEqual(
+                allsubnets[0].id,
+                subnet.vlan.id,
+                "Check Subnet is not present to the shared Network"
+            )
+            self.fail("iprange is not successfully deleted from shared "
+                      "network %s" % network.name)
+        except Exception as e:
+            self.debug("iprange is successfully deleted from shared "
+                       "network %s" % network.name)
+            self.debug("exception msg is %s" % e)
+
+    def shared_subnet_not_present(self, network, subnetid):
+        shared_resources = self.vsd.get_shared_network_resource(
+            filter=self.get_externalID_filter(subnetid))
+        try:
+            self.assertEqual(shared_resources.description, network.name,
+                             "VSD shared resources description should match "
+                             "network name in CloudStack"
+                             )
+            self.fail("still shared resource are present on VSD")
+        except Exception as e:
+            self.debug("sharedNetwork resources is successfully deleted from "
+                       "VSD")
+            self.debug("exception msg is %s" % e)
+
+    # updateTemplate - Updates value of the guest VM template's password
+    # enabled setting
+    def updateTemplate(self, value):
+        self.debug("Updating value of guest VM template's password enabled "
+                   "setting")
+        cmd = updateTemplate.updateTemplateCmd()
+        cmd.id = self.template.id
+        cmd.passwordenabled = value
+        self.api_client.updateTemplate(cmd)
+        list_template_response = list_templates(self.api_client,
+                                                templatefilter="all",
+                                                id=self.template.id)
+        self.template = list_template_response[0]
+        self.debug("Updated guest VM template")
+
+    # Test cases relating to VR IP check on Shared Network
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_01_verify_deployvm_fail_startip_sharednetwork_scope_all(self):
+        """Validate that deploy vm fails if user specify the first ip of subnet
+        because that is reserved for VR shared network with scope=all
+        """
+        # Add vm as start ip of subnet
+        self.debug("Adding VM as start IP of Subnet")
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["startip"]
+        try:
+            self.create_VM(self.shared_network_all, account=self.account_d11a)
+            self.fail("VM with subnet start IP is deployed successfully")
+        except Exception as e:
+            self.debug("Deploy vm fails as expected with exception %s" % e)
+            self.debug("Going to verify the exception message")
+            excetionmsg = "it is reserved for the VR in network"
+            if excetionmsg in str(e):
+                self.debug("correct exception is raised")
+            else:
+                self.fail("correct exception is not raised")
+
+    # Test cases relating to add/delete Shared Network IP ranges
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_02_add_delete_Subnet_restart_public_sharednetwork_scope_all(self):
+        """Validate that subnet of same gateway can be added to shared network
+        with scope=all and restart network with clean up works
+        """
+        self.debug("Deploy VM to shared Network scope as all")
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["endip"]
+        vm_1 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_1,
+            sharedsubnetid=subnet_id)
+        # verify VR
+        vr = self.get_Router(self.shared_network_all)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as all")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_all, self.nuagenetworkdata["publiciprange3"])
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange3"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+        # verify on VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["publiciprange3"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["publiciprange3"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_all, vm_2,
+            sharedsubnetid=subnet_id)
+        # Restart network with cleanup
+        self.debug("Restarting shared Network with cleanup")
+        self.shared_network_all.restart(self.api_client, cleanup=True)
+
+        self.debug("validating SharedNetwork on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        # verify VR
+        vr = self.get_Router(self.shared_network_all)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_all, subnet1)
+
+    # Test cases relating to add/delete Shared Network IP ranges
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_03_add_delete_Subnet_restart_sharednetwork_scope_domain(self):
+        """Validate that subnet of same gateway can be added to shared network
+        with scope=all and restart network with clean up works
+        """
+        self.debug("Deploy VM to shared Network scope domain as all")
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["endip"]
+        vm_1 = self.create_VM(
+            self.shared_network_domain_with_subdomain_d11,
+            account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11, vm_1,
+            sharedsubnetid=subnet_id)
+        # verify VR
+        vr = self.get_Router(self.shared_network_domain_with_subdomain_d11)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as all")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11,
+            self.nuagenetworkdata["publiciprange3"])
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange3"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_domain_with_subdomain_d11,
+            account=self.account_d11a)
+        # VSD check points
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata["publiciprange3"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata["publiciprange3"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11, vm_2,
+            sharedsubnetid=subnet_id)
+        # Restart network with cleanup
+        self.debug("Restarting shared Network with cleanup")
+        self.shared_network_domain_with_subdomain_d11.restart(self.api_client,
+                                                              cleanup=True)
+
+        self.debug("validating SharedNetwork on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        # verify VR
+        vr = self.get_Router(self.shared_network_domain_with_subdomain_d11)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(
+            self.shared_network_domain_with_subdomain_d11, subnet1)
+
+    # Test cases relating to add/delete Shared Network IP ranges
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_04_add_delete_Subnet_restart_scope_domain_nosubdomain(self):
+        """Validate that subnet of same gateway can be added to shared network
+        with scope domain nosubdomain and restart network with clean up works
+        """
+
+        self.debug("Deploy VM to shared Network scope domain no subdomain")
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["endip"]
+        vm_1 = self.create_VM(
+            self.shared_network_domain_d11, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_domain_d11, vm_1,
+            sharedsubnetid=subnet_id)
+        # verify VR
+        vr = self.get_Router(self.shared_network_domain_d11)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+
+        # Add subnet with same cidr
+        self.debug("Adding subnet of same cidr to shared Network scope as all")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_domain_d11,
+            self.nuagenetworkdata["publiciprange3"])
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange3"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_domain_d11, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata["publiciprange3"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata["publiciprange3"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_domain_d11, vm_2,
+            sharedsubnetid=subnet_id)
+        # Restart network with cleanup
+        self.debug("Restarting shared Network with cleanup")
+        self.shared_network_domain_d11.restart(self.api_client, cleanup=True)
+
+        self.debug("validating SharedNetwork on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        # verify VR
+        vr = self.get_Router(self.shared_network_domain_d11)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_domain_d11, subnet1)
+
+    # Test cases relating to add/delete Shared Network IP ranges
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_05_add_delete_Subnet_restart_scope_account(self):
+        """Validate that subnet of same gateway can be added to shared network
+        with scope as account and restart network with clean up works
+        """
+
+        self.debug("Deploy VM to shared Network scope as account")
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["endip"]
+        vm_1 = self.create_VM(
+            self.shared_network_account_d111a, account=self.account_d11a)
+
+        # Verify shared Network and VM in VSD
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_account_d111a.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            vm_1, sharedsubnetid=subnet_id)
+        # verify VR
+        vr = self.get_Router(self.shared_network_account_d111a)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+
+        # Add subnet with same cidr
+        self.debug("Add subnet of same cidr shared Network scope as account")
+        subnet1 = self.add_subnet_verify(
+            self.shared_network_account_d111a,
+            self.nuagenetworkdata["publiciprange3"])
+
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["publiciprange3"]["startip"]
+        vm_2 = self.create_VM(
+            self.shared_network_account_d111a, account=self.account_d11a)
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            gateway=self.nuagenetworkdata["publiciprange3"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_account_d111a.id,
+            self.nuagenetworkdata["publiciprange3"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            vm_2, sharedsubnetid=subnet_id)
+        # Restart network with cleanup
+        self.debug("Restarting shared Network with cleanup")
+        self.shared_network_account_d111a.restart(self.api_client,
+                                                  cleanup=True)
+
+        self.debug("validating SharedNetwork on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid, self.shared_network_account_d111a,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        # verify VR
+        vr = self.get_Router(self.shared_network_account_d111a)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+        # put ping here
+        self.delete_VM(vm_1)
+        self.delete_VM(vm_2)
+        self.delete_subnet_verify(self.shared_network_account_d111a, subnet1)
+
+    # Test cases relating to VR IP check on Shared Network
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_06_verify_different_gateway_subnet_fails_sharednetwork_all(self):
+        """Validate that Different gateway subnet fail as it is not supported
+        for userdata service shared network with scope=all
+        """
+        # Add subnet of different gateway
+        self.debug("Adding subnet of different gateway")
+
+        try:
+            subnet2 = self.add_subnet_verify(
+                self.shared_network_all,
+                self.nuagenetworkdata["publiciprange2"])
+            self.test_data["virtual_machine"]["ipaddress"] = \
+                self.nuagenetworkdata["network_all"]["endip"]
+            vm_1 = self.create_VM(
+                self.shared_network_all, account=self.account_d11a)
+            self.delete_VM(vm_1)
+            self.delete_subnet_verify(self.shared_network_all, subnet2)
+            self.fail("VM is successfully added which is not expected")
+        except Exception as e:
+            self.debug("different gateway subnet "
+                       "fails as expected with exception %s" % e)
+            self.debug("Going to verify the exception message")
+            self.delete_subnet_verify(self.shared_network_all, subnet2)
+            excetionmsg = "Failed to deploy VM"
+            if excetionmsg in str(e):
+                self.debug("correct exception is raised")
+            else:
+                self.fail("correct exception is not raised")
+
+    # Test cases relating to different gateway subnet check on Shared Network
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_07_different_gateway_subnet_fails_sharednetwork_domain(self):
+        """Validate that Different gateway subnet fail as it is not supported
+        for userdata service shared network with scope domain
+        """
+        # Add subnet of different gateway
+        self.debug("Adding subnet of different gateway")
+
+        try:
+            subnet2 = self.add_subnet_verify(
+                self.shared_network_domain_with_subdomain_d11,
+                self.nuagenetworkdata["publiciprange2"])
+            self.test_data["virtual_machine"]["ipaddress"] = \
+                self.nuagenetworkdata["network_all"]["endip"]
+            vm_1 = self.create_VM(
+                self.shared_network_domain_with_subdomain_d11,
+                account=self.account_d11a)
+            self.delete_VM(vm_1)
+            self.delete_subnet_verify(
+                self.shared_network_domain_with_subdomain_d11, subnet2)
+            self.fail("VM is successfully added which is not expected")
+        except Exception as e:
+            self.debug("different gateway subnet "
+                       "fails as expected with exception %s" % e)
+            self.debug("Going to verify the exception message")
+            self.delete_subnet_verify(
+                self.shared_network_domain_with_subdomain_d11, subnet2)
+            excetionmsg = "Failed to deploy VM"
+            if excetionmsg in str(e):
+                self.debug("correct exception is raised")
+            else:
+                self.fail("correct exception is not raised")
+
+    # Test cases relating to different gateway subnet check on Shared Network
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_08_different_gateway_subnet_fails_sharednetwork_nosubdomain(self):
+        """Validate that Different gateway subnet fail as it is not supported
+        for userdata service shared network with scope nosubdomain
+        """
+        # Add subnet of different gateway
+        self.debug("Adding subnet of different gateway")
+
+        try:
+            subnet2 = self.add_subnet_verify(
+                self.shared_network_domain_d11,
+                self.nuagenetworkdata["publiciprange2"])
+            self.test_data["virtual_machine"]["ipaddress"] = \
+                self.nuagenetworkdata["network_all"]["endip"]
+            vm_1 = self.create_VM(
+                self.shared_network_domain_d11, account=self.account_d11a)
+            self.delete_VM(vm_1)
+            self.delete_subnet_verify(
+                self.shared_network_domain_d11, subnet2)
+            self.fail("VM is successfully added which is not expected")
+        except Exception as e:
+            self.debug("different gateway subnet"
+                       " fails as expected with exception %s" % e)
+            self.debug("Going to verify the exception message")
+            self.delete_subnet_verify(
+                self.shared_network_domain_d11, subnet2)
+            excetionmsg = "Failed to deploy VM"
+            if excetionmsg in str(e):
+                self.debug("correct exception is raised")
+            else:
+                self.fail("correct exception is not raised")
+
+    # Test cases relating to different gateway subnet check on Shared Network
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_09_different_gateway_subnet_fails_sharednetwork_account(self):
+        """Validate that Different gateway subnet fail as it is not supported
+        for userdata service shared network with scope account
+        """
+        # Add subnet of different gateway
+        self.debug("Adding subnet of different gateway")
+
+        try:
+            subnet2 = self.add_subnet_verify(
+                self.shared_network_account_d111a,
+                self.nuagenetworkdata["publiciprange2"])
+            self.test_data["virtual_machine"]["ipaddress"] = \
+                self.nuagenetworkdata["network_all"]["endip"]
+            vm_1 = self.create_VM(
+                self.shared_network_account_d111a, account=self.account_d11a)
+            self.delete_VM(vm_1)
+            self.delete_subnet_verify(
+                self.shared_network_account_d111a, subnet2)
+            self.fail("VM is successfully added which is not expected")
+        except Exception as e:
+            self.debug("different gateway subnet"
+                       " fails as expected with exception %s" % e)
+            self.debug("Going to verify the exception message")
+            self.delete_subnet_verify(
+                self.shared_network_account_d111a, subnet2)
+            excetionmsg = "Failed to deploy VM"
+            if excetionmsg in str(e):
+                self.debug("correct exception is raised")
+            else:
+                self.fail("correct exception is not raised")
+
+    # Test cases relating to reset password in Shared Network
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_10_password_reset_public_sharednetwork_scope_all(self):
+        """Validate that reset password works fine in shared network
+        with scope=all
+        """
+        self.updateTemplate(True)
+        self.debug("Deploy VM to shared Network scope as all")
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["endip"]
+        vm_1 = self.create_VM(
+            self.shared_network_all, account=self.account_d11a)
+
+        # verify VR
+        vr = self.get_Router(self.shared_network_all)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+
+        self.debug("Stopping VM: %s" % vm_1.name)
+        vm_1.stop(self.api_client)
+        self.debug("Resetting VM password for VM: %s" % vm_1.name)
+        password = vm_1.resetPassword(self.api_client)
+        self.debug("Password reset to: %s" % password)
+        vm_1.start(self.api_client)
+
+        # put login to vm here
+        self.delete_VM(vm_1)
+
+    # Test cases relating to reset password in Shared Network
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_11_password_reset_public_sharednetwork_scope_domain(self):
+        """Validate that reset password works fine in shared network
+        with scope as domain with subdomain access
+        """
+        self.updateTemplate(True)
+        self.debug("Deploy VM to shared Network scope as all")
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["endip"]
+        vm_1 = self.create_VM(
+            self.shared_network_domain_with_subdomain_d11,
+            account=self.account_d11a)
+
+        # verify VR
+        vr = self.get_Router(self.shared_network_domain_with_subdomain_d11)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+
+        self.debug("Stopping VM: %s" % vm_1.name)
+        vm_1.stop(self.api_client)
+        self.debug("Resetting VM password for VM: %s" % vm_1.name)
+        password = vm_1.resetPassword(self.api_client)
+        self.debug("Password reset to: %s" % password)
+        vm_1.start(self.api_client)
+
+        # put login to vm here
+        self.delete_VM(vm_1)
+
+    # Test cases relating to reset password in Shared Network
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_12_password_reset_public_sharednetwork_scope_account(self):
+        """Validate that reset password works fine in shared network
+        with scope as Account
+        """
+        self.updateTemplate(True)
+        self.debug("Deploy VM to shared Network scope as all")
+        self.test_data["virtual_machine"]["ipaddress"] = \
+            self.nuagenetworkdata["network_all"]["endip"]
+        vm_1 = self.create_VM(
+            self.shared_network_account_d111a, account=self.account_d11a)
+
+        # verify VR
+        vr = self.get_Router(self.shared_network_account_d111a)
+        self.check_Router_state(vr, state="Running")
+        self.verify_vsd_router(vr)
+
+        self.debug("Stopping VM: %s" % vm_1.name)
+        vm_1.stop(self.api_client)
+        self.debug("Resetting VM password for VM: %s" % vm_1.name)
+        password = vm_1.resetPassword(self.api_client)
+        self.debug("Password reset to: %s" % password)
+        vm_1.start(self.api_client)
+
+        # put login to vm here
+        self.delete_VM(vm_1)
+
+    def test_13_public_sharednetwork_domain_cleanup(self):
+        """Validate that  sharedNetwork Parent domain is cleaned up properly
+        """
+
+        try:
+            self.test_data["virtual_machine"]["ipaddress"] = \
+                self.nuagenetworkdata["network_all"]["endip"]
+            vm_1 = self.create_VM(
+                self.shared_network_domain_with_subdomain_d11,
+                account=self.account_d11a)
+
+            self.verify_vsd_shared_network(
+                self.account_d11a.domainid,
+                self.shared_network_domain_with_subdomain_d11,
+                gateway=self.nuagenetworkdata["network_all"]["gateway"])
+            subnet_id_subdomain = self.get_subnet_id(
+                self.shared_network_domain_with_subdomain_d11.id,
+                self.nuagenetworkdata["network_all"]["gateway"])
+            self.verify_vsd_enterprise_vm(
+                self.account_d11a.domainid,
+                self.shared_network_domain_with_subdomain_d11,
+                vm_1, sharedsubnetid=subnet_id_subdomain)
+
+            subnet_id_subdomain1 = self.get_subnet_id(
+                self.shared_network_domain_with_subdomain_d11.id,
+                self.nuagenetworkdata["publiciprange2"]["gateway"])
+            self.domain_1.delete(self.api_client, cleanup="true")
+        except Exception as e:
+            self.debug("test case Fail")
+            self.debug("exception msg is %s" % e)
+            self.domain_1.delete(self.api_client, cleanup="true")
+            self.fail("Fail to delete the Parent domain")
+
+        self.shared_subnet_not_present(
+            self.shared_network_domain_with_subdomain_d11,
+            subnet_id_subdomain)
+        self.shared_subnet_not_present(
+            self.shared_network_domain_with_subdomain_d11,
+            subnet_id_subdomain1)
+
+    @staticmethod
+    def generateKeysForUser(api_client, account):
+        user = User.list(
+            api_client,
+            account=account.name,
+            domainid=account.domainid)[0]
+
+        return (User.registerUserKeys(
+            api_client,
+            user.id))
diff --git a/test/integration/plugins/nuagevsp/test_nuage_publicsharednetwork.py b/test/integration/plugins/nuagevsp/test_nuage_publicsharednetwork.py
new file mode 100644
index 0000000..dca034e
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_publicsharednetwork.py
@@ -0,0 +1,2575 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# 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.
+
+""" Component tests for Shared Network functionality with Nuage VSP SDN plugin:
+Public Shared Network
+"""
+# Import Local Modules
+from nuageTestCase import nuageTestCase
+from marvin.lib.utils import cleanup_resources
+from marvin.lib.base import (Account,
+                             Domain,
+                             User,
+                             VirtualMachine,
+                             Network,
+                             NetworkOffering)
+from marvin.cloudstackException import CloudstackAclException
+# Import System modules
+from nose.plugins.attrib import attr
+import random
+import string
+
+
+class TestNuagePublicSharedNetwork(nuageTestCase):
+    """Test Shared Network functionality with Nuage VSP SDN plugin:
+    Public Shared Network
+    """
+
+    @classmethod
+    def setUpClass(cls):
+        """
+        Create the following domain tree and accounts that are required for
+        executing Nuage VSP SDN plugin test cases for shared networks:
+            Under ROOT - create domain D1
+            Under domain D1 - Create two subdomains D11 and D12
+            Under each of the domains - create one admin user and couple of
+            regular users.
+        Create shared network with the following scope:
+            1. Network with scope="all"
+            2. Network with scope="domain" with no subdomain access
+            3. Network with scope="domain" with subdomain access
+            4. Network with scope="account"
+        """
+
+        super(TestNuagePublicSharedNetwork, cls).setUpClass()
+        cls.sharednetworkdata = cls.test_data["acl"]
+        cls.nuagenetworkdata = cls.test_data["nuagevsp"]
+
+        cls.domain_1 = None
+        cls.domain_2 = None
+
+        try:
+            # backup default apikey and secretkey
+            cls.default_apikey = cls.api_client.connection.apiKey
+            cls.default_secretkey = cls.api_client.connection.securityKey
+
+            # Create domains
+            cls.domain_1 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain1"]
+            )
+            cls.domain_11 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain11"],
+                parentdomainid=cls.domain_1.id
+            )
+            cls.domain_111 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain111"],
+                parentdomainid=cls.domain_11.id,
+            )
+            cls.domain_12 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain12"],
+                parentdomainid=cls.domain_1.id
+            )
+            cls.domain_2 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain2"]
+            )
+            # Create  1 admin account and 2 user accounts for doamin_1
+            cls.account_d1 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1"],
+                admin=True,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1)
+            cls.user_d1_apikey = user.apikey
+            cls.user_d1_secretkey = user.secretkey
+
+            cls.account_d1a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1A"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1a)
+            cls.user_d1a_apikey = user.apikey
+            cls.user_d1a_secretkey = user.secretkey
+
+            cls.account_d1b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1B"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1b)
+            cls.user_d1b_apikey = user.apikey
+            cls.user_d1b_secretkey = user.secretkey
+
+            # Create  1 admin and 2 user accounts for doamin_11
+            cls.account_d11 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11"],
+                admin=True,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11)
+            cls.user_d11_apikey = user.apikey
+            cls.user_d11_secretkey = user.secretkey
+
+            cls.account_d11a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11A"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11a)
+            cls.user_d11a_apikey = user.apikey
+            cls.user_d11a_secretkey = user.secretkey
+
+            cls.account_d11b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11B"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11b)
+            cls.user_d11b_apikey = user.apikey
+            cls.user_d11b_secretkey = user.secretkey
+
+            # Create  2 user accounts and 1 admin account for doamin_111
+
+            cls.account_d111 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD111"],
+                admin=True,
+                domainid=cls.domain_111.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d111)
+            cls.user_d111_apikey = user.apikey
+            cls.user_d111_secretkey = user.secretkey
+
+            cls.account_d111a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD111A"],
+                admin=False,
+                domainid=cls.domain_111.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d111a)
+            cls.user_d111a_apikey = user.apikey
+            cls.user_d111a_secretkey = user.secretkey
+
+            cls.account_d111b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD111B"],
+                admin=False,
+                domainid=cls.domain_111.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d111b)
+            cls.user_d111b_apikey = user.apikey
+            cls.user_d111b_secretkey = user.secretkey
+
+            # Create  2 user accounts for doamin_12
+            cls.account_d12a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12A"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12a)
+            cls.user_d12a_apikey = user.apikey
+            cls.user_d12a_secretkey = user.secretkey
+
+            cls.account_d12b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12B"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12b)
+            cls.user_d12b_apikey = user.apikey
+            cls.user_d12b_secretkey = user.secretkey
+
+            # Create 1 user account for domain_2
+
+            cls.account_d2a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD2"],
+                admin=False,
+                domainid=cls.domain_2.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d2a)
+            cls.user_d2a_apikey = user.apikey
+            cls.user_d2a_secretkey = user.secretkey
+
+            # Create 1 user account and admin account in "ROOT" domain
+
+            cls.account_roota = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=False,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_roota)
+            cls.user_roota_apikey = user.apikey
+            cls.user_roota_secretkey = user.secretkey
+
+            cls.account_root = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=True,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_root)
+            cls.user_root_apikey = user.apikey
+            cls.user_root_secretkey = user.secretkey
+
+            # service offering is already created in Nuagetestcase
+            cls.sharednetworkdata['mode'] = cls.zone.networktype
+
+            # As admin user , create shared network with scope "all",
+            # "domain" with subdomain access,
+            # "domain" without subdomain access and "account"
+
+            cls.api_client.connection.apiKey = cls.default_apikey
+            cls.api_client.connection.securityKey = cls.default_secretkey
+            cls.test_data["nuagevsp"]["shared_nuage_public_network_offering"][
+                "serviceProviderList"].update({"UserData": 'VirtualRouter'})
+            cls.test_data["nuagevsp"]["shared_nuage_public_network_offering"][
+                "supportedservices"] = 'Dhcp,Connectivity,UserData'
+
+            cls.shared_network_offering = NetworkOffering.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"][
+                    "shared_nuage_public_network_offering"],
+                conservemode=False
+                )
+            # Enable Network offering
+            cls.shared_network_offering.update(cls.api_client, state='Enabled')
+            cls.shared_network_offering_id = cls.shared_network_offering.id
+
+            cls.shared_network_all = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id
+            )
+
+            cls.shared_network_domain_d11 = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"][
+                    "network_domain_with_no_subdomain_access"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=False
+            )
+
+            cls.shared_network_domain_with_subdomain_d11 = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"][
+                    "network_domain_with_subdomain_access"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=True
+            )
+
+            cls.shared_network_account_d111a = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["network_account"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_111.id,
+                accountid=cls.account_d111a.user[0].username
+            )
+            cls.vmdata = {"name": "test",
+                          "displayname": "test"
+                          }
+
+            cls._cleanup = [
+                cls.account_root,
+                cls.account_roota,
+                cls.shared_network_all,
+                cls.shared_network_offering,
+                cls.service_offering,
+            ]
+            user_data = ''.join(random.choice(
+                string.ascii_uppercase + string.digits) for x in range(2500))
+            cls.vmdata["userdata"] = user_data
+        except Exception as e:
+            cls.domain_1.delete(cls.api_client, cleanup="true")
+            cls.domain_2.delete(cls.api_client, cleanup="true")
+            cleanup_resources(cls.api_client, cls._cleanup)
+            raise Exception(
+                "Failed to create the setup required to execute the test "
+                "cases: %s" % e)
+
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+
+        cls.api_client.connection.apiKey = cls.default_apikey
+        cls.api_client.connection.securityKey = cls.default_secretkey
+        cls.domain_1.delete(cls.api_client, cleanup="true")
+        cls.domain_2.delete(cls.api_client, cleanup="true")
+        cleanup_resources(cls.api_client, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.api_client = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+
+    def tearDown(self):
+        # restore back default apikey and secretkey
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        return
+
+    # Test cases relating to deploying Virtual Machine as ROOT admin for other
+    # users in shared network with scope=all
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_domainuser(self):
+        """Validate that ROOT admin is able to deploy a VM for other users in
+        a shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d1a, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d1a.name and
+            vm.domainid == self.account_d1a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for other users in a "
+            "shared network with scope=all")
+        subnet_id = self.get_subnet_id(self.shared_network_all.id,
+                                       self.nuagenetworkdata["network_all"][
+                                           "gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d1a.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_domainadminuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for a domain admin
+        users in a shared network with scope=all
+        """
+
+        # Deploy VM for an admin user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d1, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d1.name and
+            vm.domainid == self.account_d1.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM "
+            "for a domain admin users in a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d1.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_all.id,
+                                       self.nuagenetworkdata["network_all"][
+                                           "gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d1.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainuser(self):
+        """Validate that ROOT admin is able to deploy a VM for any user in a
+        subdomain in a shared network with scope=all
+        """
+        # Deploy VM as user in a subdomain under ROOT
+
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d11a, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM"
+            " for any user in a subdomain in a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_all.id,
+                                       self.nuagenetworkdata["network_all"][
+                                           "gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainadminuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for admin user in a
+        domain in a shared network with scope=all
+        """
+
+        # Deploy VM as an admin user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d11, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for admin user in a domain "
+            "in a shared network with scope=all")
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_all.id,
+                                       self.nuagenetworkdata["network_all"][
+                                           "gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_ROOTuser(self):
+        """Validate that ROOT admin is able to deploy a VM for user in ROOT
+        domain in a shared network with scope=all
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_roota, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_roota.name and
+            vm.domainid == self.account_roota.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for user in ROOT domain "
+            "in a shared network with scope=all")
+        self.verify_vsd_shared_network(
+            self.account_roota.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_all.id,
+                                       self.nuagenetworkdata["network_all"][
+                                           "gateway"])
+        self.verify_vsd_enterprise_vm(self.account_roota.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    # Test cases relating to deploying Virtual Machine as ROOT admin for other
+    # users in shared network with scope=Domain and no subdomain access
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomaccess_domainuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for domain user in a
+        shared network with scope=domain with no subdomain access
+        """
+
+        # Deploy VM as user in a domain that has shared network with no
+        # subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_d11,
+                            testdata=self.vmdata, account=self.account_d11a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for domain user in a "
+            "shared network with scope=domain with no subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_domain_d11, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomaccess_domainadminuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for domain admin
+        user in a shared network with scope=domain with no subdomain access
+        """
+
+        # Deploy VM as an admin user in a domain that has shared network with
+        # no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_d11,
+                            testdata=self.vmdata, account=self.account_d11,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "ROOT admin is not able to deploy VM for domain admin user in "
+            "shared network with scope=domain with no subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11.domainid,
+                                      self.shared_network_domain_d11, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomaccess_subdomainuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for sub domain
+        user in a shared network with scope=domain with no subdomain access
+        """
+
+        # Deploy VM as user in a subdomain under  a domain that has shared
+        # network with no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d111a.name,
+                domainid=self.account_d111a.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy a VM for sub domain user in a "
+                "shared network with scope=domain with no subdomain access")
+
+        except Exception as e:
+            self.debug(
+                "When a user from a subdomain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for sub domain user in a shared network with "
+                    "scope=domain with no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomaccess_subdomainadmin(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for sub domain
+        admin user in a shared network with scope=domain with no subdomain
+        access
+        """
+
+        # Deploy VM as an admin user in a subdomain under  a domain that has
+        # shared network with no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d111.name,
+                domainid=self.account_d111.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for sub domain admin user in "
+                "a shared network with scope=domain with no subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a admin user from a subdomain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for sub domain admin user in a shared "
+                    "network with scope=domain with no subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomaccess_parentdomuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain user in a shared network with scope=domain with no subdomain
+        access
+        """
+
+        # Deploy VM as user in parentdomain of a domain that has shared network
+        # with no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d1a.name,
+                domainid=self.account_d1a.domainid
+            )
+            self.fail(
+                " ROOT admin is able to deploy a VM for parent domain user in "
+                "a shared network with scope=domain with no subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from parent domain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when  ROOT admin tries "
+                    "to deploy a VM for parent domain user in a shared "
+                    "network with scope=domain with no subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomaccess_parentdomadmin(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain admin user in a shared network with scope=domain with no
+        subdomain access
+        """
+
+        # Deploy VM as an admin user in parentdomain of  a domain that has
+        # shared network with no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d1.name,
+                domainid=self.account_d1.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy a VM for parent domain admin "
+                "user in a shared network with scope=domain with no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When an admin user from parent domain deploys a VM in a "
+                "shared network with scope=domain with no subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for parent domain admin user in a shared "
+                    "network with scope=domain with no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomaccess_ROOTuser(self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain admin user in a shared network with scope=domain with no
+        subdomain access
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy a VM for parent domain admin "
+                "user in a shared network with scope=domain with no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When a regular user from ROOT domain deploys a VM in a "
+                "shared network with scope=domain with no subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for parent domain admin user in a shared "
+                    "network with scope=domain with no subdomain access")
+
+    # Test cases relating to deploying Virtual Machine as ROOT admin for other
+    # users in shared network with scope=Domain and with subdomain access
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_domainuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for domain user in a
+        shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as user in a domain that has shared network with subdomain
+        # access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d11a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "ROOT admin is NOT able to deploy a VM for domain user in a "
+            "shared network with scope=domain with subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_domainadminuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for domain admin
+        user in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as an admin user in a domain that has shared network with
+        # subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d11,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for domain admin user in a "
+            "shared network with scope=domain with subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_subdomainuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for subdomain user
+        in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as user in a subdomain under  a domain that has shared
+        # network with subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d111a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111a.name and
+            vm.domainid == self.account_d111a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for subdomain user in a "
+            "shared network with scope=domain with subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d111a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d111a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_subdomainadmin(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for subdomain admin
+        user in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as an admin user in a subdomain under  a domain that has
+        # shared network with subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d111,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111.name and
+            vm.domainid == self.account_d111.domainid,
+            True,
+            "ROOT admin is not able to deploy VM for subdomain admin user in "
+            "a shared network with scope=domain subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d111.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d111.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_parentdomainuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain user in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as user in parentdomain of a domain that has shared network
+        # with subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_d1a.name,
+                domainid=self.account_d1a.domainid
+            )
+            self.fail(
+                "ROOT admin is NOT able to deploy a VM for parent domain user "
+                "in a shared network with scope=domain with subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from parent domain deploys a VM in a shared "
+                "network with scope=domain with subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for parent domain user in a shared network "
+                    "with scope=domain with subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_parentdomainadmin(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain admin user in a shared network with scope=domain with subdomain
+        access
+        """
+        # Deploy VM as an admin user in parentdomain of  a domain that has
+        # shared network with subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_d1.name,
+                domainid=self.account_d1.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for parent domain admin user "
+                "in a shared network with scope=domain subdomain access ")
+        except Exception as e:
+            self.debug(
+                "When an admin user from parent domain deploys a VM in a "
+                "shared network with scope=domain with  subdomain access %s" %
+                e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for parent domain admin user in a shared "
+                    "network with scope=domain with subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_ROOTuser(self):
+        """Validate that ROOT admin is NOT able to deploy a VM for user in ROOT
+        domain in a shared network with scope=domain with subdomain access
+        """
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_roota_apikey
+        self.api_client.connection.securityKey = self.user_roota_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy a VM for user in ROOT domain in "
+                "a shared network with scope=domain with subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from ROOT domain deploys a VM in a shared "
+                "network with scope=domain with subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for user in ROOT domain in a shared network "
+                    "with scope=domain with subdomain access")
+
+    # Test cases relating to deploying Virtual Machine as ROOT admin for other
+    # users in shared network with scope=account
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_domainuser(self):
+        """Validate that ROOT admin is NOT able to deploy a VM for user in the
+        same domain but in a different account in a shared network with
+        scope=account
+        """
+
+        # Deploy VM as user in a domain under the same domain but different
+        # account from the account that has a shared network with scope=account
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111B"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111B"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d111b.name,
+                domainid=self.account_d111b.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for user in the same domain "
+                "but in different account in shared network scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from same domain but different account deploys a "
+                "VM in a shared network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for user in the same domain but in a "
+                    "different account in a shared network with scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_domainadminuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for admin user
+        in the same domain but in a different account in a shared network with
+        scope=account
+        """
+
+        # Deploy VM as admin user for a domain that has an account with shared
+        # network with scope=account
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d111.name,
+                domainid=self.account_d111.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for admin user in same "
+                "domain but in different account in shared network with "
+                "scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from same domain but different account deploys a "
+                "VM in a shared network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for admin user in the same domain but in a "
+                    "different account in a shared network with scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_user(self):
+        """Validate that ROOT admin is able to deploy a VM for regular user in
+        a shared network with scope=account
+        """
+
+        # Deploy VM as account with shared network with scope=account
+
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_account_d111a,
+                            testdata=self.vmdata, account=self.account_d111a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111a.name and
+            vm.domainid == self.account_d111a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for regular user in a "
+            "shared network with scope=account")
+
+        self.verify_vsd_shared_network(self.account_d111a.domainid,
+                                       self.shared_network_account_d111a,
+                                       gateway=self.nuagenetworkdata[
+                                           "network_account"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_account_d111a.id,
+                                       self.nuagenetworkdata[
+                                           "network_account"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d111a.domainid,
+                                      self.shared_network_account_d111a, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_differentdomain(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for a admin user
+        in a shared network with scope=account which the admin user does not
+        have access to
+        """
+
+        # Deploy VM as an admin user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD2A"]["name"] + \
+            "-shared-scope-account-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD2A"]["displayname"] + \
+            "-shared-scope-account-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d2a.name,
+                domainid=self.account_d2a.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for admin user in shared "
+                "network scope=account which admin user does not have access")
+        except Exception as e:
+            self.debug("account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for a admin user in a shared network with "
+                    "scope=account which the admin user does not have access "
+                    "to ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_ROOTuser(self):
+        """Validate that ROOT admin is NOT able to deploy a VM for a user in
+        ROOT domain in a shared network with scope=account which the user does
+        not have access to
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-account-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-account-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for a user in ROOT domain in "
+                "shared network scope=account which user does not have access")
+        except Exception as e:
+            self.debug(
+                "When a user from ROOT domain deploys a VM in a shared "
+                "network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for a user in ROOT domain in a shared "
+                    "network with scope=account which the user does not have "
+                    "access to ")
+
+    # Test cases relating to deploying Virtual Machine as Domain admin for
+    # other users in shared network with scope=all
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for a domain user
+        in a shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d1a, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d1a.name and
+            vm.domainid == self.account_d1a.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for a domain user in a "
+            "shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d1a.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d1a.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domadminuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for a domain admin
+        user in a shared network with scope=all
+        """
+
+        # Deploy VM for an admin user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d1, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d1.name and
+            vm.domainid == self.account_d1.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for a domain admin user "
+            "in a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d1.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d1.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for a sub domain
+        user in a shared network with scope=all
+        """
+
+        # Deploy VM as user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d11a, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for a sub domain user in "
+            "a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomadmin(
+            self):
+        """Validate that Domain admin is able to deploy a VM for a sub domain
+        admin user in a shared network with scope=all
+        """
+
+        # Deploy VM as an admin user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d11, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for a sub domain admin "
+            "user in a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_ROOTuser(self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        ROOT domain in a shared network with scope=all
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-all"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-all"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_all.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "Domain admin is NOT able to deploy a VM for user in ROOT "
+                "domain in a shared network with scope=all")
+        except Exception as e:
+            self.debug(
+                "When a Domain admin user deploys a VM for ROOT user in a "
+                "shared network with scope=all %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin is NOT "
+                    "able to deploy a VM for user in ROOT domain in a shared "
+                    "network with scope=all")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_crossdomuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        other domain in a shared network with scope=all
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + "-shared-scope-all"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-all"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_all.id,
+                accountid=self.account_d2a.name,
+                domainid=self.account_d2a.domainid
+            )
+            self.fail(
+                "Domain admin user is able to Deploy VM for a domain user he "
+                "does not have access to in a shared network with "
+                "scope=domain with no subdomain access ")
+        except Exception as e:
+            self.debug(
+                "When a Domain admin user  deploys a VM for a domain user he "
+                "does not have access to in a shared network with "
+                "scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error mesage validation failed when Domain admin user "
+                    "tries to Deploy VM for a domain user he does not have "
+                    "access to in a shared network with scope=domain with no "
+                    "subdomain access ")
+
+    # Test cases relating to deploying Virtual Machine as Domain admin for
+    # other users in shared network with scope=Domain and no subdomain access
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_domuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for domain user in
+        a shared network with scope=Domain and no subdomain access
+        """
+
+        # Deploy VM as user in a domain that has shared network with no
+        # subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_d11,
+                            testdata=self.vmdata, account=self.account_d11a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for domain user in a "
+            "shared network with scope=Domain and no subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_domain_d11, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_domadmin(
+            self):
+        """Validate that Domain admin is able to deploy a VM for domain admin
+        user in a shared network with scope=Domain and no subdomain access
+        """
+
+        # Deploy VM as an admin user in a domain that has shared network with
+        # no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        vm = self.create_VM(self.shared_network_domain_d11,
+                            testdata=self.vmdata, account=self.account_d11,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "Admin User in a  domain that has a shared network with no "
+            "subdomain access failed to Deploy VM in a shared network with "
+            "scope=domain with no subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11.domainid,
+                                      self.shared_network_domain_d11, vm,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_subdomusr(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for sub domain
+        user in a shared network with scope=Domain and no subdomain access
+        """
+
+        # Deploy VM as user in a subdomain under  a domain that has shared
+        # network with no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d111a.name,
+                domainid=self.account_d111a.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy VM for sub domain user in a "
+                "shared network with scope=Domain and no subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from a subdomain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for sub domain user in a shared network "
+                    "with scope=Domain and no subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_subdomadm(
+            self):
+        """Valiadte that Domain admin is NOT able to deploy a VM for sub domain
+        admin user in a shared network with scope=Domain and no subdomain
+        access
+        """
+
+        # Deploy VM as an admin user in a subdomain under  a domain that has
+        # shared network with no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d111.name,
+                domainid=self.account_d111.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for sub domain admin "
+                "user in a shared network with scope=Domain no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When a admin user from a subdomain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for sub domain admin user in a shared "
+                    "network with scope=Domain and no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_pardomusr(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for parent
+        domain user in a shared network with scope=Domain and no subdomain
+        access
+        """
+
+        # Deploy VM as user in parentdomain of a domain that has shared network
+        # with no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d1a.name,
+                domainid=self.account_d1a.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for parent domain user "
+                "in a shared network with scope=Domain and no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When a user from parent domain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for parent domain user in a shared "
+                    "network with scope=Domain and no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_pardomadm(
+            self):
+        """Validate that Domain admin is NOT able to deploy VM for parent
+        domain admin user in shared network with scope=Domain and no subdomain
+        access
+        """
+
+        # Deploy VM as an admin user in parentdomain of  a domain that has
+        # shared network with no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d1.name,
+                domainid=self.account_d1.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy VM for parent domain admin "
+                "user in a shared network with scope=Domain no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When an admin user from parent domain deploys a VM in a "
+                "shared network with scope=domain with no subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for parent domain admin user in a shared "
+                    "network with scope=Domain and no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_ROOTuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        ROOT domain in a shared network with scope=Domain and no subdomain
+        access
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for user in ROOT domain "
+                "in a shared network with scope=Domain and no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When a regular user from ROOT domain deploys a VM in a "
+                "shared network with scope=domain with no subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for user in ROOT domain in a shared "
+                    "network with scope=Domain and no subdomain access")
+
+    # Test cases relating to deploying Virtual Machine as Domain admin for
+    # other users in shared network with scope=Domain and with subdomain access
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_domainuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for regular user
+        in domain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as user in a domain that has shared network with subdomain
+        # access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d11a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "Domain admin is not able to deploy VM for regular user in domain "
+            "in a shared network with scope=Domain subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_domainadmin(
+            self):
+        """Validate that Domain admin is able to deploy a VM for admin user in
+        domain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as an admin user in a domain that has shared network with
+        # subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d11,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for admin user in domain "
+            "in a shared network with scope=Domain subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_subdomuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for regular user
+        in subdomain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as user in a subdomain under  a domain that has shared
+        # network with subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d111a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111a.name and
+            vm.domainid == self.account_d111a.domainid,
+            True,
+            "Domain admin not able to deploy VM for regular user in subdomain "
+            "in shared network with scope=Domain subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d111a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d111a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_subdomadmin(
+            self):
+        """Validate that Domain admin is able to deploy a VM for admin user in
+        subdomain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as an admin user in a subdomain under  a domain that has
+        # shared network with subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d111,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111.name and
+            vm.domainid == self.account_d111.domainid,
+            True,
+            "Domain admin is not able to deploy VM for admin user in "
+            "subdomain in a shared network with scope=Domain subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d111.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d111.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_pardomuser(
+            self):
+        """Validate that Domain admin NOT able to deploy VM for regular user in
+        parent domain in shared network with scope=Domain subdomain access
+        """
+
+        # Deploy VM as user in parentdomain of a domain that has shared network
+        # with subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_d1a.name,
+                domainid=self.account_d1a.domainid
+            )
+            self.fail(
+                " Domain admin is able to deploy VM for regular user in "
+                "parent domain in a shared network with scope=Domain "
+                "subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from parent domain deploys a VM in a shared "
+                "network with scope=domain with subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for regular user in parent domain in a "
+                    "shared network with scope=Domain and subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_pardomadmin(
+            self):
+        """Validate that Domain admin is NOT able to deploy VM for admin user
+        in parent domain in shared network with scope=Domain subdomain access
+        """
+
+        # Deploy VM as an admin user in parentdomain of  a domain that has
+        # shared network with subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_d1.name,
+                domainid=self.account_d1.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for admin user in parent "
+                "domain in a shared network with scope=Domain subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When an admin user from parent domain deploys a VM in a "
+                "shared network with scope=domain with  subdomain access %s" %
+                e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for admin user in parent domain in a "
+                    "shared network with scope=Domain and subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomainaccess_ROOTuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        ROOT domain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for user in ROOT domain "
+                "in a shared network with scope=Domain and subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from ROOT domain deploys a VM in a shared "
+                "network with scope=domain with subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for user in ROOT domain in a shared "
+                    "network with scope=Domain and subdomain access")
+
+    # Test cases relating to deploying Virtual Machine as Domain admin for
+    # other users in shared network with scope=account
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        the same domain but belonging to a different account in a shared
+        network with scope=account
+        """
+
+        # Deploy VM as user in a domain under the same domain but different
+        # account from the acount that has a shared network with scope=account
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111B"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111B"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d111b.name,
+                domainid=self.account_d111b.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for user in the same "
+                "domain but belonging to a different account in a shared "
+                "network with scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from same domain but different account deploys a "
+                "VM in a shared network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for user in the same domain but belonging "
+                    "to a different account in a shared network with "
+                    "scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domadmin(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for an admin
+        user in the same domain but belonging to a different account in a
+        shared network with scope=account
+        """
+
+        # Deploy VM as admin user for a domain that has an account with shared
+        # network with scope=account
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d111.name,
+                domainid=self.account_d111.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for user in the same "
+                "domain but belonging to a different account in a shared "
+                "network with scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from same domain but different account deploys a "
+                "VM in a shared network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for user in the same domain but belonging "
+                    "to a different account in a shared network with "
+                    "scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_user(self):
+        """Validate that Domain admin is able to deploy a VM for an regular
+        user in a shared network with scope=account
+        """
+
+        # Deploy VM as account with shared network with scope=account
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_account_d111a,
+                            testdata=self.vmdata, account=self.account_d111a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111a.name and
+            vm.domainid == self.account_d111a.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for an regular user in a "
+            "shared network with scope=account")
+        self.verify_vsd_shared_network(self.account_d111a.domainid,
+                                       self.shared_network_account_d111a,
+                                       gateway=self.nuagenetworkdata[
+                                           "network_account"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_account_d111a.id,
+                                       self.nuagenetworkdata[
+                                           "network_account"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d111a.domainid,
+                                      self.shared_network_account_d111a, vm,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_diffdomain(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for an
+        regular user from a different domain in a shared network with
+        scope=account
+        """
+
+        # Deploy VM as an admin user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD2A"]["name"] + \
+            "-shared-scope-account-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD2A"]["displayname"] + \
+            "-shared-scope-account-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d2a.name,
+                domainid=self.account_d2a.domainid
+            )
+            self.fail(
+                "Domain admin is able able to deploy a VM for an regular user "
+                "from a differnt domain in a shared network with "
+                "scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from different domain deploys a VM in a shared "
+                "network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for an regular user from a differnt "
+                    "domain in a shared network with scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_ROOTuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for an regular
+        user in ROOT domain in a shared network with scope=account
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-account-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-account-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for an regular user in "
+                "ROOT domain in a shared network with scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from ROOT domain deploys a VM in a shared "
+                "network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for an regular user in ROOT domain in a "
+                    "shared network with scope=account")
+
+    # Test cases relating to deploying Virtual Machine as Regular user for
+    # other users in shared network with scope=all
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_regularuser_scope_all_anotherusers(
+            self):
+        """Validate that regular user is NOT able to deploy a VM for
+        another user in the same  domain in a shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_all.id,
+                accountid=self.account_d12a.name,
+                domainid=self.account_d12a.domainid
+            )
+            self.fail(
+                "Regular user is allowed to deploy a VM for another user in "
+                "the same domain in a shared network with scope=all")
+        except Exception as e:
+            self.debug(
+                "When a regular user deploys a VM for another user in the "
+                "same domain in a shared network with scope=all %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_ACCOUNT):
+                self.fail(
+                    "Error message validation failed when Regular user tries "
+                    "to deploy a VM for another user in the same domain in a "
+                    "shared network with scope=all")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_regularuser_scope_all_crossdomain(
+            self):
+        """Validate that regular user is NOT able to deploy a VM for
+        another user in a different domain in a shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+        self.vmdata["name"] = self.sharednetworkdata["vmD11A"][
+                                  "name"] + "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_all.id,
+                accountid=self.account_d2a.name,
+                domainid=self.account_d2a.domainid
+            )
+            self.fail(
+                "Regular user is allowed to deploy a VM for another user in "
+                "the same domain in a shared network with scope=all")
+        except Exception as e:
+            self.debug(
+                "When a regular user deploys a VM for another user in the "
+                "same domain in a shared network with scope=all %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_ACCOUNT):
+                self.fail(
+                    "Error message validation failed when Regular user tries "
+                    "to deploy a VM for another user in the same domain in a "
+                    "shared network with scope=all")
+
+    @staticmethod
+    def generateKeysForUser(api_client, account):
+        user = User.list(
+            api_client,
+            account=account.name,
+            domainid=account.domainid
+        )[0]
+
+        return (User.registerUserKeys(
+            api_client,
+            user.id
+        ))
diff --git a/test/integration/plugins/nuagevsp/test_nuage_sharednetwork_deployVM.py b/test/integration/plugins/nuagevsp/test_nuage_sharednetwork_deployVM.py
new file mode 100644
index 0000000..1433cf0
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_sharednetwork_deployVM.py
@@ -0,0 +1,2573 @@
+# 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.
+
+"""Component tests for Shared Network functionality with Nuage VSP SDN plugin:
+Deploying Virtual Machines using impersonation
+(passing account and domainId parameters)
+"""
+# Import Local Modules
+from marvin.lib.utils import cleanup_resources
+from marvin.lib.base import (Account,
+                             Domain,
+                             User,
+                             VirtualMachine,
+                             Network,
+                             NetworkOffering)
+from marvin.cloudstackException import CloudstackAclException
+from nuageTestCase import nuageTestCase
+# Import System modules
+from nose.plugins.attrib import attr
+import random
+import string
+
+
+class TestNuageSharedNetworkDeployVm(nuageTestCase):
+    @classmethod
+    def setUpClass(cls):
+        """
+        Create the following domain tree and accounts that are required for
+        executing Nuage VSP SDN plugin test cases for shared networks:
+            Under ROOT - create domain D1
+            Under domain D1 - Create two subdomains D11 and D12
+            Under each of the domains - create one admin user and couple of
+            regular users.
+        Create shared network with the following scope:
+            1. Network with scope="all"
+            2. Network with scope="domain" with no subdomain access
+            3. Network with scope="domain" with subdomain access
+            4. Network with scope="account"
+        """
+
+        super(TestNuageSharedNetworkDeployVm, cls).setUpClass()
+        cls.sharednetworkdata = cls.test_data["acl"]
+        cls.nuagenetworkdata = cls.test_data["nuagevsp"]
+
+        cls.domain_1 = None
+        cls.domain_2 = None
+
+        try:
+            # backup default apikey and secretkey
+            cls.default_apikey = cls.api_client.connection.apiKey
+            cls.default_secretkey = cls.api_client.connection.securityKey
+
+            # Create domains
+            cls.domain_1 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain1"]
+            )
+            cls.domain_11 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain11"],
+                parentdomainid=cls.domain_1.id
+            )
+            cls.domain_111 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain111"],
+                parentdomainid=cls.domain_11.id,
+            )
+            cls.domain_12 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain12"],
+                parentdomainid=cls.domain_1.id
+            )
+            cls.domain_2 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain2"]
+            )
+            # Create  1 admin account and 2 user accounts for doamin_1
+            cls.account_d1 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1"],
+                admin=True,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1)
+            cls.user_d1_apikey = user.apikey
+            cls.user_d1_secretkey = user.secretkey
+
+            cls.account_d1a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1A"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1a)
+            cls.user_d1a_apikey = user.apikey
+            cls.user_d1a_secretkey = user.secretkey
+
+            cls.account_d1b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1B"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1b)
+            cls.user_d1b_apikey = user.apikey
+            cls.user_d1b_secretkey = user.secretkey
+
+            # Create  1 admin and 2 user accounts for doamin_11
+            cls.account_d11 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11"],
+                admin=True,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11)
+            cls.user_d11_apikey = user.apikey
+            cls.user_d11_secretkey = user.secretkey
+
+            cls.account_d11a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11A"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11a)
+            cls.user_d11a_apikey = user.apikey
+            cls.user_d11a_secretkey = user.secretkey
+
+            cls.account_d11b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11B"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11b)
+            cls.user_d11b_apikey = user.apikey
+            cls.user_d11b_secretkey = user.secretkey
+
+            # Create  2 user accounts and 1 admin account for doamin_111
+
+            cls.account_d111 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD111"],
+                admin=True,
+                domainid=cls.domain_111.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d111)
+            cls.user_d111_apikey = user.apikey
+            cls.user_d111_secretkey = user.secretkey
+
+            cls.account_d111a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD111A"],
+                admin=False,
+                domainid=cls.domain_111.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d111a)
+            cls.user_d111a_apikey = user.apikey
+            cls.user_d111a_secretkey = user.secretkey
+
+            cls.account_d111b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD111B"],
+                admin=False,
+                domainid=cls.domain_111.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d111b)
+            cls.user_d111b_apikey = user.apikey
+            cls.user_d111b_secretkey = user.secretkey
+
+            # Create  2 user accounts for doamin_12
+            cls.account_d12a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12A"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12a)
+            cls.user_d12a_apikey = user.apikey
+            cls.user_d12a_secretkey = user.secretkey
+
+            cls.account_d12b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12B"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12b)
+            cls.user_d12b_apikey = user.apikey
+            cls.user_d12b_secretkey = user.secretkey
+
+            # Create 1 user account for domain_2
+
+            cls.account_d2a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD2"],
+                admin=False,
+                domainid=cls.domain_2.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d2a)
+            cls.user_d2a_apikey = user.apikey
+            cls.user_d2a_secretkey = user.secretkey
+
+            # Create 1 user account and admin account in "ROOT" domain
+
+            cls.account_roota = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=False,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_roota)
+            cls.user_roota_apikey = user.apikey
+            cls.user_roota_secretkey = user.secretkey
+
+            cls.account_root = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=True,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_root)
+            cls.user_root_apikey = user.apikey
+            cls.user_root_secretkey = user.secretkey
+
+            # service offering is already created in Nuagetestcase
+            cls.sharednetworkdata['mode'] = cls.zone.networktype
+
+            # As admin user , create shared network with scope "all", "domain"
+            # with subdomain access , "domain" without subdomain access and
+            # "account"
+            cls.api_client.connection.apiKey = cls.default_apikey
+            cls.api_client.connection.securityKey = cls.default_secretkey
+
+            cls.test_data["nuagevsp"][
+                "shared_nuage_network_offering"]["serviceProviderList"]\
+                .update({"UserData": 'VirtualRouter'})
+            cls.test_data["nuagevsp"]["shared_nuage_network_offering"][
+                "supportedservices"] = 'Dhcp,Connectivity,UserData'
+            for key, value in cls.test_data["nuagevsp"][
+                "shared_nuage_network_offering"]["serviceProviderList"]\
+                    .iteritems():
+                cls.debug("elements are  %s and value is %s" % (key, value))
+
+            cls.shared_network_offering = NetworkOffering.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["shared_nuage_network_offering"],
+                conservemode=False
+                )
+            # Enable Network offering
+            cls.shared_network_offering.update(cls.api_client, state='Enabled')
+            cls.shared_network_offering_id = cls.shared_network_offering.id
+
+            cls.shared_network_all = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id
+            )
+
+            cls.shared_network_domain_d11 = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"][
+                    "network_domain_with_no_subdomain_access"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=False
+            )
+
+            cls.shared_network_domain_with_subdomain_d11 = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"][
+                    "network_domain_with_subdomain_access"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=True
+            )
+
+            cls.shared_network_account_d111a = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["network_account"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_111.id,
+                accountid=cls.account_d111a.user[0].username
+            )
+            cls.vmdata = {"name": "test",
+                          "displayname": "test"
+                          }
+
+            cls._cleanup = [
+                cls.account_root,
+                cls.account_roota,
+                cls.shared_network_all,
+                cls.shared_network_offering,
+                cls.service_offering,
+            ]
+            user_data = ''.join(random.choice(
+                string.ascii_uppercase + string.digits) for x in range(2500))
+            cls.vmdata["userdata"] = user_data
+        except Exception as e:
+            cls.domain_1.delete(cls.api_client, cleanup="true")
+            cls.domain_2.delete(cls.api_client, cleanup="true")
+            cleanup_resources(cls.api_client, cls._cleanup)
+            raise Exception(
+                "Failed to create the setup required to execute the test "
+                "cases: %s" % e)
+
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+
+        cls.api_client.connection.apiKey = cls.default_apikey
+        cls.api_client.connection.securityKey = cls.default_secretkey
+        cls.domain_1.delete(cls.api_client, cleanup="true")
+        cls.domain_2.delete(cls.api_client, cleanup="true")
+        cleanup_resources(cls.api_client, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.api_client = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+
+    def tearDown(self):
+        # restore back default apikey and secretkey
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        return
+
+    # Test cases relating to deploying Virtual Machine as ROOT admin for other
+    # users in shared network with scope=all
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_domainuser(self):
+        """Validate that ROOT admin is able to deploy a VM for other users in a
+        shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d1a, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d1a.name and
+            vm.domainid == self.account_d1a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for other users in a "
+            "shared network with scope=all")
+        subnet_id = self.get_subnet_id(self.shared_network_all.id,
+                                       self.nuagenetworkdata["network_all"][
+                                           "gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d1a.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_domainadminuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for a domain admin
+        users in a shared network with scope=all
+        """
+
+        # Deploy VM for an admin user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d1, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d1.name and
+            vm.domainid == self.account_d1.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM "
+            "for a domain admin users in a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d1.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d1.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainuser(self):
+        """Validate that ROOT admin is able to deploy a VM for any user in a
+        subdomain in a shared network with scope=all
+        """
+
+        # Deploy VM as user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d11a, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM"
+            " for any user in a subdomain in a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainadminuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for admin user in a
+        domain in a shared network with scope=all
+        """
+
+        # Deploy VM as an admin user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d11, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for admin user in a domain "
+            "in a shared network with scope=all")
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_all_ROOTuser(self):
+        """Validate that ROOT admin is able to deploy a VM for user in ROOT
+        domain in a shared network with scope=all
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-all-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-all-root-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_roota, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_roota.name and
+            vm.domainid == self.account_roota.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for user in ROOT domain in "
+            "a shared network with scope=all")
+        self.verify_vsd_shared_network(
+            self.account_roota.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_roota.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    # Test cases relating to deploying Virtual Machine as ROOT admin for other
+    # users in shared network with scope=Domain and no subdomain access
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomccess_domainuser(self):
+        """Validate that ROOT admin is able to deploy a VM for domain user in
+        a shared network with scope=domain with no subdomain access
+        """
+
+        # Deploy VM as user in a domain that has shared network with no
+        # subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_d11,
+                            testdata=self.vmdata, account=self.account_d11a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for domain user in a "
+            "shared network with scope=domain with no subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_domain_d11, vm,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomccess_domainadminuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for domain admin
+        user in a shared network with scope=domain with no subdomain access
+        """
+
+        # Deploy VM as an admin user in a domain that has shared network with
+        # no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_d11,
+                            testdata=self.vmdata, account=self.account_d11,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "ROOT admin is not able to deploy VM for domain admin user in "
+            "shared network with scope=domain with no subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11.domainid,
+                                      self.shared_network_domain_d11, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomccess_subdomainuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for sub domain
+        user in a shared network with scope=domain with no subdomain access
+        """
+
+        # Deploy VM as user in a subdomain under  a domain that has shared
+        # network with no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d111a.name,
+                domainid=self.account_d111a.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy a VM for sub domain user in a "
+                "shared network with scope=domain with no subdomain access")
+
+        except Exception as e:
+            self.debug(
+                "When a user from a subdomain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for sub domain user in a shared network with "
+                    "scope=domain with no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomccess_subdomainadmin(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for sub domain
+        admin user in a shared network with scope=domain with no subdomain
+        access
+        """
+
+        # Deploy VM as an admin user in a subdomain under  a domain that has
+        # shared network with no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d111.name,
+                domainid=self.account_d111.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for sub domain admin user in "
+                "a shared network with scope=domain with no subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a admin user from a subdomain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for sub domain admin user in a shared "
+                    "network with scope=domain with no subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomccess_parentdomainuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain user in a shared network with scope=domain with no subdomain
+        access
+        """
+
+        # Deploy VM as user in parentdomain of a domain that has shared network
+        # with no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d1a.name,
+                domainid=self.account_d1a.domainid
+            )
+            self.fail(
+                " ROOT admin is able to deploy a VM for parent domain user in "
+                "a shared network with scope=domain with no subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from parent domain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when  ROOT admin tries "
+                    "to deploy a VM for parent domain user in a shared "
+                    "network with scope=domain with no subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomccess_parentdomadmin(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain admin user in a shared network with scope=domain with no
+        subdomain access
+        """
+
+        # Deploy VM as an admin user in parentdomain of  a domain that has
+        # shared network with no subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d1.name,
+                domainid=self.account_d1.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy a VM for parent domain admin "
+                "user in a shared network with scope=domain with no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When an admin user from parent domain deploys a VM in a "
+                "shared network with scope=domain with no subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for parent domain "
+                    "admin user in a shared network with scope=domain with no "
+                    "subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_nosubdomccess_ROOTuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain admin user in a shared network with scope=domain with no
+        subdomain access
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy a VM for parent domain admin "
+                "user in a shared network with scope=domain with no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When a regular user from ROOT domain deploys a VM in a "
+                "shared network with scope=domain with no subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for parent domain admin user in a shared "
+                    "network with scope=domain with no subdomain access")
+
+    # Test cases relating to deploying Virtual Machine as ROOT admin for other
+    # users in shared network with scope=Domain and with subdomain access
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_domainuser(self):
+        """Validate that ROOT admin is able to deploy a VM for domain user in a
+        shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as user in a domain that has shared network with subdomain
+        # access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d11a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "ROOT admin is NOT able to deploy a VM for domain user in a "
+            "shared network with scope=domain with subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_domainadminuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for domain admin
+        user in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as an admin user in a domain that has shared network with
+        # subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d11,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for domain admin user in a "
+            "shared network with scope=domain with subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_subdomainuser(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for subdomain user
+        in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as user in a subdomain under  a domain that has shared
+        # network with subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d111a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111a.name and
+            vm.domainid == self.account_d111a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for subdomain user in a "
+            "shared network with scope=domain with subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d111a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d111a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_subdomainadmin(
+            self):
+        """Validate that ROOT admin is able to deploy a VM for subdomain admin
+        user in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as an admin user in a subdomain under  a domain that has
+        # shared network with subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d111,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111.name and
+            vm.domainid == self.account_d111.domainid,
+            True,
+            "ROOT admin is not able to deploy VM for subdomain admin user in "
+            "a shared network with scope=domain subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d111.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d111.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_parentdomainuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain user in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as user in parentdomain of a domain that has shared network
+        # with subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_d1a.name,
+                domainid=self.account_d1a.domainid
+            )
+            self.fail(
+                "ROOT admin is NOT able to deploy a VM for parent domain user "
+                "in a shared network with scope=domain with subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from parent domain deploys a VM in a shared "
+                "network with scope=domain with subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for parent domain user in a shared network "
+                    "with scope=domain with subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_parentdomainadmin(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for parent
+        domain admin user in a shared network with scope=domain with subdomain
+        access
+        """
+
+        # Deploy VM as an admin user in parentdomain of  a domain that has
+        # shared network with subdomain access
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_d1.name,
+                domainid=self.account_d1.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for parent domain admin user "
+                "in a shared network with scope=domain subdomain access ")
+        except Exception as e:
+            self.debug(
+                "When an admin user from parent domain deploys a VM in a "
+                "shared network with scope=domain with  subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for parent domain admin user in a shared "
+                    "network with scope=domain with subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_subdomaccess_ROOTuser(self):
+        """Validate that ROOT admin is NOT able to deploy a VM for user in ROOT
+        domain in a shared network with scope=domain with subdomain access
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_roota_apikey
+        self.api_client.connection.securityKey = self.user_roota_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy a VM for user in ROOT domain in "
+                "a shared network with scope=domain with subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from ROOT domain deploys a VM in a shared "
+                "network with scope=domain with subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for user in ROOT domain in a shared network "
+                    "with scope=domain with subdomain access")
+
+    # Test cases relating to deploying Virtual Machine as ROOT admin for other
+    # users in shared network with scope=account
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_domainuser(self):
+        """
+        Valiate that ROOT admin is NOT able to deploy a VM for user in the same
+        domain but in a different account in a shared network with
+        scope=account
+        """
+
+        # Deploy VM as user in a domain under the same domain but different
+        # account from the account that has a shared network with scope=account
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111B"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111B"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d111b.name,
+                domainid=self.account_d111b.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for user in the same domain "
+                "but in different account in shared network scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from same domain but different account deploys "
+                "a VM in a shared network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for user in the same domain but in a "
+                    "different account in a shared network with scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_domainadminuser(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for admin user
+        in the same domain but in a different account in a shared network with
+        scope=account
+        """
+
+        # Deploy VM as admin user for a domain that has an account with shared
+        # network with scope=account
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d111.name,
+                domainid=self.account_d111.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for admin user in same "
+                "domain but in different account in shared network with "
+                "scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from same domain but different account deploys a "
+                "VM in a shared network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for admin user in the same domain but in a "
+                    "different account in a shared network with scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_user(self):
+        """Validate that ROOT admin is able to deploy a VM for regular user in
+        a shared network with scope=account
+        """
+
+        # Deploy VM as account with shared network with scope=account
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-root-admin"
+
+        vm = self.create_VM(self.shared_network_account_d111a,
+                            testdata=self.vmdata, account=self.account_d111a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111a.name and
+            vm.domainid == self.account_d111a.domainid,
+            True,
+            "ROOT admin is not able to deploy a VM for regular user in a "
+            "shared network with scope=account")
+
+        self.verify_vsd_shared_network(self.account_d111a.domainid,
+                                       self.shared_network_account_d111a,
+                                       gateway=self.nuagenetworkdata[
+                                           "network_account"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_account_d111a.id,
+                                       self.nuagenetworkdata[
+                                           "network_account"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d111a.domainid,
+                                      self.shared_network_account_d111a, vm,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_differentdomain(
+            self):
+        """Validate that ROOT admin is NOT able to deploy a VM for a admin user
+        in a shared network with scope=account which the admin user does not
+        have access to
+        """
+
+        # Deploy VM as an admin user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD2A"]["name"] + \
+            "-shared-scope-account-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD2A"]["displayname"] + \
+            "-shared-scope-account-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d2a.name,
+                domainid=self.account_d2a.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for admin user in shared "
+                "network scope=account which admin user does not have access")
+        except Exception as e:
+            self.debug("account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for a admin user in a shared network with "
+                    "scope=account which the admin user does not have access "
+                    "to ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_admin_scope_account_ROOTuser(self):
+        """Validate that ROOT admin is NOT able to deploy a VM for a user in
+        ROOT domain in a shared network with scope=account which the user does
+        not have access to
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-account-root-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-account-root-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "ROOT admin is able to deploy VM for a user in ROOT domain in "
+                "shared network scope=account which user does not have access")
+        except Exception as e:
+            self.debug(
+                "When a user from ROOT domain deploys a VM in a shared "
+                "network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when ROOT admin tries to "
+                    "deploy a VM for a user in ROOT domain in a shared "
+                    "network with scope=account which the user does not have "
+                    "access to ")
+
+    # Test cases relating to deploying Virtual Machine as Domain admin for
+    # other users in shared network with scope=all
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for a domain user
+        in a shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d1a, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d1a.name and
+            vm.domainid == self.account_d1a.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for a domain user in a "
+            "shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d1a.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_all.id,
+                                       self.nuagenetworkdata["network_all"][
+                                           "gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d1a.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainadmin(
+            self):
+        """Validate that Domain admin is able to deploy a VM for a domain admin
+        user in a shared network with scope=all
+        """
+
+        # Deploy VM for an admin user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d1, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d1.name and
+            vm.domainid == self.account_d1.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for a domain admin user "
+            "in a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d1.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d1.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for a sub domain
+        user in a shared network with scope=all
+        """
+
+        # Deploy VM as user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d11a, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for a sub domain user in "
+            "a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainadmin(
+            self):
+        """Validate that Domain admin is able to deploy a VM for a sub domain
+        admin user in a shared network with scope=all
+        """
+
+        # Deploy VM as an admin user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+        vm = self.create_VM(self.shared_network_all, testdata=self.vmdata,
+                            account=self.account_d11, cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for a sub domain admin "
+            "user in a shared network with scope=all")
+
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11.domainid,
+                                      self.shared_network_all, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_ROOTuser(self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        ROOT domain in a shared network with scope=all
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-all"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-all"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_all.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "Domain admin is NOT able to deploy a VM for user in ROOT "
+                "domain in a shared network with scope=all")
+        except Exception as e:
+            self.debug(
+                "When a Domain admin user deploys a VM for ROOT user in a "
+                "shared network with scope=all %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin is NOT "
+                    "able to deploy a VM for user in ROOT domain in a shared "
+                    "network with scope=all")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_crossdomuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        other domain in a shared network with scope=all
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-all"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-all"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_all.id,
+                accountid=self.account_d2a.name,
+                domainid=self.account_d2a.domainid
+            )
+            self.fail(
+                "Domain admin user is able to Deploy VM for a domain user he "
+                "does not have access to in a shared network with "
+                "scope=domain with no subdomain access ")
+        except Exception as e:
+            self.debug(
+                "When a Domain admin user  deploys a VM for a domain user he "
+                "does not have access to in a shared network with "
+                "scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error mesage validation failed when Domain admin user "
+                    "tries to Deploy VM for a domain user he does not have "
+                    "access to in a shared network with scope=domain with no "
+                    "subdomain access ")
+
+    # Test cases relating to deploying Virtual Machine as Domain admin for
+    # other users in shared network with scope=Domain and no subdomain access
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_domuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for domain user in
+        a shared network with scope=Domain and no subdomain access
+        """
+
+        # Deploy VM as user in a domain that has shared network with no
+        # subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_d11,
+                            testdata=self.vmdata, account=self.account_d11a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for domain user in a "
+            "shared network with scope=Domain and no subdomain access")
+
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_domain_d11, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_domadmin(
+            self):
+        """Validate that Domain admin is able to deploy a VM for domain admin
+        user in a shared network with scope=Domain and no subdomain access
+        """
+
+        # Deploy VM as an admin user in a domain that has shared network with
+        # no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        vm = self.create_VM(self.shared_network_domain_d11,
+                            testdata=self.vmdata, account=self.account_d11,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "Admin User in a  domain that has a shared network with no "
+            "subdomain access failed to Deploy VM in a shared network with "
+            "scope=domain with no subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11.domainid,
+                                      self.shared_network_domain_d11, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_subdomain(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for sub domain
+        user in a shared network with scope=Domain and no subdomain access
+        """
+
+        # Deploy VM as user in a subdomain under  a domain that has shared
+        # network with no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d111a.name,
+                domainid=self.account_d111a.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy VM for sub domain user in a "
+                "shared network with scope=Domain and no subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from a subdomain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for sub domain user in a shared network "
+                    "with scope=Domain and no subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_subdomadm(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for sub domain
+        admin user in a shared network with scope=Domain and no subdomain
+        access
+        """
+
+        # Deploy VM as an admin user in a subdomain under  a domain that has
+        # shared network with no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d111.name,
+                domainid=self.account_d111.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for sub domain admin "
+                "user in a shared network with scope=Domain no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When a admin user from a subdomain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for sub domain admin user in a shared "
+                    "network with scope=Domain and no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_parentdom(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for parent
+        domain user in a shared network with scope=Domain and no subdomain
+        access
+        """
+
+        # Deploy VM as user in parentdomain of a domain that has shared network
+        # with no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d1a.name,
+                domainid=self.account_d1a.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for parent domain user "
+                "in a shared network with scope=Domain and no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When a user from parent domain deploys a VM in a shared "
+                "network with scope=domain with no subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for parent domain user in a shared "
+                    "network with scope=Domain and no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_pardomadm(
+            self):
+        """Validate that Domain admin is NOT able to deploy VM for parent
+        domain admin user in shared network with scope=Domain and no subdomain
+        access
+        """
+
+        # Deploy VM as an admin user in parentdomain of  a domain that has
+        # shared network with no subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_d1.name,
+                domainid=self.account_d1.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy VM for parent domain admin "
+                "user in a shared network with scope=Domain no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When an admin user from parent domain deploys a VM in a "
+                "shared network with scope=domain with no subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for parent domain admin user in a shared "
+                    "network with scope=Domain and no subdomain access ")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_nosubdomaccess_ROOTuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        ROOT domain in a shared network with scope=Domain and no subdomain
+        access
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-domain-nosubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_d11.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for user in ROOT domain "
+                "in a shared network with scope=Domain and no subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When a regular user from ROOT domain deploys a VM in a "
+                "shared network with scope=domain with no subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for user in ROOT domain in a shared "
+                    "network with scope=Domain and no subdomain access")
+
+    # Test cases relating to deploying Virtual Machine as Domain admin for
+    # other users in shared network with scope=Domain and with subdomain access
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_domainuser(
+            self):
+        """Validate that Domain admin is able to deploy a VM for regular user
+        in domain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as user in a domain that has shared network with subdomain
+        # access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d11a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11a.name and
+            vm.domainid == self.account_d11a.domainid,
+            True,
+            "Domain admin is not able to deploy VM for regular user in domain "
+            "in a shared network with scope=Domain subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_domainadmin(
+            self):
+        """Validate that Domain admin is able to deploy a VM for admin user in
+        domain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as an admin user in a domain that has shared network with
+        # subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d11,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d11.name and
+            vm.domainid == self.account_d11.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for admin user in "
+            "domain in a shared network with scope=Domain subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d11.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_subdomain(
+            self):
+        """Validate that Domain admin is able to deploy a VM for regular user
+        in subdomain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as user in a subdomain under  a domain that has shared
+        # network with subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d111a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111a.name and
+            vm.domainid == self.account_d111a.domainid,
+            True,
+            "Domain admin not able to deploy VM for regular user in subdomain "
+            "in shared network with scope=Domain subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d111a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d111a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_subdomadm(
+            self):
+        """Validate that Domain admin is able to deploy a VM for admin user in
+        subdomain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as an admin user in a subdomain under  a domain that has
+        # shared network with subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_domain_with_subdomain_d11,
+                            testdata=self.vmdata, account=self.account_d111,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111.name and
+            vm.domainid == self.account_d111.domainid,
+            True,
+            "Domain admin is not able to deploy VM for admin user in "
+            "subdomain in a shared network with scope=Domain subdomain access")
+        self.verify_vsd_shared_network(
+            self.account_d111.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d111.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            vm, sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_parentdom(
+            self):
+        """Validate that Domain admin NOT able to deploy VM for regular user in
+        parent domain in shared network with scope=Domain subdomain access
+        """
+
+        # Deploy VM as user in parentdomain of a domain that has shared network
+        # with subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_d1a.name,
+                domainid=self.account_d1a.domainid
+            )
+            self.fail(
+                " Domain admin is able to deploy VM for regular user in "
+                "parent domain in a shared network with scope=Domain "
+                "subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from parent domain deploys a VM in a shared "
+                "network with scope=domain with subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for regular user in parent domain in a "
+                    "shared network with scope=Domain and subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_pardomadmin(
+            self):
+        """Validate that Domain admin is NOT able to deploy VM for admin user
+        in parent domain in shared network with scope=Domain subdomain access
+        """
+
+        # Deploy VM as an admin user in parentdomain of  a domain that has
+        # shared network with subdomain access
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD1"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD1"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_d1.name,
+                domainid=self.account_d1.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for admin user in parent "
+                "domain in a shared network with scope=Domain subdomain "
+                "access")
+        except Exception as e:
+            self.debug(
+                "When an admin user from parent domain deploys a VM in a "
+                "shared network with scope=domain with  subdomain access %s"
+                % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for admin user in parent domain in a "
+                    "shared network with scope=Domain and subdomain access")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_subdomaccess_ROOTuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        ROOT domain in a shared network with scope=Domain and subdomain access
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_domain_with_subdomain_d11.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for user in ROOT domain "
+                "in a shared network with scope=Domain and subdomain access")
+        except Exception as e:
+            self.debug(
+                "When a user from ROOT domain deploys a VM in a shared "
+                "network with scope=domain with subdomain access %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for user in ROOT domain in a shared "
+                    "network with scope=Domain and subdomain access")
+
+    # Test cases relating to deploying Virtual Machine as Domain admin for
+    # other users in shared network with scope=account
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for user in
+        the same domain but belonging to a different account in a shared
+        network with scope=account
+        """
+
+        # Deploy VM as user in a domain under the same domain but different
+        # account from the acount that has a shared network with scope=account
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111B"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111B"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d111b.name,
+                domainid=self.account_d111b.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for user in the same "
+                "domain but belonging to a different account in a shared "
+                "network with scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from same domain but different account deploys "
+                "a VM in a shared network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for user in the same domain but belonging "
+                    "to a different account in a shared network with "
+                    "scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainadm(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for an admin
+        user in the same domain but belonging to a different account in a
+        shared network with scope=account
+        """
+
+        # Deploy VM as admin user for a domain that has an account with shared
+        # network with scope=account
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d111.name,
+                domainid=self.account_d111.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for user in the same "
+                "domain but belonging to a different account in a shared "
+                "network with scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from same domain but different account deploys a "
+                "VM in a shared network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.UNABLE_TO_USE_NETWORK):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for user in the same domain but belonging "
+                    "to a different account in a shared network with "
+                    "scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_user(self):
+        """Validate that Domain admin is able to deploy a VM for an regular
+        user in a shared network with scope=account
+        """
+
+        # Deploy VM as account with shared network with scope=account
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD111A"]["name"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD111A"]["displayname"] + \
+            "-shared-scope-domain-withsubdomainaccess-domain-admin"
+
+        vm = self.create_VM(self.shared_network_account_d111a,
+                            testdata=self.vmdata, account=self.account_d111a,
+                            cleanup=False)
+
+        self.assertEqual(
+            vm.state == "Running" and vm.account == self.account_d111a.name and
+            vm.domainid == self.account_d111a.domainid,
+            True,
+            "Domain admin is not able to deploy a VM for an regular user in "
+            "a shared network with scope=account")
+        self.verify_vsd_shared_network(self.account_d111a.domainid,
+                                       self.shared_network_account_d111a,
+                                       gateway=self.nuagenetworkdata[
+                                           "network_account"]["gateway"])
+        subnet_id = self.get_subnet_id(self.shared_network_account_d111a.id,
+                                       self.nuagenetworkdata[
+                                           "network_account"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d111a.domainid,
+                                      self.shared_network_account_d111a, vm,
+                                      sharedsubnetid=subnet_id)
+
+        # Deleting the VM
+        vm.delete(self.api_client, expunge=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_diffdom(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for an
+        regular user from a differnt domain in a shared network with
+        scope=account
+        """
+
+        # Deploy VM as an admin user in a subdomain under ROOT
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD2A"]["name"] + \
+            "-shared-scope-account-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD2A"]["displayname"] + \
+            "-shared-scope-account-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_d2a.name,
+                domainid=self.account_d2a.domainid
+            )
+            self.fail(
+                "Domain admin is able able to deploy a VM for an regular "
+                "user from a differnt domain in a shared network with "
+                "scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from different domain deploys a VM in a shared "
+                "network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for an regular user from a differnt "
+                    "domain in a shared network with scope=account")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_ROOTuser(
+            self):
+        """Validate that Domain admin is NOT able to deploy a VM for an regular
+        user in ROOT domain in a shared network with scope=account
+        """
+
+        # Deploy VM as user in ROOT domain
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmROOTA"]["name"] + \
+            "-shared-scope-account-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmROOTA"]["displayname"] + \
+            "-shared-scope-account-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_account_d111a.id,
+                accountid=self.account_roota.name,
+                domainid=self.account_roota.domainid
+            )
+            self.fail(
+                "Domain admin is able to deploy a VM for an regular user in "
+                "ROOT domain in a shared network with scope=account")
+        except Exception as e:
+            self.debug(
+                "When a user from ROOT domain deploys a VM in a shared "
+                "network with scope=account %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
+                self.fail(
+                    "Error message validation failed when Domain admin tries "
+                    "to deploy a VM for an regular user in ROOT domain in a "
+                    "shared network with scope=account")
+
+    # Test cases relating to deploying Virtual Machine as Regular user for
+    # other users in shared network with scope=all
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_regularuser_scope_all_anotheruser(
+            self):
+        """Validate that regular user is NOT able to deploy a VM for
+        another user in the same  domain in a shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_all.id,
+                accountid=self.account_d12a.name,
+                domainid=self.account_d12a.domainid
+            )
+            self.fail(
+                "Regular user is allowed to deploy a VM for another user in "
+                "the same domain in a shared network with scope=all")
+        except Exception as e:
+            self.debug(
+                "When a regular user deploys a VM for another user in the "
+                "same domain in a shared network with scope=all %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_ACCOUNT):
+                self.fail(
+                    "Error message validation failed when Regular user tries "
+                    "to deploy a VM for another user in the same domain in a "
+                    "shared network with scope=all")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_deployVM_in_sharedNetwork_as_regularuser_scope_all_crossdomain(
+            self):
+        """Validate that regular user is NOT able to deploy a VM for
+        another user in a different domain in a shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+        self.vmdata["name"] = \
+            self.sharednetworkdata["vmD11A"]["name"] + \
+            "-shared-scope-all-domain-admin"
+        self.vmdata["displayname"] = \
+            self.sharednetworkdata["vmD11A"]["displayname"] + \
+            "-shared-scope-all-domain-admin"
+        try:
+            VirtualMachine.create(
+                self.api_client,
+                self.vmdata,
+                zoneid=self.zone.id,
+                serviceofferingid=self.service_offering.id,
+                templateid=self.template.id,
+                networkids=self.shared_network_all.id,
+                accountid=self.account_d2a.name,
+                domainid=self.account_d2a.domainid
+            )
+            self.fail(
+                "Regular user is allowed to deploy a VM for another user in "
+                "the same domain in a shared network with scope=all")
+        except Exception as e:
+            self.debug(
+                "When a regular user deploys a VM for another user in the "
+                "same domain in a shared network with scope=all %s" % e)
+            if not CloudstackAclException.verifyMsginException(
+                    e,
+                    CloudstackAclException.NO_PERMISSION_TO_OPERATE_ACCOUNT):
+                self.fail(
+                    "Error message validation failed when Regular user tries "
+                    "to deploy a VM for another user in the same domain in a "
+                    "shared network with scope=all")
+
+    @staticmethod
+    def generateKeysForUser(api_client, account):
+        user = User.list(
+            api_client,
+            account=account.name,
+            domainid=account.domainid
+        )[0]
+
+        return (User.registerUserKeys(
+            api_client,
+            user.id
+        ))
diff --git a/test/integration/plugins/nuagevsp/test_nuage_sharednetwork_vpc_vm_monitor.py b/test/integration/plugins/nuagevsp/test_nuage_sharednetwork_vpc_vm_monitor.py
new file mode 100644
index 0000000..d8ca41f
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_sharednetwork_vpc_vm_monitor.py
@@ -0,0 +1,704 @@
+# 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.
+
+"""Component tests for Shared Network functionality with Nuage VSP SDN plugin:
+VPC Virtual Machine Monitoring
+"""
+# Import Local Modules
+from nuageTestCase import nuageTestCase
+from marvin.lib.utils import cleanup_resources, validateList
+from marvin.lib.base import (VPC,
+                             Account,
+                             Domain,
+                             User,
+                             VirtualMachine,
+                             Network,
+                             NetworkOffering,
+                             VpcOffering)
+from marvin.lib.common import list_virtual_machines
+from marvin.codes import PASS
+# Import System modules
+from nose.plugins.attrib import attr
+
+
+class TestNuageSharedNetworkVpcVmMonitor(nuageTestCase):
+    @classmethod
+    def setUpClass(cls):
+        """
+        Create the following domain tree and accounts that are required for
+        executing Nuage VSP SDN plugin test cases for shared networks:
+            Under ROOT - create domain D1
+            Under domain D1 - Create two subdomains D11 and D12
+            Under each of the domains - create one admin user and couple of
+            regular users.
+        Create shared network with the following scope:
+            1. Network with scope="all"
+            2. Network with scope="domain" with no subdomain access
+            3. Network with scope="domain" with subdomain access
+            4. Network with scope="account"
+        """
+
+        super(TestNuageSharedNetworkVpcVmMonitor, cls).setUpClass()
+        cls.sharednetworkdata = cls.test_data["acl"]
+        cls.nuagenetworkdata = cls.test_data["nuagevsp"]
+
+        cls.domain_1 = None
+        cls.domain_2 = None
+
+        try:
+            # backup default apikey and secretkey
+            cls.default_apikey = cls.api_client.connection.apiKey
+            cls.default_secretkey = cls.api_client.connection.securityKey
+
+            # Create domains
+            cls.domain_1 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain1"]
+            )
+            cls.domain_11 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain11"],
+                parentdomainid=cls.domain_1.id
+            )
+            cls.domain_12 = Domain.create(
+                cls.api_client,
+                cls.sharednetworkdata["domain12"],
+                parentdomainid=cls.domain_1.id
+            )
+            # Create  1 admin account and 2 user accounts for doamin_1
+            cls.account_d1 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1"],
+                admin=True,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1)
+            cls.user_d1_apikey = user.apikey
+            cls.user_d1_secretkey = user.secretkey
+
+            cls.account_d1a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1A"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1a)
+            cls.user_d1a_apikey = user.apikey
+            cls.user_d1a_secretkey = user.secretkey
+
+            cls.account_d1b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD1B"],
+                admin=False,
+                domainid=cls.domain_1.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d1b)
+            cls.user_d1b_apikey = user.apikey
+            cls.user_d1b_secretkey = user.secretkey
+
+            # Create  1 admin and 2 user accounts for doamin_11
+            cls.account_d11 = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11"],
+                admin=True,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11)
+            cls.user_d11_apikey = user.apikey
+            cls.user_d11_secretkey = user.secretkey
+
+            cls.account_d11a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11A"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11a)
+            cls.user_d11a_apikey = user.apikey
+            cls.user_d11a_secretkey = user.secretkey
+
+            cls.account_d11b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD11B"],
+                admin=False,
+                domainid=cls.domain_11.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d11b)
+            cls.user_d11b_apikey = user.apikey
+            cls.user_d11b_secretkey = user.secretkey
+
+            # Create  2 user accounts for doamin_12
+            cls.account_d12a = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12A"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12a)
+            cls.user_d12a_apikey = user.apikey
+            cls.user_d12a_secretkey = user.secretkey
+
+            cls.account_d12b = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountD12B"],
+                admin=False,
+                domainid=cls.domain_12.id
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_d12b)
+            cls.user_d12b_apikey = user.apikey
+            cls.user_d12b_secretkey = user.secretkey
+
+            # Create 1 user account and admin account in "ROOT" domain
+
+            cls.account_roota = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=False,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_roota)
+            cls.user_roota_apikey = user.apikey
+            cls.user_roota_secretkey = user.secretkey
+
+            cls.account_root = Account.create(
+                cls.api_client,
+                cls.sharednetworkdata["accountROOTA"],
+                admin=True,
+            )
+
+            user = cls.generateKeysForUser(cls.api_client, cls.account_root)
+            cls.user_root_apikey = user.apikey
+            cls.user_root_secretkey = user.secretkey
+
+            # service offering is already created in Nuagetestcase
+            cls.sharednetworkdata['mode'] = cls.zone.networktype
+
+            # As admin user , create shared network with scope "all", "domain"
+            # with subdomain access , "domain" without subdomain access and
+            # "account"
+            cls.api_client.connection.apiKey = cls.default_apikey
+            cls.api_client.connection.securityKey = cls.default_secretkey
+
+            cls.shared_network_offering = NetworkOffering.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["shared_nuage_network_offering"],
+                conservemode=False
+                )
+            # Enable Network offering
+            cls.shared_network_offering.update(cls.api_client, state='Enabled')
+            cls.shared_network_offering_id = cls.shared_network_offering.id
+
+            cls.shared_network_all = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["network_all"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id
+            )
+
+            cls.shared_network_domain_d11 = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"][
+                    "network_domain_with_no_subdomain_access"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=False
+            )
+
+            cls.shared_network_domain_with_subdomain_d11 = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"][
+                    "network_domain_with_subdomain_access"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                subdomainaccess=True
+            )
+
+            cls.shared_network_account_d111a = Network.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["network_account"],
+                networkofferingid=cls.shared_network_offering_id,
+                zoneid=cls.zone.id,
+                domainid=cls.domain_11.id,
+                accountid=cls.account_d11a.user[0].username
+            )
+
+            cls.debug("Creating Nuage VSP VPC offering...")
+            cls.vpc_offering = VpcOffering.create(cls.api_client,
+                                                  cls.test_data["nuagevsp"][
+                                                      "vpc_offering"]
+                                                  )
+
+            cls.vpc_offering.update(cls.api_client, state="Enabled")
+
+            # Creating a VPC
+            cls.debug("Creating a VPC with Nuage VSP VPC offering...")
+            cls.test_data["vpc"]["cidr"] = '10.1.0.0/16'
+            cls.vpcd11 = VPC.create(cls.api_client,
+                                    cls.test_data["vpc"],
+                                    vpcofferingid=cls.vpc_offering.id,
+                                    zoneid=cls.zone.id,
+                                    account=cls.account_d11a.name,
+                                    domainid=cls.account_d11a.domainid
+                                    )
+
+            # Creating a network offering
+            cls.debug("Creating Nuage Vsp VPC Network offering...")
+            cls.network_offering = NetworkOffering.create(
+                cls.api_client,
+                cls.test_data["nuagevsp"]["vpc_network_offering"],
+                conservemode=False
+            )
+            cls.network_offering.update(cls.api_client, state="Enabled")
+
+            # Creating two VPC network in the VPC
+            cls.debug(
+                "Creating a VPC network with Nuage Vsp VPC Network "
+                "offering...")
+            cls.test_data["network"]["netmask"] = "255.255.255.0"
+            cls.vpc_network1 = Network.create(
+                cls.api_client,
+                cls.test_data["network"],
+                accountid=cls.account_d11a.name,
+                domainid=cls.account_d11a.domainid,
+                networkofferingid=cls.network_offering.id,
+                zoneid=cls.zone.id,
+                gateway="10.1.1.1",
+                vpcid=cls.vpcd11.id
+            )
+
+            cls.debug(
+                "Creating a VPC Tier2 network with Nuage Vsp VPC Network "
+                "offering...")
+            cls.test_data["network"]["name"] = "Tier2"
+            cls.vpc_network2 = Network.create(
+                cls.api_client,
+                cls.test_data["network"],
+                accountid=cls.account_d11a.name,
+                domainid=cls.account_d11a.domainid,
+                networkofferingid=cls.network_offering.id,
+                zoneid=cls.zone.id,
+                gateway="10.1.2.1",
+                vpcid=cls.vpcd11.id
+            )
+
+            cls.vmdata = {"name": "vmvpc1",
+                          "displayname": "vmvpc1"
+                          }
+
+            # Deploying a VM in the VPC network
+            cls.vmvpc1 = VirtualMachine.create(
+                cls.api_client,
+                cls.vmdata,
+                zoneid=cls.zone.id,
+                serviceofferingid=cls.service_offering.id,
+                templateid=cls.template.id,
+                networkids=cls.vpc_network1.id,
+                accountid=cls.account_d11a.name,
+                domainid=cls.account_d11a.domainid
+            )
+
+            cls.vmdata = {"name": "vmvpc2",
+                          "displayname": "vmvpc2"
+                          }
+
+            cls.vmvpc2 = VirtualMachine.create(
+                cls.api_client,
+                cls.vmdata,
+                zoneid=cls.zone.id,
+                serviceofferingid=cls.service_offering.id,
+                templateid=cls.template.id,
+                networkids=cls.vpc_network2.id,
+                accountid=cls.account_d11a.name,
+                domainid=cls.account_d11a.domainid
+            )
+
+            cls._cleanup = [
+                cls.account_root,
+                cls.account_roota,
+                cls.shared_network_all,
+                cls.shared_network_offering,
+                cls.network_offering,
+                cls.vpc_offering,
+                cls.service_offering,
+            ]
+        except Exception as e:
+            cls.domain_1.delete(cls.api_client, cleanup="true")
+            cleanup_resources(cls.api_client, cls._cleanup)
+            raise Exception(
+                "Failed to create the setup required to execute the test "
+                "cases: %s" % e)
+
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.api_client.connection.apiKey = cls.default_apikey
+        cls.api_client.connection.securityKey = cls.default_secretkey
+        cls.domain_1.delete(cls.api_client, cleanup="true")
+        cleanup_resources(cls.api_client, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.api_client = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+
+    def tearDown(self):
+        # restore back default apikey and secretkey
+        self.api_client.connection.apiKey = self.default_apikey
+        self.api_client.connection.securityKey = self.default_secretkey
+        return
+
+    def verify_nic(self, network, vm):
+        """verify required nic is present in the VM"""
+        self.debug(
+            "Going to verify if %s Network nic is present in virtual machine "
+            "%s" % (network.name, vm.id))
+        vm_list = list_virtual_machines(self.api_client, id=vm.id)
+        vm_list_validation_result = validateList(vm_list)
+        self.assertEqual(vm_list_validation_result[0], PASS,
+                         "vm list validation failed due to %s" %
+                         vm_list_validation_result[2])
+        self.debug("virtual machine nics: %s" % vm_list[0].nic)
+        # filter nic of virtual machine based on Network
+        nics = [x for x in vm_list[0].nic if x.networkid == network.id]
+        self.debug("Filtered nics list: %s:" % nics)
+        if len(nics) == 1:
+            return True
+        else:
+            return False
+
+    # Test cases relating to MonitorVM through SharedNetwork
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_01_addNic_in_sharedNetwork_scope_all_as_domainuser(self):
+        """Validate that Normal user in the same domain able to add NIC in a
+        shared network with scope=all
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+        self.debug("Adding NIC of shared Network as user d11a")
+
+        self.vmvpc1.add_nic(self.api_client, self.shared_network_all.id)
+
+        if self.verify_nic(self.shared_network_all, self.vmvpc1):
+            self.debug(
+                "virtual machine has NIC is SharedNetwork: %s" %
+                self.shared_network_all.name)
+        else:
+            self.fail(
+                "Expected network %s NIC is not present in the virtual "
+                "Machine %s" %
+                (self.shared_network_all.name, self.vmvpc1.id))
+
+        self.debug("validating Network and VM on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, self.vmvpc1,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_02_addNic_in_sharedNetwork_scope_all_as_domain_parentAdmin(self):
+        """Validate that Parent domain admin is able to add a NIC  in a shared
+        network with scope=all
+        """
+
+        # Add NIC as D1 user
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.debug("Adding NIC of shared Network as user d1")
+
+        self.vmvpc2.add_nic(self.api_client, self.shared_network_all.id)
+
+        if self.verify_nic(self.shared_network_all, self.vmvpc2):
+            self.debug(
+                "virtual machine has NIC is SharedNetwork: %s" %
+                self.shared_network_all.name)
+        else:
+            self.fail(
+                "Expected network %s NIC is not present in the virtual "
+                "Machine %s" %
+                (self.shared_network_all.name, self.vmvpc2.id))
+
+        self.debug("validating Network and VM on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d1.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, self.vmvpc2,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_03_staticNat_in_VPC_secondNic_sharedNetwork_scope_all(self):
+        """Validate that User can enable staticNat on VPC NIC where second nic
+        is in a shared network with scope=all
+        """
+
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+        self.debug("Enabling StaticNat as user d11a")
+        public_ip_1 = self.acquire_PublicIPAddress(self.vpc_network1,
+                                                   self.vpcd11,
+                                                   account=self.account_d11a)
+        self.create_StaticNatRule_For_VM(self.vmvpc1, public_ip_1,
+                                         self.vpc_network1)
+        self.validate_PublicIPAddress(public_ip_1, self.vpc_network1,
+                                      static_nat=True, vm=self.vmvpc1)
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, self.vmvpc2,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_04_rebootVM_after_sharedNetwork_nic(self):
+        """Validate that reboot VM is done successfully without any Error
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+
+        self.debug("Rebooting VMs as user d1")
+
+        try:
+            self.vmvpc1.reboot(self.api_client)
+            self.vmvpc2.reboot(self.api_client)
+        except Exception as e:
+            self.fail("Failed to reboot the virtual instances, %s" % e)
+
+        self.debug("validating VM on VSD")
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, self.vmvpc1,
+                                      sharedsubnetid=subnet_id)
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, self.vmvpc2,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_05_restart_Tier_VPC_Network_sharedNetwork_nic(self):
+        """Validate that restart Tier Network is done successfully with cleanup
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+
+        self.debug("Restarting Tier Networks and VPC")
+
+        self.vpc_network1.restart(self.api_client, cleanup=True)
+        self.vpc_network2.restart(self.api_client, cleanup=True)
+        self.restart_Vpc(self.vpcd11, cleanup=False)
+
+        self.debug("validating VM on VSD")
+        subnet_id = self.get_subnet_id(
+            self.shared_network_all.id,
+            self.nuagenetworkdata["network_all"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, self.vmvpc1,
+                                      sharedsubnetid=subnet_id)
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_all, self.vmvpc2,
+                                      sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_06_restart_sharedNetwork_scope_all(self):
+        """Validate that restart Shared Network is done successfully without
+        any Error
+        """
+
+        self.debug("Restarting shared Network with cleanup")
+        self.shared_network_all.restart(self.api_client, cleanup=True)
+
+        self.debug("validating SharedNetwork on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_all,
+            gateway=self.nuagenetworkdata["network_all"]["gateway"])
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_07_removeNic_in_sharedNetwork_scope_all_as_domainuser(self):
+        """Validate that Normal user in the same domain able to remove NIC in a
+        shared network which is added by Parent Domain Admin
+        """
+
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+
+        self.debug("Removing NIC of shared Network as user d11a")
+
+        vm_list = list_virtual_machines(self.api_client, id=self.vmvpc2.id)
+        vm_list_validation_result = validateList(vm_list)
+        self.assertEqual(vm_list_validation_result[0], PASS,
+                         "vm list validation failed due to %s" %
+                         vm_list_validation_result[2])
+        self.debug("virtual machine nics: %s" % vm_list[0].nic)
+        for nic in vm_list[0].nic:
+            if nic.networkid == self.shared_network_all.id:
+                reqNic = nic
+
+        self.vmvpc2.remove_nic(self.api_client, reqNic.id)
+        if not self.verify_nic(self.shared_network_all, self.vmvpc2):
+            self.debug(
+                "virtual machine has NIC is SharedNetwork: %s" %
+                self.shared_network_all.name)
+        else:
+            self.fail("network %s NIC is present in the virtual Machine %s" %
+                      (self.shared_network_all.name, self.vmvpc2.id))
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_08_removeNic_in_sharedNetwork_scope_all_as_domain_parentAdmin(
+            self):
+        """Validate that Parent domain admin is able to remove a NIC  which is
+        added by child domain user
+        """
+
+        self.api_client.connection.apiKey = self.user_d1_apikey
+        self.api_client.connection.securityKey = self.user_d1_secretkey
+        self.debug("Removing NIC od shared Network as user d1")
+
+        vm_list = list_virtual_machines(self.api_client, id=self.vmvpc1.id)
+        vm_list_validation_result = validateList(vm_list)
+        self.assertEqual(vm_list_validation_result[0], PASS,
+                         "vm list validation failed due to %s" %
+                         vm_list_validation_result[2])
+        self.debug("virtual machine nics: %s" % vm_list[0].nic)
+        for nic in vm_list[0].nic:
+            if nic.networkid == self.shared_network_all.id:
+                reqNic = nic
+
+        self.vmvpc1.remove_nic(self.api_client, reqNic.id)
+
+        if not self.verify_nic(self.shared_network_all, self.vmvpc1):
+            self.debug(
+                "virtual machine has mot NIC is SharedNetwork: %s" %
+                self.shared_network_all.name)
+        else:
+            self.fail("network %s NIC is present in the virtual Machine %s" %
+                      (self.shared_network_all.name, self.vmvpc1.id))
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_09_addNic_in_sharedNetwork_scope_domain_as_domainuser(self):
+        """Validate that Normal user in the same domain able to add NIC in a
+        shared network with scope=domain without subdomain Access
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+        self.debug("Adding NIC of shared Network as user d11a")
+
+        self.vmvpc1.add_nic(self.api_client, self.shared_network_domain_d11.id)
+
+        if self.verify_nic(self.shared_network_domain_d11, self.vmvpc1):
+            self.debug(
+                "virtual machine has NIC is SharedNetwork: %s" %
+                self.shared_network_domain_d11.name)
+        else:
+            self.fail(
+                "Expected network %s NIC is not present in the virtual "
+                "Machine %s" %
+                (self.shared_network_domain_d11.name, self.vmvpc1.id))
+
+        self.debug("validating Network and VM on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_no_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(self.account_d11a.domainid,
+                                      self.shared_network_domain_d11,
+                                      self.vmvpc1, sharedsubnetid=subnet_id)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_10_addNic_in_sharedNetwork_scope_domain_subdomain_as_domainuser(
+            self):
+        """Validate that Normal user in the same domain able to add NIC in a
+        shared network with scope=domain with subdomain Access
+        """
+
+        # Deploy VM for a user in a domain under ROOT as admin
+        self.api_client.connection.apiKey = self.user_d11a_apikey
+        self.api_client.connection.securityKey = self.user_d11a_secretkey
+        self.debug("Adding NIC of shared Network as user d11a")
+
+        self.vmvpc2.add_nic(self.api_client,
+                            self.shared_network_domain_with_subdomain_d11.id)
+
+        if self.verify_nic(self.shared_network_domain_with_subdomain_d11,
+                           self.vmvpc2):
+            self.debug(
+                "virtual machine has NIC is SharedNetwork: %s" %
+                self.shared_network_domain_with_subdomain_d11.name)
+        else:
+            self.fail(
+                "Expected network %s NIC is not present in the virtual "
+                "Machine %s" %
+                (self.shared_network_domain_with_subdomain_d11.name,
+                 self.vmvpc2.id))
+
+        self.debug("validating Network and VM on VSD")
+        self.verify_vsd_shared_network(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            gateway=self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        subnet_id = self.get_subnet_id(
+            self.shared_network_domain_with_subdomain_d11.id,
+            self.nuagenetworkdata[
+                "network_domain_with_subdomain_access"]["gateway"])
+        self.verify_vsd_enterprise_vm(
+            self.account_d11a.domainid,
+            self.shared_network_domain_with_subdomain_d11,
+            self.vmvpc2, sharedsubnetid=subnet_id)
+
+    @staticmethod
+    def generateKeysForUser(api_client, account):
+        user = User.list(
+            api_client,
+            account=account.name,
+            domainid=account.domainid
+        )[0]
+
+        return (User.registerUserKeys(
+            api_client,
+            user.id
+        ))
diff --git a/test/integration/plugins/nuagevsp/test_nuage_source_nat.py b/test/integration/plugins/nuagevsp/test_nuage_source_nat.py
new file mode 100644
index 0000000..2d9e3b9
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_source_nat.py
@@ -0,0 +1,1458 @@
+# 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.
+
+""" Component tests for Source NAT functionality with Nuage VSP SDN plugin
+"""
+# Import Local Modules
+from nuageTestCase import nuageTestCase
+from marvin.lib.base import (Account,
+                             Network,
+                             VirtualMachine)
+# Import System Modules
+from nose.plugins.attrib import attr
+import copy
+import time
+
+
+class TestNuageSourceNat(nuageTestCase):
+    """Test Source NAT functionality with Nuage VSP SDN plugin
+    """
+
+    @classmethod
+    def setUpClass(cls):
+        super(TestNuageSourceNat, cls).setUpClass()
+        return
+
+    def setUp(self):
+        # Create an account
+        self.account = Account.create(self.api_client,
+                                      self.test_data["account"],
+                                      admin=True,
+                                      domainid=self.domain.id
+                                      )
+        self.cleanup = [self.account]
+        return
+
+    # verify_vsd_SourceNAT_network - Verifies if Source NAT functionality of
+    # the given network is enabled in VSD
+    def verify_vsd_SourceNAT_network(self, network, vpc=None):
+        self.debug("Verifying if Source NAT functionality of Network - %s is "
+                   "enabled in VSD" % network.name)
+        ext_network_id_filter = self.get_externalID_filter(vpc.id) if vpc \
+            else self.get_externalID_filter(network.id)
+        vsd_domain = self.vsd.get_domain(filter=ext_network_id_filter)
+        self.assertEqual(vsd_domain.pat_enabled, "ENABLED",
+                         "VSD domain address translation support "
+                         "(pat_enabled flag) should be enabled for Source NAT "
+                         "service enabled network in CloudStack"
+                         )
+        self.assertEqual(vsd_domain.underlay_enabled, "ENABLED",
+                         "VSD domain underlay support (underlay_enabled flag) "
+                         "should be enabled for Source NAT service enabled "
+                         "network in CloudStack"
+                         )
+        self.debug("Successfully verified that Source NAT functionality of "
+                   "Network - %s is enabled in VSD" % network.name)
+
+    # verify_SourceNAT_VM_traffic - Verifies Source NAT traffic
+    # (wget www.google.com) to the Internet from the given VM. This Source NAT
+    # traffic test is done through a custom init script in the guest VM
+    # template upon the VM boot up.
+    def verify_SourceNAT_VM_traffic(self, vm, network, vpc=None,
+                                    negative_test=False):
+        self.debug("Verifying Source NAT traffic (wget www.google.com) to the "
+                   "Internet from VM - %s" % vm.name)
+        if self.isInternetConnectivityAvailable:
+            # Adding Egress Network ACL rule
+            if vpc and self.http_proxy and not negative_test:
+                self.debug("Adding Egress Network ACL rule in the created VPC "
+                           "network to allow access to the configured "
+                           "Internet proxy servers...")
+                proxy_rule = copy.deepcopy(self.test_data["http_rule"])
+                proxy_rule["privateport"] = 1080
+                proxy_rule["publicport"] = 1080
+                proxy_rule["startport"] = 1080
+                proxy_rule["endport"] = 1080
+                internet_proxy_server_rule = self.create_NetworkAclRule(
+                    proxy_rule, traffic_type="Egress", network=network)
+
+                # VSD verification
+                self.verify_vsd_firewall_rule(
+                    internet_proxy_server_rule, traffic_type="Egress")
+
+            # Triggering Source NAT traffic test
+            # Rebooting (stop - start) VM
+            self.debug("Triggering the Source NAT traffic test by rebooting "
+                       "the given VM...")
+            vm.stop(self.api_client)
+            vm.start(self.api_client)
+            self.check_VM_state(vm, state="Running")
+
+            # VSD verification
+            self.verify_vsd_vm(vm)
+
+            # VSD verification for Source NAT functionality
+            self.verify_vsd_SourceNAT_network(network, vpc)
+
+            self.debug("Waiting for the VM to perform the Source NAT traffic "
+                       "test (wget www.google.com) to the Internet...")
+            time.sleep(180) if negative_test else time.sleep(300)
+
+            # Creating Static NAT rule
+            self.debug("Creating Static NAT rule to SSH into the VM for "
+                       "verifying its Source NAT traffic test...")
+            public_ip = self.acquire_PublicIPAddress(network, vpc=vpc)
+            self.validate_PublicIPAddress(public_ip, network)
+            self.create_StaticNatRule_For_VM(vm, public_ip, network)
+            self.validate_PublicIPAddress(
+                public_ip, network, static_nat=True, vm=vm)
+
+            # VSD verification
+            updated_vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+            self.verify_vsd_floating_ip(
+                network, updated_vm_info, public_ip.ipaddress, vpc=vpc)
+
+            # Adding Ingress Firewall/Network ACL rule
+            self.debug("Adding Ingress Firewall/Network ACL rule to make the "
+                       "created Static NAT rule (SSH) accessible...")
+            if vpc:
+                public_ssh_rule = self.create_NetworkAclRule(
+                    self.test_data["ingress_rule"], network=network)
+            else:
+                public_ssh_rule = self.create_FirewallRule(
+                    public_ip, self.test_data["ingress_rule"])
+
+            # VSD verification
+            self.verify_vsd_firewall_rule(public_ssh_rule)
+
+            # Checking for wget file
+            ssh_client = self.ssh_into_VM(vm, public_ip)
+            cmd = "ls /"
+            file_list = self.execute_cmd(ssh_client, cmd)
+            if "index.html" in str(file_list):
+                cmd = "rm -rf /index.html*"
+                self.execute_cmd(ssh_client, cmd)
+
+            # Removing Ingress Firewall/Network ACL rule
+            self.debug("Removing the created Ingress Firewall/Network ACL "
+                       "rule in the network...")
+            public_ssh_rule.delete(self.api_client)
+
+            # VSD verification
+            with self.assertRaises(Exception):
+                self.verify_vsd_firewall_rule(public_ssh_rule)
+            self.debug("Ingress Firewall/Network ACL rule successfully "
+                       "deleted in VSD")
+
+            # Deleting Static NAT Rule
+            self.debug("Deleting Static NAT Rule for the VM...")
+            self.delete_StaticNatRule_For_VM(public_ip)
+            with self.assertRaises(Exception):
+                self.validate_PublicIPAddress(
+                    public_ip, network, static_nat=True, vm=vm)
+            self.debug("Static NAT Rule for the VM successfully deleted in "
+                       "CloudStack")
+
+            # VSD verification
+            with self.assertRaises(Exception):
+                self.verify_vsd_floating_ip(
+                    network, updated_vm_info, public_ip.ipaddress, vpc=vpc)
+            self.debug("Floating IP for the VM successfully deleted in VSD")
+
+            # Releasing acquired public IP
+            self.debug("Releasing the acquired public IP in the network...")
+            public_ip.delete(self.api_client)
+            with self.assertRaises(Exception):
+                self.validate_PublicIPAddress(public_ip, network)
+            self.debug("Acquired public IP in the network successfully "
+                       "released in CloudStack")
+
+            # Removing Egress Network ACL rule
+            if vpc and self.http_proxy:
+                self.debug("Removing the created Egress Network ACL rule in "
+                           "the VPC network...")
+                internet_proxy_server_rule.delete(self.api_client)
+
+                # VSD verification
+                with self.assertRaises(Exception):
+                    self.verify_vsd_firewall_rule(internet_proxy_server_rule)
+                self.debug("Egress Network ACL rule successfully deleted in "
+                           "VSD")
+
+            # Final test result
+            if "index.html" in str(file_list):
+                self.debug("Successfully verified Source NAT traffic "
+                           "(wget www.google.com) to the Internet from VM - %s"
+                           % vm.name)
+            else:
+                self.fail("Failed to verify Source NAT traffic "
+                          "(wget www.google.com) to the Internet from VM - %s"
+                          % vm.name)
+        else:
+            if negative_test:
+                self.fail("Skipping Source NAT traffic (wget www.google.com) "
+                          "verification to the Internet from VM as there is "
+                          "no Internet connectivity in the data center")
+            else:
+                self.debug("Skipping Source NAT traffic (wget www.google.com) "
+                           "verification to the Internet from VM as there is "
+                           "no Internet connectivity in the data center")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_01_nuage_SourceNAT_isolated_networks(self):
+        """Test Nuage VSP Isolated networks with different combinations of
+        Source NAT service providers
+        """
+
+        # 1. Create Nuage VSP Isolated Network offerings and corresponding
+        #    Isolated networks with different combinations of Source NAT
+        #    service providers (NuageVsp, VirtualRouter, no SourceNat service),
+        #    check if only the Isolated networks with Source NAT service
+        #    provider as NuageVsp are successfully created.
+        # 2. Recreate the above created Network offering with ispersistent flag
+        #    set to True, check if the network offering is successfully created
+        #    and enabled.
+        # 3. Recreate the above created Network offering with conserve mode On
+        #    (conserve_mode flag set to True), check if the network offering is
+        #    successfully created and enabled.
+        # 4. Recreate the above created Network offering with Source NAT
+        #    Service Capability SupportedSourceNatTypes as per account, check
+        #    if the network offering creation failed as Nuage VSP supports only
+        #    SupportedSourceNatTypes as per zone.
+        # 5. Create an Isolated network with Source NAT service provider as
+        #    NuageVsp and spawn a VM, check if the network is successfully
+        #    created, and the VM along with the VR is deployed successfully in
+        #    the network. Verify if the Source NAT functionality for this
+        #    network is successfully enabled in VSD.
+        # 6. Create a persistent Isolated network with Source NAT service
+        #    provider as NuageVsp and spawn a VM, check if the network is
+        #    successfully created, and the VM along with the VR is deployed
+        #    successfully in the network. Verify if the Source NAT
+        #    functionality for this network is successfully enabled in VSD.
+        # 7. Create a conserved Isolated network (conserve mode On) with Source
+        #    NAT service provider as NuageVsp and spawn a VM, check if the
+        #    network is successfully created, and the VM along with the VR is
+        #    deployed successfully in the network. Verify if the Source NAT
+        #    functionality for this network is successfully enabled in VSD.
+        # 8. Delete all the created objects (cleanup).
+
+        # Creating network offerings
+        self.debug("Creating Nuage VSP Isolated Network offering with Source "
+                   "NAT service provider as NuageVsp...")
+        net_off_1 = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off_1, state="Enabled")
+
+        self.debug("Recreating above Network offering with ispersistent "
+                   "True...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        network_offering["ispersistent"] = "True"
+        net_off_2 = self.create_NetworkOffering(network_offering)
+        self.validate_NetworkOffering(net_off_2, state="Enabled")
+
+        self.debug("Recreating above Network offering with conserve mode "
+                   "On...")
+        net_off_3 = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"],
+            conserve_mode=True)
+        self.validate_NetworkOffering(net_off_3, state="Enabled")
+
+        self.debug("Recreating above Network offering with Source NAT Service "
+                   "Capability SupportedSourceNatTypes as per account...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        service_list = network_offering["serviceCapabilityList"]
+        service_list["SourceNat"]["SupportedSourceNatTypes"] = "peraccount"
+        network_offering["serviceCapabilityList"] = service_list
+        with self.assertRaises(Exception):
+            self.create_NetworkOffering(network_offering)
+        self.debug("Nuage VSP does not support Network offerings with Source "
+                   "NAT Service Capability "
+                   "SupportedSourceNatTypes as per account")
+
+        self.debug("Creating Nuage VSP Isolated Network offering with Source "
+                   "NAT service provider as VirtualRouter...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        network_offering["serviceProviderList"]["SourceNat"] = "VirtualRouter"
+        with self.assertRaises(Exception):
+            self.create_NetworkOffering(network_offering)
+        self.debug("Nuage VSP does not support Network offerings with Source "
+                   "NAT service provider as VirtualRouter")
+
+        self.debug("Creating Nuage VSP Isolated Network offering without "
+                   "Source NAT service...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        network_offering["supportedservices"] = \
+            'Dhcp,Connectivity,StaticNat,UserData,Firewall,Dns'
+        del network_offering["serviceProviderList"]["SourceNat"]
+        del network_offering["serviceCapabilityList"]
+        net_off_4 = self.create_NetworkOffering(network_offering)
+
+        # Creating Isolated networks, and deploying VMs
+        self.debug("Creating an Isolated network with Source NAT service "
+                   "provider as NuageVsp...")
+        network_1 = self.create_Network(net_off_1, gateway='10.1.1.1')
+        self.validate_Network(network_1, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_1 = self.create_VM(network_1)
+        self.validate_Network(network_1, state="Implemented")
+        vr_1 = self.get_Router(network_1)
+        self.check_Router_state(vr_1, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_router(vr_1)
+        self.verify_vsd_vm(vm_1)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network_1)
+
+        # Bug CLOUDSTACK-9398
+        """
+        self.debug("Creating a persistent Isolated network with Source NAT "
+                   "service...")
+        network_2 = self.create_Network(net_off_2, gateway='10.1.2.1')
+        self.validate_Network(network_2, state="Implemented")
+        vr_2 = self.get_Router(network_2)
+        self.check_Router_state(vr_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_2)
+        self.verify_vsd_router(vr_2)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network_2)
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_2 = self.create_VM(network_2)
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vm_2)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network_2)
+        """
+
+        self.debug("Creating an Isolated network with Source NAT service and "
+                   "conserve mode On...")
+        network_3 = self.create_Network(net_off_3, gateway='10.1.3.1')
+        self.validate_Network(network_3, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_3 = self.create_VM(network_3)
+        self.validate_Network(network_3, state="Implemented")
+        vr_3 = self.get_Router(network_3)
+        self.check_Router_state(vr_3, state="Running")
+        self.check_VM_state(vm_3, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_3)
+        self.verify_vsd_router(vr_3)
+        self.verify_vsd_vm(vm_3)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network_3)
+
+        self.debug("Creating an Isolated network without Source NAT "
+                   "service...")
+        with self.assertRaises(Exception):
+            self.create_Network(net_off_4, gateway='10.1.4.1')
+        self.debug("Nuage VSP does not support creation of Isolated networks "
+                   "without Source NAT service")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_02_nuage_SourceNAT_vpc_networks(self):
+        """Test Nuage VSP VPC networks with different combinations of Source
+        NAT service providers
+        """
+
+        # 1. Create Nuage VSP VPC offering with different combinations of
+        #    Source NAT service providers
+        #    (NuageVsp, VirtualRouter, no SourceNat service), check if all the
+        #    VPC offerings are successfully created and enabled.
+        # 2. Create VPCs with different combinations of Source NAT service
+        #    providers (NuageVsp, VirtualRouter, no SourceNat service), check
+        #    if only the VPCs with Source NAT service provider as NuageVsp and
+        #    no SourceNat service are successfully created and enabled.
+        # 3. Create Nuage VSP VPC Network offering with different combinations
+        #    of Source NAT service providers
+        #    (NuageVsp, VirtualRouter, no SourceNat service), check if only the
+        #    network offering with Source NAT service provider as NuageVsp is
+        #    successfully created and enabled.
+        # 4. Recreate the above created Network offering with ispersistent flag
+        #    set to False, check if the network offering is successfully
+        #    created and enabled.
+        # 5. Recreate the above created Network offering with conserve mode On
+        #    (conserve_mode flag set to True), check if the network offering
+        #    creation failed as only networks with conserve mode Off can belong
+        #    to VPC.
+        # 6. Recreate the above created Network offering with with Source NAT
+        #    Service Capability SupportedSourceNatTypes as per account, check
+        #    if the network offering creation failed as Nuage VSP supports only
+        #    SupportedSourceNatTypes as per zone.
+        # 7. Create a VPC network with Source NAT service provider as NuageVsp
+        #    in the VPC with SourceNat service and spawn a VM, check if the
+        #    tier is added to the VPC VR, and the VM is deployed successfully
+        #    in the tier. Verify if the Source NAT functionality for this
+        #    network is successfully enabled in VSD.
+        # 8. Create a non persistent VPC network with Source NAT service
+        #    provider as NuageVsp in the VPC with SourceNat service and spawn a
+        #    VM, check if the tier creation failed as Nuage VSP does not
+        #    support non persistent VPC networks.
+        # 9. Create another VPC network with Source NAT service provider as
+        #    NuageVsp in the VPC with SourceNat service and spawn a VM, check
+        #    if the tier is added to the VPC VR, and the VM is deployed
+        #    successfully in the tier. Verify if the Source NAT functionality
+        #    for this network is successfully enabled in VSD.
+        # 10. Create a VPC network with Source NAT service provider as NuageVsp
+        #     in the VPC without SourceNat service, check if the tier creation
+        #     failed as the VPC does not support Source NAT service.
+        # 11. Delete all the created objects (cleanup).
+
+        # Creating VPC offerings
+        self.debug("Creating Nuage VSP VPC offering with Source NAT service "
+                   "provider as NuageVsp...")
+        vpc_off_1 = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_off_1, state="Enabled")
+
+        self.debug("Creating Nuage VSP VPC offering with Source NAT service "
+                   "provider as VpcVirtualRouter...")
+        vpc_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        vpc_offering["serviceProviderList"]["SourceNat"] = "VpcVirtualRouter"
+        vpc_off_2 = self.create_VpcOffering(vpc_offering)
+        self.validate_VpcOffering(vpc_off_2, state="Enabled")
+
+        self.debug("Creating Nuage VSP VPC offering without Source NAT "
+                   "service...")
+        vpc_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        vpc_offering["supportedservices"] = \
+            'Dhcp,StaticNat,NetworkACL,Connectivity,UserData,Dns'
+        del vpc_offering["serviceProviderList"]["SourceNat"]
+        vpc_off_3 = self.create_VpcOffering(vpc_offering)
+        self.validate_VpcOffering(vpc_off_3, state="Enabled")
+
+        # Creating VPCs
+        self.debug("Creating a VPC with Source NAT service provider as "
+                   "NuageVsp...")
+        vpc_1 = self.create_Vpc(vpc_off_1, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc_1, state="Enabled")
+
+        self.debug("Creating a VPC with Source NAT service provider as "
+                   "VpcVirtualRouter...")
+        with self.assertRaises(Exception):
+            self.create_Vpc(vpc_off_2, cidr='10.1.0.0/16')
+        self.debug("Nuage VSP does not support provider VpcVirtualRouter for "
+                   "service Source NAT for VPCs")
+
+        self.debug("Creating a VPC without Source NAT service...")
+        with self.assertRaises(Exception):
+            self.create_Vpc(vpc_off_3, cidr='10.1.0.0/16')
+        self.debug("Nuage VSP does not support VPCs without Source NAT "
+                   "service")
+
+        # Creating network offerings
+        self.debug("Creating Nuage VSP VPC Network offering with Source NAT "
+                   "service provider as NuageVsp...")
+        net_off_1 = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(net_off_1, state="Enabled")
+
+        self.debug("Recreating above Network offering with ispersistent "
+                   "False...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        network_offering["ispersistent"] = "False"
+        net_off_2 = self.create_NetworkOffering(network_offering)
+        self.validate_NetworkOffering(net_off_2, state="Enabled")
+
+        self.debug("Recreating above Network offering with conserve mode "
+                   "On...")
+        with self.assertRaises(Exception):
+            self.create_NetworkOffering(
+                self.test_data["nuagevsp"]["vpc_network_offering"],
+                conserve_mode=True)
+        self.debug("Network offering creation failed as only networks with "
+                   "conserve mode Off can belong to VPC")
+
+        self.debug("Recreating above Network offering with Source NAT Service "
+                   "Capability SupportedSourceNatTypes as per account...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        service_list = network_offering["serviceCapabilityList"]
+        service_list["SourceNat"]["SupportedSourceNatTypes"] = "peraccount"
+        network_offering["serviceCapabilityList"] = service_list
+        with self.assertRaises(Exception):
+            self.create_NetworkOffering(network_offering)
+        self.debug("Nuage VSP does not support Network offerings with Source "
+                   "NAT Service Capability SupportedSourceNatTypes as per "
+                   "account")
+
+        self.debug("Creating Nuage VSP VPC Network offering with Source NAT "
+                   "service provider as VpcVirtualRouter...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        network_offering["serviceProviderList"]["SourceNat"] = \
+            "VpcVirtualRouter"
+        with self.assertRaises(Exception):
+            self.create_NetworkOffering(network_offering)
+        self.debug("Nuage VSP does not support Network offerings with Source "
+                   "NAT service provider as VpcVirtualRouter")
+
+        self.debug("Creating Nuage VSP VPC Network offering without Source "
+                   "NAT service...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        network_offering["supportedservices"] = \
+            'Dhcp,StaticNat,NetworkACL,Connectivity,UserData,Dns'
+        del network_offering["serviceProviderList"]["SourceNat"]
+        del network_offering["serviceCapabilityList"]
+        with self.assertRaises(Exception):
+            self.create_NetworkOffering(network_offering)
+        self.debug("Nuage VSP does not support Network offerings without "
+                   "Source NAT service")
+
+        # Creating VPC networks in the VPCs, and deploying VMs
+        self.debug("Creating a VPC network with Source NAT service provider "
+                   "as NuageVsp in vpc_1...")
+        vpc_tier_1 = self.create_Network(
+            net_off_1, gateway='10.1.1.1', vpc=vpc_1)
+        self.validate_Network(vpc_tier_1, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier_1)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier_1, vpc_1)
+        self.verify_vsd_router(vpc_vr)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier_1, vpc=vpc_1)
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm_1 = self.create_VM(vpc_tier_1)
+        self.check_VM_state(vpc_vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm_1)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier_1, vpc=vpc_1)
+
+        self.debug("Creating a non persistent VPC network with Source NAT "
+                   "service in vpc_1...")
+        with self.assertRaises(Exception):
+            self.create_Network(net_off_2, gateway='10.1.2.1', vpc=vpc_1)
+        self.debug("Nuage VSP does not support non persistent VPC networks")
+
+        self.debug("Creating another VPC network with Source NAT service in "
+                   "vpc_1...")
+        vpc_tier_2 = self.create_Network(
+            net_off_1, gateway='10.1.2.1', vpc=vpc_1)
+        self.validate_Network(vpc_tier_2, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier_2)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier_2, vpc_1)
+        self.verify_vsd_router(vpc_vr)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier_2, vpc=vpc_1)
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm_2 = self.create_VM(vpc_tier_2)
+        self.check_VM_state(vpc_vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm_2)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier_2, vpc=vpc_1)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_03_nuage_SourceNAT_isolated_network_traffic(self):
+        """Test Nuage VSP Source NAT functionality for Isolated network by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # 1. Check if the configured Nuage VSP SDN platform infrastructure
+        #    supports underlay networking, if not, skip this test.
+        # 2. Create an Isolated network with Source NAT service provider as
+        #    NuageVsp and spawn a VM, check if the network is successfully
+        #    created, and the VM along with the VR is deployed successfully in
+        #    the network. Verify if the Source NAT functionality for this
+        #    network is successfully enabled in VSD.
+        # 3. Verify Source NAT traffic test (wget www.google.com) to the
+        #    Internet from the deployed VM.
+        # 4. Deploy another VM in the created Isolated network, check if the VM
+        #    is deployed successfully in the network. Verify if the Source NAT
+        #    functionality for this network is successfully enabled in VSD.
+        # 5. Verify Source NAT traffic test (wget www.google.com) to the
+        #    Internet from the deployed VM.
+        # 6. Delete all the created objects (cleanup).
+        # Note: Above mentioned Source NAT traffic tests are done through a
+        #       custom init script in the guest VM template upon the VM boot
+        #       up. This traffic tests are verified by SSHing into the VM
+        #       using a Static NAT rule.
+
+        if not self.isNuageInfraUnderlay:
+            self.skipTest("Configured Nuage VSP SDN platform infrastructure "
+                          "does not support underlay networking: "
+                          "skipping test")
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Source "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating Isolated networks, deploying VMs, and verifying Source NAT
+        # traffic
+        self.debug("Creating an Isolated network with Source NAT service...")
+        network = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_1 = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm_1, network)
+
+        self.debug("Deploying another VM in the created Isolated network...")
+        vm_2 = self.create_VM(network)
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vm_2)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm_2, network)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_04_nuage_SourceNAT_vpc_network_traffic(self):
+        """Test Nuage VSP Source NAT functionality for VPC network by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # 1. Check if the configured Nuage VSP SDN platform infrastructure
+        #    supports underlay networking, if not, skip this test.
+        # 2. Create a VPC network with Source NAT service provider as NuageVsp
+        #    in the VPC with SourceNat service and spawn a VM, check if the
+        #    tier is added to the VPC VR, and the VM is deployed successfully
+        #    in the tier. Verify if the Source NAT functionality for this
+        #    network is successfully enabled in VSD.
+        # 3. Verify Source NAT traffic test (wget www.google.com) to the
+        #    Internet from the deployed VM.
+        # 4. Deploy another VM in the created VPC network, check if the VM is
+        #    deployed successfully in the network. Verify if the Source NAT
+        #    functionality for this network is successfully enabled in VSD.
+        # 5. Verify Source NAT traffic test (wget www.google.com) to the
+        #    Internet from the deployed VM.
+        # 6. Delete all the created objects (cleanup).
+        # Note: Above mentioned Source NAT traffic tests are done through a
+        #       custom init script in the guest VM template upon the VM boot
+        #       up. This traffic tests are verified by SSHing into the VM using
+        #       a Static NAT rule.
+
+        if not self.isNuageInfraUnderlay:
+            self.skipTest("Configured Nuage VSP SDN platform infrastructure "
+                          "does not support underlay networking: "
+                          "skipping test")
+
+        # Creating VPC offering
+        self.debug("Creating Nuage VSP VPC offering with Source NAT service "
+                   "provider as NuageVsp...")
+        vpc_off = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+
+        # Creating VPC
+        self.debug("Creating a VPC with Source NAT service provider as "
+                   "NuageVsp...")
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc, state="Enabled")
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP VPC Network offering with Source NAT "
+                   "service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating VPC networks in the VPC, deploying VMs, and verifying
+        # Source NAT traffic
+        self.debug("Creating a VPC network with Source NAT service...")
+        vpc_tier = self.create_Network(net_off, gateway='10.1.1.1', vpc=vpc)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier, vpc=vpc)
+
+        # Adding Egress Network ACL rules
+        self.debug("Adding Egress Network ACL rules in the created VPC "
+                   "network to allow Source NAT (DNS & HTTP) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule = self.create_NetworkAclRule(
+            self.test_data["dns_rule"], traffic_type="Egress",
+            network=vpc_tier)
+        http_rule = self.create_NetworkAclRule(
+            self.test_data["http_rule"], traffic_type="Egress",
+            network=vpc_tier)
+
+        # VSD verification for added Egress Network ACL rules
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm_1 = self.create_VM(vpc_tier)
+        self.check_VM_state(vpc_vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm_1)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier, vpc=vpc)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm_1, vpc_tier, vpc=vpc)
+
+        self.debug("Deploying another VM in the created VPC network...")
+        vpc_vm_2 = self.create_VM(vpc_tier)
+        self.check_VM_state(vpc_vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm_2)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier, vpc=vpc)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm_2, vpc_tier, vpc=vpc)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_05_nuage_SourceNAT_acl_rules_traffic(self):
+        """Test Nuage VSP Source NAT functionality with different Egress
+        Firewall/Network ACL rules by performing (wget) traffic tests to the
+        Internet
+        """
+
+        # Check if the configured Nuage VSP SDN platform infrastructure
+        # supports underlay networking, if not, skip this test.
+        # Repeat the tests in the testcases
+        # "test_03_nuage_SourceNAT_isolated_network_traffic" and
+        # "test_04_nuage_SourceNAT_vpc_network_traffic" with different Egress
+        # Firewall/Network ACL rules:
+        # 1. Allow and block Egress Firewall rules
+        # 2. Allow and block Egress Network ACL rules
+        # Verify the above Egress Firewall/Network ACL rules by verifying its
+        # Source NAT traffic test (wget www.google.com) to the Internet.
+        # Delete all the created objects (cleanup).
+
+        if not self.isNuageInfraUnderlay:
+            self.skipTest("Configured Nuage VSP SDN platform infrastructure "
+                          "does not support underlay networking: "
+                          "skipping test")
+
+        # Creating Isolated network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Source "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating an Isolated network, deploying a VM, and verifying Source
+        # NAT traffic with Egress Firewall rules
+        self.debug("Creating an Isolated network with Source NAT service...")
+        network = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network)
+
+        # Adding Egress Firewall rule
+        self.debug("Adding an Egress Firewall rule in the created Isolated "
+                   "network to block/drop Source NAT (DNS) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule_1 = self.create_EgressFirewallRule(
+            network, self.test_data["dns_rule"])
+
+        # VSD verification for added Egress Firewall rule
+        self.verify_vsd_firewall_rule(dns_rule_1, traffic_type="Egress")
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        with self.assertRaises(Exception):
+            self.verify_SourceNAT_VM_traffic(vm, network, negative_test=True)
+        self.debug("Source NAT (DNS) traffic to the Internet from the "
+                   "deployed VM is blocked/dropped by the added Egress "
+                   "Firewall rule")
+
+        # Removing Egress Firewall rule
+        self.debug("Removing the added Egress Firewall rule in the created "
+                   "Isolated network to allow Source NAT (DNS) traffic to "
+                   "the Internet from the VMs in the network "
+                   "(Default Egress Firewall rule)...")
+        dns_rule_1.delete(self.api_client)
+
+        # VSD verification for removed Egress Firewall rule
+        with self.assertRaises(Exception):
+            self.verify_vsd_firewall_rule(dns_rule_1, traffic_type="Egress")
+        self.debug("Egress Firewall rule successfully deleted in VSD")
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network)
+
+        # Creating VPC offering
+        self.debug("Creating Nuage VSP VPC offering with Source NAT service "
+                   "provider as NuageVsp...")
+        vpc_off = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+
+        # Creating VPC
+        self.debug("Creating a VPC with Source NAT service provider as "
+                   "NuageVsp...")
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc, state="Enabled")
+
+        # Creating VPC network offering
+        self.debug("Creating Nuage VSP VPC Network offering with Source NAT "
+                   "service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating a VPC network in the VPC, deploying a VM, and verifying
+        # Source NAT traffic with Network ACl rules
+        self.debug("Creating a VPC network with Source NAT service...")
+        vpc_tier = self.create_Network(net_off, gateway='10.1.1.1', vpc=vpc)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier, vpc=vpc)
+
+        # Adding Egress Network ACL rules
+        self.debug("Adding Egress Network ACL rules in the created VPC "
+                   "network to allow Source NAT (DNS & HTTP) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule_2 = self.create_NetworkAclRule(
+            self.test_data["dns_rule"], traffic_type="Egress",
+            network=vpc_tier)
+        http_rule = self.create_NetworkAclRule(
+            self.test_data["http_rule"], traffic_type="Egress",
+            network=vpc_tier)
+
+        # VSD verification for added Egress Network ACL rules
+        self.verify_vsd_firewall_rule(dns_rule_2, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm = self.create_VM(vpc_tier)
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier, vpc=vpc)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm, vpc_tier, vpc=vpc)
+
+        # Removing Egress Network ACL rule
+        self.debug("Removing the added Egress Network ACL rule in the created "
+                   "VPC network to block Source NAT (DNS) traffic to the "
+                   "Internet from the VMs in the network "
+                   "(Default Egress Network ACL rule)...")
+        dns_rule_2.delete(self.api_client)
+
+        # VSD verification for removed Egress Network ACL rule
+        with self.assertRaises(Exception):
+            self.verify_vsd_firewall_rule(dns_rule_2, traffic_type="Egress")
+        self.debug("Egress Network ACL rule successfully deleted in VSD")
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        with self.assertRaises(Exception):
+            self.verify_SourceNAT_VM_traffic(vpc_vm, vpc_tier, vpc=vpc,
+                                             negative_test=True)
+        self.debug("Source NAT (DNS) traffic to the Internet from the "
+                   "deployed VM is blocked by the Default Egress Network ACL "
+                   "rule")
+
+        # Re-adding Egress Network ACL rule
+        self.debug("Re-adding the Egress Network ACL rule in the created VPC "
+                   "network to allow Source NAT (DNS) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule_2 = self.create_NetworkAclRule(
+            self.test_data["dns_rule"], traffic_type="Egress",
+            network=vpc_tier)
+
+        # VSD verification for re-added Egress Network ACL rule
+        self.verify_vsd_firewall_rule(dns_rule_2, traffic_type="Egress")
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm, vpc_tier, vpc=vpc)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_06_nuage_SourceNAT_vm_nic_operations_traffic(self):
+        """Test Nuage VSP Source NAT functionality with VM NIC operations by
+        performing (wget) traffic tests to the
+        Internet
+        """
+
+        # Check if the configured Nuage VSP SDN platform infrastructure
+        # supports underlay networking, if not, skip this test.
+        # Repeat the tests in the testcase "test_03_nuage_SourceNAT_isolated_
+        # network_traffic" with VM NIC operations:
+        # 1. Updating default VM NIC
+        # 2. Removing non-default VM NIC
+        # 3. Adding and updating default VM NIC
+        # Verify the above VM NIC operations by verifying its Source NAT
+        # traffic test (wget www.google.com) to the Internet.
+        # Delete all the created objects (cleanup).
+
+        if not self.isNuageInfraUnderlay:
+            self.skipTest("Configured Nuage VSP SDN platform infrastructure "
+                          "does not support underlay networking: "
+                          "skipping test")
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Source "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating Isolated networks, deploying a multi-nic VM, and verifying
+        # Source NAT traffic with VM NIC operations
+        self.debug("Creating an Isolated network with Source NAT service...")
+        network_1 = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network_1, state="Allocated")
+
+        self.debug("Creating another Isolated network with Source NAT "
+                   "service...")
+        network_2 = self.create_Network(net_off, gateway='10.1.2.1')
+        self.validate_Network(network_2, state="Allocated")
+
+        self.debug("Deploying a multi-nic VM in the created Isolated "
+                   "networks...")
+        vm = self.create_VM([network_1, network_2])
+        self.validate_Network(network_1, state="Implemented")
+        vr_1 = self.get_Router(network_1)
+        self.check_Router_state(vr_1, state="Running")
+        self.validate_Network(network_2, state="Implemented")
+        vr_2 = self.get_Router(network_2)
+        self.check_Router_state(vr_2, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_router(vr_1)
+        self.verify_vsd_network(self.domain.id, network_2)
+        self.verify_vsd_router(vr_2)
+        self.verify_vsd_vm(vm)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network_1)
+        self.verify_vsd_SourceNAT_network(network_2)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network_1)
+
+        # Updating default VM NIC
+        # This VM NIC operation has no effect on the Source NAT functionality
+        self.debug("Updating the default nic of the multi-nic VM...")
+        self.nic_operation_VM(vm, network_2, operation="update")
+
+        # Rebooting (stop - start) VM
+        self.debug("Rebooting the multi-nic VM after updating its default nic "
+                   "for changes to apply to the VM...")
+        vm.stop(self.api_client)
+        vm.start(self.api_client)
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        updated_vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        self.verify_vsd_vm(updated_vm_info)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network_1)
+        self.verify_vsd_SourceNAT_network(network_2)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network_2)
+
+        # Removing non-default VM NIC
+        # This VM NIC operation has no effect on the Source NAT functionality
+        self.debug("Removing the non-default nic of the multi-nic VM...")
+        self.nic_operation_VM(vm, network_1, operation="remove")
+
+        # Rebooting (stop - start) VM
+        self.debug("Rebooting the multi-nic VM after removing its non-default "
+                   "nic for changes to apply to the VM...")
+        vm.stop(self.api_client)
+        vm.start(self.api_client)
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        updated_vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        self.verify_vsd_vm(updated_vm_info)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network_1)
+        self.verify_vsd_SourceNAT_network(network_2)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network_2)
+
+        # Adding and updating default VM NIC
+        # This VM NIC operation has no effect on the Source NAT functionality
+        self.debug("Re-adding the non-default nic and updating the default "
+                   "nic of the multi-nic VM...")
+        self.nic_operation_VM(vm, network_1, operation="add")
+        self.nic_operation_VM(vm, network_1, operation="update")
+
+        # Rebooting (stop - start) VM
+        self.debug("Rebooting the multi-nic VM after re-adding its "
+                   "non-default nic for changes to apply to the VM...")
+        vm.stop(self.api_client)
+        vm.start(self.api_client)
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        updated_vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        self.verify_vsd_vm(updated_vm_info)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network_1)
+        self.verify_vsd_SourceNAT_network(network_2)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network_1)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_07_nuage_SourceNAT_vm_migration_traffic(self):
+        """Test Nuage VSP Source NAT functionality with VM migration by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # Check if the configured Nuage VSP SDN platform infrastructure
+        # supports underlay networking, if not, skip this test.
+        # Repeat the tests in the testcase
+        # "test_03_nuage_SourceNAT_isolated_network_traffic" with migration of
+        # one of the VMs to another host (if available).
+        # Verify the above VM migration by verifying its Source NAT traffic
+        # test (wget www.google.com) to the Internet.
+        # Delete all the created objects (cleanup).
+
+        if not self.isNuageInfraUnderlay:
+            self.skipTest("Configured Nuage VSP SDN platform infrastructure "
+                          "does not support underlay networking: "
+                          "skipping test")
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Source "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating an Isolated network, deploying VMs, and verifying Source NAT
+        # traffic with VM migrations
+        self.debug("Creating an Isolated network with Source NAT service...")
+        network = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_1 = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm_1, network)
+
+        self.debug("Deploying another VM in the created Isolated network...")
+        vm_2 = self.create_VM(network)
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vm_2)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm_2, network)
+
+        # VM migration
+        # This VM migration has no effect on the Source NAT functionality
+        self.debug("Migrating one of the VMs in the created Isolated network "
+                   "to another host, if available...")
+        self.migrate_VM(vm_1)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm_1, network)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm_2, network)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_08_nuage_SourceNAT_network_restarts_traffic(self):
+        """Test Nuage VSP Source NAT functionality with network restarts by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # Check if the configured Nuage VSP SDN platform infrastructure
+        # supports underlay networking, if not, skip this test.
+        # Repeat the tests in the testcases
+        # "test_03_nuage_SourceNAT_isolated_network_traffic" and
+        # "test_04_nuage_SourceNAT_vpc_network_traffic" with network restarts:
+        # 1. Restart Isolated Network (cleanup = false)
+        # 2. Restart Isolated Network (cleanup = true)
+        # 3. Reboot VM in the Isolated Network
+        # 4. Restart VPC Network (cleanup = false)
+        # 5. Restart VPC Network (cleanup = true)
+        # 6. Reboot VM in the VPC Network
+        # 7. Restart VPC (cleanup = false)
+        # 8. Restart VPC (cleanup = true)
+        # Verify the above with network restarts by verifying its Source NAT
+        # traffic test (wget www.google.com) to the Internet.
+        # Delete all the created objects (cleanup).
+
+        if not self.isNuageInfraUnderlay:
+            self.skipTest("Configured Nuage VSP SDN platform infrastructure "
+                          "does not support underlay networking: "
+                          "skipping test")
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Source "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating an Isolated network, deploying a VM, and verifying Source
+        # NAT traffic with Isolated network restarts
+        self.debug("Creating an Isolated network with Source NAT service...")
+        network = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(network)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network)
+
+        # Restarting Isolated network (cleanup = false)
+        # VR gets destroyed and deployed again in the Isolated network
+        # This restart has no effect on the Source NAT functionality
+        self.debug("Restarting the created Isolated network without "
+                   "cleanup...")
+        Network.restart(network, self.api_client, cleanup=False)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network)
+
+        # Restarting Isolated network (cleanup = true)
+        # VR gets destroyed and deployed again in the Isolated network
+        # This restart has no effect on the Source NAT functionality
+        self.debug("Restarting the created Isolated network with cleanup...")
+        Network.restart(network, self.api_client, cleanup=True)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vm, network)
+
+        # Creating VPC offering
+        self.debug("Creating Nuage VSP VPC offering with Source NAT service "
+                   "provider as NuageVsp...")
+        vpc_off = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+
+        # Creating VPC
+        self.debug("Creating a VPC with Source NAT service provider as "
+                   "NuageVsp...")
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc, state="Enabled")
+
+        # Creating VPC network offering
+        self.debug("Creating Nuage VSP VPC Network offering with Source NAT "
+                   "service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating a VPC network in the VPC, deploying a VM, and verifying
+        # Source NAT traffic with VPC network restarts
+        self.debug("Creating a VPC network with Source NAT service...")
+        vpc_tier = self.create_Network(net_off, gateway='10.1.1.1', vpc=vpc)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier, vpc=vpc)
+
+        # Adding Egress Network ACL rules
+        self.debug("Adding Egress Network ACL rules in the created VPC "
+                   "network to allow Source NAT (DNS & HTTP) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule = self.create_NetworkAclRule(
+            self.test_data["dns_rule"], traffic_type="Egress",
+            network=vpc_tier)
+        http_rule = self.create_NetworkAclRule(
+            self.test_data["http_rule"], traffic_type="Egress",
+            network=vpc_tier)
+
+        # VSD verification for added Egress Network ACL rules
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm = self.create_VM(vpc_tier)
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm)
+
+        # VSD verification for Source NAT functionality
+        self.verify_vsd_SourceNAT_network(vpc_tier, vpc=vpc)
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm, vpc_tier, vpc=vpc)
+
+        # Restarting VPC network (cleanup = false)
+        # This restart has no effect on the Source NAT functionality
+        self.debug("Restarting the created VPC network without cleanup...")
+        Network.restart(vpc_tier, self.api_client, cleanup=False)
+        self.validate_Network(vpc_tier, state="Implemented")
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+        self.verify_vsd_vm(vpc_vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm, vpc_tier, vpc=vpc)
+
+        # Restarting VPC network (cleanup = true)
+        # This restart has no effect on the Source NAT functionality
+        self.debug("Restarting the created VPC network with cleanup...")
+        Network.restart(vpc_tier, self.api_client, cleanup=True)
+        self.validate_Network(vpc_tier, state="Implemented")
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+        self.verify_vsd_vm(vpc_vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm, vpc_tier, vpc=vpc)
+
+        # Restarting VPC (cleanup = false)
+        # VPC VR gets destroyed and deployed again in the VPC
+        # This restart has no effect on the Source NAT functionality
+        self.debug("Restarting the VPC without cleanup...")
+        self.restart_Vpc(vpc, cleanup=False)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+        self.verify_vsd_vm(vpc_vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm, vpc_tier, vpc=vpc)
+
+        # Restarting VPC (cleanup = true)
+        # VPC VR gets destroyed and deployed again in the VPC
+        # This restart has no effect on the Source NAT functionality
+        self.debug("Restarting the VPC with cleanup...")
+        self.restart_Vpc(vpc, cleanup=True)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+        self.verify_vsd_vm(vpc_vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # Verifying Source NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM. This Source NAT traffic test is done through a
+        # custom init script in the guest VM template upon the VM boot up.
+        self.verify_SourceNAT_VM_traffic(vpc_vm, vpc_tier, vpc=vpc)
diff --git a/test/integration/plugins/nuagevsp/test_nuage_static_nat.py b/test/integration/plugins/nuagevsp/test_nuage_static_nat.py
new file mode 100644
index 0000000..9e6cdde
--- /dev/null
+++ b/test/integration/plugins/nuagevsp/test_nuage_static_nat.py
@@ -0,0 +1,2088 @@
+# 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.
+
+""" Component tests for Static NAT functionality with Nuage VSP SDN plugin
+"""
+# Import Local Modules
+from nuageTestCase import nuageTestCase
+from marvin.lib.base import (Account,
+                             PublicIpRange,
+                             Network,
+                             VirtualMachine)
+from marvin.cloudstackAPI import (enableNuageUnderlayVlanIpRange,
+                                  disableNuageUnderlayVlanIpRange,
+                                  listNuageUnderlayVlanIpRanges)
+# Import System Modules
+from nose.plugins.attrib import attr
+import copy
+import time
+
+
+class TestNuageStaticNat(nuageTestCase):
+    """Test Static NAT functionality with Nuage VSP SDN plugin
+    """
+
+    @classmethod
+    def setUpClass(cls):
+        super(TestNuageStaticNat, cls).setUpClass()
+        return
+
+    def setUp(self):
+        # Create an account
+        self.account = Account.create(self.api_client,
+                                      self.test_data["account"],
+                                      admin=True,
+                                      domainid=self.domain.id
+                                      )
+        self.cleanup = [self.account]
+        return
+
+    # enable_NuageUnderlayPublicIpRange - Enables/configures underlay
+    # networking for the given public IP range in Nuage VSP
+    def enable_NuageUnderlayPublicIpRange(self, public_ip_range):
+        cmd = enableNuageUnderlayVlanIpRange.\
+            enableNuageUnderlayVlanIpRangeCmd()
+        cmd.id = public_ip_range.vlan.id
+        self.api_client.enableNuageUnderlayVlanIpRange(cmd)
+
+    # disable_NuageUnderlayPublicIpRange - Disables/de-configures underlay
+    # networking for the given public IP range in Nuage VSP
+    def disable_NuageUnderlayPublicIpRange(self, public_ip_range):
+        cmd = disableNuageUnderlayVlanIpRange.\
+            disableNuageUnderlayVlanIpRangeCmd()
+        cmd.id = public_ip_range.vlan.id
+        self.api_client.enableNuageUnderlayVlanIpRange(cmd)
+
+    # list_NuageUnderlayPublicIpRanges - Lists underlay networking
+    # enabled/configured public IP ranges in Nuage VSP
+    def list_NuageUnderlayPublicIpRanges(self, public_ip_range=None):
+        cmd = listNuageUnderlayVlanIpRanges.listNuageUnderlayVlanIpRangesCmd()
+        if public_ip_range:
+            cmd.id = public_ip_range.vlan.id
+        cmd.underlay = True
+        return self.api_client.listNuageUnderlayVlanIpRanges(cmd)
+
+    # create_PublicIpRange - Creates public IP range
+    def create_PublicIpRange(self):
+        self.debug("Creating public IP range")
+        self.test_data["vlan_ip_range"]["startip"] = "20.200.200.100"
+        self.test_data["vlan_ip_range"]["endip"] = "20.200.200.200"
+        self.test_data["vlan_ip_range"]["netmask"] = "255.255.255.0"
+        self.test_data["vlan_ip_range"]["gateway"] = "20.200.200.1"
+        self.test_data["vlan_ip_range"]["forvirtualnetwork"] = "true"
+        self.test_data["vlan_ip_range"]["zoneid"] = self.zone.id
+        public_ip_range = PublicIpRange.create(self.api_client,
+                                               self.test_data["vlan_ip_range"]
+                                               )
+        self.debug("Created public IP range")
+        return public_ip_range
+
+    # validate_PublicIpRange - Validates public IP range creation and state
+    def validate_PublicIpRange(self, public_ip_range):
+        public_ip_ranges = PublicIpRange.list(self.api_client,
+                                              id=public_ip_range.vlan.id
+                                              )
+        self.assertEqual(isinstance(public_ip_ranges, list), True,
+                         "List Public IP Range should return a valid list"
+                         )
+        self.assertEqual(public_ip_range.vlan.startip,
+                         public_ip_ranges[0].startip,
+                         "Start IP of the public IP range should match with "
+                         "the returned list data"
+                         )
+        self.assertEqual(public_ip_range.vlan.endip, public_ip_ranges[0].endip,
+                         "End IP of the public IP range should match with the "
+                         "returned list data"
+                         )
+
+    # validate_NuageUnderlayPublicIpRange - Validates Nuage underlay enabled
+    # public IP range creation and state
+    def validate_NuageUnderlayPublicIpRange(self, public_ip_range):
+        nuage_underlay_public_ip_ranges = \
+            self.list_NuageUnderlayPublicIpRanges(public_ip_range)
+        self.assertEqual(isinstance(nuage_underlay_public_ip_ranges, list),
+                         True,
+                         "List Nuage Underlay Public IP Range should return "
+                         "a valid list"
+                         )
+        self.assertEqual(public_ip_range.vlan.startip,
+                         nuage_underlay_public_ip_ranges[0].startip,
+                         "Start IP of the public IP range should match with "
+                         "the returned list data"
+                         )
+        self.assertEqual(public_ip_range.vlan.endip,
+                         nuage_underlay_public_ip_ranges[0].endip,
+                         "End IP of the public IP range should match with the "
+                         "returned list data"
+                         )
+
+    # verify_StaticNAT_traffic - Verifies Static NAT traffic by performing
+    # wget traffic test with the given Static NAT enabled public IP, http web
+    # server running on the corresponding VM in the given network
+    def verify_StaticNAT_traffic(self, network, public_ip, vpc=None,
+                                 non_default_nic=False):
+        # Adding Ingress Firewall/Network ACL rule
+        self.debug("Adding Ingress Firewall/Network ACL rule to make the "
+                   "created Static NAT rule (wget) accessible...")
+        if vpc:
+            public_http_rule = self.create_NetworkAclRule(
+                self.test_data["http_rule"], network=network)
+        else:
+            public_http_rule = self.create_FirewallRule(
+                public_ip, self.test_data["http_rule"])
+
+        # VSD verification
+        self.verify_vsd_firewall_rule(public_http_rule)
+
+        # wget from VM
+        tries = 0
+        max_tries = 3 if non_default_nic else 10
+        filename = None
+        headers = None
+        while tries < max_tries:
+            try:
+                filename, headers = self.wget_from_server(public_ip)
+                if filename and headers:
+                    self.debug("wget from VM is successful")
+                break
+            except Exception as e:
+                self.debug("Failed to wget from VM - %s" % e)
+                self.debug("Retrying wget from VM after some time...")
+                time.sleep(60)
+                tries += 1
+
+        if not filename and not headers:
+            if non_default_nic:
+                self.debug("Failed to wget from VM via this NIC as it is not "
+                           "the default NIC")
+            else:
+                self.fail("Failed to wget from VM")
+
+        # Removing Ingress Firewall/Network ACL rule
+        self.debug("Removing the created Ingress Firewall/Network ACL "
+                   "rule in the network...")
+        public_http_rule.delete(self.api_client)
+
+        # VSD verification
+        with self.assertRaises(Exception):
+            self.verify_vsd_firewall_rule(public_http_rule)
+        self.debug("Ingress Firewall/Network ACL rule successfully "
+                   "deleted in VSD")
+
+        self.debug("Successfully verified Static NAT traffic by performing "
+                   "wget traffic test with the given Static NAT enabled "
+                   "public IP - %s" % public_ip)
+
+    # wget_from_internet - From within the given VM (ssh client),
+    # fetches index.html file of an Internet web server, wget www.google.com
+    def wget_from_Internet(self, ssh_client, timeout):
+        if self.http_proxy:
+            cmd = "wget --no-cache --output-document=index.html " \
+                  "http://www.google.com/ -e use_proxy=yes -e http_proxy=" + \
+                  self.http_proxy + " --timeout=" + str(timeout)
+        else:
+            cmd = "wget --no-cache --output-document=index.html " \
+                  "http://www.google.com/ --timeout=" + str(timeout)
+        test_result = self.execute_cmd(ssh_client, cmd)
+        if "200 OK" in test_result:
+            cmd = "rm -rf index.html*"
+            self.execute_cmd(ssh_client, cmd)
+        return test_result
+
+    # verify_StaticNAT_Internet_traffic - Verifies Static NAT traffic to the
+    # Internet (wget www.google.com) from the given VM
+    def verify_StaticNAT_Internet_traffic(self, vm, network, public_ip,
+                                          vpc=None, non_default_nic=False,
+                                          negative_test=False):
+        # Adding Ingress Firewall/Network ACL rule
+        self.debug("Adding Ingress Firewall/Network ACL rule to make the "
+                   "created Static NAT rule (SSH) accessible...")
+        if vpc:
+            public_ssh_rule = self.create_NetworkAclRule(
+                self.test_data["ingress_rule"], network=network)
+        else:
+            public_ssh_rule = self.create_FirewallRule(
+                public_ip, self.test_data["ingress_rule"])
+
+        # VSD verification
+        self.verify_vsd_firewall_rule(public_ssh_rule)
+
+        # Adding Egress Network ACL rule
+        if vpc and self.http_proxy and not negative_test:
+            self.debug("Adding Egress Network ACL rule in the created VPC "
+                       "network to allow access to the configured Internet "
+                       "proxy servers...")
+            proxy_rule = copy.deepcopy(self.test_data["http_rule"])
+            proxy_rule["privateport"] = 1080
+            proxy_rule["publicport"] = 1080
+            proxy_rule["startport"] = 1080
+            proxy_rule["endport"] = 1080
+            internet_proxy_server_rule = self.create_NetworkAclRule(
+                proxy_rule, traffic_type="Egress", network=network)
+
+            # VSD verification
+            self.verify_vsd_firewall_rule(
+                internet_proxy_server_rule, traffic_type="Egress")
+
+        # SSH into VM
+        ssh_client = None
+        if non_default_nic:
+            with self.assertRaises(Exception):
+                self.ssh_into_VM(vm, public_ip, negative_test=True)
+            self.debug("Can not SSH into the VM via this NIC as it is not the "
+                       "default NIC")
+        else:
+            ssh_client = self.ssh_into_VM(vm, public_ip)
+
+        # wget from Internet
+        test_result = None
+        if ssh_client and self.isInternetConnectivityAvailable:
+            timeout = 100 if negative_test else 300
+            test_result = self.wget_from_Internet(ssh_client, timeout)
+
+        # Removing Ingress Firewall/Network ACL rule
+        self.debug("Removing the created Ingress Firewall/Network ACL "
+                   "rule in the network...")
+        public_ssh_rule.delete(self.api_client)
+
+        # VSD verification
+        with self.assertRaises(Exception):
+            self.verify_vsd_firewall_rule(public_ssh_rule)
+        self.debug("Ingress Firewall/Network ACL rule successfully "
+                   "deleted in VSD")
+
+        # Removing Egress Network ACL rule
+        if vpc and self.http_proxy:
+            self.debug("Removing the created Egress Network ACL rule in the "
+                       "VPC network...")
+            internet_proxy_server_rule.delete(self.api_client)
+
+            # VSD verification
+            with self.assertRaises(Exception):
+                self.verify_vsd_firewall_rule(internet_proxy_server_rule)
+            self.debug("Egress Network ACL rule successfully deleted in VSD")
+
+        if test_result:
+            if "200 OK" in test_result:
+                self.debug("Successfully verified Static NAT Internet traffic "
+                           "(wget www.google.com) from VM - %s" % vm.name)
+            else:
+                self.fail("Failed to verify Static NAT Internet traffic "
+                          "(wget www.google.com) from VM - %s" % vm.name)
+        else:
+            if negative_test:
+                self.fail("Skipped Static NAT Internet traffic "
+                          "(wget www.google.com) test from VM as there is no "
+                          "Internet connectivity in the data center")
+            else:
+                self.debug("Skipped Static NAT Internet traffic "
+                           "(wget www.google.com) test from VM as there is no "
+                           "Internet connectivity in the data center")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_01_nuage_StaticNAT_public_ip_range(self):
+        """Test Nuage VSP Public IP Range creation and deletion
+        """
+
+        # 1. Create a public IP range (VLAN IP range), check if it is
+        #    successfully created in the zone and the physical network.
+        # 2. Delete the created public IP range (VLAN IP range), check if it is
+        #    successfully deleted from the zone and the physical network.
+        # 3. Delete all the created objects (cleanup).
+
+        self.debug("Creating a public IP range...")
+        public_ip_range = self.create_PublicIpRange()
+        self.validate_PublicIpRange(public_ip_range)
+        self.debug("Public IP range successfully created")
+
+        self.debug("Deleting the created public IP range...")
+        public_ip_range.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIpRange(public_ip_range)
+        self.debug("Public IP range successfully deleted")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_02_nuage_StaticNAT_underlay_public_ip_range(self):
+        """Test Nuage VSP Nuage Underlay (underlay networking) enabled Public
+        IP Range creation and deletion
+        """
+
+        # 1. Create a public IP range (VLAN IP range), check if it is
+        #    successfully created in the zone and the physical network.
+        # 2. Enable Nuage underlay capability (underlay networking) for the
+        #    created public IP range (VLAN IP range), check if the Nuage
+        #    underlay (underlay networking) capability is successfully enabled
+        #    for the created public IP range (VLAN IP range).
+        # 3. Disable Nuage underlay capability (underlay networking) for the
+        #    created public IP range (VLAN IP range), check if the Nuage
+        #    underlay (underlay networking) capability is successfully disabled
+        #    for the created public IP range (VLAN IP range).
+        # 4. Delete the created public IP range (VLAN IP range), check if it is
+        #    successfully deleted from the zone and the physical network.
+        # 5. Delete all the created objects (cleanup).
+
+        self.debug("Creating a public IP range...")
+        public_ip_range = self.create_PublicIpRange()
+        self.validate_PublicIpRange(public_ip_range)
+        self.debug("Public IP range successfully created")
+
+        self.debug("Enabling Nuage underlay capability (underlay networking) "
+                   "for the created public IP range...")
+        self.enable_NuageUnderlayPublicIpRange(public_ip_range)
+        self.validate_NuageUnderlayPublicIpRange(public_ip_range)
+        self.debug("Nuage underlay capability (underlay networking) for the "
+                   "created public IP range is successfully enabled")
+
+        self.debug("Disabling Nuage underlay capability (underlay networking) "
+                   "for the created public IP range...")
+        self.disable_NuageUnderlayPublicIpRange(public_ip_range)
+        with self.assertRaises(Exception):
+            self.validate_NuageUnderlayPublicIpRange(public_ip_range)
+        self.debug("Nuage underlay capability (underlay networking) for the "
+                   "created public IP range is successfully disabled")
+
+        self.debug("Deleting the created public IP range...")
+        public_ip_range.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIpRange(public_ip_range)
+        self.debug("Public IP range successfully deleted")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_03_nuage_StaticNAT_isolated_networks(self):
+        """Test Nuage VSP Isolated networks with different combinations of
+        Static NAT service providers
+        """
+
+        # 1. Create Nuage VSP Isolated Network offering with different
+        #    combinations of Static NAT service providers
+        #    (NuageVsp, VirtualRouter, no StaticNat service), check if all the
+        #    network offerings are successfully created and enabled.
+        # 2. Recreate the above created Network offering
+        #    (Static NAT service provider as NuageVsp) with ispersistent flag
+        #    set to True, check if the network offering is successfully created
+        #    and enabled.
+        # 3. Recreate the above created Network offering
+        #    (Static NAT service provider as NuageVsp) with conserve mode On
+        #    (conserve_mode flag set to True), check if the network offering is
+        #    successfully created and enabled.
+        # 4. Create an Isolated network with Static NAT service provider as
+        #    NuageVsp, spawn a VM, and create a Static NAT rule. Check if the
+        #    network is successfully created, and the VM along with the VR is
+        #    deployed successfully in the network, verify if the Static NAT
+        #    functionality for this network is successfully enabled in VSD.
+        # 5. Create a persistent Isolated network with Static NAT service
+        #    provider as NuageVsp, spawn a VM, and create a Static NAT rule.
+        #    Check if the network is successfully created, and the VM along
+        #    with the VR is deployed successfully in the network, verify if the
+        #    Static NAT functionality for this network is successfully enabled
+        #    in VSD.
+        # 6. Create a conserved Isolated network (conserve mode On) with Static
+        #    NAT service provider as NuageVsp, spawn a VM, and create a Static
+        #    NAT rule. Check if the network is successfully created, and the VM
+        #    along with the VR is deployed successfully in the network, verify
+        #    if the Static NAT functionality for this network is successfully
+        #    enabled in VSD.
+        # 7. Create an Isolated network with Static NAT service provider as
+        #    VirtualRouter, spawn a VM, and create a Static NAT rule. Check if
+        #    the network is successfully created, and the VM along with the VR
+        #    is deployed successfully in the network, verify if the Static NAT
+        #    functionality for this network is not enabled in VSD as Nuage VSP
+        #    does not support VirtualRouter as the Static NAT service provider.
+        # 8. Create an Isolated network with no Static NAT service, spawn a VM,
+        #    and create a Static NAT rule. Check if the network is successfully
+        #    created, and the VM along with the VR is deployed successfully in
+        #    the network, verify if the Static NAT functionality for this
+        #    network is not enabled in both CloudStack and VSD as the network
+        #    does not support Static NAT service.
+        # 9. Delete all the created objects (cleanup).
+
+        # Creating network offerings
+        self.debug("Creating Nuage VSP Isolated Network offering with Static "
+                   "NAT service provider as NuageVsp...")
+        net_off_1 = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off_1, state="Enabled")
+
+        self.debug("Recreating above Network offering with ispersistent "
+                   "True...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        network_offering["ispersistent"] = "True"
+        net_off_2 = self.create_NetworkOffering(network_offering)
+        self.validate_NetworkOffering(net_off_2, state="Enabled")
+
+        self.debug("Recreating above Network offering with conserve mode "
+                   "On...")
+        net_off_3 = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"],
+            conserve_mode=True)
+        self.validate_NetworkOffering(net_off_3, state="Enabled")
+
+        self.debug("Creating Nuage VSP Isolated Network offering with Static "
+                   "NAT service provider as VirtualRouter...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        network_offering["serviceProviderList"]["StaticNat"] = "VirtualRouter"
+        net_off_4 = self.create_NetworkOffering(network_offering)
+        self.validate_NetworkOffering(net_off_4, state="Enabled")
+
+        self.debug("Creating Nuage VSP Isolated Network offering without "
+                   "Static NAT service...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        network_offering["supportedservices"] = \
+            'Dhcp,SourceNat,Connectivity,UserData,Firewall,Dns'
+        del network_offering["serviceProviderList"]["StaticNat"]
+        net_off_5 = self.create_NetworkOffering(network_offering)
+        self.validate_NetworkOffering(net_off_5, state="Enabled")
+
+        # Creating Isolated networks, and deploying VMs
+        self.debug("Creating an Isolated network with Static NAT service "
+                   "provider as NuageVsp...")
+        network_1 = self.create_Network(net_off_1, gateway='10.1.1.1')
+        self.validate_Network(network_1, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_1 = self.create_VM(network_1)
+        self.validate_Network(network_1, state="Implemented")
+        vr_1 = self.get_Router(network_1)
+        self.check_Router_state(vr_1, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_router(vr_1)
+        self.verify_vsd_vm(vm_1)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip = self.acquire_PublicIPAddress(network_1)
+        self.validate_PublicIPAddress(public_ip, network_1)
+        self.create_StaticNatRule_For_VM(vm_1, public_ip, network_1)
+        self.validate_PublicIPAddress(
+            public_ip, network_1, static_nat=True, vm=vm_1)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network_1, vm_1, public_ip.ipaddress)
+
+        # Deleting Static NAT Rule
+        self.debug("Deleting Static NAT Rule for the deployed VM...")
+        self.delete_StaticNatRule_For_VM(public_ip)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(
+                public_ip, network_1, static_nat=True, vm=vm_1)
+        self.debug("Static NAT Rule for the deployed VM successfully deleted "
+                   "in CloudStack")
+
+        # VSD verification
+        with self.assertRaises(Exception):
+            self.verify_vsd_floating_ip(network_1, vm_1, public_ip.ipaddress)
+        self.debug("Floating IP for the deployed VM successfully deleted in "
+                   "VSD")
+
+        # Releasing acquired public IP
+        self.debug("Releasing the acquired public IP in the created Isolated "
+                   "network...")
+        public_ip.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(public_ip, network_1)
+        self.debug("Acquired public IP in the created Isolated network "
+                   "successfully released in CloudStack")
+        self.delete_VM(vm_1)
+        # Bug CLOUDSTACK-9398
+        """
+        self.debug("Creating a persistent Isolated network with Static NAT "
+                   "service...")
+        network_2 = self.create_Network(net_off_2, gateway='10.1.1.1')
+        self.validate_Network(network_2, state="Implemented")
+        vr_2 = self.get_Router(network_2)
+        self.check_Router_state(vr_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_2)
+        self.verify_vsd_router(vr_2)
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_2 = self.create_VM(network_2)
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vm_2)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule in the created Isolated network "
+                   "with its deployed VM...")
+        public_ip = self.acquire_PublicIPAddress(network_2)
+        self.validate_PublicIPAddress(public_ip, network_2)
+        self.create_StaticNatRule_For_VM(vm_2, public_ip, network_2)
+        self.validate_PublicIPAddress(
+            public_ip, network_2, static_nat=True, vm=vm_2)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network_2, vm_2, public_ip.ipaddress)
+
+        # Deleting Static NAT Rule
+        self.debug("Deleting Static NAT Rule for the deployed VM...")
+        self.delete_StaticNatRule_For_VM(public_ip)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(
+                public_ip, network_2, static_nat=True, vm=vm_2)
+        self.debug("Static NAT Rule for the deployed VM successfully deleted "
+                   "in CloudStack")
+
+        # VSD verification
+        with self.assertRaises(Exception):
+            self.verify_vsd_floating_ip(network_2, vm_2, public_ip.ipaddress)
+        self.debug("Floating IP for the deployed VM successfully deleted in "
+                   "VSD")
+
+        # Releasing acquired public IP
+        self.debug("Releasing the acquired public IP in the created Isolated "
+                   "network...")
+        public_ip.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(public_ip, network_2)
+        self.debug("Acquired public IP in the created Isolated network "
+                   "successfully released in CloudStack")
+        self.delete_VM(vm_2)
+        """
+
+        self.debug("Creating an Isolated network with Static NAT service and "
+                   "conserve mode On...")
+        network_3 = self.create_Network(net_off_3, gateway='10.1.1.1')
+        self.validate_Network(network_3, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_3 = self.create_VM(network_3)
+        self.validate_Network(network_3, state="Implemented")
+        vr_3 = self.get_Router(network_3)
+        self.check_Router_state(vr_3, state="Running")
+        self.check_VM_state(vm_3, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_3)
+        self.verify_vsd_router(vr_3)
+        self.verify_vsd_vm(vm_3)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule in the created Isolated network "
+                   "with its deployed VM...")
+        public_ip = self.acquire_PublicIPAddress(network_3)
+        self.validate_PublicIPAddress(public_ip, network_3)
+        self.create_StaticNatRule_For_VM(vm_3, public_ip, network_3)
+        self.validate_PublicIPAddress(
+            public_ip, network_3, static_nat=True, vm=vm_3)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network_3, vm_3, public_ip.ipaddress)
+
+        # Deleting Static NAT Rule
+        self.debug("Deleting Static NAT Rule for the deployed VM...")
+        self.delete_StaticNatRule_For_VM(public_ip)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(
+                public_ip, network_3, static_nat=True, vm=vm_3)
+        self.debug("Static NAT Rule for the deployed VM successfully deleted "
+                   "in CloudStack")
+
+        # VSD verification
+        with self.assertRaises(Exception):
+            self.verify_vsd_floating_ip(network_3, vm_3, public_ip.ipaddress)
+        self.debug("Floating IP for the deployed VM successfully deleted in "
+                   "VSD")
+
+        # Releasing acquired public IP
+        self.debug("Releasing the acquired public IP in the created Isolated "
+                   "network...")
+        public_ip.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(public_ip, network_3)
+        self.debug("Acquired public IP in the created Isolated network "
+                   "successfully released in CloudStack")
+        self.delete_VM(vm_3)
+
+        self.debug("Creating an Isolated network with Static NAT service "
+                   "provider as VirtualRouter...")
+        network_4 = self.create_Network(net_off_4, gateway='10.1.1.1')
+        self.validate_Network(network_4, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_4 = self.create_VM(network_4)
+        self.validate_Network(network_4, state="Implemented")
+        vr_4 = self.get_Router(network_4)
+        self.check_Router_state(vr_4, state="Running")
+        self.check_VM_state(vm_4, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_4)
+        self.verify_vsd_router(vr_4)
+        self.verify_vsd_vm(vm_4)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule in the created Isolated network "
+                   "with its deployed VM...")
+        public_ip = self.acquire_PublicIPAddress(network_4)
+        self.validate_PublicIPAddress(public_ip, network_4)
+        self.create_StaticNatRule_For_VM(vm_4, public_ip, network_4)
+        self.validate_PublicIPAddress(
+            public_ip, network_4, static_nat=True, vm=vm_4)
+
+        # VSD verification for Static NAT functionality
+        with self.assertRaises(Exception):
+            self.verify_vsd_floating_ip(network_4, vm_4, public_ip.ipaddress)
+        self.debug("Nuage VSP does not support VirtualRouter as the Static "
+                   "NAT service provider")
+
+        # Deleting Static NAT Rule
+        self.debug("Deleting Static NAT Rule for the deployed VM...")
+        self.delete_StaticNatRule_For_VM(public_ip)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(
+                public_ip, network_4, static_nat=True, vm=vm_4)
+        self.debug("Static NAT Rule for the deployed VM successfully deleted "
+                   "in CloudStack")
+
+        # Releasing acquired public IP
+        self.debug("Releasing the acquired public IP in the created Isolated "
+                   "network...")
+        public_ip.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(public_ip, network_4)
+        self.debug("Acquired public IP in the created Isolated network "
+                   "successfully released in CloudStack")
+        self.delete_VM(vm_4)
+
+        self.debug("Creating an Isolated network with no Static NAT "
+                   "service...")
+        network_5 = self.create_Network(net_off_5, gateway='10.1.1.1')
+        self.validate_Network(network_5, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_5 = self.create_VM(network_5)
+        self.validate_Network(network_5, state="Implemented")
+        vr_5 = self.get_Router(network_5)
+        self.check_Router_state(vr_5, state="Running")
+        self.check_VM_state(vm_5, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_5)
+        self.verify_vsd_router(vr_5)
+        self.verify_vsd_vm(vm_5)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule in the created Isolated network "
+                   "with its deployed VM...")
+        public_ip = self.acquire_PublicIPAddress(network_5)
+        self.validate_PublicIPAddress(public_ip, network_5)
+        with self.assertRaises(Exception):
+            self.create_StaticNatRule_For_VM(vm_5, public_ip, network_5)
+        self.debug("Static NAT rule creation failed as the network does not "
+                   "support Static NAT service")
+
+        # Releasing acquired public IP
+        self.debug("Releasing the acquired public IP in the created Isolated "
+                   "network...")
+        public_ip.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(public_ip, network_5)
+        self.debug("Acquired public IP in the created Isolated network "
+                   "successfully released in CloudStack")
+        self.delete_VM(vm_5)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
+    def test_04_nuage_StaticNAT_vpc_networks(self):
+        """Test Nuage VSP VPC networks with different combinations of Static
+            NAT service providers
+        """
+
+        # 1. Create Nuage VSP VPC offering with different combinations of
+        #    Static NAT service providers
+        #    (NuageVsp, VirtualRouter, no StaticNat service), check if all the
+        #    VPC offerings are successfully created and enabled.
+        # 2. Create VPCs with different combinations of Static NAT service
+        #    providers (NuageVsp, VirtualRouter, no StaticNat service), check
+        #    if only the VPCs with Static NAT service provider as NuageVsp and
+        #    no StaticNat service are successfully created and enabled.
+        # 3. Create Nuage VSP VPC Network offering with different combinations
+        #    of Static NAT service providers
+        #    (NuageVsp, VirtualRouter, no StaticNat service), check if all the
+        #    network offerings are successfully created and enabled.
+        # 4. Recreate the above created Network offering
+        #    (Static NAT service provider as NuageVsp) with ispersistent flag
+        #    set to False, check if the network offering is successfully
+        #    created and enabled.
+        # 5. Recreate the above created Network offering
+        #    (Static NAT service provider as NuageVsp) with conserve mode On
+        #    (conserve_mode flag set to True), check if the network offering
+        #    creation failed as only networks with conserve mode Off can belong
+        #    to VPC.
+        # 6. Create a VPC network with Static NAT service provider as NuageVsp
+        #    in the VPC with StaticNat service, spawn a VM, and create a Static
+        #    NAT rule. Check if the tier is added to the VPC VR, and the VM is
+        #    deployed successfully in the tier, verify if the Static NAT
+        #    functionality for this network is successfully enabled in VSD.
+        # 7. Create a non persistent VPC network with Static NAT service
+        #    provider as NuageVsp in the VPC with StaticNat service, spawn a
+        #    VM, and create a Static NAT rule. Check if the tier creation
+        #    failed as Nuage VSP does not support non persistent VPC networks.
+        # 8. Create a VPC network with Static NAT service provider as
+        #    VpcVirtualRouter in the VPC with StaticNat service, spawn a VM,
+        #    and create a Static NAT rule. Check if the tier is added to the
+        #    VPC VR, and the VM is deployed successfully in the tier, verify if
+        #    the Static NAT functionality for this network is not enabled in
+        #    VSD as Nuage VSP does not support VirtualRouter as the Static NAT
+        #    service provider.
+        # 9. Create a VPC network with no Static NAT service in the VPC with
+        #    StaticNat service, spawn a VM, and create a Static NAT rule. Check
+        #    if the tier is added to the VPC VR, and the VM is deployed
+        #    successfully in the tier, verify if the Static NAT functionality
+        #    for this network is not enabled in both CloudStack and VSD as the
+        #    network does not support Static NAT service.
+        # 10. Create a VPC network with Static NAT service provider as NuageVsp
+        #     in the VPC without StaticNat service, check if the tier creation
+        #     failed as the VPC does not support Static NAT service.
+        # 11. Delete all the created objects (cleanup).
+
+        # Creating VPC offerings
+        self.debug("Creating Nuage VSP VPC offering with Static NAT service "
+                   "provider as NuageVsp...")
+        vpc_off_1 = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_off_1, state="Enabled")
+
+        self.debug("Creating Nuage VSP VPC offering with Static NAT service "
+                   "provider as VpcVirtualRouter...")
+        vpc_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        vpc_offering["serviceProviderList"]["StaticNat"] = "VpcVirtualRouter"
+        vpc_off_2 = self.create_VpcOffering(vpc_offering)
+        self.validate_VpcOffering(vpc_off_2, state="Enabled")
+
+        self.debug("Creating Nuage VSP VPC offering without Static NAT "
+                   "service...")
+        vpc_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        vpc_offering["supportedservices"] = \
+            'Dhcp,SourceNat,NetworkACL,Connectivity,UserData,Dns'
+        del vpc_offering["serviceProviderList"]["StaticNat"]
+        vpc_off_3 = self.create_VpcOffering(vpc_offering)
+        self.validate_VpcOffering(vpc_off_3, state="Enabled")
+
+        # Creating VPCs
+        self.debug("Creating a VPC with Static NAT service provider as "
+                   "NuageVsp...")
+        vpc_1 = self.create_Vpc(vpc_off_1, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc_1, state="Enabled")
+
+        self.debug("Creating a VPC with Static NAT service provider as "
+                   "VpcVirtualRouter...")
+        with self.assertRaises(Exception):
+            self.create_Vpc(vpc_off_2, cidr='10.1.0.0/16')
+        self.debug("Nuage VSP does not support provider VpcVirtualRouter for "
+                   "service Static NAT for VPCs")
+
+        self.debug("Creating a VPC without Static NAT service...")
+        vpc_2 = self.create_Vpc(vpc_off_3, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc_2, state="Enabled")
+
+        # Creating network offerings
+        self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
+                   "service provider as NuageVsp...")
+        net_off_1 = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(net_off_1, state="Enabled")
+
+        self.debug("Recreating above Network offering with ispersistent "
+                   "False...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        network_offering["ispersistent"] = "False"
+        net_off_2 = self.create_NetworkOffering(network_offering)
+        self.validate_NetworkOffering(net_off_2, state="Enabled")
+
+        self.debug("Recreating above Network offering with conserve mode "
+                   "On...")
+        with self.assertRaises(Exception):
+            self.create_NetworkOffering(
+                self.test_data["nuagevsp"]["vpc_network_offering"],
+                conserve_mode=True)
+        self.debug("Network offering creation failed as only networks with "
+                   "conserve mode Off can belong to VPC")
+
+        self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
+                   "service provider as VpcVirtualRouter...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        network_offering["serviceProviderList"]["StaticNat"] = \
+            "VpcVirtualRouter"
+        net_off_3 = self.create_NetworkOffering(network_offering)
+        self.validate_NetworkOffering(net_off_3, state="Enabled")
+
+        self.debug("Creating Nuage VSP VPC Network offering without Static "
+                   "NAT service...")
+        network_offering = copy.deepcopy(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        network_offering["supportedservices"] = \
+            'Dhcp,SourceNat,NetworkACL,Connectivity,UserData,Dns'
+        del network_offering["serviceProviderList"]["StaticNat"]
+        net_off_4 = self.create_NetworkOffering(network_offering)
+        self.validate_NetworkOffering(net_off_4, state="Enabled")
+
+        # Creating VPC networks in the VPCs, and deploying VMs
+        self.debug("Creating a VPC network with Static NAT service provider "
+                   "as NuageVsp in vpc_1...")
+        vpc_tier_1 = self.create_Network(
+            net_off_1, gateway='10.1.1.1', vpc=vpc_1)
+        self.validate_Network(vpc_tier_1, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier_1)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier_1, vpc_1)
+        self.verify_vsd_router(vpc_vr)
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm_1 = self.create_VM(vpc_tier_1)
+        self.check_VM_state(vpc_vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm_1)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule in the created VPC network with "
+                   "its deployed VM...")
+        public_ip = self.acquire_PublicIPAddress(vpc_tier_1, vpc=vpc_1)
+        self.validate_PublicIPAddress(public_ip, vpc_tier_1)
+        self.create_StaticNatRule_For_VM(vpc_vm_1, public_ip, vpc_tier_1)
+        self.validate_PublicIPAddress(
+            public_ip, vpc_tier_1, static_nat=True, vm=vpc_vm_1)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier_1, vpc_vm_1, public_ip.ipaddress, vpc=vpc_1)
+
+        # Deleting Static NAT Rule
+        self.debug("Deleting Static NAT Rule for the deployed VM...")
+        self.delete_StaticNatRule_For_VM(public_ip)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(
+                public_ip, vpc_tier_1, static_nat=True, vm=vpc_vm_1)
+        self.debug("Static NAT Rule for the deployed VM successfully deleted "
+                   "in CloudStack")
+
+        # VSD verification
+        with self.assertRaises(Exception):
+            self.verify_vsd_floating_ip(
+                vpc_tier_1, vpc_vm_1, public_ip.ipaddress, vpc=vpc_1)
+        self.debug("Floating IP for the deployed VM successfully deleted in "
+                   "VSD")
+
+        # Releasing acquired public IP
+        self.debug("Releasing the acquired public IP in the created VPC "
+                   "network...")
+        public_ip.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(public_ip, vpc_tier_1)
+        self.debug("Acquired public IP in the created VPC network "
+                   "successfully released in CloudStack")
+
+        self.debug("Creating a non persistent VPC network with Static NAT "
+                   "service in vpc_1...")
+        with self.assertRaises(Exception):
+            self.create_Network(net_off_2, gateway='10.1.2.1', vpc=vpc_1)
+        self.debug("Nuage VSP does not support non persistent VPC networks")
+
+        self.debug("Creating a VPC network with Static NAT service provider "
+                   "as VpcVirtualRouter in vpc_1...")
+        with self.assertRaises(Exception):
+            self.create_Network(net_off_3, gateway='10.1.2.1', vpc=vpc_1)
+        self.debug("Provider VpcVirtualRouter is not supported for Static NAT "
+                   "service in VPC vpc_1")
+
+        self.debug("Creating a VPC network with no Static NAT service in "
+                   "vpc_1...")
+        vpc_tier_2 = self.create_Network(
+            net_off_4, gateway='10.1.2.1', vpc=vpc_1)
+        self.validate_Network(vpc_tier_2, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier_2)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier_2, vpc_1)
+        self.verify_vsd_router(vpc_vr)
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm_2 = self.create_VM(vpc_tier_2)
+        self.check_VM_state(vpc_vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm_2)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule in the created VPC network with "
+                   "its deployed VM...")
+        public_ip = self.acquire_PublicIPAddress(vpc_tier_2, vpc=vpc_1)
+        self.validate_PublicIPAddress(public_ip, vpc_tier_2)
+        with self.assertRaises(Exception):
+            self.create_StaticNatRule_For_VM(vpc_vm_2, public_ip, vpc_tier_2)
+        self.debug("Static NAT rule creation failed as the network does not "
+                   "support Static NAT service")
+
+        # Releasing acquired public IP
+        self.debug("Releasing the acquired public IP in the created VPC "
+                   "network...")
+        public_ip.delete(self.api_client)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(public_ip, vpc_tier_2)
+        self.debug("Acquired public IP in the created VPC network "
+                   "successfully released in CloudStack")
+
+        self.debug("Creating a VPC network with Static NAT service provider "
+                   "as NuageVsp in vpc_2...")
+        with self.assertRaises(Exception):
+            self.create_Network(net_off_1, gateway='10.1.1.1', vpc=vpc_2)
+        self.debug("VPC Network creation failed as vpc_2 does not support "
+                   "Static NAT service")
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_05_nuage_StaticNAT_isolated_networks_traffic(self):
+        """Test Nuage VSP Static NAT functionality for Isolated network by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # 1. Create an Isolated network with Static NAT service provider as
+        #    NuageVsp, spawn a VM, and create a Static NAT rule. Check if the
+        #    network is successfully created, and the VM along with the VR is
+        #    deployed successfully in the network, verify if the Static NAT
+        #    functionality for this network is successfully enabled in VSD.
+        # 2. Perform and verify Static NAT traffic test (wget www.google.com)
+        #    to the Internet from the deployed VM.
+        # 3. Deploy another VM in the created Isolated network and create a
+        #    Static NAT rule. Check if the VM is deployed successfully in the
+        #    network, verify if the Static NAT functionality for this network
+        #    is successfully enabled in VSD.
+        # 4. Perform and verify Static NAT traffic test (wget www.google.com)
+        #    to the Internet from the deployed VM.
+        # 5. Delete all the created objects (cleanup).
+        # Note: Above mentioned Static NAT traffic test is done by SSHing into
+        #       the VM using a Static NAT rule, and performing wget traffic
+        #       test (wget www.google.com) to the Internet from the VM.
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Static "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating Isolated network, deploying VMs, and verifying Static NAT
+        # traffic
+        self.debug("Creating an Isolated network with Static NAT service...")
+        network = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_1 = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip_1 = self.acquire_PublicIPAddress(network)
+        self.validate_PublicIPAddress(public_ip_1, network)
+        self.create_StaticNatRule_For_VM(vm_1, public_ip_1, network)
+        self.validate_PublicIPAddress(
+            public_ip_1, network, static_nat=True, vm=vm_1)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm_1, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm_1, network, public_ip_1)
+
+        self.debug("Deploying another VM in the created Isolated network...")
+        vm_2 = self.create_VM(network)
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vm_2)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip_2 = self.acquire_PublicIPAddress(network)
+        self.validate_PublicIPAddress(public_ip_2, network)
+        self.create_StaticNatRule_For_VM(vm_2, public_ip_2, network)
+        self.validate_PublicIPAddress(
+            public_ip_2, network, static_nat=True, vm=vm_2)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm_2, public_ip_2.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_2)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm_2, network, public_ip_2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_06_nuage_StaticNAT_vpc_network_traffic(self):
+        """Test Nuage VSP Static NAT functionality for VPC network by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # 1. Create a VPC network with Static NAT service provider as NuageVsp
+        #    in the VPC with StaticNat service, spawn a VM, and create a Static
+        #    NAT rule. Check if the tier is added to the VPC VR, and the VM is
+        #    deployed successfully in the tier, verify if the Static NAT
+        #    functionality for this network is successfully enabled in VSD.
+        # 2. Perform and verify Static NAT traffic test (wget www.google.com)
+        #    to the Internet from the deployed VM.
+        # 3. Deploy another VM in the created VPC network and create a Static
+        #    NAT rule. Check if the VM is deployed successfully in the network,
+        #    verify if the Static NAT functionality for this network is
+        #    successfully enabled in VSD.
+        # 4. Perform and verify Static NAT traffic test (wget www.google.com)
+        #    to the Internet from the deployed VM.
+        # 5. Delete all the created objects (cleanup).
+        # Note: Above mentioned Static NAT traffic test is done by SSHing into
+        #       the VM using a Static NAT rule, and performing wget traffic
+        #       test (wget www.google.com) to the Internet from the VM.
+
+        # Creating VPC offering
+        self.debug("Creating Nuage VSP VPC offering with Static NAT service "
+                   "provider as NuageVsp...")
+        vpc_off = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+
+        # Creating VPC
+        self.debug("Creating a VPC with Static NAT service provider as "
+                   "NuageVsp...")
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc, state="Enabled")
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
+                   "service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating VPC network in the VPC, deploying VMs, and verifying Static
+        # NAT traffic
+        self.debug("Creating a VPC network with Static NAT service...")
+        vpc_tier = self.create_Network(net_off, gateway='10.1.1.1', vpc=vpc)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+
+        # Adding Egress Network ACL rules
+        self.debug("Adding Egress Network ACL rules in the created VPC "
+                   "network to allow Static NAT (DNS & HTTP) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule = self.create_NetworkAclRule(
+            self.test_data["dns_rule"], traffic_type="Egress",
+            network=vpc_tier)
+        http_rule = self.create_NetworkAclRule(
+            self.test_data["http_rule"], traffic_type="Egress",
+            network=vpc_tier)
+
+        # VSD verification for added Egress Network ACL rules
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm_1 = self.create_VM(vpc_tier)
+        self.check_VM_state(vpc_vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm_1)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created VPC network...")
+        public_ip_1 = self.acquire_PublicIPAddress(vpc_tier, vpc=vpc)
+        self.validate_PublicIPAddress(public_ip_1, vpc_tier)
+        self.create_StaticNatRule_For_VM(vpc_vm_1, public_ip_1, vpc_tier)
+        self.validate_PublicIPAddress(
+            public_ip_1, vpc_tier, static_nat=True, vm=vpc_vm_1)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm_1, public_ip_1.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_1, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm_1, vpc_tier, public_ip_1, vpc=vpc)
+
+        self.debug("Deploying another VM in the created VPC network...")
+        vpc_vm_2 = self.create_VM(vpc_tier)
+        self.check_VM_state(vpc_vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm_2)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created VPC network...")
+        public_ip_2 = self.acquire_PublicIPAddress(vpc_tier, vpc=vpc)
+        self.validate_PublicIPAddress(public_ip_2, vpc_tier)
+        self.create_StaticNatRule_For_VM(vpc_vm_2, public_ip_2, vpc_tier)
+        self.validate_PublicIPAddress(
+            public_ip_2, vpc_tier, static_nat=True, vm=vpc_vm_2)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm_2, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm_2, vpc_tier, public_ip_2, vpc=vpc)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_07_nuage_StaticNAT_acl_rules_traffic(self):
+        """Test Nuage VSP Static NAT functionality with different Egress
+        Firewall/Network ACL rules by performing (wget) traffic tests to the
+        Internet
+        """
+
+        # Repeat the tests in the testcases
+        # "test_05_nuage_StaticNAT_isolated_networks_traffic" and
+        # "test_06_nuage_StaticNAT_vpc_network_traffic" with different Egress
+        # Firewall/Network ACL rules:
+        # 1. Allow and block Egress Firewall rules
+        # 2. Allow and block Egress Network ACL rules
+        # Verify the above Egress Firewall/Network ACL rules by performing and
+        # verifying Static NAT traffic test (wget www.google.com) to the
+        # Internet from the VM.
+        # Delete all the created objects (cleanup).
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Static "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating Isolated network, deploying VMs, and verifying Static NAT
+        # traffic with Egress Firewall rules
+        self.debug("Creating an Isolated network with Static NAT service...")
+        network = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip_1 = self.acquire_PublicIPAddress(network)
+        self.validate_PublicIPAddress(public_ip_1, network)
+        self.create_StaticNatRule_For_VM(vm, public_ip_1, network)
+        self.validate_PublicIPAddress(
+            public_ip_1, network, static_nat=True, vm=vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm, network, public_ip_1)
+
+        # Adding Egress Firewall rule
+        self.debug("Adding an Egress Firewall rule in the created Isolated "
+                   "network to block/drop Static NAT (DNS) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule_1 = self.create_EgressFirewallRule(
+            network, self.test_data["dns_rule"])
+
+        # VSD verification for added Egress Firewall rule
+        self.verify_vsd_firewall_rule(dns_rule_1, traffic_type="Egress")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        with self.assertRaises(Exception):
+            self.verify_StaticNAT_Internet_traffic(
+                vm, network, public_ip_1, negative_test=True)
+        self.debug("Static NAT (DNS) traffic to the Internet from the "
+                   "deployed VM is blocked/dropped by the added Egress "
+                   "Firewall rule")
+
+        # Removing Egress Firewall rule
+        self.debug("Removing the added Egress Firewall rule in the created "
+                   "Isolated network to allow Static NAT (DNS) traffic to "
+                   "the Internet from the VMs in the network "
+                   "(Default Egress Firewall rule)...")
+        dns_rule_1.delete(self.api_client)
+
+        # VSD verification for removed Egress Firewall rule
+        with self.assertRaises(Exception):
+            self.verify_vsd_firewall_rule(dns_rule_1, traffic_type="Egress")
+        self.debug("Egress Firewall rule successfully deleted in VSD")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm, network, public_ip_1)
+
+        # Creating VPC offering
+        self.debug("Creating Nuage VSP VPC offering with Static NAT service "
+                   "provider as NuageVsp...")
+        vpc_off = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+
+        # Creating VPC
+        self.debug("Creating a VPC with Static NAT service provider as "
+                   "NuageVsp...")
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc, state="Enabled")
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
+                   "service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating VPC network in the VPC, deploying VMs, and verifying Static
+        # NAT traffic with Network ACl rules
+        self.debug("Creating a VPC network with Static NAT service...")
+        vpc_tier = self.create_Network(net_off, gateway='10.1.1.1', vpc=vpc)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+
+        # Adding Egress Network ACL rules
+        self.debug("Adding Egress Network ACL rules in the created VPC "
+                   "network to allow Static NAT (DNS & HTTP) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule_2 = self.create_NetworkAclRule(
+            self.test_data["dns_rule"], traffic_type="Egress",
+            network=vpc_tier)
+        http_rule = self.create_NetworkAclRule(
+            self.test_data["http_rule"], traffic_type="Egress",
+            network=vpc_tier)
+
+        # VSD verification for added Egress Network ACL rules
+        self.verify_vsd_firewall_rule(dns_rule_2, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm = self.create_VM(vpc_tier)
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created VPC network...")
+        public_ip_2 = self.acquire_PublicIPAddress(vpc_tier, vpc=vpc)
+        self.validate_PublicIPAddress(public_ip_2, vpc_tier)
+        self.create_StaticNatRule_For_VM(vpc_vm, public_ip_2, vpc_tier)
+        self.validate_PublicIPAddress(
+            public_ip_2, vpc_tier, static_nat=True, vm=vpc_vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm, vpc_tier, public_ip_2, vpc=vpc)
+
+        # Removing Egress Network ACL rule
+        self.debug("Removing the added Egress Network ACL rule in the created "
+                   "VPC network to block Static NAT (DNS) traffic to the "
+                   "Internet from the VMs in the network "
+                   "(Default Egress Network ACL rule)...")
+        dns_rule_2.delete(self.api_client)
+
+        # VSD verification for removed Egress Network ACL rule
+        with self.assertRaises(Exception):
+            self.verify_vsd_firewall_rule(dns_rule_2, traffic_type="Egress")
+        self.debug("Egress Network ACL rule successfully deleted in VSD")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        with self.assertRaises(Exception):
+            self.verify_StaticNAT_Internet_traffic(
+                vpc_vm, vpc_tier, public_ip_2, vpc=vpc, negative_test=True)
+        self.debug("Static NAT (DNS) traffic to the Internet from the "
+                   "deployed VM is blocked by the Default Egress Network ACL "
+                   "rule")
+
+        # Re-adding Egress Network ACL rule
+        self.debug("Re-adding the Egress Network ACL rule in the created VPC "
+                   "network to allow Static NAT (DNS) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule_2 = self.create_NetworkAclRule(
+            self.test_data["dns_rule"], traffic_type="Egress",
+            network=vpc_tier)
+
+        # VSD verification for re-added Egress Network ACL rule
+        self.verify_vsd_firewall_rule(dns_rule_2, traffic_type="Egress")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm, vpc_tier, public_ip_2, vpc=vpc)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_08_nuage_StaticNAT_vm_nic_operations_traffic(self):
+        """Test Nuage VSP Static NAT functionality with VM NIC operations by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # Repeat the tests in the testcase
+        # "test_05_nuage_StaticNAT_isolated_networks_traffic" with VM NIC
+        # operations:
+        # 1. Updating default VM NIC
+        # 2. Removing non-default VM NIC
+        # 3. Adding and updating default VM NIC
+        # Verify the above VM NIC operations by performing and verifying Static
+        # NAT traffic test (wget www.google.com) to the Internet from the VM.
+        # Delete all the created objects (cleanup).
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Static "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating Isolated networks, deploying a multi-nic VM, and verifying
+        # Static NAT traffic with VM NIC operations
+        self.debug("Creating an Isolated network with Static NAT service...")
+        network_1 = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network_1, state="Allocated")
+
+        self.debug("Creating another Isolated network with Static NAT "
+                   "service...")
+        network_2 = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network_2, state="Allocated")
+
+        self.debug("Deploying a multi-nic VM in the created Isolated "
+                   "networks...")
+        vm = self.create_VM([network_1, network_2])
+        self.validate_Network(network_1, state="Implemented")
+        vr_1 = self.get_Router(network_1)
+        self.check_Router_state(vr_1, state="Running")
+        self.validate_Network(network_2, state="Implemented")
+        vr_2 = self.get_Router(network_2)
+        self.check_Router_state(vr_2, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network_1)
+        self.verify_vsd_router(vr_1)
+        self.verify_vsd_network(self.domain.id, network_2)
+        self.verify_vsd_router(vr_2)
+        self.verify_vsd_vm(vm)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip_1 = self.acquire_PublicIPAddress(network_1)
+        self.validate_PublicIPAddress(public_ip_1, network_1)
+        self.create_StaticNatRule_For_VM(vm, public_ip_1, network_1)
+        self.validate_PublicIPAddress(
+            public_ip_1, network_1, static_nat=True, vm=vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network_1, vm, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network_1, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm, network_1, public_ip_1)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip_2 = self.acquire_PublicIPAddress(network_2)
+        self.validate_PublicIPAddress(public_ip_2, network_2)
+        self.create_StaticNatRule_For_VM(vm, public_ip_2, network_2)
+        self.validate_PublicIPAddress(
+            public_ip_2, network_2, static_nat=True, vm=vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network_2, vm, public_ip_2.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(
+            network_2, public_ip_2, non_default_nic=True)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vm, network_2, public_ip_2, non_default_nic=True)
+
+        # Updating default VM NIC
+        self.debug("Updating the default nic of the multi-nic VM...")
+        self.nic_operation_VM(vm, network_2, operation="update")
+
+        # Rebooting (stop - start) VM
+        self.debug("Rebooting the multi-nic VM after updating its default nic "
+                   "for changes to apply to the VM...")
+        vm.stop(self.api_client)
+        vm.start(self.api_client)
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        updated_vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        self.verify_vsd_vm(updated_vm_info)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network_1, vm, public_ip_1.ipaddress)
+        self.verify_vsd_floating_ip(network_2, vm, public_ip_2.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(
+            network_1, public_ip_1, non_default_nic=True)
+        self.verify_StaticNAT_traffic(network_2, public_ip_2)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vm, network_1, public_ip_1, non_default_nic=True)
+        self.verify_StaticNAT_Internet_traffic(vm, network_2, public_ip_2)
+
+        # Removing non-default VM NIC
+        self.debug("Removing the non-default nic of the multi-nic VM...")
+        with self.assertRaises(Exception):
+            self.nic_operation_VM(vm, network_1, operation="remove")
+        self.debug("Can not remove this NIC as Static NAT rule is enabled on "
+                   "it")
+
+        # Deleting Static NAT Rule
+        self.debug("Deleting Static NAT Rule for the deployed VM...")
+        self.delete_StaticNatRule_For_VM(public_ip_1)
+        with self.assertRaises(Exception):
+            self.validate_PublicIPAddress(
+                public_ip_1, network_1, static_nat=True, vm=vm)
+        self.debug("Static NAT Rule for the deployed VM successfully deleted "
+                   "in CloudStack")
+
+        # VSD verification
+        with self.assertRaises(Exception):
+            self.verify_vsd_floating_ip(network_1, vm, public_ip_1.ipaddress)
+        self.debug("Floating IP for the deployed VM successfully deleted in "
+                   "VSD")
+
+        self.nic_operation_VM(vm, network_1, operation="remove")
+
+        # Rebooting (stop - start) VM
+        self.debug("Rebooting the multi-nic VM after removing its non-default "
+                   "nic for changes to apply to the VM...")
+        vm.stop(self.api_client)
+        vm.start(self.api_client)
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        updated_vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        self.verify_vsd_vm(updated_vm_info)
+
+        # VSD verification for Static NAT functionality
+        with self.assertRaises(Exception):
+            self.verify_vsd_floating_ip(network_1, vm, public_ip_1.ipaddress)
+        self.debug("Static NAT rule not enabled in this VM NIC")
+        self.verify_vsd_floating_ip(network_2, vm, public_ip_2.ipaddress)
+
+        # Verifying Static NAT traffic
+        with self.assertRaises(Exception):
+            self.verify_StaticNAT_traffic(network_1, public_ip_1)
+        self.debug("Static NAT rule not enabled in this VM NIC")
+        self.verify_StaticNAT_traffic(network_2, public_ip_2)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        with self.assertRaises(Exception):
+            self.verify_StaticNAT_Internet_traffic(vm, network_1, public_ip_1)
+        self.debug("Static NAT rule not enabled in this VM NIC")
+        self.verify_StaticNAT_Internet_traffic(vm, network_2, public_ip_2)
+
+        # Adding and updating default VM NIC
+        self.debug("Re-adding the non-default nic and updating the default "
+                   "nic of the multi-nic VM...")
+        self.nic_operation_VM(vm, network_1, operation="add")
+        self.nic_operation_VM(vm, network_1, operation="update")
+
+        # Rebooting (stop - start) VM
+        self.debug("Rebooting the multi-nic VM after re-adding its "
+                   "non-default nic for changes to apply to the VM...")
+        vm.stop(self.api_client)
+        vm.start(self.api_client)
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        updated_vm_info = VirtualMachine.list(self.api_client, id=vm.id)[0]
+        self.verify_vsd_vm(updated_vm_info)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        self.create_StaticNatRule_For_VM(vm, public_ip_1, network_1)
+        self.validate_PublicIPAddress(
+            public_ip_1, network_1, static_nat=True, vm=vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network_1, vm, public_ip_1.ipaddress)
+        self.verify_vsd_floating_ip(network_2, vm, public_ip_2.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network_1, public_ip_1)
+        self.verify_StaticNAT_traffic(
+            network_2, public_ip_2, non_default_nic=True)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm, network_1, public_ip_1)
+        self.verify_StaticNAT_Internet_traffic(
+            vm, network_2, public_ip_2, non_default_nic=True)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_09_nuage_StaticNAT_vm_migration_traffic(self):
+        """Test Nuage VSP Static NAT functionality with VM migration by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # Repeat the tests in the testcase
+        # "test_05_nuage_StaticNAT_isolated_networks_traffic" with migration of
+        # one of the VMs to another host (if available).
+        # Verify the above VM migration by performing and verifying Static NAT
+        # traffic test (wget www.google.com) to the Internet from the VM.
+        # Delete all the created objects (cleanup).
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Static "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating an Isolated network, deploying VMs, and verifying Static
+        # NAT traffic with VM migrations
+        self.debug("Creating an Isolated network with Static NAT service...")
+        network = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm_1 = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm_1, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm_1)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip_1 = self.acquire_PublicIPAddress(network)
+        self.validate_PublicIPAddress(public_ip_1, network)
+        self.create_StaticNatRule_For_VM(vm_1, public_ip_1, network)
+        self.validate_PublicIPAddress(
+            public_ip_1, network, static_nat=True, vm=vm_1)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm_1, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm_1, network, public_ip_1)
+
+        self.debug("Deploying another VM in the created Isolated network...")
+        vm_2 = self.create_VM(network)
+        self.check_VM_state(vm_2, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vm_2)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip_2 = self.acquire_PublicIPAddress(network)
+        self.validate_PublicIPAddress(public_ip_2, network)
+        self.create_StaticNatRule_For_VM(vm_2, public_ip_2, network)
+        self.validate_PublicIPAddress(
+            public_ip_2, network, static_nat=True, vm=vm_2)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm_2, public_ip_2.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_2)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm_2, network, public_ip_2)
+
+        # VM migration
+        # This VM migration has no effect on the Static NAT functionality
+        self.debug("Migrating one of the VMs in the created Isolated network "
+                   "to another host, if available...")
+        self.migrate_VM(vm_1)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm_1, public_ip_1.ipaddress)
+        self.verify_vsd_floating_ip(network, vm_2, public_ip_2.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+        self.verify_StaticNAT_traffic(network, public_ip_2)
+
+        # VSD verification for Static NAT functionality
+        self.verify_StaticNAT_Internet_traffic(vm_1, network, public_ip_1)
+        self.verify_StaticNAT_Internet_traffic(vm_2, network, public_ip_2)
+
+    @attr(tags=["advanced", "nuagevsp"], required_hardware="true")
+    def test_10_nuage_StaticNAT_network_restarts_traffic(self):
+        """Test Nuage VSP Static NAT functionality with network restarts by
+        performing (wget) traffic tests to the Internet
+        """
+
+        # Repeat the tests in the testcases
+        # "test_05_nuage_StaticNAT_isolated_networks_traffic" and
+        # "test_06_nuage_StaticNAT_vpc_network_traffic" with network restarts:
+        # 1. Restart Isolated Network (cleanup = false)
+        # 2. Restart Isolated Network (cleanup = true)
+        # 3. Reboot VM in the Isolated Network
+        # 4. Restart VPC Network (cleanup = false)
+        # 5. Restart VPC Network (cleanup = true)
+        # 6. Reboot VM in the VPC Network
+        # 7. Restart VPC (cleanup = false)
+        # 8. Restart VPC (cleanup = true)
+        # Verify the above network restarts by performing and verifying Static
+        # NAT traffic test (wget www.google.com) to the Internet from the VM.
+        # Delete all the created objects (cleanup).
+
+        # Creating network offering
+        self.debug("Creating Nuage VSP Isolated Network offering with Static "
+                   "NAT service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["isolated_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating an Isolated network, deploying a VM, and verifying Static
+        # NAT traffic with Isolated network restarts
+        self.debug("Creating an Isolated network with Static NAT service...")
+        network = self.create_Network(net_off, gateway='10.1.1.1')
+        self.validate_Network(network, state="Allocated")
+
+        self.debug("Deploying a VM in the created Isolated network...")
+        vm = self.create_VM(network)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created Isolated network...")
+        public_ip_1 = self.acquire_PublicIPAddress(network)
+        self.validate_PublicIPAddress(public_ip_1, network)
+        self.create_StaticNatRule_For_VM(vm, public_ip_1, network)
+        self.validate_PublicIPAddress(
+            public_ip_1, network, static_nat=True, vm=vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm, network, public_ip_1)
+
+        # Restarting Isolated network (cleanup = false)
+        # VR gets destroyed and deployed again in the Isolated network
+        # This restart has no effect on the Static NAT functionality
+        self.debug("Restarting the created Isolated network without "
+                   "cleanup...")
+        Network.restart(network, self.api_client, cleanup=False)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm, network, public_ip_1)
+
+        # Restarting Isolated network (cleanup = true)
+        # VR gets destroyed and deployed again in the Isolated network
+        # This restart has no effect on the Static NAT functionality
+        self.debug("Restarting the created Isolated network with cleanup...")
+        Network.restart(network, self.api_client, cleanup=True)
+        self.validate_Network(network, state="Implemented")
+        vr = self.get_Router(network)
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm, network, public_ip_1)
+
+        # Rebooting (stop - start) VM
+        # This reboot has no effect on the Static NAT functionality
+        self.debug("Rebooting the deployed VM in the created Isolated "
+                   "network...")
+        vm.stop(self.api_client)
+        vm.start(self.api_client)
+        self.validate_Network(network, state="Implemented")
+        self.check_Router_state(vr, state="Running")
+        self.check_VM_state(vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, network)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(network, vm, public_ip_1.ipaddress)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(network, public_ip_1)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(vm, network, public_ip_1)
+
+        # Creating VPC offering
+        self.debug("Creating Nuage VSP VPC offering with Static NAT service "
+                   "provider as NuageVsp...")
+        vpc_off = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
+        self.validate_VpcOffering(vpc_off, state="Enabled")
+
+        # Creating VPC
+        self.debug("Creating a VPC with Static NAT service provider as "
+                   "NuageVsp...")
+        vpc = self.create_Vpc(vpc_off, cidr='10.1.0.0/16')
+        self.validate_Vpc(vpc, state="Enabled")
+
+        # Creating VPC network offering
+        self.debug("Creating Nuage VSP VPC Network offering with Static NAT "
+                   "service provider as NuageVsp...")
+        net_off = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
+        self.validate_NetworkOffering(net_off, state="Enabled")
+
+        # Creating a VPC network in the VPC, deploying a VM, and verifying
+        # Static NAT traffic with VPC network restarts
+        self.debug("Creating a VPC network with Static NAT service...")
+        vpc_tier = self.create_Network(net_off, gateway='10.1.1.1', vpc=vpc)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+
+        # Adding Egress Network ACL rules
+        self.debug("Adding Egress Network ACL rules in the created VPC "
+                   "network to allow Static NAT (DNS & HTTP) traffic to the "
+                   "Internet from the VMs in the network...")
+        dns_rule = self.create_NetworkAclRule(
+            self.test_data["dns_rule"], traffic_type="Egress",
+            network=vpc_tier)
+        http_rule = self.create_NetworkAclRule(
+            self.test_data["http_rule"], traffic_type="Egress",
+            network=vpc_tier)
+
+        # VSD verification for added Egress Network ACL rules
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        self.debug("Deploying a VM in the created VPC network...")
+        vpc_vm = self.create_VM(vpc_tier)
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_vm(vpc_vm)
+
+        # Creating Static NAT rule
+        self.debug("Creating Static NAT rule for the deployed VM in the "
+                   "created VPC network...")
+        public_ip_2 = self.acquire_PublicIPAddress(vpc_tier, vpc=vpc)
+        self.validate_PublicIPAddress(public_ip_2, vpc_tier)
+        self.create_StaticNatRule_For_VM(vpc_vm, public_ip_2, vpc_tier)
+        self.validate_PublicIPAddress(
+            public_ip_2, vpc_tier, static_nat=True, vm=vpc_vm)
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm, vpc_tier, public_ip_2, vpc=vpc)
+
+        # Restarting VPC network (cleanup = false)
+        # This restart has no effect on the Static NAT functionality
+        self.debug("Restarting the created VPC network without cleanup...")
+        Network.restart(vpc_tier, self.api_client, cleanup=False)
+        self.validate_Network(vpc_tier, state="Implemented")
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+        self.verify_vsd_vm(vpc_vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm, vpc_tier, public_ip_2, vpc=vpc)
+
+        # Restarting VPC network (cleanup = true)
+        # This restart has no effect on the Static NAT functionality
+        self.debug("Restarting the created VPC network with cleanup...")
+        Network.restart(vpc_tier, self.api_client, cleanup=True)
+        self.validate_Network(vpc_tier, state="Implemented")
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+        self.verify_vsd_vm(vpc_vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm, vpc_tier, public_ip_2, vpc=vpc)
+
+        # Rebooting (stop - start) VM
+        # This reboot has no effect on the Static NAT functionality
+        self.debug("Rebooting the deployed VM in the created VPC network...")
+        vpc_vm.stop(self.api_client)
+        vpc_vm.start(self.api_client)
+        self.validate_Network(vpc_tier, state="Implemented")
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vr)
+        self.verify_vsd_vm(vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm, vpc_tier, public_ip_2, vpc=vpc)
+
+        # Restarting VPC (cleanup = false)
+        # VPC VR gets destroyed and deployed again in the VPC
+        # This restart has no effect on the Static NAT functionality
+        self.debug("Restarting the VPC without cleanup...")
+        self.restart_Vpc(vpc, cleanup=False)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+        self.verify_vsd_vm(vpc_vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm, vpc_tier, public_ip_2, vpc=vpc)
+
+        # Restarting VPC (cleanup = true)
+        # VPC VR gets destroyed and deployed again in the VPC
+        # This restart has no effect on the Static NAT functionality
+        self.debug("Restarting the VPC with cleanup...")
+        self.restart_Vpc(vpc, cleanup=True)
+        self.validate_Network(vpc_tier, state="Implemented")
+        vpc_vr = self.get_Router(vpc_tier)
+        self.check_Router_state(vpc_vr, state="Running")
+        self.check_VM_state(vpc_vm, state="Running")
+
+        # VSD verification
+        self.verify_vsd_network(self.domain.id, vpc_tier, vpc)
+        self.verify_vsd_router(vpc_vr)
+        self.verify_vsd_vm(vpc_vm)
+        self.verify_vsd_firewall_rule(dns_rule, traffic_type="Egress")
+        self.verify_vsd_firewall_rule(http_rule, traffic_type="Egress")
+
+        # VSD verification for Static NAT functionality
+        self.verify_vsd_floating_ip(
+            vpc_tier, vpc_vm, public_ip_2.ipaddress, vpc=vpc)
+
+        # Verifying Static NAT traffic
+        self.verify_StaticNAT_traffic(vpc_tier, public_ip_2, vpc=vpc)
+
+        # Verifying Static NAT traffic (wget www.google.com) to the Internet
+        # from the deployed VM
+        self.verify_StaticNAT_Internet_traffic(
+            vpc_vm, vpc_tier, public_ip_2, vpc=vpc)
diff --git a/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py b/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py
index 7dec5a6..0885177 100644
--- a/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py
+++ b/test/integration/plugins/nuagevsp/test_nuage_vpc_network.py
@@ -15,11 +15,12 @@
 # specific language governing permissions and limitations
 # under the License.
 
-""" Component tests for basic VPC Network functionality with Nuage VSP SDN plugin
+""" Component tests for basic VPC Network functionality with
+Nuage VSP SDN plugin
 """
 # Import Local Modules
 from nuageTestCase import nuageTestCase
-from marvin.lib.base import Account, Zone
+from marvin.lib.base import Account
 # Import System Modules
 from nose.plugins.attrib import attr
 
@@ -30,7 +31,7 @@
 
     @classmethod
     def setUpClass(cls, zone=None):
-        super(TestNuageVpcNetwork, cls).setUpClass(zone=zone)
+        super(TestNuageVpcNetwork, cls).setUpClass()
         return
 
     def setUp(self):
@@ -48,20 +49,26 @@
         """ Test basic VPC Network functionality with Nuage VSP SDN plugin
         """
 
-        # 1. Create Nuage VSP VPC offering, check if it is successfully created and enabled.
-        # 2. Create a VPC with Nuage VSP VPC offering, check if it is successfully created and enabled.
-        # 3. Create Nuage VSP VPC Network offering, check if it is successfully created and enabled.
+        # 1. Create Nuage VSP VPC offering, check if it is successfully
+        #    created and enabled.
+        # 2. Create a VPC with Nuage VSP VPC offering, check if it is
+        #    successfully created and enabled.
+        # 3. Create Nuage VSP VPC Network offering, check if it is successfully
+        #    created and enabled.
         # 4. Create an ACL list in the created VPC, and add an ACL item to it.
-        # 5. Create a VPC Network with Nuage VSP VPC Network offering and the created ACL list, check if it is
-        #    successfully created, is in the "Implemented" state, and is added to the VPC VR.
-        # 6. Deploy a VM in the created VPC network, check if the VM is successfully deployed and is in the "Running"
-        #    state.
-        # 7. Verify that the created ACL item is successfully implemented in Nuage VSP.
+        # 5. Create a VPC Network with Nuage VSP VPC Network offering and the
+        #    created ACL list, check if it is successfully created, is in the
+        #    "Implemented" state, and is added to the VPC VR.
+        # 6. Deploy a VM in the created VPC network, check if the VM is
+        #    successfully deployed and is in the "Running" state.
+        # 7. Verify that the created ACL item is successfully implemented in
+        #    Nuage VSP.
         # 8. Delete all the created objects (cleanup).
 
         # Creating a VPC offering
         self.debug("Creating Nuage VSP VPC offering...")
-        vpc_offering = self.create_VpcOffering(self.test_data["nuagevsp"]["vpc_offering"])
+        vpc_offering = self.create_VpcOffering(
+            self.test_data["nuagevsp"]["vpc_offering"])
         self.validate_VpcOffering(vpc_offering, state="Enabled")
 
         # Creating a VPC
@@ -71,18 +78,23 @@
 
         # Creating a network offering
         self.debug("Creating Nuage VSP VPC Network offering...")
-        network_offering = self.create_NetworkOffering(self.test_data["nuagevsp"]["vpc_network_offering"])
+        network_offering = self.create_NetworkOffering(
+            self.test_data["nuagevsp"]["vpc_network_offering"])
         self.validate_NetworkOffering(network_offering, state="Enabled")
 
         # Creating an ACL list
-        acl_list = self.create_NetworkAclList(name="acl", description="acl", vpc=vpc)
+        acl_list = self.create_NetworkAclList(
+            name="acl", description="acl", vpc=vpc)
 
         # Creating an ACL item
-        acl_item = self.create_NetworkAclRule(self.test_data["ingress_rule"], acl_list=acl_list)
+        acl_item = self.create_NetworkAclRule(
+            self.test_data["ingress_rule"], acl_list=acl_list)
 
         # Creating a VPC network in the VPC
-        self.debug("Creating a VPC network with Nuage VSP VPC Network offering...")
-        vpc_network = self.create_Network(network_offering, vpc=vpc, acl_list=acl_list)
+        self.debug("Creating a VPC network with Nuage VSP VPC Network "
+                   "offering...")
+        vpc_network = self.create_Network(
+            network_offering, vpc=vpc, acl_list=acl_list)
         self.validate_Network(vpc_network, state="Implemented")
         vr = self.get_Router(vpc_network)
         self.check_Router_state(vr, state="Running")
@@ -99,18 +111,24 @@
         # VSD verification for ACL item
         self.verify_vsd_firewall_rule(acl_item)
 
-    @attr(tags=["advanced", "nuagevsp", "multizone"], required_hardware="false")
+    @attr(
+        tags=["advanced", "nuagevsp", "multizone"], required_hardware="false")
     def test_nuage_vpc_network_multizone(self):
-        """ Test basic VPC Network functionality with Nuage VSP SDN plugin on multiple zones
+        """ Test basic VPC Network functionality with Nuage VSP SDN plugin on
+        multiple zones
         """
 
-        # Repeat the tests in the above testcase "test_nuage_vpc_network" on multiple zones
+        # Repeat the tests in the above testcase "test_nuage_vpc_network" on
+        # multiple zones
 
-        self.debug("Testing basic VPC Network functionality with Nuage VSP SDN plugin on multiple zones...")
-        zones = Zone.list(self.api_client)
-        if len(zones) == 1:
+        self.debug("Testing basic VPC Network functionality with Nuage VSP "
+                   "SDN plugin on multiple zones...")
+        if len(self.zones) == 1:
             self.skipTest("There is only one Zone configured: skipping test")
-        for zone in zones:
+        for zone in self.zones:
             self.debug("Zone - %s" % zone.name)
-            self.setUpClass(zone=zone)
+            # Get Zone details
+            self.getZoneDetails(zone=zone)
+            # Configure VSD sessions
+            self.configureVSDSessions()
             self.test_nuage_vpc_network()
diff --git a/test/integration/plugins/nuagevsp/test_nuage_vsp.py b/test/integration/plugins/nuagevsp/test_nuage_vsp.py
index d71d0c1..9f2d1f2 100644
--- a/test/integration/plugins/nuagevsp/test_nuage_vsp.py
+++ b/test/integration/plugins/nuagevsp/test_nuage_vsp.py
@@ -45,148 +45,190 @@
         self.cleanup = [self.account]
         return
 
-    # validate_NuageVspDevice - Validates the addition of Nuage VSP device in the Nuage VSP Physical Network
+    # validate_NuageVspDevice - Validates the addition of Nuage VSP device in
+    # the Nuage VSP Physical Network
     def validate_NuageVspDevice(self):
-        """Validates the addition of Nuage VSP device in the Nuage VSP Physical Network"""
-        self.debug("Validating the addition of Nuage VSP device in the Nuage VSP Physical Network - %s" %
-                   self.vsp_physical_network.id)
-        nuage_vsp_device = Nuage.list(self.api_client,
-                                      physicalnetworkid=self.vsp_physical_network.id
-                                      )
+        """Validates the addition of Nuage VSP device in the
+        Nuage VSP Physical Network"""
+        self.debug("Validating the addition of Nuage VSP device in the Nuage "
+                   "VSP Physical Network - %s" % self.vsp_physical_network.id)
+        nuage_vsp_device = Nuage.list(
+            self.api_client,
+            physicalnetworkid=self.vsp_physical_network.id
+        )
         self.assertEqual(isinstance(nuage_vsp_device, list), True,
                          "List Nuage VSP device should return a valid list"
                          )
-        self.debug("Successfully validated the addition of Nuage VSP device in the Nuage VSP Physical Network - %s" %
+        self.debug("Successfully validated the addition of Nuage VSP device "
+                   "in the Nuage VSP Physical Network - %s" %
                    self.vsp_physical_network.id)
 
-    # delete_NuageVspDevice - Deletes the Nuage VSP device in the Nuage VSP Physical Network
+    # delete_NuageVspDevice - Deletes the Nuage VSP device in the Nuage VSP
+    # Physical Network
     def delete_NuageVspDevice(self):
         """Deletes the Nuage VSP device in the Nuage VSP Physical Network"""
-        self.debug("Deleting the Nuage VSP device in the Nuage VSP Physical Network - %s" %
-                   self.vsp_physical_network.id)
-        nuage_vsp_device = Nuage.list(self.api_client,
-                                      physicalnetworkid=self.vsp_physical_network.id
-                                      )[0]
+        self.debug("Deleting the Nuage VSP device in the Nuage VSP Physical "
+                   "Network - %s" % self.vsp_physical_network.id)
+        nuage_vsp_device = Nuage.list(
+            self.api_client,
+            physicalnetworkid=self.vsp_physical_network.id)[0]
         cmd = deleteNuageVspDevice.deleteNuageVspDeviceCmd()
         cmd.vspdeviceid = nuage_vsp_device.vspdeviceid
         self.api_client.deleteNuageVspDevice(cmd)
-        self.debug("Successfully deleted the Nuage VSP device in the Nuage VSP Physical Network - %s" %
-                   self.vsp_physical_network.id)
+        self.debug("Successfully deleted the Nuage VSP device in the Nuage "
+                   "VSP Physical Network - %s" % self.vsp_physical_network.id)
 
     @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
     def test_nuage_vsp_device(self):
         """ Test Nuage VSP device in the Nuage VSP Physical Network
         """
 
-        # 1. Verify that the Nuage VSP network service provider is successfully created and enabled in the Nuage VSP
-        #    Physical Network.
-        # 2. Verify that the Nuage VSP device is successfully created in the Nuage VSP Physical Network.
-        # 3. Delete the Nuage VSP device in the Nuage VSP Physical Network, verify that the Nuage VSP device is
-        #    successfully deleted in the Nuage VSP Physical Network.
-        # 4. Add the Nuage VSP device in the Nuage VSP Physical Network with invalid VSD credentials, verify that the
-        #    Nuage VSP device failed to add in the Nuage VSP Physical Network.
-        # 5. Add the Nuage VSP device in the Nuage VSP Physical Network with valid VSD credentials, verify that the
-        #    Nuage VSP device is successfully added in the Nuage VSP Physical Network.
+        # 1. Verify that the Nuage VSP network service provider is successfully
+        #    created and enabled in the Nuage VSP Physical Network.
+        # 2. Verify that the Nuage VSP device is successfully created in the
+        #    Nuage VSP Physical Network.
+        # 3. Delete the Nuage VSP device in the Nuage VSP Physical Network,
+        #    verify that the Nuage VSP device is successfully deleted in the
+        #    Nuage VSP Physical Network.
+        # 4. Add the Nuage VSP device in the Nuage VSP Physical Network with
+        #    invalid VSD credentials, verify that the Nuage VSP device failed
+        #    to add in the Nuage VSP Physical Network.
+        # 5. Add the Nuage VSP device in the Nuage VSP Physical Network with
+        #    valid VSD credentials, verify that the Nuage VSP device is
+        #    successfully added in the Nuage VSP Physical Network.
 
-        # Nuage VSP network service provider validation
-        self.debug("Validating the Nuage VSP network service provider in the Nuage VSP Physical Network...")
-        self.validate_NetworkServiceProvider("NuageVsp", state="Enabled")
+        for zone in self.zones:
+            self.debug("Zone - %s" % zone.name)
+            # Get Zone details
+            self.getZoneDetails(zone=zone)
+            # Configure VSD sessions
+            self.configureVSDSessions()
 
-        # Nuage VSP device validation
-        self.debug("Validating the Nuage VSP device in the Nuage VSP Physical Network...")
-        self.validate_NuageVspDevice()
+            # Nuage VSP network service provider validation
+            self.debug("Validating the Nuage VSP network service provider in "
+                       "the Nuage VSP Physical Network...")
+            self.validate_NetworkServiceProvider("NuageVsp", state="Enabled")
 
-        # Nuage VSP device deletion
-        self.debug("Deleting the Nuage VSP device in the Nuage VSP Physical Network...")
-        self.delete_NuageVspDevice()
-
-        # Nuage VSP device validation
-        self.debug("Validating the Nuage VSP device in the Nuage VSP Physical Network...")
-        with self.assertRaises(Exception):
+            # Nuage VSP device validation
+            self.debug("Validating the Nuage VSP device in the Nuage VSP "
+                       "Physical Network...")
             self.validate_NuageVspDevice()
-        self.debug("Successfully deleted the Nuage VSP device in the Nuage VSP Physical Network")
 
-        # Adding the Nuage VSP device with invalid VSD credentials
-        self.debug("Adding the Nuage VSP device in the Nuage VSP Physical Network with invalid VSD credentials...")
-        vsd_info = self.nuage_vsp_device.__dict__
-        invalid_vsd_info = copy.deepcopy(vsd_info)
-        invalid_vsd_info["password"] = ""
-        with self.assertRaises(Exception):
-            Nuage.add(self.api_client, invalid_vsd_info, self.vsp_physical_network.id)
-        self.debug("Failed to add the Nuage VSP device in the Nuage VSP Physical Network due to invalid VSD "
-                   "credentials")
+            # Nuage VSP device deletion
+            self.debug("Deleting the Nuage VSP device in the Nuage VSP "
+                       "Physical Network...")
+            self.delete_NuageVspDevice()
 
-        # Nuage VSP device validation
-        self.debug("Validating the Nuage VSP device in the Nuage VSP Physical Network...")
-        with self.assertRaises(Exception):
+            # Nuage VSP device validation
+            self.debug("Validating the Nuage VSP device in the Nuage VSP "
+                       "Physical Network...")
+            with self.assertRaises(Exception):
+                self.validate_NuageVspDevice()
+            self.debug("Successfully deleted the Nuage VSP device in the "
+                       "Nuage VSP Physical Network")
+
+            # Adding the Nuage VSP device with invalid VSD credentials
+            self.debug("Adding the Nuage VSP device in the Nuage VSP Physical "
+                       "Network with invalid VSD credentials...")
+            vsd_info = self.nuage_vsp_device.__dict__
+            invalid_vsd_info = copy.deepcopy(vsd_info)
+            invalid_vsd_info["password"] = ""
+            with self.assertRaises(Exception):
+                Nuage.add(
+                    self.api_client, invalid_vsd_info,
+                    self.vsp_physical_network.id)
+            self.debug("Failed to add the Nuage VSP device in the Nuage VSP "
+                       "Physical Network due to invalid VSD credentials")
+
+            # Nuage VSP device validation
+            self.debug("Validating the Nuage VSP device in the Nuage VSP "
+                       "Physical Network...")
+            with self.assertRaises(Exception):
+                self.validate_NuageVspDevice()
+            self.debug("The Nuage VSP device is not added in the Nuage VSP "
+                       "Physical Network")
+
+            # Adding the Nuage VSP device with valid VSD credentials
+            self.debug("Adding the Nuage VSP device in the Nuage VSP Physical "
+                       "Network with valid VSD credentials...")
+            Nuage.add(self.api_client, vsd_info, self.vsp_physical_network.id)
+
+            # Nuage VSP device validation
+            self.debug("Validating the Nuage VSP device in the Nuage VSP "
+                       "Physical Network...")
             self.validate_NuageVspDevice()
-        self.debug("The Nuage VSP device is not added in the Nuage VSP Physical Network")
-
-        # Adding the Nuage VSP device with valid VSD credentials
-        self.debug("Adding the Nuage VSP device in the Nuage VSP Physical Network with valid VSD credentials...")
-        Nuage.add(self.api_client, vsd_info, self.vsp_physical_network.id)
-
-        # Nuage VSP device validation
-        self.debug("Validating the Nuage VSP device in the Nuage VSP Physical Network...")
-        self.validate_NuageVspDevice()
 
     @attr(tags=["advanced", "nuagevsp"], required_hardware="false")
     def test_nuage_vsp(self):
         """ Test Nuage VSP SDN plugin with basic Isolated Network functionality
         """
 
-        # 1. Verify that the Nuage VSP network service provider is successfully created and enabled.
-        # 2. Create and enable Nuage VSP Isolated Network offering, check if it is successfully created and enabled.
-        # 3. Create an Isolated Network with Nuage VSP Isolated Network offering, check if it is successfully created
-        #    and is in the "Allocated" state.
-        # 4. Deploy a VM in the created Isolated network, check if the Isolated network state is changed to
-        #    "Implemented", and both the VM & VR are successfully deployed and are in the "Running" state.
-        # 5. Deploy one more VM in the created Isolated network, check if the VM is successfully deployed and is in the
-        #    "Running" state.
-        # 6. Delete the created Isolated Network after destroying its VMs, check if the Isolated network is successfully
-        #    deleted.
+        # 1. Verify that the Nuage VSP network service provider is successfully
+        #    created and enabled.
+        # 2. Create and enable Nuage VSP Isolated Network offering, check if it
+        #    is successfully created and enabled.
+        # 3. Create an Isolated Network with Nuage VSP Isolated Network
+        #    offering, check if it is successfully created and is in the
+        #    "Allocated" state.
+        # 4. Deploy a VM in the created Isolated network, check if the Isolated
+        #    network state is changed to "Implemented", and both the VM & VR
+        #    are successfully deployed and are in the "Running" state.
+        # 5. Deploy one more VM in the created Isolated network, check if the
+        #    VM is successfully deployed and is in the "Running" state.
+        # 6. Delete the created Isolated Network after destroying its VMs,
+        #    check if the Isolated network is successfully deleted.
         # 7. Delete all the created objects (cleanup).
 
-        # Creating a network offering
-        self.debug("Creating and enabling Nuage VSP Isolated Network offering...")
-        network_offering = self.create_NetworkOffering(
-            self.test_data["nuagevsp"]["isolated_network_offering"])
-        self.validate_NetworkOffering(network_offering, state="Enabled")
+        for zone in self.zones:
+            self.debug("Zone - %s" % zone.name)
+            # Get Zone details
+            self.getZoneDetails(zone=zone)
+            # Configure VSD sessions
+            self.configureVSDSessions()
 
-        # Creating a network
-        self.debug("Creating an Isolated Network with Nuage VSP Isolated Network offering...")
-        network = self.create_Network(network_offering)
-        self.validate_Network(network, state="Allocated")
+            # Creating a network offering
+            self.debug("Creating and enabling Nuage VSP Isolated Network "
+                       "offering...")
+            network_offering = self.create_NetworkOffering(
+                self.test_data["nuagevsp"]["isolated_network_offering"])
+            self.validate_NetworkOffering(network_offering, state="Enabled")
 
-        # Deploying a VM in the network
-        vm_1 = self.create_VM(network)
-        self.validate_Network(network, state="Implemented")
-        vr = self.get_Router(network)
-        self.check_Router_state(vr, state="Running")
-        self.check_VM_state(vm_1, state="Running")
+            # Creating a network
+            self.debug("Creating an Isolated Network with Nuage VSP Isolated "
+                       "Network offering...")
+            network = self.create_Network(network_offering)
+            self.validate_Network(network, state="Allocated")
 
-        # VSD verification
-        self.verify_vsd_network(self.domain.id, network)
-        self.verify_vsd_router(vr)
-        self.verify_vsd_vm(vm_1)
+            # Deploying a VM in the network
+            vm_1 = self.create_VM(network)
+            self.validate_Network(network, state="Implemented")
+            vr = self.get_Router(network)
+            self.check_Router_state(vr, state="Running")
+            self.check_VM_state(vm_1, state="Running")
 
-        # Deploying one more VM in the network
-        vm_2 = self.create_VM(network)
-        self.check_VM_state(vm_2, state="Running")
-
-        # VSD verification
-        self.verify_vsd_vm(vm_2)
-
-        # Deleting the network
-        self.debug("Deleting the Isolated Network with Nuage VSP Isolated Network offering...")
-        self.delete_VM(vm_1)
-        self.delete_VM(vm_2)
-        self.delete_Network(network)
-        with self.assertRaises(Exception):
-            self.validate_Network(network)
-        self.debug("Isolated Network successfully deleted in CloudStack")
-
-        # VSD verification
-        with self.assertRaises(Exception):
+            # VSD verification
             self.verify_vsd_network(self.domain.id, network)
-        self.debug("Isolated Network successfully deleted in VSD")
+            self.verify_vsd_router(vr)
+            self.verify_vsd_vm(vm_1)
+
+            # Deploying one more VM in the network
+            vm_2 = self.create_VM(network)
+            self.check_VM_state(vm_2, state="Running")
+
+            # VSD verification
+            self.verify_vsd_vm(vm_2)
+
+            # Deleting the network
+            self.debug("Deleting the Isolated Network with Nuage VSP Isolated "
+                       "Network offering...")
+            self.delete_VM(vm_1)
+            self.delete_VM(vm_2)
+            self.delete_Network(network)
+            with self.assertRaises(Exception):
+                self.validate_Network(network)
+            self.debug("Isolated Network successfully deleted in CloudStack")
+
+            # VSD verification
+            with self.assertRaises(Exception):
+                self.verify_vsd_network(self.domain.id, network)
+            self.debug("Isolated Network successfully deleted in VSD")
diff --git a/test/integration/plugins/solidfire/TestAddRemoveHosts.py b/test/integration/plugins/solidfire/TestAddRemoveHosts.py
index 518d022..366c127 100644
--- a/test/integration/plugins/solidfire/TestAddRemoveHosts.py
+++ b/test/integration/plugins/solidfire/TestAddRemoveHosts.py
@@ -21,6 +21,10 @@
 import time
 import XenAPI
 
+from solidfire.factory import ElementFactory
+
+from util import sf_util
+
 # All tests inherit from cloudstackTestCase
 from marvin.cloudstackTestCase import cloudstackTestCase
 
@@ -35,10 +39,22 @@
 # utils - utility classes for common cleanup, external library wrappers, etc.
 from marvin.lib.utils import cleanup_resources
 
-from solidfire import solidfire_element_api as sf_api
+# Prerequisites:
+#  Only one zone
+#  Only one pod
+#  Only one cluster (two hosts for XenServer / one host for KVM with another added/removed during the tests)
+#
+# Running the tests:
+#  Change the "hypervisor_type" variable to control which hypervisor type to test.
+#  If using XenServer, set a breakpoint on each test after the first one. When the breakpoint is hit, reset the added/removed
+#   host to a snapshot state and re-start it. Once it's up and running, run the test code.
+#  Check that ip_address_of_new_xenserver_host / ip_address_of_new_kvm_host is correct.
+#  If using XenServer, verify the "xen_server_master_hostname" variable is correct.
+#  If using KVM, verify the "kvm_1_ip_address" variable is correct.
 
 
 class TestData:
+    #constants
     account = "account"
     capacityBytes = "capacitybytes"
     capacityIops = "capacityiops"
@@ -48,12 +64,12 @@
     diskSize = "disksize"
     domainId = "domainId"
     hypervisor = "hypervisor"
-    login = "login"
+    kvm = "kvm"
     mvip = "mvip"
     name = "name"
-    newHost = "newHost"
+    newXenServerHost = "newXenServerHost"
+    newKvmHost = "newKvmHost"
     newHostDisplayName = "newHostDisplayName"
-    osType = "ostype"
     password = "password"
     podId = "podid"
     port = "port"
@@ -66,7 +82,6 @@
     storageTag2 = "SolidFire_Volume_1"
     tags = "tags"
     url = "url"
-    urlOfNewHost = "urlOfNewHost"
     user = "user"
     username = "username"
     virtualMachine = "virtualmachine"
@@ -74,20 +89,30 @@
     xenServer = "xenserver"
     zoneId = "zoneid"
 
+    # modify to control which hypervisor type to test
+    hypervisor_type = xenServer
+    xen_server_master_hostname = "XenServer-6.5-1"
+    kvm_1_ip_address = "192.168.129.84"
+    ip_address_of_new_xenserver_host = "192.168.129.243"
+    ip_address_of_new_kvm_host = "192.168.129.3"
+
     def __init__(self):
         self.testdata = {
             TestData.solidFire: {
                 TestData.mvip: "192.168.139.112",
-                TestData.login: "admin",
+                TestData.username: "admin",
                 TestData.password: "admin",
                 TestData.port: 443,
                 TestData.url: "https://192.168.139.112:443"
             },
+            TestData.kvm: {
+                TestData.username: "root",
+                TestData.password: "solidfire"
+            },
             TestData.xenServer: {
                 TestData.username: "root",
                 TestData.password: "solidfire"
             },
-            TestData.urlOfNewHost: "https://192.168.129.243",
             TestData.account: {
                 "email": "test@test.com",
                 "firstname": "John",
@@ -102,10 +127,17 @@
                 TestData.username: "testuser",
                 TestData.password: "password"
             },
-            TestData.newHost: {
+            TestData.newXenServerHost: {
                 TestData.username: "root",
                 TestData.password: "solidfire",
-                TestData.url: "http://192.168.129.243",
+                TestData.url: "http://" + TestData.ip_address_of_new_xenserver_host,
+                TestData.podId : "1",
+                TestData.zoneId: "1"
+            },
+            TestData.newKvmHost: {
+                TestData.username: "root",
+                TestData.password: "solidfire",
+                TestData.url: "http://" + TestData.ip_address_of_new_kvm_host,
                 TestData.podId : "1",
                 TestData.zoneId: "1"
             },
@@ -155,11 +187,7 @@
             TestData.volume_1: {
                 "diskname": "testvolume",
             },
-            "volume2": {
-                "diskname": "testvolume2",
-            },
             TestData.newHostDisplayName: "XenServer-6.5-3",
-            TestData.osType: "CentOS 5.6(64-bit) no GUI (XenServer)",
             TestData.zoneId: 1,
             TestData.clusterId: 1,
             TestData.domainId: 1,
@@ -175,29 +203,27 @@
     def setUpClass(cls):
         # Set up API client
         testclient = super(TestAddRemoveHosts, cls).getClsTestClient()
+
         cls.apiClient = testclient.getApiClient()
+        cls.configData = testclient.getParsedTestDataConfig()
         cls.dbConnection = testclient.getDbConnection()
 
         cls.testdata = TestData().testdata
 
-        cls.xs_pool_master_ip = list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId], name="XenServer-6.5-1")[0].ipaddress
+        if TestData.hypervisor_type == TestData.xenServer:
+            cls.xs_pool_master_ip = list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId], name=TestData.xen_server_master_hostname)[0].ipaddress
 
-        # Set up XenAPI connection
-        host_ip = "https://" + cls.xs_pool_master_ip
-
-        cls.xen_session = XenAPI.Session(host_ip)
-
-        xenserver = cls.testdata[TestData.xenServer]
-
-        cls.xen_session.xenapi.login_with_password(xenserver[TestData.username], xenserver[TestData.password])
+        cls._connect_to_hypervisor()
 
         # Set up SolidFire connection
-        cls.sf_client = sf_api.SolidFireAPI(endpoint_dict=cls.testdata[TestData.solidFire])
+        solidfire = cls.testdata[TestData.solidFire]
+
+        cls.sfe = ElementFactory.create(solidfire[TestData.mvip], solidfire[TestData.username], solidfire[TestData.password])
 
         # Get Resources from Cloud Infrastructure
         cls.zone = get_zone(cls.apiClient, zone_id=cls.testdata[TestData.zoneId])
         cls.cluster = list_clusters(cls.apiClient)[0]
-        cls.template = get_template(cls.apiClient, cls.zone.id, cls.testdata[TestData.osType])
+        cls.template = get_template(cls.apiClient, cls.zone.id, cls.configData["ostype"])
         cls.domain = get_domain(cls.apiClient, cls.testdata[TestData.domainId])
 
         # Create test account
@@ -238,7 +264,7 @@
         try:
             cleanup_resources(cls.apiClient, cls._cleanup)
 
-            cls._purge_solidfire_volumes()
+            sf_util.purge_solidfire_volumes(cls.sfe)
         except Exception as e:
             logging.debug("Exception in tearDownClass(cls): %s" % e)
 
@@ -284,13 +310,20 @@
             startvm=True
         )
 
-        root_volume = self._get_root_volume(self.virtual_machine)
+        if TestData.hypervisor_type == TestData.xenServer:
+            root_volume = self._get_root_volume(self.virtual_machine)
 
-        sf_iscsi_name = self._get_iqn(root_volume)
-
-        self._perform_add_remove_host(primary_storage.id, sf_iscsi_name)
+            sf_iscsi_name = sf_util.get_iqn(self.cs_api, root_volume, self)
+            self._perform_add_remove_xenserver_host(primary_storage.id, sf_iscsi_name)
+        elif TestData.hypervisor_type == TestData.kvm:
+            self._perform_add_remove_kvm_host(primary_storage.id)
+        else:
+            self.assertTrue(False, "Invalid hypervisor type")
 
     def test_add_remove_host_with_solidfire_plugin_2(self):
+        if TestData.hypervisor_type != TestData.xenServer:
+            return
+
         primarystorage2 = self.testdata[TestData.primaryStorage2]
 
         primary_storage_2 = StoragePool.create(
@@ -310,9 +343,12 @@
 
         sf_iscsi_name = self._get_iqn_2(primary_storage_2)
 
-        self._perform_add_remove_host(primary_storage_2.id, sf_iscsi_name)
+        self._perform_add_remove_xenserver_host(primary_storage_2.id, sf_iscsi_name)
 
     def test_add_remove_host_with_solidfire_plugin_3(self):
+        if TestData.hypervisor_type != TestData.xenServer:
+            return
+
         primarystorage = self.testdata[TestData.primaryStorage]
 
         primary_storage = StoragePool.create(
@@ -342,7 +378,7 @@
 
         root_volume = self._get_root_volume(self.virtual_machine)
 
-        sf_iscsi_name = self._get_iqn(root_volume)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, root_volume, self)
 
         primarystorage2 = self.testdata[TestData.primaryStorage2]
 
@@ -361,9 +397,12 @@
 
         self.cleanup.append(primary_storage_2)
 
-        self._perform_add_remove_host(primary_storage.id, sf_iscsi_name)
+        self._perform_add_remove_xenserver_host(primary_storage.id, sf_iscsi_name)
 
     def test_add_remove_host_with_solidfire_plugin_4(self):
+        if TestData.hypervisor_type != TestData.xenServer:
+            return
+
         primarystorage2 = self.testdata[TestData.primaryStorage2]
 
         primary_storage_2 = StoragePool.create(
@@ -410,10 +449,10 @@
             startvm=True
         )
 
-        self._perform_add_remove_host(primary_storage_2.id, sf_iscsi_name)
+        self._perform_add_remove_xenserver_host(primary_storage_2.id, sf_iscsi_name)
 
-    def _perform_add_remove_host(self, primary_storage_id, sf_iscsi_name):
-        xen_sr = self.xen_session.xenapi.SR.get_by_name_label(sf_iscsi_name)[0]
+    def _perform_add_remove_xenserver_host(self, primary_storage_id, sr_name):
+        xen_sr = self.xen_session.xenapi.SR.get_by_name_label(sr_name)[0]
 
         pbds = self.xen_session.xenapi.SR.get_PBDs(xen_sr)
 
@@ -423,7 +462,7 @@
 
         sf_vag_id = self._get_sf_vag_id(self.cluster.id, primary_storage_id)
 
-        host_iscsi_iqns = self._get_host_iscsi_iqns()
+        host_iscsi_iqns = self._get_xenserver_host_iscsi_iqns()
 
         sf_vag = self._get_sf_vag(sf_vag_id)
 
@@ -433,7 +472,7 @@
 
         sf_vag_initiators_len_orig = len(sf_vag_initiators)
 
-        xen_session = XenAPI.Session(self.testdata[TestData.urlOfNewHost])
+        xen_session = XenAPI.Session("https://" + TestData.ip_address_of_new_xenserver_host)
 
         xenserver = self.testdata[TestData.xenServer]
 
@@ -470,7 +509,7 @@
         host = Host.create(
             self.apiClient,
             self.cluster,
-            self.testdata[TestData.newHost],
+            self.testdata[TestData.newXenServerHost],
             hypervisor="XenServer"
         )
 
@@ -489,7 +528,7 @@
 
         self._verify_all_pbds_attached(pbds)
 
-        host_iscsi_iqns = self._get_host_iscsi_iqns()
+        host_iscsi_iqns = self._get_xenserver_host_iscsi_iqns()
 
         sf_vag = self._get_sf_vag(sf_vag_id)
 
@@ -517,7 +556,7 @@
 
         self._verify_all_pbds_attached(pbds)
 
-        host_iscsi_iqns = self._get_host_iscsi_iqns()
+        host_iscsi_iqns = self._get_xenserver_host_iscsi_iqns()
 
         sf_vag = self._get_sf_vag(sf_vag_id)
 
@@ -545,7 +584,81 @@
 
         self._verify_all_pbds_attached(pbds)
 
-        host_iscsi_iqns = self._get_host_iscsi_iqns()
+        host_iscsi_iqns = self._get_xenserver_host_iscsi_iqns()
+
+        sf_vag = self._get_sf_vag(sf_vag_id)
+
+        sf_vag_initiators = self._get_sf_vag_initiators(sf_vag)
+
+        self._verifyVag(host_iscsi_iqns, sf_vag_initiators)
+
+        sf_vag_initiators_len_new = len(sf_vag_initiators)
+
+        self.assertEqual(
+            sf_vag_initiators_len_new,
+            sf_vag_initiators_len_orig,
+            "sf_vag_initiators_len_new' != sf_vag_initiators_len_orig"
+        )
+
+    def _perform_add_remove_kvm_host(self, primary_storage_id):
+        sf_vag_id = self._get_sf_vag_id(self.cluster.id, primary_storage_id)
+
+        kvm_login = self.testdata[TestData.kvm]
+
+        kvm_hosts = []
+
+        kvm_hosts.append(TestData.kvm_1_ip_address)
+
+        host_iscsi_iqns = self._get_kvm_host_iscsi_iqns(kvm_hosts, kvm_login[TestData.username], kvm_login[TestData.password])
+
+        sf_vag = self._get_sf_vag(sf_vag_id)
+
+        sf_vag_initiators = self._get_sf_vag_initiators(sf_vag)
+
+        self._verifyVag(host_iscsi_iqns, sf_vag_initiators)
+
+        sf_vag_initiators_len_orig = len(sf_vag_initiators)
+
+        host = Host.create(
+            self.apiClient,
+            self.cluster,
+            self.testdata[TestData.newKvmHost],
+            hypervisor="KVM"
+        )
+
+        self.assertTrue(
+            isinstance(host, Host),
+            "'host' is not a 'Host'."
+        )
+
+        kvm_hosts = []
+
+        kvm_hosts.append(TestData.kvm_1_ip_address)
+        kvm_hosts.append(TestData.ip_address_of_new_kvm_host)
+
+        host_iscsi_iqns = self._get_kvm_host_iscsi_iqns(kvm_hosts, kvm_login[TestData.username], kvm_login[TestData.password])
+
+        sf_vag = self._get_sf_vag(sf_vag_id)
+
+        sf_vag_initiators = self._get_sf_vag_initiators(sf_vag)
+
+        self._verifyVag(host_iscsi_iqns, sf_vag_initiators)
+
+        sf_vag_initiators_len_new = len(sf_vag_initiators)
+
+        self.assertEqual(
+            sf_vag_initiators_len_new,
+            sf_vag_initiators_len_orig + 1,
+            "sf_vag_initiators_len_new' != sf_vag_initiators_len_orig + 1"
+        )
+
+        host.delete(self.apiClient)
+
+        kvm_hosts = []
+
+        kvm_hosts.append(TestData.kvm_1_ip_address)
+
+        host_iscsi_iqns = self._get_kvm_host_iscsi_iqns(kvm_hosts, kvm_login[TestData.username], kvm_login[TestData.password])
 
         sf_vag = self._get_sf_vag(sf_vag_id)
 
@@ -596,19 +709,6 @@
 
         self.assert_(False, "Unable to locate the ROOT volume of the VM with the following ID: " + str(vm.id))
 
-    def _get_iqn(self, volume):
-        # Get volume IQN
-        sf_iscsi_name_request = {'volumeid': volume.id}
-        # put this commented line back once PR 1403 is in
-        # sf_iscsi_name_result = self.cs_api.getVolumeiScsiName(sf_iscsi_name_request)
-        sf_iscsi_name_result = self.cs_api.getSolidFireVolumeIscsiName(sf_iscsi_name_request)
-        # sf_iscsi_name = sf_iscsi_name_result['apivolumeiscsiname']['volumeiScsiName']
-        sf_iscsi_name = sf_iscsi_name_result['apisolidfirevolumeiscsiname']['solidFireVolumeIscsiName']
-
-        self._check_iscsi_name(sf_iscsi_name)
-
-        return sf_iscsi_name
-
     def _get_iqn_2(self, primary_storage):
         sql_query = "Select path From storage_pool Where uuid = '" + str(primary_storage.id) + "'"
 
@@ -617,14 +717,7 @@
 
         return sql_result[0][0]
 
-    def _check_iscsi_name(self, sf_iscsi_name):
-        self.assertEqual(
-            sf_iscsi_name[0],
-            "/",
-            "The iSCSI name needs to start with a forward slash."
-        )
-
-    def _get_host_iscsi_iqns(self):
+    def _get_xenserver_host_iscsi_iqns(self):
         hosts = self.xen_session.xenapi.host.get_all()
 
         self.assertEqual(
@@ -636,15 +729,41 @@
         host_iscsi_iqns = []
 
         for host in hosts:
-            host_iscsi_iqns.append(self._get_host_iscsi_iqn(host))
+            host_iscsi_iqns.append(self._get_xenserver_host_iscsi_iqn(host))
 
         return host_iscsi_iqns
 
-    def _get_host_iscsi_iqn(self, host):
+    def _get_xenserver_host_iscsi_iqn(self, host):
         other_config = self.xen_session.xenapi.host.get_other_config(host)
 
         return other_config["iscsi_iqn"]
 
+    def _get_kvm_host_iscsi_iqns(self, kvm_ip_addresses, common_username, common_password):
+        host_iscsi_iqns = []
+
+        for kvm_ip_address in kvm_ip_addresses:
+            host_iscsi_iqn = self._get_kvm_iqn(kvm_ip_address, common_username, common_password)
+
+            host_iscsi_iqns.append(host_iscsi_iqn)
+
+        return host_iscsi_iqns
+
+    def _get_kvm_iqn(self, ip_address, username, password):
+        ssh_connection = sf_util.get_ssh_connection(ip_address, username, password)
+
+        searchFor = "InitiatorName="
+
+        stdin, stdout, stderr = ssh_connection.exec_command("sudo grep " + searchFor + " /etc/iscsi/initiatorname.iscsi")
+
+        result = stdout.read()
+
+        ssh_connection.close()
+
+        self.assertFalse(result is None, "Unable to locate the IQN of the KVM host (None)")
+        self.assertFalse(len(result.strip()) == 0, "Unable to locate the IQN of the KVM host (Zero-length string)")
+
+        return result[len(searchFor):].strip()
+
     def _get_sf_vag_id(self, cluster_id, primary_storage_id):
         # Get SF Volume Access Group ID
         sf_vag_id_request = {'clusterid': cluster_id, 'storageid': primary_storage_id}
@@ -660,10 +779,10 @@
         return sf_vag_id
 
     def _get_sf_vag(self, sf_vag_id):
-        return self.sf_client.list_volume_access_groups(sf_vag_id, 1)["volumeAccessGroups"][0]
+        return self.sfe.list_volume_access_groups(sf_vag_id, 1).volume_access_groups[0]
 
     def _get_sf_vag_initiators(self, sf_vag):
-        return sf_vag["initiators"]
+        return sf_vag.initiators
 
     def _verifyVag(self, host_iscsi_iqns, sf_vag_initiators):
         self.assertEqual(
@@ -688,23 +807,17 @@
             # an error should occur if host_iscsi_iqn is not in sf_vag_initiators
             sf_vag_initiators.index(host_iscsi_iqn)
 
-    def _check_list(self, in_list, expected_size_of_list, err_msg):
-        self.assertEqual(
-            isinstance(in_list, list),
-            True,
-            "'in_list' is not a list."
-        )
-
-        self.assertEqual(
-            len(in_list),
-            expected_size_of_list,
-            err_msg
-        )
-
     @classmethod
-    def _purge_solidfire_volumes(cls):
-        deleted_volumes = cls.sf_client.list_deleted_volumes()
+    def _connect_to_hypervisor(cls):
+        if TestData.hypervisor_type == TestData.kvm:
+            pass
+        elif TestData.hypervisor_type == TestData.xenServer:
+            host_ip = "https://" + \
+                  list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId], name=TestData.xen_server_master_hostname)[0].ipaddress
 
-        for deleted_volume in deleted_volumes:
-            cls.sf_client.purge_deleted_volume(deleted_volume['volumeID'])
+            cls.xen_session = XenAPI.Session(host_ip)
+
+            xen_server = cls.testdata[TestData.xenServer]
+
+            cls.xen_session.xenapi.login_with_password(xen_server[TestData.username], xen_server[TestData.password])
 
diff --git a/test/integration/plugins/solidfire/TestManagedSystemVMs.py b/test/integration/plugins/solidfire/TestManagedSystemVMs.py
new file mode 100644
index 0000000..2bfbe4a
--- /dev/null
+++ b/test/integration/plugins/solidfire/TestManagedSystemVMs.py
@@ -0,0 +1,627 @@
+# 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.
+
+import logging
+import random
+import SignedAPICall
+import XenAPI
+
+from solidfire.factory import ElementFactory
+
+from util import sf_util
+
+from marvin.cloudstackAPI import destroySystemVm
+
+# All tests inherit from cloudstackTestCase
+from marvin.cloudstackTestCase import cloudstackTestCase
+
+# Import Integration Libraries
+
+# base - contains all resources as entities and defines create, delete, list operations on them
+from marvin.lib.base import Account, Router, ServiceOffering, StoragePool, User, VirtualMachine, Zone
+
+# common - commonly used methods for all tests are listed here
+from marvin.lib.common import get_domain, get_template, get_zone, list_clusters, list_hosts, list_ssvms, list_routers
+
+# utils - utility classes for common cleanup, external library wrappers, etc.
+from marvin.lib.utils import cleanup_resources, wait_until
+
+# Prerequisites:
+#  * Only use one SolidFire cluster for the two primary storages based on the "SolidFire" storage plug-in.
+#  * Do not run other workloads on the SolidFire cluster while running this test as this test checks at a certain
+#     point to make sure no active SolidFire volumes exist.
+#  * Only one zone
+#  * Only one secondary storage VM and one console proxy VM running on NFS (no virtual router or user VMs exist)
+#  * Only one pod
+#  * Only one cluster
+#
+# Running the tests:
+#  Change the "hypervisor_type" variable to control which hypervisor type to test.
+#  If using XenServer, verify the "xen_server_hostname" variable is correct.
+#  Set the Global Setting "storage.cleanup.enabled" to true.
+#  Set the Global Setting "storage.cleanup.interval" to 150.
+#  Set the Global Setting "storage.cleanup.delay" to 60.
+
+
+class TestData():
+    # constants
+    account = "account"
+    capacityBytes = "capacitybytes"
+    capacityIops = "capacityiops"
+    clusterId = "clusterid"
+    computeOffering = "computeoffering"
+    diskOffering = "diskoffering"
+    domainId = "domainid"
+    email = "email"
+    firstname = "firstname"
+    hypervisor = "hypervisor"
+    kvm = "kvm"
+    lastname = "lastname"
+    max_iops = "maxiops"
+    min_iops = "miniops"
+    mvip = "mvip"
+    name = "name"
+    password = "password"
+    port = "port"
+    primaryStorage = "primarystorage"
+    provider = "provider"
+    scope = "scope"
+    solidFire = "solidfire"
+    storageTag = "SolidFire_SAN_1"
+    systemOffering = "systemoffering"
+    systemOfferingFailure = "systemofferingFailure"
+    tags = "tags"
+    url = "url"
+    user = "user"
+    username = "username"
+    virtualMachine = "virtualmachine"
+    xenServer = "xenserver"
+    zoneId = "zoneid"
+
+    # modify to control which hypervisor type to test
+    hypervisor_type = kvm
+    xen_server_hostname = "XenServer-6.5-1"
+
+    def __init__(self):
+        self.testdata = {
+            TestData.solidFire: {
+                TestData.mvip: "192.168.139.112",
+                TestData.username: "admin",
+                TestData.password: "admin",
+                TestData.port: 443,
+                TestData.url: "https://192.168.139.112:443"
+            },
+            TestData.kvm: {
+                TestData.username: "root",
+                TestData.password: "solidfire"
+            },
+            TestData.xenServer: {
+                TestData.username: "root",
+                TestData.password: "solidfire"
+            },
+            TestData.account: {
+                TestData.email: "test@test.com",
+                TestData.firstname: "John",
+                TestData.lastname: "Doe",
+                TestData.username: "test",
+                TestData.password: "test"
+            },
+            TestData.user: {
+                TestData.email: "user@test.com",
+                TestData.firstname: "Jane",
+                TestData.lastname: "Doe",
+                TestData.username: "testuser",
+                TestData.password: "password"
+            },
+            TestData.primaryStorage: {
+                TestData.name: TestData.get_name_for_solidfire_storage(),
+                TestData.scope: "ZONE",
+                TestData.url: "MVIP=192.168.139.112;SVIP=10.10.8.112;" +
+                       "clusterAdminUsername=admin;clusterAdminPassword=admin;" +
+                       "clusterDefaultMinIops=10000;clusterDefaultMaxIops=15000;" +
+                       "clusterDefaultBurstIopsPercentOfMaxIops=1.5;",
+                TestData.provider: "SolidFire",
+                TestData.tags: TestData.storageTag,
+                TestData.capacityIops: 4500000,
+                TestData.capacityBytes: 2251799813685248,
+                TestData.hypervisor: "Any",
+                TestData.zoneId: 1
+            },
+            TestData.virtualMachine: {
+                TestData.name: "TestVM",
+                "displayname": "Test VM"
+            },
+            TestData.computeOffering: {
+                TestData.name: "SF_CO_1",
+                "displaytext": "SF_CO_1 (Min IOPS = 10,000; Max IOPS = 15,000)",
+                "cpunumber": 1,
+                "cpuspeed": 100,
+                "memory": 128,
+                "storagetype": "shared",
+                "customizediops": False,
+                TestData.min_iops: 10000,
+                TestData.max_iops: 15000,
+                "hypervisorsnapshotreserve": 200,
+                TestData.tags: TestData.storageTag
+            },
+            TestData.systemOffering: {
+                TestData.name: "SF_SO_1",
+                "displaytext": "Managed SO (Min IOPS = 4,000; Max IOPS = 8,000)",
+                "cpunumber": 1,
+                "cpuspeed": 100,
+                "memory": 128,
+                "storagetype": "shared",
+                TestData.min_iops: 4000,
+                TestData.max_iops: 8000,
+                TestData.tags: TestData.storageTag,
+                "issystem": True
+            },
+            TestData.systemOfferingFailure: {
+                TestData.name: "SF_SO_2",
+                "displaytext": "Managed SO (Customized IOPS)",
+                "cpunumber": 1,
+                "cpuspeed": 100,
+                "memory": 128,
+                "storagetype": "shared",
+                "customizediops": True,
+                TestData.tags: TestData.storageTag,
+                "issystem": True
+            },
+            TestData.zoneId: 1,
+            TestData.clusterId: 1,
+            TestData.domainId: 1,
+            TestData.url: "192.168.129.50"
+        }
+
+    @staticmethod
+    def get_name_for_solidfire_storage():
+        return "SolidFire-%d" % random.randint(0, 100)
+
+
+class TestManagedSystemVMs(cloudstackTestCase):
+    _unique_name_suffix = "-Temp"
+
+    _secondary_storage_unique_name = "Cloud.com-SecondaryStorage"
+    _secondary_storage_temp_unique_name = _secondary_storage_unique_name + _unique_name_suffix
+
+    _console_proxy_unique_name = "Cloud.com-ConsoleProxy"
+    _console_proxy_temp_unique_name = _console_proxy_unique_name + _unique_name_suffix
+
+    _virtual_router_unique_name = "Cloud.com-SoftwareRouter"
+    _virtual_router_temp_unique_name = _virtual_router_unique_name + _unique_name_suffix
+
+    @classmethod
+    def setUpClass(cls):
+        # Set up API client
+        testclient = super(TestManagedSystemVMs, cls).getClsTestClient()
+
+        cls.apiClient = testclient.getApiClient()
+        cls.configData = testclient.getParsedTestDataConfig()
+        cls.dbConnection = testclient.getDbConnection()
+
+        cls.testdata = TestData().testdata
+
+        cls._connect_to_hypervisor()
+
+        # Set up SolidFire connection
+        solidfire = cls.testdata[TestData.solidFire]
+
+        cls.sfe = ElementFactory.create(solidfire[TestData.mvip], solidfire[TestData.username], solidfire[TestData.password])
+
+        # Get Resources from Cloud Infrastructure
+        cls.zone = Zone(get_zone(cls.apiClient, zone_id=cls.testdata[TestData.zoneId]).__dict__)
+        cls.cluster = list_clusters(cls.apiClient)[0]
+        cls.template = get_template(cls.apiClient, cls.zone.id, cls.configData["ostype"])
+        cls.domain = get_domain(cls.apiClient, cls.testdata[TestData.domainId])
+
+        # Create test account
+        cls.account = Account.create(
+            cls.apiClient,
+            cls.testdata["account"],
+            admin=1
+        )
+
+        # Set up connection to make customized API calls
+        cls.user = User.create(
+            cls.apiClient,
+            cls.testdata["user"],
+            account=cls.account.name,
+            domainid=cls.domain.id
+        )
+
+        url = cls.testdata[TestData.url]
+
+        api_url = "http://" + url + ":8080/client/api"
+        userkeys = User.registerUserKeys(cls.apiClient, cls.user.id)
+
+        cls.cs_api = SignedAPICall.CloudStack(api_url, userkeys.apikey, userkeys.secretkey)
+
+        cls.compute_offering = ServiceOffering.create(
+            cls.apiClient,
+            cls.testdata[TestData.computeOffering]
+        )
+
+        systemoffering = cls.testdata[TestData.systemOffering]
+
+        systemoffering[TestData.name] = "Managed SSVM"
+        systemoffering['systemvmtype'] = "secondarystoragevm"
+
+        cls.secondary_storage_offering = ServiceOffering.create(
+            cls.apiClient,
+            systemoffering
+        )
+
+        systemoffering[TestData.name] = "Managed CPVM"
+        systemoffering['systemvmtype'] = "consoleproxy"
+
+        cls.console_proxy_offering = ServiceOffering.create(
+            cls.apiClient,
+            systemoffering
+        )
+
+        systemoffering[TestData.name] = "Managed VR"
+        systemoffering['systemvmtype'] = "domainrouter"
+
+        cls.virtual_router_offering = ServiceOffering.create(
+            cls.apiClient,
+            systemoffering
+        )
+
+        # Resources that are to be destroyed
+        cls._cleanup = [
+            cls.secondary_storage_offering,
+            cls.console_proxy_offering,
+            cls.virtual_router_offering,
+            cls.compute_offering,
+            cls.user,
+            cls.account
+        ]
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            cleanup_resources(cls.apiClient, cls._cleanup)
+        except Exception as e:
+            logging.debug("Exception in tearDownClass(cls): %s" % e)
+
+    def setUp(self):
+        self.cleanup = []
+
+    def tearDown(self):
+        try:
+            cleanup_resources(self.apiClient, self.cleanup)
+
+            sf_util.purge_solidfire_volumes(self.sfe)
+        except Exception as e:
+            logging.debug("Exception in tearDownClass(self): %s" % e)
+
+    def test_01_create_system_vms_on_managed_storage(self):
+        self._disable_zone_and_delete_system_vms(None, False)
+
+        primary_storage = self.testdata[TestData.primaryStorage]
+
+        primary_storage_1 = StoragePool.create(
+            self.apiClient,
+            primary_storage
+        )
+
+        self._prepare_to_use_managed_storage_for_system_vms()
+
+        enabled = "Enabled"
+
+        self.zone.update(self.apiClient, id=self.zone.id, allocationstate=enabled)
+
+        system_vms = self._wait_for_and_get_running_system_vms(2)
+
+        virtual_machine = VirtualMachine.create(
+            self.apiClient,
+            self.testdata[TestData.virtualMachine],
+            accountid=self.account.name,
+            zoneid=self.zone.id,
+            serviceofferingid=self.compute_offering.id,
+            templateid=self.template.id,
+            domainid=self.domain.id,
+            startvm=True
+        )
+
+        # This virtual machine was only created and started so that the virtual router would be created and started.
+        # Just delete this virtual machine once it has been created and started.
+        virtual_machine.delete(self.apiClient, True)
+
+        virtual_router = list_routers(self.apiClient, listall=True, state="Running")[0]
+
+        system_vms.append(virtual_router)
+
+        self._check_system_vms(system_vms, primary_storage_1.id)
+
+        primary_storage[TestData.name] = TestData.get_name_for_solidfire_storage()
+
+        primary_storage_2 = StoragePool.create(
+            self.apiClient,
+            primary_storage
+        )
+
+        StoragePool.enableMaintenance(self.apiClient, primary_storage_1.id)
+
+        self._wait_for_storage_cleanup_thread(system_vms)
+
+        sf_util.purge_solidfire_volumes(self.sfe)
+
+        system_vms = self._wait_for_and_get_running_system_vms(2)
+
+        virtual_router = list_routers(self.apiClient, listall=True, state="Running")[0]
+
+        system_vms.append(virtual_router)
+
+        self._check_system_vms(system_vms, primary_storage_2.id)
+
+        StoragePool.cancelMaintenance(self.apiClient, primary_storage_1.id)
+
+        primary_storage_1.delete(self.apiClient)
+
+        self._disable_zone_and_delete_system_vms(virtual_router)
+
+        self._wait_for_storage_cleanup_thread(system_vms)
+
+        sf_util.purge_solidfire_volumes(self.sfe)
+
+        primary_storage_2.delete(self.apiClient)
+
+        self._verify_no_active_solidfire_volumes()
+
+        self._prepare_to_stop_using_managed_storage_for_system_vms()
+
+        self.zone.update(self.apiClient, id=self.zone.id, allocationstate=enabled)
+
+        self._wait_for_and_get_running_system_vms(2)
+
+    def test_02_failure_to_create_service_offering_with_customized_iops(self):
+        try:
+            ServiceOffering.create(
+                self.apiClient,
+                self.testdata[TestData.systemOfferingFailure]
+            )
+        except:
+            return
+
+        self.assert_(False, "The service offering was created, but should not have been.")
+
+    def _prepare_to_use_managed_storage_for_system_vms(self):
+        self._update_system_vm_unique_name(TestManagedSystemVMs._secondary_storage_unique_name, TestManagedSystemVMs._secondary_storage_temp_unique_name)
+        self._update_system_vm_unique_name(TestManagedSystemVMs._console_proxy_unique_name, TestManagedSystemVMs._console_proxy_temp_unique_name)
+        self._update_system_vm_unique_name(TestManagedSystemVMs._virtual_router_unique_name, TestManagedSystemVMs._virtual_router_temp_unique_name)
+
+        self._update_system_vm_unique_name_based_on_uuid(self.secondary_storage_offering.id, TestManagedSystemVMs._secondary_storage_unique_name)
+        self._update_system_vm_unique_name_based_on_uuid(self.console_proxy_offering.id, TestManagedSystemVMs._console_proxy_unique_name)
+        self._update_system_vm_unique_name_based_on_uuid(self.virtual_router_offering.id, TestManagedSystemVMs._virtual_router_unique_name)
+
+    def _prepare_to_stop_using_managed_storage_for_system_vms(self):
+        self._update_system_vm_unique_name_based_on_uuid(self.secondary_storage_offering.id, None)
+        self._update_system_vm_unique_name_based_on_uuid(self.console_proxy_offering.id, None)
+        self._update_system_vm_unique_name_based_on_uuid(self.virtual_router_offering.id, None)
+
+        self._update_system_vm_unique_name(TestManagedSystemVMs._secondary_storage_temp_unique_name, TestManagedSystemVMs._secondary_storage_unique_name)
+        self._update_system_vm_unique_name(TestManagedSystemVMs._console_proxy_temp_unique_name, TestManagedSystemVMs._console_proxy_unique_name)
+        self._update_system_vm_unique_name(TestManagedSystemVMs._virtual_router_temp_unique_name, TestManagedSystemVMs._virtual_router_unique_name)
+
+    def _wait_for_storage_cleanup_thread(self, system_vms):
+        retry_interval = 60
+        num_tries = 10
+
+        wait_result, return_val = wait_until(retry_interval, num_tries, self._check_resource_state, system_vms)
+
+        if not wait_result:
+            raise Exception(return_val)
+
+    def _check_resource_state(self, system_vms):
+        try:
+            self._verify_system_vms_deleted(system_vms)
+
+            return True, None
+        except:
+            return False, "The system is not in the necessary state."
+
+    def _verify_system_vms_deleted(self, system_vms):
+        for system_vm in system_vms:
+            cs_root_volume = self._get_root_volume_for_system_vm(system_vm.id, 'Expunged')
+
+            self._verify_managed_system_vm_deleted(cs_root_volume.name)
+
+    def _disable_zone_and_delete_system_vms(self, virtual_router, verify_managed_system_vm_deleted=True):
+        self.zone.update(self.apiClient, id=self.zone.id, allocationstate="Disabled")
+
+        if virtual_router is not None:
+            Router.destroy(self.apiClient, virtual_router.id)
+
+            if verify_managed_system_vm_deleted:
+                cs_root_volume = self._get_root_volume_for_system_vm(virtual_router.id, 'Expunged')
+
+                self._verify_managed_system_vm_deleted(cs_root_volume.name)
+
+        # list_ssvms lists the secondary storage VM and the console proxy VM
+        system_vms = list_ssvms(self.apiClient)
+
+        for system_vm in system_vms:
+            destroy_ssvm_cmd = destroySystemVm.destroySystemVmCmd()
+
+            destroy_ssvm_cmd.id = system_vm.id
+
+            self.apiClient.destroySystemVm(destroy_ssvm_cmd)
+
+            if verify_managed_system_vm_deleted:
+                cs_root_volume = self._get_root_volume_for_system_vm(system_vm.id, 'Expunged')
+
+                self._verify_managed_system_vm_deleted(cs_root_volume.name)
+
+    def _verify_managed_system_vm_deleted(self, cs_root_volume_name):
+        sf_not_active_volumes = sf_util.get_not_active_sf_volumes(self.sfe)
+
+        sf_root_volume = sf_util.check_and_get_sf_volume(sf_not_active_volumes, cs_root_volume_name, self)
+
+        self.assertEqual(
+            len(sf_root_volume.volume_access_groups),
+            0,
+            "The volume should not be in a volume access group."
+        )
+
+        if TestData.hypervisor_type == TestData.xenServer:
+            sr_name = sf_util.format_iqn(sf_root_volume.iqn)
+
+            sf_util.check_xen_sr(sr_name, self.xen_session, self, False)
+        elif TestData.hypervisor_type == TestData.kvm:
+            list_hosts_response = list_hosts(
+                self.apiClient,
+                type="Routing"
+            )
+
+            kvm_login = self.testdata[TestData.kvm]
+
+            sf_util.check_kvm_access_to_volume(sf_root_volume.iqn, list_hosts_response, kvm_login[TestData.username], kvm_login[TestData.password], self, False)
+        else:
+            self.assertTrue(False, "Invalid hypervisor type")
+
+    def _wait_for_and_get_running_system_vms(self, expected_number_of_system_vms):
+        retry_interval = 60
+        num_tries = 10
+
+        wait_result, return_val = wait_until(retry_interval, num_tries, self._check_number_of_running_system_vms, expected_number_of_system_vms)
+
+        if not wait_result:
+            raise Exception(return_val)
+
+        return return_val
+
+    def _check_number_of_running_system_vms(self, expected_number_of_system_vms):
+        # list_ssvms lists the secondary storage VM and the console proxy VM
+        system_vms = list_ssvms(self.apiClient, state="Running")
+
+        if system_vms is not None and len(system_vms) == expected_number_of_system_vms:
+            return True, system_vms
+
+        return False, "Timed out waiting for running system VMs"
+
+    def _verify_no_active_solidfire_volumes(self):
+        sf_active_volumes = sf_util.get_active_sf_volumes(self.sfe)
+
+        sf_util.check_list(sf_active_volumes, 0, self, "There should be no active SolidFire volumes in the cluster.")
+
+    def _check_system_vms(self, system_vms, primary_storage_id):
+        sf_active_volumes = sf_util.get_active_sf_volumes(self.sfe)
+
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, primary_storage_id, self)
+
+        for system_vm in system_vms:
+            cs_root_volume = self._get_root_volume_for_system_vm(system_vm.id, 'Ready')
+            sf_root_volume = sf_util.check_and_get_sf_volume(sf_active_volumes, cs_root_volume.name, self)
+
+            sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, cs_root_volume, self)
+
+            sf_util.check_size_and_iops(sf_root_volume, cs_root_volume, sf_volume_size, self)
+
+            self._check_iops_against_iops_of_system_offering(cs_root_volume, self.testdata[TestData.systemOffering])
+
+            sf_util.check_vag(sf_root_volume, sf_vag_id, self)
+
+            if TestData.hypervisor_type == TestData.xenServer:
+                sr_name = sf_util.format_iqn(sf_root_volume.iqn)
+
+                sf_util.check_xen_sr(sr_name, self.xen_session, self)
+            elif TestData.hypervisor_type == TestData.kvm:
+                list_hosts_response = list_hosts(
+                    self.apiClient,
+                    type="Routing"
+                )
+
+                kvm_login = self.testdata[TestData.kvm]
+
+                sf_util.check_kvm_access_to_volume(sf_root_volume.iqn, list_hosts_response, kvm_login[TestData.username], kvm_login[TestData.password], self)
+            else:
+                self.assertTrue(False, "Invalid hypervisor type")
+
+    def _check_iops_against_iops_of_system_offering(self, cs_volume, system_offering):
+        self.assertEqual(
+            system_offering[TestData.min_iops],
+            cs_volume.miniops,
+            "Check QoS - Min IOPS: of " + cs_volume.name + " should be " + str(system_offering[TestData.min_iops])
+        )
+
+        self.assertEqual(
+            system_offering[TestData.max_iops],
+            cs_volume.maxiops,
+            "Check QoS - Min IOPS: of " + cs_volume.name + " should be " + str(system_offering[TestData.max_iops])
+        )
+
+    def _get_root_volume_for_system_vm(self, system_vm_id, state):
+        sql_query = "Select id From vm_instance Where uuid = '" + system_vm_id + "'"
+
+        # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
+        sql_result = self.dbConnection.execute(sql_query)
+
+        instance_id = sql_result[0][0]
+
+        sql_query = "Select uuid, name, min_iops, max_iops From volumes Where instance_id = " + str(instance_id) + \
+            " and state = '" + state + "' Order by removed desc"
+
+        # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
+        sql_result = self.dbConnection.execute(sql_query)
+
+        uuid = sql_result[0][0]
+        name = sql_result[0][1]
+        min_iops = sql_result[0][2]
+        max_iops = sql_result[0][3]
+
+        class CloudStackVolume(object):
+            pass
+
+        cs_volume = CloudStackVolume()
+
+        cs_volume.id = uuid
+        cs_volume.name = name
+        cs_volume.miniops = min_iops
+        cs_volume.maxiops = max_iops
+
+        return cs_volume
+
+    def _update_system_vm_unique_name(self, unique_name, new_unique_name):
+        sql_query = "Update disk_offering set unique_name = '" + new_unique_name + "' Where unique_name = '" + unique_name + "'"
+
+        # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
+        self.dbConnection.execute(sql_query)
+
+    def _update_system_vm_unique_name_based_on_uuid(self, uuid, new_unique_name):
+        if (new_unique_name is None):
+            sql_query = "Update disk_offering set unique_name = NULL Where uuid = '" + uuid + "'"
+        else:
+            sql_query = "Update disk_offering set unique_name = '" + new_unique_name + "' Where uuid = '" + uuid + "'"
+
+        # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
+        self.dbConnection.execute(sql_query)
+
+    @classmethod
+    def _connect_to_hypervisor(cls):
+        if TestData.hypervisor_type == TestData.kvm:
+            pass
+        elif TestData.hypervisor_type == TestData.xenServer:
+            host_ip = "https://" + \
+                  list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId], name=TestData.xen_server_hostname)[0].ipaddress
+
+            cls.xen_session = XenAPI.Session(host_ip)
+
+            xen_server = cls.testdata[TestData.xenServer]
+
+            cls.xen_session.xenapi.login_with_password(xen_server[TestData.username], xen_server[TestData.password])
+
diff --git a/test/integration/plugins/solidfire/TestSnapshots.py b/test/integration/plugins/solidfire/TestSnapshots.py
index 9c3d255..e1b9aaf 100644
--- a/test/integration/plugins/solidfire/TestSnapshots.py
+++ b/test/integration/plugins/solidfire/TestSnapshots.py
@@ -21,6 +21,10 @@
 import time
 import XenAPI
 
+from solidfire.factory import ElementFactory
+
+from util import sf_util
+
 # All tests inherit from cloudstackTestCase
 from marvin.cloudstackTestCase import cloudstackTestCase
 
@@ -32,18 +36,23 @@
 from marvin.lib.base import Account, DiskOffering, ServiceOffering, Snapshot, StoragePool, Template, User, VirtualMachine, Volume
 
 # common - commonly used methods for all tests are listed here
-from marvin.lib.common import get_domain, get_template, get_zone, list_clusters, list_hosts, list_volumes
+from marvin.lib.common import get_domain, get_template, get_zone, list_clusters, list_hosts, list_volumes, list_snapshots
 
 # utils - utility classes for common cleanup, external library wrappers, etc.
-from marvin.lib.utils import cleanup_resources
+from marvin.lib.utils import cleanup_resources, wait_until
 
-from solidfire import solidfire_element_api as sf_api
-
-# on April 10, 2016: Ran 3 tests in 7742.481s with three hosts
-# on May 2, 2016: Ran 3 tests in 7409.770s with two hosts
+# Prerequisites:
+#  Only one zone
+#  Only one pod
+#  Only one cluster
+#
+# Running the tests:
+#  Change the "hypervisor_type" variable to control which hypervisor type to test.
+#  If using KVM, set the Global Setting "kvm.snapshot.enabled" equal to true.
 
 
 class TestData():
+    # constants
     account = "account"
     capacityBytes = "capacitybytes"
     capacityIops = "capacityiops"
@@ -53,7 +62,7 @@
     diskOffering = "diskoffering"
     domainId = "domainId"
     hypervisor = "hypervisor"
-    login = "login"
+    kvm = "kvm"
     mvip = "mvip"
     password = "password"
     port = "port"
@@ -63,7 +72,6 @@
     solidFire = "solidfire"
     storageTag = "SolidFire_SAN_1"
     tags = "tags"
-    templateName = "templatename"
     url = "url"
     user = "user"
     username = "username"
@@ -73,40 +81,18 @@
     xenServer = "xenserver"
     zoneId = "zoneId"
 
+    # modify to control which hypervisor type to test
+    hypervisor_type = xenServer
+
     def __init__(self):
         self.testdata = {
             TestData.solidFire: {
                 TestData.mvip: "192.168.139.112",
-                TestData.login: "admin",
+                TestData.username: "admin",
                 TestData.password: "admin",
                 TestData.port: 443,
                 TestData.url: "https://192.168.139.112:443"
             },
-            TestData.xenServer: {
-                TestData.username: "root",
-                TestData.password: "solidfire"
-            },
-            TestData.account: {
-                "email": "test@test.com",
-                "firstname": "John",
-                "lastname": "Doe",
-                "username": "test",
-                "password": "test"
-            },
-            "testaccount": {
-                "email": "test2@test2.com",
-                "firstname": "Jane",
-                "lastname": "Doe",
-                TestData.username: "test2",
-                TestData.password: "test"
-            },
-            TestData.user: {
-                "email": "user@test.com",
-                "firstname": "Jane",
-                "lastname": "Doe",
-                TestData.username: "testuser",
-                TestData.password: "password"
-            },
             TestData.primaryStorage: {
                 "name": "SolidFire-%d" % random.randint(0, 100),
                 TestData.scope: "ZONE",
@@ -120,6 +106,20 @@
                 TestData.capacityBytes: 2251799813685248,
                 TestData.hypervisor: "Any"
             },
+            TestData.account: {
+                "email": "test@test.com",
+                "firstname": "John",
+                "lastname": "Doe",
+                "username": "test",
+                "password": "test"
+            },
+            TestData.user: {
+                "email": "user@test.com",
+                "firstname": "Jane",
+                "lastname": "Doe",
+                TestData.username: "testuser",
+                TestData.password: "password"
+            },
             TestData.virtualMachine: {
                 "name": "TestVM",
                 "displayname": "Test VM"
@@ -148,78 +148,12 @@
                 TestData.tags: TestData.storageTag,
                 "storagetype": "shared"
             },
-            "testdiskofferings": {
-                "customiopsdo": {
-                    "name": "SF_Custom_Iops_DO",
-                    "displaytext": "Customized Iops DO",
-                    "disksize": 128,
-                    "customizediops": True,
-                    "miniops": 500,
-                    "maxiops": 1000,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "customsizedo": {
-                    "name": "SF_Custom_Size_DO",
-                    "displaytext": "Customized Size DO",
-                    "disksize": 175,
-                    "customizediops": False,
-                    "miniops": 500,
-                    "maxiops": 1000,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "customsizeandiopsdo": {
-                    "name": "SF_Custom_Iops_Size_DO",
-                    "displaytext": "Customized Size and Iops DO",
-                    "disksize": 200,
-                    "customizediops": True,
-                    "miniops": 400,
-                    "maxiops": 800,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newiopsdo": {
-                    "name": "SF_New_Iops_DO",
-                    "displaytext": "New Iops (min=350, max = 700)",
-                    "disksize": 128,
-                    "miniops": 350,
-                    "maxiops": 700,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newsizedo": {
-                    "name": "SF_New_Size_DO",
-                    "displaytext": "New Size: 175",
-                    "disksize": 175,
-                    "miniops": 400,
-                    "maxiops": 800,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newsizeandiopsdo": {
-                    "name": "SF_New_Size_Iops_DO",
-                    "displaytext": "New Size and Iops",
-                    "disksize": 200,
-                    "miniops": 200,
-                    "maxiops": 400,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                }
-            },
             TestData.volume_1: {
                 TestData.diskName: "test-volume",
             },
             TestData.volume_2: {
                 TestData.diskName: "test-volume-2",
             },
-            TestData.templateName: "CentOS 5.6(64-bit) no GUI (XenServer)",
             TestData.zoneId: 1,
             TestData.clusterId: 1,
             TestData.domainId: 1,
@@ -248,29 +182,22 @@
     def setUpClass(cls):
         # Set up API client
         testclient = super(TestSnapshots, cls).getClsTestClient()
+
         cls.apiClient = testclient.getApiClient()
+        cls.configData = testclient.getParsedTestDataConfig()
         cls.dbConnection = testclient.getDbConnection()
 
         cls.testdata = TestData().testdata
 
-        # Set up xenAPI connection
-        host_ip = "https://" + \
-                  list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId], name="XenServer-6.5-1")[0].ipaddress
-
-        # Set up XenAPI connection
-        cls.xen_session = XenAPI.Session(host_ip)
-
-        xenserver = cls.testdata[TestData.xenServer]
-
-        cls.xen_session.xenapi.login_with_password(xenserver[TestData.username], xenserver[TestData.password])
-
         # Set up SolidFire connection
-        cls.sf_client = sf_api.SolidFireAPI(endpoint_dict=cls.testdata[TestData.solidFire])
+        solidfire = cls.testdata[TestData.solidFire]
+
+        cls.sfe = ElementFactory.create(solidfire[TestData.mvip], solidfire[TestData.username], solidfire[TestData.password])
 
         # Get Resources from Cloud Infrastructure
         cls.zone = get_zone(cls.apiClient, zone_id=cls.testdata[TestData.zoneId])
         cls.cluster = list_clusters(cls.apiClient)[0]
-        cls.template = get_template(cls.apiClient, cls.zone.id, template_name=cls.testdata[TestData.templateName])
+        cls.template = get_template(cls.apiClient, cls.zone.id, cls.configData["ostype"])
         cls.domain = get_domain(cls.apiClient, cls.testdata[TestData.domainId])
 
         # Create test account
@@ -334,7 +261,7 @@
 
             cls.primary_storage.delete(cls.apiClient)
 
-            cls._purge_solidfire_volumes()
+            sf_util.purge_solidfire_volumes(cls.sfe)
         except Exception as e:
             logging.debug("Exception in tearDownClass(cls): %s" % e)
 
@@ -344,9 +271,9 @@
     def tearDown(self):
         cleanup_resources(self.apiClient, self.cleanup)
 
-    @attr(hypervisor='XenServer')
     def test_01_create_volume_snapshot_using_sf_snapshot(self):
-        self._set_supports_resign(True)
+        if TestData.hypervisor_type == TestData.xenServer:
+            sf_util.set_supports_resign(True, self.dbConnection)
 
         virtual_machine = VirtualMachine.create(
             self.apiClient,
@@ -365,24 +292,24 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_1_root_volume = list_volumes_response[0]
         vm_1_root_volume_name = vm_1_root_volume.name
 
-        sf_account_id = self._get_sf_account_id(self.account.id, self.primary_storage.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestSnapshots._sf_account_id_should_be_non_zero_int_err_msg)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume['volumeID'])
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume.volume_id).snapshots
 
-        self._check_list(sf_snapshots, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
         primary_storage_db_id = self._get_cs_storage_pool_db_id(self.primary_storage)
 
@@ -405,27 +332,27 @@
         virtual_machine.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
 
         self._delete_and_test_snapshot(vol_snap_1)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
 
         self._delete_and_test_snapshot(vol_snap_2)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 0, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 0, self, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
 
         virtual_machine = VirtualMachine.create(
             self.apiClient,
@@ -444,22 +371,22 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_1_root_volume = list_volumes_response[0]
         vm_1_root_volume_name = vm_1_root_volume.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume['volumeID'])
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume.volume_id).snapshots
 
-        self._check_list(sf_snapshots, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
         vol_snap_1 = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 1, TestSnapshots._should_only_be_one_snapshot_in_list_err_msg)
 
@@ -492,22 +419,22 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_2_root_volume = list_volumes_response[0]
         vm_2_root_volume_name = vm_2_root_volume.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 2, self, TestSnapshots._should_be_two_volumes_in_list_err_msg)
 
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots_2 = self.sf_client.list_snapshots(volume_id=sf_volume_2['volumeID'])
+        sf_snapshots_2 = self.sfe.list_snapshots(volume_id=sf_volume_2.volume_id).snapshots
 
-        self._check_list(sf_snapshots_2, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots_2, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
         vol_snap_a = self._create_and_test_snapshot(vm_2_root_volume.id, sf_volume_2, primary_storage_db_id, 1, TestSnapshots._should_only_be_one_snapshot_in_list_err_msg)
 
@@ -518,15 +445,15 @@
         volume_created_from_snapshot_name = volume_created_from_snapshot.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 3, TestSnapshots._should_be_three_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 3, self, TestSnapshots._should_be_three_volumes_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
         sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
 
-        self._check_list(sf_volume_3['volumeAccessGroups'], 0, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
+        sf_util.check_list(sf_volume_3.volume_access_groups, 0, self, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
 
         volume_created_from_snapshot = virtual_machine.attach_volume(
             self.apiClient,
@@ -538,9 +465,9 @@
         virtual_machine.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 3, TestSnapshots._should_be_three_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 3, self, TestSnapshots._should_be_three_volumes_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
@@ -558,9 +485,9 @@
         self._delete_and_test_snapshot(vol_snap_1)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 2, self, TestSnapshots._should_be_two_volumes_in_list_err_msg)
 
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
         sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
@@ -568,9 +495,9 @@
         virtual_machine_2.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
 
@@ -579,7 +506,7 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         data_volume = list_volumes_response[0]
 
@@ -588,13 +515,16 @@
         data_volume.delete(self.apiClient)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 0, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 0, self, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
 
     @attr(hypervisor='XenServer')
     def test_02_create_volume_snapshot_using_sf_volume(self):
-        self._set_supports_resign(False)
+        if TestData.hypervisor_type != TestData.xenServer:
+            return
+
+        sf_util.set_supports_resign(False, self.dbConnection)
 
         virtual_machine = VirtualMachine.create(
             self.apiClient,
@@ -613,29 +543,29 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_1_root_volume = list_volumes_response[0]
         vm_1_root_volume_name = vm_1_root_volume.name
 
-        sf_account_id = self._get_sf_account_id(self.account.id, self.primary_storage.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestSnapshots._sf_account_id_should_be_non_zero_int_err_msg)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume['volumeID'])
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume.volume_id).snapshots
 
-        self._check_list(sf_snapshots, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
         primary_storage_db_id = self._get_cs_storage_pool_db_id(self.primary_storage)
 
-        sf_volume_id = sf_volume['volumeID']
-        sf_volume_size = sf_volume['totalSize']
+        sf_volume_id = sf_volume.volume_id
+        sf_volume_size = sf_volume.total_size
 
         vol_snap_1 = self._create_and_test_snapshot_2(vm_1_root_volume.id, sf_volume_id, sf_volume_id + 1, primary_storage_db_id, sf_volume_size,
                                                       sf_account_id, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
@@ -661,9 +591,9 @@
         virtual_machine.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 2, self, TestSnapshots._should_be_two_volumes_in_list_err_msg)
 
         self._delete_and_test_snapshot_2(vol_snap_1, sf_account_id, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
@@ -686,25 +616,25 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_1_root_volume = list_volumes_response[0]
         vm_1_root_volume_name = vm_1_root_volume.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume['volumeID'])
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume.volume_id).snapshots
 
-        self._check_list(sf_snapshots, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
-        sf_volume_id = sf_volume['volumeID']
-        sf_volume_size = sf_volume['totalSize']
+        sf_volume_id = sf_volume.volume_id
+        sf_volume_size = sf_volume.total_size
 
         vol_snap_1 = self._create_and_test_snapshot_2(vm_1_root_volume.id, sf_volume_id, sf_volume_id + 1, primary_storage_db_id, sf_volume_size,
                                                       sf_account_id, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
@@ -740,25 +670,25 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_2_root_volume = list_volumes_response[0]
         vm_2_root_volume_name = vm_2_root_volume.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 5, TestSnapshots._should_be_five_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 5, self, TestSnapshots._should_be_five_volumes_in_list_err_msg)
 
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots_2 = self.sf_client.list_snapshots(volume_id=sf_volume_2['volumeID'])
+        sf_snapshots_2 = self.sfe.list_snapshots(volume_id=sf_volume_2.volume_id).snapshots
 
-        self._check_list(sf_snapshots_2, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots_2, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
-        sf_volume_id_2 = sf_volume_2['volumeID']
-        sf_volume_size_2 = sf_volume_2['totalSize']
+        sf_volume_id_2 = sf_volume_2.volume_id
+        sf_volume_size_2 = sf_volume_2.total_size
 
         vol_snap_a = self._create_and_test_snapshot_2(vm_2_root_volume.id, sf_volume_id_2, sf_volume_id + 5, primary_storage_db_id, sf_volume_size_2,
                                                       sf_account_id, 6, TestSnapshots._should_be_six_volumes_in_list_err_msg)
@@ -770,15 +700,15 @@
         volume_created_from_snapshot_name = volume_created_from_snapshot.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 7, TestSnapshots._should_be_seven_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 7, self, TestSnapshots._should_be_seven_volumes_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
         sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
 
-        self._check_list(sf_volume_3['volumeAccessGroups'], 0, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
+        sf_util.check_list(sf_volume_3.volume_access_groups, 0, self, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
 
         volume_created_from_snapshot = virtual_machine.attach_volume(
             self.apiClient,
@@ -790,9 +720,9 @@
         virtual_machine.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 5, TestSnapshots._should_be_five_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 5, self, TestSnapshots._should_be_five_volumes_in_list_err_msg)
 
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
         sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
@@ -811,16 +741,16 @@
         virtual_machine_2.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         list_volumes_response = list_volumes(
             self.apiClient,
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         data_volume = list_volumes_response[0]
 
@@ -829,9 +759,9 @@
         data_volume.delete(self.apiClient)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 0, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 0, self, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
 
         virtual_machine = VirtualMachine.create(
             self.apiClient,
@@ -850,15 +780,15 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_1_root_volume = list_volumes_response[0]
         vm_1_root_volume_name = vm_1_root_volume.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         time.sleep(60)
 
@@ -866,16 +796,16 @@
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
 
-        sf_volume_id = sf_volume['volumeID']
-        sf_volume_size = sf_volume['totalSize']
+        sf_volume_id = sf_volume.volume_id
+        sf_volume_size = sf_volume.total_size
 
         vol_snap_1 = self._create_and_test_snapshot_2(vm_1_root_volume.id, sf_volume_id, sf_volume_id + 1, primary_storage_db_id, sf_volume_size,
                                                       sf_account_id, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 2, self, TestSnapshots._should_be_two_volumes_in_list_err_msg)
 
         services = {"diskname": "Vol-1", "zoneid": self.testdata[TestData.zoneId], "size": 100, "ispublic": True}
 
@@ -884,21 +814,21 @@
         volume_created_from_snapshot_name = volume_created_from_snapshot.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 3, TestSnapshots._should_be_three_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 3, self, TestSnapshots._should_be_three_volumes_in_list_err_msg)
 
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
 
-        self._check_list(sf_volume_2['volumeAccessGroups'], 0, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
+        sf_util.check_list(sf_volume_2.volume_access_groups, 0, self, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
 
         volume_created_from_snapshot = virtual_machine.attach_volume(
             self.apiClient,
             volume_created_from_snapshot
         )
 
-        sf_volume_id_2 = sf_volume_2['volumeID']
-        sf_volume_size_2 = sf_volume_2['totalSize']
+        sf_volume_id_2 = sf_volume_2.volume_id
+        sf_volume_size_2 = sf_volume_2.total_size
 
         vol_snap_a = self._create_and_test_snapshot_2(volume_created_from_snapshot.id, sf_volume_id_2, sf_volume_id + 3, primary_storage_db_id, sf_volume_size_2,
                                                       sf_account_id, 4, TestSnapshots._should_be_four_volumes_in_list_err_msg)
@@ -910,16 +840,16 @@
         virtual_machine.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         list_volumes_response = list_volumes(
             self.apiClient,
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vol_snap_a = self._create_and_test_snapshot_2(volume_created_from_snapshot.id, sf_volume_id_2, sf_volume_id + 4, primary_storage_db_id, sf_volume_size_2,
                                                       sf_account_id, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
@@ -931,9 +861,9 @@
         data_volume.delete(self.apiClient)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         list_volumes_response = list_volumes(
             self.apiClient,
@@ -950,7 +880,10 @@
 
     @attr(hypervisor='XenServer')
     def test_03_create_volume_snapshot_using_sf_volume_and_sf_snapshot(self):
-        self._set_supports_resign(False)
+        if TestData.hypervisor_type != TestData.xenServer:
+            return
+
+        sf_util.set_supports_resign(False, self.dbConnection)
 
         virtual_machine = VirtualMachine.create(
             self.apiClient,
@@ -969,29 +902,29 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_1_root_volume = list_volumes_response[0]
         vm_1_root_volume_name = vm_1_root_volume.name
 
-        sf_account_id = self._get_sf_account_id(self.account.id, self.primary_storage.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestSnapshots._sf_account_id_should_be_non_zero_int_err_msg)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume['volumeID'])
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume.volume_id).snapshots
 
-        self._check_list(sf_snapshots, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
         primary_storage_db_id = self._get_cs_storage_pool_db_id(self.primary_storage)
 
-        sf_volume_id = sf_volume['volumeID']
-        sf_volume_size = sf_volume['totalSize']
+        sf_volume_id = sf_volume.volume_id
+        sf_volume_size = sf_volume.total_size
 
         vol_snap_1 = self._create_and_test_snapshot_2(vm_1_root_volume.id, sf_volume_id, sf_volume_id + 1, primary_storage_db_id, sf_volume_size,
                                                       sf_account_id, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
@@ -999,7 +932,7 @@
         vol_snap_2 = self._create_and_test_snapshot_2(vm_1_root_volume.id, sf_volume_id, sf_volume_id + 2, primary_storage_db_id, sf_volume_size,
                                                       sf_account_id, 3, TestSnapshots._should_be_three_volumes_in_list_err_msg)
 
-        self._set_supports_resign(True)
+        sf_util.set_supports_resign(True, self.dbConnection)
 
         vol_snap_a = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 1, TestSnapshots._should_only_be_one_snapshot_in_list_err_msg)
 
@@ -1030,31 +963,31 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_2_root_volume = list_volumes_response[0]
         vm_2_root_volume_name = vm_2_root_volume.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 4, TestSnapshots._should_be_four_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 4, self, TestSnapshots._should_be_four_volumes_in_list_err_msg)
 
         sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume_2['volumeID'])
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume_2.volume_id).snapshots
 
-        self._check_list(sf_snapshots, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
         services = {"diskname": "Vol-1", "zoneid": self.testdata[TestData.zoneId], "size": 100, "ispublic": True}
 
         volume_created_from_snapshot_1 = Volume.create_from_snapshot(self.apiClient, vol_snap_2.id, services, account=self.account.name, domainid=self.domain.id)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 5, TestSnapshots._should_be_five_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 5, self, TestSnapshots._should_be_five_volumes_in_list_err_msg)
 
         volume_created_from_snapshot_1 = virtual_machine_2.attach_volume(
             self.apiClient,
@@ -1086,31 +1019,31 @@
             listall=True
         )
 
-        self._check_list(list_volumes_response, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         vm_3_root_volume = list_volumes_response[0]
         vm_3_root_volume_name = vm_3_root_volume.name
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 6, TestSnapshots._should_be_six_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 6, self, TestSnapshots._should_be_six_volumes_in_list_err_msg)
 
         sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, vm_3_root_volume_name)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume_3['volumeID'])
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume_3.volume_id).snapshots
 
-        self._check_list(sf_snapshots, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
         services = {"diskname": "Vol-A", "zoneid": self.testdata[TestData.zoneId], "size": 100, "ispublic": True}
 
         volume_created_from_snapshot_a = Volume.create_from_snapshot(self.apiClient, vol_snap_b.id, services, account=self.account.name, domainid=self.domain.id)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 7, TestSnapshots._should_be_seven_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 7, self, TestSnapshots._should_be_seven_volumes_in_list_err_msg)
 
         volume_created_from_snapshot_a = virtual_machine_3.attach_volume(
             self.apiClient,
@@ -1120,85 +1053,389 @@
         virtual_machine.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
         # should still be 7 volumes because the SolidFire volume for the root disk of the VM just destroyed
         # is still needed for the SolidFire snapshots
-        self._check_list(sf_volumes, 7, TestSnapshots._should_be_seven_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 7, self, TestSnapshots._should_be_seven_volumes_in_list_err_msg)
 
         virtual_machine_2.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 6, TestSnapshots._should_be_six_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 6, self, TestSnapshots._should_be_six_volumes_in_list_err_msg)
 
         virtual_machine_3.delete(self.apiClient, True)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 5, TestSnapshots._should_be_five_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 5, self, TestSnapshots._should_be_five_volumes_in_list_err_msg)
 
         data_volume = Volume(volume_created_from_snapshot_a.__dict__)
 
         data_volume.delete(self.apiClient)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 4, TestSnapshots._should_be_four_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 4, self, TestSnapshots._should_be_four_volumes_in_list_err_msg)
 
         data_volume = Volume(volume_created_from_snapshot_1.__dict__)
 
         data_volume.delete(self.apiClient)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 3, TestSnapshots._should_be_three_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 3, self, TestSnapshots._should_be_three_volumes_in_list_err_msg)
 
         self._delete_and_test_snapshot_2(vol_snap_1, sf_account_id, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
 
         self._delete_and_test_snapshot(vol_snap_b)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
         # should still be 2 volumes because the SolidFire volume for the root disk of the VM just destroyed
         # is still needed for the SolidFire snapshots
-        self._check_list(sf_volumes, 2, TestSnapshots._should_be_two_volumes_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 2, self, TestSnapshots._should_be_two_volumes_in_list_err_msg)
 
         self._delete_and_test_snapshot(vol_snap_a)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, 1, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
 
         self._delete_and_test_snapshot_2(vol_snap_2, sf_account_id, 0, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
 
-    def _set_supports_resign(self, supports_resign):
-        supports_resign = str(supports_resign)
+    @attr(hypervisor='XenServer')
+    def test_04_create_volume_snapshot_using_sf_snapshot_and_archiving(self):
+        if TestData.hypervisor_type != TestData.xenServer:
+            return
 
-        sql_query = "Update host_details Set value = '" + supports_resign + "' Where name = 'supportsResign'"
+        sf_util.set_supports_resign(True, self.dbConnection)
 
-        # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
-        self.dbConnection.execute(sql_query)
-
-    def _check_list(self, in_list, expected_size_of_list, err_msg):
-        self.assertEqual(
-            isinstance(in_list, list),
-            True,
-            "'in_list' is not a list."
+        virtual_machine = VirtualMachine.create(
+            self.apiClient,
+            self.testdata[TestData.virtualMachine],
+            accountid=self.account.name,
+            zoneid=self.zone.id,
+            serviceofferingid=self.compute_offering.id,
+            templateid=self.template.id,
+            domainid=self.domain.id,
+            startvm=True
         )
 
-        self.assertEqual(
-            len(in_list),
-            expected_size_of_list,
-            err_msg
+        list_volumes_response = list_volumes(
+            self.apiClient,
+            virtualmachineid=virtual_machine.id,
+            listall=True
         )
 
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        vm_1_root_volume = list_volumes_response[0]
+        vm_1_root_volume_name = vm_1_root_volume.name
+
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestSnapshots._sf_account_id_should_be_non_zero_int_err_msg)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
+
+        # Get snapshot information for volume from SolidFire cluster
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume.volume_id).snapshots
+
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+
+        primary_storage_db_id = self._get_cs_storage_pool_db_id(self.primary_storage)
+
+        vol_snap_1_archive = self._create_and_test_archive_snapshot(vm_1_root_volume.id, sf_volume)
+
+        vol_snap_2 = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 1, TestSnapshots._should_only_be_one_snapshot_in_list_err_msg)
+
+        vol_snap_3_archive = self._create_and_test_archive_snapshot(vm_1_root_volume.id, sf_volume)
+
+        vol_snap_4 = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 2, TestSnapshots._should_be_two_snapshots_in_list_err_msg)
+
+        self._delete_and_test_archive_snapshot(vol_snap_3_archive)
+
+        self._delete_and_test_snapshot(vol_snap_2)
+
+        self._delete_and_test_snapshot(vol_snap_4)
+
+        self._delete_and_test_archive_snapshot(vol_snap_1_archive)
+
+        vol_snap_1_archive = self._create_and_test_archive_snapshot(vm_1_root_volume.id, sf_volume)
+
+        vol_snap_2 = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 1, TestSnapshots._should_only_be_one_snapshot_in_list_err_msg)
+
+        virtual_machine.delete(self.apiClient, True)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
+
+        self._delete_and_test_archive_snapshot(vol_snap_1_archive)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
+
+        self._delete_and_test_snapshot(vol_snap_2)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 0, self, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
+
+        virtual_machine = VirtualMachine.create(
+            self.apiClient,
+            self.testdata[TestData.virtualMachine],
+            accountid=self.account.name,
+            zoneid=self.zone.id,
+            serviceofferingid=self.compute_offering.id,
+            templateid=self.template.id,
+            domainid=self.domain.id,
+            startvm=True
+        )
+
+        list_volumes_response = list_volumes(
+            self.apiClient,
+            virtualmachineid=virtual_machine.id,
+            listall=True
+        )
+
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        vm_1_root_volume = list_volumes_response[0]
+        vm_1_root_volume_name = vm_1_root_volume.name
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
+
+        # Get snapshot information for volume from SolidFire cluster
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume.volume_id).snapshots
+
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+
+        vol_snap_1 = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 1, TestSnapshots._should_only_be_one_snapshot_in_list_err_msg)
+
+        vol_snap_2_archive = self._create_and_test_archive_snapshot(vm_1_root_volume.id, sf_volume)
+
+        vol_snap_3 = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 2, TestSnapshots._should_be_two_snapshots_in_list_err_msg)
+
+        vol_snap_4_archive = self._create_and_test_archive_snapshot(vm_1_root_volume.id, sf_volume)
+
+        services = {"displaytext": "Template-1", "name": "Template-1-name", "ostype": "CentOS 5.6 (64-bit)", "ispublic": "true"}
+
+        template = Template.create_from_snapshot(self.apiClient, vol_snap_2_archive, services)
+
+        self.cleanup.append(template)
+
+        virtual_machine_dict = {"name": "TestVM2", "displayname": "Test VM 2"}
+
+        virtual_machine_2 = VirtualMachine.create(
+            self.apiClient,
+            virtual_machine_dict,
+            accountid=self.account.name,
+            zoneid=self.zone.id,
+            serviceofferingid=self.compute_offering.id,
+            templateid=template.id,
+            domainid=self.domain.id,
+            startvm=True
+        )
+
+        list_volumes_response = list_volumes(
+            self.apiClient,
+            virtualmachineid=virtual_machine_2.id,
+            listall=True
+        )
+
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        vm_2_root_volume = list_volumes_response[0]
+        vm_2_root_volume_name = vm_2_root_volume.name
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 2, self, TestSnapshots._should_be_two_volumes_in_list_err_msg)
+
+        sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
+
+        # Get snapshot information for volume from SolidFire cluster
+        sf_snapshots_2 = self.sfe.list_snapshots(volume_id=sf_volume_2.volume_id).snapshots
+
+        sf_util.check_list(sf_snapshots_2, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+
+        vol_snap_a_archive = self._create_and_test_archive_snapshot(vm_2_root_volume.id, sf_volume_2)
+
+        services = {"diskname": "Vol-1", "zoneid": self.testdata[TestData.zoneId], "ispublic": True}
+
+        volume_created_from_snapshot = Volume.create_from_snapshot(self.apiClient, vol_snap_a_archive.id, services, account=self.account.name, domainid=self.domain.id)
+
+        volume_created_from_snapshot_name = volume_created_from_snapshot.name
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 3, self, TestSnapshots._should_be_three_volumes_in_list_err_msg)
+
+        sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
+        sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
+        sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
+
+        sf_util.check_list(sf_volume_3.volume_access_groups, 0, self, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
+
+        volume_created_from_snapshot = virtual_machine.attach_volume(
+            self.apiClient,
+            volume_created_from_snapshot
+        )
+
+        self._delete_and_test_archive_snapshot(vol_snap_a_archive)
+
+        virtual_machine.delete(self.apiClient, True)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 3, self, TestSnapshots._should_be_three_volumes_in_list_err_msg)
+
+        sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
+        sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
+        sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
+
+        volume_created_from_snapshot = virtual_machine_2.attach_volume(
+            self.apiClient,
+            volume_created_from_snapshot
+        )
+
+        self._delete_and_test_archive_snapshot(vol_snap_4_archive)
+
+        self._delete_and_test_snapshot(vol_snap_1)
+
+        self._delete_and_test_archive_snapshot(vol_snap_2_archive)
+
+        self._delete_and_test_snapshot(vol_snap_3)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 2, self, TestSnapshots._should_be_two_volumes_in_list_err_msg)
+
+        sf_volume_2 = self._get_sf_volume_by_name(sf_volumes, vm_2_root_volume_name)
+        sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
+
+        virtual_machine_2.delete(self.apiClient, True)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        sf_volume_3 = self._get_sf_volume_by_name(sf_volumes, volume_created_from_snapshot_name)
+
+        list_volumes_response = list_volumes(
+            self.apiClient,
+            listall=True
+        )
+
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        data_volume = list_volumes_response[0]
+
+        data_volume = Volume(data_volume.__dict__)
+
+        data_volume.delete(self.apiClient)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 0, self, TestSnapshots._should_be_zero_volumes_in_list_err_msg)
+
+    @attr(hypervisor='KVM')
+    def test_05_create_volume_snapshot_using_sf_snapshot_and_revert_volume_to_snapshot(self):
+        if TestData.hypervisor_type != TestData.kvm:
+            return
+
+        virtual_machine = VirtualMachine.create(
+            self.apiClient,
+            self.testdata[TestData.virtualMachine],
+            accountid=self.account.name,
+            zoneid=self.zone.id,
+            serviceofferingid=self.compute_offering.id,
+            templateid=self.template.id,
+            domainid=self.domain.id,
+            startvm=True
+        )
+
+        list_volumes_response = list_volumes(
+            self.apiClient,
+            virtualmachineid=virtual_machine.id,
+            listall=True
+        )
+
+        sf_util.check_list(list_volumes_response, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        vm_1_root_volume = list_volumes_response[0]
+        vm_1_root_volume_name = vm_1_root_volume.name
+
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestSnapshots._sf_account_id_should_be_non_zero_int_err_msg)
+
+        # Get volume information from SolidFire cluster
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_util.check_list(sf_volumes, 1, self, TestSnapshots._should_only_be_one_volume_in_list_err_msg)
+
+        sf_volume = self._get_sf_volume_by_name(sf_volumes, vm_1_root_volume_name)
+
+        # Get snapshot information for volume from SolidFire cluster
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume.volume_id).snapshots
+
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+
+        primary_storage_db_id = self._get_cs_storage_pool_db_id(self.primary_storage)
+
+        vol_snap_1 = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 1, TestSnapshots._should_only_be_one_snapshot_in_list_err_msg)
+
+        vol_snap_2 = self._create_and_test_snapshot(vm_1_root_volume.id, sf_volume, primary_storage_db_id, 2, TestSnapshots._should_be_two_snapshots_in_list_err_msg)
+
+        virtual_machine.stop(self.apiClient, False)
+
+        Volume.revertToSnapshot(self.apiClient, vol_snap_1.id)
+
+        virtual_machine.start(self.apiClient)
+
+        try:
+            Volume.revertToSnapshot(self.apiClient, vol_snap_1.id)
+
+            self.assertTrue(False, "An exception should have been thrown when trying to revert a volume to a snapshot and the volume is attached to a running VM.")
+        except:
+            pass
+
+        self._delete_and_test_snapshot(vol_snap_2)
+
+        self._delete_and_test_snapshot(vol_snap_1)
+
+        virtual_machine.delete(self.apiClient, True)
+
     def _check_list_not_empty(self, in_list):
         self.assertEqual(
             isinstance(in_list, list),
@@ -1214,7 +1451,7 @@
 
     # used when SolidFire snapshots are being used for CloudStack volume snapshots
     def _check_snapshot_details(self, sf_snapshot_details, cs_snapshot_id, sf_volume_id, sf_snapshot_id, storage_pool_id, sf_volume_size):
-        self._check_list(sf_snapshot_details, 5, TestSnapshots._should_be_five_items_in_list_err_msg)
+        sf_util.check_list(sf_snapshot_details, 5, self, TestSnapshots._should_be_five_items_in_list_err_msg)
 
         self._check_snapshot_detail(sf_snapshot_details, cs_snapshot_id, "takeSnapshot", "true")
         self._check_snapshot_detail(sf_snapshot_details, cs_snapshot_id, "volumeId", sf_volume_id)
@@ -1224,7 +1461,7 @@
 
     # used when SolidFire volumes are being used for CloudStack volume snapshots
     def _check_snapshot_details_2(self, sf_snapshot_details, cs_snapshot_id, sf_volume_id, storage_pool_id, sf_volume_size):
-        self._check_list(sf_snapshot_details, 5, TestSnapshots._should_be_five_items_in_list_err_msg)
+        sf_util.check_list(sf_snapshot_details, 5, self, TestSnapshots._should_be_five_items_in_list_err_msg)
 
         self._check_snapshot_detail(sf_snapshot_details, cs_snapshot_id, "volumeId", sf_volume_id)
         self._check_snapshot_detail(sf_snapshot_details, cs_snapshot_id, "sfStoragePoolId", storage_pool_id)
@@ -1272,10 +1509,10 @@
         sf_snapshot_to_return = None
 
         for sf_snapshot in sf_snapshots:
-            if (sf_snapshot['snapshotID'] > most_recent_id):
+            if (sf_snapshot.snapshot_id > most_recent_id):
                 sf_snapshot_to_return = sf_snapshot
 
-                most_recent_id = sf_snapshot['snapshotID']
+                most_recent_id = sf_snapshot.snapshot_id
 
         if (sf_snapshot_to_return == None):
             raise Exception("Unable to find the most recent SolidFire snapshot in the provided list")
@@ -1302,7 +1539,7 @@
         sf_volume = None
 
         for volume in sf_volumes:
-            if volume['name'] == sf_volume_name:
+            if volume.name == sf_volume_name:
                 sf_volume = volume
 
                 break
@@ -1321,7 +1558,7 @@
         sf_volume = None
 
         for volume in sf_volumes:
-            if volume['volumeID'] == sf_volume_id:
+            if volume.volume_id == sf_volume_id:
                 sf_volume = volume
 
                 break
@@ -1334,19 +1571,6 @@
 
         return sf_volume
 
-    def _get_sf_account_id(self, cs_account_id, primary_storage_id):
-        sf_account_id_request = {'accountid': cs_account_id, 'storageid': primary_storage_id}
-        sf_account_id_result = self.cs_api.getSolidFireAccountId(sf_account_id_request)
-        sf_account_id = sf_account_id_result['apisolidfireaccountid']['solidFireAccountId']
-
-        self.assertEqual(
-            isinstance(sf_account_id, int),
-            True,
-            TestSnapshots._sf_account_id_should_be_non_zero_int_err_msg
-        )
-
-        return sf_account_id
-
     def _get_snapshot_detail(self, sf_snapshot_details_list, key):
         for sf_snapshot_detail_dict in sf_snapshot_details_list:
             if sf_snapshot_detail_dict["snapshotDetailsName"] == key:
@@ -1356,7 +1580,7 @@
 
     def _check_sf_snapshot_does_not_exist(self, sf_snapshots, sf_snapshot_id):
         for sf_snapshot in sf_snapshots:
-            if sf_snapshot["snapshotID"] == sf_snapshot:
+            if sf_snapshot.snapshot_id == sf_snapshot:
                 raise Exception("The following SolidFire snapshot ID should not exist: " + sf_snapshot_id)
 
     def _check_snapshot_details_do_not_exist(self, vol_snap_db_id):
@@ -1378,12 +1602,14 @@
             volume_id=volume_id_for_snapshot
         )
 
-        sf_volume_id = sf_volume['volumeID']
+        self._wait_for_snapshot_state(vol_snap.id, Snapshot.BACKED_UP)
+
+        sf_volume_id = sf_volume.volume_id
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume_id)
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume_id).snapshots
 
-        self._check_list(sf_snapshots, expected_num_snapshots, snapshot_err_msg)
+        sf_util.check_list(sf_snapshots, expected_num_snapshots, self, snapshot_err_msg)
 
         sf_snapshot = self._most_recent_sf_snapshot(sf_snapshots)
 
@@ -1393,7 +1619,33 @@
 
         vol_snap_db_id = self._get_cs_volume_snapshot_db_id(vol_snap)
 
-        self._check_snapshot_details(sf_snapshot_details, vol_snap_db_id, sf_volume_id, sf_snapshot['snapshotID'], primary_storage_db_id, sf_volume['totalSize'])
+        self._check_snapshot_details(sf_snapshot_details, vol_snap_db_id, sf_volume_id, sf_snapshot.snapshot_id, primary_storage_db_id, sf_volume.total_size)
+
+        return vol_snap
+
+    # used when SolidFire snapshots are being used for CloudStack volume snapshots to create a backup on secondary storage
+    def _create_and_test_archive_snapshot(self, volume_id_for_snapshot, sf_volume):
+        sf_volume_id = sf_volume.volume_id
+
+        # Get snapshot information for volume from SolidFire cluster
+        sf_snapshots_orig = self.sfe.list_snapshots(sf_volume_id).snapshots
+
+        vol_snap = Snapshot.create(
+            self.apiClient,
+            volume_id=volume_id_for_snapshot,
+            locationtype="secondary"
+        )
+
+        self._wait_for_snapshot_state(vol_snap.id, Snapshot.BACKED_UP)
+
+        # Get snapshot information for volume from SolidFire cluster
+        sf_snapshots = self.sfe.list_snapshots(sf_volume_id).snapshots
+
+        sf_util.check_list(sf_snapshots, len(sf_snapshots_orig), self, "A new SolidFire snapshot was detected.")
+
+        vol_snap_db_id = self._get_cs_volume_snapshot_db_id(vol_snap)
+
+        self._check_snapshot_details_do_not_exist(vol_snap_db_id)
 
         return vol_snap
 
@@ -1405,10 +1657,12 @@
             volume_id=volume_id_for_snapshot
         )
 
-        # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume_id)
+        self._wait_for_snapshot_state(vol_snap.id, Snapshot.BACKED_UP)
 
-        self._check_list(sf_snapshots, 0, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
+        # Get snapshot information for volume from SolidFire cluster
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume_id).snapshots
+
+        sf_util.check_list(sf_snapshots, 0, self, TestSnapshots._should_be_zero_snapshots_in_list_err_msg)
 
         sf_snapshot_details_request = {'snapshotid': vol_snap.id}
         sf_snapshot_details_response = self.cs_api.getVolumeSnapshotDetails(sf_snapshot_details_request)
@@ -1419,16 +1673,38 @@
         self._check_snapshot_details_2(sf_snapshot_details, vol_snap_db_id, sf_volume_id_for_volume_snapshot, primary_storage_db_id, sf_volume_size)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, expected_num_volumes, volume_err_msg)
+        sf_util.check_list(sf_volumes, expected_num_volumes, self, volume_err_msg)
 
         sf_volume_for_snapshot = self._get_sf_volume_by_id(sf_volumes, sf_volume_id_for_volume_snapshot)
 
-        self._check_list(sf_volume_for_snapshot['volumeAccessGroups'], 0, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
+        sf_util.check_list(sf_volume_for_snapshot.volume_access_groups, 0, self, TestSnapshots._should_be_zero_volume_access_groups_in_list_err_msg)
 
         return vol_snap
 
+    def _wait_for_snapshot_state(self, vol_snap_id, snapshot_state):
+        retry_interval = 10
+        num_tries = 10
+
+        wait_result, return_val = wait_until(retry_interval, num_tries, TestSnapshots._check_snapshot_state, self.apiClient, vol_snap_id, snapshot_state)
+
+        if not wait_result:
+            raise Exception(return_val)
+
+    @staticmethod
+    def _check_snapshot_state(api_client, vol_snap_id, snapshot_state):
+        volume_snapshot = list_snapshots(
+            api_client,
+            id=vol_snap_id,
+            listall=True
+        )[0]
+
+        if str(volume_snapshot.state).lower() == snapshot_state.lower():
+            return True, ""
+
+        return False, "The snapshot is not in the '" + snapshot_state + "' state. State = " + str(volume_snapshot.state)
+
     # used when SolidFire snapshots are being used for CloudStack volume snapshots
     def _delete_and_test_snapshot(self, vol_snap):
         vol_snap_id = vol_snap.id
@@ -1444,12 +1720,16 @@
         vol_snap.delete(self.apiClient)
 
         # Get snapshot information for volume from SolidFire cluster
-        sf_snapshots = self.sf_client.list_snapshots(volume_id=sf_volume_id)
+        sf_snapshots = self.sfe.list_snapshots(volume_id=sf_volume_id).snapshots
 
         self._check_sf_snapshot_does_not_exist(sf_snapshots, sf_snapshot_id)
 
         self._check_snapshot_details_do_not_exist(vol_snap_db_id)
 
+    # used when SolidFire snapshots are being used for CloudStack volume snapshots to create a backup on secondary storage
+    def _delete_and_test_archive_snapshot(self, vol_snap):
+        vol_snap.delete(self.apiClient)
+
     # used when SolidFire volumes are being used for CloudStack volume snapshots
     def _delete_and_test_snapshot_2(self, vol_snap, sf_account_id, expected_num_volumes, volume_err_msg):
         vol_snap_db_id = self._get_cs_volume_snapshot_db_id(vol_snap)
@@ -1459,14 +1739,7 @@
         self._check_snapshot_details_do_not_exist(vol_snap_db_id)
 
         # Get volume information from SolidFire cluster
-        sf_volumes = self.sf_client.list_volumes_for_account(account_id=sf_account_id)
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
-        self._check_list(sf_volumes, expected_num_volumes, volume_err_msg)
-
-    @classmethod
-    def _purge_solidfire_volumes(cls):
-        deleted_volumes = cls.sf_client.list_deleted_volumes()
-
-        for deleted_volume in deleted_volumes:
-            cls.sf_client.purge_deleted_volume(deleted_volume['volumeID'])
+        sf_util.check_list(sf_volumes, expected_num_volumes, self, volume_err_msg)
 
diff --git a/test/integration/plugins/solidfire/TestVMMigrationWithStorage.py b/test/integration/plugins/solidfire/TestVMMigrationWithStorage.py
new file mode 100644
index 0000000..d563e5e
--- /dev/null
+++ b/test/integration/plugins/solidfire/TestVMMigrationWithStorage.py
@@ -0,0 +1,701 @@
+# 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.
+
+import logging
+import random
+import SignedAPICall
+import XenAPI
+
+from solidfire.factory import ElementFactory
+
+from util import sf_util
+
+# All tests inherit from cloudstackTestCase
+from marvin.cloudstackTestCase import cloudstackTestCase
+
+# base - contains all resources as entities and defines create, delete, list operations on them
+from marvin.lib.base import Account, DiskOffering, ServiceOffering, StoragePool, User, VirtualMachine, Volume
+
+# common - commonly used methods for all tests are listed here
+from marvin.lib.common import get_domain, get_template, get_zone, list_clusters, list_hosts, list_volumes
+
+# utils - utility classes for common cleanup, external library wrappers, etc.
+from marvin.lib.utils import cleanup_resources
+
+# Prerequisites:
+#  Only one zone
+#  Only one pod
+#  Two clusters (have system VMs (including the VR) running on local or NFS storage)
+
+
+class TestData():
+    account = "account"
+    capacityBytes = "capacitybytes"
+    capacityIops = "capacityiops"
+    clusterId1 = "clusterId1"
+    clusterId2 = "clusterId2"
+    computeOffering1 = "computeoffering1"
+    computeOffering2 = "computeoffering2"
+    computeOffering3 = "computeoffering3"
+    diskName = "diskname"
+    diskOffering1 = "diskoffering1"
+    diskOffering2 = "diskoffering2"
+    domainId = "domainid"
+    hypervisor = "hypervisor"
+    login = "login"
+    mvip = "mvip"
+    name = "name"
+    password = "password"
+    podId = "podid"
+    port = "port"
+    primaryStorage = "primarystorage"
+    primaryStorage2 = "primarystorage2"
+    provider = "provider"
+    scope = "scope"
+    solidFire = "solidfire"
+    storageTag = "SolidFire_SAN_1"
+    storageTag2 = "SolidFire_Volume_1"
+    tags = "tags"
+    templateCacheName = "centos56-x86-64-xen"
+    testAccount = "testaccount"
+    url = "url"
+    user = "user"
+    username = "username"
+    virtualMachine = "virtualmachine"
+    virtualMachine2 = "virtualmachine2"
+    volume_1 = "volume_1"
+    xenServer = "xenserver"
+    zoneId = "zoneid"
+
+    def __init__(self):
+        self.testdata = {
+            TestData.solidFire: {
+                TestData.mvip: "192.168.139.112",
+                TestData.username: "admin",
+                TestData.password: "admin",
+                TestData.port: 443,
+                TestData.url: "https://192.168.139.112:443"
+            },
+            TestData.xenServer: {
+                TestData.username: "root",
+                TestData.password: "solidfire"
+            },
+            TestData.account: {
+                "email": "test@test.com",
+                "firstname": "John",
+                "lastname": "Doe",
+                "username": "test",
+                "password": "test"
+            },
+            TestData.testAccount: {
+                "email": "test2@test2.com",
+                "firstname": "Jane",
+                "lastname": "Doe",
+                "username": "test2",
+                "password": "test"
+            },
+            TestData.user: {
+                "email": "user@test.com",
+                "firstname": "Jane",
+                "lastname": "Doe",
+                "username": "testuser",
+                "password": "password"
+            },
+            TestData.primaryStorage: {
+                TestData.name: "SolidFire-%d" % random.randint(0, 100),
+                TestData.scope: "ZONE",
+                TestData.url: "MVIP=192.168.139.112;SVIP=10.10.8.112;" +
+                       "clusterAdminUsername=admin;clusterAdminPassword=admin;" +
+                       "clusterDefaultMinIops=10000;clusterDefaultMaxIops=15000;" +
+                       "clusterDefaultBurstIopsPercentOfMaxIops=1.5;",
+                TestData.provider: "SolidFire",
+                TestData.tags: TestData.storageTag,
+                TestData.capacityIops: 4500000,
+                TestData.capacityBytes: 2251799813685248,
+                TestData.hypervisor: "Any",
+                TestData.zoneId: 1
+            },
+            TestData.primaryStorage2: {
+                TestData.name: "SolidFireShared-%d" % random.randint(0, 100),
+                TestData.scope: "CLUSTER",
+                TestData.url: "MVIP=192.168.139.112;SVIP=10.10.8.112;" +
+                        "clusterAdminUsername=admin;clusterAdminPassword=admin;" +
+                        "minIops=5000;maxIops=50000;burstIops=75000",
+                TestData.provider: "SolidFireShared",
+                TestData.tags: TestData.storageTag2,
+                TestData.capacityIops: 5000,
+                TestData.capacityBytes: 1099511627776,
+                TestData.hypervisor: "XenServer",
+                TestData.podId: 1,
+                TestData.zoneId: 1
+            },
+            TestData.virtualMachine: {
+                "name": "TestVM",
+                "displayname": "Test VM"
+            },
+            TestData.computeOffering1: {
+                "name": "SF_CO_1",
+                "displaytext": "SF_CO_1 (Min IOPS = 1,000; Max IOPS = 2,000)",
+                "cpunumber": 1,
+                "cpuspeed": 100,
+                "memory": 128,
+                "storagetype": "shared",
+                "customizediops": False,
+                "miniops": 1000,
+                "maxiops": 2000,
+                "hypervisorsnapshotreserve": 125,
+                TestData.tags: TestData.storageTag,
+            },
+            TestData.computeOffering2: {
+                "name": "SF_CO_2",
+                "displaytext": "SF_CO_2 (Min IOPS = 1,000; Max IOPS = 2,000)",
+                "cpunumber": 1,
+                "cpuspeed": 100,
+                "memory": 128,
+                "storagetype": "shared",
+                "customizediops": False,
+                "miniops": 1000,
+                "maxiops": 2000,
+                "hypervisorsnapshotreserve": 100,
+                TestData.tags: TestData.storageTag,
+            },
+            TestData.computeOffering3: {
+                "name": "SF_CO_3",
+                "displaytext": "SF_CO_3 Desc",
+                "cpunumber": 1,
+                "cpuspeed": 100,
+                "memory": 128,
+                "storagetype": "shared",
+                TestData.tags: TestData.storageTag2,
+            },
+            TestData.diskOffering1: {
+                "name": "SF_DO_1",
+                "displaytext": "SF_DO_1 (Min IOPS = 3,000; Max IOPS = 6,000)",
+                "disksize": 100,
+                "customizediops": False,
+                "miniops": 3000,
+                "maxiops": 6000,
+                "hypervisorsnapshotreserve": 125,
+                TestData.tags: TestData.storageTag,
+                "storagetype": "shared"
+            },
+            TestData.diskOffering2: {
+                "name": "SF_DO_2",
+                "displaytext": "SF_DO_2 (Min IOPS = 3,000; Max IOPS = 6,000)",
+                "disksize": 100,
+                "customizediops": False,
+                "miniops": 3000,
+                "maxiops": 6000,
+                "hypervisorsnapshotreserve": 100,
+                TestData.tags: TestData.storageTag,
+                "storagetype": "shared"
+            },
+            TestData.volume_1: {
+                TestData.diskName: "test-volume",
+            },
+            TestData.zoneId: 1,
+            TestData.clusterId1: 1,
+            TestData.clusterId2: 2,
+            TestData.domainId: 1,
+            TestData.url: "192.168.129.50"
+        }
+
+
+class TestVMMigrationWithStorage(cloudstackTestCase):
+    _sf_account_id_should_be_non_zero_int_err_msg = "The SolidFire account ID should be a non-zero integer."
+
+    @classmethod
+    def setUpClass(cls):
+        # Set up API client
+        testclient = super(TestVMMigrationWithStorage, cls).getClsTestClient()
+
+        cls.apiClient = testclient.getApiClient()
+        cls.configData = testclient.getParsedTestDataConfig()
+        cls.dbConnection = testclient.getDbConnection()
+
+        cls.testdata = TestData().testdata
+
+        xenserver = cls.testdata[TestData.xenServer]
+
+        # Set up xenAPI connection
+        host_ip = "https://" + \
+                  list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId1], name="XenServer-6.5-1")[0].ipaddress
+
+        # Set up XenAPI connection
+        cls.xen_session_1 = XenAPI.Session(host_ip)
+
+        cls.xen_session_1.xenapi.login_with_password(xenserver[TestData.username], xenserver[TestData.password])
+
+        # Set up xenAPI connection
+        host_ip = "https://" + \
+                  list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId2], name="XenServer-6.5-3")[0].ipaddress
+
+        # Set up XenAPI connection
+        cls.xen_session_2 = XenAPI.Session(host_ip)
+
+        cls.xen_session_2.xenapi.login_with_password(xenserver[TestData.username], xenserver[TestData.password])
+
+        # Set up SolidFire connection
+        solidfire = cls.testdata[TestData.solidFire]
+
+        cls.sfe = ElementFactory.create(solidfire[TestData.mvip], solidfire[TestData.username], solidfire[TestData.password])
+
+        # Get Resources from Cloud Infrastructure
+        cls.zone = get_zone(cls.apiClient, zone_id=cls.testdata[TestData.zoneId])
+        cls.cluster_1 = list_clusters(cls.apiClient, id=cls.testdata[TestData.clusterId1])[0]
+        cls.cluster_2 = list_clusters(cls.apiClient, id=cls.testdata[TestData.clusterId2])[0]
+        cls.template = get_template(cls.apiClient, cls.zone.id, cls.configData["ostype"])
+        cls.domain = get_domain(cls.apiClient, cls.testdata[TestData.domainId])
+
+        # Create test account
+        cls.account = Account.create(
+            cls.apiClient,
+            cls.testdata["account"],
+            admin=1
+        )
+
+        # Set up connection to make customized API calls
+        cls.user = User.create(
+            cls.apiClient,
+            cls.testdata["user"],
+            account=cls.account.name,
+            domainid=cls.domain.id
+        )
+
+        url = cls.testdata[TestData.url]
+
+        api_url = "http://" + url + ":8080/client/api"
+        userkeys = User.registerUserKeys(cls.apiClient, cls.user.id)
+
+        cls.cs_api = SignedAPICall.CloudStack(api_url, userkeys.apikey, userkeys.secretkey)
+
+        primarystorage = cls.testdata[TestData.primaryStorage]
+
+        cls.primary_storage = StoragePool.create(
+            cls.apiClient,
+            primarystorage
+        )
+
+        cls.compute_offering_1 = ServiceOffering.create(
+            cls.apiClient,
+            cls.testdata[TestData.computeOffering1]
+        )
+
+        cls.compute_offering_2 = ServiceOffering.create(
+            cls.apiClient,
+            cls.testdata[TestData.computeOffering2]
+        )
+
+        cls.compute_offering_3 = ServiceOffering.create(
+            cls.apiClient,
+            cls.testdata[TestData.computeOffering3]
+        )
+
+        cls.disk_offering_1 = DiskOffering.create(
+            cls.apiClient,
+            cls.testdata[TestData.diskOffering1]
+        )
+
+        cls.disk_offering_2 = DiskOffering.create(
+            cls.apiClient,
+            cls.testdata[TestData.diskOffering2]
+        )
+
+        # Resources that are to be destroyed
+        cls._cleanup = [
+            cls.compute_offering_1,
+            cls.compute_offering_2,
+            cls.compute_offering_3,
+            cls.disk_offering_1,
+            cls.disk_offering_2,
+            cls.user,
+            cls.account
+        ]
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            cleanup_resources(cls.apiClient, cls._cleanup)
+
+            cls.primary_storage.delete(cls.apiClient)
+
+            sf_util.purge_solidfire_volumes(cls.sfe)
+        except Exception as e:
+            logging.debug("Exception in tearDownClass(cls): %s" % e)
+
+    def setUp(self):
+        self.cleanup = []
+
+    def tearDown(self):
+        try:
+            cleanup_resources(self.apiClient, self.cleanup)
+
+            sf_util.purge_solidfire_volumes(self.sfe)
+        except Exception as e:
+            logging.debug("Exception in tearDownClass(self): %s" % e)
+
+    def test_01_storage_migrate_root_and_data_disks(self):
+        src_host, dest_host = self._get_source_and_dest_hosts()
+
+        virtual_machine = VirtualMachine.create(
+            self.apiClient,
+            self.testdata[TestData.virtualMachine],
+            accountid=self.account.name,
+            zoneid=self.zone.id,
+            serviceofferingid=self.compute_offering_1.id,
+            templateid=self.template.id,
+            domainid=self.domain.id,
+            hostid=src_host.id,
+            startvm=True
+        )
+
+        self.cleanup.append(virtual_machine)
+
+        cs_root_volume = list_volumes(self.apiClient, listall=True, virtualmachineid=virtual_machine.id)[0]
+
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self,
+                                                  TestVMMigrationWithStorage._sf_account_id_should_be_non_zero_int_err_msg)
+
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_root_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_root_volume.name, self)
+
+        cs_data_volume = Volume.create(
+            self.apiClient,
+            self.testdata[TestData.volume_1],
+            account=self.account.name,
+            domainid=self.domain.id,
+            zoneid=self.zone.id,
+            diskofferingid=self.disk_offering_1.id
+        )
+
+        self.cleanup.append(cs_data_volume)
+
+        cs_data_volume = virtual_machine.attach_volume(
+            self.apiClient,
+            cs_data_volume
+        )
+
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_data_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_data_volume.name, self)
+
+        sf_root_volume, sf_data_volume = self._migrate_and_verify(virtual_machine, dest_host, cs_root_volume, cs_data_volume, sf_account_id,
+                                                                  sf_root_volume, sf_data_volume, self.xen_session_1, self.xen_session_2)
+
+        src_host, dest_host = dest_host, src_host
+
+        self._migrate_and_verify(virtual_machine, dest_host, cs_root_volume, cs_data_volume, sf_account_id, sf_root_volume, sf_data_volume,
+                                 self.xen_session_2, self.xen_session_1)
+
+    def test_02_storage_migrate_root_and_data_disks(self):
+        primarystorage2 = self.testdata[TestData.primaryStorage2]
+
+        primary_storage_2 = StoragePool.create(
+            self.apiClient,
+            primarystorage2,
+            clusterid=self.cluster_1.id
+        )
+
+        primary_storage_3 = StoragePool.create(
+            self.apiClient,
+            primarystorage2,
+            clusterid=self.cluster_2.id
+        )
+
+        src_host, dest_host = self._get_source_and_dest_hosts()
+
+        virtual_machine = VirtualMachine.create(
+            self.apiClient,
+            self.testdata[TestData.virtualMachine],
+            accountid=self.account.name,
+            zoneid=self.zone.id,
+            serviceofferingid=self.compute_offering_3.id,
+            templateid=self.template.id,
+            domainid=self.domain.id,
+            hostid=src_host.id,
+            startvm=True
+        )
+
+        cs_data_volume = Volume.create(
+            self.apiClient,
+            self.testdata[TestData.volume_1],
+            account=self.account.name,
+            domainid=self.domain.id,
+            zoneid=self.zone.id,
+            diskofferingid=self.disk_offering_1.id
+        )
+
+        self.cleanup = [
+            virtual_machine,
+            cs_data_volume,
+            primary_storage_2,
+            primary_storage_3
+        ]
+
+        cs_data_volume = virtual_machine.attach_volume(
+            self.apiClient,
+            cs_data_volume
+        )
+
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self,
+                                                  TestVMMigrationWithStorage._sf_account_id_should_be_non_zero_int_err_msg)
+
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_data_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_data_volume.name, self)
+
+        sf_data_volume = self._migrate_and_verify_one_disk_only(virtual_machine, dest_host, cs_data_volume, sf_account_id,
+                                                                sf_data_volume, self.xen_session_1, self.xen_session_2)
+
+        src_host, dest_host = dest_host, src_host
+
+        self._migrate_and_verify_one_disk_only(virtual_machine, dest_host, cs_data_volume, sf_account_id, sf_data_volume,
+                                               self.xen_session_2, self.xen_session_1)
+
+    # The hypervisor snapshot reserve isn't large enough for either the compute or disk offering.
+    def test_03_storage_migrate_root_and_data_disks_fail(self):
+        self._execute_migration_failure(self.compute_offering_2.id, self.disk_offering_2.id)
+
+    # The hypervisor snapshot reserve isn't large enough for the compute offering.
+    def test_04_storage_migrate_root_disk_fails(self):
+        self._execute_migration_failure(self.compute_offering_2.id, self.disk_offering_1.id)
+
+    # The hypervisor snapshot reserve isn't large enough for the disk offering.
+    def test_05_storage_migrate_data_disk_fails(self):
+        self._execute_migration_failure(self.compute_offering_1.id, self.disk_offering_2.id)
+
+    def _execute_migration_failure(self, compute_offering_id, disk_offering_id):
+        src_host, dest_host = self._get_source_and_dest_hosts()
+
+        virtual_machine = VirtualMachine.create(
+            self.apiClient,
+            self.testdata[TestData.virtualMachine],
+            accountid=self.account.name,
+            zoneid=self.zone.id,
+            serviceofferingid=compute_offering_id,
+            templateid=self.template.id,
+            domainid=self.domain.id,
+            hostid=src_host.id,
+            startvm=True
+        )
+
+        self.cleanup.append(virtual_machine)
+
+        cs_root_volume = list_volumes(self.apiClient, listall=True, virtualmachineid=virtual_machine.id)[0]
+
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self,
+                                                  TestVMMigrationWithStorage._sf_account_id_should_be_non_zero_int_err_msg)
+
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_root_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_root_volume.name, self)
+
+        cs_data_volume = Volume.create(
+            self.apiClient,
+            self.testdata[TestData.volume_1],
+            account=self.account.name,
+            domainid=self.domain.id,
+            zoneid=self.zone.id,
+            diskofferingid=disk_offering_id
+        )
+
+        self.cleanup.append(cs_data_volume)
+
+        cs_data_volume = virtual_machine.attach_volume(
+            self.apiClient,
+            cs_data_volume
+        )
+
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        sf_data_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_data_volume.name, self)
+
+        self._fail_migrate_and_verify(virtual_machine, dest_host, cs_root_volume, cs_data_volume, sf_account_id,
+                                      sf_root_volume, sf_data_volume, self.xen_session_1, self.xen_session_2)
+
+    def _get_source_and_dest_hosts(self):
+        hosts = list_hosts(self.apiClient)
+
+        for host in hosts:
+            if host.name == "XenServer-6.5-1":
+                src_host = host
+            elif host.name == "XenServer-6.5-3":
+                dest_host = host
+
+        self.assertIsNotNone(src_host, "Could not locate the source host")
+
+        self.assertIsNotNone(dest_host, "Could not locate the destination host")
+
+        return src_host, dest_host
+
+    def _migrate_and_verify(self, virtual_machine, dest_host, cs_root_volume, cs_data_volume, sf_account_id, src_sf_root_volume, src_sf_data_volume,
+                            src_xen_session, dest_xen_session):
+        self._verifyFields(cs_root_volume, src_sf_root_volume)
+        self._verifyFields(cs_data_volume, src_sf_data_volume)
+
+        virtual_machine.migrate_vm_with_volume(self.apiClient, dest_host.id)
+
+        cs_root_volume = self._get_updated_cs_volume(cs_root_volume.id)
+        cs_data_volume = self._get_updated_cs_volume(cs_data_volume.id)
+
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        dest_sf_root_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_root_volume.name, self)
+        dest_sf_data_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_data_volume.name, self)
+
+        self._verifyFields(cs_root_volume, dest_sf_root_volume)
+        self._verifyFields(cs_data_volume, dest_sf_data_volume)
+
+        self._verify_no_basic_volume_details()
+
+        self._verify_different_volume_access_groups(src_sf_root_volume, dest_sf_root_volume)
+        self._verify_different_volume_access_groups(src_sf_data_volume, dest_sf_data_volume)
+
+        self._verify_same_account(src_sf_root_volume, dest_sf_root_volume)
+        self._verify_same_account(src_sf_data_volume, dest_sf_data_volume)
+
+        self._verifySfVolumeIds(src_sf_root_volume, dest_sf_root_volume)
+        self._verifySfVolumeIds(src_sf_data_volume, dest_sf_data_volume)
+
+        self._verify_xenserver_state(src_xen_session, src_sf_root_volume, dest_xen_session, dest_sf_root_volume)
+        self._verify_xenserver_state(src_xen_session, src_sf_data_volume, dest_xen_session, dest_sf_data_volume)
+
+        return dest_sf_root_volume, dest_sf_data_volume
+
+    def _migrate_and_verify_one_disk_only(self, virtual_machine, dest_host, cs_volume, sf_account_id, src_sf_volume, src_xen_session, dest_xen_session):
+        self._verifyFields(cs_volume, src_sf_volume)
+
+        virtual_machine.migrate_vm_with_volume(self.apiClient, dest_host.id)
+
+        cs_volume = self._get_updated_cs_volume(cs_volume.id)
+
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
+
+        dest_sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_volume.name, self)
+
+        self._verifyFields(cs_volume, dest_sf_volume)
+
+        self._verify_no_basic_volume_details()
+
+        self._verify_different_volume_access_groups(src_sf_volume, dest_sf_volume)
+
+        self._verify_same_account(src_sf_volume, dest_sf_volume)
+
+        self._verifySfVolumeIds(src_sf_volume, dest_sf_volume)
+
+        self._verify_xenserver_state(src_xen_session, src_sf_volume, dest_xen_session, dest_sf_volume)
+
+        return dest_sf_volume
+
+    def _fail_migrate_and_verify(self, virtual_machine, dest_host, cs_root_volume, cs_data_volume, sf_account_id, src_sf_root_volume, src_sf_data_volume,
+                                 src_xen_session, dest_xen_session):
+        self._verifyFields(cs_root_volume, src_sf_root_volume)
+        self._verifyFields(cs_data_volume, src_sf_data_volume)
+
+        class MigrationException(Exception):
+            def __init__(self, *args, **kwargs):
+                Exception.__init__(self, *args, **kwargs)
+
+        try:
+            virtual_machine.migrate_vm_with_volume(self.apiClient, dest_host.id)
+
+            raise MigrationException("The migration did not fail (as expected).")
+        except MigrationException:
+            raise
+        except Exception:
+            pass
+
+        self._verify_no_basic_volume_details()
+
+        cs_root_volume_refreshed = self._get_updated_cs_volume(cs_root_volume.id)
+        cs_data_volume_refreshed = self._get_updated_cs_volume(cs_data_volume.id)
+
+        self._verifyFields(cs_root_volume_refreshed, src_sf_root_volume)
+        self._verifyFields(cs_data_volume_refreshed, src_sf_data_volume)
+
+        sf_volumes = sf_util.get_not_active_sf_volumes(self.sfe, sf_account_id)
+
+        dest_sf_root_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_root_volume.name, self)
+        dest_sf_data_volume = sf_util.check_and_get_sf_volume(sf_volumes, cs_data_volume.name, self)
+
+        self._verify_xenserver_state(dest_xen_session, dest_sf_root_volume, src_xen_session, src_sf_root_volume)
+        self._verify_xenserver_state(dest_xen_session, dest_sf_data_volume, src_xen_session, src_sf_data_volume)
+
+    def _verify_different_volume_access_groups(self, src_sf_volume, dest_sf_volume):
+        src_vags = src_sf_volume.volume_access_groups
+
+        sf_util.check_list(src_vags, 1, self, "'src_vags' should be a list with only one element in it.")
+
+        dest_vags = dest_sf_volume.volume_access_groups
+
+        sf_util.check_list(dest_vags, 1, self, "'dest_vags' should be a list with only one element in it.")
+
+        self.assertNotEqual(src_vags[0], dest_vags[0], "The source and destination volumes should not be in the same volume access group.")
+
+    def _get_updated_cs_volume(self, cs_volume_id):
+        return list_volumes(self.apiClient, listall=True, id=cs_volume_id)[0]
+
+    def _verify_same_account(self, src_sf_volume, dest_sf_volume):
+        self.assertEqual(src_sf_volume.account_id, dest_sf_volume.account_id, "The source and destination volumes should be in the same SolidFire account.")
+
+    def _verifySfVolumeIds(self, src_sf_volume, dest_sf_volume):
+        self.assert_(src_sf_volume.volume_id < dest_sf_volume.volume_id,
+                     "The destination SolidFire root volume's ID should be greater than the id of the source one.")
+
+    # verify the name, folder, and iscsi_name
+    def _verifyFields(self, cs_volume, sf_volume):
+        self.assert_(cs_volume.name == sf_volume.name, "The CloudStack volume name does not match the SolidFire volume name.")
+
+        cs_volume_folder = self._get_cs_volume_folder(cs_volume.id)
+
+        self.assert_(int(cs_volume_folder) == sf_volume.volume_id, "The CloudStack folder name does not match the SolidFire volume ID.")
+
+        cs_volume_iscsi_name = self._get_cs_volume_iscsi_name(cs_volume.id)
+
+        self.assert_(cs_volume_iscsi_name == sf_util.format_iqn(sf_volume.iqn), "The CloudStack volume iscsi_name does not match the SolidFire volume IQN.")
+
+    def _get_cs_volume_property(self, cs_volume_id, volume_property):
+        sql_query = "Select " + volume_property + " From volumes Where uuid = '" + cs_volume_id + "'"
+
+        # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
+        sql_result = self.dbConnection.execute(sql_query)
+
+        return sql_result[0][0]
+
+    def _get_cs_volume_folder(self, cs_volume_id):
+        return self._get_cs_volume_property(cs_volume_id, "folder")
+
+    def _get_cs_volume_iscsi_name(self, cs_volume_id):
+        return self._get_cs_volume_property(cs_volume_id, "iscsi_name")
+
+    def _verify_no_basic_volume_details(self):
+        sql_query = "Select id From volume_details Where name like 'basic_'"
+
+        # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
+        sql_result = self.dbConnection.execute(sql_query)
+
+        sf_util.check_list(sql_result, 0, self, "The cloud.volume_details table should not have any name fields that start with 'basic_'.")
+
+    def _verify_xenserver_state(self, xen_session_1, sf_volume_1, xen_session_2, sf_volume_2):
+        sr_name = sf_util.format_iqn(sf_volume_1.iqn)
+
+        sf_util.check_xen_sr(sr_name, xen_session_1, self, False)
+
+        sr_name = sf_util.format_iqn(sf_volume_2.iqn)
+
+        sf_util.check_xen_sr(sr_name, xen_session_2, self)
diff --git a/test/integration/plugins/solidfire/TestVMSnapshots.py b/test/integration/plugins/solidfire/TestVMSnapshots.py
index 8fba8f8..880e6fd 100644
--- a/test/integration/plugins/solidfire/TestVMSnapshots.py
+++ b/test/integration/plugins/solidfire/TestVMSnapshots.py
@@ -20,6 +20,10 @@
 import SignedAPICall
 import XenAPI
 
+from solidfire.factory import ElementFactory
+
+from util import sf_util
+
 # All tests inherit from cloudstackTestCase
 from marvin.cloudstackTestCase import cloudstackTestCase
 
@@ -34,10 +38,10 @@
 # utils - utility classes for common cleanup, external library wrappers, etc.
 from marvin.lib.utils import cleanup_resources
 
-from solidfire import solidfire_element_api as sf_api
-
-# on April 15, 2016: Ran 2 tests in 800.299s with three hosts
-# on May 2, 2016: Ran 2 tests in 789.729s with two hosts
+# Prerequisites:
+#  Only one zone
+#  Only one pod
+#  Only one cluster
 
 
 class TestData:
@@ -59,7 +63,6 @@
     solidFire = "solidfire"
     storageTag = "SolidFire_SAN_1"
     tags = "tags"
-    templateName = "templatename"
     url = "url"
     user = "user"
     username = "username"
@@ -72,7 +75,7 @@
         self.testdata = {
             TestData.solidFire: {
                 TestData.mvip: "192.168.139.112",
-                TestData.login: "admin",
+                TestData.username: "admin",
                 TestData.password: "admin",
                 TestData.port: 443,
                 TestData.url: "https://192.168.139.112:443"
@@ -136,78 +139,9 @@
                 TestData.tags: TestData.storageTag,
                 "storagetype": "shared"
             },
-            "testdiskofferings": {
-                "customiopsdo": {
-                    "name": "SF_Custom_IOPS_DO",
-                    "displaytext": "Customized IOPS DO (Size = 128 GB; Min IOPS = 500; Max IOPS = 1000)",
-                    "disksize": 128,
-                    "customizediops": True,
-                    "miniops": 500,
-                    "maxiops": 1000,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "customsizedo": {
-                    "name": "SF_Custom_Size_DO",
-                    "displaytext": "Customized IOPS DO (Min IOPS = 500; Max IOPS = 1000)",
-                    "disksize": 175,
-                    "customizediops": False,
-                    "miniops": 500,
-                    "maxiops": 1000,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "customsizeandiopsdo": {
-                    "name": "SF_Custom_Size_IOPS_DO",
-                    "displaytext": "Customized Size and IOPS DO",
-                    "disksize": 200,
-                    "customizediops": True,
-                    "miniops": 400,
-                    "maxiops": 800,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newiopsdo": {
-                    "name": "SF_New_IOPS_DO",
-                    "displaytext": "New IOPS (Size = 128 GB; Min IOPS = 350, Max IOPS = 700)",
-                    "disksize": 128,
-                    "miniops": 350,
-                    "maxiops": 700,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newsizedo": {
-                    "name": "SF_New_Size_DO",
-                    "displaytext": "New Size: 175",
-                    "disksize": 175,
-                    "miniops": 400,
-                    "maxiops": 800,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newsizeandiopsdo": {
-                    "name": "SF_New_Size_IOPS_DO",
-                    "displaytext": "New Size and IOPS",
-                    "disksize": 200,
-                    "miniops": 200,
-                    "maxiops": 400,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                }
-            },
             TestData.volume_1: {
                 "diskname": "testvolume",
             },
-            "volume2": {
-                "diskname": "testvolume2",
-            },
-            TestData.templateName: "CentOS 5.6(64-bit) no GUI (XenServer)",
             TestData.zoneId: 1,
             TestData.clusterId: 1,
             TestData.domainId: 1,
@@ -233,7 +167,9 @@
     def setUpClass(cls):
         # Set up API client
         testclient = super(TestVMSnapshots, cls).getClsTestClient()
+
         cls.apiClient = testclient.getApiClient()
+        cls.configData = testclient.getParsedTestDataConfig()
 
         cls.testdata = TestData().testdata
 
@@ -248,11 +184,13 @@
         cls.xen_session.xenapi.login_with_password(xenserver[TestData.username], xenserver[TestData.password])
 
         # Set up SolidFire connection
-        cls.sf_client = sf_api.SolidFireAPI(endpoint_dict=cls.testdata[TestData.solidFire])
+        solidfire = cls.testdata[TestData.solidFire]
+
+        cls.sfe = ElementFactory.create(solidfire[TestData.mvip], solidfire[TestData.username], solidfire[TestData.password])
 
         # Get Resources from Cloud Infrastructure
         cls.zone = get_zone(cls.apiClient, zone_id=cls.testdata[TestData.zoneId])
-        template = get_template(cls.apiClient, cls.zone.id, template_name=cls.testdata[TestData.templateName])
+        template = get_template(cls.apiClient, cls.zone.id, cls.configData["ostype"])
         cls.domain = get_domain(cls.apiClient, cls.testdata[TestData.domainId])
 
         # Create test account
@@ -328,7 +266,7 @@
 
             cls.primary_storage.delete(cls.apiClient)
 
-            cls._purge_solidfire_volumes()
+            sf_util.purge_solidfire_volumes(cls.sfe)
         except Exception as e:
             logging.debug("Exception in tearDownClass(cls): %s" % e)
 
@@ -346,7 +284,7 @@
 
         root_volumes = list_volumes(self.apiClient, type="ROOT", listAll="true")
 
-        self._check_list(root_volumes, 1, TestVMSnapshots._should_only_be_one_root_volume_err_msg)
+        sf_util.check_list(root_volumes, 1, self, TestVMSnapshots._should_only_be_one_root_volume_err_msg)
 
         root_volume = root_volumes[0]
 
@@ -355,7 +293,7 @@
         sf_iscsi_name_result = self.cs_api.getVolumeiScsiName(volume_id)
         sf_iscsi_name = sf_iscsi_name_result['apivolumeiscsiname']['volumeiScsiName']
 
-        self._check_iscsi_name(sf_iscsi_name)
+        sf_util.check_iscsi_name(sf_iscsi_name, self)
 
         root_volume_path_1 = self._get_path(volume_id)
 
@@ -388,7 +326,7 @@
 
         xen_vdis = self.xen_session.xenapi.SR.get_VDIs(xen_sr)
 
-        self._check_list(xen_vdis, 3, TestVMSnapshots._should_be_three_vdis_err_msg)
+        sf_util.check_list(xen_vdis, 3, self, TestVMSnapshots._should_be_three_vdis_err_msg)
 
         vdis_after_create = self._get_vdis(xen_vdis)
 
@@ -411,7 +349,7 @@
 
         list_vm_snapshots = VmSnapshot.list(self.apiClient, listAll="true")
 
-        self._check_list(list_vm_snapshots, 1, TestVMSnapshots._should_only_be_one_vm_snapshot_err_msg)
+        sf_util.check_list(list_vm_snapshots, 1, self, TestVMSnapshots._should_only_be_one_vm_snapshot_err_msg)
 
         root_volume_path_3 = self._get_path(volume_id)
 
@@ -423,7 +361,7 @@
 
         xen_vdis = self.xen_session.xenapi.SR.get_VDIs(xen_sr)
 
-        self._check_list(xen_vdis, 3, TestVMSnapshots._should_be_three_vdis_err_msg)
+        sf_util.check_list(xen_vdis, 3, self, TestVMSnapshots._should_be_three_vdis_err_msg)
 
         vdis_after_revert = self._get_vdis(xen_vdis)
 
@@ -470,7 +408,7 @@
 
         xen_vdis = self.xen_session.xenapi.SR.get_VDIs(xen_sr)
 
-        self._check_list(xen_vdis, 1, TestVMSnapshots._should_only_be_one_vdi_err_msg)
+        sf_util.check_list(xen_vdis, 1, self, TestVMSnapshots._should_only_be_one_vdi_err_msg)
 
         vdis_after_delete = self._get_vdis(xen_vdis, True)
 
@@ -505,7 +443,7 @@
 
         root_volumes = list_volumes(self.apiClient, type="ROOT", listAll="true")
 
-        self._check_list(root_volumes, 1, TestVMSnapshots._should_only_be_one_root_volume_err_msg)
+        sf_util.check_list(root_volumes, 1, self, TestVMSnapshots._should_only_be_one_root_volume_err_msg)
 
         root_volume = root_volumes[0]
 
@@ -514,13 +452,13 @@
         sf_iscsi_name_result = self.cs_api.getVolumeiScsiName(root_volume_id)
         sf_iscsi_root_volume_name = sf_iscsi_name_result['apivolumeiscsiname']['volumeiScsiName']
 
-        self._check_iscsi_name(sf_iscsi_root_volume_name)
+        sf_util.check_iscsi_name(sf_iscsi_root_volume_name, self)
 
         root_volume_path_1 = self._get_path(root_volume_id)
 
         data_volumes = list_volumes(self.apiClient, type="DATADISK", listAll="true")
 
-        self._check_list(data_volumes, 1, "There should only be one data volume.")
+        sf_util.check_list(data_volumes, 1, self, "There should only be one data volume.")
 
         data_volume = data_volumes[0]
 
@@ -529,7 +467,7 @@
         sf_iscsi_name_result = self.cs_api.getVolumeiScsiName(data_volume_id)
         sf_iscsi_data_volume_name = sf_iscsi_name_result['apivolumeiscsiname']['volumeiScsiName']
 
-        self._check_iscsi_name(sf_iscsi_data_volume_name)
+        sf_util.check_iscsi_name(sf_iscsi_data_volume_name, self)
 
         data_volume_path_1 = self._get_path(data_volume_id)
 
@@ -570,7 +508,7 @@
 
         root_volume_xen_vdis = self.xen_session.xenapi.SR.get_VDIs(root_volume_xen_sr)
 
-        self._check_list(root_volume_xen_vdis, 3, TestVMSnapshots._should_be_three_vdis_err_msg)
+        sf_util.check_list(root_volume_xen_vdis, 3, self, TestVMSnapshots._should_be_three_vdis_err_msg)
 
         root_volume_vdis_after_create = self._get_vdis(root_volume_xen_vdis)
 
@@ -586,7 +524,7 @@
 
         data_volume_xen_vdis = self.xen_session.xenapi.SR.get_VDIs(data_volume_xen_sr)
 
-        self._check_list(data_volume_xen_vdis, 3, TestVMSnapshots._should_be_three_vdis_err_msg)
+        sf_util.check_list(data_volume_xen_vdis, 3, self, TestVMSnapshots._should_be_three_vdis_err_msg)
 
         data_volume_vdis_after_create = self._get_vdis(data_volume_xen_vdis)
 
@@ -609,7 +547,7 @@
 
         list_vm_snapshots = VmSnapshot.list(self.apiClient, listAll="true")
 
-        self._check_list(list_vm_snapshots, 1, TestVMSnapshots._should_only_be_one_vm_snapshot_err_msg)
+        sf_util.check_list(list_vm_snapshots, 1, self, TestVMSnapshots._should_only_be_one_vm_snapshot_err_msg)
 
         root_volume_path_3 = self._get_path(root_volume_id)
 
@@ -621,7 +559,7 @@
 
         root_volume_xen_vdis = self.xen_session.xenapi.SR.get_VDIs(root_volume_xen_sr)
 
-        self._check_list(root_volume_xen_vdis, 3, TestVMSnapshots._should_be_three_vdis_err_msg)
+        sf_util.check_list(root_volume_xen_vdis, 3, self, TestVMSnapshots._should_be_three_vdis_err_msg)
 
         root_volume_vdis_after_revert = self._get_vdis(root_volume_xen_vdis)
 
@@ -653,7 +591,7 @@
 
         data_volume_xen_vdis = self.xen_session.xenapi.SR.get_VDIs(data_volume_xen_sr)
 
-        self._check_list(data_volume_xen_vdis, 3, TestVMSnapshots._should_be_three_vdis_err_msg)
+        sf_util.check_list(data_volume_xen_vdis, 3, self, TestVMSnapshots._should_be_three_vdis_err_msg)
 
         data_volume_vdis_after_revert = self._get_vdis(data_volume_xen_vdis)
 
@@ -700,7 +638,7 @@
 
         root_volume_xen_vdis = self.xen_session.xenapi.SR.get_VDIs(root_volume_xen_sr)
 
-        self._check_list(root_volume_xen_vdis, 1, TestVMSnapshots._should_only_be_one_vdi_err_msg)
+        sf_util.check_list(root_volume_xen_vdis, 1, self, TestVMSnapshots._should_only_be_one_vdi_err_msg)
 
         root_volume_vdis_after_delete = self._get_vdis(root_volume_xen_vdis, True)
 
@@ -720,7 +658,7 @@
 
         data_volume_xen_vdis = self.xen_session.xenapi.SR.get_VDIs(data_volume_xen_sr)
 
-        self._check_list(data_volume_xen_vdis, 1, TestVMSnapshots._should_only_be_one_vdi_err_msg)
+        sf_util.check_list(data_volume_xen_vdis, 1, self, TestVMSnapshots._should_only_be_one_vdi_err_msg)
 
         data_volume_vdis_after_delete = self._get_vdis(data_volume_xen_vdis, True)
 
@@ -745,7 +683,7 @@
         return path_result['apipathforvolume']['path']
 
     def _verify_vm_snapshot(self, list_vm_snapshots, vm_snapshot):
-        self._check_list(list_vm_snapshots, 1, TestVMSnapshots._should_only_be_one_vm_snapshot_err_msg)
+        sf_util.check_list(list_vm_snapshots, 1, self, TestVMSnapshots._should_only_be_one_vm_snapshot_err_msg)
 
         vm_snapshot_from_list = list_vm_snapshots[0]
 
@@ -767,26 +705,6 @@
             "The snapshot is not in the 'Ready' state."
         )
 
-    def _check_iscsi_name(self, sf_iscsi_name):
-        self.assertEqual(
-            sf_iscsi_name[0],
-            "/",
-            "The iSCSI name needs to start with a forward slash."
-        )
-
-    def _check_list(self, in_list, expected_size_of_list, err_msg):
-        self.assertEqual(
-            isinstance(in_list, list),
-            True,
-            "'in_list' is not a list."
-        )
-
-        self.assertEqual(
-            len(in_list),
-            expected_size_of_list,
-            err_msg
-        )
-
     def _get_vdis(self, xen_vdis, only_active_expected=False):
         expected_number_of_vdis = 1 if only_active_expected else 3
 
@@ -852,11 +770,3 @@
         vdis.base_vdi = base_vdi
 
         return vdis
-
-    @classmethod
-    def _purge_solidfire_volumes(cls):
-        deleted_volumes = cls.sf_client.list_deleted_volumes()
-
-        for deleted_volume in deleted_volumes:
-            cls.sf_client.purge_deleted_volume(deleted_volume['volumeID'])
-
diff --git a/test/integration/plugins/solidfire/TestVolumes.py b/test/integration/plugins/solidfire/TestVolumes.py
index ed7d42a..add5ed1 100644
--- a/test/integration/plugins/solidfire/TestVolumes.py
+++ b/test/integration/plugins/solidfire/TestVolumes.py
@@ -18,13 +18,16 @@
 import logging
 import random
 import SignedAPICall
+import time
 import XenAPI
 
+from solidfire.factory import ElementFactory
+
+from util import sf_util
+
 # All tests inherit from cloudstackTestCase
 from marvin.cloudstackTestCase import cloudstackTestCase
 
-from nose.plugins.attrib import attr
-
 # Import Integration Libraries
 
 # base - contains all resources as entities and defines create, delete, list operations on them
@@ -32,21 +35,24 @@
 
 # common - commonly used methods for all tests are listed here
 from marvin.lib.common import get_domain, get_template, get_zone, list_clusters, list_hosts, list_virtual_machines, \
-    list_volumes
+    list_volumes, list_hosts
 
 # utils - utility classes for common cleanup, external library wrappers, etc.
 from marvin.lib.utils import cleanup_resources
 
-from solidfire import solidfire_element_api as sf_api
-
-# on April 14, 2016: Ran 11 tests in 2494.043s with three hosts (resign = True)
-# on April 14, 2016: Ran 11 tests in 2033.516s with three hosts (resign = False)
-
-# on May 2, 2016: Ran 11 tests in 2352.461s with two hosts (resign = True)
-# on May 2, 2016: Ran 11 tests in 1982.066s with two hosts (resign = False)
+# Prerequisites:
+#  Only one zone
+#  Only one pod
+#  Only one cluster
+#
+# Running the tests:
+#  Change the "hypervisor_type" variable to control which hypervisor type to test.
+#  If using XenServer, verify the "xen_server_hostname" variable is correct.
+#  If using XenServer, change the "supports_cloning" variable to True or False as desired.
 
 
 class TestData():
+    # constants
     account = "account"
     capacityBytes = "capacitybytes"
     capacityIops = "capacityiops"
@@ -56,6 +62,7 @@
     diskOffering = "diskoffering"
     domainId = "domainId"
     hypervisor = "hypervisor"
+    kvm = "kvm"
     login = "login"
     mvip = "mvip"
     password = "password"
@@ -66,8 +73,8 @@
     solidFire = "solidfire"
     storageTag = "SolidFire_SAN_1"
     tags = "tags"
-    templateCacheName = "centos56-x86-64-xen"
-    templateName = "templatename"
+    templateCacheNameKvm = "centos55-x86-64"
+    templateCacheNameXenServer = "centos56-x86-64-xen"
     testAccount = "testaccount"
     url = "url"
     user = "user"
@@ -79,15 +86,23 @@
     xenServer = "xenserver"
     zoneId = "zoneId"
 
+    # modify to control which hypervisor type to test
+    hypervisor_type = xenServer
+    xen_server_hostname = "XenServer-6.5-1"
+
     def __init__(self):
         self.testdata = {
             TestData.solidFire: {
                 TestData.mvip: "192.168.139.112",
-                TestData.login: "admin",
+                TestData.username: "admin",
                 TestData.password: "admin",
                 TestData.port: 443,
                 TestData.url: "https://192.168.139.112:443"
             },
+            TestData.kvm: {
+                TestData.username: "root",
+                TestData.password: "solidfire"
+            },
             TestData.xenServer: {
                 TestData.username: "root",
                 TestData.password: "solidfire"
@@ -145,7 +160,7 @@
                 "miniops": "10000",
                 "maxiops": "15000",
                 "hypervisorsnapshotreserve": 200,
-                "tags": "SolidFire_SAN_1"
+                TestData.tags: TestData.storageTag
             },
             TestData.diskOffering: {
                 "name": "SF_DO_1",
@@ -158,78 +173,12 @@
                 TestData.tags: TestData.storageTag,
                 "storagetype": "shared"
             },
-            "testdiskofferings": {
-                "customiopsdo": {
-                    "name": "SF_Custom_Iops_DO",
-                    "displaytext": "Customized Iops DO",
-                    "disksize": 128,
-                    "customizediops": True,
-                    "miniops": 500,
-                    "maxiops": 1000,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "customsizedo": {
-                    "name": "SF_Custom_Size_DO",
-                    "displaytext": "Customized Size DO",
-                    "disksize": 175,
-                    "customizediops": False,
-                    "miniops": 500,
-                    "maxiops": 1000,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "customsizeandiopsdo": {
-                    "name": "SF_Custom_Iops_Size_DO",
-                    "displaytext": "Customized Size and Iops DO",
-                    "disksize": 200,
-                    "customizediops": True,
-                    "miniops": 400,
-                    "maxiops": 800,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newiopsdo": {
-                    "name": "SF_New_Iops_DO",
-                    "displaytext": "New Iops (min=350, max = 700)",
-                    "disksize": 128,
-                    "miniops": 350,
-                    "maxiops": 700,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newsizedo": {
-                    "name": "SF_New_Size_DO",
-                    "displaytext": "New Size: 175",
-                    "disksize": 175,
-                    "miniops": 400,
-                    "maxiops": 800,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                },
-                "newsizeandiopsdo": {
-                    "name": "SF_New_Size_Iops_DO",
-                    "displaytext": "New Size and Iops",
-                    "disksize": 200,
-                    "miniops": 200,
-                    "maxiops": 400,
-                    "hypervisorsnapshotreserve": 200,
-                    TestData.tags: TestData.storageTag,
-                    "storagetype": "shared"
-                }
-            },
             TestData.volume_1: {
                 TestData.diskName: "test-volume",
             },
             TestData.volume_2: {
                 TestData.diskName: "test-volume-2",
             },
-            TestData.templateName: "CentOS 5.6(64-bit) no GUI (XenServer)",
             TestData.zoneId: 1,
             TestData.clusterId: 1,
             TestData.domainId: 1,
@@ -240,48 +189,39 @@
 class TestVolumes(cloudstackTestCase):
     _should_only_be_one_vm_in_list_err_msg = "There should only be one VM in this list."
     _should_only_be_one_volume_in_list_err_msg = "There should only be one volume in this list."
+    _should_only_be_one_host_in_list_err_msg = "There should only be one host in this list."
     _sf_account_id_should_be_non_zero_int_err_msg = "The SolidFire account ID should be a non-zero integer."
-    _vag_id_should_be_non_zero_int_err_msg = "The SolidFire VAG ID should be a non-zero integer."
     _volume_size_should_be_non_zero_int_err_msg = "The SolidFire volume size should be a non-zero integer."
     _volume_vm_id_and_vm_id_do_not_match_err_msg = "The volume's VM ID and the VM's ID do not match."
     _vm_not_in_running_state_err_msg = "The VM is not in the 'Running' state."
     _vm_not_in_stopped_state_err_msg = "The VM is not in the 'Stopped' state."
-    _sr_not_shared_err_msg = "The SR is not shared."
     _volume_response_should_not_be_zero_err_msg = "The length of the response for the SolidFire-volume query should not be zero."
-    _list_should_be_empty = "The list should be empty."
     _volume_should_not_be_in_a_vag = "The volume should not be in a volume access group."
 
     @classmethod
     def setUpClass(cls):
         # Set up API client
         testclient = super(TestVolumes, cls).getClsTestClient()
+
         cls.apiClient = testclient.getApiClient()
+        cls.configData = testclient.getParsedTestDataConfig()
         cls.dbConnection = testclient.getDbConnection()
 
         cls.testdata = TestData().testdata
 
-        cls.supports_resign = True
+        cls._handle_supports_cloning()
 
-        cls._set_supports_resign()
-
-        # Set up xenAPI connection
-        host_ip = "https://" + \
-                  list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId], name="XenServer-6.5-1")[0].ipaddress
-
-        # Set up XenAPI connection
-        cls.xen_session = XenAPI.Session(host_ip)
-
-        xenserver = cls.testdata[TestData.xenServer]
-
-        cls.xen_session.xenapi.login_with_password(xenserver[TestData.username], xenserver[TestData.password])
+        cls._connect_to_hypervisor()
 
         # Set up SolidFire connection
-        cls.sf_client = sf_api.SolidFireAPI(endpoint_dict=cls.testdata[TestData.solidFire])
+        solidfire = cls.testdata[TestData.solidFire]
+
+        cls.sfe = ElementFactory.create(solidfire[TestData.mvip], solidfire[TestData.username], solidfire[TestData.password])
 
         # Get Resources from Cloud Infrastructure
         cls.zone = get_zone(cls.apiClient, zone_id=cls.testdata[TestData.zoneId])
         cls.cluster = list_clusters(cls.apiClient)[0]
-        cls.template = get_template(cls.apiClient, cls.zone.id, template_name=cls.testdata[TestData.templateName])
+        cls.template = get_template(cls.apiClient, cls.zone.id, cls.configData["ostype"])
         cls.domain = get_domain(cls.apiClient, cls.testdata[TestData.domainId])
 
         # Create test account
@@ -339,9 +279,11 @@
             serviceofferingid=cls.compute_offering.id,
             templateid=cls.template.id,
             domainid=cls.domain.id,
-            startvm=True
+            startvm=False
         )
 
+        TestVolumes._start_vm(cls.virtual_machine)
+
         cls.volume = Volume.create(
             cls.apiClient,
             cls.testdata[TestData.volume_1],
@@ -368,7 +310,7 @@
 
             cls.primary_storage.delete(cls.apiClient)
 
-            cls._purge_solidfire_volumes()
+            sf_util.purge_solidfire_volumes(cls.sfe)
         except Exception as e:
             logging.debug("Exception in tearDownClass(cls): %s" % e)
 
@@ -382,26 +324,25 @@
 
         cleanup_resources(self.apiClient, self.cleanup)
 
-    @attr(hypervisor='XenServer')
     def test_00_check_template_cache(self):
-        if self.supports_resign == False:
+        if self._supports_cloning == False:
             return
 
-        sf_volumes = self._get_sf_volumes()
+        sf_volumes = self._get_active_sf_volumes()
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, TestData.templateCacheName)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, self._get_template_cache_name(), self)
 
         self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
+            len(sf_volume.volume_access_groups),
             0,
             "The volume should not be in a VAG."
         )
 
-        sf_account_id = sf_volume["accountID"]
+        sf_account_id = sf_volume.account_id
 
-        sf_account = self.sf_client.get_account_by_id(sf_account_id)["account"]
+        sf_account = self.sfe.get_account_by_id(sf_account_id).account
 
-        sf_account_name = sf_account["username"]
+        sf_account_name = sf_account.username
 
         self.assertEqual(
             sf_account_name.endswith("_1"),
@@ -409,7 +350,6 @@
             "The template cache volume's account does not end with '_1'."
         )
 
-    @attr(hypervisor='XenServer')
     def test_01_attach_new_volume_to_stopped_VM(self):
         '''Attach a volume to a stopped virtual machine, then start VM'''
 
@@ -435,7 +375,7 @@
 
         newvolume = self._check_and_get_cs_volume(new_volume.id, self.testdata[TestData.volume_2][TestData.diskName])
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
         vm = self._get_vm(self.virtual_machine.id)
 
@@ -451,23 +391,25 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_volume_size = self._get_volume_size_with_hsr(new_volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, new_volume, self)
 
-        sf_vag_id = self._get_vag_id()
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_iscsi_name = self._get_iqn(new_volume)
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, new_volume, self)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, newvolume.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, newvolume, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, newvolume.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, newvolume, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
+
+        self._check_host_side(sf_iscsi_name, vm.hostid)
 
         # Detach volume
         new_volume = self.virtual_machine.detach_volume(
@@ -475,15 +417,14 @@
             new_volume
         )
 
-    @attr(hypervisor='XenServer')
     def test_02_attach_detach_attach_volume(self):
         '''Attach, detach, and attach volume to a running VM'''
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_vag_id = self._get_vag_id()
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
         self._check_and_get_cs_volume(self.volume.id, self.testdata[TestData.volume_1][TestData.diskName])
 
@@ -516,19 +457,21 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
+
+        self._check_host_side(sf_iscsi_name, vm.hostid)
 
         #########################################
         #########################################
@@ -559,17 +502,17 @@
             str(vm.state)
         )
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
         self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
+            len(sf_volume.volume_access_groups),
             0,
             "The volume should not be in a VAG."
         )
 
-        self._check_xen_sr(sf_iscsi_name, False)
+        self._check_host_side(sf_iscsi_name, vm.hostid, False)
 
         #######################################
         #######################################
@@ -600,23 +543,22 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        self._check_host_side(sf_iscsi_name, vm.hostid)
 
-    @attr(hypervisor='XenServer')
     def test_03_attached_volume_reboot_VM(self):
         '''Attach volume to running VM, then reboot.'''
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_vag_id = self._get_vag_id()
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
         self._check_and_get_cs_volume(self.volume.id, self.testdata[TestData.volume_1][TestData.diskName])
 
@@ -649,54 +591,57 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
+
+        self._check_host_side(sf_iscsi_name, vm.hostid)
 
         #######################################
         #######################################
         # STEP 2: Reboot VM with attached vol #
         #######################################
         #######################################
-        self.virtual_machine.reboot(self.apiClient)
+        TestVolumes._reboot_vm(self.virtual_machine)
 
         vol = self._check_and_get_cs_volume(self.volume.id, self.testdata[TestData.volume_1][TestData.diskName])
 
         vm = self._get_vm(self.virtual_machine.id)
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
 
-    @attr(hypervisor='XenServer')
+        self._check_host_side(sf_iscsi_name, vm.hostid)
+
     def test_04_detach_volume_reboot(self):
         '''Detach volume from a running VM, then reboot.'''
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_vag_id = self._get_vag_id()
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
         self._check_and_get_cs_volume(self.volume.id, self.testdata[TestData.volume_1][TestData.diskName])
 
@@ -729,19 +674,21 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
+
+        self._check_host_side(sf_iscsi_name, vm.hostid)
 
         #########################################
         #########################################
@@ -772,17 +719,17 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
         self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
+            len(sf_volume.volume_access_groups),
             0,
             TestVolumes._volume_should_not_be_in_a_vag
         )
 
-        self._check_xen_sr(sf_iscsi_name, False)
+        self._check_host_side(sf_iscsi_name, vm.hostid, False)
 
         #######################################
         #######################################
@@ -796,27 +743,26 @@
 
         vm = self._get_vm(self.virtual_machine.id)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
         self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
+            len(sf_volume.volume_access_groups),
             0,
             TestVolumes._volume_should_not_be_in_a_vag
         )
 
-        self._check_xen_sr(sf_iscsi_name, False)
+        self._check_host_side(sf_iscsi_name, vm.hostid, False)
 
-    @attr(hypervisor='XenServer')
     def test_05_detach_vol_stopped_VM_start(self):
         '''Detach volume from a stopped VM, then start.'''
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_vag_id = self._get_vag_id()
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
         self._check_and_get_cs_volume(self.volume.id, self.testdata[TestData.volume_1][TestData.diskName])
 
@@ -849,19 +795,23 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
+
+        self._check_host_side(sf_iscsi_name, vm.hostid)
+
+        hostid = vm.hostid
 
         #########################################
         #########################################
@@ -894,17 +844,17 @@
             TestVolumes._vm_not_in_stopped_state_err_msg
         )
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
         self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
+            len(sf_volume.volume_access_groups),
             0,
             TestVolumes._volume_should_not_be_in_a_vag
         )
 
-        self._check_xen_sr(sf_iscsi_name, False)
+        self._check_host_side(sf_iscsi_name, hostid, False)
 
         #######################################
         #######################################
@@ -912,33 +862,32 @@
         #######################################
         #######################################
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
         vol = self._check_and_get_cs_volume(self.volume.id, self.testdata[TestData.volume_1][TestData.diskName])
 
         vm = self._get_vm(self.virtual_machine.id)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
         self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
+            len(sf_volume.volume_access_groups),
             0,
             TestVolumes._volume_should_not_be_in_a_vag
         )
 
-        self._check_xen_sr(sf_iscsi_name, False)
+        self._check_host_side(sf_iscsi_name, vm.hostid, False)
 
-    @attr(hypervisor='XenServer')
     def test_06_attach_volume_to_stopped_VM(self):
         '''Attach a volume to a stopped virtual machine, then start VM'''
 
         self.virtual_machine.stop(self.apiClient)
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_vag_id = self._get_vag_id()
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
         self._check_and_get_cs_volume(self.volume.id, self.testdata[TestData.volume_1][TestData.diskName])
 
@@ -971,21 +920,26 @@
             TestVolumes._vm_not_in_stopped_state_err_msg
         )
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
 
-        self.virtual_machine.start(self.apiClient)
+        if TestData.hypervisor_type == TestData.kvm:
+            self._check_host_side(sf_iscsi_name, None, False)
+        elif TestData.hypervisor_type == TestData.xenServer:
+            self._check_host_side(sf_iscsi_name)
+
+        TestVolumes._start_vm(self.virtual_machine)
 
         vol = self._check_and_get_cs_volume(self.volume.id, self.testdata[TestData.volume_1][TestData.diskName])
 
@@ -1003,21 +957,22 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
 
-    @attr(hypervisor='XenServer')
+        self._check_host_side(sf_iscsi_name, vm.hostid)
+
     def test_07_destroy_expunge_VM_with_volume(self):
         '''Destroy and expunge VM with attached volume'''
 
@@ -1035,9 +990,11 @@
             serviceofferingid=self.compute_offering.id,
             templateid=self.template.id,
             domainid=self.domain.id,
-            startvm=True
+            startvm=False
         )
 
+        TestVolumes._start_vm(test_virtual_machine)
+
         self.volume = test_virtual_machine.attach_volume(
             self.apiClient,
             self.volume
@@ -1061,23 +1018,27 @@
             TestVolumes._vm_not_in_running_state_err_msg
         )
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_vag_id = self._get_vag_id()
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
+
+        self._check_host_side(sf_iscsi_name, vm.hostid)
+
+        hostid = vm.hostid
 
         #######################################
         #######################################
@@ -1114,25 +1075,24 @@
             "Check if VM was actually expunged"
         )
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
         self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
+            len(sf_volume.volume_access_groups),
             0,
             TestVolumes._volume_should_not_be_in_a_vag
         )
 
-        self._check_xen_sr(sf_iscsi_name, False)
+        self._check_host_side(sf_iscsi_name, hostid, False)
 
-    @attr(hypervisor='XenServer')
     def test_08_delete_volume_was_attached(self):
         '''Delete volume that was attached to a VM and is detached now'''
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
         #######################################
         #######################################
@@ -1174,23 +1134,25 @@
             str(vm.state)
         )
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_volume_size = self._get_volume_size_with_hsr(new_volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, new_volume, self)
 
-        sf_vag_id = self._get_vag_id()
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_iscsi_name = self._get_iqn(new_volume)
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, new_volume, self)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
+
+        self._check_host_side(sf_iscsi_name, vm.hostid)
 
         #######################################
         #######################################
@@ -1219,19 +1181,19 @@
             str(vm.state)
         )
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
         self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
+            len(sf_volume.volume_access_groups),
             0,
             TestVolumes._volume_should_not_be_in_a_vag
         )
 
-        self._check_xen_sr(sf_iscsi_name, False)
+        self._check_host_side(sf_iscsi_name, vm.hostid, False)
 
         volume_to_delete_later.delete(self.apiClient)
 
@@ -1246,15 +1208,14 @@
             "Check volume was deleted"
         )
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        self._check_and_get_sf_volume(sf_volumes, vol.name, False)
+        sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self, False)
 
-    @attr(hypervisor='XenServer')
     def test_09_attach_volumes_multiple_accounts(self):
         '''Attach a data disk to a VM in one account and attach another data disk to a VM in another account'''
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
         #######################################
         #######################################
@@ -1278,9 +1239,11 @@
             serviceofferingid=self.compute_offering.id,
             templateid=self.template.id,
             domainid=self.domain.id,
-            startvm=True
+            startvm=False
         )
 
+        TestVolumes._start_vm(test_virtual_machine)
+
         test_volume = Volume.create(
             self.apiClient,
             self.testdata[TestData.volume_2],
@@ -1342,45 +1305,48 @@
             str(test_vm.state)
         )
 
-        sf_vag_id = self._get_vag_id()
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        sf_volume_size = self._get_volume_size_with_hsr(vol)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, vol, self)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        self._check_host_side(sf_iscsi_name, vm.hostid)
 
-        sf_test_account_id = self._get_sf_account_id(self.primary_storage.id, test_account.id)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
 
-        sf_test_volumes = self._get_sf_volumes(sf_test_account_id)
+        sf_test_account_id = sf_util.get_sf_account_id(self.cs_api, test_account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_test_volume = self._check_and_get_sf_volume(sf_test_volumes, test_vol.name)
+        sf_test_volumes = self._get_active_sf_volumes(sf_test_account_id)
 
-        sf_test_volume_size = self._get_volume_size_with_hsr(test_vol)
+        sf_test_volume = sf_util.check_and_get_sf_volume(sf_test_volumes, test_vol.name, self)
 
-        self._check_size_and_iops(sf_test_volume, test_vol, sf_test_volume_size)
+        sf_test_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, test_vol, self)
 
-        sf_test_iscsi_name = self._get_iqn(test_volume)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_test_volume_size)
 
-        self._check_xen_sr(sf_test_iscsi_name)
+        sf_util.check_size_and_iops(sf_test_volume, test_vol, sf_test_volume_size, self)
 
-        self._check_vag(sf_test_volume, sf_vag_id)
+        sf_test_iscsi_name = sf_util.get_iqn(self.cs_api, test_volume, self)
 
-    @attr(hypervisor='XenServer')
+        self._check_host_side(sf_test_iscsi_name, test_vm.hostid)
+
+        sf_util.check_vag(sf_test_volume, sf_vag_id, self)
+
     def test_10_attach_more_than_one_disk_to_VM(self):
         '''Attach more than one disk to a VM'''
 
-        self.virtual_machine.start(self.apiClient)
+        TestVolumes._start_vm(self.virtual_machine)
 
         volume_2 = Volume.create(
             self.apiClient,
@@ -1417,66 +1383,44 @@
 
         vol_2 = self._check_and_get_cs_volume(volume_2.id, self.testdata[TestData.volume_2][TestData.diskName])
 
-        sf_account_id = self._get_sf_account_id(self.primary_storage.id, self.account.id)
+        sf_account_id = sf_util.get_sf_account_id(self.cs_api, self.account.id, self.primary_storage.id, self, TestVolumes._sf_account_id_should_be_non_zero_int_err_msg)
 
-        sf_volume_size = self._get_volume_size_with_hsr(self.volume)
+        sf_volume_size = sf_util.get_volume_size_with_hsr(self.cs_api, self.volume, self)
 
-        sf_volume_2_size = self._get_volume_size_with_hsr(volume_2)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_size)
 
-        sf_vag_id = self._get_vag_id()
+        sf_volume_2_size = sf_util.get_volume_size_with_hsr(self.cs_api, volume_2, self)
 
-        sf_volumes = self._get_sf_volumes(sf_account_id)
+        self._verify_hsr(self.disk_offering.disksize, self.disk_offering.hypervisorsnapshotreserve, sf_volume_2_size)
 
-        sf_volume = self._check_and_get_sf_volume(sf_volumes, vol.name)
+        sf_vag_id = sf_util.get_vag_id(self.cs_api, self.cluster.id, self.primary_storage.id, self)
 
-        self._check_size_and_iops(sf_volume, vol, sf_volume_size)
+        sf_volumes = self._get_active_sf_volumes(sf_account_id)
 
-        sf_iscsi_name = self._get_iqn(self.volume)
+        sf_volume = sf_util.check_and_get_sf_volume(sf_volumes, vol.name, self)
 
-        self._check_xen_sr(sf_iscsi_name)
+        sf_util.check_size_and_iops(sf_volume, vol, sf_volume_size, self)
 
-        self._check_vag(sf_volume, sf_vag_id)
+        sf_iscsi_name = sf_util.get_iqn(self.cs_api, self.volume, self)
 
-        sf_volume_2 = self._check_and_get_sf_volume(sf_volumes, vol_2.name)
+        vm = self._get_vm(self.virtual_machine.id)
 
-        self._check_size_and_iops(sf_volume_2, vol_2, sf_volume_2_size)
+        self._check_host_side(sf_iscsi_name, vm.hostid)
 
-        sf_iscsi_name_2 = self._get_iqn(volume_2)
+        sf_util.check_vag(sf_volume, sf_vag_id, self)
 
-        self._check_xen_sr(sf_iscsi_name_2)
+        sf_volume_2 = sf_util.check_and_get_sf_volume(sf_volumes, vol_2.name, self)
 
-        self._check_vag(sf_volume_2, sf_vag_id)
+        sf_util.check_size_and_iops(sf_volume_2, vol_2, sf_volume_2_size, self)
+
+        sf_iscsi_name_2 = sf_util.get_iqn(self.cs_api, volume_2, self)
+
+        self._check_host_side(sf_iscsi_name_2, vm.hostid)
+
+        sf_util.check_vag(sf_volume_2, sf_vag_id, self)
 
         self.virtual_machine.detach_volume(self.apiClient, volume_2)
 
-    '''
-    @attr(hypervisor = 'XenServer')
-    def _test_11_attach_disk_to_running_vm_change_iops(self):
-        Attach a disk to a running VM, then change iops
-        self.custom_iops_disk_offering = DiskOffering.create(
-            
-        )'''
-
-    def _check_list(self, in_list, expected_size_of_list, err_msg):
-        self.assertEqual(
-            isinstance(in_list, list),
-            True,
-            "'in_list' is not a list."
-        )
-
-        self.assertEqual(
-            len(in_list),
-            expected_size_of_list,
-            err_msg
-        )
-
-    def _check_iscsi_name(self, sf_iscsi_name):
-        self.assertEqual(
-            sf_iscsi_name[0],
-            "/",
-            "The iSCSI name needs to start with a forward slash."
-        )
-
     def _check_volume(self, volume, volume_name):
         self.assertTrue(
             volume.name.startswith(volume_name),
@@ -1501,45 +1445,13 @@
             "The storage type is incorrect."
         )
 
-    def _check_size_and_iops(self, sf_volume, volume, size):
-        self.assertEqual(
-            sf_volume['qos']['minIOPS'],
-            volume.miniops,
-            "Check QOS - Min IOPS: " + str(sf_volume['qos']['minIOPS'])
-        )
-
-        self.assertEqual(
-            sf_volume['qos']['maxIOPS'],
-            volume.maxiops,
-            "Check QOS - Max IOPS: " + str(sf_volume['qos']['maxIOPS'])
-        )
-
-        self.assertEqual(
-            sf_volume['totalSize'],
-            size,
-            "Check SF volume size: " + str(sf_volume['totalSize'])
-        )
-
-    def _check_vag(self, sf_volume, sf_vag_id):
-        self.assertEqual(
-            len(sf_volume['volumeAccessGroups']),
-            1,
-            "The volume should only be in one VAG."
-        )
-
-        self.assertEqual(
-            sf_volume['volumeAccessGroups'][0],
-            sf_vag_id,
-            "The volume is not in the VAG with the following ID: " + str(sf_vag_id) + "."
-        )
-
     def _check_and_get_cs_volume(self, volume_id, volume_name):
         list_volumes_response = list_volumes(
             self.apiClient,
             id=volume_id
         )
 
-        self._check_list(list_volumes_response, 1, TestVolumes._should_only_be_one_volume_in_list_err_msg)
+        sf_util.check_list(list_volumes_response, 1, self, TestVolumes._should_only_be_one_volume_in_list_err_msg)
 
         cs_volume = list_volumes_response[0]
 
@@ -1547,108 +1459,40 @@
 
         return cs_volume
 
-    def _get_sf_account_id(self, primary_storage_id, account_id):
-        sf_account_id_request = {'storageid': primary_storage_id, 'accountid': account_id}
-        sf_account_id_result = self.cs_api.getSolidFireAccountId(sf_account_id_request)
-        sf_account_id = sf_account_id_result['apisolidfireaccountid']['solidFireAccountId']
+    def _verify_hsr(self, cs_volume_size_in_gb, hsr, sf_volume_size_in_bytes):
+        cs_volume_size_including_hsr_in_bytes = self._get_cs_volume_size_including_hsr_in_bytes(cs_volume_size_in_gb, hsr)
 
-        self.assertEqual(
-            isinstance(sf_account_id, int),
-            True,
-            TestVolumes._sf_account_id_should_be_non_zero_int_err_msg
-        )
+        self.assertTrue(
+            cs_volume_size_including_hsr_in_bytes == sf_volume_size_in_bytes,
+            "HSR does not add up correctly."
+        );
 
-        return sf_account_id
+    def _get_cs_volume_size_including_hsr_in_bytes(self, cs_volume_size_in_gb, hsr):
+        if TestData.hypervisor_type == TestData.kvm:
+            return self._get_bytes_from_gb(cs_volume_size_in_gb)
 
-    def _get_volume_size_with_hsr(self, cs_volume):
-        # Get underlying SF volume size with hypervisor snapshot reserve
-        sf_volume_size_request = {'volumeid': cs_volume.id}
-        sf_volume_size_result = self.cs_api.getSolidFireVolumeSize(sf_volume_size_request)
-        sf_volume_size = sf_volume_size_result['apisolidfirevolumesize']['solidFireVolumeSize']
+        lowest_hsr = 10
 
-        self.assertEqual(
-            isinstance(sf_volume_size, int),
-            True,
-            "The SolidFire volume size should be a non-zero integer."
-        )
+        if hsr < lowest_hsr:
+            hsr = lowest_hsr;
 
-        return sf_volume_size
+        return self._get_bytes_from_gb(cs_volume_size_in_gb + (cs_volume_size_in_gb * (hsr / 100)))
 
-    def _get_vag_id(self):
-        # Get SF Volume Access Group ID
-        sf_vag_id_request = {'clusterid': self.cluster.id, 'storageid': self.primary_storage.id}
-        sf_vag_id_result = self.cs_api.getSolidFireVolumeAccessGroupId(sf_vag_id_request)
-        sf_vag_id = sf_vag_id_result['apisolidfirevolumeaccessgroupid']['solidFireVolumeAccessGroupId']
-
-        self.assertEqual(
-            isinstance(sf_vag_id, int),
-            True,
-            TestVolumes._vag_id_should_be_non_zero_int_err_msg
-        )
-
-        return sf_vag_id
-
-    def _get_iqn(self, volume):
-        # Get volume IQN
-        sf_iscsi_name_request = {'volumeid': volume.id}
-        sf_iscsi_name_result = self.cs_api.getVolumeiScsiName(sf_iscsi_name_request)
-        sf_iscsi_name = sf_iscsi_name_result['apivolumeiscsiname']['volumeiScsiName']
-
-        self._check_iscsi_name(sf_iscsi_name)
-
-        return sf_iscsi_name
+    def _get_bytes_from_gb(self, number_in_gb):
+        return number_in_gb * 1024 * 1024 * 1024
 
     def _get_vm(self, vm_id):
         list_vms_response = list_virtual_machines(self.apiClient, id=vm_id)
 
-        self._check_list(list_vms_response, 1, TestVolumes._should_only_be_one_vm_in_list_err_msg)
+        sf_util.check_list(list_vms_response, 1, self, TestVolumes._should_only_be_one_vm_in_list_err_msg)
 
         return list_vms_response[0]
 
-    def _check_and_get_sf_volume(self, sf_volumes, sf_volume_name, should_exist=True):
-        sf_volume = None
-
-        for volume in sf_volumes:
-            if volume['name'] == sf_volume_name:
-                sf_volume = volume
-                break
-
-        if should_exist:
-            self.assertNotEqual(
-                sf_volume,
-                None,
-                "Check if SF volume was created in correct account: " + str(sf_volumes)
-            )
-        else:
-            self.assertEqual(
-                sf_volume,
-                None,
-                "Check if SF volume was deleted: " + str(sf_volumes)
-            )
-
-        return sf_volume
-
     def _check_xen_sr(self, xen_sr_name, should_exist=True):
-        if should_exist:
-            xen_sr = self.xen_session.xenapi.SR.get_by_name_label(xen_sr_name)[0]
+        sf_util.check_xen_sr(xen_sr_name, self.xen_session, self, should_exist)
 
-            self.sr_shared = self.xen_session.xenapi.SR.get_shared(xen_sr)
-
-            self.assertEqual(
-                self.sr_shared,
-                True,
-                TestVolumes._sr_not_shared_err_msg
-            )
-        else:
-            xen_sr = self.xen_session.xenapi.SR.get_by_name_label(xen_sr_name)
-
-            self._check_list(xen_sr, 0, TestVolumes._list_should_be_empty)
-
-    def _get_sf_volumes(self, sf_account_id=None):
-        if sf_account_id is not None:
-            sf_volumes = self.sf_client.list_volumes_for_account(sf_account_id)
-        else:
-            sf_volumes = self.sf_client.list_active_volumes()
+    def _get_active_sf_volumes(self, sf_account_id=None):
+        sf_volumes = sf_util.get_active_sf_volumes(self.sfe, sf_account_id)
 
         self.assertNotEqual(
             len(sf_volumes),
@@ -1658,19 +1502,97 @@
 
         return sf_volumes
 
-    @classmethod
-    def _set_supports_resign(cls):
-        supports_resign = str(cls.supports_resign)
+    def _get_template_cache_name(self):
+        if TestData.hypervisor_type == TestData.kvm:
+            return TestData.templateCacheNameKvm
+        elif TestData.hypervisor_type == TestData.xenServer:
+            return TestData.templateCacheNameXenServer
 
-        sql_query = "Update host_details Set value = '" + supports_resign + "' Where name = 'supportsResign'"
+        self.assert_(False, "Invalid hypervisor type")
 
-        # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
-        cls.dbConnection.execute(sql_query)
+    def _get_modified_iscsi_name(self, sf_iscsi_name):
+        sf_iscsi_name = sf_iscsi_name.replace("/", "")
+
+        return sf_iscsi_name[:-1]
+
+    def _check_host_side(self, sf_iscsi_name, vm_hostid=None, should_exist=True):
+        if TestData.hypervisor_type == TestData.kvm:
+            self._check_kvm_host_side(self._get_modified_iscsi_name(sf_iscsi_name), vm_hostid, should_exist)
+        elif TestData.hypervisor_type == TestData.xenServer:
+            self._check_xen_sr(sf_iscsi_name, should_exist)
+
+    def _check_kvm_host_side(self, sf_iscsi_name, vm_hostid, should_exist=True):
+        if vm_hostid is None:
+            list_hosts_response = list_hosts(
+                self.apiClient,
+                type="Routing"
+            )
+        else:
+            list_hosts_response = list_hosts(
+                self.apiClient,
+                id=vm_hostid
+            )
+
+            sf_util.check_list(list_hosts_response, 1, self, TestVolumes._should_only_be_one_host_in_list_err_msg)
+
+        kvm_login = self.testdata[TestData.kvm]
+
+        for cs_host in list_hosts_response:
+            ssh_connection = sf_util.get_ssh_connection(cs_host.ipaddress, kvm_login[TestData.username], kvm_login[TestData.password])
+
+            stdin, stdout, stderr = ssh_connection.exec_command("ls /dev/disk/by-path | grep " + sf_iscsi_name)
+
+            result = stdout.read()
+
+            ssh_connection.close()
+
+            if should_exist:
+                self.assertFalse(result is None, "Unable to locate 'by-path' field on the KVM host (None)")
+                self.assertFalse(len(result.strip()) <= len(sf_iscsi_name), "Unable to locate the 'by-path' field on the KVM host (Zero-length string)")
+            else:
+                self.assertTrue(result is None or len(result.strip()) == 0, "Found the 'by-path' field on the KVM host, but did not expect to")
 
     @classmethod
-    def _purge_solidfire_volumes(cls):
-        deleted_volumes = cls.sf_client.list_deleted_volumes()
+    def _start_vm(cls, vm):
+        vm.start(cls.apiClient)
 
-        for deleted_volume in deleted_volumes:
-            cls.sf_client.purge_deleted_volume(deleted_volume['volumeID'])
+        # Libvirt appears to have an issue detaching a volume from a VM while the VM is booting up.
+        # The XML sent to update the VM seems correct, but it doesn't appear to update the XML that describes the VM.
+        # For KVM, just give it 90 seconds to boot up.
+        if TestData.hypervisor_type == TestData.kvm:
+            time.sleep(90)
+
+    @classmethod
+    def _reboot_vm(cls, vm):
+        vm.reboot(cls.apiClient)
+
+        # Libvirt appears to have an issue detaching a volume from a VM while the VM is booting up.
+        # The XML sent to update the VM seems correct, but it doesn't appear to update the XML that describes the VM.
+        # For KVM, just give it 90 seconds to boot up.
+        if TestData.hypervisor_type == TestData.kvm:
+            time.sleep(90)
+
+    @classmethod
+    def _handle_supports_cloning(cls):
+        if TestData.hypervisor_type == TestData.kvm:
+            cls._supports_cloning = True
+        elif TestData.hypervisor_type == TestData.xenServer:
+            # For XenServer, it is OK to set this to True or False depending on what you'd like tested
+            cls._supports_cloning = True
+
+            sf_util.set_supports_resign(cls._supports_cloning, cls.dbConnection)
+
+    @classmethod
+    def _connect_to_hypervisor(cls):
+        if TestData.hypervisor_type == TestData.kvm:
+            pass
+        elif TestData.hypervisor_type == TestData.xenServer:
+            host_ip = "https://" + \
+                  list_hosts(cls.apiClient, clusterid=cls.testdata[TestData.clusterId], name=TestData.xen_server_hostname)[0].ipaddress
+
+            cls.xen_session = XenAPI.Session(host_ip)
+
+            xen_server = cls.testdata[TestData.xenServer]
+
+            cls.xen_session.xenapi.login_with_password(xen_server[TestData.username], xen_server[TestData.password])
 
diff --git a/test/integration/plugins/solidfire/util/sf_util.py b/test/integration/plugins/solidfire/util/sf_util.py
new file mode 100644
index 0000000..de848d9
--- /dev/null
+++ b/test/integration/plugins/solidfire/util/sf_util.py
@@ -0,0 +1,249 @@
+# 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.
+
+import paramiko
+
+def check_list(in_list, expected_size_of_list, obj_assert, err_msg):
+    obj_assert.assertEqual(
+        isinstance(in_list, list),
+        True,
+        "'in_list' is not a list."
+    )
+
+    obj_assert.assertEqual(
+        len(in_list),
+        expected_size_of_list,
+        err_msg
+    )
+
+def get_sf_account_id(cs_api, cs_account_id, primary_storage_id, obj_assert, err_msg):
+    sf_account_id_request = {'accountid': cs_account_id, 'storageid': primary_storage_id}
+    sf_account_id_result = cs_api.getSolidFireAccountId(sf_account_id_request)
+    sf_account_id = sf_account_id_result['apisolidfireaccountid']['solidFireAccountId']
+
+    obj_assert.assertEqual(
+        isinstance(sf_account_id, int),
+        True,
+        err_msg
+    )
+
+    return sf_account_id
+
+def get_iqn(cs_api, volume, obj_assert):
+    # Get volume IQN
+    sf_iscsi_name_request = {'volumeid': volume.id}
+    sf_iscsi_name_result = cs_api.getVolumeiScsiName(sf_iscsi_name_request)
+    sf_iscsi_name = sf_iscsi_name_result['apivolumeiscsiname']['volumeiScsiName']
+
+    check_iscsi_name(sf_iscsi_name, obj_assert)
+
+    return sf_iscsi_name
+
+def check_iscsi_name(sf_iscsi_name, obj_assert):
+    obj_assert.assertEqual(
+        sf_iscsi_name[0],
+        "/",
+        "The iSCSI name needs to start with a forward slash."
+    )
+
+def set_supports_resign(supports_resign, db_connection):
+    _set_supports_resign_for_table(supports_resign, db_connection, "host_details")
+    _set_supports_resign_for_table(supports_resign, db_connection, "cluster_details")
+
+def _set_supports_resign_for_table(supports_resign, db_connection, table):
+    sql_query = "Update " + str(table) + " Set value = '" + str(supports_resign) + "' Where name = 'supportsResign'"
+
+    # make sure you can connect to MySQL: https://teamtreehouse.com/community/cant-connect-remotely-to-mysql-server-with-mysql-workbench
+    db_connection.execute(sql_query)
+
+def purge_solidfire_volumes(sfe):
+    deleted_volumes = sfe.list_deleted_volumes()
+
+    for deleted_volume in deleted_volumes.volumes:
+        sfe.purge_deleted_volume(deleted_volume.volume_id)
+
+def get_not_active_sf_volumes(sfe, sf_account_id=None):
+    if sf_account_id is not None:
+        sf_volumes = sfe.list_volumes_for_account(sf_account_id).volumes
+
+        if sf_volumes is not None and len(sf_volumes) > 0:
+            sf_volumes = _get_not_active_sf_volumes_only(sf_volumes)
+    else:
+        sf_volumes = sfe.list_deleted_volumes().volumes
+
+    return sf_volumes
+
+def _get_not_active_sf_volumes_only(sf_volumes):
+    not_active_sf_volumes_only = []
+
+    for sf_volume in sf_volumes:
+        if sf_volume.status != "active":
+            not_active_sf_volumes_only.append(sf_volume)
+
+    return not_active_sf_volumes_only
+
+def get_active_sf_volumes(sfe, sf_account_id=None):
+    if sf_account_id is not None:
+        sf_volumes = sfe.list_volumes_for_account(sf_account_id).volumes
+
+        if sf_volumes is not None and len(sf_volumes) > 0:
+            sf_volumes = _get_active_sf_volumes_only(sf_volumes)
+    else:
+        sf_volumes = sfe.list_active_volumes().volumes
+
+    return sf_volumes
+
+def _get_active_sf_volumes_only(sf_volumes):
+    active_sf_volumes_only = []
+
+    for sf_volume in sf_volumes:
+        if sf_volume.status == "active":
+            active_sf_volumes_only.append(sf_volume)
+
+    return active_sf_volumes_only
+
+def check_and_get_sf_volume(sf_volumes, sf_volume_name, obj_assert, should_exist=True):
+    sf_volume = None
+
+    for volume in sf_volumes:
+        if volume.name == sf_volume_name:
+            sf_volume = volume
+            break
+
+    if should_exist:
+        obj_assert.assertNotEqual(
+            sf_volume,
+            None,
+            "Check if SF volume was created in correct account: " + str(sf_volumes)
+        )
+    else:
+        obj_assert.assertEqual(
+            sf_volume,
+            None,
+            "Check if SF volume was deleted: " + str(sf_volumes)
+        )
+
+    return sf_volume
+
+def check_xen_sr(xen_sr_name, xen_session, obj_assert, should_exist=True):
+    xen_sr = xen_session.xenapi.SR.get_by_name_label(xen_sr_name)
+
+    if should_exist:
+        check_list(xen_sr, 1, obj_assert, "SR " + xen_sr_name + " doesn't exist, but should.")
+
+        sr_shared = xen_session.xenapi.SR.get_shared(xen_sr[0])
+
+        obj_assert.assertEqual(
+            sr_shared,
+            True,
+            "SR " + xen_sr_name + " is not shared, but should be."
+        )
+    else:
+        check_list(xen_sr, 0, obj_assert, "SR " + xen_sr_name + " exists, but shouldn't.")
+
+def check_kvm_access_to_volume(iscsi_name, kvm_hosts, username, password, obj_assert, should_exist=True):
+    count = 0
+
+    for kvm_host in kvm_hosts:
+        ssh_connection = get_ssh_connection(kvm_host.ipaddress, username, password)
+
+        stdin, stdout, stderr = ssh_connection.exec_command("ls /dev/disk/by-path | grep " + iscsi_name)
+
+        result = stdout.read()
+
+        ssh_connection.close()
+
+        if result is not None and len(result.strip()) > len(iscsi_name):
+            count = count + 1
+
+    if should_exist:
+        obj_assert.assertTrue(count == 1, "Only one KVM host should be connected to the following IQN: " + iscsi_name)
+    else:
+        obj_assert.assertTrue(count == 0, "No KVM host should be connected to the following IQN: " + iscsi_name)
+
+def check_vag(sf_volume, sf_vag_id, obj_assert):
+    obj_assert.assertEqual(
+        len(sf_volume.volume_access_groups),
+        1,
+        "The volume should only be in one VAG."
+    )
+
+    obj_assert.assertEqual(
+        sf_volume.volume_access_groups[0],
+        sf_vag_id,
+        "The volume is not in the VAG with the following ID: " + str(sf_vag_id) + "."
+    )
+
+def get_vag_id(cs_api, cluster_id, primary_storage_id, obj_assert):
+    # Get SF Volume Access Group ID
+    sf_vag_id_request = {'clusterid': cluster_id, 'storageid': primary_storage_id}
+    sf_vag_id_result = cs_api.getSolidFireVolumeAccessGroupId(sf_vag_id_request)
+    sf_vag_id = sf_vag_id_result['apisolidfirevolumeaccessgroupid']['solidFireVolumeAccessGroupId']
+
+    obj_assert.assertEqual(
+        isinstance(sf_vag_id, int),
+        True,
+        "The SolidFire VAG ID should be a non-zero integer."
+    )
+
+    return sf_vag_id
+
+def format_iqn(iqn):
+    return "/" + iqn + "/0"
+
+def check_size_and_iops(sf_volume, cs_volume, size, obj_assert):
+    obj_assert.assertEqual(
+        sf_volume.qos.min_iops,
+        cs_volume.miniops,
+        "Check QoS - Min IOPS: " + str(sf_volume.qos.min_iops)
+    )
+
+    obj_assert.assertEqual(
+        sf_volume.qos.max_iops,
+        cs_volume.maxiops,
+        "Check QoS - Max IOPS: " + str(sf_volume.qos.max_iops)
+    )
+
+    obj_assert.assertEqual(
+        sf_volume.total_size,
+        size,
+        "Check SolidFire volume size: " + str(sf_volume.total_size)
+    )
+
+def get_volume_size_with_hsr(cs_api, cs_volume, obj_assert):
+    # Get underlying SF volume size with hypervisor snapshot reserve
+    sf_volume_size_request = {'volumeid': cs_volume.id}
+    sf_volume_size_result = cs_api.getSolidFireVolumeSize(sf_volume_size_request)
+    sf_volume_size = sf_volume_size_result['apisolidfirevolumesize']['solidFireVolumeSize']
+
+    obj_assert.assertEqual(
+        isinstance(sf_volume_size, int),
+        True,
+        "The SolidFire volume size should be a non-zero integer."
+    )
+
+    return sf_volume_size
+
+def get_ssh_connection(ip_address, username, password):
+    ssh_client = paramiko.SSHClient()
+
+    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+
+    ssh_client.connect(ip_address, username=username, password=password)
+
+    return ssh_client
+
diff --git a/test/integration/smoke/test_deploy_vgpu_enabled_vm.py b/test/integration/smoke/test_deploy_vgpu_enabled_vm.py
index 9b638a9..0bf210c 100644
--- a/test/integration/smoke/test_deploy_vgpu_enabled_vm.py
+++ b/test/integration/smoke/test_deploy_vgpu_enabled_vm.py
@@ -24,21 +24,20 @@
 
 # base - contains all resources as entities and defines create, delete,
 # list operations on them
-from marvin.lib.base import Account, VirtualMachine, ServiceOffering
+from marvin.lib.base import Account, VirtualMachine, ServiceOffering, NetworkOffering, Network, Template
 
 # utils - utility classes for common cleanup, external library wrappers etc
-from marvin.lib.utils import cleanup_resources
+from marvin.lib.utils import cleanup_resources, get_hypervisor_type, validateList
 
 # common - commonly used methods for all tests are listed here
 from marvin.lib.common import get_zone, get_domain, get_template, list_hosts
 
 from marvin.sshClient import SshClient
 
-from marvin.codes import FAILED
+from marvin.codes import FAILED, PASS
 
 from nose.plugins.attrib import attr
 
-
 class TestDeployvGPUenabledVM(cloudstackTestCase):
 
     """
@@ -87,7 +86,21 @@
             # No XenServer available with GPU Drivers installed
             self.noSuitableHost = True
             return
+        
+    def setUp(self):
+        self.testdata = self.testClient.getParsedTestDataConfig()["vgpu"]
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        if self.noSuitableHost or self.unsupportedHypervisor:
+            self.hypervisor = get_hypervisor_type(self.apiclient)
+            if self.hypervisor.lower() not in ["vmware"]:
+	            self.skipTest("Skipping test because suitable hypervisor/host not\
+        	            present")
+            self.testdata = self.testClient.getParsedTestDataConfig()
+        
+        self.cleanup = []
 
+        # Get Zone, Domain and Default Built-in template
         self.domain = get_domain(self.apiclient)
         self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
         # Creating Account
@@ -96,53 +109,67 @@
             self.testdata["account"],
             domainid=self.domain.id
         )
-        self._cleanup.append(self.account)
 
-    def setUp(self):
-        self.testdata = self.testClient.getParsedTestDataConfig()["vgpu"]
-        self.apiclient = self.testClient.getApiClient()
-        if self.noSuitableHost or self.unsupportedHypervisor:
-            self.skipTest("Skipping test because suitable hypervisor/host not\
-                    present")
+        if self.hypervisor.lower() in ["xenserver"]:
+            
+            # Before running this test for Xen Server, register a windows template with ostype as
+            # 'Windows 7 (32-bit)'
+            self.template = get_template(
+                self.apiclient,
+                self.zone.id,
+                self.testdata["ostype"])
+            self.cleanup.append(self.template)
+            
+            self.testdata["mode"] = self.zone.networktype
 
-        # Get Zone, Domain and Default Built-in template
-        self.domain = get_domain(self.apiclient)
-        self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
-        self.testdata["mode"] = self.zone.networktype
-        # Before running this test, register a windows template with ostype as
-        # 'Windows 7 (32-bit)'
-        self.template = get_template(
-            self.apiclient,
-            self.zone.id,
-            self.testdata["ostype"])
+            if self.template == FAILED:
+        	    assert False, "get_template() failed to return template with description %s" % self.testdata[
+                	"ostype"]
 
-        if self.template == FAILED:
-            assert False, "get_template() failed to return template with description %s" % self.testdata[
-                "ostype"]
-        # create a user account
-        self.account = Account.create(
-            self.apiclient,
-            self.testdata["account"],
-            domainid=self.domain.id
-        )
+            self.testdata["small"]["zoneid"] = self.zone.id
+            self.testdata["small"]["template"] = self.template.id
 
-        self.testdata["small"]["zoneid"] = self.zone.id
-        self.testdata["small"]["template"] = self.template.id
+            self.testdata["service_offerings"]["vgpu260qwin"]["serviceofferingdetails"] = [
+        	    {
+                	'pciDevice': 'Group of NVIDIA Corporation GK107GL [GRID K1] GPUs'}, {
+	                'vgpuType': 'GRID K120Q'}]
+        	# create a service offering
+            self.service_offering = ServiceOffering.create(
+        	    self.apiclient,
+	            self.testdata["service_offerings"]["vgpu260qwin"],
+        	)
+            self.cleanup.append(self.service_offering)
+            
+        elif self.hypervisor.lower() in ["vmware"]:
+            self.testdata["isolated_network"]["zoneid"] = self.zone.id
+            
+            self.userapiclient = self.testClient.getUserApiClient(
+         		UserName=self.account.name,
+		        DomainName=self.account.domain
+	        )
+            self.service_offering = ServiceOffering.create(
+	            self.apiclient,
+        	    self.testdata["service_offering"])
 
-        self.testdata["service_offerings"]["vgpu260qwin"]["serviceofferingdetails"] = [
-            {
-                'pciDevice': 'Group of NVIDIA Corporation GK107GL [GRID K1] GPUs'}, {
-                'vgpuType': 'GRID K120Q'}]
-        # create a service offering
-        self.service_offering = ServiceOffering.create(
-            self.apiclient,
-            self.testdata["service_offerings"]["vgpu260qwin"],
-        )
-        # build cleanup list
-        self.cleanup = [
-            self.service_offering,
-            self.account
-        ]
+            # Create Shared Network Offering
+            self.isolated_network_offering = NetworkOffering.create(
+	            self.apiclient,
+        	    self.testdata["isolated_network_offering"])
+        	# Enable Isolated Network offering
+            self.isolated_network_offering.update(self.apiclient, state='Enabled')
+            
+            # Register a private template in the account with nic adapter vmxnet3
+            # Also add required 3D GPU details for enabling it
+            self.template = Template.register(
+                self.userapiclient,
+                self.testdata["configurableData"]["vmxnet3template"],
+                zoneid=self.zone.id,
+                account=self.account.name,
+                domainid=self.account.domainid,
+                details=[{"mks.enable3d" : "true", "mks.use3dRenderer" : "automatic",
+                     "svga.autodetect" : "false", "svga.vramSize" : "131072"}]
+            )
+		
 
     @attr(tags=['advanced', 'basic', 'vgpu'], required_hardware="true")
     def test_deploy_vgpu_enabled_vm(self):
@@ -153,6 +180,11 @@
         # 2. Virtual Machine is vGPU enabled (via SSH)
         # 3. listVirtualMachines returns accurate information
         """
+        if self.hypervisor.lower() not in ["xenserver"]:
+            self.cleanup.append(self.account)
+            self.skipTest("This test case is written specifically\
+                    for XenServer hypervisor")
+            
         self.virtual_machine = VirtualMachine.create(
             self.apiclient,
             self.testdata["small"],
@@ -161,6 +193,7 @@
             serviceofferingid=self.service_offering.id,
             mode=self.testdata['mode']
         )
+        self.cleanup.append(self.virtual_machine)
 
         list_vms = VirtualMachine.list(
             self.apiclient,
@@ -210,11 +243,11 @@
                 user=self.testdata['configurableData']['host']["username"],
                 passwd=self.testdata['configurableData']['host']["password"])
             res = sshClient.execute(
-                "xe vgpu-list vm-name-label=%s params=type-uuid %s" %
+                "xe vgpu-list vm-name-label=%s params=type-uuid %s" % 
                 (vm.instancename))
             self.debug("SSH result: %s" % res)
         except Exception as e:
-            self.fail("SSH Access failed for %s: %s" %
+            self.fail("SSH Access failed for %s: %s" % 
                       (hostip, e)
                       )
         result = str(res)
@@ -223,9 +256,80 @@
             1,
             "VM is vGPU enabled."
         )
+        self.cleanup.append(self.account)
 
     def tearDown(self):
         try:
             cleanup_resources(self.apiclient, self.cleanup)
         except Exception as e:
             self.debug("Warning! Exception in tearDown: %s" % e)
+        return
+
+    @attr(tags=["advanced"])
+    def test_3d_gpu_support(self):
+        """Test 3D GPU support
+
+        # 1. Register a template for VMware with nicAdapter vmxnet3 and 3D GPU details
+        # 2. Deploy a VM using this template
+        # 3. Create an isolated network
+        # 4. Add network to VM
+        # 5. Verify vm details for 3D GPU details
+        """
+        if self.hypervisor.lower() not in ["vmware"]:
+            self.cleanup.append(self.account)
+            self.skipTest("This test case is written specifically\
+                    for Vmware hypervisor")
+
+        self.template.download(self.apiclient)
+
+        templates = Template.list(
+            self.userapiclient,
+            listall=True,
+            id=self.template.id,
+            templatefilter="self"
+        )
+
+        self.assertEqual(
+            validateList(templates)[0],
+            PASS,
+            "Templates list validation failed"
+        )
+
+        self.testdata["virtual_machine"]["zoneid"] = self.zone.id
+        self.testdata["virtual_machine"]["template"] = self.template.id
+
+        self.virtual_machine = VirtualMachine.create(
+            self.apiclient,
+            self.testdata["virtual_machine"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            templateid=self.template.id,
+            serviceofferingid=self.service_offering.id)
+
+        self.isolated_network = Network.create(
+            self.apiclient,
+            self.testdata["isolated_network"],
+            self.account.name,
+            self.account.domainid,
+            networkofferingid=self.isolated_network_offering.id)
+
+        self.virtual_machine.add_nic(self.apiclient, self.isolated_network.id)
+        
+        self.cleanup = [self.virtual_machine, self.isolated_network, self.isolated_network_offering, self.service_offering, self.account, self.template]
+
+        qresultset = self.dbclient.execute("select id from vm_instance where uuid = '%s';" % self.virtual_machine.id)
+        vm_id = qresultset[0]
+        qresultset = self.dbclient.execute("select name, value from user_vm_details where vm_id = '%d';" % vm_id)
+        detailKeys = [x[0] for x in qresultset]
+
+        self.assertTrue('mks.enable3d' in detailKeys and 'mks.use3dRenderer' in detailKeys and 'svga.autodetect' in detailKeys and 'svga.vramSize' in detailKeys, "VM details do not contain 3D GPU details")
+
+        self.assertEquals('true', qresultset[detailKeys.index('mks.enable3d')][1], "Expected detail 'mks.enable3d'='true'")
+
+        self.assertEquals('automatic', qresultset[detailKeys.index('mks.use3dRenderer')][1], "Expected detail 'mks.use3dRenderer'='automatic'")
+
+        self.assertEquals('false', qresultset[detailKeys.index('svga.autodetect')][1], "Expected detail 'svga.autodetect'='false'")
+
+        self.assertEquals('131072', qresultset[detailKeys.index('svga.vramSize')][1], "Expected detail 'svga.vramSize'='131072'")
+
+        return
diff --git a/test/integration/smoke/test_deploy_virtio_scsi_vm.py b/test/integration/smoke/test_deploy_virtio_scsi_vm.py
new file mode 100644
index 0000000..fbff31c
--- /dev/null
+++ b/test/integration/smoke/test_deploy_virtio_scsi_vm.py
@@ -0,0 +1,380 @@
+# 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.
+
+# Test from the Marvin - Testing in Python wiki
+
+# All tests inherit from cloudstackTestCase
+from marvin.cloudstackTestCase import cloudstackTestCase
+
+# Import Integration Libraries
+
+# base - contains all resources as entities and defines create, delete,
+# list operations on them
+from marvin.lib.base import (Account,
+                            VirtualMachine,
+                            ServiceOffering,
+                            NetworkOffering,
+                            Network,
+                            Template,
+                            DiskOffering,
+                            StoragePool,
+                            Volume,
+                            Host,
+                            GuestOs)
+
+
+
+# utils - utility classes for common cleanup, external library wrappers etc
+from marvin.lib.utils import cleanup_resources, get_hypervisor_type, validateList
+
+# common - commonly used methods for all tests are listed here
+from marvin.lib.common import get_zone, get_domain, get_template, list_hosts, get_pod
+
+from marvin.sshClient import SshClient
+
+from marvin.codes import FAILED, PASS
+
+from nose.plugins.attrib import attr
+
+import xml.etree.ElementTree as ET
+import code
+import logging
+
+class Templates:
+    """Test data for templates
+    """
+
+    def __init__(self):
+        self.templates = {
+            "kvmvirtioscsi": {
+                "kvm": {
+                    "name": "tiny-kvm-scsi",
+                    "displaytext": "virtio-scsi kvm",
+                    "format": "qcow2",
+                    "hypervisor": "kvm",
+                    "ostype": "Other PV Virtio-SCSI (64-bit)",
+                    "url": "http://dl.openvm.eu/cloudstack/ubuntu/x86_64/ubuntu-16.04-kvm.qcow2.bz2",
+                    "requireshvm": True,
+                    "ispublic": True,
+                    "passwordenabled": True
+                }
+            }
+        }
+
+class TestDeployVirtioSCSIVM(cloudstackTestCase):
+
+    """
+    Test deploy a kvm virtio scsi template
+    """
+    @classmethod
+    def setUpClass(cls):
+        cls.logger = logging.getLogger('TestDeployVirtioSCSIVM')
+        cls.stream_handler = logging.StreamHandler()
+        cls.logger.setLevel(logging.DEBUG)
+        cls.logger.addHandler(cls.stream_handler)
+
+        testClient = super(TestDeployVirtioSCSIVM, cls).getClsTestClient()
+        cls.apiclient = testClient.getApiClient()
+        cls.services = cls.testClient.getParsedTestDataConfig()
+
+        cls.hostConfig = cls.config.__dict__["zones"][0].__dict__["pods"][0].__dict__["clusters"][0].__dict__["hosts"][0].__dict__
+        cls.hypervisorNotSupported = False
+        cls.hypervisor = testClient.getHypervisorInfo()
+
+        # Get Zone, Domain and templates
+        cls.domain = get_domain(cls.apiclient)
+        cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
+        cls.pod = get_pod(cls.apiclient, cls.zone.id)
+        cls.services['mode'] = cls.zone.networktype
+        cls._cleanup = []
+        if cls.hypervisor.lower() not in ['kvm']:
+            cls.hypervisorNotSupported = True
+            return
+        kvmvirtioscsi = Templates().templates["kvmvirtioscsi"]
+        cls.template = Template.register(
+            cls.apiclient,
+            kvmvirtioscsi[cls.hypervisor.lower()],
+            cls.zone.id,
+            hypervisor=cls.hypervisor.lower(),
+            domainid=cls.domain.id)
+        cls.template.download(cls.apiclient)
+
+        if cls.template == FAILED:
+            assert False, "get_template() failed to return template"
+
+        cls.services["domainid"] = cls.domain.id
+        cls.services["small"]["zoneid"] = cls.zone.id
+        cls.services["zoneid"] = cls.zone.id
+        cls.account = Account.create(
+            cls.apiclient,
+            cls.services["account"],
+            domainid=cls.domain.id
+        )
+
+        cls.service_offering = ServiceOffering.create(
+            cls.apiclient,
+            cls.services["service_offerings"]["small"]
+        )
+
+
+        cls.sparse_disk_offering = DiskOffering.create(
+            cls.apiclient,
+            cls.services["sparse_disk_offering"]
+        )
+
+        cls.virtual_machine = VirtualMachine.create(
+            cls.apiclient,
+            cls.services["small"],
+            templateid=cls.template.id,
+            accountid=cls.account.name,
+            domainid=cls.account.domainid,
+            zoneid=cls.zone.id,
+            serviceofferingid=cls.service_offering.id,
+            diskofferingid=cls.sparse_disk_offering.id,
+            mode=cls.zone.networktype
+        )
+
+        hosts = Host.list(cls.apiclient, id=cls.virtual_machine.hostid)
+        if len(hosts) != 1:
+            assert False, "Could not find host with id " + cls.virtual_machine.hostid
+
+        cls.vmhost = hosts[0]
+
+
+
+        password = cls.virtual_machine.resetPassword(cls.apiclient)
+        cls.virtual_machine.username = "ubuntu"
+        cls.virtual_machine.password = password
+        cls._cleanup = [
+            cls.template,
+            cls.service_offering,
+            cls.sparse_disk_offering,
+            cls.account
+        ]
+
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            # Cleanup resources used
+            cleanup_resources(cls.apiclient, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    def setUp(self):
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+        return
+
+    def tearDown(self):
+        try:
+            # Clean up, terminate the created instance, volumes and snapshots
+            cleanup_resources(self.apiclient, self.cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    def verifyVirshState(self, diskcount):
+        host = self.vmhost.ipaddress
+        instancename = self.virtual_machine.instancename
+        virshxml = self.getVirshXML(host, instancename)
+
+        root = ET.fromstring(virshxml)
+
+        scsis = root.findall("./devices/controller[@type='scsi']/alias[@name='scsi0']/..")
+
+        self.assertEqual(len(scsis), 1, "SCSI controller not found")
+
+        scsiindex = scsis[0].get('index')
+        self.assertNotEqual(scsiindex, None, "Could not find index of SCSI controller")
+
+        # find all scsi disks
+        disks = root.findall("./devices/disk[@device='disk']/target[@bus='scsi']/..")
+
+        self.assertEqual(len(disks), diskcount, "Could not find expected number of disks")
+
+        for disk in disks:
+            for child in disk:
+                if child.tag.lower() == "target":
+                    dev = child.get("dev")
+                    self.assert_(dev != None and dev.startswith("sd"), "disk dev is invalid")
+                elif child.tag.lower() == "address":
+                    con = child.get("controller")
+                    self.assertEqual(con, scsiindex, "disk controller not equal to SCSI " \
+                                     "controller index")
+                elif child.tag.lower() == "driver":
+                    discard = child.get("discard")
+                    self.assertEqual(discard, "unmap", "discard settings not unmap")
+
+    def verifyGuestState(self, diskcount):
+        ssh = self.virtual_machine.get_ssh_client(reconnect=True)
+        output = ssh.execute("lspci | grep \"Virtio SCSI\"")
+        self.assertTrue(len(output) > 0, "Could not find virtio scsi controller")
+        output = ssh.execute("lsblk -rS | grep sd")
+        for disk in output:
+            self.logger.debug("disk " + disk + " found")
+
+        self.assertEqual(len(output), diskcount,
+                         "Could not find appropriate number of scsi disks in guest")
+
+    def getVirshXML(self, host, instancename):
+        if host == None:
+            self.logger.debug("getVirshXML: host is none")
+            return ""
+        else:
+            self.logger.debug("host is: " + host)
+        if instancename == None:
+            self.logger.debug("getVirshXML: instancename is none")
+            return ""
+        else:
+            self.logger.debug("instancename is: " + instancename)
+        sshc = SshClient(
+                host=host,
+                port=self.services['configurableData']['host']["publicport"],
+                user=self.hostConfig['username'],
+                passwd=self.hostConfig['password'])
+
+        ssh = sshc.ssh
+
+        chan = ssh.get_transport().open_session()
+        chan.exec_command("virsh dumpxml " + instancename)
+        stdout = ""
+        while True:
+            b = chan.recv(10000)
+            if len(b) == 0:
+                break
+            stdout += b
+
+        stderr = ""
+        while True:
+            b = chan.recv_stderr(10000)
+            if len(b) == 0:
+                break
+            stderr += b
+
+        xstatus = chan.recv_exit_status()
+        chan.close()
+        if xstatus != 0:
+            raise CommandNonzeroException(xstatus, stderr)
+
+        # rely on sshClient to close ssh
+        self.logger.debug("xml is: \n\n%s\n\n" % (stdout))
+        return stdout
+
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
+    def test_01_verify_libvirt(self):
+        """Test that libvirt properly created domain with scsi controller
+        """
+
+        # Validate virsh dumpxml
+        if self.hypervisorNotSupported:
+            self.skipTest("Hypervisor not supported")
+
+        self.verifyVirshState(2)
+
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
+    def test_02_verify_libvirt_after_restart(self):
+        """ Verify that libvirt settings are as expected after a VM stop / start
+        """
+
+        if self.hypervisorNotSupported:
+            self.skipTest("Hypervisor not supported")
+
+        self.virtual_machine.stop(self.apiclient)
+        self.virtual_machine.start(self.apiclient)
+        self.verifyVirshState(2)
+
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
+    def test_03_verify_libvirt_attach_disk(self):
+        """ Verify that libvirt settings are expected after a disk add
+        """
+        if self.hypervisorNotSupported:
+            self.skipTest("Hypervisor not supported")
+
+        self.volume = Volume.create(
+            self.apiclient,
+            self.services,
+            zoneid=self.zone.id,
+            account=self.account.name,
+            domainid=self.account.domainid,
+            diskofferingid=self.sparse_disk_offering.id
+        )
+
+        self.virtual_machine.attach_volume(
+            self.apiclient,
+            self.volume
+        )
+
+        self.verifyVirshState(3)
+
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
+    def test_04_verify_guest_lspci(self):
+        """ Verify that guest sees scsi controller and disks
+        """
+
+        if self.hypervisorNotSupported:
+            self.skipTest("Hypervisor not supported")
+
+        self.verifyGuestState(3)
+
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
+    def test_05_change_vm_ostype_restart(self):
+        """ Update os type to Ubuntu, change vm details rootdiskController
+            explicitly to scsi.
+        """
+        if self.hypervisorNotSupported:
+            self.skipTest("Hypervisor not supported")
+
+        self.virtual_machine.stop(self.apiclient)
+        ostypes = GuestOs.listMapping(self.apiclient, hypervisor="kvm")
+        self.assertTrue(len(ostypes) > 0)
+
+        ostypeid = None
+        for ostype in ostypes:
+            if ostype.osdisplayname == "Ubuntu 16.04 (64-bit)":
+                ostypeid = ostype.ostypeid
+                break
+
+        self.assertIsNotNone(ostypeid,
+                             "Could not find ostypeid for Ubuntu 16.0.4 (64-bit) mapped to kvm")
+
+
+        self.virtual_machine.update(self.apiclient, ostypeid=ostypeid,
+                                    details=[{"rootDiskController":"scsi"}])
+
+        self.virtual_machine.start(self.apiclient)
+
+        self.verifyVirshState(3)
+
+    @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
+    def test_06_verify_guest_lspci_again(self):
+        """ Verify that guest sees scsi controller and disks after switching ostype and rdc
+        """
+        if self.hypervisorNotSupported:
+            self.skipTest("Hypervisor not supported")
+
+        self.verifyGuestState(3)
+
+class CommandNonzeroException(Exception):
+    def __init__(self, code, stderr):
+        self.code = code
+        self.stderr = stderr
+
+    def __str__(self):
+        return "Status code %d: %s" % (self.code, self.stderr)
diff --git a/test/integration/smoke/test_deploy_vm_root_resize.py b/test/integration/smoke/test_deploy_vm_root_resize.py
old mode 100644
new mode 100755
index ff0211c..30a1a94
--- a/test/integration/smoke/test_deploy_vm_root_resize.py
+++ b/test/integration/smoke/test_deploy_vm_root_resize.py
@@ -19,91 +19,188 @@
 
 #All tests inherit from cloudstackTestCase
 from marvin.cloudstackTestCase import cloudstackTestCase
-
 #Import Integration Libraries
-
 #base - contains all resources as entities and defines create, delete, list operations on them
-from marvin.lib.base import Account, VirtualMachine, ServiceOffering
-
+from marvin.lib.base import Account, VirtualMachine, ServiceOffering,\
+    Configurations,StoragePool,Template
 #utils - utility classes for common cleanup, external library wrappers etc
-from marvin.lib.utils import cleanup_resources
-
-#common - commonly used methods for all tests are listed here
-from marvin.lib.common import get_zone, get_domain, get_template, list_volumes
-
-from marvin.codes import FAILED
-
+from marvin.lib.utils import cleanup_resources,validateList
+from marvin.lib.common import get_zone, get_domain, get_template,\
+    list_volumes,list_storage_pools,list_configurations
+from marvin.codes import FAILED,INVALID_INPUT
 from nose.plugins.attrib import attr
-
+from marvin.sshClient import SshClient
+import time
 import re
+from marvin.cloudstackAPI import updateTemplate,registerTemplate
 
-class TestData(object):
-    """Test data object that is required to create resources
-    """
-    def __init__(self):
-        self.testdata = {
-            #data to create an account
-            "account": {
-                "email": "test@test.com",
-                "firstname": "Test",
-                "lastname": "User",
-                "username": "test",
-                "password": "password",
-            },
-            #data reqd for virtual machine creation
-            "virtual_machine" : {
-                "name" : "testvm",
-                "displayname" : "Test VM",
-            },
-            #small service offering
-            "service_offering": {
-                "small": {
-                    "name": "Small Instance",
-                    "displaytext": "Small Instance",
-                    "cpunumber": 1,
-                    "cpuspeed": 100,
-                    "memory": 256,
-                },
-            },
-            "ostype": 'CentOS 5.3 (64-bit)',
-        }
-
-class TestDeployVM(cloudstackTestCase):
+class TestDeployVmRootSize(cloudstackTestCase):
     """Test deploy a VM into a user account
     """
-
-    def setUp(self):
-        self.testdata = TestData().testdata
-        self.apiclient = self.testClient.getApiClient()
-        self.hypervisor = self.testClient.getHypervisorInfo()
+    @classmethod
+    def setUpClass(cls):
+        cls.cloudstacktestclient = super(TestDeployVmRootSize,
+                                     cls).getClsTestClient()
+        cls.api_client = cls.cloudstacktestclient.getApiClient()
+        cls.hypervisor = cls.cloudstacktestclient.getHypervisorInfo().lower()
+        cls.mgtSvrDetails = cls.config.__dict__["mgtSvr"][0].__dict__
 
         # Get Zone, Domain and Default Built-in template
-        self.domain = get_domain(self.apiclient)
-        self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
-        self.testdata["mode"] = self.zone.networktype
-        self.template = get_template(self.apiclient, self.zone.id, self.testdata["ostype"])
-        if self.template == FAILED:
+        cls.domain = get_domain(cls.api_client)
+        cls.zone = get_zone(cls.api_client,
+                            cls.cloudstacktestclient.getZoneForTests())
+        cls.services = cls.testClient.getParsedTestDataConfig()
+        cls.services["mode"] = cls.zone.networktype
+        cls._cleanup = []
+        cls.updateclone = False
+        cls.restartreq = False
+        cls.defaultdiskcontroller = "ide"
+        cls.template = get_template(cls.api_client, cls.zone.id)
+        if cls.template == FAILED:
             assert False, "get_template() failed to return template "
-#       for testing with specific template
-#        self.template = get_template(self.apiclient, self.zone.id, self.testdata["ostype"], templatetype='USER', services = {"template":'31f52a4d-5681-43f7-8651-ad4aaf823618'})
-        
 
         #create a user account
-        self.account = Account.create(
-            self.apiclient,
-            self.testdata["account"],
-            domainid=self.domain.id
+        cls.account = Account.create(
+            cls.api_client,
+            cls.services["account"],
+            domainid=cls.domain.id,admin=True
         )
+        cls._cleanup.append(cls.account)
+        list_pool_resp = list_storage_pools(cls.api_client,
+                                            account=cls.account.name,
+                                            domainid=cls.domain.id)
+        #Identify the storage pool type  and set vmware fullclone to
+        # true if storage is VMFS
+        if cls.hypervisor == 'vmware':
+             # please make sure url of templateregister dictionary in
+             # test_data.config pointing to .ova file
+
+             list_config_storage_response = list_configurations(
+                        cls.api_client
+                        , name=
+                        "vmware.root.disk.controller")
+             cls.defaultdiskcontroller = list_config_storage_response[0].value
+             if list_config_storage_response[0].value == "ide" or \
+                             list_config_storage_response[0].value == \
+                             "osdefault":
+                        Configurations.update(cls.api_client,
+                                              "vmware.root.disk.controller",
+                                              value="scsi")
+
+                        cls.updateclone = True
+                        cls.restartreq = True
+
+             list_config_fullclone_global_response = list_configurations(
+                        cls.api_client
+                        , name=
+                        "vmware.create.full.clone")
+             if list_config_fullclone_global_response[0].value=="false":
+                        Configurations.update(cls.api_client,
+                                              "vmware.create.full.clone",
+                                              value="true")
+
+                        cls.updateclone = True
+                        cls.restartreq = True
+
+             cls.tempobj = Template.register(cls.api_client,
+                                    cls.services["templateregister"],
+                                    hypervisor=cls.hypervisor,
+                                    zoneid=cls.zone.id,
+                                         account=cls.account.name,
+                                         domainid=cls.domain.id
+                                        )
+             cls.tempobj.download(cls.api_client)
+
+             for strpool in list_pool_resp:
+                if strpool.type.lower() == "vmfs" or strpool.type.lower()== "networkfilesystem":
+                    list_config_storage_response = list_configurations(
+                        cls.api_client
+                        , name=
+                        "vmware.create.full.clone",storageid=strpool.id)
+                    res = validateList(list_config_storage_response)
+                    if res[2]== INVALID_INPUT:
+                        raise Exception("Failed to  list configurations ")
+
+                    if list_config_storage_response[0].value == "false":
+                        Configurations.update(cls.api_client,
+                                              "vmware.create.full.clone",
+                                              value="true",
+                                              storageid=strpool.id)
+                        cls.updateclone = True
+                        StoragePool.update(cls.api_client,id=strpool.id,
+                                           tags="scsi")
+                        cls.storageID = strpool.id
+                        break
+             if cls.restartreq:
+                cls.restartServer()
         #create a service offering
-        self.service_offering = ServiceOffering.create(
-            self.apiclient,
-            self.testdata["service_offering"]["small"]
+        cls.service_offering = ServiceOffering.create(
+            cls.api_client,
+            cls.services["service_offering"]
         )
         #build cleanup list
-        self.cleanup = [
-            self.service_offering,
-            self.account
-        ]
+        cls.services_offering_vmware=ServiceOffering.create(
+                cls.api_client,cls.services["service_offering"],tags="scsi")
+        cls._cleanup.extend([cls.service_offering,cls.services_offering_vmware])
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            # Cleanup resources used
+
+            if cls.updateclone:
+                Configurations.update(cls.api_client,
+                                      "vmware.create.full.clone",
+                                      value="false",storageid=cls.storageID)
+                Configurations.update(cls.api_client,
+                                              "vmware.create.full.clone",
+                                              value="false")
+                Configurations.update(cls.api_client,
+                                              "vmware.root.disk.controller",
+                                              value=cls.defaultdiskcontroller)
+
+
+            cleanup_resources(cls.api_client, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    def setUp(self):
+
+        self.apiclient = self.cloudstacktestclient.getApiClient()
+        self.cleanup = []
+        return
+
+    def tearDown(self):
+        try:
+            # Clean up, terminate the created instance, volumes and snapshots
+
+            cleanup_resources(self.apiclient, self.cleanup)
+            pass
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    @classmethod
+    def restartServer(cls):
+        """Restart management server"""
+
+        sshClient = SshClient(
+                    cls.mgtSvrDetails["mgtSvrIp"],
+            22,
+            cls.mgtSvrDetails["user"],
+            cls.mgtSvrDetails["passwd"]
+        )
+        command = "service cloudstack-management stop"
+        sshClient.execute(command)
+
+        command = "service cloudstack-management start"
+        sshClient.execute(command)
+
+        #time.sleep(cls.services["sleep"])
+        time.sleep(300)
+
+        return
 
     @attr(tags = ['advanced', 'basic', 'sg'], required_hardware="true")
     def test_00_deploy_vm_root_resize(self):
@@ -114,36 +211,47 @@
         # 2. root disk has new size per listVolumes
         # 3. Rejects non-supported hypervisor types
         """
-        if(self.hypervisor.lower() == 'kvm'):
-            newrootsize = (self.template.size >> 30) + 2
-            self.virtual_machine = VirtualMachine.create(
-                self.apiclient,
-                self.testdata["virtual_machine"],
-                accountid=self.account.name,
-                zoneid=self.zone.id,
-                domainid=self.account.domainid,
-                serviceofferingid=self.service_offering.id,
-                templateid=self.template.id,
-                rootdisksize=newrootsize
+
+
+        newrootsize = (self.template.size >> 30) + 2
+        if(self.hypervisor.lower() == 'kvm' or self.hypervisor.lower() ==
+            'xenserver'or self.hypervisor.lower() == 'vmware'  ):
+
+            if self.hypervisor=="vmware":
+                self.virtual_machine = VirtualMachine.create(
+                        self.apiclient, self.services["virtual_machine"],
+                        zoneid=self.zone.id,
+                        accountid=self.account.name,
+                        domainid=self.domain.id,
+                        serviceofferingid=self.services_offering_vmware.id,
+                        templateid=self.tempobj.id,
+                        rootdisksize=newrootsize
+                    )
+
+            else:
+                self.virtual_machine = VirtualMachine.create(
+                        self.apiclient, self.services["virtual_machine"],
+                        zoneid=self.zone.id,
+                        accountid=self.account.name,
+                        domainid=self.domain.id,
+                        serviceofferingid=self.service_offering.id,
+                        templateid=self.template.id,
+                        rootdisksize=newrootsize
             )
 
-            list_vms = VirtualMachine.list(self.apiclient, id=self.virtual_machine.id)
 
+
+
+            list_vms = VirtualMachine.list(self.apiclient, id=self.virtual_machine.id)
             self.debug(
-                "Verify listVirtualMachines response for virtual machine: %s"\
+                "Verify listVirtualMachines response for virtual machine: %s" \
                 % self.virtual_machine.id
             )
 
-            self.assertEqual(
-                isinstance(list_vms, list),
-                True,
-                "List VM response was not a valid list"
-            )
-            self.assertNotEqual(
-                len(list_vms),
-                0,
-                "List VM response was empty"
-            )
+            res=validateList(list_vms)
+            self.assertNotEqual(res[2],INVALID_INPUT," Invalid  list VM "
+                                                   "response")
+            self.cleanup.append(self.virtual_machine)
 
             vm = list_vms[0]
             self.assertEqual(
@@ -164,25 +272,27 @@
 
             # get root vol from created vm, verify it is correct size
             list_volume_response = list_volumes(
-                                                self.apiclient,
-                                                virtualmachineid=self.virtual_machine.id,
-                                                type='ROOT',
-                                                listall=True
-                                                )
-
+                self.apiclient,
+                virtualmachineid=self.virtual_machine.id,
+                type='ROOT',
+                listall=True
+            )
+            res=validateList(list_volume_response)
+            self.assertNotEqual(res[2],INVALID_INPUT," Invalid  list VM "
+                                                   "response")
             rootvolume = list_volume_response[0]
             success = False
             if rootvolume is not None and rootvolume.size  == (newrootsize << 30):
                 success = True
 
             self.assertEqual(
-                             success,
-                             True,
-                             "Check if the root volume resized appropriately"
-                            )
+                success,
+                True,
+                "Check if the root volume resized appropriately"
+            )
+
         else:
             self.debug("hypervisor %s unsupported for test 00, verifying it errors properly" % self.hypervisor)
-
             newrootsize = (self.template.size >> 30) + 2
             success = False
             try:
@@ -193,7 +303,7 @@
                     zoneid=self.zone.id,
                     domainid=self.account.domainid,
                     serviceofferingid=self.service_offering.id,
-                    templateid=self.template.id,
+                    templateid=self.tempobj.id,
                     rootdisksize=newrootsize
                 )
             except Exception as ex:
@@ -208,63 +318,91 @@
     def test_01_deploy_vm_root_resize(self):
         """Test proper failure to deploy virtual machine with rootdisksize of 0
         """
-        if (self.hypervisor.lower() == 'kvm'):
-            newrootsize = 0
-            success = False
+        newrootsize=0
+        success=False
+
+
+        if(self.hypervisor.lower() == 'kvm' or self.hypervisor.lower() ==
+                'xenserver'or self.hypervisor.lower() == 'vmware'  ):
             try:
-                self.virtual_machine = VirtualMachine.create(
-                    self.apiclient,
-                    self.testdata["virtual_machine"],
-                    accountid=self.account.name,
-                    zoneid=self.zone.id,
-                    domainid=self.account.domainid,
-                    serviceofferingid=self.service_offering.id,
-                    templateid=self.template.id,
-                    rootdisksize=newrootsize
+                if self.hypervisor=="vmware":
+                     self.virtual_machine = VirtualMachine.create(
+                        self.apiclient, self.services["virtual_machine"],
+                        zoneid=self.zone.id,
+                        accountid=self.account.name,
+                        domainid=self.domain.id,
+                        serviceofferingid=self.services_offering_vmware.id,
+                        templateid=self.tempobj.id,
+                        rootdisksize=newrootsize
+                    )
+
+                else:
+                     self.virtual_machine = VirtualMachine.create(
+                        self.apiclient, self.services["virtual_machine"],
+                        zoneid=self.zone.id,
+                        accountid=self.account.name,
+                        domainid=self.domain.id,
+                        serviceofferingid=self.service_offering.id,
+                        templateid=self.template.id,
+                        rootdisksize=newrootsize
                 )
             except Exception as ex:
                 if "rootdisk size should be a non zero number" in str(ex):
                     success = True
                 else:
                     self.debug("virtual machine create did not fail appropriately. Error was actually : " + str(ex));
-
             self.assertEqual(success, True, "Check if passing 0 as rootdisksize fails appropriately")
         else:
-            self.debug("test 01 does not support hypervisor type " + self.hypervisor);
+                self.debug("test 01 does not support hypervisor type " + self.hypervisor)
+
+
 
     @attr(tags = ['advanced', 'basic', 'sg'], required_hardware="true", BugId="CLOUDSTACK-6984")
     def test_02_deploy_vm_root_resize(self):
         """Test proper failure to deploy virtual machine with rootdisksize less than template size
         """
-        if (self.hypervisor.lower() == 'kvm'):
-            newrootsize = (self.template.size >> 30) - 1
+        newrootsize = (self.template.size >> 30) - 1
+        success=False
+        self.assertEqual(newrootsize > 0, True, "Provided template is less than 1G in size, cannot run test")
 
-            self.assertEqual(newrootsize > 0, True, "Provided template is less than 1G in size, cannot run test")
-
-            success = False
+        if(self.hypervisor.lower() == 'kvm' or self.hypervisor.lower() ==
+                'xenserver'or self.hypervisor.lower() == 'vmware'  ):
             try:
-                self.virtual_machine = VirtualMachine.create(
-                    self.apiclient,
-                    self.testdata["virtual_machine"],
-                    accountid=self.account.name,
-                    zoneid=self.zone.id,
-                    domainid=self.account.domainid,
-                    serviceofferingid=self.service_offering.id,
-                    templateid=self.template.id,
-                    rootdisksize=newrootsize
+                if self.hypervisor=="vmware":
+                    self.virtual_machine = VirtualMachine.create(
+                            self.apiclient, self.services["virtual_machine"],
+                            zoneid=self.zone.id,
+                            accountid=self.account.name,
+                            domainid=self.domain.id,
+                            serviceofferingid=self.services_offering_vmware.id,
+                            templateid=self.tempobj.id,
+                            rootdisksize=newrootsize
+                        )
+
+                else:
+                    self.virtual_machine = VirtualMachine.create(
+                            self.apiclient, self.services["virtual_machine"],
+                            zoneid=self.zone.id,
+                            accountid=self.account.name,
+                            domainid=self.domain.id,
+                            serviceofferingid=self.service_offering.id,
+                            templateid=self.template.id,
+                            rootdisksize=newrootsize
                 )
             except Exception as ex:
-                if "rootdisksize override is smaller than template size" in str(ex):
-                    success = True
-                else:
-                    self.debug("virtual machine create did not fail appropriately. Error was actually : " + str(ex));
+                    if "rootdisksize override is smaller than template size" in str(ex):
+                        success = True
+                    else:
+                        self.debug("virtual machine create did not fail appropriately. Error was actually : " + str(ex));
 
             self.assertEqual(success, True, "Check if passing rootdisksize < templatesize fails appropriately")
         else:
-            self.debug("test 01 does not support hypervisor type " + self.hypervisor);
+            self.debug("test 02 does not support hypervisor type " +
+                       self.hypervisor)
 
     def tearDown(self):
         try:
             cleanup_resources(self.apiclient, self.cleanup)
         except Exception as e:
             self.debug("Warning! Exception in tearDown: %s" % e)
+
diff --git a/test/integration/smoke/test_internal_lb.py b/test/integration/smoke/test_internal_lb.py
index f2f9364..5b4c663 100644
--- a/test/integration/smoke/test_internal_lb.py
+++ b/test/integration/smoke/test_internal_lb.py
@@ -705,8 +705,12 @@
                 self.apiclient, name="network.loadbalancer.haproxy.stats.port")[0].value
             settings["stats_uri"] = Configurations.list(
                 self.apiclient, name="network.loadbalancer.haproxy.stats.uri")[0].value
-            settings["username"], settings["password"] = Configurations.list(
-                self.apiclient, name="network.loadbalancer.haproxy.stats.auth")[0].value.split(":")
+            # Update global setting network.loadbalancer.haproxy.stats.auth to a known value
+            haproxy_auth = "admin:password"
+            Configurations.update(self.apiclient, "network.loadbalancer.haproxy.stats.auth", haproxy_auth)
+            self.logger.debug(
+                "Updated global setting stats network.loadbalancer.haproxy.stats.auth to %s" % (haproxy_auth))
+            settings["username"], settings["password"] = haproxy_auth.split(":")
             settings["visibility"] = Configurations.list(
                 self.apiclient, name="network.loadbalancer.haproxy.stats.visibility")[0].value
             self.logger.debug(settings)
diff --git a/test/integration/smoke/test_nested_virtualization.py b/test/integration/smoke/test_nested_virtualization.py
new file mode 100755
index 0000000..3b03f77
--- /dev/null
+++ b/test/integration/smoke/test_nested_virtualization.py
@@ -0,0 +1,152 @@
+# 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.
+""" Tests for Nested Virtualization
+"""
+#Import Local Modules
+from marvin.codes import FAILED
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.lib.utils import (cleanup_resources,
+                              get_hypervisor_type,
+                              get_process_status)
+from marvin.lib.base import (Account,
+                             ServiceOffering,
+                             NetworkOffering,
+                             Configurations,
+                             VirtualMachine,
+                             Network)
+from marvin.lib.common import (get_zone,
+                               get_domain,
+                               get_template)
+from nose.plugins.attrib import attr
+from marvin.sshClient import SshClient
+import logging
+
+class TestNestedVirtualization(cloudstackTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        testClient = super(TestNestedVirtualization, cls).getClsTestClient()
+        cls.apiclient = testClient.getApiClient()
+        cls.services = testClient.getParsedTestDataConfig()
+        
+        cls.logger = logging.getLogger('TestNestedVirtualization')
+        cls.stream_handler = logging.StreamHandler()
+        cls.logger.setLevel(logging.DEBUG)
+        cls.logger.addHandler(cls.stream_handler)
+
+        cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
+        cls.services['mode'] = cls.zone.networktype
+        cls.services["isolated_network"]["zoneid"] = cls.zone.id
+        cls.domain = get_domain(cls.apiclient)
+        cls.service_offering = ServiceOffering.create(
+            cls.apiclient,
+            cls.services["service_offerings"]["tiny"]
+        )
+        cls.account = Account.create(cls.apiclient, services=cls.services["account"])
+        cls.template = get_template(
+            cls.apiclient,
+            cls.zone.id,
+            cls.services["ostype"]
+        )
+        cls.hypervisor = get_hypervisor_type(cls.apiclient)
+        
+        cls.isolated_network_offering = NetworkOffering.create(
+                                                cls.apiclient,
+                                                cls.services["isolated_network_offering"])
+        # Enable Isolated Network offering
+        cls.isolated_network_offering.update(cls.apiclient, state='Enabled')
+        
+        if cls.template == FAILED:
+            assert False, "get_template() failed to return template with description %s" % cls.services["ostype"]
+            
+        cls.services["small"]["zoneid"] = cls.zone.id
+        cls.services["small"]["template"] = cls.template.id
+
+        cls.cleanup = [cls.account]
+
+    @attr(tags=["advanced"], required_hardware="true")
+    def test_nested_virtualization_vmware(self):
+        """Test nested virtualization on Vmware hypervisor"""
+        if self.hypervisor.lower() not in ["vmware"]:
+             self.skipTest("Skipping test because suitable hypervisor/host not present")
+             
+        # 1) Update nested virtualization configurations, if needed
+        configs = Configurations.list(self.apiclient, name="vmware.nested.virtualization")
+        rollback_nv = False
+        rollback_nv_per_vm = False
+        for conf in configs:
+            if (conf.name == "vmware.nested.virtualization" and conf.value == "false"):
+                config_update = Configurations.update(self.apiclient, "vmware.nested.virtualization", "true")
+                self.logger.debug("Updated global setting vmware.nested.virtualization to true")
+                rollback_nv = True
+            elif (conf.name == "vmware.nested.virtualization.perVM" and conf.value == "false"):
+                config_update = Configurations.update(self.apiclient, "vmware.nested.virtualization.perVM", "true")
+                self.logger.debug("Updated global setting vmware.nested.virtualization.perVM to true")
+                rollback_nv_per_vm = True
+                
+        # 2) Deploy a vm
+        virtual_machine = VirtualMachine.create(
+            self.apiclient,
+            self.services["small"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            serviceofferingid=self.service_offering.id,
+            mode=self.services['mode']
+        )
+        self.assert_(virtual_machine is not None, "VM failed to deploy")
+        self.assert_(virtual_machine.state == 'Running', "VM is not running")
+        self.logger.debug("Deployed vm: %s" % virtual_machine.id)
+        
+        isolated_network = Network.create(
+            self.apiclient,
+            self.services["isolated_network"],
+            self.account.name,
+            self.account.domainid,
+            networkofferingid=self.isolated_network_offering.id)
+
+        virtual_machine.add_nic(self.apiclient, isolated_network.id)
+        
+        # 3) SSH into vm
+        ssh_client = virtual_machine.get_ssh_client()
+
+        if ssh_client:
+            # run ping test
+            result = ssh_client.execute("cat /proc/cpuinfo | grep flags")
+            self.logger.debug(result)
+        else:
+            self.fail("Failed to setup ssh connection to %s" % virtual_machine.public_ip)
+            
+        # 4) Revert configurations, if needed
+        if rollback_nv:
+            config_update = Configurations.update(self.apiclient, "vmware.nested.virtualization", "false")
+            self.logger.debug("Reverted global setting vmware.nested.virtualization back to false")
+        if rollback_nv_per_vm:
+            config_update = Configurations.update(self.apiclient, "vmware.nested.virtualization", "false")
+            self.logger.debug("Reverted global setting vmware.nested.virtualization.perVM back to false")
+            
+        #5) Check for CPU flags: vmx for Intel and svm for AMD indicates nested virtualization is enabled
+        self.assert_(result is not None, "Empty result for CPU flags")
+        res = str(result)
+        self.assertTrue('vmx' in res or 'svm' in res)
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            cleanup_resources(cls.apiclient, cls.cleanup)
+        except Exception, e:
+            raise Exception("Cleanup failed with %s" % e)
+    
\ No newline at end of file
diff --git a/test/integration/smoke/test_primary_storage.py b/test/integration/smoke/test_primary_storage.py
index b1759a5..ab67de0 100644
--- a/test/integration/smoke/test_primary_storage.py
+++ b/test/integration/smoke/test_primary_storage.py
@@ -24,6 +24,8 @@
 from marvin.lib.base import *
 from marvin.lib.common import *
 from nose.plugins.attrib import attr
+import logging
+from marvin.lib.decoratorGenerators import skipTestIf
 
 #Import System modules
 import time
@@ -246,3 +248,333 @@
             self.cleanup = []
 
         return
+
+class StorageTagsServices:
+    """Test Storage Tags Data Class.
+    """
+    def __init__(self):
+        self.storage_tags = {
+            "a" : "NFS-A",
+            "b" : "NFS-B"
+        }
+    
+class TestStorageTags(cloudstackTestCase):
+    
+    @classmethod
+    def setUpClass(cls):
+        cls.logger = logging.getLogger('TestStorageTags')
+        cls.stream_handler = logging.StreamHandler()
+        cls.logger.setLevel(logging.DEBUG)
+        cls.logger.addHandler(cls.stream_handler)
+        
+        test_case = super(TestStorageTags, cls)
+        testClient = test_case.getClsTestClient()
+        cls.config = test_case.getClsConfig()
+        cls.apiclient = testClient.getApiClient()
+        cls.services = testClient.getParsedTestDataConfig()
+        cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
+        cls.pod = get_pod(cls.apiclient, cls.zone.id)
+        cls.hypervisor = testClient.getHypervisorInfo()
+        cls.domain = get_domain(cls.apiclient)
+        cls.template = get_template(
+            cls.apiclient,
+            cls.zone.id,
+            cls.services["ostype"]
+        )
+        cls.services["virtual_machine"]["zoneid"] = cls.zone.id
+        cls.services["virtual_machine"]["template"] = cls.template.id
+        cls.services["storage_tags"] = StorageTagsServices().storage_tags
+        
+        cls.hypervisorNotSupported = False
+        if cls.hypervisor.lower() in ["hyperv"]:
+            cls.hypervisorNotSupported = True
+        cls._cleanup = []
+        
+        if not cls.hypervisorNotSupported:
+            
+            cls.clusters = list_clusters(
+                cls.apiclient,
+                zoneid=cls.zone.id
+            )
+            assert isinstance(cls.clusters, list) and len(cls.clusters) > 0
+    
+            # Create PS with Storage Tag
+            cls.storage_pool_1 = StoragePool.create(cls.apiclient,
+                                         cls.services["nfs"],
+                                         clusterid=cls.clusters[0].id,
+                                         zoneid=cls.zone.id,
+                                         podid=cls.pod.id,
+                                         tags=cls.services["storage_tags"]["a"]
+            )
+            #PS not appended to _cleanup, it is removed on tearDownClass before cleaning up resources
+            assert cls.storage_pool_1.state == 'Up'
+            storage_pools_response = list_storage_pools(cls.apiclient,
+                                                        id=cls.storage_pool_1.id)
+            assert isinstance(storage_pools_response, list) and len(storage_pools_response) > 0
+            storage_response = storage_pools_response[0]
+            assert storage_response.id == cls.storage_pool_1.id and storage_response.type == cls.storage_pool_1.type
+            
+            # Create Service Offerings with different Storage Tags
+            cls.service_offering_1 = ServiceOffering.create(
+                cls.apiclient,
+                cls.services["service_offerings"]["tiny"],
+                tags=cls.services["storage_tags"]["a"]
+            )
+            cls._cleanup.append(cls.service_offering_1)
+            cls.service_offering_2 = ServiceOffering.create(
+                cls.apiclient,
+                cls.services["service_offerings"]["tiny"],
+                tags=cls.services["storage_tags"]["b"]
+            )
+            cls._cleanup.append(cls.service_offering_2)
+            
+            # Create Disk Offerings with different Storage Tags
+            cls.disk_offering_1 = DiskOffering.create(
+                cls.apiclient,
+                cls.services["disk_offering"],
+                tags=cls.services["storage_tags"]["a"]
+            )
+            cls._cleanup.append(cls.disk_offering_1)
+            cls.disk_offering_2 = DiskOffering.create(
+                cls.apiclient,
+                cls.services["disk_offering"],
+                tags=cls.services["storage_tags"]["b"]
+            )
+            cls._cleanup.append(cls.disk_offering_2)
+            
+            # Create Account
+            cls.account = Account.create(
+                cls.apiclient,
+                cls.services["account"],
+                domainid=cls.domain.id
+            )
+            cls._cleanup.append(cls.account)
+            
+            # Create VM-1 with using Service Offering 1
+            cls.virtual_machine_1 = VirtualMachine.create(
+                cls.apiclient,
+                cls.services["virtual_machine"],
+                accountid=cls.account.name,
+                domainid=cls.account.domainid,
+                templateid=cls.template.id,
+                serviceofferingid=cls.service_offering_1.id,
+                hypervisor=cls.hypervisor,
+                mode=cls.zone.networktype
+            )
+            # VM-1 not appended to _cleanup, it is expunged on tearDownClass before cleaning up resources
+            
+        return
+    
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            # First expunge vm, so PS can be cleaned up
+            cls.virtual_machine_1.delete(cls.apiclient)
+
+            # Force delete primary storage
+            cmd = enableStorageMaintenance.enableStorageMaintenanceCmd()
+            cmd.id = cls.storage_pool_1.id
+            cls.apiclient.enableStorageMaintenance(cmd)
+            time.sleep(30)
+            cmd = deleteStoragePool.deleteStoragePoolCmd()
+            cmd.id = cls.storage_pool_1.id
+            cmd.forced = True
+            cls.apiclient.deleteStoragePool(cmd)
+            
+            cleanup_resources(cls.apiclient, cls._cleanup)
+        except Exception as e:
+            raise Exception("Cleanup failed with %s" % e)
+    
+    def setUp(self):
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+        return
+
+    def tearDown(self):
+        try:
+            cleanup_resources(self.apiclient, self.cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+    
+    @attr(tags=["advanced", "advancedns", "smoke", "basic", "sg"], required_hardware="false")
+    @skipTestIf("hypervisorNotSupported")
+    def test_01_deploy_vms_storage_tags(self):
+        """Test Deploy VMS using different Service Offerings with Storage Tags
+        """
+        
+        # Save cleanup size before trying to deploy VM-2
+        cleanup_size = len(self.cleanup)
+        
+        # Try deploying VM-2 using CO-2 -> Should fail to find storage and fail deployment
+        try:
+            self.virtual_machine_2 = VirtualMachine.create(
+                self.apiclient,
+                self.services["virtual_machine"],
+                accountid=self.account.name,
+                domainid=self.account.domainid,
+                templateid=self.template.id,
+                serviceofferingid=self.service_offering_2.id,
+                hypervisor=self.hypervisor
+            )
+            self.cleanup.append(self.virtual_machine_2)
+        except Exception as e:
+            self.debug("Expected exception %s: " % e)
+        
+        self.debug("Asssert that vm2 was not deployed, so it couldn't be appended to cleanup")
+        self.assertEquals(cleanup_size, len(self.cleanup))
+        
+        # Create V-1 using DO-1
+        self.volume_1 = Volume.create(
+           self.apiclient,
+           self.services,
+           zoneid=self.zone.id,
+           account=self.account.name,
+           domainid=self.account.domainid,
+           diskofferingid=self.disk_offering_1.id
+        )
+        self.cleanup.append(self.volume_1)
+        
+        # Create V-2 using DO-2
+        self.volume_2 = Volume.create(
+           self.apiclient,
+           self.services,
+           zoneid=self.zone.id,
+           account=self.account.name,
+           domainid=self.account.domainid,
+           diskofferingid=self.disk_offering_2.id
+        )
+        self.cleanup.append(self.volume_2)
+        
+        # Try attaching V-2 to VM-1 -> Should fail finding storage and fail attachment
+        try:
+            self.virtual_machine_1.attach_volume(
+                self.apiclient,
+                self.volume_2
+            )
+        except Exception as e:
+            self.debug("Expected exception %s: " % e)
+        
+        vm_1_volumes = Volume.list(
+            self.apiclient,
+            virtualmachineid=self.virtual_machine_1.id,
+            type='DATADISK',
+            listall=True
+        )
+        self.debug("VM-1 Volumes: %s" % vm_1_volumes)
+        self.assertEquals(None, vm_1_volumes, "Check that volume V-2 has not been attached to VM-1")
+        
+        # Attach V_1 to VM_1
+        self.virtual_machine_1.attach_volume(self.apiclient,self.volume_1)
+        vm_1_volumes = Volume.list(
+            self.apiclient,
+            virtualmachineid=self.virtual_machine_1.id,
+            type='DATADISK',
+            listall=True
+        )
+        self.debug("VM-1 Volumes: %s" % vm_1_volumes)
+        self.assertEquals(vm_1_volumes[0].id, self.volume_1.id, "Check that volume V-1 has been attached to VM-1")
+        self.virtual_machine_1.detach_volume(self.apiclient, self.volume_1)
+        
+        return
+    
+    def check_storage_pool_tag(self, poolid, tag):
+        cmd = listStorageTags.listStorageTagsCmd()
+        storage_tags_response = self.apiclient.listStorageTags(cmd)
+        pool_tags = filter(lambda x: x.poolid == poolid, storage_tags_response)
+        self.assertEquals(1, len(pool_tags), "Check storage tags size")
+        self.assertEquals(tag, pool_tags[0].name, "Check storage tag on storage pool")
+    
+    @attr(tags=["advanced", "advancedns", "smoke", "basic", "sg"], required_hardware="false")
+    @skipTestIf("hypervisorNotSupported")
+    def test_02_edit_primary_storage_tags(self):
+        """ Test Edit Storage Tags
+        """
+        
+        qresultset = self.dbclient.execute(
+            "select id from storage_pool where uuid = '%s';"
+            % str(self.storage_pool_1.id)
+        )
+        self.assertEquals(1, len(qresultset), "Check DB Query result set")
+        qresult = qresultset[0]
+        storage_pool_db_id = qresult[0]
+        
+        self.check_storage_pool_tag(storage_pool_db_id, self.services["storage_tags"]["a"])
+        
+        # Update Storage Tag
+        StoragePool.update(
+            self.apiclient,
+            id=self.storage_pool_1.id,
+            tags=self.services["storage_tags"]["b"]
+        )
+        
+        self.check_storage_pool_tag(storage_pool_db_id, self.services["storage_tags"]["b"])
+        
+        # Revert Storage Tag
+        StoragePool.update(
+            self.apiclient,
+            id=self.storage_pool_1.id,
+            tags=self.services["storage_tags"]["a"]
+        )
+        
+        self.check_storage_pool_tag(storage_pool_db_id, self.services["storage_tags"]["a"])
+        
+        return
+    
+    @attr(tags=["advanced", "advancedns", "smoke", "basic", "sg"], required_hardware="false")
+    @skipTestIf("hypervisorNotSupported")
+    def test_03_migration_options_storage_tags(self):
+        """ Test Volume migration options for Storage Pools with different Storage Tags
+        """
+        
+        # Create PS-2 using Storage Tag
+        storage_pool_2 = StoragePool.create(self.apiclient,
+                                             self.services["nfs2"],
+                                             clusterid=self.clusters[0].id,
+                                             zoneid=self.zone.id,
+                                             podid=self.pod.id,
+                                             tags=self.services["storage_tags"]["a"]
+        )
+        self.cleanup.append(storage_pool_2)
+        assert storage_pool_2.state == 'Up'
+        storage_pools_response = list_storage_pools(self.apiclient,
+                                                    id=storage_pool_2.id)
+        assert isinstance(storage_pools_response, list) and len(storage_pools_response) > 0
+        storage_response = storage_pools_response[0]
+        assert storage_response.id == storage_pool_2.id and storage_response.type == storage_pool_2.type
+        
+        vm_1_volumes = Volume.list(
+            self.apiclient,
+            virtualmachineid=self.virtual_machine_1.id,
+            type='ROOT',
+            listall=True
+        )
+        vol = vm_1_volumes[0]
+        
+        if self.hypervisor.lower() not in ["vmware", "xenserver"]:
+            self.virtual_machine_1.stop(self.apiclient)
+            
+        # Check migration options for volume
+        pools_response = StoragePool.listForMigration(
+            self.apiclient,
+            id=vol.id
+        )
+        pools_suitable = filter(lambda p : p.suitableformigration, pools_response)
+        self.assertEquals(1, len(pools_suitable), "Check that there is only one item on the list")
+        self.assertEquals(pools_suitable[0].id, storage_pool_2.id, "Check that PS-2 is the migration option for volume")
+        
+        # Update PS-2 Storage Tags
+        StoragePool.update(
+            self.apiclient,
+            id=storage_pool_2.id,
+            tags=self.services["storage_tags"]["b"]
+        )
+        
+        # Check migration options for volume after updating PS-2 Storage Tags
+        pools_response = StoragePool.listForMigration(
+            self.apiclient,
+            id=vol.id
+        )
+        pools_suitable = filter(lambda p : p.suitableformigration, pools_response)
+        self.assertEquals(0, len(pools_suitable), "Check that there is no migration option for volume")
+        
+        return
\ No newline at end of file
diff --git a/test/integration/smoke/test_snapshots.py b/test/integration/smoke/test_snapshots.py
index 63f3e2c..5761262 100644
--- a/test/integration/smoke/test_snapshots.py
+++ b/test/integration/smoke/test_snapshots.py
@@ -281,7 +281,7 @@
         # 4 - Migrate volume V to PS
         # 5 - Take volume V snapshot -> S
         # 6 - List snapshot and verify it gets properly listed although Primary Storage was removed
-
+        
         # Create new volume
         vol = Volume.create(
             self.apiclient,
@@ -302,7 +302,7 @@
             PASS,
             "Invalid response returned for list volumes")
         vol_uuid = vol_res[0].id
-
+        
         # Create new Primary Storage
         clusters = list_clusters(
             self.apiclient,
diff --git a/test/integration/smoke/test_ssvm.py b/test/integration/smoke/test_ssvm.py
index 81dba32..48512e2 100644
--- a/test/integration/smoke/test_ssvm.py
+++ b/test/integration/smoke/test_ssvm.py
@@ -20,12 +20,13 @@
 from marvin.cloudstackTestCase import cloudstackTestCase
 from marvin.cloudstackAPI import (stopSystemVm,
                                   rebootSystemVm,
-                                  destroySystemVm)
+                                  destroySystemVm, updateConfiguration)
 from marvin.lib.utils import (cleanup_resources,
                               get_process_status,
-                              get_host_credentials)
+                              get_host_credentials,
+                              wait_until)
 from marvin.lib.base import (PhysicalNetwork,
-                             NetScaler)
+                             NetScaler, ImageStore)
 from marvin.lib.common import (get_zone,
                                list_hosts,
                                list_ssvms,
@@ -33,6 +34,7 @@
                                list_vlan_ipranges)
 from nose.plugins.attrib import attr
 import telnetlib
+import logging
 
 # Import System modules
 import time
@@ -42,12 +44,19 @@
 class TestSSVMs(cloudstackTestCase):
 
     def setUp(self):
+	test_case = super(TestSSVMs, self)
         self.apiclient = self.testClient.getApiClient()
         self.hypervisor = self.testClient.getHypervisorInfo()
         self.cleanup = []
+        self.config = test_case.getClsConfig()
         self.services = self.testClient.getParsedTestDataConfig()
         self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
 
+        self.logger = logging.getLogger('TestSSVMs')
+        self.stream_handler = logging.StreamHandler()
+        self.logger.setLevel(logging.DEBUG)
+        self.logger.addHandler(self.stream_handler)
+
         # Default sleep is set to 90 seconds, which is too long if the SSVM takes up to 2min to start.
         # Second sleep in the loop will waste test time.
         self.services["sleep"] = 30
@@ -471,7 +480,7 @@
                             credentials to check router services")
         res = str(result)
         self.debug("Cloud Process status: %s" % res)
-        # cloud.com service (type=secstorage) is running: process id: 2346
+        # Apache CloudStack service (type=secstorage) is running: process id: 2346
         self.assertEqual(
             res.count("is running"),
             1,
@@ -1197,3 +1206,162 @@
         # Call to verify cloud process is running
         self.test_04_cpvm_internals()
         return
+
+    @attr(
+        tags=[
+            "advanced",
+            "advancedns",
+            "smoke",
+            "basic",
+            "sg"],
+        required_hardware="true")
+    def test_11_ss_nfs_version_on_ssvm(self):
+        """Test NFS Version on Secondary Storage mounted properly on SSVM
+        """
+
+        # 1) List SSVM in zone
+        # 2) Get id and url from mounted nfs store
+        # 3) Update NFS version for previous image store
+        # 4) Stop SSVM
+        # 5) Check NFS version of mounted nfs store after SSVM starts 
+
+        nfs_version = self.config.nfsVersion
+        if nfs_version == None:
+            self.skipTest('No NFS version provided in test data')
+
+        #List SSVM for zone id
+        list_ssvm_response = list_ssvms(
+            self.apiclient,
+            systemvmtype='secondarystoragevm',
+            state='Running',
+            zoneid=self.zone.id
+        )
+        self.assertNotEqual(
+            list_ssvm_response,
+            None
+        )
+        self.assertEqual(
+            isinstance(list_ssvm_response, list),
+            True,
+            "Check list response returns a valid list"
+        )
+        self.assertEqual(
+            len(list_ssvm_response),
+            1,
+            "Check list System VMs response"
+        )
+
+        ssvm = list_ssvm_response[0]
+        image_stores_response = ImageStore.list(self.apiclient,zoneid=self.zone.id)
+
+        if self.hypervisor.lower() in ('vmware', 'hyperv'):
+            # SSH into SSVMs is done via management server for Vmware and Hyper-V
+            result = get_process_status(
+                self.apiclient.connection.mgtSvr,
+                22,
+                self.apiclient.connection.user,
+                self.apiclient.connection.passwd,
+                ssvm.privateip,
+                "mount | grep 'type nfs'",
+                hypervisor=self.hypervisor)
+
+        for res in result:
+            split_res = res.split("on")
+            mounted_img_store_url = split_res[0].strip()
+            for img_store in image_stores_response:
+                img_store_url = str(img_store.url)
+                if img_store_url.startswith("nfs://"):
+                    img_store_url = img_store_url[6:]
+                    #Add colon after ip address to match output from mount command
+                    first_slash = img_store_url.find('/')
+                    img_store_url = img_store_url[0:first_slash] + ':' + img_store_url[first_slash:]
+                    if img_store_url == mounted_img_store_url:
+                        img_store_id = img_store.id
+                        break
+
+        self.assertNotEqual(
+            img_store_id,
+            None,
+            "Check image store id mounted on SSVM"
+        )
+
+        #Update NFS version for image store mounted on SSVM
+        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
+        updateConfigurationCmd.name = "secstorage.nfs.version"
+        updateConfigurationCmd.value = nfs_version
+        updateConfigurationCmd.imagestoreuuid = img_store_id
+
+        updateConfigurationResponse = self.apiclient.updateConfiguration(updateConfigurationCmd)
+        self.logger.debug("updated the parameter %s with value %s"%(updateConfigurationResponse.name, updateConfigurationResponse.value))
+
+        #Stop SSVM
+        self.debug("Stopping SSVM: %s" % ssvm.id)
+        cmd = stopSystemVm.stopSystemVmCmd()
+        cmd.id = ssvm.id
+        self.apiclient.stopSystemVm(cmd)
+
+        def checkForRunningSSVM():
+            new_list_ssvm_response = list_ssvms(
+                self.apiclient,
+                id=ssvm.id
+            )
+            if isinstance(new_list_ssvm_response, list):
+                return new_list_ssvm_response[0].state == 'Running', None                
+            
+        res, _ = wait_until(self.services["sleep"], self.services["timeout"], checkForRunningSSVM)
+        if not res:
+            self.fail("List SSVM call failed!")
+        
+        new_list_ssvm_response = list_ssvms(
+                self.apiclient,
+                id=ssvm.id
+        )
+
+        self.assertNotEqual(
+            new_list_ssvm_response,
+            None
+        )
+        self.assertEqual(
+            isinstance(new_list_ssvm_response, list),
+            True,
+            "Check list response returns a valid list"
+        )
+        ssvm = new_list_ssvm_response[0]
+        self.debug("SSVM state after debug: %s" % ssvm.state)
+        self.assertEqual(
+            ssvm.state,
+            'Running',
+            "Check whether SSVM is running or not"
+        )
+        # Wait for the agent to be up
+        self.waitForSystemVMAgent(ssvm.name)
+
+        #Check NFS version on mounted image store
+        result = get_process_status(
+                self.apiclient.connection.mgtSvr,
+                22,
+                self.apiclient.connection.user,
+                self.apiclient.connection.passwd,
+                ssvm.privateip,
+                "mount | grep '%s'"%mounted_img_store_url,
+                hypervisor=self.hypervisor)
+
+        self.assertNotEqual(
+            result,
+            None
+        )
+        self.assertEqual(
+            len(result),
+            1,
+            "Check result length"
+        )
+
+        res = result[0]
+        mounted_nfs_version = res.split("vers=")[1][0:1]
+        self.assertEqual(
+            int(mounted_nfs_version),
+            int(nfs_version),
+            "Check mounted NFS version to be the same as provided"
+        )
+
+        return
diff --git a/test/integration/smoke/test_templates.py b/test/integration/smoke/test_templates.py
index 175f44e..a621a0a 100644
--- a/test/integration/smoke/test_templates.py
+++ b/test/integration/smoke/test_templates.py
@@ -795,7 +795,7 @@
                         "ListTemplates should not list any system templates"
                         )
         return
-
+		
 class TestCopyDeleteTemplate(cloudstackTestCase):
 
     def setUp(self):
@@ -902,7 +902,7 @@
             cleanup_resources(cls.apiclient, cls._cleanup)
 
         except Exception as e:
-           raise Exception("Warning: Exception during cleanup : %s" % e)
+           raise Exception("Warning: Exception during cleanup : %s" % e) 
 
         return
 
@@ -918,10 +918,10 @@
             self.skipTest(
                 "Skipping test due to there are less than two zones.")
         return
-
+			
 	self.sourceZone = zones[0]
 	self.destZone = zones[1]
-
+            
         template = Template.create(
                                 self.apiclient,
                                 self.services["template"],
diff --git a/test/integration/smoke/test_vm_snapshots.py b/test/integration/smoke/test_vm_snapshots.py
index 9295ec1..4bfe66a 100644
--- a/test/integration/smoke/test_vm_snapshots.py
+++ b/test/integration/smoke/test_vm_snapshots.py
@@ -16,10 +16,10 @@
 # under the License.
 
 # Import Local Modules
-from marvin.codes import FAILED, KVM, PASS, XEN_SERVER
+from marvin.codes import FAILED, KVM, PASS, XEN_SERVER, RUNNING
 from nose.plugins.attrib import attr
 from marvin.cloudstackTestCase import cloudstackTestCase
-from marvin.lib.utils import random_gen, cleanup_resources, validateList, is_snapshot_on_nfs
+from marvin.lib.utils import random_gen, cleanup_resources, validateList, is_snapshot_on_nfs, isAlmostEqual
 from marvin.lib.base import (Account,
                              ServiceOffering,
                              VirtualMachine,
@@ -27,7 +27,8 @@
 from marvin.lib.common import (get_zone,
                                get_domain,
                                get_template,
-                               list_snapshots)
+                               list_snapshots,
+                               list_virtual_machines)
 import time
 
 
@@ -40,7 +41,7 @@
         cls._cleanup = []
         cls.unsupportedHypervisor = False
         cls.hypervisor = testClient.getHypervisorInfo()
-        if cls.hypervisor.lower() in (KVM.lower(), "hyperv", "lxc"):
+        if cls.hypervisor.lower() in ("hyperv", "lxc"):
             cls.unsupportedHypervisor = True
             return
 
@@ -102,7 +103,6 @@
     def setUp(self):
         self.apiclient = self.testClient.getApiClient()
         self.dbclient = self.testClient.getDbConnection()
-        self.cleanup = []
 
         if self.unsupportedHypervisor:
             self.skipTest("Skipping test because unsupported hypervisor\
@@ -110,11 +110,6 @@
         return
 
     def tearDown(self):
-        try:
-            # Clean up, terminate the created instance, volumes and snapshots
-            cleanup_resources(self.apiclient, self.cleanup)
-        except Exception as e:
-            raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
     @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
@@ -148,18 +143,24 @@
 
         time.sleep(self.services["sleep"])
 
+        #KVM VM Snapshot needs to set snapshot with memory
+        MemorySnapshot = False
+        if self.hypervisor.lower() in (KVM.lower()):
+           MemorySnapshot = True
+
         vm_snapshot = VmSnapshot.create(
             self.apiclient,
             self.virtual_machine.id,
-            "false",
+            MemorySnapshot,
             "TestSnapshot",
-            "Dsiplay Text"
+            "Display Text"
         )
         self.assertEqual(
             vm_snapshot.state,
             "Ready",
             "Check the snapshot of vm is ready!"
         )
+
         return
 
     @attr(tags=["advanced", "advancedns", "smoke"], required_hardware="true")
@@ -211,13 +212,21 @@
             "Check the snapshot of vm is ready!"
         )
 
-        self.virtual_machine.stop(self.apiclient)
+        #We don't need to stop the VM when taking a VM Snapshot on KVM
+        if self.hypervisor.lower() in (KVM.lower()):
+           pass
+        else:
+           self.virtual_machine.stop(self.apiclient)
 
         VmSnapshot.revertToSnapshot(
             self.apiclient,
             list_snapshot_response[0].id)
 
-        self.virtual_machine.start(self.apiclient)
+        #We don't need to start the VM when taking a VM Snapshot on KVM
+        if self.hypervisor.lower() in (KVM.lower()):
+           pass
+        else:
+           self.virtual_machine.start(self.apiclient)
 
         try:
             ssh_client = self.virtual_machine.get_ssh_client(reconnect=True)
@@ -277,3 +286,256 @@
             None,
             "Check list vm snapshot has be deleted"
         )
+
+class Utils:
+    
+    def __init__(self):
+        self.added_service_offerings = {
+            'testOffering1' : {'displaytext': 'Test Offering 1', 'cpuspeed': 600, 'cpunumber': 1, 'name': 'Test Offering 1', 'memory': 256}, 
+            'testOffering2' : {'displaytext': 'Test Offering 2', 'cpuspeed': 600, 'cpunumber': 2, 'name': 'Test Offering 2', 'memory': 512}                            
+        }
+    
+class TestChangeServiceOfferingForVmWithSnapshots(cloudstackTestCase):
+        
+    @classmethod
+    def setUpClass(cls):
+        try:
+            cls._cleanup = []
+            cls.testClient = super(TestChangeServiceOfferingForVmWithSnapshots, cls).getClsTestClient()
+            cls.api_client = cls.testClient.getApiClient()
+            cls.services = cls.testClient.getParsedTestDataConfig()
+            cls.hypervisor = cls.testClient.getHypervisorInfo()
+            cls.unsupportedHypervisor = False
+            if cls.hypervisor.lower() in (KVM.lower(), "hyperv", "lxc"):
+                cls.unsupportedHypervisor = True
+                return
+            
+            cls.domain = get_domain(cls.api_client)
+            cls.zone = get_zone(
+                cls.api_client,
+                cls.testClient.getZoneForTests()
+            )
+            cls.services["small"]["zoneid"] = cls.zone.id
+            cls.template = get_template(
+                cls.api_client,
+                cls.zone.id,
+                cls.services["ostype"]
+            )
+            if cls.template == FAILED:
+                assert False, "get_template() failed to return template\
+                    with description %s" % cls.services["ostype"]
+            
+            test_offerings = Utils().added_service_offerings
+            for offering in test_offerings:
+                cls.services["service_offerings"][offering] = test_offerings[offering]
+                
+            # Create 2 different service offerings
+            cls.service_offering_1 = ServiceOffering.create(
+                cls.api_client,
+                cls.services["service_offerings"]["testOffering1"]
+            )
+            cls._cleanup.append(cls.service_offering_1)
+            
+            cls.service_offering_2 = ServiceOffering.create(
+                cls.api_client,
+                cls.services["service_offerings"]["testOffering2"]
+            )
+            cls._cleanup.append(cls.service_offering_2)
+            
+            cls.account = Account.create(
+                cls.api_client,
+                cls.services["account"],
+                domainid=cls.domain.id
+            )
+            cls._cleanup.append(cls.account)
+            
+        except Exception as e:
+            cls.tearDownClass()
+            raise Exception("Warning: Exception in setup : %s" % e)
+        return
+
+    def setUp(self):
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+        
+        if self.unsupportedHypervisor:
+            self.skipTest("Skipping test because unsupported hypervisor\
+                    %s" % self.hypervisor)
+        
+    def tearDown(self):
+        # Clean up, terminate the created resources
+        cleanup_resources(self.apiclient, self.cleanup)
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            cleanup_resources(cls.api_client, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+
+        return
+    
+    def wait_vm_start(self, apiclient, vmid, timeout, sleep):
+        while timeout:
+            vms = VirtualMachine.list(apiclient, id=vmid)
+            vm_list_validation_result = validateList(vms)
+            if vm_list_validation_result[0] == PASS and vm_list_validation_result[1].state == RUNNING:
+                return timeout
+            time.sleep(sleep)
+            timeout = timeout - 1
+
+        return timeout
+    
+    def checkCPUAndMemory(self, ssh, service_offering):
+        cpuinfo = ssh.execute("cat /proc/cpuinfo")
+        cpu_cnt = len([i for i in cpuinfo if "processor" in i])
+        # 'cpu MHz\t\t: 2660.499'
+        cpu_speed = [i for i in cpuinfo if "cpu MHz" in i][0].split()[3]
+        meminfo = ssh.execute("cat /proc/meminfo")
+        # MemTotal:        1017464 kB
+        total_mem = [i for i in meminfo if "MemTotal" in i][0].split()[1]
+
+        self.debug(
+            "CPU count: %s, CPU Speed: %s, Mem Info: %s" % (cpu_cnt, cpu_speed, total_mem)
+        )
+        self.assertAlmostEqual(
+            int(cpu_cnt),
+            service_offering.cpunumber,
+            "Check CPU Count for service offering"
+        )
+
+        range = 40
+        if self.hypervisor.lower() == "hyperv":
+            range = 200
+        self.assertTrue(
+            isAlmostEqual(int(int(total_mem) / 1024),
+                          int(service_offering.memory),
+                          range=range
+            ),
+            "Check Memory(kb) for service offering"
+        )
+
+    @attr(tags=["advanced", "smoke"], required_hardware="true")
+    def test_change_service_offering_for_vm_with_snapshots(self):
+        """Test to change service offering for instances with vm snapshots
+        """
+        
+        # 1) Create Virtual Machine using service offering 1
+        self.debug("Creating VM using Service Offering 1")
+        virtual_machine = VirtualMachine.create(
+            self.apiclient,
+            self.services["small"],
+            accountid=self.account.name,
+            domainid=self.account.domainid,
+            templateid=self.template.id,
+            zoneid=self.zone.id,
+            hypervisor=self.hypervisor,
+            mode=self.zone.networktype,
+            serviceofferingid=self.service_offering_1.id
+        )
+        
+        # Verify Service OFfering 1 CPU cores and memory
+        try:
+            ssh_client = virtual_machine.get_ssh_client(reconnect=True)
+            self.checkCPUAndMemory(ssh_client, self.service_offering_1)
+        except Exception as e:
+            self.fail("SSH failed for virtual machine: %s - %s" % (virtual_machine.ipaddress, e))
+        
+        # 2) Take VM Snapshot
+        self.debug("Taking VM Snapshot for VM - ID: %s" % virtual_machine.id)
+        vm_snapshot = VmSnapshot.create(
+            self.apiclient,
+            virtual_machine.id,
+        )
+        
+        # 3) Stop Virtual Machine
+        self.debug("Stopping VM - ID: %s" % virtual_machine.id)
+        try:
+            virtual_machine.stop(self.apiclient)
+        except Exception as e:
+            self.fail("Failed to stop VM: %s" % e)
+        
+        # 4) Change service offering for VM with snapshots from Service Offering 1 to Service Offering 2
+        self.debug("Changing service offering from Service Offering 1 to Service Offering 2 for VM - ID: %s" % virtual_machine.id)
+        virtual_machine.change_service_offering(self.apiclient, self.service_offering_2.id)
+        
+        # 5) Start VM
+        self.debug("Starting VM - ID: %s" % virtual_machine.id)
+        try:
+            virtual_machine.start(self.apiclient)
+        except Exception as e:
+            self.fail("Failed to start virtual machine: %s, %s" % (virtual_machine.name, e))
+        
+        # Wait for vm to start
+        timeout = self.wait_vm_start(self.apiclient, virtual_machine.id, self.services["timeout"],
+                            self.services["sleep"])
+        if timeout == 0:
+            self.fail("The virtual machine %s failed to start even after %s minutes"
+                   % (virtual_machine.name, self.services["timeout"]))
+        
+        list_vm_response = list_virtual_machines(
+            self.apiclient,
+            id=virtual_machine.id
+        )
+        self.assertEqual(
+            isinstance(list_vm_response, list),
+            True,
+            "Check list response returns a valid list"
+        )
+        self.assertNotEqual(
+            len(list_vm_response),
+            0,
+            "Check VM avaliable in List Virtual Machines"
+        )
+        self.assertEqual(
+            list_vm_response[0].state,
+            "Running",
+            "Check virtual machine is in running state"
+        )
+        self.assertEqual(
+            list_vm_response[0].id,
+            virtual_machine.id,
+            "Check virtual machine id"
+        )
+        
+        # 6) Verify service offering has changed
+        try:
+            ssh_client_2 = virtual_machine.get_ssh_client(reconnect=True)
+            self.checkCPUAndMemory(ssh_client_2, self.service_offering_2)
+        except Exception as e:
+            self.fail("SSH failed for virtual machine: %s - %s" % (virtual_machine.ipaddress, e))
+        
+        # 7) Stop Virtual Machine
+        self.debug("Stopping VM - ID: %s" % virtual_machine.id)
+        try:
+            virtual_machine.stop(self.apiclient)
+        except Exception as e:
+            self.fail("Failed to stop VM: %s" % e)
+        
+        # 8) Revert to VM Snapshot
+        self.debug("Revert to vm snapshot: %s" % vm_snapshot.id)
+        try:
+            VmSnapshot.revertToSnapshot(
+                self.apiclient,
+                vm_snapshot.id
+            )
+        except Exception as e:
+            self.fail("Failed to revert to VM Snapshot: %s - %s" % (vm_snapshot.id, e))
+        
+        # 9) Start VM
+        self.debug("Starting VM - ID: %s" % virtual_machine.id)
+        try:
+            virtual_machine.start(self.apiclient)
+        except Exception as e:
+            self.fail("Failed to start virtual machine: %s, %s" % (virtual_machine.name, e))
+            
+        # 10) Verify service offering has changed to Service Offering 1 (from VM Snapshot)
+        try:
+            ssh_client_3 = virtual_machine.get_ssh_client(reconnect=True)
+            self.checkCPUAndMemory(ssh_client_3, self.service_offering_1)
+        except Exception as e:
+            self.fail("SSH failed for virtual machine: %s - %s" % (virtual_machine.ipaddress, e))
+        
+        return
\ No newline at end of file
diff --git a/test/integration/testpaths/testpath_netmask.py b/test/integration/testpaths/testpath_netmask.py
new file mode 100644
index 0000000..32610b8
--- /dev/null
+++ b/test/integration/testpaths/testpath_netmask.py
@@ -0,0 +1,196 @@
+# 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.
+""" Test cases to Check Snapshots size in database
+"""
+
+
+from nose.plugins.attrib import attr
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.lib.utils import (cleanup_resources,
+                              )
+from marvin.lib.base import (Account,
+                             Network,
+                             NetworkOffering,
+                             ServiceOffering,
+                             VirtualMachine,
+                             )
+from marvin.lib.common import (get_domain,
+                               get_zone,
+                               get_template,
+                               list_networks)
+
+
+def ipv4_cidr_to_netmask(bits):
+    """ Convert CIDR bits to netmask """
+    netmask = ''
+    for i in range(4):
+        if i:
+            netmask += '.'
+        if bits >= 8:
+            netmask += '%d' % (2 ** 8 - 1)
+            bits -= 8
+        else:
+            netmask += '%d' % (256 - 2 ** (8 - bits))
+            bits = 0
+    return netmask
+
+
+class TestCheckNetmask(cloudstackTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        testClient = super(TestCheckNetmask, cls).getClsTestClient()
+        cls.apiclient = testClient.getApiClient()
+        cls.testdata = testClient.getParsedTestDataConfig()
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+
+        # Get Zone, Domain and templates
+        cls.domain = get_domain(cls.apiclient)
+        cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
+
+        cls.template = get_template(
+            cls.apiclient,
+            cls.zone.id,
+            cls.testdata["ostype"])
+
+        cls._cleanup = []
+
+        cls.skiptest = False
+
+        if cls.hypervisor.lower() not in ["xenserver"]:
+            cls.skiptest = True
+            return
+
+        try:
+
+            # Create an account
+            cls.account = Account.create(
+                cls.apiclient,
+                cls.testdata["account"],
+                domainid=cls.domain.id
+            )
+
+            # Create Service offering
+            cls.service_offering = ServiceOffering.create(
+                cls.apiclient,
+                cls.testdata["service_offering"],
+            )
+
+            cls.testdata["shared_network_offering"]["specifyVlan"] = 'True'
+            cls.testdata["shared_network_offering"]["specifyIpRanges"] = 'True'
+
+            cls.shared_network_offering = NetworkOffering.create(
+                cls.apiclient,
+                cls.testdata["shared_network_offering"]
+            )
+
+            NetworkOffering.update(
+                cls.shared_network_offering,
+                cls.apiclient,
+                id=cls.shared_network_offering.id,
+                state="enabled"
+            )
+
+            cls.network = Network.create(
+                cls.apiclient,
+                cls.testdata["network2"],
+                networkofferingid=cls.shared_network_offering.id,
+                zoneid=cls.zone.id,
+                accountid=cls.account.name,
+                domainid=cls.account.domainid
+            )
+
+            cls.vm = VirtualMachine.create(
+                cls.apiclient,
+                cls.testdata["small"],
+                templateid=cls.template.id,
+                accountid=cls.account.name,
+                domainid=cls.account.domainid,
+                serviceofferingid=cls.service_offering.id,
+                zoneid=cls.zone.id,
+                networkids=cls.network.id,
+            )
+
+            cls._cleanup.extend([cls.account,
+                                 cls.service_offering,
+                                 cls.shared_network_offering])
+
+        except Exception as e:
+            cls.tearDownClass()
+            raise e
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            cleanup_resources(cls.apiclient, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+
+    def setUp(self):
+        if self.skiptest:
+            self.skipTest(
+                "Test not to be run on %s" %
+                self.hypervisor)
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+
+    def tearDown(self):
+        try:
+            cleanup_resources(self.apiclient, self.cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    @attr(tags=["advanced"], required_hardware="false")
+    def test_01_netmask_value_check(self):
+        """ Check Netmask value in database
+            1. Check if netmask attribute in nics table
+                stores correct value.
+        """
+
+        # Step 1
+        # Get the netmask from ipv4 address of the VM
+        qryresult_netmask = self.dbclient.execute(
+            " select id, uuid, netmask\
+                    from nics where ip4_address='%s';" %
+            self.vm.nic[0].ipaddress)
+
+        self.assertNotEqual(
+            len(qryresult_netmask),
+            0,
+            "Check if netmask attribute in nics table \
+            stores correct value")
+
+        # Step 2
+        netmask_id = qryresult_netmask[0][2]
+        netlist = list_networks(self.apiclient,
+                                account=self.account.name,
+                                domainid=self.account.domainid)
+
+        self.assertNotEqual(len(netlist), 0,
+                            "Check if list networks returned an empty list.")
+ 
+        cidr = netlist[0].cidr.split("/")[1]
+        # Get netmask from CIDR
+        netmask = ipv4_cidr_to_netmask(int(cidr))
+
+        # Validate the netmask
+        self.assertEqual(netmask_id,
+                         netmask,
+                         "Check if the netmask is from guest CIDR")
+        return
diff --git a/test/integration/testpaths/testpath_restore_vm.py b/test/integration/testpaths/testpath_restore_vm.py
new file mode 100644
index 0000000..d73499a
--- /dev/null
+++ b/test/integration/testpaths/testpath_restore_vm.py
@@ -0,0 +1,211 @@
+# 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.
+
+"""
+Test restore running VM on VMWare with one cluster having 2 Primary Storage
+"""
+
+
+from nose.plugins.attrib import attr
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.lib.utils import cleanup_resources, validateList
+from marvin.lib.base import (Account,
+                             ServiceOffering,
+                             VirtualMachine,
+                             StoragePool
+                             )
+from marvin.lib.common import (get_domain,
+                               get_zone,
+                               get_template,
+                               list_volumes,
+                               list_virtual_machines
+                               )
+
+from marvin.codes import CLUSTERTAG1, ROOT, PASS
+import time
+
+
+class TestRestoreVM(cloudstackTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        testClient = super(TestRestoreVM, cls).getClsTestClient()
+        cls.apiclient = testClient.getApiClient()
+        cls.testdata = testClient.getParsedTestDataConfig()
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+
+        # Get Zone, Domain and templates
+        cls.domain = get_domain(cls.apiclient)
+        cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
+
+        cls.template = get_template(
+            cls.apiclient,
+            cls.zone.id,
+            cls.testdata["ostype"])
+
+        cls._cleanup = []
+
+        try:
+            cls.skiptest = False
+            if cls.hypervisor.lower() not in ["vmware"]:
+                cls.skiptest = True
+                return
+
+            # Create an account
+            cls.account = Account.create(
+                cls.apiclient,
+                cls.testdata["account"],
+                domainid=cls.domain.id
+            )
+            cls._cleanup.append(cls.account)
+            # Create user api client of the account
+            cls.userapiclient = testClient.getUserApiClient(
+                UserName=cls.account.name,
+                DomainName=cls.account.domain
+            )
+            # Create Service offering
+            cls.service_offering_cwps = ServiceOffering.create(
+                cls.apiclient,
+                cls.testdata["service_offering"],
+                tags=CLUSTERTAG1
+            )
+            cls._cleanup.append(cls.service_offering_cwps)
+        except Exception as e:
+            cls.tearDownClass()
+            raise e
+        return
+
+    @classmethod
+    def tearDownClass(cls):
+        try:
+            cleanup_resources(cls.apiclient, cls._cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+
+    def setUp(self):
+
+        self.cleanup = []
+        if self.skiptest:
+            self.skipTest("This test is to be checked on VMWare only \
+                    Hence, skip for %s" % self.hypervisor)
+
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+
+    def tearDown(self):
+        try:
+            if self.pools:
+                StoragePool.update(
+                    self.apiclient,
+                    id=self.pools[0].id,
+                    tags="")
+
+            cleanup_resources(self.apiclient, self.cleanup)
+        except Exception as e:
+            raise Exception("Warning: Exception during cleanup : %s" % e)
+        return
+
+    @attr(tags=["advanced", "basic"], required_hardware="true")
+    def test_01_recover_VM(self):
+        """ Test Restore VM on VMWare
+            1. Deploy a VM without datadisk
+            2. Restore the VM
+            3. Verify that VM comes up in Running state
+        """
+        try:
+            self.pools = StoragePool.list(
+                self.apiclient,
+                zoneid=self.zone.id,
+                scope="CLUSTER")
+
+            status = validateList(self.pools)
+
+            # Step 3
+            self.assertEqual(
+                status[0],
+                PASS,
+                "Check: Failed to list  cluster wide storage pools")
+
+            if len(self.pools) < 2:
+                self.skipTest("There must be at atleast two cluster wide\
+                storage pools available in the setup")
+
+        except Exception as e:
+            self.skipTest(e)
+
+        # Adding tags to Storage Pools
+        cluster_no = 1
+        StoragePool.update(
+            self.apiclient,
+            id=self.pools[0].id,
+            tags=[CLUSTERTAG1[:-1] + repr(cluster_no)])
+
+        self.vm = VirtualMachine.create(
+            self.apiclient,
+            self.testdata["small"],
+            accountid=self.account.name,
+            templateid=self.template.id,
+            domainid=self.account.domainid,
+            serviceofferingid=self.service_offering_cwps.id,
+            zoneid=self.zone.id,
+        )
+        # Step 2
+
+        volumes_root_list = list_volumes(
+            self.apiclient,
+            virtualmachineid=self.vm.id,
+            type=ROOT,
+            listall=True
+        )
+
+        root_volume = volumes_root_list[0]
+
+        # Restore VM till its ROOT disk is recreated on onother Primary Storage
+        while True:
+            self.vm.restore(self.apiclient)
+            volumes_root_list = list_volumes(
+                self.apiclient,
+                virtualmachineid=self.vm.id,
+                type=ROOT,
+                listall=True
+            )
+
+            root_volume = volumes_root_list[0]
+
+            if root_volume.storage != self.pools[0].name:
+                break
+
+        # Step 3
+        vm_list = list_virtual_machines(
+            self.apiclient,
+            id=self.vm.id)
+
+        state = vm_list[0].state
+        i = 0
+        while(state != "Running"):
+            vm_list = list_virtual_machines(
+                self.apiclient,
+                id=self.vm.id)
+
+            time.sleep(10)
+            i = i + 1
+            state = vm_list[0].state
+            if i >= 10:
+                self.fail("Restore VM Failed")
+                break
+
+        return
diff --git a/test/pom.xml b/test/pom.xml
index 967c542..c052eec 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack</artifactId>
-        <version>4.9.4.0-SNAPSHOT</version>
+        <version>4.10.1.0-SNAPSHOT</version>
     </parent>
     <dependencies>
         <dependency>
diff --git a/tools/apidoc/pom.xml b/tools/apidoc/pom.xml
index 986f7c0..c750c44 100644
--- a/tools/apidoc/pom.xml
+++ b/tools/apidoc/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloud-tools</artifactId>
-        <version>4.9.4.0-SNAPSHOT</version>
+        <version>4.10.1.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <properties>
diff --git a/tools/appliance/definitions/systemvmtemplate/apt_upgrade.sh b/tools/appliance/definitions/systemvmtemplate/apt_upgrade.sh
index 645d86d..c49ac47 100644
--- a/tools/appliance/definitions/systemvmtemplate/apt_upgrade.sh
+++ b/tools/appliance/definitions/systemvmtemplate/apt_upgrade.sh
@@ -20,6 +20,8 @@
 set -x
 
 function add_backports() {
+  sed -i '/cdrom/d' /etc/apt/sources.list
+  sed -i '/deb-src/d' /etc/apt/sources.list
   sed -i '/backports/d' /etc/apt/sources.list
   sed -i '/security/d' /etc/apt/sources.list
   echo 'deb http://http.debian.net/debian wheezy-backports main' >> /etc/apt/sources.list
@@ -32,10 +34,14 @@
 
   add_backports
 
-  apt-get clean
+  rm -fv /root/*.iso
+  apt-get -y autoremove
+  apt-get autoclean
   apt-get -q -y --force-yes update
   apt-get -q -y --force-yes upgrade
   apt-get -q -y --force-yes dist-upgrade
+
+  df -h
 }
 
 return 2>/dev/null || apt_upgrade
diff --git a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
index 57fa2a7..60082e3 100644
--- a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
+++ b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
@@ -54,6 +54,11 @@
   echo "Cloudstack Release $CLOUDSTACK_RELEASE $(date)" > /etc/cloudstack-release
 }
 
+function configure_strongswan() {
+  # change the charon stroke timeout from 3 minutes to 30 seconds
+  sed -i "s/# timeout = 0/timeout = 30000/" /etc/strongswan.d/charon/stroke.conf
+}
+
 function configure_services() {
   mkdir -p /var/www/html
   mkdir -p /opt/cloud/bin
@@ -81,6 +86,7 @@
   chkconfig radvd off
 
   configure_apache2
+  configure_strongswan
 }
 
 return 2>/dev/null || configure_services
diff --git a/tools/appliance/definitions/systemvmtemplate/definition.rb b/tools/appliance/definitions/systemvmtemplate/definition.rb
index db6fce8..e0c44e2 100644
--- a/tools/appliance/definitions/systemvmtemplate/definition.rb
+++ b/tools/appliance/definitions/systemvmtemplate/definition.rb
@@ -42,7 +42,7 @@
 config = {
     :cpu_count => '1',
     :memory_size => '256',
-    :disk_size => '3000', :disk_format => 'VDI', :hostiocache => 'off',
+    :disk_size => '3200', :disk_format => 'VDI', :hostiocache => 'off',
     :iso_download_timeout => '1200',
     :boot_wait => '10',
     :boot_cmd_sequence => [
@@ -71,7 +71,7 @@
     :ssh_key => '',
     :ssh_host_port => '7222',
     :ssh_guest_port => '22',
-    :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
+    :sudo_cmd => "echo '%p'|sudo -S bash '%f'",
     :shutdown_cmd => 'halt -p',
     :postinstall_files => [
         # basic minimal vm creation
diff --git a/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh b/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh
index f5f871b..9daa2d8 100644
--- a/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh
+++ b/tools/appliance/definitions/systemvmtemplate/install_systemvm_packages.sh
@@ -22,21 +22,22 @@
 function install_vhd_util() {
   [[ -f /bin/vhd-util ]] && return
 
-  wget --no-check-certificate http://download.cloud.com.s3.amazonaws.com/tools/vhd-util -O /bin/vhd-util
+  wget --no-check-certificate http://download.cloudstack.org/tools/vhd-util -O /bin/vhd-util
   chmod a+x /bin/vhd-util
 }
 
 function debconf_packages() {
   echo 'sysstat sysstat/enable boolean true' | debconf-set-selections
-  echo "openswan openswan/install_x509_certificate boolean false" | debconf-set-selections
-  echo "openswan openswan/install_x509_certificate seen true" | debconf-set-selections
+  echo "strongwan strongwan/install_x509_certificate boolean false" | debconf-set-selections
+  echo "strongwan strongwan/install_x509_certificate seen true" | debconf-set-selections
   echo "iptables-persistent iptables-persistent/autosave_v4 boolean true" | debconf-set-selections
   echo "iptables-persistent iptables-persistent/autosave_v6 boolean true" | debconf-set-selections
+  echo "libc6 libraries/restart-without-asking boolean false" | debconf-set-selections
 }
 
 function install_packages() {
-  DEBIAN_FRONTEND=noninteractive
-  DEBIAN_PRIORITY=critical
+  export DEBIAN_FRONTEND=noninteractive
+  export DEBIAN_PRIORITY=critical
   local arch=`dpkg --print-architecture`
 
   debconf_packages
@@ -63,11 +64,10 @@
     nfs-common \
     samba-common cifs-utils \
     xl2tpd bcrelay ppp ipsec-tools tdb-tools \
-    openswan=1:2.6.37-3+deb7u1 \
     xenstore-utils libxenstore3.0 \
     conntrackd ipvsadm libnetfilter-conntrack3 libnl-3-200 libnl-genl-3-200 \
     ipcalc \
-    openjdk-7-jre-headless \
+    ipset \
     iptables-persistent \
     libtcnative-1 libssl-dev libapr1-dev \
     python-flask \
@@ -75,10 +75,9 @@
     radvd \
     sharutils
 
-  ${apt_get} -t wheezy-backports install keepalived irqbalance open-vm-tools
+  ${apt_get} -t wheezy-backports install keepalived irqbalance open-vm-tools qemu-guest-agent
+  ${apt_get} -t wheezy-backports install strongswan libcharon-extra-plugins libstrongswan-extra-plugins
 
-  # hold on installed openswan version, upgrade rest of the packages (if any)
-  apt-mark hold openswan
   apt-get update
   apt-get -y --force-yes upgrade
 
@@ -89,10 +88,21 @@
     dpkg -i hv-kvp-daemon_3.1_amd64.deb
     rm -f hv-kvp-daemon_3.1_amd64.deb
     # XS tools
-    wget https://raw.githubusercontent.com/bhaisaab/cloudstack-nonoss/master/xe-guest-utilities_6.5.0_amd64.deb
+    wget --no-check-certificate https://raw.githubusercontent.com/rhtyd/cloudstack-nonoss/master/xe-guest-utilities_6.5.0_amd64.deb
+    md5sum xe-guest-utilities_6.5.0_amd64.deb
     dpkg -i xe-guest-utilities_6.5.0_amd64.deb
     rm -f xe-guest-utilities_6.5.0_amd64.deb
   fi
+
+  # Install OpenJDK8 pkgs maintained by Azul
+  apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0x219BD9C9
+  echo 'deb http://repos.azulsystems.com/debian stable main' > /etc/apt/sources.list.d/zulu.list
+  apt-get -y autoremove
+  apt-get autoclean
+  apt-get clean
+  apt-get update
+  ${apt_get} install zulu-8
+  java -version
 }
 
 return 2>/dev/null || install_packages
diff --git a/tools/appliance/definitions/systemvmtemplate/preseed.cfg b/tools/appliance/definitions/systemvmtemplate/preseed.cfg
index 2127090..77402d7 100644
--- a/tools/appliance/definitions/systemvmtemplate/preseed.cfg
+++ b/tools/appliance/definitions/systemvmtemplate/preseed.cfg
@@ -60,7 +60,7 @@
                       use_filesystem{ } filesystem{ ext4 }    \
                       mountpoint{ /home }                     \
               .                                               \
-              800 60 1400 ext4                                \
+              1000 60 1400 ext4                                \
                       method{ format } format{ }              \
                       use_filesystem{ } filesystem{ ext4 }    \
                       mountpoint{ /usr }                      \
@@ -75,7 +75,7 @@
                       use_filesystem{ } filesystem{ ext4 }    \
                       mountpoint{ /var }                      \
               .                                               \
-              200 50 500 ext4                                 \
+              400 50 500 ext4                                 \
                       method{ format } format{ }              \
                       use_filesystem{ } filesystem{ ext4 }    \
                       mountpoint{ /var/log }                  \
diff --git a/tools/build/build_asf.sh b/tools/build/build_asf.sh
index 2f9a472..04a2d24 100755
--- a/tools/build/build_asf.sh
+++ b/tools/build/build_asf.sh
@@ -97,7 +97,6 @@
 perl -pi -e "s/<cs.xapi.version>6.2.0-1-SNAPSHOT<\/cs.xapi.version>/<cs.xapi.version>6.2.0-1<\/cs.xapi.version>/" pom.xml
 perl -pi -e "s/-SNAPSHOT//" deps/XenServerJava/pom.xml
 perl -pi -e "s/-SNAPSHOT//" tools/apidoc/pom.xml
-perl -pi -e "s/-SNAPSHOT//" Dockerfile
 perl -pi -e "s/-SNAPSHOT//" build/replace.properties
 perl -pi -e "s/-SNAPSHOT//" services/console-proxy/plugin/pom.xml
 perl -pi -e "s/-SNAPSHOT//" tools/marvin/setup.py
@@ -105,6 +104,9 @@
 perl -pi -e "s/-SNAPSHOT//" services/iam/plugin/pom.xml
 perl -pi -e "s/-SNAPSHOT//" services/iam/pom.xm
 perl -pi -e "s/-SNAPSHOT//" services/iam/server/pom.xml
+perl -pi -e "s/-SNAPSHOT//" tools/docker/Dockerfile
+perl -pi -e "s/-SNAPSHOT//" tools/docker/Dockerfile.marvin
+perl -pi -e "s/-SNAPSHOT//" tools/docker/Dockerfile.centos6
 
 case "$currentversion" in 
   *-SNAPSHOT*)
diff --git a/tools/build/setnextversion.sh b/tools/build/setnextversion.sh
index f6eb04a..2387b89 100755
--- a/tools/build/setnextversion.sh
+++ b/tools/build/setnextversion.sh
@@ -73,6 +73,16 @@
 perl -pi -e "s/$currentversion/$version/" services/iam/server/pom.xml
 perl -pi -e "s/$currentversion/$version/" tools/checkstyle/pom.xml
 perl -pi -e "s/$currentversion/$version/" services/console-proxy/plugin/pom.xml
+# Dockerfiles
+perl -pi -e "s/Version=\"$currentversion\"/Version=\"$version\"/" tools/docker/Dockerfile
+perl -pi -e "s/Version=\"$currentversion\"/Version=\"$version\"/" tools/docker/Dockerfile.marvin
+# centos6 based dockerfile
+perl -pi -e "s/Version=\"$currentversion\"/Version=\"$version\"/" tools/docker/Dockerfile.centos6
+perl -pi -e "s/cloudstack-common-(.*).el6.x86_64.rpm/cloudstack-common-${version}.el6.x86_64.rpm/" tools/docker/Dockerfile.centos6
+perl -pi -e "s/cloudstack-management-(.*)el6.x86_64.rpm/cloudstack-management-${version}.el6.x86_64.rpm/" tools/docker/Dockerfile.centos6
+perl -pi -e "s/Marvin-(.*).tar.gz/Marvin-${version}.tar.gz/" tools/docker/Dockerfile.marvin
+# systemtpl.sh:  system vm template version without -SNAPSHOT
+
 git clean -f
 
 echo 'commit changes'
diff --git a/tools/checkstyle/pom.xml b/tools/checkstyle/pom.xml
index 98e1229..17c291e 100644
--- a/tools/checkstyle/pom.xml
+++ b/tools/checkstyle/pom.xml
@@ -24,7 +24,7 @@
     <name>Apache CloudStack Developer Tools - Checkstyle Configuration</name>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>checkstyle</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
 
     <build>
       <plugins>
diff --git a/tools/devcloud-kvm/pom.xml b/tools/devcloud-kvm/pom.xml
index a59223d..4c798e2 100644
--- a/tools/devcloud-kvm/pom.xml
+++ b/tools/devcloud-kvm/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/tools/devcloud/README.md b/tools/devcloud/README.md
deleted file mode 100644
index 410c36f..0000000
--- a/tools/devcloud/README.md
+++ /dev/null
@@ -1,102 +0,0 @@
-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.
-
-===========================================================
-
-NOTE - This folder is a work in progress.  The project has not determined
-how to best establish a nightly DevCloud build process, or how to distribute
-the image.
-
-===========================================================
-
-# Setting up Tools and Environment
-
-    - Install [RVM](https://rvm.io/rvm/install)
-    - Setup paths:
-          export PATH=~/.rvm/bin:$PATH
-    - Install Ruby 1.9.3, if it installed some other version:
-          rvm install 1.9.3
-
-All the dependencies will be fetched automatically.
-
-Vagrant: https://github.com/chipchilders/vagrant.git
-Veewee:  https://github.com/jedi4ever/veewee.git
-
-devcloudbase/Ubuntu: http://releases.ubuntu.com/12.04/ubuntu-12.04.1-server-i386.iso
-
-To save some time if you've downloaded iso of your distro, put the isos in:
-tools/devcloud/deps/boxes/basebox-build/iso/
-
-Note, gem would require gcc-4.2, make sure link exists:
-
-    sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
-
-# How to build DevCloud
-
-DevCloud build scripts are in src/
-Move to src/deps/ to start the build process:
-
-    cd src/deps/
-
-Clean up any old stuff:
-
-    ./boxer.sh -c all
-
-Build the dependent vms:
-
-    ./boxer.sh -b all
-
-Now, start DevCloud:
-
-    # Go back to the devcloud homedir
-    cd ../
-    # Bring up the devcloud vm
-    vagrant up
-
-If you get a vagrant error, at that point, try:
-
-    source .rvmrc
-    vagrant up
-
-# CloudStack Build Automation in DevCloud
-
-If you want to compile cloudstack in the devcloud vm:
-
-    vim puppet/modules/devcloud/manifests/params.pp
-
-and set
-
-    $build_cloudstack = true
-
-alternately, if you do not want to build cloudstack in the devcloud vm, set:
-
-    $build_cloudstack = false
-
-
-It will now bring up the devcloud vm for this first time.  Note that it will
-attempt to download the SSVM and CPVM templates so it will take a long time to
-launch initially.  It will also git clone the cloudstack repository and attempt
-to build an launch it.
-
-You can optionally speed things up by packaging a successful devcloud instance
-build.  This will make subsequent launches must faster since it won't have to
-re-downoad the SSVM and CPVM.  Once it has successfully been built, you can run:
-
-    #exports the devcloud vagrant instance and adds it as "devcloud" to vagrant boxlist
-    ./boxit.sh
-    #modifies the Vagrant file to use this newly added instance
-    sed -i 's,devcloudbase-xen,devcloud,g' Vagrantfile
diff --git a/tools/devcloud/devcloud-advanced.cfg b/tools/devcloud/devcloud-advanced.cfg
deleted file mode 100644
index 229a325..0000000
--- a/tools/devcloud/devcloud-advanced.cfg
+++ /dev/null
@@ -1,131 +0,0 @@
-#  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.
-#
-# This configuration is meant for running advanced networking, with management server on the laptop. 
-# It requires that the user run a DNS resolver within devcloud via 'apt-get install dnsmasq'
-
-{
-    "zones": [
-        {
-            "localstorageenabled": "true", 
-            "name": "testzone", 
-            "guestcidraddress": "10.1.1.0/24", 
-            "dns1": "8.8.8.8", 
-            "physical_networks": [
-                {
-                    "broadcastdomainrange": "Zone", 
-                    "vlan": "3900-4000", 
-                    "name": "eth0", 
-                    "traffictypes": [
-                        {
-                            "xenserver": "Pool-wide network associated with eth0",
-                            "typ": "Management"
-                        }, 
-                        {
-                            "xenserver": "Pool-wide network associated with eth0",
-                            "typ": "Guest"
-                        }
-                    ],
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VirtualRouter"
-                        }, 
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VpcVirtualRouter"
-                        }
-                    ]
-                }, 
-                {
-                    "broadcastdomainrange": "Zone", 
-                    "name": "eth1", 
-                    "traffictypes": [
-                        {
-                            "xenserver": "Pool-wide network associated with eth1",
-                            "typ": "Public"
-                        }
-                    ], 
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VirtualRouter"
-                        }
-                    ]
-                }
-            ], 
-            "ipranges": [
-                {
-                    "startip": "10.0.3.100", 
-                    "endip": "10.0.3.199", 
-                    "netmask": "255.255.255.0", 
-                    "vlan": "untagged", 
-                    "gateway": "10.0.3.2"
-                }
-            ], 
-            "networktype": "Advanced", 
-            "pods": [
-                {
-                    "endip": "192.168.56.249", 
-                    "name": "testpod", 
-                    "startip": "192.168.56.200", 
-                    "netmask": "255.255.255.0", 
-                    "clusters": [
-                        {
-                            "clustername": "testcluster", 
-                            "hypervisor": "XenServer", 
-                            "hosts": [
-                                {
-                                    "username": "root", 
-                                    "url": "http://192.168.56.10/", 
-                                    "password": "password"
-                                }
-                            ], 
-                            "clustertype": "CloudManaged"
-                        }
-                    ], 
-                    "gateway": "192.168.56.1"
-                }
-            ], 
-            "internaldns1": "192.168.56.10", 
-            "secondaryStorages": [
-                {
-                    "url": "nfs://192.168.56.10:/opt/storage/secondary",
-                    "provider": "NFS",
-                    "details": [ ]
-                }
-            ]
-        }
-    ], 
-    "dbSvr": {
-        "dbSvr": "127.0.0.1", 
-        "passwd": "cloud", 
-        "db": "cloud", 
-        "port": 3306, 
-        "user": "cloud"
-    },
-    "logger":
-        {
-            "LogFolderPath": "/tmp/"
-        },
-    "mgtSvr": [
-        {
-            "mgtSvrIp": "192.168.56.10", 
-            "port": 8096
-        }
-    ]
-}
diff --git a/tools/devcloud/devcloud-advanced_internal-mgt.cfg b/tools/devcloud/devcloud-advanced_internal-mgt.cfg
deleted file mode 100644
index 525ad0f..0000000
--- a/tools/devcloud/devcloud-advanced_internal-mgt.cfg
+++ /dev/null
@@ -1,141 +0,0 @@
-#  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.
-#
-# This config is designed to run as an advanced network, with management server in devcloud
-# It also requires an 'apt-get install dnsmasq' to run a resolver in devcloud for internal dns
-
-{
-    "zones": [
-        {
-            "localstorageenabled": "true", 
-            "name": "testzone", 
-            "guestcidraddress": "10.1.1.0/24", 
-            "dns1": "8.8.8.8", 
-            "physical_networks": [
-                {
-                    "broadcastdomainrange": "Zone", 
-                    "vlan": "3900-4000", 
-                    "name": "eth0", 
-                    "traffictypes": [
-                        {
-                            "xenserver": "Pool-wide network associated with eth0",
-                            "typ": "Management"
-                        }, 
-                        {
-                            "xenserver": "Pool-wide network associated with eth0",
-                            "typ": "Guest"
-                        }
-                    ],
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VirtualRouter"
-                        }, 
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VpcVirtualRouter"
-                        }
-                    ]
-                }, 
-                {
-                    "broadcastdomainrange": "Zone", 
-                    "name": "eth1", 
-                    "traffictypes": [
-                        {
-                            "xenserver": "Pool-wide network associated with eth1",
-                            "typ": "Public"
-                        }
-                    ], 
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VirtualRouter"
-                        }
-                    ]
-                }
-            ], 
-            "ipranges": [
-                {
-                    "startip": "10.0.3.100", 
-                    "endip": "10.0.3.199", 
-                    "netmask": "255.255.255.0", 
-                    "vlan": "untagged", 
-                    "gateway": "10.0.3.2"
-                }
-            ], 
-            "networktype": "Advanced", 
-            "pods": [
-                {
-                    "endip": "192.168.56.249", 
-                    "name": "testpod", 
-                    "startip": "192.168.56.200", 
-                    "netmask": "255.255.255.0", 
-                    "clusters": [
-                        {
-                            "clustername": "testcluster", 
-                            "hypervisor": "XenServer", 
-                            "hosts": [
-                                {
-                                    "username": "root", 
-                                    "url": "http://192.168.56.10/", 
-                                    "password": "password"
-                                }
-                            ], 
-                            "clustertype": "CloudManaged"
-                        }
-                    ], 
-                    "gateway": "192.168.56.1"
-                }
-            ], 
-            "internaldns1": "192.168.56.10", 
-            "secondaryStorages": [
-                {
-                    "url": "nfs://192.168.56.10:/opt/storage/secondary"
-                }
-            ]
-        }
-    ], 
-    "dbSvr": {
-        "dbSvr": "127.0.0.1", 
-        "passwd": "cloud", 
-        "db": "cloud", 
-        "port": 3306, 
-        "user": "cloud"
-    }, 
-    "logger": [
-        {
-            "name": "TestClient", 
-            "file": "/var/log/testclient.log"
-        }, 
-        {
-            "name": "TestCase", 
-            "file": "/var/log/testcase.log"
-        }
-    ], 
-    "mgtSvr": [
-        {
-            "mgtSvrIp": "192.168.56.10", 
-            "port": 8096
-        }
-    ],
-    "globalConfig": [
-        {
-            "name": "host",
-            "value": "192.168.56.10"
-        }
-    ]
-}
diff --git a/tools/devcloud/devcloud-advanced_juniper-contrail.cfg b/tools/devcloud/devcloud-advanced_juniper-contrail.cfg
deleted file mode 100644
index 35b551a2..0000000
--- a/tools/devcloud/devcloud-advanced_juniper-contrail.cfg
+++ /dev/null
@@ -1,123 +0,0 @@
-#  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.
-#
-# This configuration is meant for running advanced networking , with management server on the laptop,
-# It requires that the user run a DNS resolver within devcloud via 'apt-get install dnsmasq'
-#
-#
-{
-    "zones": [
-        {
-            "localstorageenabled": "true",
-            "name": "default",
-            "dns1": "8.8.8.8",
-            "physical_networks": [
-                {
-                    "broadcastdomainrange": "Zone",
-                    "name": "ip-fabric",
-                    "traffictypes": [
-                        {
-                            "xen": "Pool-wide network associated with eth0",
-                            "typ": "Management"
-                        },
-                        {
-                            "xen": "Pool-wide network associated with eth0",
-                            "typ": "Guest"
-                        },
-                        {
-                            "xen": "Pool-wide network associated with eth1",
-                            "typ": "Public"
-                        }
-                    ],
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE",
-                            "name": "JuniperContrailRouter"
-                        }
-                    ],
-                    "isolationmethods": [
-                        "L3VPN"
-                    ]
-                }
-            ],
-            "ipranges": [
-                {
-                    "startip": "10.0.3.100",
-                    "endip": "10.0.3.199",
-                    "netmask": "255.255.255.0",
-                    "vlan": "untagged",
-                    "gateway": "10.0.3.2"
-                }
-            ],
-            "networktype": "Advanced",
-            "pods": [
-                {
-                    "endip": "192.168.56.249",
-                    "name": "a6",
-                    "startip": "192.168.56.200",
-                    "netmask": "255.255.255.0",
-                    "clusters": [
-                        {
-                            "clustername": "a6-xen",
-                            "hypervisor": "XenServer",
-                            "hosts": [
-                                {
-                                    "username": "root",
-                                    "url": "http://192.168.56.10/",
-                                    "password": "password"
-                                }
-                            ],
-                            "clustertype": "CloudManaged"
-                        }
-                    ],
-                    "gateway": "192.168.56.1"
-                }
-            ],
-            "internaldns1": "192.168.56.10",
-            "secondaryStorages": [
-                {
-                    "url": "nfs://192.168.56.10:/opt/storage/secondary",
-                    "provider": "NFS",
-                    "details": [ ]
-                }
-            ]
-        }
-    ],
-    "dbSvr": {
-        "dbSvr": "127.0.0.1",
-        "passwd": "cloud",
-        "db": "cloud",
-        "port": 3306,
-        "user": "cloud"
-    },
-    "logger": [
-        {
-            "name": "TestClient",
-            "file": "/var/log/testclient.log"
-        },
-        {
-            "name": "TestCase",
-            "file": "/var/log/testcase.log"
-        }
-    ],
-    "mgtSvr": [
-        {
-            "mgtSvrIp": "127.0.0.1",
-            "port": 8096
-        }
-    ]
-}
diff --git a/tools/devcloud/devcloud-advancedsg.cfg b/tools/devcloud/devcloud-advancedsg.cfg
deleted file mode 100644
index c625e79..0000000
--- a/tools/devcloud/devcloud-advancedsg.cfg
+++ /dev/null
@@ -1,121 +0,0 @@
-#  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.
-#
-# This configuration is meant for running advanced networking with security groups, with management server on the laptop.
-# It requires that the user run a DNS resolver within devcloud via 'apt-get install dnsmasq'
-
-{
-    "zones": [
-        {
-            "localstorageenabled": "true",
-            "name": "testzone",
-            "dns1": "8.8.8.8", 
-            "physical_networks": [
-                {
-                    "broadcastdomainrange": "Zone",
-                    "name": "shared",
-                    "traffictypes": [
-                        {
-                            "typ": "Management"
-                        },
-                        {
-                            "typ": "Guest"
-                        }
-                    ],
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE",
-                            "name": "VirtualRouter"
-                        },
-                        {
-                            "broadcastdomainrange": "ZONE",
-                            "name": "SecurityGroupProvider"
-                        }
-                    ], 
-                    "isolationmethods": [
-                        "VLAN"
-                    ]
-                }
-            ], 
-            "securitygroupenabled": "true", 
-            "ipranges": [
-                {
-                    "startip": "10.0.3.100",
-                    "endip": "10.0.3.199",
-                    "netmask": "255.255.255.0",
-                    "vlan": "1003",
-                    "gateway": "10.0.3.2"
-                }
-            ],
-            "networktype": "Advanced", 
-            "pods": [
-                {
-                    "endip": "192.168.56.249",
-                    "name": "testpod",
-                    "startip": "192.168.56.200",
-                    "netmask": "255.255.255.0",
-                    "clusters": [
-                        {
-                            "clustername": "testcluster",
-                            "hypervisor": "XenServer",
-                            "hosts": [
-                                {
-                                    "username": "root",
-                                    "url": "http://192.168.56.10/",
-                                    "password": "password"
-                                }
-                            ],
-                            "clustertype": "CloudManaged"
-                        }
-                    ],
-                    "gateway": "192.168.56.1"
-                }
-            ],
-            "internaldns1": "192.168.56.10",
-            "secondaryStorages": [
-                {
-                    "url": "nfs://192.168.56.10:/opt/storage/secondary",
-                    "provider": "NFS",
-                    "details": [ ]
-                }
-            ]
-        }
-    ],
-    "dbSvr": {
-        "dbSvr": "localhost", 
-        "passwd": "cloud", 
-        "db": "cloud", 
-        "port": 3306, 
-        "user": "cloud"
-    }, 
-    "logger": [
-        {
-            "name": "TestClient", 
-            "file": "/var/log/testclient.log"
-        }, 
-        {
-            "name": "TestCase", 
-            "file": "/var/log/testcase.log"
-        }
-    ], 
-    "mgtSvr": [
-        {
-            "mgtSvrIp": "127.0.0.1", 
-            "port": 8096
-        }
-    ]
-}
diff --git a/tools/devcloud/devcloud.cfg b/tools/devcloud/devcloud.cfg
deleted file mode 100644
index 5232e3a..0000000
--- a/tools/devcloud/devcloud.cfg
+++ /dev/null
@@ -1,112 +0,0 @@
-#  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.
-#
-
-{
-    "zones": [
-        {
-            "name": "DevCloud0", 
-            "enabled" : "True",
-            "physical_networks": [
-                {
-                    "broadcastdomainrange": "Zone", 
-                    "name": "test-network", 
-                    "traffictypes": [
-                        {
-                            "typ": "Guest"
-                        }, 
-                        {
-                            "typ": "Management"
-                        } 
-                    ], 
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VirtualRouter"
-                        },
-                        {
-                            "broadcastdomainrange": "Pod",
-                            "name": "SecurityGroupProvider"
-                        }
-                    ]
-                }
-            ],
-            "dns2": "8.8.4.4",
-            "dns1": "8.8.8.8",
-            "securitygroupenabled": "true", 
-            "localstorageenabled": "true",
-            "networktype": "Basic", 
-            "pods": [
-                {
-                    "endip": "192.168.56.220", 
-                    "name": "test00", 
-                    "startip": "192.168.56.200", 
-                    "guestIpRanges": [
-                        {
-                            "startip": "192.168.56.100", 
-                            "endip": "192.168.56.199", 
-                            "netmask": "255.255.255.0", 
-                            "gateway": "192.168.56.1"
-                        }
-                    ], 
-                    "netmask": "255.255.255.0", 
-                    "clusters": [
-                        {
-                            "clustername": "test000", 
-                            "hypervisor": "XenServer", 
-                            "hosts": [
-                                {
-                                    "username": "root", 
-                                    "url": "http://192.168.56.10/", 
-                                    "password": "password"
-                                }
-                            ], 
-                            "clustertype": "CloudManaged"
-                        }
-                    ], 
-                    "gateway": "192.168.56.1"
-                }
-            ], 
-            "internaldns1": "192.168.56.1", 
-            "secondaryStorages": [
-                {
-                    "url": "nfs://192.168.56.10/opt/storage/secondary",
-                    "provider": "NFS",
-                    "details": [ ]
-                 }
-            ]
-         }
-    ], 
-    "logger": 
-        {
-            "LogFolderPath": "/tmp/"
-        },
-    "mgtSvr": [
-        {
-            "mgtSvrIp": "127.0.0.1", 
-            "port": 8096
-        }
-    ],
-    "dbSvr": 
-        {
-	    "dbSvr": "127.0.0.1",
-	    "port": 3306,
-	    "user": "cloud",
-	    "passwd": "cloud",
-	    "db": "cloud"
-        }
-}
diff --git a/tools/devcloud/devcloud.sql b/tools/devcloud/devcloud.sql
deleted file mode 100644
index 0f49b54..0000000
--- a/tools/devcloud/devcloud.sql
+++ /dev/null
@@ -1,55 +0,0 @@
--- 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.
-
-
-INSERT INTO `cloud`.`disk_offering` (id, name, uuid, display_text, created, use_local_storage, type, disk_size, provisioning_type) VALUES (17, 'tinyOffering', UUID(), 'tinyOffering', NOW(), 1, 'Service', 0, 'thin');
-INSERT INTO `cloud`.`service_offering` (id, cpu, speed, ram_size) VALUES (17, 1, 100, 100);
-INSERT INTO `cloud`.`disk_offering` (id, name, uuid, display_text, created, type, disk_size,provisioning_type) VALUES (18, 'tinyDiskOffering', UUID(), 'tinyDiskOffering', NOW(), 'Disk', 1073741824,'thin');
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT','router.ram.size', '100')
-    ON DUPLICATE KEY UPDATE value = '100';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT','router.cpu.mhz','100')
-    ON DUPLICATE KEY UPDATE value = '100';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT','console.ram.size','100')
-    ON DUPLICATE KEY UPDATE value = '100';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT','console.cpu.mhz', '100')
-    ON DUPLICATE KEY UPDATE value = '100';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT','ssvm.ram.size','100')
-    ON DUPLICATE KEY UPDATE value = '100';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT','ssvm.cpu.mhz','100')
-    ON DUPLICATE KEY UPDATE value = '100';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'expunge.workers', '3')
-    ON DUPLICATE KEY UPDATE value = '3';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'expunge.delay', '60')
-    ON DUPLICATE KEY UPDATE value = '60';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'expunge.interval', '60')
-    ON DUPLICATE KEY UPDATE value = '60';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'enable.ec2.api', 'true')
-    ON DUPLICATE KEY UPDATE value = 'true';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'enable.s3.api', 'true')
-    ON DUPLICATE KEY UPDATE value = 'true';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'host', '192.168.56.1')
-    ON DUPLICATE KEY UPDATE value = '192.168.56.1';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'management.network.cidr', '192.168.56.0/24')
-    ON DUPLICATE KEY UPDATE value = '192.168.56.0/24';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'secstorage.allowed.internal.sites', '192.168.56.0/8')
-    ON DUPLICATE KEY UPDATE value = '192.168.56.0/8';
-INSERT INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'system.vm.use.local.storage', 'true')
-    ON DUPLICATE KEY UPDATE value = 'true';
-UPDATE `cloud`.`configuration` SET value='10' where name = 'storage.overprovisioning.factor';
-UPDATE `cloud`.`configuration` SET value='10' where name = 'cpu.overprovisioning.factor';
-UPDATE `cloud`.`configuration` SET value='10' where name = 'mem.overprovisioning.factor';
-UPDATE `cloud`.`vm_template` SET unique_name="tiny Linux",name="tiny Linux",url="http://people.apache.org/~bhaisaab/vms/ttylinux_pv.vhd",checksum="046e134e642e6d344b34648223ba4bc1",display_text="tiny Linux" where id=5;
diff --git a/tools/devcloud/devcloud_internal-mgt.cfg b/tools/devcloud/devcloud_internal-mgt.cfg
deleted file mode 100644
index beae345..0000000
--- a/tools/devcloud/devcloud_internal-mgt.cfg
+++ /dev/null
@@ -1,121 +0,0 @@
-#  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.
-#
-
-{
-    "zones": [
-        {
-            "name": "DevCloud0", 
-            "physical_networks": [
-                {
-                    "broadcastdomainrange": "Zone", 
-                    "name": "test-network", 
-                    "traffictypes": [
-                        {
-                            "typ": "Guest"
-                        }, 
-                        {
-                            "typ": "Management"
-                        } 
-                    ], 
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VirtualRouter"
-                        },
-                        {
-                            "broadcastdomainrange": "Pod",
-                            "name": "SecurityGroupProvider"
-                        }
-                    ]
-                }
-            ],
-            "dns2": "8.8.4.4",
-            "dns1": "8.8.8.8",
-            "securitygroupenabled": "true", 
-            "localstorageenabled": "true",
-            "networktype": "Basic", 
-            "pods": [
-                {
-                    "endip": "192.168.56.220", 
-                    "name": "test00", 
-                    "startip": "192.168.56.200", 
-                    "guestIpRanges": [
-                        {
-                            "startip": "192.168.56.100", 
-                            "endip": "192.168.56.199", 
-                            "netmask": "255.255.255.0", 
-                            "gateway": "192.168.56.1"
-                        }
-                    ], 
-                    "netmask": "255.255.255.0", 
-                    "clusters": [
-                        {
-                            "clustername": "test000", 
-                            "hypervisor": "XenServer", 
-                            "hosts": [
-                                {
-                                    "username": "root", 
-                                    "url": "http://192.168.56.10/", 
-                                    "password": "password"
-                                }
-                            ], 
-                            "clustertype": "CloudManaged"
-                        }
-                    ], 
-                    "gateway": "192.168.56.1"
-                }
-            ], 
-            "internaldns1": "192.168.56.1", 
-            "secondaryStorages": [
-                {
-                    "url": "nfs://192.168.56.10:/opt/storage/secondary"
-                }
-            ]
-        }
-    ], 
-    "logger": [
-        {
-            "name": "TestClient", 
-            "file": "/tmp/testclient.log"
-        }, 
-        {
-            "name": "TestCase", 
-            "file": "/tmp/testcase.log"
-        }
-    ], 
-    "mgtSvr": [
-        {
-            "mgtSvrIp": "192.168.56.10", 
-            "port": 8096
-        }
-    ],
-    "dbSvr": 
-        {
-	    "dbSvr": "127.0.0.1",
-	    "port": 3306,
-	    "user": "cloud",
-	    "passwd": "cloud",
-	    "db": "cloud"
-        }
-    "globalConfig": [
-        {
-            "name": "host",
-            "value": "192.168.56.10"
-        }
-    ]
-}
diff --git a/tools/devcloud/devcloud_s3.cfg b/tools/devcloud/devcloud_s3.cfg
deleted file mode 100644
index b980091..0000000
--- a/tools/devcloud/devcloud_s3.cfg
+++ /dev/null
@@ -1,141 +0,0 @@
-#  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.
-#
-
-{
-    "zones": [
-        {
-            "name": "DevCloud0", 
-            "physical_networks": [
-                {
-                    "broadcastdomainrange": "Zone", 
-                    "name": "test-network", 
-                    "traffictypes": [
-                        {
-                            "typ": "Guest"
-                        }, 
-                        {
-                            "typ": "Management"
-                        } 
-                    ], 
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VirtualRouter"
-                        },
-                        {
-                            "broadcastdomainrange": "Pod",
-                            "name": "SecurityGroupProvider"
-                        }
-                    ]
-                }
-            ],
-            "dns2": "4.4.4.4", 
-            "dns1": "8.8.8.8",
-            "securitygroupenabled": "true", 
-            "localstorageenabled": "true",
-            "networktype": "Basic", 
-            "pods": [
-                {
-                    "endip": "192.168.56.220", 
-                    "name": "test00", 
-                    "startip": "192.168.56.200", 
-                    "guestIpRanges": [
-                        {
-                            "startip": "192.168.56.100", 
-                            "endip": "192.168.56.199", 
-                            "netmask": "255.255.255.0", 
-                            "gateway": "192.168.56.1"
-                        }
-                    ], 
-                    "netmask": "255.255.255.0", 
-                    "clusters": [
-                        {
-                            "clustername": "test000", 
-                            "hypervisor": "XenServer", 
-                            "hosts": [
-                                {
-                                    "username": "root", 
-                                    "url": "http://192.168.56.10/", 
-                                    "password": "password"
-                                }
-                            ], 
-                            "clustertype": "CloudManaged"
-                        }
-                    ], 
-                    "gateway": "192.168.56.1"
-                }
-            ], 
-            "internaldns1": "192.168.56.1", 
-            "secondaryStorages": [
-                {
-                    "provider": "S3",
-                    "details": [
-                        {
-                            "key" : "accesskey",
-                            "value" :"OYAZXCAFUC1DAFOXNJWI"
-                        },
-                        {
-                            "key" : "secretkey",
-                            "value" : "YHpRtzNDwl12DtrQmwRvdpnf2xK2AeVM30rXxQ=="
-                        },
-                        {
-                            "key" : "endpoint",
-                            "value" : "10.223.89.7:8080"
-                        },
-                        {
-                            "key" : "bucket",
-                            "value" : "cloudstack" 
-                        }
-                    ]
-                }
-            ],
-            "cacheStorages": [
-                {
-                    "url": "nfs://192.168.56.10/opt/storage/secondary",
-                    "provider": "NFS",
-                    "details": [
-                    ]
-                }
-            ]            
-         }
-    ], 
-    "logger": [
-        {
-            "name": "TestClient", 
-            "file": "/tmp/testclient.log"
-        }, 
-        {
-            "name": "TestCase", 
-            "file": "/tmp/testcase.log"
-        }
-    ], 
-    "mgtSvr": [
-        {
-            "mgtSvrIp": "127.0.0.1", 
-            "port": 8096
-        }
-    ],
-    "dbSvr": 
-        {
-	    "dbSvr": "127.0.0.1",
-	    "port": 3306,
-	    "user": "cloud",
-	    "passwd": "cloud",
-	    "db": "cloud"
-        }
-}
diff --git a/tools/devcloud/pom.xml b/tools/devcloud/pom.xml
deleted file mode 100644
index 907a496..0000000
--- a/tools/devcloud/pom.xml
+++ /dev/null
@@ -1,178 +0,0 @@
-<!-- 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. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>cloud-devcloud</artifactId>
-  <name>Apache CloudStack DevCloud</name>
-  <packaging>pom</packaging>
-  <parent>
-    <groupId>org.apache.cloudstack</groupId>
-    <artifactId>cloud-tools</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <dependencies>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.cloudstack</groupId>
-      <artifactId>cloud-developer</artifactId>
-      <version>${project.version}</version>
-      <type>pom</type>
-      <optional>true</optional>
-      <scope>runtime</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <defaultGoal>install</defaultGoal>
-  </build>
-  <profiles>
-    <profile>
-      <id>deploydb</id>
-      <activation>
-        <property>
-          <name>deploydb</name>
-        </property>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>properties-maven-plugin</artifactId>
-            <version>1.0-alpha-2</version>
-            <executions>
-              <execution>
-                <phase>initialize</phase>
-                <goals>
-                  <goal>read-project-properties</goal>
-                </goals>
-                <configuration>
-                  <files>
-                    <file>${project.parent.parent.basedir}/utils/conf/db.properties</file>
-                    <file>${project.parent.parent.basedir}/utils/conf/db.properties.override</file>
-                  </files>
-                  <quiet>true</quiet>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>sql-maven-plugin</artifactId>
-            <version>1.5</version>
-            <dependencies>
-              <!-- specify the dependent jdbc driver here -->
-              <dependency>
-                <groupId>mysql</groupId>
-                <artifactId>mysql-connector-java</artifactId>
-                <version>${cs.mysql.version}</version>
-              </dependency>
-            </dependencies>
-            <configuration>
-              <driver>org.gjt.mm.mysql.Driver</driver>
-              <url>${db.cloud.driver}://${db.cloud.host}:${db.cloud.port}/cloud</url>
-              <username>${db.cloud.username}</username>
-              <password>${db.cloud.password}</password>
-              <!--all executions are ignored if -Dmaven.test.skip=true -->
-              <skip>${maven.test.skip}</skip>
-              <forceMojoExecution>true</forceMojoExecution>
-            </configuration>
-            <executions>
-              <execution>
-                <id>create-schema</id>
-                <phase>process-resources</phase>
-                <goals>
-                  <goal>execute</goal>
-                </goals>
-                <configuration>
-                  <srcFiles>
-                    <srcFile>${basedir}/devcloud.sql</srcFile>
-                  </srcFiles>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>deploysvr</id>
-      <activation>
-        <property>
-          <name>deploysvr</name>
-        </property>
-      </activation>
-      <build> 
-        <plugins>
-          <plugin>
-         <groupId>org.codehaus.mojo</groupId>
-        <artifactId>exec-maven-plugin</artifactId>
-        <version>1.2.1</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>exec</goal>
-            </goals>
-          </execution>
-        </executions>
-        <configuration>
-          <executable>python</executable>
-          <arguments>
-            <argument>../marvin/marvin/deployDataCenter.py</argument>
-            <argument>-i</argument>
-            <argument>devcloud.cfg</argument>
-          </arguments>
-        </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>quickcloud</id>
-      <activation>
-        <property>
-          <name>deployquick</name>
-        </property>
-      </activation>
-      <build> 
-        <plugins>
-          <plugin>
-         <groupId>org.codehaus.mojo</groupId>
-        <artifactId>exec-maven-plugin</artifactId>
-        <version>1.2.1</version>
-        <executions>
-          <execution>
-            <phase>integration-test</phase>
-            <goals>
-              <goal>exec</goal>
-            </goals>
-          </execution>
-        </executions>
-        <configuration>
-          <executable>python</executable>
-          <arguments>
-            <argument>../marvin/marvin/deployDataCenter.py</argument>
-            <argument>-i</argument>
-            <argument>quickcloud.cfg</argument>
-          </arguments>
-        </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-</project>
diff --git a/tools/devcloud/quickcloud.cfg b/tools/devcloud/quickcloud.cfg
deleted file mode 100644
index 46a770f..0000000
--- a/tools/devcloud/quickcloud.cfg
+++ /dev/null
@@ -1,115 +0,0 @@
-#  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.
-#
-
-{
-    "zones": [
-        {
-            "name": "QuickCloud00", 
-            "enabled" : "True",
-            "details" : [
-                    {"key" : "enable.secstorage.vm", "value": "False"},
-                    {"key" : "enable.consoleproxy.vm", "value": "False"}
-            ],
-            "physical_networks": [
-                {
-                    "broadcastdomainrange": "Zone", 
-                    "name": "test-network", 
-                    "traffictypes": [
-                        {
-                            "typ": "Guest"
-                        }, 
-                        {
-                            "typ": "Management"
-                        } 
-                    ], 
-                    "providers": [
-                        {
-                            "broadcastdomainrange": "ZONE", 
-                            "name": "VirtualRouter"
-                        },
-                        {
-                            "broadcastdomainrange": "Pod",
-                            "name": "SecurityGroupProvider"
-                        }
-                    ]
-                }
-            ],
-            "dns2": "8.8.4.4",
-            "dns1": "8.8.8.8",
-            "securitygroupenabled": "true", 
-            "localstorageenabled": "true",
-            "networktype": "Basic", 
-            "networkofferingname": "QuickCloudNoServices", 
-            "pods": [
-                {
-                    "endip": "192.168.56.220", 
-                    "name": "test00", 
-                    "startip": "192.168.56.200", 
-                    "guestIpRanges": [
-                        {
-                            "startip": "192.168.56.100", 
-                            "endip": "192.168.56.199", 
-                            "netmask": "255.255.255.0", 
-                            "gateway": "192.168.56.1"
-                        }
-                    ], 
-                    "netmask": "255.255.255.0", 
-                    "clusters": [
-                        {
-                            "clustername": "test000", 
-                            "hypervisor": "XenServer", 
-                            "hosts": [
-                                {
-                                    "username": "root", 
-                                    "url": "http://192.168.56.10/", 
-                                    "password": "password"
-                                }
-                            ], 
-                            "clustertype": "CloudManaged"
-                        }
-                    ], 
-                    "gateway": "192.168.56.1"
-                }
-            ], 
-            "internaldns1": "192.168.56.1",
-            "secondaryStorages": [
-                {
-                    "url": "nfs://192.168.56.10:/opt/storage/secondary"
-                }
-            ]
-        }
-    ],
-    "logger":
-    {
-            "LogFolderPath": "/tmp/"
-    },
-    "mgtSvr": [
-        {
-            "mgtSvrIp": "127.0.0.1", 
-            "port": 8096
-        }
-    ],
-    "dbSvr": 
-        {
-	    "dbSvr": "127.0.0.1",
-	    "port": 3306,
-	    "user": "cloud",
-	    "passwd": "cloud",
-	    "db": "cloud"
-        }
-}
diff --git a/tools/devcloud/src/.rvmrc b/tools/devcloud/src/.rvmrc
deleted file mode 100644
index 7e51d62..0000000
--- a/tools/devcloud/src/.rvmrc
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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.
-
-rvm use ruby-1.9.3@vagrant-xen-cloudstack --create
-export VAGRANT_HOME=$HOME/.vagrant.d-xen-cloudstack
-bundle check > /dev/null 2>&1
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
-    bundle install
-fi
diff --git a/tools/devcloud/src/Gemfile b/tools/devcloud/src/Gemfile
deleted file mode 100644
index 2790c4a..0000000
--- a/tools/devcloud/src/Gemfile
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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.
-
-source 'https://rubygems.org'
-gem 'vagrant', :git => 'https://github.com/chipchilders/vagrant'
diff --git a/tools/devcloud/src/Vagrantfile b/tools/devcloud/src/Vagrantfile
deleted file mode 100644
index 46bae93..0000000
--- a/tools/devcloud/src/Vagrantfile
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-# 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.
-
-Vagrant::Config.run do |config|
-  config.vm.network :hostonly, "192.168.56.10", :auto_config => false
-  #config.vm.box = "devcloud"
-  config.vm.box = "devcloudbase-xen"
-  #config.vm.box_url = "http://basho-cloudstack.s3.amazonaws.com/devcloud.box"
-
-  config.vm.guest = :xen
-  config.ssh.username = "devcloud"
-  config.vm.host_name = "devcloud.local"
-  # Uncomment this line to enable the console for debugging the
-  # build process.
-  # config.vm.boot_mode = :gui
-
-  # Setup port forwarding
-  config.vm.forward_port 22, 7222
-  config.vm.forward_port 3306, 3306
-  config.vm.forward_port 8080, 8080
-  config.vm.forward_port 8443, 8443
-  config.vm.forward_port 5901, 5901
-  config.vm.forward_port 8787, 8787
-  config.vm.forward_port 8250, 8250
-  config.vm.forward_port 8096, 8096
-  # Ensure the VM has the right virtual resources
-  #config.vm.
-  config.vm.customize ["modifyvm", :id, "--memory", 2048]
-  config.vm.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
-  config.vm.provision :shell, :path => "waitforxe.sh"
-  config.vm.provision :puppet do |puppet|
-     puppet.with_ssh       = true
-     puppet.manifests_path = File.join 'puppet', 'manifests'
-     puppet.module_path    = File.join 'puppet', 'modules', 'devcloud'
-     puppet.manifest_file  = 'vagrant-devcloud.pp'
-     puppet.options        = ['--pluginsync', '--trace', '--debug', '--verbose']
-  end
-
-
-end
diff --git a/tools/devcloud/src/boxit.sh b/tools/devcloud/src/boxit.sh
deleted file mode 100755
index dae53ce..0000000
--- a/tools/devcloud/src/boxit.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#! /bin/bash -ex
-# 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.
-
-vagrant halt
-vagrant package default --output devcloud.box
-vagrant box add devcloud devcloud.box -f
diff --git a/tools/devcloud/src/deps/boxer.sh b/tools/devcloud/src/deps/boxer.sh
deleted file mode 100755
index 72d9cd1..0000000
--- a/tools/devcloud/src/deps/boxer.sh
+++ /dev/null
@@ -1,184 +0,0 @@
-#! /bin/bash
-# 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.
-
-# Load RVM into a shell session *as a function*
-if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
-# First try to load from a user install
-  source "$HOME/.rvm/scripts/rvm"
-elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
-# Then try to load from a root install
-  source "/usr/local/rvm/scripts/rvm"
-else
-  printf "ERROR: An RVM installation was not found.\n"
-fi
-
-BASEDIR=$PWD/boxes
-DEVCLOUD_BASEBUILD_DIR=$BASEDIR/basebox-build
-echo $DEVCLOUD_BASEBUILD_DIR
-DEVCLOUD_XEN_BASEBUILD_DIR=$BASEDIR/xenbox-build
-DEVCLOUD_BASE_NAME='devcloudbase'
-DEVCLOUD_XEN_BASE_NAME='devcloudbase-xen'
-OS='ubuntu-12.04.1-server-i386'
-
-
-basebox()  {
-        set +x
-            rvm rvmrc trust $DEVCLOUD_BASEBUILD_DIR/
-    case "$1" in
-        build)
-            cd $DEVCLOUD_BASEBUILD_DIR/
-            set -ex
-            vagrant basebox define $DEVCLOUD_BASE_NAME $OS
-            cp definition.rb postinstall.sh preseed.cfg definitions/$DEVCLOUD_BASE_NAME/
-            vagrant basebox build $DEVCLOUD_BASE_NAME -f -a -n -r
-            vagrant basebox export $DEVCLOUD_BASE_NAME -f
-            set +ex
-            cd $DEVCLOUD_XEN_BASEBUILD_DIR
-            set -ex
-            vagrant box add $DEVCLOUD_BASE_NAME $DEVCLOUD_BASEBUILD_DIR/${DEVCLOUD_BASE_NAME}.box -f
-            ;;
-        clean)
-            cd $DEVCLOUD_BASEBUILD_DIR/
-            set -x
-            rm -f iso/*.iso
-            vagrant -f basebox destroy $DEVCLOUD_BASE_NAME #-f
-            vagrant basebox undefine $DEVCLOUD_BASE_NAME
-            #hackery to inherit the proper rvmrc for the hacked vagrant
-                        set +x
-                cd $BAS$DEVCLOUD_XEN_BASEBUILD_DIR
-                set -x
-            vagrant -f box remove $DEVCLOUD_BASE_NAME virtualbox
-            set +x
-            cd $DEVCLOUD_BASEBUILD_DIR
-            set -x
-            rm -f ${DEVCLOUD_BASE_NAME}.box
-            set +x
-            cd $BASEDIR
-            #rvm --force gemset delete vagrant-release-cloudstack
-            ;;
-    esac
-}
-
-xenbox() {
-
-   set +x
-    rvm rvmrc trust $DEVCLOUD_XEN_BASEBUILD_DIR/
-    case "$1" in
-        build)
-            cd $DEVCLOUD_XEN_BASEBUILD_DIR
-
-            #adding it here because it needs to be added into the $VAGRANT_HOME of
-            #the hacked vagrant
-            set -ex
-            vagrant up
-            vagrant halt
-            vagrant package default --output ${DEVCLOUD_XEN_BASE_NAME}.box
-            vagrant box add $DEVCLOUD_XEN_BASE_NAME ${DEVCLOUD_XEN_BASE_NAME}.box -f
-            ;;
-        clean)
-            cd $DEVCLOUD_XEN_BASEBUILD_DIR
-            set -x
-            vagrant -f box remove $DEVCLOUD_XEN_BASE_NAME virtualbox
-            vagrant  destroy -f
-            rm -f ${DEVCLOUD_XEN_BASE_NAME}.box
-            set +x
-            #rvm --force gemset delete vagrant-xen-cloudstack
-            set -x
-            ;;
-    esac
-}
-usage() {
-
-cat <<EOF
-$(basename $0) [-h] [-b] [c] (basebox|xenbox) | all
-Builds / cleans boxes used to build the devcloud box
-
-where:
-    -h  show this help text
-    -b  builds the box(es)
-    -c  cleans the box(es)
-
-EOF
-}
-
-while getopts 'hbc' option; do
-  case "$option" in
-    h) usage
-       exit
-       ;;
-    b) action="build"
-       ;;
-    c) action="clean"
-       ;;
-    ?) printf "illegal option: '%s'\n" "$OPTARG" >&2
-       echo "$usage" >&2
-       exit 1
-       ;;
-  esac
-done
-shift $((OPTIND - 1))
-
-posargs=$@
-
-#removes duplicate positionals
-
-posargs=$(echo "$posargs" | tr ' ' '\n' | nl | sort -u -k2 | sort -n | cut -f2-)
-
-
-
-for arg in $posargs; do
-
-    case "$arg" in
-        basebox)
-            true
-            ;;
-        xenbox)
-            true
-            ;;
-        all)
-            true
-            ;;
-        *)
-            usage
-            exit 1
-            ;;
-    esac
-
-done
-
-cd $BASEDIR
-
-for arg in $posargs; do
-    case "$1" in
-        "all")
-            case "$action" in
-                clean)
-                    xenbox $action
-                    basebox $action
-                    ;;
-                build)
-                    basebox $action
-                    xenbox $action
-                    ;;
-            esac
-            ;;
-        $arg)
-            $arg $action
-            ;;
-        esac
-done
diff --git a/tools/devcloud/src/deps/boxes/basebox-build/.rvmrc b/tools/devcloud/src/deps/boxes/basebox-build/.rvmrc
deleted file mode 100644
index 3c8c66c..0000000
--- a/tools/devcloud/src/deps/boxes/basebox-build/.rvmrc
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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.
-
-rvm use ruby-1.9.3@vagrant-release-cloudstack --create
-export VAGRANT_HOME=$HOME/.vagrant.d-release-cloudstack
-bundle check > /dev/null 2>&1
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
-    bundle install
-fi
diff --git a/tools/devcloud/src/deps/boxes/basebox-build/Gemfile b/tools/devcloud/src/deps/boxes/basebox-build/Gemfile
deleted file mode 100644
index dae53be..0000000
--- a/tools/devcloud/src/deps/boxes/basebox-build/Gemfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# 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.
-
-source 'https://rubygems.org'
-gem 'veewee', :git => 'https://github.com/jedi4ever/veewee.git'
-gem 'em-winrm'
diff --git a/tools/devcloud/src/deps/boxes/basebox-build/Vagrantfile b/tools/devcloud/src/deps/boxes/basebox-build/Vagrantfile
deleted file mode 100644
index 2456923..0000000
--- a/tools/devcloud/src/deps/boxes/basebox-build/Vagrantfile
+++ /dev/null
@@ -1,17 +0,0 @@
-# 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.
-
diff --git a/tools/devcloud/src/deps/boxes/basebox-build/definition.rb b/tools/devcloud/src/deps/boxes/basebox-build/definition.rb
deleted file mode 100644
index f7e3c11..0000000
--- a/tools/devcloud/src/deps/boxes/basebox-build/definition.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-Veewee::Session.declare({
-  :cpu_count => '1',
-  :memory_size=> '2048',
-  :disk_size => '20000',
-  :disk_format => 'VMDK',
-  :hostiocache => 'off',
-  :os_type_id => 'Ubuntu',
-  :iso_file => "ubuntu-12.04.1-server-i386.iso",
-  :iso_src => "http://releases.ubuntu.com/12.04/ubuntu-12.04.1-server-i386.iso",
-  :iso_md5 => '32184a83c8b5e6031e1264e5c499bc03',
-  :iso_download_timeout => "1000",
-  :boot_wait => "4",
-  :virtualbox => {
-    :vm_options => [
-      "ioapic" => "on",
-      "hwvirtex" => "on",
-      "nestedpaging" => "on"
-    ]
-  },
-  :boot_cmd_sequence => [
-    '<Esc><Esc><Enter>',
-    '/install/vmlinuz noapic preseed/url=http://%IP%:%PORT%/preseed.cfg ',
-    'debian-installer=en_US auto locale=en_US kbd-chooser/method=us ',
-    'hostname=%NAME% ',
-    'fb=false debconf/frontend=noninteractive ',
-    'keyboard-configuration/layout=USA keyboard-configuration/variant=USA console-setup/ask_detect=false ',
-    'initrd=/install/initrd.gz -- <Enter>'
-],
-  :kickstart_port => "7122",
-  :kickstart_timeout => "10000",
-  :kickstart_file => "preseed.cfg",
-  :ssh_login_timeout => "10000",
-  :ssh_user => "devcloud",
-  :ssh_password => "devcloud",
-  :ssh_key => "",
-  :ssh_host_port => "2222",
-  :ssh_guest_port => "22",
-  :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
-  :shutdown_cmd => "shutdown -P now",
-  :postinstall_files => [ "postinstall.sh"],
-  :postinstall_timeout => "10000"
-})
diff --git a/tools/devcloud/src/deps/boxes/basebox-build/postinstall.sh b/tools/devcloud/src/deps/boxes/basebox-build/postinstall.sh
deleted file mode 100644
index f2b1560..0000000
--- a/tools/devcloud/src/deps/boxes/basebox-build/postinstall.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-apt-get -y update
-apt-get -y upgrade
-apt-get -y install vim
-apt-get -y install ruby
-apt-get -y install rubygems
-apt-get -y install puppet
-apt-get clean
-
-# Setup sudo to allow no-password sudo for "admin"
-groupadd -r admin
-usermod -a -G admin devcloud
-echo "root:password" | chpasswd
-sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers
-sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:/bin/chmod, /bin/cp, /bin/mkdir, /bin/mount, /bin/umount/g' /etc/sudoers
-
-mkdir /home/devcloud/.ssh
-chmod 700 /home/devcloud/.ssh
-cd /home/devcloud/.ssh
-wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys
-chmod 600 /home/devcloud/.ssh/authorized_keys
-chown -R devcloud /home/devcloud/.ssh
-
-# Zero out the free space to save space in the final image:
-dd if=/dev/zero of=/EMPTY bs=1M
-rm -f /EMPTY
diff --git a/tools/devcloud/src/deps/boxes/basebox-build/preseed.cfg b/tools/devcloud/src/deps/boxes/basebox-build/preseed.cfg
deleted file mode 100644
index dd6a24a..0000000
--- a/tools/devcloud/src/deps/boxes/basebox-build/preseed.cfg
+++ /dev/null
@@ -1,105 +0,0 @@
-## Options to set on the command line
-d-i debian-installer/locale string en_US.utf8
-d-i console-setup/ask_detect boolean false
-d-i console-setup/layout string USA
-
-#d-i netcfg/get_hostname string dummy
-d-i netcfg/get_hostname string devcloud
-d-i netcfg/get_domain string cloudstack.org
-
-# Continue without a default route
-# Not working , specify a dummy in the DHCP
-#d-i netcfg/no_default_route boolean
-
-d-i time/zone string UTC
-d-i clock-setup/utc-auto boolean true
-d-i clock-setup/utc boolean true
-
-d-i kbd-chooser/method select American English
-
-d-i netcfg/wireless_wep string
-
-d-i base-installer/kernel/override-image string linux-server
-#d-i base-installer/kernel/override-image string linux-image-2.6.32-21-generic
-
-# Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive
-d-i debconf debconf/frontend select Noninteractive
-
-d-i pkgsel/install-language-support boolean false
-tasksel tasksel/first multiselect standard, ubuntu-server
-
-#d-i partman-auto/method string regular
-d-i partman-auto/method string lvm
-d-i partman-auto-lvm/no_boot boolean true
-d-i partman-auto/disk string /dev/sda
-d-i partman-auto-lvm/new_vg_name string devcloud
-d-i partman-auto/purge_lvm_from_device boolean true
-d-i partman-basicfilesystems/no_swap boolean false
-
-d-i partman-lvm/confirm boolean true
-d-i partman-lvm/device_remove_lvm boolean true
-d-i partman-auto/choose_recipe select devcloud
-
-d-i partman/confirm_write_new_label boolean true
-d-i partman/confirm_nooverwrite boolean true
-d-i partman/choose_partition select finish
-d-i partman/confirm boolean true
-d-i partman-auto/expert_recipe string \
-devcloud :: \
-4000 4500 4500 ext4 method{ lvm } \
-$lvmok{ } mountpoint{ / } lv_name{ root } \
-format{ } use_filesystem{ } filesystem{ ext4 } \
-.\
-15000 15000 15000 ext4 method{ lvm } \
-$lvmok{ } mountpoint{ /opt } lv_name{ data } \
-format{ } use_filesystem{ } filesystem{ ext4 } \
-.
-
-#http://ubuntu-virginia.ubuntuforums.org/showthread.php?p=9626883
-#Message: "write the changes to disk and configure lvm preseed"
-#http://serverfault.com/questions/189328/ubuntu-kickstart-installation-using-lvm-waits-for-input
-#preseed partman-lvm/confirm_nooverwrite boolean true
-
-# Write the changes to disks and configure LVM?
-d-i partman-lvm/confirm boolean true
-d-i partman-lvm/confirm_nooverwrite boolean true
-d-i partman-partitioning/confirm_write_new_label boolean true
-d-i partman/choose_partition select Finish
-d-i partman/confirm_nooverwrite boolean true
-d-i partman/confirm boolean true
-d-i partman-auto-lvm/guided_size string max
-
-## Default user, we can get away with a recipe to change this
-d-i passwd/user-fullname string devcloud
-d-i passwd/username string devcloud
-d-i passwd/user-password password  devcloud
-d-i passwd/user-password-again password devcloud
-d-i user-setup/encrypt-home boolean false
-d-i user-setup/allow-password-weak boolean true
-
-## minimum is puppet and ssh and ntp
-# Individual additional packages to install
-d-i pkgsel/include string openssh-server ntp
-
-# Whether to upgrade packages after debootstrap.
-# Allowed values: none, safe-upgrade, full-upgrade
-d-i pkgsel/upgrade select full-upgrade
-
-d-i grub-installer/only_debian boolean true
-d-i grub-installer/with_other_os boolean true
-d-i finish-install/reboot_in_progress note
-
-#For the update
-d-i pkgsel/update-policy select none
-
-# debconf-get-selections --install
-#Use mirror
-#d-i apt-setup/use_mirror boolean true
-#d-i mirror/country string manual
-#choose-mirror-bin mirror/protocol string http
-#choose-mirror-bin mirror/http/hostname string 192.168.4.150
-#choose-mirror-bin mirror/http/directory string /ubuntu
-#choose-mirror-bin mirror/suite select maverick
-#d-i debian-installer/allow_unauthenticated string true
-
-choose-mirror-bin mirror/http/proxy string
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/.rvmrc b/tools/devcloud/src/deps/boxes/xenbox-build/.rvmrc
deleted file mode 100644
index 7e51d62..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/.rvmrc
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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.
-
-rvm use ruby-1.9.3@vagrant-xen-cloudstack --create
-export VAGRANT_HOME=$HOME/.vagrant.d-xen-cloudstack
-bundle check > /dev/null 2>&1
-RETVAL=$?
-if [ $RETVAL -ne 0 ]; then
-    bundle install
-fi
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/Gemfile b/tools/devcloud/src/deps/boxes/xenbox-build/Gemfile
deleted file mode 100644
index 2790c4a..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/Gemfile
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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.
-
-source 'https://rubygems.org'
-gem 'vagrant', :git => 'https://github.com/chipchilders/vagrant'
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/Vagrantfile b/tools/devcloud/src/deps/boxes/xenbox-build/Vagrantfile
deleted file mode 100644
index 58e9e64..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/Vagrantfile
+++ /dev/null
@@ -1,52 +0,0 @@
-  # -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-# 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.
-
-Vagrant::Config.run do |config|
-  config.vm.box = "devcloudbase"
-  # TODO: Get a URL to host the base image
-  # config.vm.box_url = "http://domain.com/path/to/above.box"
-  config.vm.guest = :xen
-  config.ssh.username = "devcloud"
-  config.vm.host_name = "devcloud.local"
-
-  # Uncomment this line to enable the console for debugging the
-  # build process.
-  #config.vm.boot_mode = :gui
-
-  # Setup port forwarding
-  # config.vm.forward_port 22, 2222
-  # config.vm.forward_port 8080, 8080
-  # config.vm.forward_port 8443, 8443
-  # config.vm.forward_port 5901, 5901
-  # config.vm.forward_port 8787, 8787
-  # config.vm.forward_port 8250, 8250
-
-  # Ensure the VM has the right virtual resources
-  #config.vm.
-
-  config.vm.provision :puppet do |puppet|
-     puppet.with_ssh = true
-     puppet.manifests_path = File.join 'puppet', 'manifests'
-     puppet.module_path = File.join 'puppet', 'modules', 'devcloudinitial'
-     puppet.manifest_file = 'vagrant-devcloudinitial.pp'
-     puppet.options = ['--trace', '--debug', '--verbose']
-  end
-
-end
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/manifests/site.pp b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/manifests/site.pp
deleted file mode 100644
index 13a8339..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/manifests/site.pp
+++ /dev/null
@@ -1,16 +0,0 @@
-# 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.
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/manifests/vagrant-devcloudinitial.pp b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/manifests/vagrant-devcloudinitial.pp
deleted file mode 100644
index 0d48071..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/manifests/vagrant-devcloudinitial.pp
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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 permission  s and limitations
-# under the License.
-
-node default { include devcloudinitial }
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/Modulefile b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/Modulefile
deleted file mode 100644
index b1ca9ad..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/Modulefile
+++ /dev/null
@@ -1,8 +0,0 @@
-name    'puppet-devcloudinitial'
-version '0.0.1'
-source ''
-author 'Apache Software Foundation'
-license 'Licensed under the Apache License, Version 2.0. http://www.apache.org/licenses/LICENSE-2.0'
-summary 'CloudStack DevCloud initial configuration module'
-description 'Installation and configuration of all prequisites for building a DevCloud image.'
-project_page 'http://cloudstack.org'
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/grub b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/grub
deleted file mode 100644
index d5de16c..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/grub
+++ /dev/null
@@ -1,52 +0,0 @@
-# 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.
-
-
-# If you change this file, run 'update-grub' afterwards to update
-# /boot/grub/grub.cfg.
-# For full documentation of the options in this file, see:
-#   info -f grub -n 'Simple configuration'
-
-GRUB_DEFAULT=2
-#GRUB_HIDDEN_TIMEOUT=0
-GRUB_HIDDEN_TIMEOUT_QUIET=true
-GRUB_TIMEOUT=2
-GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
-GRUB_CMDLINE_LINUX_DEFAULT=""
-GRUB_CMDLINE_LINUX=""
-
-# Uncomment to enable BadRAM filtering, modify to suit your needs
-# This works with Linux (no patch required) and with any kernel that obtains
-# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
-#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
-
-# Uncomment to disable graphical terminal (grub-pc only)
-#GRUB_TERMINAL=console
-
-# The resolution used on graphical terminal
-# note that you can use only modes which your graphic card supports via VBE
-# you can see them in real GRUB with the command `vbeinfo'
-#GRUB_GFXMODE=640x480
-
-# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
-#GRUB_DISABLE_LINUX_UUID=true
-
-# Uncomment to disable generation of recovery mode menu entries
-#GRUB_DISABLE_RECOVERY="true"
-
-# Uncomment to get a beep at grub start
-#GRUB_INIT_TUNE="480 440 1"
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/interfaces b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/interfaces
deleted file mode 100644
index 0c19720..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/interfaces
+++ /dev/null
@@ -1,45 +0,0 @@
-# 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.
-auto lo
-iface lo inet loopback
-
-auto eth0
-iface eth0 inet manual
-
-allow-hotplug eth1
-iface eth1 inet manual
-
-auto xenbr0
-iface xenbr0 inet dhcp
-        bridge_ports eth0
-        dns_nameservers 8.8.8.8 8.8.4.4
-        post-up route add default gw 10.0.2.2
-
-auto xenbr1
-iface xenbr1 inet static
-        bridge_ports eth1
-        address 192.168.56.10
-        netmask 255.255.255.0
-        network 192.168.56.0
-        broadcast 192.168.56.255
-        gateway 192.168.56.1
-        dns_nameservers 8.8.8.8 8.8.4.4
-        post-up route del default gw 192.168.56.1; route add default gw 192.168.56.1 metric 100;
-
-
-pre-up iptables-save < /etc/iptables.save
-pre-up /etc/init.d/ebtables load
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/iptables.save b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/iptables.save
deleted file mode 100644
index 07647f8..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/iptables.save
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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.
-
-*mangle
-:PREROUTING ACCEPT [397:23804]
-:INPUT ACCEPT [397:23804]
-:FORWARD ACCEPT [0:0]
-:OUTPUT ACCEPT [238:22820]
-:POSTROUTING ACCEPT [238:22820]
--A POSTROUTING -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
-COMMIT
-*filter
-:INPUT ACCEPT [453:27164]
-:FORWARD ACCEPT [0:0]
-:OUTPUT ACCEPT [273:26476]
-COMMIT
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/xen-defaults b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/xen-defaults
deleted file mode 100644
index 9083968..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/xen-defaults
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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.
-
-TOOLSTACK=xapi
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/xend b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/xend
deleted file mode 100644
index 4a53299..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/files/xend
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/bin/sh
-# 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.
-
-### BEGIN INIT INFO
-# Provides:          xend
-# Required-Start:    $remote_fs
-# Required-Stop:     $remote_fs
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: XEN control daemon
-# Description:       XEN control daemon
-### END INIT INFO
-
-PATH=/usr/lib/xen-common/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DESC="Xen daemons"
-
-VERSION=$(xen-version)
-ROOT=/usr/lib/xen-$VERSION
-
-XEND="$ROOT"/bin/xend
-XENCONSOLED="$ROOT"/bin/xenconsoled
-XENCONSOLED_PIDFILE="/var/run/xenconsoled.pid"
-XENSTORED="$ROOT"/bin/xenstored
-XENSTORED_DIR="/var/run/xenstored"
-XENSTORED_PIDFILE="/var/run/xenstore.pid"
-
-[ "$VERSION" ] || exit 0
-[ -x "$XEND" ] || exit 0
-
-[ -r /etc/default/xend ] && . /etc/default/xend
-
-. /lib/init/vars.sh
-. /lib/lsb/init-functions
-
-modules_setup()
-{
-        modprobe xenfs 2>/dev/null
-        modprobe xen-evtchn 2>/dev/null
-        modprobe xen_blkback 2>/dev/null
-        modprobe xen_netback 2>/dev/null
-        modprobe xen_gntdev 2>/dev/null
-}
-
-xenfs_setup()
-{
-        [ -e "/proc/xen/capabilities" ] && return 0
-        log_progress_msg "xenfs"
-        [ -d "/proc/xen" ] || return 1
-        mount -t xenfs xenfs /proc/xen || return 1
-        return 0
-}
-
-capability_check()
-{
-        [ -e "/proc/xen/capabilities" ] || return 1
-        grep -q "control_d" /proc/xen/capabilities || return 1
-        return 0
-}
-
-xend_start()
-{
-        log_progress_msg "xend"
-        $XEND status && return 1
-        $XEND start || return 2
-
-        i=0
-        while [ $i -lt 10 ]; do
-                $XEND status && return 0 || true
-                i=$(($i + 1))
-                sleep 1
-        done
-        return 2
-}
-
-xend_stop()
-{
-        log_progress_msg "xend"
-        $XEND status || return 0
-        $XEND stop || return 1
-}
-
-xenconsoled_start()
-{
-        log_progress_msg "xenconsoled"
-        start-stop-daemon --start --quiet --pidfile "$XENCONSOLED_PIDFILE" --exec "$XENCONSOLED" --test > /dev/null \
-                || return 1
-        start-stop-daemon --start --quiet --pidfile "$XENCONSOLED_PIDFILE" --exec "$XENCONSOLED" -- \
-                $XENCONSOLED_ARGS --pid-file="$XENCONSOLED_PIDFILE" \
-                || return 2
-}
-
-xenstored_start()
-{
-        log_progress_msg "xenstored"
-        start-stop-daemon --start --quiet --pidfile "$XENSTORED_PIDFILE" --exec "$XENSTORED" --test > /dev/null \
-                || return 1
-        [ -d "$XENSTORED_DIR" ] || mkdir -p "$XENSTORED_DIR"
-        export XENSTORED_ROOTDIR="$XENSTORED_DIR"
-        start-stop-daemon --start --quiet --pidfile "$XENSTORED_PIDFILE" --exec "$XENSTORED" -- \
-                $XENSTORED_ARGS --pid-file="$XENSTORED_PIDFILE" \
-                || return 2
-}
-
-case "$1" in
-  start)
-        log_daemon_msg "Starting $DESC"
-        modules_setup
-        xenfs_setup
-        case "$?" in
-                0) ;;
-                *) log_end_msg 1; exit ;;
-        esac
-        capability_check
-        case "$?" in
-                0) ;;
-                *) log_end_msg 255; exit ;;
-        esac
-        xenstored_start
-        case "$?" in
-                0|1) ;;
-                *) log_end_msg 1; exit ;;
-        esac
-        xenconsoled_start
-        case "$?" in
-                0|1) ;;
-                *) log_end_msg 1; exit ;;
-        esac
-        #xend_start
-        case "$?" in
-                0|1) ;;
-                *) log_end_msg 1; exit ;;
-        esac
-        log_end_msg 0
-        ;;
-  stop)
-        capability_check
-        case "$?" in
-                0) ;;
-                *) exit ;;
-        esac
-        log_daemon_msg "Stopping $DESC"
-        #xend_stop
-        case "$?" in
-                0|1) log_end_msg 0 ;;
-                *) log_end_msg 1 ;;
-        esac
-        ;;
-  restart|force-reload)
-        capability_check
-        case "$?" in
-                0) ;;
-                *) exit ;;
-        esac
-        log_daemon_msg "Restarting $DESC"
-        #xend_stop
-        case "$?" in
-                0|1)
-                #xend_start
-                case "$?" in
-                        0) log_end_msg 0 ;;
-                        *) log_end_msg 1 ;;
-                esac
-                ;;
-                *) log_end_msg 1 ;;
-        esac
-        ;;
-  *)
-        echo "Usage: $0 {start|stop|restart|force-reload}" >&2
-        exit 3
-        ;;
-esac
-
-exit 0
diff --git a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/manifests/init.pp b/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/manifests/init.pp
deleted file mode 100644
index e1f4c5a..0000000
--- a/tools/devcloud/src/deps/boxes/xenbox-build/puppet/modules/devcloudinitial/manifests/init.pp
+++ /dev/null
@@ -1,119 +0,0 @@
-# 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.
-
-
-class devcloudinitial {
-
-  if $::architecture == 'x86_64'{
-    $debarch='amd64'
-  }
-  else {
-    $debarch='i386'
-  }
-
-  exec { "apt-update":
-    command => "/usr/bin/apt-get update"
-  }
-
-  Exec["apt-update"] -> Package <| |>
-
-  package {
-    "linux-headers-${::kernelrelease}":
-      ensure => latest;
-    "xen-hypervisor-4.1-${debarch}":
-      ensure  => latest,
-      require => Package["linux-headers-${::kernelrelease}"];
-    'xcp-xapi':
-      ensure  => latest,
-      require => Package["xen-hypervisor-4.1-${debarch}"];
-    'iptables':
-      ensure  => latest;
-    'ebtables':
-      ensure  => latest;
-  }
-
-  file {
-  '/etc/iptables.save':
-      ensure  => 'file',
-      require => Package['iptables'],
-      source  => 'puppet:///modules/devcloudinitial/iptables.save',
-      group   => '0',
-      mode    => '0644',
-      owner   => '0';
-  '/etc/xcp/network.conf':
-      ensure  => 'file',
-      require => Package['xcp-xapi'],
-      content => "bridge",
-      group   => '0',
-      mode    => '0644',
-      owner   => '0';
-  '/etc/init.d/xend':
-      ensure  => 'file',
-      require => Package['xcp-xapi'],
-      source  => 'puppet:///modules/devcloudinitial/xend',
-      group   => '0',
-      owner   => '0',
-      mode    => '0755';
-  '/etc/default/grub':
-      ensure  => 'file',
-      require => Package["xen-hypervisor-4.1-${debarch}"],
-      source  => 'puppet:///modules/devcloudinitial/grub',
-      group   => '0',
-      mode    => '0644',
-      owner   => '0';
-  '/usr/share/qemu':
-      ensure  => 'directory',
-      require => Package["xen-hypervisor-4.1-${debarch}"],
-      group   => '0',
-      mode    => '0755',
-      owner   => '0';
-  '/usr/share/qemu/keymaps':
-      ensure  => 'link',
-      require => File['/usr/share/qemu'],
-      group   => '0',
-      mode    => '0777',
-      owner   => '0',
-      target  => '/usr/share/qemu-linaro/keymaps';
-  '/etc/network/interfaces':
-      ensure  => 'file',
-      source  => 'puppet:///modules/devcloudinitial/interfaces',
-      group   => '0',
-      mode    => '0644',
-      owner   => '0';
-  '/etc/default/xen':
-      ensure  => 'file',
-      require => Package["xen-hypervisor-4.1-${debarch}"],
-      source  => 'puppet:///modules/devcloudinitial/xen-defaults',
-      group   => '0',
-      mode    => '0644',
-      owner   => '0';
-  }
-
-  service {
-    'xendomains':
-      ensure  => 'stopped',
-      require => Package['xcp-xapi'],
-      enable  => false;
-  }
-
-  exec { '/usr/sbin/update-grub':
-    subscribe   => File['/etc/default/grub'],
-    refreshonly => true,
-    cwd         => '/',
-  }
-
-}
diff --git a/tools/devcloud/src/puppet/manifests/vagrant-devcloud.pp b/tools/devcloud/src/puppet/manifests/vagrant-devcloud.pp
deleted file mode 100644
index 47b07dc..0000000
--- a/tools/devcloud/src/puppet/manifests/vagrant-devcloud.pp
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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.
-
-include devcloud
diff --git a/tools/devcloud/src/puppet/modules/devcloud/Modulefile b/tools/devcloud/src/puppet/modules/devcloud/Modulefile
deleted file mode 100644
index ace7d48..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/Modulefile
+++ /dev/null
@@ -1,8 +0,0 @@
-name    'puppet-devcloud'
-version '0.0.1'
-source ''
-author 'Apache Software Foundation'
-license 'Licensed under the Apache License, Version 2.0. http://www.apache.org/licenses/LICENSE-2.0'
-summary 'CloudStack DevCloud configuration module'
-description 'Devcloud setup module.'
-project_page 'http://cloudstack.org'
diff --git a/tools/devcloud/src/puppet/modules/devcloud/files/compare.sh b/tools/devcloud/src/puppet/modules/devcloud/files/compare.sh
deleted file mode 100644
index e0ee95c..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/files/compare.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /bin/bash -eux
-# 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.
-
-FILE=$1
-WORKING_DIR=$2
-cd $WORKING_DIR
-test `grep  $FILE ${WORKING_DIR}/md5sum.txt | awk '{print $1}'` == `md5sum $FILE |awk '{print $1}'`
diff --git a/tools/devcloud/src/puppet/modules/devcloud/files/configebtables.sh b/tools/devcloud/src/puppet/modules/devcloud/files/configebtables.sh
deleted file mode 100644
index 8329333..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/files/configebtables.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-# 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.
-mac=`/sbin/ifconfig xenbr0 |/bin/grep HWaddr |/usr/bin/awk '{print $5}'`
-/sbin/ebtables -I FORWARD -d ! $mac -i eth0 -p IPV4 --ip-prot udp --ip-dport 67:68 -j DROP
-exit 0
diff --git a/tools/devcloud/src/puppet/modules/devcloud/files/configlocalstorage.sh b/tools/devcloud/src/puppet/modules/devcloud/files/configlocalstorage.sh
deleted file mode 100644
index 3ed1a39..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/files/configlocalstorage.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-# 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.
-/usr/bin/xe sr-list | /bin/grep local-storage
-rc=$?
-if [[ $rc != 0 ]] ; then
-    hostuuid=`xe host-list |grep uuid|awk '{print $5}'`;
-    xe sr-create host-uuid=$hostuuid name-label=local-storage shared=false type=file device-config:location=/opt/storage/primary
-fi
-exit 0
diff --git a/tools/devcloud/src/puppet/modules/devcloud/files/configvnc.sh b/tools/devcloud/src/puppet/modules/devcloud/files/configvnc.sh
deleted file mode 100644
index b739dc6..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/files/configvnc.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-grep 0.0.0.0 /usr/lib/xcp/lib/vncterm-wrapper
-rc=$?
-if [[ $rc != 0 ]] ; then
-    sed -i 's/VNCTERM_LISTEN=.\+/VNCTERM_LISTEN="-v 0.0.0.0:1"/' /usr/lib/xcp/lib/vncterm-wrapper
-fi
-exit 0
diff --git a/tools/devcloud/src/puppet/modules/devcloud/files/exports b/tools/devcloud/src/puppet/modules/devcloud/files/exports
deleted file mode 100644
index 1f91650..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/files/exports
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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.
-
-/opt/storage/primary *(rw,no_subtree_check,no_root_squash,fsid=0)
-/opt/storage/secondary *(rw,no_subtree_check,no_root_squash,fsid=0)
diff --git a/tools/devcloud/src/puppet/modules/devcloud/files/installmaven.sh b/tools/devcloud/src/puppet/modules/devcloud/files/installmaven.sh
deleted file mode 100644
index 8cd3df0..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/files/installmaven.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-cd /opt/cloudstack
-/usr/bin/wget http://apache.mirrors.pair.com/maven/maven-3/3.0.4/binaries/apache-maven-3.0.4-bin.tar.gz
-/bin/tar xvfz apache-maven-3.0.4-bin.tar.gz
diff --git a/tools/devcloud/src/puppet/modules/devcloud/files/startdevcloud.sh b/tools/devcloud/src/puppet/modules/devcloud/files/startdevcloud.sh
deleted file mode 100644
index 27a7a04..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/files/startdevcloud.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32
-cd /opt/cloudstack/incubator-cloudstack/
-nohup ant run > /dev/null 2>&1 &
-exit 0
diff --git a/tools/devcloud/src/puppet/modules/devcloud/files/updatecode.sh b/tools/devcloud/src/puppet/modules/devcloud/files/updatecode.sh
deleted file mode 100644
index 5525920..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/files/updatecode.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-cd /opt/cloudstack
-git clone https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git
-rc=$?
-if [[ $rc != 0 ]] ; then
-    cd /opt/cloudstack/incubator-cloudstack
-    git pull origin master
-fi
-exit 0
diff --git a/tools/devcloud/src/puppet/modules/devcloud/lib/facter/xeninfo.rb b/tools/devcloud/src/puppet/modules/devcloud/lib/facter/xeninfo.rb
deleted file mode 100644
index a0b8748..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/lib/facter/xeninfo.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-# 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 permission  s and limitations
-# under the License.
-
-Facter.add(:xen_hostuuid) do
-  setcode do
-    uuid=Facter::Util::Resolution.exec('xe host-list |grep uuid|awk \'{print $5}\'')
-  end
-end
diff --git a/tools/devcloud/src/puppet/modules/devcloud/manifests/functions/httpdownload.pp b/tools/devcloud/src/puppet/modules/devcloud/manifests/functions/httpdownload.pp
deleted file mode 100644
index 2a88771..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/manifests/functions/httpdownload.pp
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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 permission  s and limitations
-# under the License.
-
-define devcloud::functions::httpdownload () {
-  $file="${name['basedir']}/${name['basefile']}"
-
-  exec {
-    "getfileifnotexist${name}":
-      command => "/usr/bin/wget ${name['url']}/${file}  -O ${name['local_dir']}/${file}",
-      timeout => 0,
-      unless  => "test -f ${name['local_dir']}/${file}",
-      require => [ File["${name['local_dir']}/${name['base_dir']}/"],
-                   Exec["get_md5sums"] ];
-
-
-    "getfileifnotmatch${name}":
-      command => "/usr/bin/wget ${name['url']}/${file} -O ${name['local_dir']}/${file}",
-      timeout => 0,
-      unless  => "/usr/local/bin/compare.sh ${file} ${name['working_dir']} ",
-      require => [  Exec["getfileifnotexist${name}"], File["/usr/local/bin/compare.sh"] ]
-    }
-
-}
diff --git a/tools/devcloud/src/puppet/modules/devcloud/manifests/init.pp b/tools/devcloud/src/puppet/modules/devcloud/manifests/init.pp
deleted file mode 100644
index 260e254..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/manifests/init.pp
+++ /dev/null
@@ -1,255 +0,0 @@
-# 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 permission  s and limitations
-# under the License.
-
-
-class devcloud (
-
-  $cs_dir            = $devcloud::params::cs_dir ,
-  $devcloud_path     = $devcloud::params::devcloud_path,
-  $gitrepo           = $devcloud::params::gitrepo,
-  $storage_dir       = $devcloud::params::storage_dir,
-  $tomcat_version    = $devcloud::params::tomcat_version,
-  $tomcat_url        = $devcloud::params::tomcat_url,
-  $tomcat_home       = $devcloud::params::tomcat_home,
-  $maven_version     = $devcloud::params::maven_version,
-  $maven_url         = $devcloud::params::maven_url,
-  $maven_home        = $devcloud::params::maven_home,
-  $downloads         = $devcloud::params::downloads,
-  $md5sum_local      = $devcloud::params::md5sum_local,
-  $md5sum_remote     = $devcloud::params::md5sum_remote,
-  $hostuuid          = $::xen_hostuuid,
-  $bridge_device_mac = $::macaddress_xenbr0,
-  $build_cloudstack  = $devcloud::params::build_cloudstack
-
-) inherits devcloud::params {
-
-  Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }
-
-  Exec["apt-update"] -> Package <| |>
-
-  service {
-    'ebtables':
-      ensure  => 'running',
-      enable  => true;
-
-  'nfs-kernel-server':
-    ensure    => 'running',
-    require   => Package['nfs-server'],
-    enable    => true,
-    subscribe => File['/etc/exports'];
-  }
-
-  package
-  { [ 'ant',
-      'git',
-      'python-mysql.connector',
-      'mkisofs',
-      'mysql-server',
-      'nfs-server',
-      'openjdk-6-jdk',
-      'unzip' ]:
-        ensure  => latest,
-  }
-
-  exec {
-
-    'apt-update':
-      command => '/usr/bin/apt-get update';
-
-    'get_md5sums':
-      command => "/usr/bin/wget -N ${md5sum_remote} -O ${md5sum_local}",
-      require => File["${storage_dir}/secondary/template/tmpl/1/"],
-      timeout => '0';
-
-    'getecho':
-      command => "/usr/bin/wget ${devcloud_path}/echo -O /usr/lib/xcp/plugins/echo",
-      creates => '/usr/lib/xcp/plugins/echo';
-
-    'setxcpperms':
-      command => '/bin/chmod -R 755 /usr/lib/xcp',
-      require => Exec['getecho'];
-
-    'get_code':
-      command => "git clone ${gitrepo}",
-      cwd     => $cs_dir,
-      require => File[$cs_dir],
-      timeout => '7200',
-      creates => "${cs_dir}/incubator-cloudstack";
-
-    'update_code':
-      command => 'git pull origin master',
-      cwd     => "${cs_dir}/incubator-cloudstack",
-      timeout => '7200',
-      require => [ Exec['get_code']];
-
-    'configlocal':
-      command => "xe sr-create host-uuid=${hostuuid} name-label=local-storage shared=false type=file device-config:location=${storage_dir}/primary",
-      cwd     => '/',
-      unless  => '/usr/bin/xe sr-list | /bin/egrep \'local-storage|Cloud Stack Local EXT Storage Pool\'',
-      require => [
-        File["${storage_dir}/primary"],
-        ];
-
-    'configvnc':
-      command => 'sed -i \'s/VNCTERM_LISTEN=.\+/VNCTERM_LISTEN="-v 0.0.0.0:1"/\' /usr/lib/xcp/lib/vncterm-wrapper',
-      onlyif  => '/bin/grep "0.0.0.0:1" /usr/lib/xcp/lib/vncterm-wrapper';
-
-    'downloadtomcat':
-      command => "/usr/bin/wget ${tomcat_url} -P ${cs_dir}/",
-      creates => "${cs_dir}/apache-tomcat-${tomcat_version}.zip",
-      require => File[$cs_dir],
-      timeout => '0';
-
-    'unziptomcat':
-      require => [
-        Package['unzip'],
-        Exec['downloadtomcat']
-        ],
-      creates => $tomcat_home,
-      command => "/usr/bin/unzip apache-tomcat-${tomcat_version}.zip",
-      cwd     => $cs_dir,
-      timeout => '0';
-
-    'downloadmaven':
-      command => "/usr/bin/wget ${maven_url} -P ${cs_dir}/",
-      creates => "${cs_dir}/apache-maven-${maven_version}-bin.tar.gz",
-      require => Exec['unziptomcat'],
-      timeout => '0';
-
-    'install_maven':
-      require => Exec['downloadmaven'],
-      creates => $maven_home,
-      command => "/bin/tar xzvf ${cs_dir}/apache-maven-${maven_version}-bin.tar.gz",
-      cwd     => $cs_dir,
-      timeout => '0';
-
-    'tomcatperms':
-      command => "chmod +x ${tomcat_home}/bin/*.sh",
-      require => Exec['unziptomcat'];
-
-    'catalina_home':
-      require => Exec['unziptomcat'],
-      unless  => '/bin/grep CATALINA_HOME /root/.bashrc',
-      command => "/bin/echo \"export CATALINA_HOME=${tomcat_home}\" >> /root/.bashrc",
-      cwd     => '/';
-
-    'configebtables':
-      require     => Service['ebtables'],
-      command     => "/sbin/ebtables -I FORWARD -d ! ${bridge_device_mac} -i eth1 -p IPV4 --ip-prot udp --ip-dport 67:68 -j DROP",
-      unless      => "/sbin/ebtables -L | grep \"-I FORWARD -d ! ${bridge_device_mac} -i eth1 -p IPV4 --ip-prot udp --ip-dport 67:68 -j DROP\"",
-      refreshonly => true,
-      cwd         => '/',
-      path        => '/sbin/:/usr/bin/:/bin'
-}
-
-  if $build_cloudstack {
-
-    exec {
-      'build_cloudstack':
-        require  => [
-          Package['ant','mkisofs'],
-          Exec['install_maven'],
-          File[
-            "${cs_dir}/incubator-cloudstack/dist",
-            "${cs_dir}/incubator-cloudstack/target",
-            "${cs_dir}/buildcloudstack.sh"]
-          ],
-        command  => "${cs_dir}/buildcloudstack.sh",
-        cwd      => $cs_dir,
-        timeout  => '0';
-    }
-  }
-
-
-  file {
-
-    [ $cs_dir,
-      $storage_dir,
-      "${storage_dir}/primary",
-      "${storage_dir}/secondary",
-      "${storage_dir}/secondary/template",
-      "${storage_dir}/secondary/template/tmpl",
-      "${storage_dir}/secondary/template/tmpl/1",
-      "${storage_dir}/secondary/template/tmpl/1/1",
-      "${storage_dir}/secondary/template/tmpl/1/5" ]:
-        ensure => 'directory',
-        group  => '0',
-        mode   => '0755',
-        owner  => '0';
-
-    [ "${cs_dir}/incubator-cloudstack/dist",
-      "${cs_dir}/incubator-cloudstack/target" ] :
-      ensure  => 'directory',
-      group   => '0',
-      mode    => '0755',
-      owner   => '0',
-      require => [ Exec['update_code']];
-
-    "${cs_dir}/buildcloudstack.sh":
-      ensure  => 'file',
-      mode    => '0755',
-      owner   => '0',
-      group   => '0',
-      content => template('devcloud/buildcloudstack.sh.erb');
-
-    "${cs_dir}/startcloudstack.sh":
-      ensure  => 'file',
-      mode    => '0755',
-      owner   => '0',
-      group   => '0',
-      content => template('devcloud/startcloudstack.sh.erb');
-
-    '/root/.ssh' :
-      ensure => 'directory',
-      group  => 'root',
-      mode   => '0700',
-      owner  => 'root';
-
-    "${cs_dir}/startdevcloud.sh":
-      ensure  => 'file',
-      source  => 'puppet:///modules/devcloud/startdevcloud.sh',
-      mode    => '0755',
-      owner   => '0',
-      group   => '0';
-
-    '/usr/local/bin/compare.sh':
-      ensure  => 'file',
-      source  => 'puppet:///modules/devcloud/compare.sh',
-      mode    => '0755',
-      owner   => 'root',
-      group   => 'root';
-
-    '/etc/exports':
-      ensure  => 'file',
-      require => Package['nfs-server'],
-      source  => 'puppet:///modules/devcloud/exports',
-      mode    => '0644',
-      owner   => '0',
-      group   => '0';
-
-    }
-
-
-  devcloud::functions::httpdownload{
-    $downloads:
-      require =>
-        [ File["${storage_dir}/secondary/template/tmpl/1/1"],
-          File["${storage_dir}/secondary/template/tmpl/1/5"],
-          Exec['get_md5sums'] ]
-  }
-
-}
diff --git a/tools/devcloud/src/puppet/modules/devcloud/manifests/params.pp b/tools/devcloud/src/puppet/modules/devcloud/manifests/params.pp
deleted file mode 100644
index ff625c1..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/manifests/params.pp
+++ /dev/null
@@ -1,78 +0,0 @@
-# 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 permission  s and limitations
-# under the License.
-
-# == Class: devcloud::params
-#
-# This class implements the module params pattern, but it's loaded using hiera
-# as opposed to the 'default' usage of coding the parameter values in your
-# manifest.
-#
-# == Usage
-#
-# Don't use this class directly; it's being used where it is needed
-#
-class devcloud::params {
-
-      $cs_dir         = '/opt/cloudstack'
-      $storage_dir    = '/opt/storage'
-      $tomcat_version = '6.0.32'
-      $tomcat_url     = "http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat_version}/bin/apache-tomcat-${tomcat_version}.zip"
-      $tomcat_home    = "${cs_dir}/apache-tomcat-${tomcat_version}"
-      $maven_version  = '3.0.4'
-      $maven_url      = "http://apache.mirrors.pair.com/maven/maven-3/${maven_version}/binaries/apache-maven-${maven_version}-bin.tar.gz"
-      $maven_home     = "${cs_dir}/apache-maven-${maven_version}"
-      $devcloud_path  = 'http://download.cloud.com/templates/devcloud'
-      $template_path  = "${devcloud_path}/defaulttemplates"
-      $md5sum_remote  = "${template_path}/md5sum.txt"
-      $md5sum_local   = "${storage_dir}/secondary/template/tmpl/1/md5sum.txt"
-      $template_dir   = "${storage_dir}/secondary/template/tmpl/1"
-      $gitrepo        = 'https://github.com/apache/incubator-cloudstack.git'
-      $build_cloudstack = false
-
-
-  $downloads =  [
-
-    {
-      'basefile'    => 'template.properties',
-      'basedir'     => '1',
-      'url'         => $template_path,
-      'local_dir'   => $template_dir,
-      'working_dir' => $template_dir
-    },
-    {
-      'basefile'    => 'template.properties',
-      'basedir'     => '5',
-      'url'         => $template_path,
-      'local_dir'   => $template_dir,
-      'working_dir' => $template_dir
-    },
-    {
-      'basefile'    => 'dc68eb4c-228c-4a78-84fa-b80ae178fbfd.vhd',
-      'basedir'     => '1',
-      'url'         => $template_path,
-      'local_dir'   => $template_dir,
-      'working_dir' => $template_dir
-    },
-    {
-      'basefile'    => 'ce5b212e-215a-3461-94fb-814a635b2215.vhd',
-      'basedir'     => '5',
-      'url'         => $template_path,
-      'local_dir'   => $template_dir,
-      'working_dir' => $template_dir
-    }
-  ]
-}
diff --git a/tools/devcloud/src/puppet/modules/devcloud/templates/buildcloudstack.sh.erb b/tools/devcloud/src/puppet/modules/devcloud/templates/buildcloudstack.sh.erb
deleted file mode 100644
index acf9b0b..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/templates/buildcloudstack.sh.erb
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-export CATALINA_HOME=<%= @tomcat_home %>
-export M2_HOME=<%= @maven_home %>
-export M2=$M2_HOME/bin
-MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=800m -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
-PATH=$M2:$PATH
-cd <%= @cs_dir %>/incubator-cloudstack/
-<%= @maven_home %>/bin/mvn clean install -P developer,systemvm
-<%= @maven_home %>/bin/mvn -pl developer,tools/devcloud -Ddeploydb -P developer
-<%= @maven_home %>/bin/mvn -P developer -pl tools/devcloud -Ddeploysvr
diff --git a/tools/devcloud/src/puppet/modules/devcloud/templates/startcloudstack.sh.erb b/tools/devcloud/src/puppet/modules/devcloud/templates/startcloudstack.sh.erb
deleted file mode 100644
index 4a07711..0000000
--- a/tools/devcloud/src/puppet/modules/devcloud/templates/startcloudstack.sh.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-export CATALINA_HOME=<%= @tomcat_home %>
-export M2_HOME=<%= @maven_home %>
-export M2=$M2_HOME/bin
-MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=800m -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
-PATH=$M2:$PATH
-cd <%= @cs_dir %>/incubator-cloudstack/
-<%= @maven_home %>/bin/mvn -pl client jetty:run &
diff --git a/tools/devcloud/src/waitforxe.sh b/tools/devcloud/src/waitforxe.sh
deleted file mode 100755
index 637b9fc..0000000
--- a/tools/devcloud/src/waitforxe.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#! /bin/bash
-# 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.
-
-date
-interval=20
-timeout=300
-command="xe host-list"
-
-count=0
-maxcount=$(($timeout/$interval))
-
-until  [ $count -gt $maxcount ]; do
-    if $command > /dev/null 2>&1; then
-        echo "\"$command\" executed successfully."
-        date
-        exit 0
-    fi
-    let count=count+1
-    echo "Waiting for \"$command\" to run successfully."
-    sleep $interval
-done
-
-echo "\"$command\" failed to complete."
-date
diff --git a/tools/devcloud4/advanced/README.md b/tools/devcloud4/advanced/README.md
index 6171839..4c3b001 100644
--- a/tools/devcloud4/advanced/README.md
+++ b/tools/devcloud4/advanced/README.md
@@ -54,7 +54,7 @@
 
 	```bash
 	cd /path/to/cloudstack/repo
-	wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util -P scripts/vm/hypervisor/xenserver/
+	wget http://download.cloudstack.org/tools/vhd-util -P scripts/vm/hypervisor/xenserver/
 	chmod +x scripts/vm/hypervisor/xenserver/vhd-util
 	```
 
diff --git a/tools/devcloud4/basic/README.md b/tools/devcloud4/basic/README.md
index 31cb62d..ea502b3 100644
--- a/tools/devcloud4/basic/README.md
+++ b/tools/devcloud4/basic/README.md
@@ -44,7 +44,7 @@
 
 	```bash
 	cd /path/to/cloudstack/repo
-	wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util -P scripts/vm/hypervisor/xenserver/
+	wget http://download.cloudstack.org/tools/vhd-util -P scripts/vm/hypervisor/xenserver/
 	chmod +x scripts/vm/hypervisor/xenserver/vhd-util
 	```
 
diff --git a/tools/devcloud4/pom.xml b/tools/devcloud4/pom.xml
index 6106789..b87dbef 100644
--- a/tools/devcloud4/pom.xml
+++ b/tools/devcloud4/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
index 9d8b2e0..c9c250f 100644
--- a/tools/docker/Dockerfile
+++ b/tools/docker/Dockerfile
@@ -5,9 +5,9 @@
 # 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
@@ -17,30 +17,38 @@
 #
 # CloudStack-simulator build
 
-FROM ubuntu:14.04
+FROM ubuntu:16.04
 
 MAINTAINER "Apache CloudStack" <dev@cloudstack.apache.org>
-LABEL Vendor="Apache.org" License="ApacheV2" Version="4.6.0"
+LABEL Vendor="Apache.org" License="ApacheV2" Version="4.10.1.0-SNAPSHOT"
 
 RUN apt-get -y update && apt-get install -y \
     genisoimage \
+    libffi-dev \
+    libssl-dev \
     git \
+    sudo \
+    ipmitool \
     maven \
-    openjdk-7-jdk \
+    openjdk-8-jdk \
     python-dev \
     python-setuptools \
     python-pip \
+    python-mysql.connector \
     supervisor
 
 RUN echo 'mysql-server mysql-server/root_password password root' |  debconf-set-selections; \
     echo 'mysql-server mysql-server/root_password_again password root' |  debconf-set-selections;
 
 RUN apt-get install -qqy mysql-server && \
-    apt-get clean all
+    apt-get clean all && \
+    mkdir /var/run/mysqld; \
+    chown mysql /var/run/mysqld
 
+RUN echo '''sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"''' >> /etc/mysql/mysql.conf.d/mysqld.cnf
 RUN (/usr/bin/mysqld_safe &); sleep 5; mysqladmin -u root -proot password ''
 
-RUN pip install --allow-external mysql-connector-python mysql-connector-python
+#RUN pip install --allow-external mysql-connector-python mysql-connector-python
 
 COPY tools/docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
 COPY . ./root
@@ -49,10 +57,10 @@
 RUN mvn -Pdeveloper -Dsimulator -DskipTests clean install
 
 RUN (/usr/bin/mysqld_safe &); \
-    sleep 3; \
+    sleep 5; \
     mvn -Pdeveloper -pl developer -Ddeploydb; \
     mvn -Pdeveloper -pl developer -Ddeploydb-simulator; \
-    MARVIN_FILE=`find tools/marvin/dist/ -name "Marvin*.tar.gz"` \
+    MARVIN_FILE=`find /root/tools/marvin/dist/ -name "Marvin*.tar.gz"`; \
     pip install $MARVIN_FILE
 
 EXPOSE 8080 8096
diff --git a/tools/docker/Dockerfile.centos6 b/tools/docker/Dockerfile.centos6
index 87f6d0a..c739305 100644
--- a/tools/docker/Dockerfile.centos6
+++ b/tools/docker/Dockerfile.centos6
@@ -18,21 +18,23 @@
 FROM centos:6
 
 MAINTAINER "Apache CloudStack" <dev@cloudstack.apache.org>
-LABEL Vendor="Apache.org" License="ApacheV2" Version="4.6.0"
+LABEL Vendor="Apache.org" License="ApacheV2" Version="4.10.1.0-SNAPSHOT"
 
-ENV PKG_URL=http://jenkins.buildacloud.org/job/package-rhel63-master/lastSuccessfulBuild/artifact/dist/rpmbuild/RPMS/x86_64
+ENV PKG_URL=https://builds.cloudstack.org/job/package-master-rhel63/lastSuccessfulBuild/artifact/dist/rpmbuild/RPMS/x86_64
 
 # install CloudStack
+RUN rpm -i http://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-2.1.3-1.el6.x86_64.rpm
+
 RUN yum install -y nc wget \
-    ${PKG_URL}/cloudstack-common-4.6.0-SNAPSHOT.el6.x86_64.rpm \
-    ${PKG_URL}/cloudstack-management-4.6.0-SNAPSHOT.el6.x86_64.rpm
+    ${PKG_URL}/cloudstack-common-4.10.1.0-SNAPSHOT.el6.x86_64.rpm \
+    ${PKG_URL}/cloudstack-management-4.10.1.0-SNAPSHOT.el6.x86_64.rpm
 
 RUN cd /etc/cloudstack/management; \
     ln -s tomcat6-nonssl.conf tomcat6.conf; \
     ln -s server-nonssl.xml server.xml; \
     ln -s log4j-cloud.xml log4j.xml; \
     wget -O /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util \
-    http://download.cloud.com.s3.amazonaws.com/tools/vhd-util
+    http://download.cloudstack.org/tools/vhd-util
 
 COPY init.sh_centos6 /root/init.sh
 COPY systemtpl.sh /root/systemtpl.sh
diff --git a/tools/docker/Dockerfile.marvin b/tools/docker/Dockerfile.marvin
index 4293f56..e6e440c 100644
--- a/tools/docker/Dockerfile.marvin
+++ b/tools/docker/Dockerfile.marvin
@@ -20,14 +20,16 @@
 FROM python:2
 
 MAINTAINER "Apache CloudStack" <dev@cloudstack.apache.org>
-LABEL Vendor="Apache.org" License="ApacheV2" Version="4.6.0"
+LABEL Vendor="Apache.org" License="ApacheV2" Version="4.10.1.0-SNAPSHOT"
 
 ENV WORK_DIR=/marvin
 
-ENV PKG_URL=http://jenkins.buildacloud.org/job/cloudstack-marvin-master/lastSuccessfulBuild/artifact/tools/marvin/dist/Marvin-4.6.0-SNAPSHOT.tar.gz
+ENV PKG_URL=https://builds.cloudstack.org/job/build-master-marvin/lastSuccessfulBuild/artifact/tools/marvin/dist/Marvin-4.10.1.0-SNAPSHOT.tar.gz
 
+RUN apt-get update && apt-get install -y vim
 RUN pip install --upgrade paramiko nose requests
-RUN pip install --allow-external mysql-connector-python mysql-connector-python
+#RUN pip install --allow-external mysql-connector-python mysql-connector-python
+RUN pip install http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
 RUN pip install ${PKG_URL}
 
 RUN mkdir -p ${WORK_DIR}
diff --git a/tools/docker/README.md b/tools/docker/README.md
index 5f3ab88..b196453 100644
--- a/tools/docker/README.md
+++ b/tools/docker/README.md
@@ -37,7 +37,7 @@
 Deploy Cloud using marvin:
 
 ```
-docker run -ti --rm --link simulator:8096 cloudstack/marvin python /root/tools/marvin/marvin/deployDataCenter.py -i /root/setup/dev/advanced.cfg
+docker run -ti --rm --link simulator:8096 cloudstack/marvin python /marvin/marvin/deployDataCenter.py -i /marvin/dev/advanced.cfg
 ```
 
 Perform Smoke tests against CloudStack Simulator containter:
diff --git a/tools/marvin/marvin/cloudstackTestCase.py b/tools/marvin/marvin/cloudstackTestCase.py
index 692e817..2939d12 100644
--- a/tools/marvin/marvin/cloudstackTestCase.py
+++ b/tools/marvin/marvin/cloudstackTestCase.py
@@ -37,7 +37,7 @@
 class cloudstackTestCase(unittest.case.TestCase):
     clstestclient = None
 
-    def assertElementInList(inp, toverify, responsevar=None, pos=0,
+    def assertElementInList(self, inp, toverify, responsevar=None, pos=0,
                             assertmsg="TC Failed for reason"):
         '''
         @Name: assertElementInList
diff --git a/tools/marvin/marvin/cloudstackTestClient.py b/tools/marvin/marvin/cloudstackTestClient.py
index ce7ffc9..08b3f34 100644
--- a/tools/marvin/marvin/cloudstackTestClient.py
+++ b/tools/marvin/marvin/cloudstackTestClient.py
@@ -147,9 +147,19 @@
                     self.__logger.error("__createApiClient: API "
                                         "Client Creation Failed")
                     return FAILED
+
+                getuser_keys = getUserKeys.getUserKeysCmd()
+                getuser_keys.id = list_user_res[0].id
+                getuser_keys_res = self.__apiClient.getUserKeys(getuser_keys)
+                if getuser_keys_res is None :
+                    self.__logger.error("__createApiClient: API "
+                                        "Client Creation Failed")
+                    return FAILED
+
+                api_key = getuser_keys_res.apikey
+                security_key = getuser_keys_res.secretkey
+
                 user_id = list_user_res[0].id
-                api_key = list_user_res[0].apikey
-                security_key = list_user_res[0].secretkey
                 if api_key is None:
                     ret = self.__getKeys(user_id)
                     if ret != FAILED:
@@ -210,7 +220,18 @@
                 self.__apiClient.registerUserKeys(register_user)
             if not register_user_res:
                 return FAILED
-            return (register_user_res.apikey, register_user_res.secretkey)
+
+            getuser_keys = getUserKeys.getUserKeysCmd()
+            getuser_keys.id = userid
+            getuser_keys_res = self.__apiClient.getUserKeys(getuser_keys)
+            if getuser_keys_res is None :
+                self.__logger.error("__createApiClient: API "
+                                "Client Creation Failed")
+                return FAILED
+
+            api_key = getuser_keys_res.apikey
+            security_key = getuser_keys_res.secretkey
+            return (api_key, security_key)
         except Exception as e:
             self.__logger.exception("Exception Occurred Under __geKeys : "
                                     "%s" % GetDetailExceptionInfo(e))
@@ -349,8 +370,17 @@
 
             listuserRes = self.__apiClient.listUsers(listuser)
             userId = listuserRes[0].id
-            apiKey = listuserRes[0].apikey
-            securityKey = listuserRes[0].secretkey
+
+            getuser_keys = getUserKeys.getUserKeysCmd()
+            getuser_keys.id = listuserRes[0].id
+            getuser_keys_res = self.__apiClient.getUserKeys(getuser_keys)
+            if getuser_keys_res is None or\
+                (validateList(getuser_keys_res) != PASS):
+                self.__logger.error("__createApiClient: API "
+                                "Client Creation Failed")
+
+            apiKey = getuser_keys_res.apikey
+            securityKey = getuser_keys_res.secretkey
 
             if apiKey is None:
                 ret = self.__getKeys(userId)
diff --git a/tools/marvin/marvin/codegenerator.py b/tools/marvin/marvin/codegenerator.py
index ba2a325..14f6d13 100644
--- a/tools/marvin/marvin/codegenerator.py
+++ b/tools/marvin/marvin/codegenerator.py
@@ -368,6 +368,7 @@
                             self.constructResponseFromJSON(innerResponse)
                         paramProperty.subProperties.append(subProperty)
             paramProperty.type = response['type']
+            paramProperty.dataType = response['type']
         return paramProperty
 
     def loadCmdFromJSON(self, apiStream):
@@ -404,13 +405,14 @@
                 assert paramProperty.name
 
                 if 'required' in param:
-                    paramProperty.required = param['required']
+                    paramProperty.required = str(param['required']).lower()
 
                 if 'description' in param:
                     paramProperty.desc = param['description']
 
                 if 'type' in param:
                     paramProperty.type = param['type']
+                    paramProperty.dataType = param['type']
 
                 csCmd.request.append(paramProperty)
 
diff --git a/tools/marvin/marvin/config/test_data.py b/tools/marvin/marvin/config/test_data.py
index 6bf71f0..d1ec1ba 100644
--- a/tools/marvin/marvin/config/test_data.py
+++ b/tools/marvin/marvin/config/test_data.py
@@ -121,7 +121,7 @@
             "name": "LargeInstance",
             "displaytext": "LargeInstance",
             "cpunumber": 1,
-            "cpuspeed": 500,
+            "cpuspeed": 1024,
             "memory": 2048,
         },
         "hasmall": {
@@ -779,6 +779,14 @@
         "protocol": "TCP",
         "cidrlist": '0.0.0.0/0',
     },
+    "dns_rule": {
+        "privateport": 53,
+        "publicport": 53,
+        "startport": 53,
+        "endport": 53,
+        "protocol": "UDP",
+        "cidrlist": '0.0.0.0/0',
+    },
     "icmprule": {
         "icmptype": -1,
         "icmpcode": -1,
@@ -825,6 +833,14 @@
         "ostype": "CentOS 5.6 (64-bit)"
 
     },
+    "coreos_volume": {
+        "diskname": "Volume_core",
+        "urlvmware":"http://dl.openvm.eu/cloudstack/coreos/x86_64/coreos_production_cloudstack_image-vmware.ova",
+        "urlxen":"http://dl.openvm.eu/cloudstack/coreos/x86_64/coreos_production_cloudstack_image-xen.vhd.bz2",
+        "urlkvm": "http://dl.openvm.eu/cloudstack/coreos/x86_64/" \
+                         "coreos_production_cloudstack_image-kvm.qcow2.bz2",
+        "urlhyperv":"http://dl.openvm.eu/cloudstack/coreos/x86_64/coreos_production_cloudstack_image-hyperv.vhd.zip"
+        },
     "CentOS6.3template": {
         "displaytext": "Centos",
         "name": "Centos",
@@ -834,6 +850,25 @@
         "format": "OVA",
         "ispublic": "true"
     },
+    "CentOS7template": {
+        "displaytext": "Centos",
+        "name": "Centos",
+        "passwordenabled": False,
+        "isdynamicallyscalable":True,
+        "ostype": "CentOS 7",
+        "url": "http://dl.openvm.eu/cloudstack/centos/vanilla/7/x86_64/CentOS-7-x86_64-vanilla-xen.vhd.bz2",
+        "format": "VHD",
+        "ispublic": "true",
+        "hypervisor":"Xenserver"
+    },
+    "Rhel7template": {
+        "displaytext": "Rhel",
+        "name": "Rhel",
+        "passwordenabled": False,
+        "ostype": "Red Hat Enterprise Linux 7",
+        "format": "OVA",
+        "ispublic": "true"
+    },
     "template_2": {
         "displaytext": "Public Template",
         "name": "Public template",
@@ -854,6 +889,15 @@
         "ispublic": "true",
         "hypervisor": "XenServer"
     },
+    "Windows Server 2012": {
+            "displaytext": "Windows Server 2012",
+            "name": "Windows Server 2012",
+            "passwordenabled": False,
+            "format": "OVA",
+            "ostype": "Windows Server 2012 (64-bit)",
+            "ispublic": "true",
+            "hypervisor": "Vmware"
+     },
     "privatetemplate": {
         "displaytext": "Public Template",
         "name": "Public template",
@@ -1677,6 +1721,18 @@
                 "username": "",
                 "password": "",
             },
+            "link_ldap_details": {
+                "domain_name": "",
+                "accounttype": "",
+                "name": "",
+                "type": "",
+                "admin": "",
+                "linkLdapUsername": "",
+                "linkLdapPassword": "",
+                "linkLdapNestedUser": "",
+                "linkLdapNestedPassword": ""
+
+            },
             "ldap_configuration": {
                 "basedn": "",
                 "emailAttribute": "",
@@ -1700,7 +1756,7 @@
             "upload_volume": {
                 "diskname": "UploadVol",
                 "format": "VHD",
-                "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
+                "url": "http://download.cloudstack.org/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
                 "checksum": "",
             },
             "bootableIso":
@@ -1751,7 +1807,7 @@
             "name": 'nuage_marvin',
             "displaytext": 'nuage_marvin',
             "guestiptype": 'Isolated',
-            "supportedservices": 'Dhcp,SourceNat,Connectivity,StaticNat,UserData,Firewall',
+            "supportedservices": 'Dhcp,SourceNat,Connectivity,StaticNat,UserData,Firewall,Dns',
             "traffictype": 'GUEST',
             "availability": 'Optional',
             "serviceProviderList": {
@@ -1760,7 +1816,8 @@
                 "SourceNat": 'NuageVsp',
                 "Firewall": 'NuageVsp',
                 "Connectivity": 'NuageVsp',
-                "UserData": 'VirtualRouter'
+                "UserData": 'VirtualRouter',
+                "Dns": 'VirtualRouter'
             },
             "serviceCapabilityList": {
                     "SourceNat": {"SupportedSourceNatTypes": "perzone"}
@@ -1771,7 +1828,7 @@
             "name": 'nuage_vpc_marvin',
             "displaytext": 'nuage_vpc_marvin',
             "guestiptype": 'Isolated',
-            "supportedservices": 'Dhcp,StaticNat,SourceNat,NetworkACL,Connectivity,UserData',
+            "supportedservices": 'Dhcp,StaticNat,SourceNat,NetworkACL,Connectivity,UserData,Dns',
             "traffictype": 'GUEST',
             "availability": 'Optional',
             "useVpc": 'on',
@@ -1782,7 +1839,8 @@
                 "SourceNat": "NuageVsp",
                 "NetworkACL": "NuageVsp",
                 "Connectivity": "NuageVsp",
-                "UserData": "VpcVirtualRouter"
+                "UserData": "VpcVirtualRouter",
+                "Dns": "VpcVirtualRouter"
             },
             "serviceCapabilityList": {
                 "SourceNat": {"SupportedSourceNatTypes": "perzone"}
@@ -1792,7 +1850,7 @@
             "name": "nuage_vpc_marvin_internal_lb",
             "displaytext": "nuage_vpc_marvin_internal_lb",
             "guestiptype": 'Isolated',
-            "supportedservices": 'Dhcp,Lb,StaticNat,SourceNat,NetworkACL,Connectivity,UserData',
+            "supportedservices": 'Dhcp,Lb,StaticNat,SourceNat,NetworkACL,Connectivity,UserData,Dns',
             "traffictype": 'GUEST',
             "availability": 'Optional',
             "useVpc": 'on',
@@ -1804,7 +1862,8 @@
                 "SourceNat": "NuageVsp",
                 "NetworkACL": "NuageVsp",
                 "Connectivity": "NuageVsp",
-                "UserData": "VpcVirtualRouter"
+                "UserData": "VpcVirtualRouter",
+                "Dns": "VpcVirtualRouter"
             },
             "serviceCapabilityList": {
                 "SourceNat": {"SupportedSourceNatTypes": "perzone"},
@@ -1815,20 +1874,21 @@
         "vpc_offering": {
             "name": 'Nuage VSP VPC offering',
             "displaytext": 'Nuage VSP VPC offering',
-            "supportedservices": 'Dhcp,StaticNat,SourceNat,NetworkACL,Connectivity,UserData',
+            "supportedservices": 'Dhcp,StaticNat,SourceNat,NetworkACL,Connectivity,UserData,Dns',
             "serviceProviderList": {
                 "Dhcp": "NuageVsp",
                 "StaticNat": "NuageVsp",
                 "SourceNat": "NuageVsp",
                 "NetworkACL": "NuageVsp",
                 "Connectivity": "NuageVsp",
-                "UserData": "VpcVirtualRouter"
+                "UserData": "VpcVirtualRouter",
+                "Dns": "VpcVirtualRouter"
             }
         },
         "vpc_offering_lb": {
             "name": 'Nuage VSP VPC offering with Lb',
             "displaytext": 'Nuage VSP VPC offering with Lb',
-            "supportedservices": 'Dhcp,Lb,StaticNat,SourceNat,NetworkACL,Connectivity,UserData',
+            "supportedservices": 'Dhcp,Lb,StaticNat,SourceNat,NetworkACL,Connectivity,UserData,Dns',
             "serviceProviderList": {
                 "Dhcp": "NuageVsp",
                 "Lb": "InternalLbVm",
@@ -1836,8 +1896,103 @@
                 "SourceNat": "NuageVsp",
                 "NetworkACL": "NuageVsp",
                 "Connectivity": "NuageVsp",
-                "UserData": "VpcVirtualRouter"
+                "UserData": "VpcVirtualRouter",
+                "Dns": "VpcVirtualRouter"
             }
+        },
+        "shared_nuage_network_offering": {
+            "name": 'nuage_marvin',
+            "displaytext": 'nuage_marvin',
+            "guestiptype": 'shared',
+            "supportedservices": 'Dhcp,Connectivity',
+            "traffictype": 'GUEST',
+            "specifyVlan": "False",
+            "specifyIpRanges": "True",
+            "availability": 'Optional',
+            "serviceProviderList": {
+                "Dhcp": "NuageVsp",
+                "Connectivity": "NuageVsp"
+            }
+        },
+        "shared_nuage_public_network_offering": {
+            "name": 'nuage_marvin',
+            "displaytext": 'nuage_marvin',
+            "guestiptype": 'shared',
+            "supportedservices": 'Dhcp,Connectivity',
+            "traffictype": 'GUEST',
+            "specifyVlan": "False",
+            "specifyIpRanges": "True",
+            "availability": 'Optional',
+            "serviceProviderList": {
+                "Dhcp": "NuageVsp",
+                "Connectivity": "NuageVsp"
+            },
+            "serviceCapabilityList": {
+                "Connectivity": {
+                    "PublicAccess": "true"
+                }
+            }
+
+        },
+        # Test data for Shared Network creation
+        "network_all": {
+            "name": "SharedNetwork-All-nuage",
+            "displaytext": "SharedNetwork-All-nuage",
+            "gateway": "10.223.1.1",
+            "netmask": "255.255.255.0",
+            "startip": "10.223.1.21",
+            "endip": "10.223.1.100",
+            "acltype": "Domain"
+        },
+        "network_domain_with_no_subdomain_access": {
+            "name": "SharedNetwork-Domain-nosubdomain-nuage",
+            "displaytext": "SharedNetwork-Domain-nosubdomain-nuage",
+            "gateway": "10.222.1.1",
+            "netmask": "255.255.255.0",
+            "startip": "10.222.1.2",
+            "endip": "10.222.1.100",
+            "acltype": "Domain",
+            "subdomainaccess": "false"
+        },
+        "network_domain_with_subdomain_access": {
+            "name": "SharedNetwork-Domain-withsubdomain-nuage",
+            "displaytext": "SharedNetwork-Domain-withsubdomain-nuage",
+            "gateway": "10.221.1.1",
+            "netmask": "255.255.255.0",
+            "startip": "10.221.1.2",
+            "endip": "10.221.1.100",
+            "acltype": "Domain",
+            "subdomainaccess": "true"
+        },
+        "network_account": {
+            "name": "SharedNetwork-Account-nuage",
+            "displaytext": "SharedNetwork-Account-nuage",
+            "gateway": "10.220.1.1",
+            "netmask": "255.255.255.0",
+            "startip": "10.220.1.2",
+            "endip": "10.220.1.100",
+            "acltype": "Account"
+        },
+        "publiciprange1": {
+            "gateway": "10.223.1.1",
+            "netmask": "255.255.255.0",
+            "startip": "10.223.1.101",
+            "endip": "10.223.1.105",
+            "forvirtualnetwork": "false"
+        },
+        "publiciprange2": {
+            "gateway": "10.219.1.1",
+            "netmask": "255.255.255.0",
+            "startip": "10.219.1.2",
+            "endip": "10.219.1.5",
+            "forvirtualnetwork": "false"
+        },
+        "publiciprange3": {
+            "gateway": "10.223.1.1",
+            "netmask": "255.255.255.0",
+            "startip": "10.223.1.2",
+            "endip": "10.223.1.20",
+            "forvirtualnetwork": "false"
         }
     }
 }
diff --git a/tools/marvin/marvin/lib/base.py b/tools/marvin/marvin/lib/base.py
index 681619b..3283911 100755
--- a/tools/marvin/marvin/lib/base.py
+++ b/tools/marvin/marvin/lib/base.py
@@ -32,7 +32,6 @@
 import hashlib
 import base64
 
-
 class Domain:
     """ Domain Life Cycle """
     def __init__(self, items):
@@ -449,7 +448,8 @@
                affinitygroupnames=None, affinitygroupids=None, group=None,
                hostid=None, keypair=None, ipaddress=None, mode='default',
                method='GET', hypervisor=None, customcpunumber=None,
-               customcpuspeed=None, custommemory=None, rootdisksize=None):
+               customcpuspeed=None, custommemory=None, rootdisksize=None,
+               rootdiskcontroller=None):
         """Create the instance"""
 
         cmd = deployVirtualMachine.deployVirtualMachineCmd()
@@ -513,7 +513,7 @@
 
         if ipaddress:
             cmd.ipaddress = ipaddress
-        elif ipaddress in services:
+        elif "ipaddress" in services:
             cmd.ipaddress = services["ipaddress"]
 
         if securitygroupids:
@@ -553,6 +553,9 @@
         if rootdisksize >= 0:
             cmd.details[0]["rootdisksize"] = rootdisksize
 
+        if rootdiskcontroller:
+            cmd.details[0]["rootDiskController"] = rootdiskcontroller
+
         if group:
             cmd.group = group
 
@@ -968,7 +971,8 @@
         cmd.name = "-".join([services["diskname"], random_gen()])
         cmd.snapshotid = snapshot_id
         cmd.zoneid = services["zoneid"]
-        cmd.size = services["size"]
+        if "size" in services:
+            cmd.size = services["size"]
         if services["ispublic"]:
             cmd.ispublic = services["ispublic"]
         else:
@@ -1093,7 +1097,7 @@
 
     @classmethod
     def create(cls, apiclient, volume_id, account=None,
-               domainid=None, projectid=None):
+               domainid=None, projectid=None, locationtype=None):
         """Create Snapshot"""
         cmd = createSnapshot.createSnapshotCmd()
         cmd.volumeid = volume_id
@@ -1103,6 +1107,8 @@
             cmd.domainid = domainid
         if projectid:
             cmd.projectid = projectid
+        if locationtype:
+            cmd.locationtype = locationtype
         return Snapshot(apiclient.createSnapshot(cmd).__dict__)
 
     def delete(self, apiclient):
@@ -1247,6 +1253,7 @@
             "ispublic"] if "ispublic" in services else False
         cmd.isextractable = services[
             "isextractable"] if "isextractable" in services else False
+        cmd.isdynamicallyscalable=services["isdynamicallyscalable"] if "isdynamicallyscalable" in services else False
         cmd.passwordenabled = services[
             "passwordenabled"] if "passwordenabled" in services else False
 
@@ -2261,6 +2268,33 @@
             cmd.listall = True
         return(apiclient.listSnapshotPolicies(cmd))
 
+class GuestOs:
+    """Guest OS calls (currently read-only implemented)"""
+    def __init(self, items):
+        self.__dict__.update(items)
+
+    @classmethod
+    def listMapping(cls, apiclient, **kwargs):
+        """List all Guest Os Mappings matching criteria"""
+        cmd = listGuestOsMapping.listGuestOsMappingCmd()
+        [setattr(cmd, k, v) for k, v in kwargs.items()]
+
+        return (apiclient.listGuestOsMapping(cmd))
+
+    @classmethod
+    def listCategories(cls, apiclient, **kwargs):
+        """List all Os Categories"""
+        [setattr(cmd, k, v) for k, v in kwargs.items()]
+
+        return (apiclient.listOsCategories(cmd))
+
+    @classmethod
+    def list(cls, apiclient, **kwargs):
+        """List all Os Types matching criteria"""
+
+        cmd = listOsTypes.listOsTypesCmd()
+        [setattr(cmd, k, v) for k, v in kwargs.items()]
+        return(apiclient.listOsTypes(cmd))
 
 class Hypervisor:
     """Manage Hypervisor"""
@@ -3855,7 +3889,7 @@
     """Manage Configuration"""
 
     @classmethod
-    def update(cls, apiclient, name, value=None, zoneid=None):
+    def update(cls, apiclient, name, value=None, zoneid=None, clusterid=None, storageid=None):
         """Updates the specified configuration"""
 
         cmd = updateConfiguration.updateConfigurationCmd()
@@ -3864,8 +3898,13 @@
 
         if zoneid:
             cmd.zoneid = zoneid
+        if clusterid:
+            cmd.clusterid = clusterid
+        if storageid:
+            cmd.storageid=storageid
         apiclient.updateConfiguration(cmd)
 
+
     @classmethod
     def list(cls, apiclient, **kwargs):
         """Lists configurations"""
diff --git a/tools/marvin/marvin/lib/utils.py b/tools/marvin/marvin/lib/utils.py
index f0a1a7f..1ad457c 100644
--- a/tools/marvin/marvin/lib/utils.py
+++ b/tools/marvin/marvin/lib/utils.py
@@ -293,7 +293,7 @@
     # snapshot extension to be appended to the snapshot path obtained from db
     snapshot_extensions = {"vmware": ".ovf",
                             "kvm": "",
-                            "xenserver": ".vhd",
+                            "xenserver": "",
                             "simulator":""}
 
     qresultset = dbconn.execute(
diff --git a/tools/marvin/marvin/lib/vcenter.py b/tools/marvin/marvin/lib/vcenter.py
index f7e0987..d14f364 100644
--- a/tools/marvin/marvin/lib/vcenter.py
+++ b/tools/marvin/marvin/lib/vcenter.py
@@ -19,9 +19,12 @@
 from pyVim import connect
 import atexit
 import ssl
-if hasattr(ssl, '_create_unverified_context'):
-    ssl._create_default_https_context = ssl._create_unverified_context
+import subprocess
+import time
+import json
 
+if hasattr(ssl, '_create_unverified_context'):
+    ssl._create_default_https_context = ssl._create_unverified_context()
 
 class Vcenter():
 
@@ -29,9 +32,15 @@
         """
         create a service_instance object
         """
-        self.service_instance = connect.SmartConnect(host=host,
-                                                    user=user,
-                                                    pwd=pwd)
+        if hasattr(ssl, '_create_default_https_context'):
+            self.service_instance = connect.SmartConnect(host=host,
+                                                         user=user,
+                                                         pwd=pwd,
+                                                         sslContext=ssl._create_default_https_context)
+        else:
+            self.service_instance = connect.SmartConnect(host=host,
+                                                         user=user,
+                                                         pwd=pwd)
         atexit.register(connect.Disconnect, self.service_instance)
 
     @staticmethod
@@ -183,7 +192,157 @@
         """
         pass
 
+    def create_datacenter(self, dcname=None, service_instance=None, folder=None):
+        """
+        Creates a new datacenter with the given name.
+        Any % (percent) character used in this name parameter must be escaped,
+        unless it is used to start an escape sequence. Clients may also escape
+        any other characters in this name parameter.
 
+        An entity name must be a non-empty string of
+        less than 80 characters. The slash (/), backslash (\) and percent (%)
+        will be escaped using the URL syntax. For example, %2F
+
+        This can raise the following exceptions:
+        vim.fault.DuplicateName
+        vim.fault.InvalidName
+        vmodl.fault.NotSupported
+        vmodl.fault.RuntimeFault
+        ValueError raised if the name len is > 79
+        https://github.com/vmware/pyvmomi/blob/master/docs/vim/Folder.rst
+
+        Required Privileges
+        Datacenter.Create
+
+        :param folder: Folder object to create DC in. If None it will default to
+                       rootFolder
+        :param dcname: Name for the new datacenter.
+        :param service_instance: ServiceInstance connection to a given vCenter
+        :return:
+        """
+        if len(dcname) > 79:
+            raise ValueError("The name of the datacenter must be under "
+                             "80 characters.")
+
+        if folder is None:
+            folder = self.service_instance.content.rootFolder
+
+        if folder is not None and isinstance(folder, vim.Folder):
+            dc_moref = folder.CreateDatacenter(name=dcname)
+            return dc_moref
+
+    def create_cluster(self, cluster_name, datacenter):
+        """
+        Method to create a Cluster in vCenter
+
+        :param cluster_name: Name of the cluster
+        :param datacenter: Name of the data center
+        :return: Cluster MORef
+        """
+        # cluster_name = kwargs.get("name")
+        # cluster_spec = kwargs.get("cluster_spec")
+        # datacenter = kwargs.get("datacenter")
+
+        if cluster_name is None:
+            raise ValueError("Missing value for name.")
+        if datacenter is None:
+            raise ValueError("Missing value for datacenter.")
+
+        cluster_spec = vim.cluster.ConfigSpecEx()
+
+        host_folder = datacenter.hostFolder
+        cluster = host_folder.CreateClusterEx(name=cluster_name, spec=cluster_spec)
+        return cluster
+
+    def add_host(self, cluster, hostname, sslthumbprint, username, password):
+        """
+        Method to add host in a vCenter Cluster
+
+        :param cluster_name
+        :param hostname
+        :param username
+        :param password
+        """
+        if hostname is None:
+            raise ValueError("Missing value for name.")
+        try:
+            hostspec = vim.host.ConnectSpec(hostName=hostname,
+                                            userName=username,
+                                            sslThumbprint=sslthumbprint,
+                                            password=password,
+                                            force=True)
+            task = cluster.AddHost(spec=hostspec, asConnected=True)
+        except Exception as e:
+            print "Error adding host :%s" % e
+        self.wait_for_task(task)
+        host = self._get_obj([vim.HostSystem], hostname)
+        return host
+
+    def create_datacenters(self, config):
+        """
+        Method to create data centers in vCenter server programmatically
+        It expects configuration data in the form of dictionary.
+        configuration file is same as the one we pass to deployDataCenter.py for creating
+        datacenter in CS
+
+        :param config:
+        :return:
+        """
+        zones = config['zones']
+        try:
+            for zone in zones:
+                dc_obj = self.create_datacenter(zone['name'])
+                for pod in zone['pods']:
+                    for cluster in pod['clusters']:
+                        clustername = cluster['clustername'].split('/')[-1]
+                        cluster_obj = self.create_cluster(
+                            cluster_name=clustername,
+                            datacenter=dc_obj
+                        )
+                        for host in cluster['hosts']:
+                            host_ip = host['url'].split("//")[-1]
+                            user = host['username']
+                            passwd = host['password']
+                            sslthumbprint=self.getsslThumbprint(host_ip)
+                            self.add_host(cluster=cluster_obj,
+                                          hostname=host_ip,
+                                          sslthumbprint=sslthumbprint,
+                                          username=user,
+                                          password=passwd)
+        except Exception as e:
+            print "Failed to create datacenter: %s" % e
+
+    def wait_for_task(self, task):
+
+        while task.info.state == (vim.TaskInfo.State.running or vim.TaskInfo.State.queued):
+            time.sleep(2)
+
+        if task.info.state == vim.TaskInfo.State.success:
+            if task.info.result is not None:
+                out = 'Task completed successfully, result: %s' % (task.info.result,)
+                print out
+        elif task.info.state == vim.TaskInfo.State.error:
+            out = 'Error - Task did not complete successfully: %s' % (task.info.error,)
+            raise ValueError(out)
+        return task.info.result
+
+    def getsslThumbprint(self,ip):
+
+        p1 = subprocess.Popen(('echo', '-n'), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        p2 = subprocess.Popen(('openssl', 's_client', '-connect', '{0}:443'.format(ip)),
+                              stdin=p1.stdout,
+                              stdout=subprocess.PIPE,
+                              stderr=subprocess.PIPE
+        )
+        p3 = subprocess.Popen(('openssl', 'x509', '-noout', '-fingerprint', '-sha1'),
+                              stdin=p2.stdout,
+                              stdout=subprocess.PIPE,
+                              stderr=subprocess.PIPE
+        )
+        out = p3.stdout.read()
+        ssl_thumbprint = out.split('=')[-1].strip()
+        return ssl_thumbprint
+    
 if __name__ == '__main__':
     vc_object = Vcenter("10.x.x.x", "username", "password")
 
diff --git a/tools/marvin/marvin/misc/build/redeploy.sh b/tools/marvin/marvin/misc/build/redeploy.sh
index a9c13cc..29ddb7b 100755
--- a/tools/marvin/marvin/misc/build/redeploy.sh
+++ b/tools/marvin/marvin/misc/build/redeploy.sh
@@ -44,7 +44,7 @@
 #some defaults
 spath='nfs2.lab.vmops.com:/export/home/bvt/secondary'
 hypervisor='xenserver'
-sysvmurl='http://download.cloud.com/templates/acton/acton-systemvm-02062012.vhd.bz2'
+sysvmurl='http://download.cloudstack.org/templates/acton/acton-systemvm-02062012.vhd.bz2'
 systemvm_seeder='/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt'
 
 while getopts 'u:s:h:' OPTION
diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml
index 80b024e..441f832 100644
--- a/tools/marvin/pom.xml
+++ b/tools/marvin/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloud-tools</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/tools/marvin/setup.py b/tools/marvin/setup.py
index 5ecab7e..6509112 100644
--- a/tools/marvin/setup.py
+++ b/tools/marvin/setup.py
@@ -27,7 +27,7 @@
         raise RuntimeError("python setuptools is required to build Marvin")
 
 
-VERSION = "4.9.4.0-SNAPSHOT"
+VERSION = "4.10.1.0-SNAPSHOT"
 
 setup(name="Marvin",
       version=VERSION,
@@ -56,6 +56,9 @@
           "dnspython",
           "ipmisim >= 0.7"
       ],
+      extras_require={
+        "nuagevsp": ["libVSD", "PyYAML", "futures", "netaddr", "retries"]
+      },
       py_modules=['marvin.marvinPlugin'],
       zip_safe=False,
       entry_points={
diff --git a/tools/pom.xml b/tools/pom.xml
index ebcd509..f3221b7 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -27,7 +27,7 @@
     <parent>
         <groupId>org.apache.cloudstack</groupId>
         <artifactId>cloudstack</artifactId>
-        <version>4.9.4.0-SNAPSHOT</version>
+        <version>4.10.1.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <build>
@@ -36,7 +36,6 @@
     <modules>
         <module>apidoc</module>
         <module>marvin</module>
-        <module>devcloud</module>
         <module>devcloud4</module>
 	<module>devcloud-kvm</module>
     </modules>
diff --git a/tools/transifex/.tx/config b/tools/transifex/.tx/config
index fa4bc1f..45bd841 100644
--- a/tools/transifex/.tx/config
+++ b/tools/transifex/.tx/config
@@ -1,129 +1,22 @@
 [main]
 host = https://www.transifex.com
 
-[CloudStack_UI.2-2messagesproperties]
-file_filter = translations/CloudStack_UI.2-2messagesproperties/<lang>.properties
+[CloudStack_UI.410_messagesjson]
+source_file = work-dir/en.json
 source_lang = en
-type = PROPERTIES
-
-[CloudStack_UI.30xmessagesproperties]
-file_filter = translations/CloudStack_UI.30xmessagesproperties/<lang>.properties
-source_lang = en
-type = PROPERTIES
-
-[CloudStack_UI.41xmessageproperties]
-file_filter = translations/CloudStack_UI.41xmessageproperties/<lang>.properties
-source_lang = en
-type = UNICODEPROPERTIES
-
-[CloudStack_UI.42xmessagesproperties]
-file_filter = translations/CloudStack_UI.42xmessagesproperties/<lang>.properties
-source_lang = en
-type = UNICODEPROPERTIES
-
-[CloudStack_UI.43xmessagesproperties]
-file_filter = translations/CloudStack_UI.43xmessagesproperties/<lang>.properties
-source_lang = en
-type = UNICODEPROPERTIES
-
-[CloudStack_UI.44xmessagesproperties]
-file_filter = translations/CloudStack_UI.44xmessagesproperties/<lang>.properties
-source_lang = en
-type = UNICODEPROPERTIES
-
-[CloudStack_UI.45xmessagesproperties]
-file_filter = translations/CloudStack_UI.45xmessagesproperties/<lang>.properties
-source_file = work-dir/messages.properties
-source_lang = en
-trans.ar = work-dir/messages_ar.properties
-trans.ca = work-dir/messages_ca.properties
-trans.de_DE = work-dir/messages_de_DE.properties
-trans.es = work-dir/messages_es.properties
-trans.fr_FR = work-dir/messages_fr_FR.properties
-trans.it_IT = work-dir/messages_it_IT.properties
-trans.ja_JP = work-dir/messages_ja_JP.properties
-trans.ko_KR = work-dir/messages_ko_KR.properties
-trans.nb_NO = work-dir/messages_nb_NO.properties
-trans.nl_NL = work-dir/messages_nl_NL.properties
-trans.pl = work-dir/messages_pl.properties
-trans.pt_BR = work-dir/messages_pt_BR.properties
-trans.ru_RU = work-dir/messages_ru_RU.properties
-trans.zh_CN = work-dir/messages_zh_CN.properties
-type = UNICODEPROPERTIES
-
-[CloudStack_UI.46xmessagesproperties]
-source_file = work-dir/messages.properties
-source_lang = en
-trans.ar = work-dir/messages_ar.properties
-trans.ca = work-dir/messages_ca.properties
-trans.de_DE = work-dir/messages_de_DE.properties
-trans.es = work-dir/messages_es.properties
-trans.fr_FR = work-dir/messages_fr_FR.properties
-trans.hu = work-dir/messages_hu.properties
-trans.it_IT = work-dir/messages_it_IT.properties
-trans.ja_JP = work-dir/messages_ja_JP.properties
-trans.ko_KR = work-dir/messages_ko_KR.properties
-trans.nb_NO = work-dir/messages_nb_NO.properties
-trans.nl_NL = work-dir/messages_nl_NL.properties
-trans.pl = work-dir/messages_pl.properties
-trans.pt_BR = work-dir/messages_pt_BR.properties
-trans.ru_RU = work-dir/messages_ru_RU.properties
-trans.zh_CN = work-dir/messages_zh_CN.properties
-
-[CloudStack_UI.47xmessagesproperties]
-source_file = work-dir/messages.properties
-source_lang = en
-trans.ar = work-dir/messages_ar.properties
-trans.ca = work-dir/messages_ca.properties
-trans.de_DE = work-dir/messages_de_DE.properties
-trans.es = work-dir/messages_es.properties
-trans.fr_FR = work-dir/messages_fr_FR.properties
-trans.hu = work-dir/messages_hu.properties
-trans.it_IT = work-dir/messages_it_IT.properties
-trans.ja_JP = work-dir/messages_ja_JP.properties
-trans.ko_KR = work-dir/messages_ko_KR.properties
-trans.nb_NO = work-dir/messages_nb_NO.properties
-trans.nl_NL = work-dir/messages_nl_NL.properties
-trans.pl = work-dir/messages_pl.properties
-trans.pt_BR = work-dir/messages_pt_BR.properties
-trans.ru_RU = work-dir/messages_ru_RU.properties
-trans.zh_CN = work-dir/messages_zh_CN.properties
-
-[CloudStack_UI.48xmessagesproperties]
-source_file = work-dir/messages.properties
-source_lang = en
-trans.ar = work-dir/messages_ar.properties
-trans.ca = work-dir/messages_ca.properties
-trans.de_DE = work-dir/messages_de_DE.properties
-trans.es = work-dir/messages_es.properties
-trans.fr_FR = work-dir/messages_fr_FR.properties
-trans.hu = work-dir/messages_hu.properties
-trans.it_IT = work-dir/messages_it_IT.properties
-trans.ja_JP = work-dir/messages_ja_JP.properties
-trans.ko_KR = work-dir/messages_ko_KR.properties
-trans.nb_NO = work-dir/messages_nb_NO.properties
-trans.nl_NL = work-dir/messages_nl_NL.properties
-trans.pl = work-dir/messages_pl.properties
-trans.pt_BR = work-dir/messages_pt_BR.properties
-trans.ru_RU = work-dir/messages_ru_RU.properties
-trans.zh_CN = work-dir/messages_zh_CN.properties
-
-[CloudStack_UI.49xmessagesproperties]
-source_file = work-dir/messages.properties
-source_lang = en
-trans.ar = work-dir/messages_ar.properties
-trans.ca = work-dir/messages_ca.properties
-trans.de_DE = work-dir/messages_de_DE.properties
-trans.es = work-dir/messages_es.properties
-trans.fr_FR = work-dir/messages_fr_FR.properties
-trans.hu = work-dir/messages_hu.properties
-trans.it_IT = work-dir/messages_it_IT.properties
-trans.ja_JP = work-dir/messages_ja_JP.properties
-trans.ko_KR = work-dir/messages_ko_KR.properties
-trans.nb_NO = work-dir/messages_nb_NO.properties
-trans.nl_NL = work-dir/messages_nl_NL.properties
-trans.pl = work-dir/messages_pl.properties
-trans.pt_BR = work-dir/messages_pt_BR.properties
-trans.ru_RU = work-dir/messages_ru_RU.properties
-trans.zh_CN = work-dir/messages_zh_CN.properties
+trans.ar = work-dir/ar.json
+trans.ca = work-dir/ca.json
+trans.de_DE = work-dir/de_DE.json
+trans.es = work-dir/es.json
+trans.fr_FR = work-dir/fr_FR.json
+trans.hu = work-dir/hu.json
+trans.it_IT = work-dir/it_IT.json
+trans.ja_JP = work-dir/ja_JP.json
+trans.ko_KR = work-dir/ko_KR.json
+trans.nb_NO = work-dir/nb_NO.json
+trans.nl_NL = work-dir/nl_NL.json
+trans.pl = work-dir/pl.json
+trans.pt_BR = work-dir/pt_BR.json
+trans.ru_RU = work-dir/ru_RU.json
+trans.zh_CN = work-dir/zh_CN.json
 
diff --git a/tools/transifex/README-transifex.txt b/tools/transifex/README-transifex.txt
index 4b1cd8d..4695543 100644
--- a/tools/transifex/README-transifex.txt
+++ b/tools/transifex/README-transifex.txt
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-sync-transifex-ui is a script to automate the synchronisation between
+sync-transifex-ui.sh is a script to automate the synchronisation between
 Apache CloudStack L10N resource files and Transifex CloudStack project.
 
 Requirements to use this script:
@@ -24,7 +24,7 @@
 http://support.transifex.com/customer/portal/topics/440187-transifex-client/articles
 On Debian/Ubuntu: apt-get install transifex-client
 
-Commun usage is:
+Common usage is:
 
 1/ Init and configure the transifex client CLI
 (Already made on git CloudStack repo)
@@ -34,38 +34,32 @@
 2/ Upload to Transifex the last version of the source language (en)
 which generally have the new keys/values to translate.
 
- ./sync-transifex-ui.sh upload-source-language CloudStack_UI.42xmessagesproperties
+ ./sync-transifex-ui.sh upload-source-language CloudStack_UI.410_messagesjson
 
-3/ Download the last L10N resource files from Transifex to resources
-files directory in CloudStack tree to upade the L10N resource files
+3/ Download the latest L10N resource files from Transifex to resource
+files directory in CloudStack tree to update the L10N resource files
 with the translatons from traductors.
 
- ./sync-transifex-ui.sh download-l10n-languages CloudStack_UI.42xmessagesproperties
+ ./sync-transifex-ui.sh download-l10n-languages CloudStack_UI.410_messagesjson
 
 =====
 The sync-transifex-ui provide too the ability to :
 
 * Download from Transifex the source language resource files. Be carrefully, 
-with this,you can remove some transation on Transifex if some keys has 
+with this, you can remove some transation on Transifex if some keys has 
 been removed inside the source language resource files.
 
- ./sync-transifex-ui.sh download-source-language CloudStack_UI.42xmessagesproperties
+ ./sync-transifex-ui.sh download-source-language CloudStack_UI.410_messagesjson
 
 * Upload the L10N resource files on Transifex. 
 
- ./sync-transifex-ui.sh upload-l10n-languages CloudStack_UI.42xmessagesproperties
+ ./sync-transifex-ui.sh upload-l10n-languages CloudStack_UI.410_messagesjson
 
 =====
-Note 1: 
-Choose the good branch on git matching with the good resource on Transifex:
-(no branch) <--> CloudStack_UI.2-2messagesproperties
-(no branch) <--> CloudStack_UI.30xmessagesproperties
-(4.1)       <--> CloudStack_UI.41xmessageproperties
-(master)    <--> CloudStack_UI.42xmessagesproperties
-
-Note 2:
+Note:
 If you want add a new L10N language, we need edit the sync-transifex-ui.sh script
 to add his language code in LIST_LANG variable, before run the download-l10n-languages
 command.
 
-
+======
+See: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Update+L10N+files+from+Transifex+to+git+repo
diff --git a/tools/transifex/sync-transifex-ui.sh b/tools/transifex/sync-transifex-ui.sh
index a470840..0e3c494 100755
--- a/tools/transifex/sync-transifex-ui.sh
+++ b/tools/transifex/sync-transifex-ui.sh
@@ -19,10 +19,10 @@
 SRCLANG=en
 LIST_LANG="ar ca de_DE es fr_FR it_IT ja_JP ko_KR nb_NO nl_NL pl pt_BR ru_RU zh_CN hu"
 
-DIRECTORY_RESOURCES="../../client/WEB-INF/classes/resources"
+DIRECTORY_RESOURCES="../../ui/l10n"
 WORKDIR="./work-dir"
 
-AL2_STRING="# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements.  See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership.  The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License.  You may obtain a copy of the License at\n#\n#   http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied.  See the License for the\n# specific language governing permissions and limitations\n# under the License.\n"
+AL2_STRING="// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements.  See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership.  The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License.  You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied.  See the License for the\n// specific language governing permissions and limitations\n// under the License.\n"
 
 doInit()
 {
@@ -47,10 +47,9 @@
 {
         # l10n languages
         for CODELANG in ${LIST_LANG} ; do
-                if [ -f "${DIRECTORY_RESOURCES}/messages_${CODELANG}.properties" ]; then
-                        native2ascii -reverse -encoding UTF-8 ${DIRECTORY_RESOURCES}/messages_${CODELANG}.properties ${WORKDIR}/messages_${CODELANG}.properties
-                        sed -i"" "s/\\\\\\\'/'/g" ${WORKDIR}/messages_${CODELANG}.properties
-                        tx set -r ${ARGUMENTS} -l ${CODELANG} ${WORKDIR}/messages_${CODELANG}.properties
+                if [ -f "${DIRECTORY_RESOURCES}/${CODELANG}.json" ]; then
+                        grep -v "^\s*//" ${DIRECTORY_RESOURCES}/${CODELANG}.js | sed -e 's/var dictionary = //' -e "\$s/;$//" > ${WORKDIR}/${CODELANG}.json
+                        tx set -r ${ARGUMENTS} -l ${CODELANG} ${WORKDIR}/${CODELANG}.json
                         tx push -t -r ${ARGUMENTS} -l ${CODELANG}
                 else   
                         echo "Warning: the resource file for language ${CODELANG} doesn't exist."
@@ -62,27 +61,28 @@
 {
         # prepare l10n languages
         for CODELANG in ${LIST_LANG} ; do
-                if [ -f "${DIRECTORY_RESOURCES}/messages_${CODELANG}.properties" ]; then
-                        native2ascii -reverse -encoding UTF-8 ${DIRECTORY_RESOURCES}/messages_${CODELANG}.properties ${WORKDIR}/messages_${CODELANG}.properties
-                        sed -i"" "s/\\\\\\\'/'/g" ${WORKDIR}/messages_${CODELANG}.properties
-                        tx set -r ${ARGUMENTS} -l ${CODELANG} ${WORKDIR}/messages_${CODELANG}.properties
+                if [ -f "${DIRECTORY_RESOURCES}/${CODELANG}.js" ]; then
+                        grep -v "^\s*//" ${DIRECTORY_RESOURCES}/${CODELANG}.js | sed -e 's/var dictionary = //' -e "\$s/;$//" > ${WORKDIR}/${CODELANG}.json
+                        tx set -r ${ARGUMENTS} -l ${CODELANG} ${WORKDIR}/${CODELANG}.json
                 else   
                         echo "\nWarning: the resource file for language ${CODELANG} doesn't exist."
                         echo "Run this command to force get this language from transifex:"
-                        echo "\ntx set -r ${ARGUMENTS} -l ${CODELANG} ${WORKDIR}/messages_${CODELANG}.properties\n"
+                        echo "\ntx set -r ${ARGUMENTS} -l ${CODELANG} ${WORKDIR}/${CODELANG}.json\n"
                 fi
         done
 
         # get all resource files from transifex
-        tx pull -f --mode=translator -r ${ARGUMENTS} 
+        tx pull -f -r ${ARGUMENTS}
 
         # l10n languages
         for CODELANG in ${LIST_LANG} ; do
-                #tx pull -r ${ARGUMENTS} -l ${CODELANG}
-                if [ -f "${WORKDIR}/messages_${CODELANG}.properties" ]; then
-                        native2ascii -encoding UTF-8 ${WORKDIR}/messages_${CODELANG}.properties ${WORKDIR}/messages_${CODELANG}.properties.tmp1
-                        grep -v "^#" ${WORKDIR}/messages_${CODELANG}.properties.tmp1 | sort -f | uniq | sed "s/'/\\\\\\\\\'/g" > ${WORKDIR}/messages_${CODELANG}.properties.tmp2
-                        echo "$AL2_STRING" | cat - ${WORKDIR}/messages_${CODELANG}.properties.tmp2 > ${DIRECTORY_RESOURCES}/messages_${CODELANG}.properties
+                if [ -f "${WORKDIR}/${CODELANG}.json" ]; then
+                        sed -e 's/":"/": "/' \
+                                -e 's/^/    /g' \
+                                -e '1s/^    {/var dictionary = {\n    /' \
+                                -e '$s/\}$/\n\};/' \
+                                -e "1s~^~${AL2_STRING}~" \
+                                ${WORKDIR}/${CODELANG}.json > ${DIRECTORY_RESOURCES}/${CODELANG}.js
                 else   
                         echo "Warning: the resource file for language ${CODELANG} doesn't exist on transifex"
                 fi
@@ -92,10 +92,9 @@
 doUploadSourceLang()
 {
         # Source language
-        if [ -f ${DIRECTORY_RESOURCES}/messages.properties ]; then
-                native2ascii -reverse -encoding UTF-8 ${DIRECTORY_RESOURCES}/messages.properties ${WORKDIR}/messages.properties
-                sed -i"" "s/\\\\\\\'/'/g" ${WORKDIR}/messages.properties
-                tx set --source -r ${ARGUMENTS} -l ${SRCLANG} ${WORKDIR}/messages.properties
+        if [ -f ${DIRECTORY_RESOURCES}/${SRCLANG}.js ]; then
+                grep -v "^\s*//" ${DIRECTORY_RESOURCES}/${SRCLANG}.js | sed -e 's/var dictionary = //' -e "\$s/;$//" > ${WORKDIR}/${SRCLANG}.json
+                tx set --source -r ${ARGUMENTS} -l ${SRCLANG} ${WORKDIR}/${SRCLANG}.json
                 tx push -s -r ${ARGUMENTS} 
         else
                 echo "Warning: the source language doesn't exist!"
@@ -107,10 +106,13 @@
         # get all resource files from transifex
         tx pull -s -r ${ARGUMENTS} 
         # Source language
-        if [ -f "${WORKDIR}/messages.properties" ]; then
-                native2ascii -encoding UTF-8 ${WORKDIR}/messages.properties ${WORKDIR}/messages.properties.tmp1
-                grep -v "^#" ${WORKDIR}/messages.properties.tmp1 | sort -f | uniq | sed "s/'/\\\\\\\\\'/g" > ${WORKDIR}/messages.properties.tmp2
-                echo "$AL2_STRING" | cat - ${WORKDIR}/messages.properties.tmp2 > ${DIRECTORY_RESOURCES}/messages.properties
+        if [ -f "${WORKDIR}/${SRCLANG}.json" ]; then
+                sed -e 's/":"/": "/' \
+                        -e 's/^/    /g' \
+                        -e '1s/^    {/var dictionary = {\n    /' \
+                        -e '$s/\}$/\n\};/' \
+                        -e "1s~^~${AL2_STRING}~" \
+                        ${WORKDIR}/${SRCLANG}.json > ${DIRECTORY_RESOURCES}/${SRCLANG}.js
         else
                 echo "Warning: the source language hasn't been retrieve!"
         fi
@@ -150,8 +152,8 @@
                 ;;
 
         *|error)
-                echo "Usage: $0 [upload-source-language|download-source-language] [upload-l10n-languages|download-l10n-languages] transifex-resource" >&2
-                echo "\n\tExemple: $0 download-l10n-languages CloudStack_UI-42xmessagesproperties\n" >&2
+                echo "Usage: $0 [ upload-source-language | download-source-language | upload-l10n-languages | download-l10n-languages ] transifex-resource" >&2
+                echo "\n\tExemple: $0 download-l10n-languages CloudStack_UI.410_messagesjson\n" >&2
                 echo "Usage: $0 init-transifex URL-transifex-project" >&2
                 echo "\n\tExemple: $0 init-transifex https://www.transifex.com/projects/p/CloudStack_UI/\n" >&2
                 exit 1
diff --git a/tools/wix-cloudstack-maven-plugin/pom.xml b/tools/wix-cloudstack-maven-plugin/pom.xml
index fd32b89..a04ea29 100644
--- a/tools/wix-cloudstack-maven-plugin/pom.xml
+++ b/tools/wix-cloudstack-maven-plugin/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index 16ee0b7..0477c4e 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -1425,6 +1425,27 @@
   background-position: 1px -432px;
 }
 
+div.list-view td.state.suitable span {
+  background: url(../images/icons.png) no-repeat scroll 1px -224px;
+  color: #008000;
+  height: 18px;
+}
+
+div.list-view td.state.suitable-storage-migration-required span {
+  width: 200px;
+}
+
+div.list-view td.state.notsuitable span {
+  background: url(../images/icons.png) no-repeat scroll 1px -190px;
+  color: #B90606;
+  height: 19px;
+  width: 100px;
+}
+
+div.list-view td.state.notsuitable-storage-migration-required span {
+    width: 220px !important;
+}
+
 .horizontal-overflow tbody td, .horizontal-overflow thead th {
   min-width: 40px;
   padding: 10px 10px 5px 0px;
@@ -2830,6 +2851,10 @@
   background-position: -82px -686px;
 }
 
+#navigation ul li.vmsnapshots span.icon {
+  background: url(../images/sprites.png) no-repeat -34px -666px;
+}
+
 #navigation ul li.affinityGroups span.icon {
   background-position: -73px -87px;
 }
@@ -8198,6 +8223,7 @@
 
 .multi-edit th.add-rule,
 .multi-edit td.add-rule {
+  border-right: 1px solid #cdcccc;
 }
 
 .multi-edit .data-table td.add-vm:hover {
@@ -12822,6 +12848,7 @@
 }
 
 .revertSnapshot .icon,
+.revertToVMSnapshot .icon,
 .restoreVM .icon,
 .restore .icon,
 .recover .icon {
@@ -12838,6 +12865,7 @@
 }
 
 .revertSnapshot:hover .icon,
+.revertToVMSnapshot:hover .icon,
 .restoreVM:hover .icon,
 .restore:hover .icon {
   background-position: -168px -613px;
@@ -13226,3 +13254,49 @@
   font-size: 13px;
   padding: 5px;
 }
+
+.multi-edit-add-list .ui-button.migrateok,
+.multi-edit-add-list .ui-button.migratecancel {
+  top: -5px !important;
+}
+
+.migrate-vm-available-host-list div.text-search {
+  right: 30px;
+}
+
+.migrate-vm-available-host-list div.ui-widget-content {
+  display: block !important;
+}
+
+.list-view-select table th.availableHostSuitability,
+.list-view-select table td.availableHostSuitability {
+  max-width: 250px;
+}
+.copy-template-destination-list div.text-search {
+  right: 5px;
+}
+
+.copy-template-destination-list div.ui-widget-content {
+  display: block !important;
+}
+
+div.panel.copy-template-destination-list div.list-view div.fixed-header{
+  width: 500px;
+}
+
+.copy-template-destination-list.panel div.list-view div.data-table table{
+  width: 595px;
+}
+
+.copy-template-destination-list .list-view .toolbar {
+  width: 654px;
+}
+
+.multi-edit-add-list .ui-button.copytemplateok{
+  left: 330px;
+}
+
+.multi-edit-add-list .ui-button.copytemplatecancel {
+    left: 310px;
+}
+
diff --git a/ui/dictionary.jsp b/ui/dictionary.jsp
deleted file mode 100644
index c15dae2..0000000
--- a/ui/dictionary.jsp
+++ /dev/null
@@ -1,1158 +0,0 @@
-<%--
-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.
---%>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
-<c:if test="${!empty cookie.lang}">
-  <fmt:setLocale value="${cookie.lang.value}" />
-</c:if>
-<fmt:setBundle basename="resources/messages"/>
-
-<%--
-****
-NOTE
-****
-
-Please use dictionary2.jsp for all new mappings. This is due to
-file size constraints for JSP files.
-
-If you add anything else to this file, an error might occur at runtime!
---%>
-
-<% long now = System.currentTimeMillis(); %>
-<script type="text/javascript">
-dictionary = {
-'label.vm.ip': '<fmt:message key="label.vm.ip" />',
-'message.listView.subselect.multi': '<fmt:message key="message.listView.subselect.multi" />',
-'label.use.vm.ips': '<fmt:message key="label.use.vm.ips" />',
-'label.recover.vm': '<fmt:message key="label.recover.vm" />',
-'message.recover.vm': '<fmt:message key="message.recover.vm" />',
-'label.reinstall.vm': '<fmt:message key="label.reinstall.vm" />',
-'message.reinstall.vm': '<fmt:message key="message.reinstall.vm" />',
-'label.port': '<fmt:message key="label.port" />',
-'label.remove.ldap': '<fmt:message key="label.remove.ldap" />',
-'message.remove.ldap': '<fmt:message key="message.remove.ldap" />',
-'message.configure.ldap': '<fmt:message key="message.configure.ldap" />',
-'label.configure.ldap': '<fmt:message key="label.configure.ldap" />',
-'label.ldap.port': '<fmt:message key="label.ldap.port" />',
-'label.ldap.configuration': '<fmt:message key="label.ldap.configuration" />',
-'label.create.nfs.secondary.staging.store': '<fmt:message key="label.create.nfs.secondary.staging.store" />',
-'label.volatile': '<fmt:message key="label.volatile" />',
-'label.planner.mode': '<fmt:message key="label.planner.mode" />',
-'label.deployment.planner': '<fmt:message key="label.deployment.planner" />',
-'label.quiesce.vm': '<fmt:message key="label.quiesce.vm" />',
-'label.smb.username': '<fmt:message key="label.smb.username" />',
-'label.smb.password': '<fmt:message key="label.smb.password" />',
-'label.smb.domain': '<fmt:message key="label.smb.domain" />',
-'label.hypervisors': '<fmt:message key="label.hypervisors" />',
-'label.home': '<fmt:message key="label.home" />',
-'label.sockets': '<fmt:message key="label.sockets" />',
-'label.add.ucs.manager': '<fmt:message key="label.add.ucs.manager" />',
-'label.root.disk.size': '<fmt:message key="label.root.disk.size" />',
-'label.s3.nfs.path': '<fmt:message key="label.s3.nfs.path" />',
-'label.s3.nfs.server': '<fmt:message key="label.s3.nfs.server" />',
-'label.delete.events': '<fmt:message key="label.delete.events" />',
-'label.delete.alerts': '<fmt:message key="label.delete.alerts" />',
-'label.archive.events': '<fmt:message key="label.archive.events" />',
-'label.archive.alerts': '<fmt:message key="label.archive.alerts" />',
-'label.by.alert.type': '<fmt:message key="label.by.alert.type" />',
-'label.by.event.type': '<fmt:message key="label.by.event.type" />',
-'label.by.date.start': '<fmt:message key="label.by.date.start" />',
-'label.by.date.end': '<fmt:message key="label.by.date.end" />',
-'label.switch.type': '<fmt:message key="label.switch.type" />',
-'label.service.state': '<fmt:message key="label.service.state" />',
-'label.egress.default.policy': '<fmt:message key="label.egress.default.policy" />',
-'label.routing': '<fmt:message key="label.routing" />',
-'label.hvm': '<fmt:message key="label.hvm" />',
-'message.validate.invalid.characters': '<fmt:message key="message.validate.invalid.characters" />',
-'message.validate.fieldrequired': '<fmt:message key="message.validate.fieldrequired" />',
-'message.validate.fixfield': '<fmt:message key="message.validate.fixfield" />',
-'label.about': '<fmt:message key="label.about" />',
-'label.about.app': '<fmt:message key="label.about.app" />',
-'label.app.name': '<fmt:message key="label.app.name" />',
-'label.custom.disk.iops': '<fmt:message key="label.custom.disk.iops" />',
-'label.disk.iops.min': '<fmt:message key="label.disk.iops.min" />',
-'label.disk.iops.max': '<fmt:message key="label.disk.iops.max" />',
-'label.hypervisor.snapshot.reserve': '<fmt:message key="label.hypervisor.snapshot.reserve" />',
-'label.secondary.ips': '<fmt:message key="label.secondary.ips" />',
-'label.edit.secondary.ips': '<fmt:message key="label.edit.secondary.ips" />',
-'label.acquire.new.secondary.ip': '<fmt:message key="label.acquire.new.secondary.ip" />',
-'label.view.secondary.ips': '<fmt:message key="label.view.secondary.ips" />',
-'label.capacity.bytes': '<fmt:message key="label.capacity.bytes" />',
-'label.capacity.iops': '<fmt:message key="label.capacity.iops" />',
-'message.acquire.ip.nic': '<fmt:message key="message.acquire.ip.nic" />',
-'message.select.affinity.groups': '<fmt:message key="message.select.affinity.groups" />',
-'message.no.affinity.groups': '<fmt:message key="message.no.affinity.groups" />',
-'label.action.delete.nic': '<fmt:message key="label.action.delete.nic" />',
-'message.action.delete.nic': '<fmt:message key="message.action.delete.nic" />',
-'changed.item.properties': '<fmt:message key="changed.item.properties" />',
-'confirm.enable.s3': '<fmt:message key="confirm.enable.s3" />',
-'confirm.enable.swift': '<fmt:message key="confirm.enable.swift" />',
-'error.could.not.change.your.password.because.ldap.is.enabled': '<fmt:message key="error.could.not.change.your.password.because.ldap.is.enabled" />',
-'error.could.not.enable.zone': '<fmt:message key="error.could.not.enable.zone" />',
-'error.installWizard.message': '<fmt:message key="error.installWizard.message" />',
-'error.invalid.username.password': '<fmt:message key="error.invalid.username.password" />',
-'error.login': '<fmt:message key="error.login" />',
-'error.menu.select': '<fmt:message key="error.menu.select" />',
-'error.mgmt.server.inaccessible': '<fmt:message key="error.mgmt.server.inaccessible" />',
-'error.password.not.match': '<fmt:message key="error.password.not.match" />',
-'error.please.specify.physical.network.tags': '<fmt:message key="error.please.specify.physical.network.tags" />',
-'error.session.expired': '<fmt:message key="error.session.expired" />',
-'error.something.went.wrong.please.correct.the.following': '<fmt:message key="error.something.went.wrong.please.correct.the.following" />',
-'error.unable.to.reach.management.server': '<fmt:message key="error.unable.to.reach.management.server" />',
-'error.unresolved.internet.name': '<fmt:message key="error.unresolved.internet.name" />',
-'label.extractable': '<fmt:message key="label.extractable" />',
-'force.delete.domain.warning': '<fmt:message key="force.delete.domain.warning" />',
-'force.delete': '<fmt:message key="force.delete" />',
-'force.remove': '<fmt:message key="force.remove" />',
-'force.remove.host.warning': '<fmt:message key="force.remove.host.warning" />',
-'force.stop': '<fmt:message key="force.stop" />',
-'force.stop.instance.warning': '<fmt:message key="force.stop.instance.warning" />',
-'ICMP.code': '<fmt:message key="ICMP.code" />',
-'ICMP.type': '<fmt:message key="ICMP.type" />',
-'image.directory': '<fmt:message key="image.directory" />',
-'inline': '<fmt:message key="inline" />',
-'instances.actions.reboot.label': '<fmt:message key="instances.actions.reboot.label" />',
-'label.accept.project.invitation': '<fmt:message key="label.accept.project.invitation" />',
-'label.account.and.security.group': '<fmt:message key="label.account.and.security.group" />',
-'label.account': '<fmt:message key="label.account" />',
-'label.account.id': '<fmt:message key="label.account.id" />',
-'label.account.name': '<fmt:message key="label.account.name" />',
-'label.accounts': '<fmt:message key="label.accounts" />',
-'label.account.specific': '<fmt:message key="label.account.specific" />',
-'label.acquire.new.ip': '<fmt:message key="label.acquire.new.ip" />',
-'label.action.attach.disk': '<fmt:message key="label.action.attach.disk" />',
-'label.action.attach.disk.processing': '<fmt:message key="label.action.attach.disk.processing" />',
-'label.action.attach.iso': '<fmt:message key="label.action.attach.iso" />',
-'label.action.attach.iso.processing': '<fmt:message key="label.action.attach.iso.processing" />',
-'label.action.cancel.maintenance.mode': '<fmt:message key="label.action.cancel.maintenance.mode" />',
-'label.action.cancel.maintenance.mode.processing': '<fmt:message key="label.action.cancel.maintenance.mode.processing" />',
-'label.action.change.password': '<fmt:message key="label.action.change.password" />',
-'label.action.configure.samlauthorization': '<fmt:message key="label.action.configure.samlauthorization" />',
-'label.action.change.service': '<fmt:message key="label.action.change.service" />',
-'label.action.change.service.processing': '<fmt:message key="label.action.change.service.processing" />',
-'label.action.copy.ISO': '<fmt:message key="label.action.copy.ISO" />',
-'label.action.copy.ISO.processing': '<fmt:message key="label.action.copy.ISO.processing" />',
-'label.action.copy.template': '<fmt:message key="label.action.copy.template" />',
-'label.action.copy.template.processing': '<fmt:message key="label.action.copy.template.processing" />',
-'label.action.create.template': '<fmt:message key="label.action.create.template" />',
-'label.action.create.template.from.vm': '<fmt:message key="label.action.create.template.from.vm" />',
-'label.action.create.template.from.volume': '<fmt:message key="label.action.create.template.from.volume" />',
-'label.action.create.template.processing': '<fmt:message key="label.action.create.template.processing" />',
-'label.action.create.vm': '<fmt:message key="label.action.create.vm" />',
-'label.action.create.vm.processing': '<fmt:message key="label.action.create.vm.processing" />',
-'label.action.create.volume': '<fmt:message key="label.action.create.volume" />',
-'label.action.create.volume.processing': '<fmt:message key="label.action.create.volume.processing" />',
-'label.action.delete.account': '<fmt:message key="label.action.delete.account" />',
-'label.action.delete.account.processing': '<fmt:message key="label.action.delete.account.processing" />',
-'label.action.delete.cluster': '<fmt:message key="label.action.delete.cluster" />',
-'label.action.delete.cluster.processing': '<fmt:message key="label.action.delete.cluster.processing" />',
-'label.action.delete.disk.offering': '<fmt:message key="label.action.delete.disk.offering" />',
-'label.action.delete.disk.offering.processing': '<fmt:message key="label.action.delete.disk.offering.processing" />',
-'label.action.delete.domain': '<fmt:message key="label.action.delete.domain" />',
-'label.action.delete.domain.processing': '<fmt:message key="label.action.delete.domain.processing" />',
-'label.action.delete.firewall': '<fmt:message key="label.action.delete.firewall" />',
-'label.action.delete.firewall.processing': '<fmt:message key="label.action.delete.firewall.processing" />',
-'label.action.delete.ingress.rule': '<fmt:message key="label.action.delete.ingress.rule" />',
-'label.action.delete.ingress.rule.processing': '<fmt:message key="label.action.delete.ingress.rule.processing" />',
-'label.action.delete.IP.range': '<fmt:message key="label.action.delete.IP.range" />',
-'label.action.delete.IP.range.processing': '<fmt:message key="label.action.delete.IP.range.processing" />',
-'label.action.delete.ISO': '<fmt:message key="label.action.delete.ISO" />',
-'label.action.delete.ISO.processing': '<fmt:message key="label.action.delete.ISO.processing" />',
-'label.action.delete.load.balancer': '<fmt:message key="label.action.delete.load.balancer" />',
-'label.action.delete.load.balancer.processing': '<fmt:message key="label.action.delete.load.balancer.processing" />',
-'label.action.delete.network': '<fmt:message key="label.action.delete.network" />',
-'label.action.delete.network.processing': '<fmt:message key="label.action.delete.network.processing" />',
-'label.action.delete.nexusVswitch': '<fmt:message key="label.action.delete.nexusVswitch" />',
-'label.action.delete.physical.network': '<fmt:message key="label.action.delete.physical.network" />',
-'label.action.delete.pod': '<fmt:message key="label.action.delete.pod" />',
-'label.action.delete.pod.processing': '<fmt:message key="label.action.delete.pod.processing" />',
-'label.action.delete.primary.storage': '<fmt:message key="label.action.delete.primary.storage" />',
-'label.action.delete.primary.storage.processing': '<fmt:message key="label.action.delete.primary.storage.processing" />',
-'label.action.delete.secondary.storage': '<fmt:message key="label.action.delete.secondary.storage" />',
-'label.action.delete.secondary.storage.processing': '<fmt:message key="label.action.delete.secondary.storage.processing" />',
-'label.action.delete.security.group': '<fmt:message key="label.action.delete.security.group" />',
-'label.action.delete.security.group.processing': '<fmt:message key="label.action.delete.security.group.processing" />',
-'label.action.delete.service.offering': '<fmt:message key="label.action.delete.service.offering" />',
-'label.action.delete.service.offering.processing': '<fmt:message key="label.action.delete.service.offering.processing" />',
-'label.action.delete.snapshot': '<fmt:message key="label.action.delete.snapshot" />',
-'label.action.delete.snapshot.processing': '<fmt:message key="label.action.delete.snapshot.processing" />',
-'label.action.delete.system.service.offering': '<fmt:message key="label.action.delete.system.service.offering" />',
-'label.action.delete.template': '<fmt:message key="label.action.delete.template" />',
-'label.action.delete.template.processing': '<fmt:message key="label.action.delete.template.processing" />',
-'label.action.delete.user': '<fmt:message key="label.action.delete.user" />',
-'label.action.delete.user.processing': '<fmt:message key="label.action.delete.user.processing" />',
-'label.action.delete.volume': '<fmt:message key="label.action.delete.volume" />',
-'label.action.delete.volume.processing': '<fmt:message key="label.action.delete.volume.processing" />',
-'label.action.delete.zone': '<fmt:message key="label.action.delete.zone" />',
-'label.action.delete.zone.processing': '<fmt:message key="label.action.delete.zone.processing" />',
-'label.action.destroy.instance': '<fmt:message key="label.action.destroy.instance" />',
-'label.action.destroy.instance.processing': '<fmt:message key="label.action.destroy.instance.processing" />',
-'label.action.destroy.systemvm': '<fmt:message key="label.action.destroy.systemvm" />',
-'label.action.destroy.systemvm.processing': '<fmt:message key="label.action.destroy.systemvm.processing" />',
-'label.action.detach.disk': '<fmt:message key="label.action.detach.disk" />',
-'label.action.detach.disk.processing': '<fmt:message key="label.action.detach.disk.processing" />',
-'label.action.detach.iso': '<fmt:message key="label.action.detach.iso" />',
-'label.action.detach.iso.processing': '<fmt:message key="label.action.detach.iso.processing" />',
-'label.action.disable.account': '<fmt:message key="label.action.disable.account" />',
-'label.action.disable.account.processing': '<fmt:message key="label.action.disable.account.processing" />',
-'label.action.disable.cluster': '<fmt:message key="label.action.disable.cluster" />',
-'label.action.disable.cluster.processing': '<fmt:message key="label.action.disable.cluster.processing" />',
-'label.action.disable.nexusVswitch': '<fmt:message key="label.action.disable.nexusVswitch" />',
-'label.action.disable.physical.network': '<fmt:message key="label.action.disable.physical.network" />',
-'label.action.disable.pod': '<fmt:message key="label.action.disable.pod" />',
-'label.action.disable.pod.processing': '<fmt:message key="label.action.disable.pod.processing" />',
-'label.action.disable.static.NAT': '<fmt:message key="label.action.disable.static.NAT" />',
-'label.action.disable.static.NAT.processing': '<fmt:message key="label.action.disable.static.NAT.processing" />',
-'label.action.disable.user': '<fmt:message key="label.action.disable.user" />',
-'label.action.disable.user.processing': '<fmt:message key="label.action.disable.user.processing" />',
-'label.action.disable.zone': '<fmt:message key="label.action.disable.zone" />',
-'label.action.disable.zone.processing': '<fmt:message key="label.action.disable.zone.processing" />',
-'label.action.download.ISO': '<fmt:message key="label.action.download.ISO" />',
-'label.action.download.template': '<fmt:message key="label.action.download.template" />',
-'label.action.download.volume': '<fmt:message key="label.action.download.volume" />',
-'label.action.download.volume.processing': '<fmt:message key="label.action.download.volume.processing" />',
-'label.action.edit.account': '<fmt:message key="label.action.edit.account" />',
-'label.action.edit.disk.offering': '<fmt:message key="label.action.edit.disk.offering" />',
-'label.action.edit.domain': '<fmt:message key="label.action.edit.domain" />',
-'label.action.edit.global.setting': '<fmt:message key="label.action.edit.global.setting" />',
-'label.action.edit.host': '<fmt:message key="label.action.edit.host" />',
-'label.action.edit.instance': '<fmt:message key="label.action.edit.instance" />',
-'label.action.edit.ISO': '<fmt:message key="label.action.edit.ISO" />',
-'label.action.edit.network': '<fmt:message key="label.action.edit.network" />',
-'label.action.edit.network.offering': '<fmt:message key="label.action.edit.network.offering" />',
-'label.action.edit.network.processing': '<fmt:message key="label.action.edit.network.processing" />',
-'label.action.edit.pod': '<fmt:message key="label.action.edit.pod" />',
-'label.action.edit.primary.storage': '<fmt:message key="label.action.edit.primary.storage" />',
-'label.action.edit.resource.limits': '<fmt:message key="label.action.edit.resource.limits" />',
-'label.action.edit.service.offering': '<fmt:message key="label.action.edit.service.offering" />',
-'label.action.edit.template': '<fmt:message key="label.action.edit.template" />',
-'label.action.edit.user': '<fmt:message key="label.action.edit.user" />',
-'label.action.edit.zone': '<fmt:message key="label.action.edit.zone" />',
-'label.action.enable.account': '<fmt:message key="label.action.enable.account" />',
-'label.action.enable.account.processing': '<fmt:message key="label.action.enable.account.processing" />',
-'label.action.enable.cluster': '<fmt:message key="label.action.enable.cluster" />',
-'label.action.enable.cluster.processing': '<fmt:message key="label.action.enable.cluster.processing" />',
-'label.action.enable.maintenance.mode': '<fmt:message key="label.action.enable.maintenance.mode" />',
-'label.action.enable.maintenance.mode.processing': '<fmt:message key="label.action.enable.maintenance.mode.processing" />',
-'label.action.enable.nexusVswitch': '<fmt:message key="label.action.enable.nexusVswitch" />',
-'label.action.enable.physical.network': '<fmt:message key="label.action.enable.physical.network" />',
-'label.action.enable.pod': '<fmt:message key="label.action.enable.pod" />',
-'label.action.enable.pod.processing': '<fmt:message key="label.action.enable.pod.processing" />',
-'label.action.enable.static.NAT': '<fmt:message key="label.action.enable.static.NAT" />',
-'label.action.enable.static.NAT.processing': '<fmt:message key="label.action.enable.static.NAT.processing" />',
-'label.action.enable.user': '<fmt:message key="label.action.enable.user" />',
-'label.action.enable.user.processing': '<fmt:message key="label.action.enable.user.processing" />',
-'label.action.enable.zone': '<fmt:message key="label.action.enable.zone" />',
-'label.action.enable.zone.processing': '<fmt:message key="label.action.enable.zone.processing" />',
-'label.action.expunge.instance': '<fmt:message key="label.action.expunge.instance" />',
-'label.action.expunge.instance.processing': '<fmt:message key="label.action.expunge.instance.processing" />',
-'label.action.force.reconnect': '<fmt:message key="label.action.force.reconnect" />',
-'label.action.force.reconnect.processing': '<fmt:message key="label.action.force.reconnect.processing" />',
-'label.action.generate.keys': '<fmt:message key="label.action.generate.keys" />',
-'label.action.generate.keys.processing': '<fmt:message key="label.action.generate.keys.processing" />',
-'label.action.lock.account': '<fmt:message key="label.action.lock.account" />',
-'label.action.lock.account.processing': '<fmt:message key="label.action.lock.account.processing" />',
-'label.action.manage.cluster': '<fmt:message key="label.action.manage.cluster" />',
-'label.action.manage.cluster.processing': '<fmt:message key="label.action.manage.cluster.processing" />',
-'label.action.migrate.instance': '<fmt:message key="label.action.migrate.instance" />',
-'label.action.migrate.instance.processing': '<fmt:message key="label.action.migrate.instance.processing" />',
-'label.action.migrate.router': '<fmt:message key="label.action.migrate.router" />',
-'label.action.migrate.router.processing': '<fmt:message key="label.action.migrate.router.processing" />',
-'label.action.migrate.systemvm': '<fmt:message key="label.action.migrate.systemvm" />',
-'label.action.migrate.systemvm.processing': '<fmt:message key="label.action.migrate.systemvm.processing" />',
-'label.action.reboot.instance': '<fmt:message key="label.action.reboot.instance" />',
-'label.action.reboot.instance.processing': '<fmt:message key="label.action.reboot.instance.processing" />',
-'label.action.reboot.router': '<fmt:message key="label.action.reboot.router" />',
-'label.action.reboot.router.processing': '<fmt:message key="label.action.reboot.router.processing" />',
-'label.action.reboot.systemvm': '<fmt:message key="label.action.reboot.systemvm" />',
-'label.action.reboot.systemvm.processing': '<fmt:message key="label.action.reboot.systemvm.processing" />',
-'label.action.recurring.snapshot': '<fmt:message key="label.action.recurring.snapshot" />',
-'label.action.register.iso': '<fmt:message key="label.action.register.iso" />',
-'label.action.register.template': '<fmt:message key="label.action.register.template" />',
-'label.action.release.ip': '<fmt:message key="label.action.release.ip" />',
-'label.action.release.ip.processing': '<fmt:message key="label.action.release.ip.processing" />',
-'label.action.remove.host': '<fmt:message key="label.action.remove.host" />',
-'label.action.remove.host.processing': '<fmt:message key="label.action.remove.host.processing" />',
-'label.action.reset.password': '<fmt:message key="label.action.reset.password" />',
-'label.action.reset.password.processing': '<fmt:message key="label.action.reset.password.processing" />',
-'label.action.resize.volume': '<fmt:message key="label.action.resize.volume" />',
-'label.action.resource.limits': '<fmt:message key="label.action.resource.limits" />',
-'label.action.restore.instance': '<fmt:message key="label.action.restore.instance" />',
-'label.action.restore.instance.processing': '<fmt:message key="label.action.restore.instance.processing" />',
-'label.actions': '<fmt:message key="label.actions" />',
-'label.action.start.instance': '<fmt:message key="label.action.start.instance" />',
-'label.action.start.instance.processing': '<fmt:message key="label.action.start.instance.processing" />',
-'label.action.start.router': '<fmt:message key="label.action.start.router" />',
-'label.action.start.router.processing': '<fmt:message key="label.action.start.router.processing" />',
-'label.action.start.systemvm': '<fmt:message key="label.action.start.systemvm" />',
-'label.action.start.systemvm.processing': '<fmt:message key="label.action.start.systemvm.processing" />',
-'label.action.stop.instance': '<fmt:message key="label.action.stop.instance" />',
-'label.action.stop.instance.processing': '<fmt:message key="label.action.stop.instance.processing" />',
-'label.action.stop.router': '<fmt:message key="label.action.stop.router" />',
-'label.action.stop.router.processing': '<fmt:message key="label.action.stop.router.processing" />',
-'label.action.stop.systemvm': '<fmt:message key="label.action.stop.systemvm" />',
-'label.action.stop.systemvm.processing': '<fmt:message key="label.action.stop.systemvm.processing" />',
-'label.action.take.snapshot': '<fmt:message key="label.action.take.snapshot" />',
-'label.action.take.snapshot.processing': '<fmt:message key="label.action.take.snapshot.processing" />',
-'label.action.revert.snapshot': '<fmt:message key="label.action.revert.snapshot" />',
-'label.action.revert.snapshot.processing': '<fmt:message key="label.action.revert.snapshot.processing" />',
-'label.action.unmanage.cluster': '<fmt:message key="label.action.unmanage.cluster" />',
-'label.action.unmanage.cluster.processing': '<fmt:message key="label.action.unmanage.cluster.processing" />',
-'label.action.update.OS.preference': '<fmt:message key="label.action.update.OS.preference" />',
-'label.action.update.OS.preference.processing': '<fmt:message key="label.action.update.OS.preference.processing" />',
-'label.action.update.resource.count': '<fmt:message key="label.action.update.resource.count" />',
-'label.action.update.resource.count.processing': '<fmt:message key="label.action.update.resource.count.processing" />',
-'label.action.vmsnapshot.create': '<fmt:message key="label.action.vmsnapshot.create" />',
-'label.action.vmsnapshot.delete': '<fmt:message key="label.action.vmsnapshot.delete" />',
-'label.action.vmsnapshot.revert': '<fmt:message key="label.action.vmsnapshot.revert" />',
-'label.activate.project': '<fmt:message key="label.activate.project" />',
-'label.active.sessions': '<fmt:message key="label.active.sessions" />',
-'label.add.account': '<fmt:message key="label.add.account" />',
-'label.add.accounts': '<fmt:message key="label.add.accounts" />',
-'label.add.accounts.to': '<fmt:message key="label.add.accounts.to" />',
-'label.add.account.to.project': '<fmt:message key="label.add.account.to.project" />',
-'label.add.ACL': '<fmt:message key="label.add.ACL" />',
-'label.add.affinity.group': '<fmt:message key="label.add.affinity.group" />',
-'label.add.BigSwitchBcf.device': '<fmt:message key="label.add.BigSwitchBcf.device" />',
-'label.add.by.cidr': '<fmt:message key="label.add.by.cidr" />',
-'label.add.by': '<fmt:message key="label.add.by" />',
-'label.add.by.group': '<fmt:message key="label.add.by.group" />',
-'label.add.cluster': '<fmt:message key="label.add.cluster" />',
-'label.add.compute.offering': '<fmt:message key="label.add.compute.offering" />',
-'label.add.direct.iprange': '<fmt:message key="label.add.direct.iprange" />',
-'label.add.disk.offering': '<fmt:message key="label.add.disk.offering" />',
-'label.add.domain': '<fmt:message key="label.add.domain" />',
-'label.add.egress.rule': '<fmt:message key="label.add.egress.rule" />',
-'label.add.F5.device': '<fmt:message key="label.add.F5.device" />',
-'label.add.firewall': '<fmt:message key="label.add.firewall" />',
-'label.add': '<fmt:message key="label.add" />',
-'label.add.guest.network': '<fmt:message key="label.add.guest.network" />',
-'label.add.host': '<fmt:message key="label.add.host" />',
-'label.adding.cluster': '<fmt:message key="label.adding.cluster" />',
-'label.adding.failed': '<fmt:message key="label.adding.failed" />',
-'label.adding': '<fmt:message key="label.adding" />',
-'label.adding.pod': '<fmt:message key="label.adding.pod" />',
-'label.adding.processing': '<fmt:message key="label.adding.processing" />',
-'label.add.ingress.rule': '<fmt:message key="label.add.ingress.rule" />',
-'label.adding.succeeded': '<fmt:message key="label.adding.succeeded" />',
-'label.adding.user': '<fmt:message key="label.adding.user" />',
-'label.adding.zone': '<fmt:message key="label.adding.zone" />',
-'label.add.ip.range': '<fmt:message key="label.add.ip.range" />',
-'label.additional.networks': '<fmt:message key="label.additional.networks" />',
-'label.add.load.balancer': '<fmt:message key="label.add.load.balancer" />',
-'label.add.more': '<fmt:message key="label.add.more" />',
-'label.add.netScaler.device': '<fmt:message key="label.add.netScaler.device" />',
-'label.add.network.ACL': '<fmt:message key="label.add.network.ACL" />',
-'label.add.network.device': '<fmt:message key="label.add.network.device" />',
-'label.add.network': '<fmt:message key="label.add.network" />',
-'label.add.network.offering': '<fmt:message key="label.add.network.offering" />',
-'label.add.new.F5': '<fmt:message key="label.add.new.F5" />',
-'label.add.new.gateway': '<fmt:message key="label.add.new.gateway" />',
-'label.add.new.NetScaler': '<fmt:message key="label.add.new.NetScaler" />',
-'label.add.new.SRX': '<fmt:message key="label.add.new.SRX" />',
-'label.add.new.PA': '<fmt:message key="label.add.new.PA" />',
-'label.add.new.tier': '<fmt:message key="label.add.new.tier" />',
-'label.add.NiciraNvp.device': '<fmt:message key="label.add.NiciraNvp.device" />',
-'label.add.NuageVsp.device': '<fmt:message key="label.add.NuageVsp.device" />',
-'label.add.BrocadeVcs.device': '<fmt:message key="label.add.BrocadeVcs.device" />',
-'label.add.pod': '<fmt:message key="label.add.pod" />',
-'label.add.port.forwarding.rule': '<fmt:message key="label.add.port.forwarding.rule" />',
-'label.add.primary.storage': '<fmt:message key="label.add.primary.storage" />',
-'label.add.region': '<fmt:message key="label.add.region" />',
-'label.add.route': '<fmt:message key="label.add.route" />',
-'label.add.rule': '<fmt:message key="label.add.rule" />',
-'label.add.secondary.storage': '<fmt:message key="label.add.secondary.storage" />',
-'label.add.security.group': '<fmt:message key="label.add.security.group" />',
-'label.add.service.offering': '<fmt:message key="label.add.service.offering" />',
-'label.add.SRX.device': '<fmt:message key="label.add.SRX.device" />',
-'label.add.PA.device': '<fmt:message key="label.add.PA.device" />',
-'label.add.static.nat.rule': '<fmt:message key="label.add.static.nat.rule" />',
-'label.add.static.route': '<fmt:message key="label.add.static.route" />',
-'label.add.system.service.offering': '<fmt:message key="label.add.system.service.offering" />',
-'label.add.template': '<fmt:message key="label.add.template" />',
-'label.add.to.group': '<fmt:message key="label.add.to.group" />',
-'label.add.user': '<fmt:message key="label.add.user" />',
-'label.add.vlan': '<fmt:message key="label.add.vlan" />',
-'label.add.vxlan': '<fmt:message key="label.add.vxlan" />',
-'label.add.vm': '<fmt:message key="label.add.vm" />',
-'label.add.vms': '<fmt:message key="label.add.vms" />',
-'label.add.vms.to.lb': '<fmt:message key="label.add.vms.to.lb" />',
-'label.add.VM.to.tier': '<fmt:message key="label.add.VM.to.tier" />',
-'label.add.volume': '<fmt:message key="label.add.volume" />',
-'label.add.vpc': '<fmt:message key="label.add.vpc" />',
-'label.add.vpn.customer.gateway': '<fmt:message key="label.add.vpn.customer.gateway" />',
-'label.add.VPN.gateway': '<fmt:message key="label.add.VPN.gateway" />',
-'label.add.vpn.user': '<fmt:message key="label.add.vpn.user" />',
-'label.add.zone': '<fmt:message key="label.add.zone" />',
-'label.admin.accounts': '<fmt:message key="label.admin.accounts" />',
-'label.admin': '<fmt:message key="label.admin" />',
-'label.advanced': '<fmt:message key="label.advanced" />',
-'label.advanced.mode': '<fmt:message key="label.advanced.mode" />',
-'label.advanced.search': '<fmt:message key="label.advanced.search" />',
-'label.affinity': '<fmt:message key="label.affinity" />',
-'label.affinity.group': '<fmt:message key="label.affinity.group" />',
-'label.affinity.groups': '<fmt:message key="label.affinity.groups" />',
-'label.agent.password': '<fmt:message key="label.agent.password" />',
-'label.agent.username': '<fmt:message key="label.agent.username" />',
-'label.agree': '<fmt:message key="label.agree" />',
-'label.alert': '<fmt:message key="label.alert" />',
-'label.algorithm': '<fmt:message key="label.algorithm" />',
-'label.allocated': '<fmt:message key="label.allocated" />',
-'label.allocation.state': '<fmt:message key="label.allocation.state" />',
-'label.anti.affinity': '<fmt:message key="label.anti.affinity" />',
-'label.anti.affinity.group': '<fmt:message key="label.anti.affinity.group" />',
-'label.anti.affinity.groups': '<fmt:message key="label.anti.affinity.groups" />',
-'label.api.key': '<fmt:message key="label.api.key" />',
-'label.api.version': '<fmt:message key="label.api.version" />',
-'label.apply': '<fmt:message key="label.apply" />',
-'label.assign': '<fmt:message key="label.assign" />',
-'label.assign.to.load.balancer': '<fmt:message key="label.assign.to.load.balancer" />',
-'label.associated.network': '<fmt:message key="label.associated.network" />',
-'label.associated.network.id': '<fmt:message key="label.associated.network.id" />',
-'label.attached.iso': '<fmt:message key="label.attached.iso" />',
-'label.author.email': '<fmt:message key="label.author.email" />',
-'label.author.name': '<fmt:message key="label.author.name" />',
-'label.availability': '<fmt:message key="label.availability" />',
-'label.availability.zone': '<fmt:message key="label.availability.zone" />',
-'label.available': '<fmt:message key="label.available" />',
-'label.available.public.ips': '<fmt:message key="label.available.public.ips" />',
-'label.back': '<fmt:message key="label.back" />',
-'label.bandwidth': '<fmt:message key="label.bandwidth" />',
-'label.basic.mode': '<fmt:message key="label.basic.mode" />',
-'label.bigswitch.controller.address': '<fmt:message key="label.bigswitch.controller.address" />',
-'label.bootable': '<fmt:message key="label.bootable" />',
-'label.broadcast.domain.range': '<fmt:message key="label.broadcast.domain.range" />',
-'label.broadcast.domain.type': '<fmt:message key="label.broadcast.domain.type" />',
-'label.broadcast.uri': '<fmt:message key="label.broadcast.uri" />',
-'label.by.account': '<fmt:message key="label.by.account" />',
-'label.by.availability': '<fmt:message key="label.by.availability" />',
-'label.by.domain': '<fmt:message key="label.by.domain" />',
-'label.by.end.date': '<fmt:message key="label.by.end.date" />',
-'label.by.level': '<fmt:message key="label.by.level" />',
-'label.by.pod': '<fmt:message key="label.by.pod" />',
-'label.by.role': '<fmt:message key="label.by.role" />',
-'label.by.start.date': '<fmt:message key="label.by.start.date" />',
-'label.by.state': '<fmt:message key="label.by.state" />',
-'label.bytes.received': '<fmt:message key="label.bytes.received" />',
-'label.bytes.sent': '<fmt:message key="label.bytes.sent" />',
-'label.by.traffic.type': '<fmt:message key="label.by.traffic.type" />',
-'label.by.type': '<fmt:message key="label.by.type" />',
-'label.by.type.id': '<fmt:message key="label.by.type.id" />',
-'label.by.zone': '<fmt:message key="label.by.zone" />',
-'label.cancel': '<fmt:message key="label.cancel" />',
-'label.capacity': '<fmt:message key="label.capacity" />',
-'label.certificate': '<fmt:message key="label.certificate" />',
-'label.change.ipaddress': '<fmt:message key="label.change.ipaddress" />',
-'label.change.service.offering': '<fmt:message key="label.change.service.offering" />',
-'label.change.value': '<fmt:message key="label.change.value" />',
-'label.character': '<fmt:message key="label.character" />',
-'label.md5.checksum': '<fmt:message key="label.md5.checksum" />',
-'label.cidr.account': '<fmt:message key="label.cidr.account" />',
-'label.cidr': '<fmt:message key="label.cidr" />',
-'label.cidr.list': '<fmt:message key="label.cidr.list" />',
-'label.CIDR.list': '<fmt:message key="label.CIDR.list" />',
-'label.CIDR.of.destination.network': '<fmt:message key="label.CIDR.of.destination.network" />',
-'label.clean.up': '<fmt:message key="label.clean.up" />',
-'label.make.redundant': '<fmt:message key="label.make.redundant" />',
-'label.clear.list': '<fmt:message key="label.clear.list" />',
-'label.close': '<fmt:message key="label.close" />',
-'label.cloud.console': '<fmt:message key="label.cloud.console" />',
-'label.cloud.managed': '<fmt:message key="label.cloud.managed" />',
-'label.cluster': '<fmt:message key="label.cluster" />',
-'label.cluster.name': '<fmt:message key="label.cluster.name" />',
-'label.clusters': '<fmt:message key="label.clusters" />',
-'label.cluster.type': '<fmt:message key="label.cluster.type" />',
-'label.clvm': '<fmt:message key="label.clvm" />',
-'label.code': '<fmt:message key="label.code" />',
-'label.community': '<fmt:message key="label.community" />',
-'label.compute.and.storage': '<fmt:message key="label.compute.and.storage" />',
-'label.compute': '<fmt:message key="label.compute" />',
-'label.compute.offering': '<fmt:message key="label.compute.offering" />',
-'label.compute.offerings': '<fmt:message key="label.compute.offerings" />',
-'label.configuration': '<fmt:message key="label.configuration" />',
-'label.configure': '<fmt:message key="label.configure" />',
-'label.configure.network.ACLs': '<fmt:message key="label.configure.network.ACLs" />',
-'label.configure.vpc': '<fmt:message key="label.configure.vpc" />',
-'label.confirmation': '<fmt:message key="label.confirmation" />',
-'label.confirm.password': '<fmt:message key="label.confirm.password" />',
-'label.congratulations': '<fmt:message key="label.congratulations" />',
-'label.conserve.mode': '<fmt:message key="label.conserve.mode" />',
-'label.console.proxy' : '<fmt:message key="label.console.proxy" />',
-'label.continue.basic.install': '<fmt:message key="label.continue.basic.install" />',
-'label.continue': '<fmt:message key="label.continue" />',
-'label.corrections.saved': '<fmt:message key="label.corrections.saved" />',
-'label.cpu.allocated': '<fmt:message key="label.cpu.allocated" />',
-'label.cpu.allocated.for.VMs': '<fmt:message key="label.cpu.allocated.for.VMs" />',
-'label.CPU.cap': '<fmt:message key="label.CPU.cap" />',
-'label.cpu': '<fmt:message key="label.cpu" />',
-'label.cpu.limits': '<fmt:message key="label.cpu.limits" />',
-'label.cpu.mhz': '<fmt:message key="label.cpu.mhz" />',
-'label.cpu.utilized': '<fmt:message key="label.cpu.utilized" />',
-'label.created.by.system': '<fmt:message key="label.created.by.system" />',
-'label.created': '<fmt:message key="label.created" />',
-'label.create.project': '<fmt:message key="label.create.project" />',
-'label.create.template': '<fmt:message key="label.create.template" />',
-'label.create.VPN.connection': '<fmt:message key="label.create.VPN.connection" />',
-'label.cross.zones': '<fmt:message key="label.cross.zones" />',
-'label.custom.disk.size': '<fmt:message key="label.custom.disk.size" />',
-'label.daily': '<fmt:message key="label.daily" />',
-'label.data.disk.offering': '<fmt:message key="label.data.disk.offering" />',
-'label.date': '<fmt:message key="label.date" />',
-'label.day.of.month': '<fmt:message key="label.day.of.month" />',
-'label.day.of.week': '<fmt:message key="label.day.of.week" />',
-'label.dead.peer.detection': '<fmt:message key="label.dead.peer.detection" />',
-'label.decline.invitation': '<fmt:message key="label.decline.invitation" />',
-'label.dedicated': '<fmt:message key="label.dedicated" />',
-'label.default': '<fmt:message key="label.default" />',
-'label.default.use': '<fmt:message key="label.default.use" />',
-'label.default.view': '<fmt:message key="label.default.view" />',
-'label.delete.affinity.group': '<fmt:message key="label.delete.affinity.group" />',
-'label.delete.BigSwitchBcf': '<fmt:message key="label.delete.BigSwitchBcf" />',
-'label.delete.F5': '<fmt:message key="label.delete.F5" />',
-'label.delete': '<fmt:message key="label.delete" />',
-'label.delete.gateway': '<fmt:message key="label.delete.gateway" />',
-'label.delete.NetScaler': '<fmt:message key="label.delete.NetScaler" />',
-'label.delete.NiciraNvp': '<fmt:message key="label.delete.NiciraNvp" />',
-'label.delete.NuageVsp': '<fmt:message key="label.delete.NuageVsp" />',
-'label.delete.BrocadeVcs': '<fmt:message key="label.delete.BrocadeVcs" />',
-'label.delete.project': '<fmt:message key="label.delete.project" />',
-'label.delete.SRX': '<fmt:message key="label.delete.SRX" />',
-'label.delete.PA': '<fmt:message key="label.delete.PA" />',
-'label.delete.VPN.connection': '<fmt:message key="label.delete.VPN.connection" />',
-'label.delete.VPN.customer.gateway': '<fmt:message key="label.delete.VPN.customer.gateway" />',
-'label.delete.VPN.gateway': '<fmt:message key="label.delete.VPN.gateway" />',
-'label.delete.vpn.user': '<fmt:message key="label.delete.vpn.user" />',
-'label.deleting.failed': '<fmt:message key="label.deleting.failed" />',
-'label.deleting.processing': '<fmt:message key="label.deleting.processing" />',
-'label.description': '<fmt:message key="label.description" />',
-'label.destination.physical.network.id': '<fmt:message key="label.destination.physical.network.id" />',
-'label.destination.zone': '<fmt:message key="label.destination.zone" />',
-'label.destroy': '<fmt:message key="label.destroy" />',
-'label.destroy.router': '<fmt:message key="label.destroy.router" />',
-'label.detaching.disk': '<fmt:message key="label.detaching.disk" />',
-'label.details': '<fmt:message key="label.details" />',
-'label.device.id': '<fmt:message key="label.device.id" />',
-'label.devices': '<fmt:message key="label.devices" />',
-'label.dhcp': '<fmt:message key="label.dhcp" />',
-'label.DHCP.server.type': '<fmt:message key="label.DHCP.server.type" />',
-'label.direct.ips': '<fmt:message key="label.direct.ips" />',
-'label.disabled': '<fmt:message key="label.disabled" />',
-'label.disable.provider': '<fmt:message key="label.disable.provider" />',
-'label.disable.vpn': '<fmt:message key="label.disable.vpn" />',
-'label.disabling.vpn.access': '<fmt:message key="label.disabling.vpn.access" />',
-'label.disk.allocated': '<fmt:message key="label.disk.allocated" />',
-'label.disk.iops.total': '<fmt:message key="label.disk.iops.total" />',
-'label.disk.bytes.read.rate': '<fmt:message key="label.disk.bytes.read.rate" />',
-'label.disk.bytes.write.rate': '<fmt:message key="label.disk.bytes.write.rate" />',
-'label.disk.iops.write.rate': '<fmt:message key="label.disk.iops.write.rate" />',
-'label.disk.iops.read.rate': '<fmt:message key="label.disk.iops.read.rate" />',
-'label.disk.read.bytes': '<fmt:message key="label.disk.read.bytes" />',
-'label.disk.read.io': '<fmt:message key="label.disk.read.io" />',
-'label.cache.mode': '<fmt:message key="label.cache.mode" />',
-'label.disk.offering': '<fmt:message key="label.disk.offering" />',
-'label.disk.provisioningtype': '<fmt:message key="label.disk.provisioningtype" />',
-'label.disk.size': '<fmt:message key="label.disk.size" />',
-'label.disk.size.gb': '<fmt:message key="label.disk.size.gb" />',
-'label.disk.total': '<fmt:message key="label.disk.total" />',
-'label.disk.volume': '<fmt:message key="label.disk.volume" />',
-'label.disk.write.bytes': '<fmt:message key="label.disk.write.bytes" />',
-'label.disk.write.io': '<fmt:message key="label.disk.write.io" />',
-'label.display.name': '<fmt:message key="label.display.name" />',
-'label.display.text': '<fmt:message key="label.display.text" />',
-'label.dns.1': '<fmt:message key="label.dns.1" />',
-'label.dns.2': '<fmt:message key="label.dns.2" />',
-'label.DNS.domain.for.guest.networks': '<fmt:message key="label.DNS.domain.for.guest.networks" />',
-'label.dns': '<fmt:message key="label.dns" />',
-'label.domain.admin': '<fmt:message key="label.domain.admin" />',
-'label.domain': '<fmt:message key="label.domain" />',
-'label.domain.id': '<fmt:message key="label.domain.id" />',
-'label.domain.name': '<fmt:message key="label.domain.name" />',
-'label.domain.router' : '<fmt:message key="label.domain.router" />',
-'label.domain.suffix': '<fmt:message key="label.domain.suffix" />',
-'label.done': '<fmt:message key="label.done" />',
-'label.double.quotes.are.not.allowed': '<fmt:message key="label.double.quotes.are.not.allowed" />',
-'label.download.progress': '<fmt:message key="label.download.progress" />',
-'label.drag.new.position': '<fmt:message key="label.drag.new.position" />',
-'label.edit.affinity.group': '<fmt:message key="label.edit.affinity.group" />',
-'label.edit': '<fmt:message key="label.edit" />',
-'label.edit.lb.rule': '<fmt:message key="label.edit.lb.rule" />',
-'label.edit.network.details': '<fmt:message key="label.edit.network.details" />',
-'label.edit.project.details': '<fmt:message key="label.edit.project.details" />',
-'label.edit.tags': '<fmt:message key="label.edit.tags" />',
-'label.edit.traffic.type': '<fmt:message key="label.edit.traffic.type" />',
-'label.edit.vpc': '<fmt:message key="label.edit.vpc" />',
-'label.egress.rule': '<fmt:message key="label.egress.rule" />',
-'label.egress.rules': '<fmt:message key="label.egress.rules" />',
-'label.elastic': '<fmt:message key="label.elastic" />',
-'label.elastic.IP': '<fmt:message key="label.elastic.IP" />',
-'label.elastic.LB': '<fmt:message key="label.elastic.LB" />',
-'label.email': '<fmt:message key="label.email" />',
-'label.enable.provider': '<fmt:message key="label.enable.provider" />',
-'label.enable.s3': '<fmt:message key="label.enable.s3" />',
-'label.enable.swift': '<fmt:message key="label.enable.swift" />',
-'label.enable.vpn': '<fmt:message key="label.enable.vpn" />',
-'label.enabling.vpn.access': '<fmt:message key="label.enabling.vpn.access" />',
-'label.enabling.vpn': '<fmt:message key="label.enabling.vpn" />',
-'label.end.IP': '<fmt:message key="label.end.IP" />',
-'label.endpoint': '<fmt:message key="label.endpoint" />',
-'label.endpoint.or.operation': '<fmt:message key="label.endpoint.or.operation" />',
-'label.end.port': '<fmt:message key="label.end.port" />',
-'label.end.reserved.system.IP': '<fmt:message key="label.end.reserved.system.IP" />',
-'label.end.vlan': '<fmt:message key="label.end.vlan" />',
-'label.end.vxlan': '<fmt:message key="label.end.vxlan" />',
-'label.enter.token': '<fmt:message key="label.enter.token" />',
-'label.error.code': '<fmt:message key="label.error.code" />',
-'label.error': '<fmt:message key="label.error" />',
-'label.ESP.encryption': '<fmt:message key="label.ESP.encryption" />',
-'label.ESP.hash': '<fmt:message key="label.ESP.hash" />',
-'label.ESP.lifetime': '<fmt:message key="label.ESP.lifetime" />',
-'label.ESP.policy': '<fmt:message key="label.ESP.policy" />',
-'label.esx.host': '<fmt:message key="label.esx.host" />',
-'label.example': '<fmt:message key="label.example" />',
-'label.expunge': '<fmt:message key="label.expunge" />',
-'label.external.link': '<fmt:message key="label.external.link" />',
-'label.f5': '<fmt:message key="label.f5" />',
-'label.failed': '<fmt:message key="label.failed" />',
-'label.featured': '<fmt:message key="label.featured" />',
-'label.fetch.latest': '<fmt:message key="label.fetch.latest" />',
-'label.filterBy': '<fmt:message key="label.filterBy" />',
-'label.firewall': '<fmt:message key="label.firewall" />',
-'label.first.name': '<fmt:message key="label.first.name" />',
-'label.format': '<fmt:message key="label.format" />',
-'label.friday': '<fmt:message key="label.friday" />',
-'label.full': '<fmt:message key="label.full" />',
-'label.full.path': '<fmt:message key="label.full.path" />',
-'label.gateway': '<fmt:message key="label.gateway" />',
-'label.general.alerts': '<fmt:message key="label.general.alerts" />',
-'label.generating.url': '<fmt:message key="label.generating.url" />',
-'label.gluster.volume': '<fmt:message key="label.gluster.volume" />',
-'label.go.step.2': '<fmt:message key="label.go.step.2" />',
-'label.go.step.3': '<fmt:message key="label.go.step.3" />',
-'label.go.step.4': '<fmt:message key="label.go.step.4" />',
-'label.go.step.5': '<fmt:message key="label.go.step.5" />',
-'label.group': '<fmt:message key="label.group" />',
-'label.group.optional': '<fmt:message key="label.group.optional" />',
-'label.guest.cidr': '<fmt:message key="label.guest.cidr" />',
-'label.guest.end.ip': '<fmt:message key="label.guest.end.ip" />',
-'label.guest': '<fmt:message key="label.guest" />',
-'label.guest.gateway': '<fmt:message key="label.guest.gateway" />',
-'label.guest.ip': '<fmt:message key="label.guest.ip" />',
-'label.guest.ip.range': '<fmt:message key="label.guest.ip.range" />',
-'label.guest.netmask': '<fmt:message key="label.guest.netmask" />',
-'label.guest.networks': '<fmt:message key="label.guest.networks" />',
-'label.guest.start.ip': '<fmt:message key="label.guest.start.ip" />',
-'label.guest.type': '<fmt:message key="label.guest.type" />',
-'label.ha.enabled': '<fmt:message key="label.ha.enabled" />',
-'label.help': '<fmt:message key="label.help" />',
-'label.hide.ingress.rule': '<fmt:message key="label.hide.ingress.rule" />',
-'label.hints': '<fmt:message key="label.hints" />',
-'label.host.alerts': '<fmt:message key="label.host.alerts" />',
-'label.host': '<fmt:message key="label.host" />',
-'label.host.MAC': '<fmt:message key="label.host.MAC" />',
-'label.host.name': '<fmt:message key="label.host.name" />',
-'label.hosts': '<fmt:message key="label.hosts" />',
-'label.host.tags': '<fmt:message key="label.host.tags" />',
-'label.hourly': '<fmt:message key="label.hourly" />',
-'label.hypervisor.capabilities': '<fmt:message key="label.hypervisor.capabilities" />',
-'label.hypervisor': '<fmt:message key="label.hypervisor" />',
-'label.hypervisor.type': '<fmt:message key="label.hypervisor.type" />',
-'label.hypervisor.version': '<fmt:message key="label.hypervisor.version" />',
-'label.id': '<fmt:message key="label.id" />',
-'label.IKE.DH': '<fmt:message key="label.IKE.DH" />',
-'label.IKE.encryption': '<fmt:message key="label.IKE.encryption" />',
-'label.IKE.hash': '<fmt:message key="label.IKE.hash" />',
-'label.IKE.lifetime': '<fmt:message key="label.IKE.lifetime" />',
-'label.IKE.policy': '<fmt:message key="label.IKE.policy" />',
-'label.info': '<fmt:message key="label.info" />',
-'label.ingress.rule': '<fmt:message key="label.ingress.rule" />',
-'label.initiated.by': '<fmt:message key="label.initiated.by" />',
-'label.installWizard.addClusterIntro.subtitle': '<fmt:message key="label.installWizard.addClusterIntro.subtitle" />',
-'label.installWizard.addClusterIntro.title': '<fmt:message key="label.installWizard.addClusterIntro.title" />',
-'label.installWizard.addHostIntro.subtitle': '<fmt:message key="label.installWizard.addHostIntro.subtitle" />',
-'label.installWizard.addHostIntro.title': '<fmt:message key="label.installWizard.addHostIntro.title" />',
-'label.installWizard.addPodIntro.subtitle': '<fmt:message key="label.installWizard.addPodIntro.subtitle" />',
-'label.installWizard.addPodIntro.title': '<fmt:message key="label.installWizard.addPodIntro.title" />',
-'label.installWizard.addPrimaryStorageIntro.subtitle': '<fmt:message key="label.installWizard.addPrimaryStorageIntro.subtitle" />',
-'label.installWizard.addPrimaryStorageIntro.title': '<fmt:message key="label.installWizard.addPrimaryStorageIntro.title" />',
-'label.installWizard.addSecondaryStorageIntro.subtitle': '<fmt:message key="label.installWizard.addSecondaryStorageIntro.subtitle" />',
-'label.installWizard.addSecondaryStorageIntro.title': '<fmt:message key="label.installWizard.addSecondaryStorageIntro.title" />',
-'label.installWizard.addZoneIntro.subtitle': '<fmt:message key="label.installWizard.addZoneIntro.subtitle" />',
-'label.installWizard.addZoneIntro.title': '<fmt:message key="label.installWizard.addZoneIntro.title" />',
-'label.installWizard.addZone.title': '<fmt:message key="label.installWizard.addZone.title" />',
-'label.installWizard.click.launch': '<fmt:message key="label.installWizard.click.launch" />',
-'label.installWizard.subtitle': '<fmt:message key="label.installWizard.subtitle" />',
-'label.installWizard.title': '<fmt:message key="label.installWizard.title" />',
-'label.instance': '<fmt:message key="label.instance" />',
-'label.instance.limits': '<fmt:message key="label.instance.limits" />',
-'label.instance.name': '<fmt:message key="label.instance.name" />',
-'label.instances': '<fmt:message key="label.instances" />',
-'label.internal.dns.1': '<fmt:message key="label.internal.dns.1" />',
-'label.internal.dns.2': '<fmt:message key="label.internal.dns.2" />',
-'label.internal.name': '<fmt:message key="label.internal.name" />',
-'label.interval.type': '<fmt:message key="label.interval.type" />',
-'label.introduction.to.cloudstack': '<fmt:message key="label.introduction.to.cloudstack" />',
-'label.invalid.integer': '<fmt:message key="label.invalid.integer" />',
-'label.invalid.number': '<fmt:message key="label.invalid.number" />',
-'label.invitations': '<fmt:message key="label.invitations" />',
-'label.invited.accounts': '<fmt:message key="label.invited.accounts" />',
-'label.invite': '<fmt:message key="label.invite" />',
-'label.invite.to': '<fmt:message key="label.invite.to" />',
-'label.ip.address': '<fmt:message key="label.ip.address" />',
-'label.ipaddress': '<fmt:message key="label.ipaddress" />',
-'label.ip.allocations': '<fmt:message key="label.ip.allocations" />',
-'label.ip': '<fmt:message key="label.ip" />',
-'label.ip.limits': '<fmt:message key="label.ip.limits" />',
-'label.ip.or.fqdn': '<fmt:message key="label.ip.or.fqdn" />',
-'label.ip.range': '<fmt:message key="label.ip.range" />',
-'label.ip.ranges': '<fmt:message key="label.ip.ranges" />',
-'label.IPsec.preshared.key': '<fmt:message key="label.IPsec.preshared.key" />',
-'label.ips': '<fmt:message key="label.ips" />',
-'label.iscsi': '<fmt:message key="label.iscsi" />',
-'label.is.default': '<fmt:message key="label.is.default" />',
-'label.iso.boot': '<fmt:message key="label.iso.boot" />',
-'label.iso': '<fmt:message key="label.iso" />',
-'label.isolation.method': '<fmt:message key="label.isolation.method" />',
-'label.isolation.mode': '<fmt:message key="label.isolation.mode" />',
-'label.isolation.uri': '<fmt:message key="label.isolation.uri" />',
-'label.is.redundant.router': '<fmt:message key="label.is.redundant.router" />',
-'label.is.shared': '<fmt:message key="label.is.shared" />',
-'label.is.system': '<fmt:message key="label.is.system" />',
-'label.item.listing': '<fmt:message key="label.item.listing" />',
-'label.keep': '<fmt:message key="label.keep" />',
-'label.keyboard.type': '<fmt:message key="label.keyboard.type" />',
-'label.key': '<fmt:message key="label.key" />',
-'label.kvm.traffic.label': '<fmt:message key="label.kvm.traffic.label" />',
-'label.ovm.traffic.label': '<fmt:message key="label.ovm.traffic.label" />',
-'label.lxc.traffic.label': '<fmt:message key="label.lxc.traffic.label" />',
-'label.hyperv.traffic.label': '<fmt:message key="label.hyperv.traffic.label" />',
-'label.ovm3.traffic.label': '<fmt:message key="label.ovm3.traffic.label" />',
-'label.lang.chinese': '<fmt:message key="label.lang.chinese" />',
-'label.lang.english': '<fmt:message key="label.lang.english" />',
-'label.lang.japanese': '<fmt:message key="label.lang.japanese" />',
-'label.lang.korean': '<fmt:message key="label.lang.korean" />',
-'label.lang.spanish': '<fmt:message key="label.lang.spanish" />',
-'label.lang.hungarian': '<fmt:message key="label.lang.hungarian" />',
-'label.last.disconnected': '<fmt:message key="label.last.disconnected" />',
-'label.last.name': '<fmt:message key="label.last.name" />',
-'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.level': '<fmt:message key="label.level" />',
-'label.linklocal.ip': '<fmt:message key="label.linklocal.ip" />',
-'label.load.balancer': '<fmt:message key="label.load.balancer" />',
-'label.load.balancing.policies': '<fmt:message key="label.load.balancing.policies" />',
-'label.loading': '<fmt:message key="label.loading" />',
-'label.local': '<fmt:message key="label.local" />',
-'label.local.storage.enabled': '<fmt:message key="label.local.storage.enabled" />',
-'label.local.storage': '<fmt:message key="label.local.storage" />',
-'label.login': '<fmt:message key="label.login" />',
-'label.logout': '<fmt:message key="label.logout" />',
-'label.saml.enable': '<fmt:message key="label.saml.enable" />',
-'label.saml.entity': '<fmt:message key="label.saml.entity" />',
-'label.add.LDAP.account': '<fmt:message key="label.add.LDAP.account" />',
-'label.lun': '<fmt:message key="label.lun" />',
-'label.LUN.number': '<fmt:message key="label.LUN.number" />',
-'label.make.project.owner': '<fmt:message key="label.make.project.owner" />',
-'label.manage': '<fmt:message key="label.manage" />',
-'label.managed': '<fmt:message key="label.managed" />',
-'label.management': '<fmt:message key="label.management" />',
-'label.management.ips': '<fmt:message key="label.management.ips" />',
-'label.max.cpus': '<fmt:message key="label.max.cpus" />',
-'label.max.guest.limit': '<fmt:message key="label.max.guest.limit" />',
-'label.maximum': '<fmt:message key="label.maximum" />',
-'label.max.memory': '<fmt:message key="label.max.memory" />',
-'label.max.networks': '<fmt:message key="label.max.networks" />',
-'label.max.primary.storage': '<fmt:message key="label.max.primary.storage" />',
-'label.max.public.ips': '<fmt:message key="label.max.public.ips" />',
-'label.max.secondary.storage': '<fmt:message key="label.max.secondary.storage" />',
-'label.max.snapshots': '<fmt:message key="label.max.snapshots" />',
-'label.max.templates': '<fmt:message key="label.max.templates" />',
-'label.max.vms': '<fmt:message key="label.max.vms" />',
-'label.max.volumes': '<fmt:message key="label.max.volumes" />',
-'label.max.vpcs': '<fmt:message key="label.max.vpcs" />',
-'label.may.continue': '<fmt:message key="label.may.continue" />',
-'label.memory.allocated': '<fmt:message key="label.memory.allocated" />',
-'label.memory': '<fmt:message key="label.memory" />',
-'label.memory.limits': '<fmt:message key="label.memory.limits" />',
-'label.memory.mb': '<fmt:message key="label.memory.mb" />',
-'label.memory.total': '<fmt:message key="label.memory.total" />',
-'label.memory.used': '<fmt:message key="label.memory.used" />',
-'label.menu.accounts': '<fmt:message key="label.menu.accounts" />',
-'label.menu.alerts': '<fmt:message key="label.menu.alerts" />',
-'label.menu.all.accounts': '<fmt:message key="label.menu.all.accounts" />',
-'label.menu.all.instances': '<fmt:message key="label.menu.all.instances" />',
-'label.menu.community.isos': '<fmt:message key="label.menu.community.isos" />',
-'label.menu.community.templates': '<fmt:message key="label.menu.community.templates" />',
-'label.menu.configuration': '<fmt:message key="label.menu.configuration" />',
-'label.menu.dashboard': '<fmt:message key="label.menu.dashboard" />',
-'label.menu.destroyed.instances': '<fmt:message key="label.menu.destroyed.instances" />',
-'label.menu.disk.offerings': '<fmt:message key="label.menu.disk.offerings" />',
-'label.menu.domains': '<fmt:message key="label.menu.domains" />',
-'label.menu.events': '<fmt:message key="label.menu.events" />',
-'label.menu.featured.isos': '<fmt:message key="label.menu.featured.isos" />',
-'label.menu.featured.templates': '<fmt:message key="label.menu.featured.templates" />',
-'label.menu.global.settings': '<fmt:message key="label.menu.global.settings" />',
-'label.menu.infrastructure': '<fmt:message key="label.menu.infrastructure" />',
-'label.menu.instances': '<fmt:message key="label.menu.instances" />',
-'label.menu.ipaddresses': '<fmt:message key="label.menu.ipaddresses" />',
-'label.menu.isos': '<fmt:message key="label.menu.isos" />',
-'label.menu.my.accounts': '<fmt:message key="label.menu.my.accounts" />',
-'label.menu.my.instances': '<fmt:message key="label.menu.my.instances" />',
-'label.menu.my.isos': '<fmt:message key="label.menu.my.isos" />',
-'label.menu.my.templates': '<fmt:message key="label.menu.my.templates" />',
-'label.menu.network': '<fmt:message key="label.menu.network" />',
-'label.menu.network.offerings': '<fmt:message key="label.menu.network.offerings" />',
-'label.menu.physical.resources': '<fmt:message key="label.menu.physical.resources" />',
-'label.menu.regions': '<fmt:message key="label.menu.regions" />',
-'label.menu.running.instances': '<fmt:message key="label.menu.running.instances" />',
-'label.menu.security.groups': '<fmt:message key="label.menu.security.groups" />',
-'label.menu.service.offerings': '<fmt:message key="label.menu.service.offerings" />',
-'label.menu.snapshots': '<fmt:message key="label.menu.snapshots" />',
-'label.menu.stopped.instances': '<fmt:message key="label.menu.stopped.instances" />',
-'label.menu.storage': '<fmt:message key="label.menu.storage" />',
-'label.menu.system': '<fmt:message key="label.menu.system" />',
-'label.menu.system.service.offerings': '<fmt:message key="label.menu.system.service.offerings" />',
-'label.menu.system.vms': '<fmt:message key="label.menu.system.vms" />',
-'label.menu.templates': '<fmt:message key="label.menu.templates" />',
-'label.menu.virtual.appliances': '<fmt:message key="label.menu.virtual.appliances" />',
-'label.menu.virtual.resources': '<fmt:message key="label.menu.virtual.resources" />',
-'label.menu.volumes': '<fmt:message key="label.menu.volumes" />',
-'label.menu.sshkeypair': '<fmt:message key="label.menu.sshkeypair" />',
-'label.metrics': '<fmt:message key="label.metrics" />',
-'label.metrics.allocated': '<fmt:message key="label.metrics.allocated" />',
-'label.metrics.clusters': '<fmt:message key="label.metrics.clusters" />',
-'label.metrics.cpu.allocated': '<fmt:message key="label.metrics.cpu.allocated" />',
-'label.metrics.cpu.max.dev': '<fmt:message key="label.metrics.cpu.max.dev" />',
-'label.metrics.cpu.total': '<fmt:message key="label.metrics.cpu.total" />',
-'label.metrics.cpu.usage': '<fmt:message key="label.metrics.cpu.usage" />',
-'label.metrics.cpu.used.avg': '<fmt:message key="label.metrics.cpu.used.avg" />',
-'label.metrics.disk': '<fmt:message key="label.metrics.disk" />',
-'label.metrics.disk.iops.total': '<fmt:message key="label.metrics.disk.iops.total" />',
-'label.metrics.disk.read': '<fmt:message key="label.metrics.disk.read" />',
-'label.metrics.disk.size': '<fmt:message key="label.metrics.disk.size" />',
-'label.metrics.disk.storagetype': '<fmt:message key="label.metrics.disk.storagetype" />',
-'label.metrics.disk.usage': '<fmt:message key="label.metrics.disk.usage" />',
-'label.metrics.disk.used': '<fmt:message key="label.metrics.disk.used" />',
-'label.metrics.disk.total': '<fmt:message key="label.metrics.disk.total" />',
-'label.metrics.disk.allocated': '<fmt:message key="label.metrics.disk.allocated" />',
-'label.metrics.disk.unallocated': '<fmt:message key="label.metrics.disk.unallocated" />',
-'label.metrics.disk.write': '<fmt:message key="label.metrics.disk.write" />',
-'label.metrics.hosts': '<fmt:message key="label.metrics.hosts" />',
-'label.metrics.memory.allocated': '<fmt:message key="label.metrics.memory.allocated" />',
-'label.metrics.memory.max.dev': '<fmt:message key="label.metrics.memory.max.dev" />',
-'label.metrics.memory.total': '<fmt:message key="label.metrics.memory.total" />',
-'label.metrics.memory.usage': '<fmt:message key="label.metrics.memory.usage" />',
-'label.metrics.memory.used.avg': '<fmt:message key="label.metrics.memory.used.avg" />',
-'label.metrics.name': '<fmt:message key="label.metrics.name" />',
-'label.metrics.network.read': '<fmt:message key="label.metrics.network.read" />',
-'label.metrics.network.usage': '<fmt:message key="label.metrics.network.usage" />',
-'label.metrics.network.write': '<fmt:message key="label.metrics.network.write" />',
-'label.metrics.num.cpu.cores': '<fmt:message key="label.metrics.num.cpu.cores" />',
-'label.metrics.property': '<fmt:message key="label.metrics.property" />',
-'label.metrics.scope': '<fmt:message key="label.metrics.scope" />',
-'label.metrics.state': '<fmt:message key="label.metrics.state" />',
-'label.metrics.outofbandmanagementpowerstate': '<fmt:message key="label.metrics.outofbandmanagementpowerstate" />',
-'label.metrics.storagepool': '<fmt:message key="label.metrics.storagepool" />',
-'label.metrics.vm.name': '<fmt:message key="label.metrics.vm.name" />',
-'label.migrate.instance.to': '<fmt:message key="label.migrate.instance.to" />',
-'label.migrate.instance.to.host': '<fmt:message key="label.migrate.instance.to.host" />',
-'label.migrate.instance.to.ps': '<fmt:message key="label.migrate.instance.to.ps" />',
-'label.migrate.router.to': '<fmt:message key="label.migrate.router.to" />',
-'label.migrate.systemvm.to': '<fmt:message key="label.migrate.systemvm.to" />',
-'label.migrate.to.host': '<fmt:message key="label.migrate.to.host" />',
-'label.migrate.to.storage': '<fmt:message key="label.migrate.to.storage" />',
-'label.migrate.volume.to.primary.storage': '<fmt:message key="label.migrate.volume.to.primary.storage" />',
-'label.minimum': '<fmt:message key="label.minimum" />',
-'label.minute.past.hour': '<fmt:message key="label.minute.past.hour" />',
-'label.monday': '<fmt:message key="label.monday" />',
-'label.monthly': '<fmt:message key="label.monthly" />',
-'label.more.templates': '<fmt:message key="label.more.templates" />',
-'label.move.down.row': '<fmt:message key="label.move.down.row" />',
-'label.move.to.bottom': '<fmt:message key="label.move.to.bottom" />',
-'label.move.to.top': '<fmt:message key="label.move.to.top" />',
-'label.move.up.row': '<fmt:message key="label.move.up.row" />',
-'label.my.account': '<fmt:message key="label.my.account" />',
-'label.my.network': '<fmt:message key="label.my.network" />',
-'label.my.templates': '<fmt:message key="label.my.templates" />',
-'label.name': '<fmt:message key="label.name" />',
-'label.name.optional': '<fmt:message key="label.name.optional" />',
-'label.nat.port.range': '<fmt:message key="label.nat.port.range" />',
-'label.netmask': '<fmt:message key="label.netmask" />',
-'label.netScaler': '<fmt:message key="label.netScaler" />',
-'label.network.ACL': '<fmt:message key="label.network.ACL" />',
-'label.network.ACLs': '<fmt:message key="label.network.ACLs" />',
-'label.network.ACL.total': '<fmt:message key="label.network.ACL.total" />',
-'label.network.desc': '<fmt:message key="label.network.desc" />',
-'label.network.device': '<fmt:message key="label.network.device" />',
-'label.network.device.type': '<fmt:message key="label.network.device.type" />',
-'label.network.domain': '<fmt:message key="label.network.domain" />',
-'label.network.domain.text': '<fmt:message key="label.network.domain.text" />',
-'label.network': '<fmt:message key="label.network" />',
-'label.network.id': '<fmt:message key="label.network.id" />',
-'label.networking.and.security': '<fmt:message key="label.networking.and.security" />',
-'label.network.label.display.for.blank.value': '<fmt:message key="label.network.label.display.for.blank.value" />',
-'label.network.limits': '<fmt:message key="label.network.limits" />',
-'label.network.name': '<fmt:message key="label.network.name" />',
-'label.network.offering.display.text': '<fmt:message key="label.network.offering.display.text" />',
-'label.network.offering': '<fmt:message key="label.network.offering" />',
-'label.network.offering.id': '<fmt:message key="label.network.offering.id" />',
-'label.network.offering.name': '<fmt:message key="label.network.offering.name" />',
-'label.network.rate': '<fmt:message key="label.network.rate" />',
-'label.network.rate.megabytes': '<fmt:message key="label.network.rate.megabytes" />',
-'label.network.read': '<fmt:message key="label.network.read" />',
-'label.network.service.providers': '<fmt:message key="label.network.service.providers" />',
-'label.networks': '<fmt:message key="label.networks" />',
-'label.network.type': '<fmt:message key="label.network.type" />',
-'label.network.write': '<fmt:message key="label.network.write" />',
-'label.new': '<fmt:message key="label.new" />',
-'label.new.password': '<fmt:message key="label.new.password" />',
-'label.new.project': '<fmt:message key="label.new.project" />',
-'label.new.vm': '<fmt:message key="label.new.vm" />',
-'label.next': '<fmt:message key="label.next" />',
-'label.nexusVswitch': '<fmt:message key="label.nexusVswitch" />',
-'label.nfs': '<fmt:message key="label.nfs" />',
-'label.nfs.server': '<fmt:message key="label.nfs.server" />',
-'label.nfs.storage': '<fmt:message key="label.nfs.storage" />',
-'label.nic.adapter.type': '<fmt:message key="label.nic.adapter.type" />',
-'label.nicira.controller.address': '<fmt:message key="label.nicira.controller.address" />',
-'label.nicira.l2gatewayserviceuuid': '<fmt:message key="label.nicira.l2gatewayserviceuuid" />',
-'label.nicira.l3gatewayserviceuuid': '<fmt:message key="label.nicira.l3gatewayserviceuuid" />',
-'label.nicira.transportzoneuuid': '<fmt:message key="label.nicira.transportzoneuuid" />',
-'label.brocade.vcs.address': '<fmt:message key="label.brocade.vcs.address" />',
-'label.nics': '<fmt:message key="label.nics" />',
-'label.no.actions': '<fmt:message key="label.no.actions" />',
-'label.no.alerts': '<fmt:message key="label.no.alerts" />',
-'label.no.data': '<fmt:message key="label.no.data" />',
-'label.no.errors': '<fmt:message key="label.no.errors" />',
-'label.no': '<fmt:message key="label.no" />',
-'label.no.isos': '<fmt:message key="label.no.isos" />',
-'label.no.items': '<fmt:message key="label.no.items" />',
-'label.none': '<fmt:message key="label.none" />',
-'label.no.security.groups': '<fmt:message key="label.no.security.groups" />',
-'label.not.found': '<fmt:message key="label.not.found" />',
-'label.no.thanks': '<fmt:message key="label.no.thanks" />',
-'label.notifications': '<fmt:message key="label.notifications" />',
-'label.number.of.system.vms': '<fmt:message key="label.number.of.system.vms" />',
-'label.number.of.virtual.routers': '<fmt:message key="label.number.of.virtual.routers" />',
-'label.num.cpu.cores': '<fmt:message key="label.num.cpu.cores" />',
-'label.numretries': '<fmt:message key="label.numretries" />',
-'label.ocfs2': '<fmt:message key="label.ocfs2" />',
-'label.offer.ha': '<fmt:message key="label.offer.ha" />',
-'label.ok': '<fmt:message key="label.ok" />',
-'label.optional': '<fmt:message key="label.optional" />',
-'label.order': '<fmt:message key="label.order" />',
-'label.os.preference': '<fmt:message key="label.os.preference" />',
-'label.os.type': '<fmt:message key="label.os.type" />',
-'label.owned.public.ips': '<fmt:message key="label.owned.public.ips" />',
-'label.owner.account': '<fmt:message key="label.owner.account" />',
-'label.owner.domain': '<fmt:message key="label.owner.domain" />',
-'label.PA.log.profile': '<fmt:message key="label.PA.log.profile" />',
-'label.PA.threat.profile': '<fmt:message key="label.PA.threat.profile" />',
-'label.parent.domain': '<fmt:message key="label.parent.domain" />',
-'label.password.enabled': '<fmt:message key="label.password.enabled" />',
-'label.password': '<fmt:message key="label.password" />',
-'label.path': '<fmt:message key="label.path" />',
-'label.perfect.forward.secrecy': '<fmt:message key="label.perfect.forward.secrecy" />',
-'label.physical.network': '<fmt:message key="label.physical.network" />',
-'label.physical.network.ID': '<fmt:message key="label.physical.network.ID" />',
-'label.PING.CIFS.password': '<fmt:message key="label.PING.CIFS.password" />',
-'label.PING.CIFS.username': '<fmt:message key="label.PING.CIFS.username" />',
-'label.PING.dir': '<fmt:message key="label.PING.dir" />',
-'label.PING.storage.IP': '<fmt:message key="label.PING.storage.IP" />',
-'label.please.wait': '<fmt:message key="label.please.wait" />',
-'label.plugin.details': '<fmt:message key="label.plugin.details" />',
-'label.plugins': '<fmt:message key="label.plugins" />',
-'label.pod': '<fmt:message key="label.pod" />',
-'label.pod.name': '<fmt:message key="label.pod.name" />',
-'label.pods': '<fmt:message key="label.pods" />',
-'label.port.forwarding': '<fmt:message key="label.port.forwarding" />',
-'label.port.forwarding.policies': '<fmt:message key="label.port.forwarding.policies" />',
-'label.port.range': '<fmt:message key="label.port.range" />',
-'label.powerstate': '<fmt:message key="label.powerstate" />',
-'label.outofbandmanagement': '<fmt:message key="label.outofbandmanagement" />',
-'label.outofbandmanagement.action.issue': '<fmt:message key="label.outofbandmanagement.action.issue" />',
-'label.outofbandmanagement.action': '<fmt:message key="label.outofbandmanagement.action" />',
-'label.outofbandmanagement.address': '<fmt:message key="label.outofbandmanagement.address" />',
-'label.outofbandmanagement.changepassword': '<fmt:message key="label.outofbandmanagement.changepassword" />',
-'label.outofbandmanagement.configure': '<fmt:message key="label.outofbandmanagement.configure" />',
-'label.outofbandmanagement.driver': '<fmt:message key="label.outofbandmanagement.driver" />',
-'label.outofbandmanagement.disable': '<fmt:message key="label.outofbandmanagement.disable" />',
-'label.outofbandmanagement.enable': '<fmt:message key="label.outofbandmanagement.enable" />',
-'label.outofbandmanagement.password': '<fmt:message key="label.outofbandmanagement.password" />',
-'label.outofbandmanagement.reenterpassword': '<fmt:message key="label.outofbandmanagement.reenterpassword" />',
-'label.outofbandmanagement.port': '<fmt:message key="label.outofbandmanagement.port" />',
-'label.outofbandmanagement.timeout': '<fmt:message key="label.outofbandmanagement.timeout" />',
-'label.outofbandmanagement.username': '<fmt:message key="label.outofbandmanagement.username" />',
-'message.outofbandmanagement.changepassword': '<fmt:message key="message.outofbandmanagement.changepassword" />',
-'message.outofbandmanagement.configure': '<fmt:message key="message.outofbandmanagement.configure" />',
-'message.outofbandmanagement.disable': '<fmt:message key="message.outofbandmanagement.disable" />',
-'message.outofbandmanagement.enable': '<fmt:message key="message.outofbandmanagement.enable" />',
-'message.outofbandmanagement.issue': '<fmt:message key="message.outofbandmanagement.issue" />',
-'message.outofbandmanagement.action.maintenance': '<fmt:message key="message.outofbandmanagement.action.maintenance" />',
-'label.PreSetup': '<fmt:message key="label.PreSetup" />',
-'label.prev': '<fmt:message key="label.prev" />',
-'label.previous': '<fmt:message key="label.previous" />',
-'label.primary.allocated': '<fmt:message key="label.primary.allocated" />',
-'label.primary.network': '<fmt:message key="label.primary.network" />',
-'label.primary.storage.count': '<fmt:message key="label.primary.storage.count" />',
-'label.primary.storage': '<fmt:message key="label.primary.storage" />',
-'label.primary.storage.limits': '<fmt:message key="label.primary.storage.limits" />',
-'label.primary.used': '<fmt:message key="label.primary.used" />',
-'label.private.Gateway': '<fmt:message key="label.private.Gateway" />',
-'label.private.interface': '<fmt:message key="label.private.interface" />',
-'label.private.ip': '<fmt:message key="label.private.ip" />',
-'label.private.ip.range': '<fmt:message key="label.private.ip.range" />',
-'label.private.ips': '<fmt:message key="label.private.ips" />',
-'label.privatekey': '<fmt:message key="label.privatekey" />',
-'label.private.network': '<fmt:message key="label.private.network" />',
-'label.private.port': '<fmt:message key="label.private.port" />',
-'label.private.zone': '<fmt:message key="label.private.zone" />',
-'label.project.dashboard': '<fmt:message key="label.project.dashboard" />',
-'label.project': '<fmt:message key="label.project" />',
-'label.project.id': '<fmt:message key="label.project.id" />',
-'label.project.invite': '<fmt:message key="label.project.invite" />',
-'label.project.name': '<fmt:message key="label.project.name" />',
-'label.projects': '<fmt:message key="label.projects" />',
-'label.project.view': '<fmt:message key="label.project.view" />',
-'label.protocol': '<fmt:message key="label.protocol" />',
-'label.provider': '<fmt:message key="label.provider" />',
-'label.providers': '<fmt:message key="label.providers" />',
-'label.public': '<fmt:message key="label.public" />',
-'label.public.interface': '<fmt:message key="label.public.interface" />',
-'label.public.ip': '<fmt:message key="label.public.ip" />',
-'label.public.ips': '<fmt:message key="label.public.ips" />',
-'label.public.network': '<fmt:message key="label.public.network" />',
-'label.public.port': '<fmt:message key="label.public.port" />',
-'label.public.zone': '<fmt:message key="label.public.zone" />',
-'label.purpose': '<fmt:message key="label.purpose" />',
-'label.Pxe.server.type': '<fmt:message key="label.Pxe.server.type" />',
-'label.quickview': '<fmt:message key="label.quickview" />',
-'label.usage.type': '<fmt:message key="label.usage.type" />',
-'label.usage.unit': '<fmt:message key="label.usage.unit" />',
-'label.quota.value': '<fmt:message key="label.quota.value" />',
-'label.quota.description': '<fmt:message key="label.quota.description" />',
-'label.quota.configuration': '<fmt:message key="label.quota.configuration" />',
-'label.quota.configure': '<fmt:message key="label.quota.configure" />',
-'label.quota.remove': '<fmt:message key="label.quota.remove" />',
-'label.quota.totalusage': '<fmt:message key="label.quota.totalusage" />',
-'label.quota.balance': '<fmt:message key="label.quota.balance" />',
-'label.quota.summary': '<fmt:message key="label.quota.summary" />',
-'label.quota.fullsummary': '<fmt:message key="label.quota.fullsummary" />',
-'label.quota.minbalance': '<fmt:message key="label.quota.minbalance" />',
-'label.quota.enforcequota': '<fmt:message key="label.quota.enforcequota" />',
-'label.quota.tariff': '<fmt:message key="label.quota.tariff" />',
-'label.quota.state': '<fmt:message key="label.quota.state" />',
-'label.quota.startdate': '<fmt:message key="label.quota.startdate" />',
-'label.quota.enddate': '<fmt:message key="label.quota.enddate" />',
-'label.quota.total': '<fmt:message key="label.quota.total" />',
-'label.quota.type.name': '<fmt:message key="label.quota.type.name" />',
-'label.quota.type.unit': '<fmt:message key="label.quota.type.unit" />',
-'label.quota.usage': '<fmt:message key="label.quota.usage" />',
-'label.quota.startquota': '<fmt:message key="label.quota.startquota" />',
-'label.quota.endquota': '<fmt:message key="label.quota.endquota" />',
-'label.quota.statement.quota': '<fmt:message key="label.quota.statement.quota" />',
-'label.quota.add.credits': '<fmt:message key="label.quota.add.credits" />',
-'label.quota.date': '<fmt:message key="label.quota.date" />',
-'label.quota.dates': '<fmt:message key="label.quota.dates" />',
-'label.quota.credit': '<fmt:message key="label.quota.credit" />',
-'label.quota.credits': '<fmt:message key="label.quota.credits" />',
-'label.quota.value': '<fmt:message key="label.quota.value" />',
-'label.quota.statement.bydates': '<fmt:message key="label.quota.statement.bydates" />',
-'label.quota.email.template': '<fmt:message key="label.quota.email.template" />',
-'label.quota.statement': '<fmt:message key="label.quota.statement" />',
-'label.quota.statement.balance': '<fmt:message key="label.quota.statement.balance" />',
-'label.quota.statement.tariff': '<fmt:message key="label.quota.statement.tariff" />',
-'label.quota.statement.balance': '<fmt:message key="label.quota.statement.balance" />',
-'label.quota.statement.tariff': '<fmt:message key="label.quota.statement.tariff" />',
-'label.quota.tariff.edit': '<fmt:message key="label.quota.tariff.edit" />',
-'label.quota.tariff.effectivedate': '<fmt:message key="label.quota.tariff.effectivedate" />',
-'label.quota.email.subject': '<fmt:message key="label.quota.email.subject" />',
-'label.quota.tariff.value': '<fmt:message key="label.quota.tariff.value" />',
-'label.quota.email.subject': '<fmt:message key="label.quota.email.subject" />',
-'label.quota.email.body': '<fmt:message key="label.quota.email.body" />',
-'label.quota.email.lastupdated': '<fmt:message key="label.quota.email.lastupdated" />',
-'label.rbd': '<fmt:message key="label.rbd" />',
-'label.rbd.monitor': '<fmt:message key="label.rbd.monitor" />',
-'label.rbd.pool': '<fmt:message key="label.rbd.pool" />',
-'label.rbd.id': '<fmt:message key="label.rbd.id" />',
-'label.rbd.secret': '<fmt:message key="label.rbd.secret" />',
-'label.reboot': '<fmt:message key="label.reboot" />',
-'label.recent.errors': '<fmt:message key="label.recent.errors" />',
-'label.redundant.router.capability': '<fmt:message key="label.redundant.router.capability" />',
-'label.redundant.router': '<fmt:message key="label.redundant.router" />',
-'label.redundant.state': '<fmt:message key="label.redundant.state" />',
-'label.refresh': '<fmt:message key="label.refresh" />',
-'label.region': '<fmt:message key="label.region" />',
-'label.related': '<fmt:message key="label.related" />',
-'label.remind.later': '<fmt:message key="label.remind.later" />',
-'label.remove.ACL': '<fmt:message key="label.remove.ACL" />',
-'label.remove.egress.rule': '<fmt:message key="label.remove.egress.rule" />',
-'label.remove.from.load.balancer': '<fmt:message key="label.remove.from.load.balancer" />',
-'label.remove.ingress.rule': '<fmt:message key="label.remove.ingress.rule" />',
-'label.remove.ip.range': '<fmt:message key="label.remove.ip.range" />',
-'label.remove.pf': '<fmt:message key="label.remove.pf" />',
-'label.remove.project.account': '<fmt:message key="label.remove.project.account" />',
-'label.remove.region': '<fmt:message key="label.remove.region" />',
-'label.remove.rule': '<fmt:message key="label.remove.rule" />',
-'label.remove.static.nat.rule': '<fmt:message key="label.remove.static.nat.rule" />',
-'label.remove.static.route': '<fmt:message key="label.remove.static.route" />',
-'label.remove.tier': '<fmt:message key="label.remove.tier" />',
-'label.remove.vm.from.lb': '<fmt:message key="label.remove.vm.from.lb" />',
-'label.remove.vpc': '<fmt:message key="label.remove.vpc" />',
-'label.removing': '<fmt:message key="label.removing" />',
-'label.removing.user': '<fmt:message key="label.removing.user" />',
-'label.required': '<fmt:message key="label.required" />',
-'label.reserved.system.gateway': '<fmt:message key="label.reserved.system.gateway" />',
-'label.reserved.system.ip': '<fmt:message key="label.reserved.system.ip" />',
-'label.reserved.system.netmask': '<fmt:message key="label.reserved.system.netmask" />',
-'label.reset.VPN.connection': '<fmt:message key="label.reset.VPN.connection" />',
-'label.resize.new.offering.id': '<fmt:message key="label.resize.new.offering.id" />',
-'label.resize.new.size': '<fmt:message key="label.resize.new.size" />',
-'label.resize.shrink.ok': '<fmt:message key="label.resize.shrink.ok" />',
-'label.resource': '<fmt:message key="label.resource" />',
-'label.resource.limits': '<fmt:message key="label.resource.limits" />',
-'label.resources': '<fmt:message key="label.resources" />',
-'label.resource.state': '<fmt:message key="label.resource.state" />',
-'label.restart.network': '<fmt:message key="label.restart.network" />',
-'label.restart.required': '<fmt:message key="label.restart.required" />',
-'label.restart.vpc': '<fmt:message key="label.restart.vpc" />',
-'label.redundant.vpc': '<fmt:message key="label.redundant.vpc" />',
-'message.restart.vpc.remark': '<fmt:message key="message.restart.vpc.remark" />',
-'label.restore': '<fmt:message key="label.restore" />',
-'label.retry.interval': '<fmt:message key="label.retry.interval" />',
-'label.review': '<fmt:message key="label.review" />',
-'label.revoke.project.invite': '<fmt:message key="label.revoke.project.invite" />',
-'label.permission': '<fmt:message key="label.permission" />',
-'label.role': '<fmt:message key="label.role" />',
-'label.roles': '<fmt:message key="label.roles" />',
-'label.roletype': '<fmt:message key="label.roletype" />',
-'label.add.role': '<fmt:message key="label.add.role" />',
-'label.edit.role': '<fmt:message key="label.edit.role" />',
-'label.delete.role': '<fmt:message key="label.delete.role" />',
-'message.role.ordering.fail': '<fmt:message key="message.role.ordering.fail" />',
-'label.root.disk.controller': '<fmt:message key="label.root.disk.controller" />',
-'label.root.disk.offering': '<fmt:message key="label.root.disk.offering" />',
-'message.configure.firewall.rules.allow.traffic': '<fmt:message key="message.configure.firewall.rules.allow.traffic" />',
-'message.configure.firewall.rules.block.traffic': '<fmt:message key="message.configure.firewall.rules.block.traffic" />',
-};
-</script>
diff --git a/ui/dictionary2.jsp b/ui/dictionary2.jsp
deleted file mode 100644
index f919b15..0000000
--- a/ui/dictionary2.jsp
+++ /dev/null
@@ -1,1131 +0,0 @@
-<%--
-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.
---%>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
-<c:if test="${!empty cookie.lang}">
-  <fmt:setLocale value="${cookie.lang.value}" />
-</c:if>
-<fmt:setBundle basename="resources/messages"/>
-<% long now = System.currentTimeMillis(); %>
-<script type="text/javascript">
- $.extend(dictionary, {
-'label.add.ldap.account': '<fmt:message key="label.add.ldap.account" />',
-'label.rule': '<fmt:message key="label.rule" />',
-'label.rules': '<fmt:message key="label.rules" />',
-'label.running.vms': '<fmt:message key="label.running.vms" />',
-'label.s3.access_key': '<fmt:message key="label.s3.access_key" />',
-'label.s3.bucket': '<fmt:message key="label.s3.bucket" />',
-'label.s3.connection_timeout': '<fmt:message key="label.s3.connection_timeout" />',
-'label.s3.endpoint': '<fmt:message key="label.s3.endpoint" />',
-'label.s3.max_error_retry': '<fmt:message key="label.s3.max_error_retry" />',
-'label.s3.secret_key': '<fmt:message key="label.s3.secret_key" />',
-'label.s3.socket_timeout': '<fmt:message key="label.s3.socket_timeout" />',
-'label.s3.use_https': '<fmt:message key="label.s3.use_https" />',
-'label.saturday': '<fmt:message key="label.saturday" />',
-'label.save.and.continue': '<fmt:message key="label.save.and.continue" />',
-'label.save': '<fmt:message key="label.save" />',
-'label.saving.processing': '<fmt:message key="label.saving.processing" />',
-'label.scope': '<fmt:message key="label.scope" />',
-'label.search': '<fmt:message key="label.search" />',
-'label.secondary.storage.count': '<fmt:message key="label.secondary.storage.count" />',
-'label.secondary.storage': '<fmt:message key="label.secondary.storage" />',
-'label.secondary.storage.limits': '<fmt:message key="label.secondary.storage.limits" />',
-'label.secondary.storage.vm' : '<fmt:message key="label.secondary.storage.vm" />',
-'label.secondary.used': '<fmt:message key="label.secondary.used" />',
-'label.secret.key': '<fmt:message key="label.secret.key" />',
-'label.security.group': '<fmt:message key="label.security.group" />',
-'label.security.group.name': '<fmt:message key="label.security.group.name" />',
-'label.security.groups.enabled': '<fmt:message key="label.security.groups.enabled" />',
-'label.security.groups': '<fmt:message key="label.security.groups" />',
-'label.select.a.template': '<fmt:message key="label.select.a.template" />',
-'label.select.a.zone': '<fmt:message key="label.select.a.zone" />',
-'label.select': '<fmt:message key="label.select" />',
-'label.select.instance': '<fmt:message key="label.select.instance" />',
-'label.select.instance.to.attach.volume.to': '<fmt:message key="label.select.instance.to.attach.volume.to" />',
-'label.select.iso.or.template': '<fmt:message key="label.select.iso.or.template" />',
-'label.select.offering': '<fmt:message key="label.select.offering" />',
-'label.select.project': '<fmt:message key="label.select.project" />',
-'label.select.tier': '<fmt:message key="label.select.tier" />',
-'label.select-view': '<fmt:message key="label.select-view" />',
-'label.select.vm.for.static.nat': '<fmt:message key="label.select.vm.for.static.nat" />',
-'label.sent': '<fmt:message key="label.sent" />',
-'label.server': '<fmt:message key="label.server" />',
-'label.service.capabilities': '<fmt:message key="label.service.capabilities" />',
-'label.service.offering': '<fmt:message key="label.service.offering" />',
-'label.session.expired': '<fmt:message key="label.session.expired" />',
-'label.setup': '<fmt:message key="label.setup" />',
-'label.shared': '<fmt:message key="label.shared" />',
-'label.SharedMountPoint': '<fmt:message key="label.SharedMountPoint" />',
-'label.show.ingress.rule': '<fmt:message key="label.show.ingress.rule" />',
-'label.shutdown.provider': '<fmt:message key="label.shutdown.provider" />',
-'label.site.to.site.VPN': '<fmt:message key="label.site.to.site.VPN" />',
-'label.size': '<fmt:message key="label.size" />',
-'label.skip.guide': '<fmt:message key="label.skip.guide" />',
-'label.snapshot': '<fmt:message key="label.snapshot" />',
-'label.snapshot.limits': '<fmt:message key="label.snapshot.limits" />',
-'label.snapshot.name': '<fmt:message key="label.snapshot.name" />',
-'label.snapshot.schedule': '<fmt:message key="label.snapshot.schedule" />',
-'label.snapshot.s': '<fmt:message key="label.snapshot.s" />',
-'label.snapshots': '<fmt:message key="label.snapshots" />',
-'label.source': '<fmt:message key="label.source" />',
-'label.source.nat': '<fmt:message key="label.source.nat" />',
-'label.specify.IP.ranges': '<fmt:message key="label.specify.IP.ranges" />',
-'label.specify.vlan': '<fmt:message key="label.specify.vlan" />',
-'label.specify.vxlan': '<fmt:message key="label.specify.vxlan" />',
-'label.SR.name': '<fmt:message key="label.SR.name" />',
-'label.srx': '<fmt:message key="label.srx" />',
-'label.PA': '<fmt:message key="label.PA" />',
-'label.start.IP': '<fmt:message key="label.start.IP" />',
-'label.start.port': '<fmt:message key="label.start.port" />',
-'label.start.reserved.system.IP': '<fmt:message key="label.start.reserved.system.IP" />',
-'label.start.vlan': '<fmt:message key="label.start.vlan" />',
-'label.start.vxlan': '<fmt:message key="label.start.vxlan" />',
-'label.state': '<fmt:message key="label.state" />',
-'label.static.nat': '<fmt:message key="label.static.nat" />',
-'label.static.nat.to': '<fmt:message key="label.static.nat.to" />',
-'label.static.nat.vm.details': '<fmt:message key="label.static.nat.vm.details" />',
-'label.statistics': '<fmt:message key="label.statistics" />',
-'label.status': '<fmt:message key="label.status" />',
-'label.step.1': '<fmt:message key="label.step.1" />',
-'label.step.1.title': '<fmt:message key="label.step.1.title" />',
-'label.step.2': '<fmt:message key="label.step.2" />',
-'label.step.2.title': '<fmt:message key="label.step.2.title" />',
-'label.step.3': '<fmt:message key="label.step.3" />',
-'label.step.3.title': '<fmt:message key="label.step.3.title" />',
-'label.step.4': '<fmt:message key="label.step.4" />',
-'label.step.4.title': '<fmt:message key="label.step.4.title" />',
-'label.step.5': '<fmt:message key="label.step.5" />',
-'label.step.5.title': '<fmt:message key="label.step.5.title" />',
-'label.stickiness': '<fmt:message key="label.stickiness" />',
-'label.sticky.cookie-name': '<fmt:message key="label.sticky.cookie-name" />',
-'label.sticky.domain': '<fmt:message key="label.sticky.domain" />',
-'label.sticky.expire': '<fmt:message key="label.sticky.expire" />',
-'label.sticky.holdtime': '<fmt:message key="label.sticky.holdtime" />',
-'label.sticky.indirect': '<fmt:message key="label.sticky.indirect" />',
-'label.sticky.length': '<fmt:message key="label.sticky.length" />',
-'label.sticky.mode': '<fmt:message key="label.sticky.mode" />',
-'label.sticky.nocache': '<fmt:message key="label.sticky.nocache" />',
-'label.sticky.postonly': '<fmt:message key="label.sticky.postonly" />',
-'label.sticky.prefix': '<fmt:message key="label.sticky.prefix" />',
-'label.sticky.request-learn': '<fmt:message key="label.sticky.request-learn" />',
-'label.sticky.tablesize': '<fmt:message key="label.sticky.tablesize" />',
-'label.stop': '<fmt:message key="label.stop" />',
-'label.stopped.vms': '<fmt:message key="label.stopped.vms" />',
-'label.storage': '<fmt:message key="label.storage" />',
-'label.storage.tags': '<fmt:message key="label.storage.tags" />',
-'label.storage.type': '<fmt:message key="label.storage.type" />',
-'label.qos.type': '<fmt:message key="label.qos.type" />',
-'label.subdomain.access': '<fmt:message key="label.subdomain.access" />',
-'label.submit': '<fmt:message key="label.submit" />',
-'label.submitted.by': '<fmt:message key="label.submitted.by" />',
-'label.succeeded': '<fmt:message key="label.succeeded" />',
-'label.sunday': '<fmt:message key="label.sunday" />',
-'label.super.cidr.for.guest.networks': '<fmt:message key="label.super.cidr.for.guest.networks" />',
-'label.supported.services': '<fmt:message key="label.supported.services" />',
-'label.supported.source.NAT.type': '<fmt:message key="label.supported.source.NAT.type" />',
-'label.suspend.project': '<fmt:message key="label.suspend.project" />',
-'label.system.capacity': '<fmt:message key="label.system.capacity" />',
-'label.system.offering': '<fmt:message key="label.system.offering" />',
-'label.system.service.offering': '<fmt:message key="label.system.service.offering" />',
-'label.system.vm': '<fmt:message key="label.system.vm" />',
-'label.system.vms': '<fmt:message key="label.system.vms" />',
-'label.system.vm.type': '<fmt:message key="label.system.vm.type" />',
-'label.system.wide.capacity': '<fmt:message key="label.system.wide.capacity" />',
-'label.tagged': '<fmt:message key="label.tagged" />',
-'label.tags': '<fmt:message key="label.tags" />',
-'label.target.iqn': '<fmt:message key="label.target.iqn" />',
-'label.task.completed': '<fmt:message key="label.task.completed" />',
-'label.template': '<fmt:message key="label.template" />',
-'label.template.limits': '<fmt:message key="label.template.limits" />',
-'label.TFTP.dir': '<fmt:message key="label.TFTP.dir" />',
-'label.theme.default': '<fmt:message key="label.theme.default" />',
-'label.theme.grey': '<fmt:message key="label.theme.grey" />',
-'label.theme.lightblue': '<fmt:message key="label.theme.lightblue" />',
-'label.thursday': '<fmt:message key="label.thursday" />',
-'label.tier.details': '<fmt:message key="label.tier.details" />',
-'label.tier': '<fmt:message key="label.tier" />',
-'label.time': '<fmt:message key="label.time" />',
-'label.timeout': '<fmt:message key="label.timeout" />',
-'label.timeout.in.second': '<fmt:message key="label.timeout.in.second" />',
-'label.time.zone': '<fmt:message key="label.time.zone" />',
-'label.timezone': '<fmt:message key="label.timezone" />',
-'label.token': '<fmt:message key="label.token" />',
-'label.total.cpu': '<fmt:message key="label.total.cpu" />',
-'label.total.of.ip': '<fmt:message key="label.total.of.ip" />',
-'label.total.of.vm': '<fmt:message key="label.total.of.vm" />',
-'label.total.vms': '<fmt:message key="label.total.vms" />',
-'label.traffic.label': '<fmt:message key="label.traffic.label" />',
-'label.traffic.type': '<fmt:message key="label.traffic.type" />',
-'label.tuesday': '<fmt:message key="label.tuesday" />',
-'label.type': '<fmt:message key="label.type" />',
-'label.type.id': '<fmt:message key="label.type.id" />',
-'label.unavailable': '<fmt:message key="label.unavailable" />',
-'label.unlimited': '<fmt:message key="label.unlimited" />',
-'label.untagged': '<fmt:message key="label.untagged" />',
-'label.update.project.resources': '<fmt:message key="label.update.project.resources" />',
-'label.update.ssl.cert': '<fmt:message key="label.update.ssl.cert" />',
-'label.update.ssl': '<fmt:message key="label.update.ssl" />',
-'label.updating': '<fmt:message key="label.updating" />',
-'label.upload': '<fmt:message key="label.upload" />',
-'label.upload.from.local': '<fmt:message key="label.upload.from.local" />',
-'label.upload.template.from.local': '<fmt:message key="label.upload.template.from.local" />',
-'label.upload.volume': '<fmt:message key="label.upload.volume" />',
-'label.upload.volume.from.local': '<fmt:message key="label.upload.volume.from.local" />',
-'label.upload.volume.from.url': '<fmt:message key="label.upload.volume.from.url" />',
-'label.url': '<fmt:message key="label.url" />',
-'label.usage.interface': '<fmt:message key="label.usage.interface" />',
-'label.used': '<fmt:message key="label.used" />',
-'label.user': '<fmt:message key="label.user" />',
-'label.username': '<fmt:message key="label.username" />',
-'label.users': '<fmt:message key="label.users" />',
-'label.use.vm.ip': '<fmt:message key="label.use.vm.ip" />',
-'label.value': '<fmt:message key="label.value" />',
-'label.vcdcname': '<fmt:message key="label.vcdcname" />',
-'label.vnet': '<fmt:message key="label.vnet" />',
-'label.vnet.id': '<fmt:message key="label.vnet.id" />',
-'label.vcenter.cluster': '<fmt:message key="label.vcenter.cluster" />',
-'label.vcenter.datacenter': '<fmt:message key="label.vcenter.datacenter" />',
-'label.vcenter.datastore': '<fmt:message key="label.vcenter.datastore" />',
-'label.vcenter.host': '<fmt:message key="label.vcenter.host" />',
-'label.vcenter.password': '<fmt:message key="label.vcenter.password" />',
-'label.vcenter.username': '<fmt:message key="label.vcenter.username" />',
-'label.vcipaddress': '<fmt:message key="label.vcipaddress" />',
-'label.version': '<fmt:message key="label.version" />',
-'label.view.all': '<fmt:message key="label.view.all" />',
-'label.view.console': '<fmt:message key="label.view.console" />',
-'label.view': '<fmt:message key="label.view" />',
-'label.viewing': '<fmt:message key="label.viewing" />',
-'label.virtual.appliance': '<fmt:message key="label.virtual.appliance" />',
-'label.virtual.appliances': '<fmt:message key="label.virtual.appliances" />',
-'label.virtual.machines': '<fmt:message key="label.virtual.machines" />',
-'label.virtual.network': '<fmt:message key="label.virtual.network" />',
-'label.virtual.router': '<fmt:message key="label.virtual.router" />',
-'label.virtual.routers': '<fmt:message key="label.virtual.routers" />',
-'label.vlan': '<fmt:message key="label.vlan" />',
-'label.vlan.id': '<fmt:message key="label.vlan.id" />',
-'label.vlan.only': '<fmt:message key="label.vlan.only" />',
-'label.vlan.range': '<fmt:message key="label.vlan.range" />',
-'label.vxlan': '<fmt:message key="label.vxlan" />',
-'label.vxlan.id': '<fmt:message key="label.vxlan.id" />',
-'label.vxlan.range': '<fmt:message key="label.vxlan.range" />',
-'label.vm.add': '<fmt:message key="label.vm.add" />',
-'label.vm.destroy': '<fmt:message key="label.vm.destroy" />',
-'label.vm.display.name': '<fmt:message key="label.vm.display.name" />',
-'label.VMFS.datastore': '<fmt:message key="label.VMFS.datastore" />',
-'label.vmfs': '<fmt:message key="label.vmfs" />',
-'label.vm.name': '<fmt:message key="label.vm.name" />',
-'label.vm.reboot': '<fmt:message key="label.vm.reboot" />',
-'label.vms': '<fmt:message key="label.vms" />',
-'label.VMs.in.tier': '<fmt:message key="label.VMs.in.tier" />',
-'label.vmsnapshot.current': '<fmt:message key="label.vmsnapshot.current" />',
-'label.vmsnapshot': '<fmt:message key="label.vmsnapshot" />',
-'label.vmsnapshot.memory': '<fmt:message key="label.vmsnapshot.memory" />',
-'label.vmsnapshot.parentname': '<fmt:message key="label.vmsnapshot.parentname" />',
-'label.vmsnapshot.type': '<fmt:message key="label.vmsnapshot.type" />',
-'label.vm.start': '<fmt:message key="label.vm.start" />',
-'label.vm.state': '<fmt:message key="label.vm.state" />',
-'label.vm.stop': '<fmt:message key="label.vm.stop" />',
-'label.resetVM': '<fmt:message key="label.resetVM" />',
-'label.vmware.traffic.label': '<fmt:message key="label.vmware.traffic.label" />',
-'label.volgroup': '<fmt:message key="label.volgroup" />',
-'label.volume': '<fmt:message key="label.volume" />',
-'label.volume.limits': '<fmt:message key="label.volume.limits" />',
-'label.volume.name': '<fmt:message key="label.volume.name" />',
-'label.volumes': '<fmt:message key="label.volumes" />',
-'label.vpc': '<fmt:message key="label.vpc" />',
-'label.vpc.id': '<fmt:message key="label.vpc.id" />',
-'label.VPC.router.details': '<fmt:message key="label.VPC.router.details" />',
-'label.VPN.connection': '<fmt:message key="label.VPN.connection" />',
-'label.vpn.customer.gateway': '<fmt:message key="label.vpn.customer.gateway" />',
-'label.VPN.customer.gateway': '<fmt:message key="label.VPN.customer.gateway" />',
-'label.vpn': '<fmt:message key="label.vpn" />',
-'label.VPN.gateway': '<fmt:message key="label.VPN.gateway" />',
-'label.vsmctrlvlanid': '<fmt:message key="label.vsmctrlvlanid" />',
-'label.vsmpktvlanid': '<fmt:message key="label.vsmpktvlanid" />',
-'label.vsmstoragevlanid': '<fmt:message key="label.vsmstoragevlanid" />',
-'label.vsphere.managed': '<fmt:message key="label.vsphere.managed" />',
-'label.waiting': '<fmt:message key="label.waiting" />',
-'label.warn': '<fmt:message key="label.warn" />',
-'label.warning': '<fmt:message key="label.warning" />',
-'label.wednesday': '<fmt:message key="label.wednesday" />',
-'label.weekly': '<fmt:message key="label.weekly" />',
-'label.welcome.cloud.console': '<fmt:message key="label.welcome.cloud.console" />',
-'label.welcome': '<fmt:message key="label.welcome" />',
-'label.what.is.cloudstack': '<fmt:message key="label.what.is.cloudstack" />',
-'label.xenserver.traffic.label': '<fmt:message key="label.xenserver.traffic.label" />',
-'label.yes': '<fmt:message key="label.yes" />',
-'label.zone.details': '<fmt:message key="label.zone.details" />',
-'label.zone': '<fmt:message key="label.zone" />',
-'label.zones': '<fmt:message key="label.zones" />',
-'label.zone.id': '<fmt:message key="label.zone.id" />',
-'label.zone.name': '<fmt:message key="label.zone.name" />',
-'label.zone.step.1.title': '<fmt:message key="label.zone.step.1.title" />',
-'label.zone.step.2.title': '<fmt:message key="label.zone.step.2.title" />',
-'label.zone.step.3.title': '<fmt:message key="label.zone.step.3.title" />',
-'label.zone.step.4.title': '<fmt:message key="label.zone.step.4.title" />',
-'label.zone.wide': '<fmt:message key="label.zone.wide" />',
-'label.ldap.group.name': '<fmt:message key="label.ldap.group.name" />',
-'label.password.reset.confirm': '<fmt:message key="label.password.reset.confirm" />',
-'label.openDaylight': '<fmt:message key="label.openDaylight" />',
-'label.change.affinity': '<fmt:message key="label.change.affinity" />',
-'label.custom.disk.offering': '<fmt:message key="label.custom.disk.offering" />',
-'label.assign.instance.another': '<fmt:message key="label.assign.instance.another" />',
-'label.network.addVM': '<fmt:message key="label.network.addVM" />',
-'label.set.default.NIC': '<fmt:message key="label.set.default.NIC" />',
-'label.Xenserver.Tools.Version61plus': '<fmt:message key="label.Xenserver.Tools.Version61plus" />',
-'label.dynamically.scalable': '<fmt:message key="label.dynamically.scalable" />',
-'label.instance.scaled.up': '<fmt:message key="label.instance.scaled.up" />',
-'label.tag.value': '<fmt:message key="label.tag.value" />',
-'label.tag.key': '<fmt:message key="label.tag.key" />',
-'label.ipv6.address': '<fmt:message key="label.ipv6.address" />',
-'label.ipv6.gateway': '<fmt:message key="label.ipv6.gateway" />',
-'label.ipv6.CIDR': '<fmt:message key="label.ipv6.CIDR" />',
-'label.VPC.limits': '<fmt:message key="label.VPC.limits" />',
-'label.gslb.domain.name': '<fmt:message key="label.gslb.domain.name" />',
-'label.edit.region': '<fmt:message key="label.edit.region" />',
-'label.add.gslb': '<fmt:message key="label.add.gslb" />',
-'label.gslb.servicetype': '<fmt:message key="label.gslb.servicetype" />',
-'label.gslb.details': '<fmt:message key="label.gslb.details" />',
-'label.gslb.delete': '<fmt:message key="label.gslb.delete" />',
-'message.gslb.delete.confirm': '<fmt:message key="message.gslb.delete.confirm" />',
-'label.opendaylight.controllers': '<fmt:message key="label.opendaylight.controllers" />',
-'label.portable.ip.ranges': '<fmt:message key="label.portable.ip.ranges" />',
-'label.add.portable.ip.range': '<fmt:message key="label.add.portable.ip.range" />',
-'label.delete.portable.ip.range': '<fmt:message key="label.delete.portable.ip.range" />',
-'message.portable.ip.delete.confirm': '<fmt:message key="message.portable.ip.delete.confirm" />',
-'label.opendaylight.controllerdetail': '<fmt:message key="label.opendaylight.controllerdetail" />',
-'label.portable.ip.range.details': '<fmt:message key="label.portable.ip.range.details" />',
-'label.portable.ips': '<fmt:message key="label.portable.ips" />',
-'label.gslb.assigned.lb': '<fmt:message key="label.gslb.assigned.lb" />',
-'label.gslb.assigned.lb.more': '<fmt:message key="label.gslb.assigned.lb.more" />',
-'label.gslb.lb.rule': '<fmt:message key="label.gslb.lb.rule" />',
-'label.gslb.lb.details': '<fmt:message key="label.gslb.lb.details" />',
-'label.gslb.lb.remove': '<fmt:message key="label.gslb.lb.remove" />',
-'label.enable.autoscale': '<fmt:message key="label.enable.autoscale" />',
-'label.disable.autoscale': '<fmt:message key="label.disable.autoscale" />',
-'label.min.instances': '<fmt:message key="label.min.instances" />',
-'label.max.instances': '<fmt:message key="label.max.instances" />',
-'label.add.OpenDaylight.device': '<fmt:message key="label.add.OpenDaylight.device" />',
-'label.delete.OpenDaylight.device': '<fmt:message key="label.delete.OpenDaylight.device" />',
-'label.show.advanced.settings': '<fmt:message key="label.show.advanced.settings" />',
-'label.polling.interval.sec': '<fmt:message key="label.polling.interval.sec" />',
-'label.quiet.time.sec': '<fmt:message key="label.quiet.time.sec" />',
-'label.destroy.vm.graceperiod': '<fmt:message key="label.destroy.vm.graceperiod" />',
-'label.SNMP.community': '<fmt:message key="label.SNMP.community" />',
-'label.SNMP.port': '<fmt:message key="label.SNMP.port" />',
-'managed.state': '<fmt:message key="managed.state" />',
-'message.gslb.lb.remove.confirm': '<fmt:message key="message.gslb.lb.remove.confirm" />',
-'message.admin.guide.read': '<fmt:message key="message.admin.guide.read" />',
-'message.tier.required': '<fmt:message key="message.tier.required" />',
-'message.network.addVMNIC': '<fmt:message key="message.network.addVMNIC" />',
-'message.copy.template.confirm': '<fmt:message key="message.copy.template.confirm" />',
-'message.template.copying': '<fmt:message key="message.template.copying" />',
-'message.XSTools61plus.update.failed': '<fmt:message key="message.XSTools61plus.update.failed" />',
-'message.set.default.NIC': '<fmt:message key="message.set.default.NIC" />',
-'message.set.default.NIC.manual': '<fmt:message key="message.set.default.NIC.manual" />',
-'message.acquire.new.ip': '<fmt:message key="message.acquire.new.ip" />',
-'message.no.host.available':'<fmt:message key="message.no.host.available" />',
-'message.network.addVM.desc':'<fmt:message key="message.network.addVM.desc" />',
-'message.acquire.new.ip.vpc': '<fmt:message key="message.acquire.new.ip.vpc" />',
-'message.acquire.public.ip': '<fmt:message key="message.acquire.public.ip" />',
-'message.action.cancel.maintenance': '<fmt:message key="message.action.cancel.maintenance" />',
-'message.action.cancel.maintenance.mode': '<fmt:message key="message.action.cancel.maintenance.mode" />',
-'message.action.change.service.warning.for.instance': '<fmt:message key="message.action.change.service.warning.for.instance" />',
-'message.action.change.service.warning.for.router': '<fmt:message key="message.action.change.service.warning.for.router" />',
-'message.action.delete.cluster': '<fmt:message key="message.action.delete.cluster" />',
-'message.action.delete.disk.offering': '<fmt:message key="message.action.delete.disk.offering" />',
-'message.action.delete.domain': '<fmt:message key="message.action.delete.domain" />',
-'message.action.delete.external.firewall': '<fmt:message key="message.action.delete.external.firewall" />',
-'message.action.delete.external.load.balancer': '<fmt:message key="message.action.delete.external.load.balancer" />',
-'message.action.delete.ingress.rule': '<fmt:message key="message.action.delete.ingress.rule" />',
-'message.action.delete.ISO': '<fmt:message key="message.action.delete.ISO" />',
-'message.action.delete.ISO.for.all.zones': '<fmt:message key="message.action.delete.ISO.for.all.zones" />',
-'message.action.delete.network': '<fmt:message key="message.action.delete.network" />',
-'message.action.delete.nexusVswitch': '<fmt:message key="message.action.delete.nexusVswitch" />',
-'message.action.delete.physical.network': '<fmt:message key="message.action.delete.physical.network" />',
-'message.action.delete.pod': '<fmt:message key="message.action.delete.pod" />',
-'message.action.delete.primary.storage': '<fmt:message key="message.action.delete.primary.storage" />',
-'message.action.delete.secondary.storage': '<fmt:message key="message.action.delete.secondary.storage" />',
-'message.action.delete.security.group': '<fmt:message key="message.action.delete.security.group" />',
-'message.action.delete.service.offering': '<fmt:message key="message.action.delete.service.offering" />',
-'message.action.delete.snapshot': '<fmt:message key="message.action.delete.snapshot" />',
-'message.action.delete.system.service.offering': '<fmt:message key="message.action.delete.system.service.offering" />',
-'message.action.delete.template': '<fmt:message key="message.action.delete.template" />',
-'message.action.delete.template.for.all.zones': '<fmt:message key="message.action.delete.template.for.all.zones" />',
-'message.action.delete.volume': '<fmt:message key="message.action.delete.volume" />',
-'message.action.delete.zone': '<fmt:message key="message.action.delete.zone" />',
-'message.action.destroy.instance': '<fmt:message key="message.action.destroy.instance" />',
-'message.action.destroy.systemvm': '<fmt:message key="message.action.destroy.systemvm" />',
-'message.action.disable.cluster': '<fmt:message key="message.action.disable.cluster" />',
-'message.action.disable.physical.network': '<fmt:message key="message.action.disable.physical.network" />',
-'message.action.disable.pod': '<fmt:message key="message.action.disable.pod" />',
-'message.action.disable.static.NAT': '<fmt:message key="message.action.disable.static.NAT" />',
-'message.action.disable.zone': '<fmt:message key="message.action.disable.zone" />',
-'message.action.download.iso': '<fmt:message key="message.action.download.iso" />',
-'message.action.download.template': '<fmt:message key="message.action.download.template" />',
-'message.action.downloading.template':  '<fmt:message key="message.action.downloading.template" />',
-'message.action.enable.cluster': '<fmt:message key="message.action.enable.cluster" />',
-'message.action.enable.maintenance': '<fmt:message key="message.action.enable.maintenance" />',
-'message.action.enable.physical.network': '<fmt:message key="message.action.enable.physical.network" />',
-'message.action.enable.pod': '<fmt:message key="message.action.enable.pod" />',
-'message.action.enable.zone': '<fmt:message key="message.action.enable.zone" />',
-'message.action.expunge.instance': '<fmt:message key="message.action.expunge.instance" />',
-'message.action.force.reconnect': '<fmt:message key="message.action.force.reconnect" />',
-'message.action.host.enable.maintenance.mode': '<fmt:message key="message.action.host.enable.maintenance.mode" />',
-'message.action.instance.reset.password': '<fmt:message key="message.action.instance.reset.password" />',
-'message.action.manage.cluster': '<fmt:message key="message.action.manage.cluster" />',
-'message.action.primarystorage.enable.maintenance.mode': '<fmt:message key="message.action.primarystorage.enable.maintenance.mode" />',
-'message.action.reboot.instance': '<fmt:message key="message.action.reboot.instance" />',
-'message.action.reboot.router': '<fmt:message key="message.action.reboot.router" />',
-'message.action.reboot.systemvm': '<fmt:message key="message.action.reboot.systemvm" />',
-'message.action.release.ip': '<fmt:message key="message.action.release.ip" />',
-'message.action.remove.host': '<fmt:message key="message.action.remove.host" />',
-'message.action.reset.password.off': '<fmt:message key="message.action.reset.password.off" />',
-'message.action.reset.password.warning': '<fmt:message key="message.action.reset.password.warning" />',
-'message.action.restore.instance': '<fmt:message key="message.action.restore.instance" />',
-'message.action.start.instance': '<fmt:message key="message.action.start.instance" />',
-'message.action.start.router': '<fmt:message key="message.action.start.router" />',
-'message.action.start.systemvm': '<fmt:message key="message.action.start.systemvm" />',
-'message.action.stop.instance': '<fmt:message key="message.action.stop.instance" />',
-'message.action.stop.router': '<fmt:message key="message.action.stop.router" />',
-'message.action.stop.systemvm': '<fmt:message key="message.action.stop.systemvm" />',
-'message.action.take.snapshot': '<fmt:message key="message.action.take.snapshot" />',
-'message.action.revert.snapshot': '<fmt:message key="message.action.revert.snapshot" />',
-'message.action.unmanage.cluster': '<fmt:message key="message.action.unmanage.cluster" />',
-'message.action.vmsnapshot.delete': '<fmt:message key="message.action.vmsnapshot.delete" />',
-'message.action.vmsnapshot.revert': '<fmt:message key="message.action.vmsnapshot.revert" />',
-'message.activate.project': '<fmt:message key="message.activate.project" />',
-'message.add.cluster': '<fmt:message key="message.add.cluster" />',
-'message.add.cluster.zone': '<fmt:message key="message.add.cluster.zone" />',
-'message.add.disk.offering': '<fmt:message key="message.add.disk.offering" />',
-'message.add.domain': '<fmt:message key="message.add.domain" />',
-'message.add.firewall': '<fmt:message key="message.add.firewall" />',
-'message.add.guest.network': '<fmt:message key="message.add.guest.network" />',
-'message.add.host': '<fmt:message key="message.add.host" />',
-'message.adding.host': '<fmt:message key="message.adding.host" />',
-'message.adding.Netscaler.device': '<fmt:message key="message.adding.Netscaler.device" />',
-'message.adding.Netscaler.provider': '<fmt:message key="message.adding.Netscaler.provider" />',
-'message.add.ip.range.direct.network': '<fmt:message key="message.add.ip.range.direct.network" />',
-'message.add.ip.range': '<fmt:message key="message.add.ip.range" />',
-'message.add.ip.range.to.pod': '<fmt:message key="message.add.ip.range.to.pod" />',
-'message.additional.networks.desc': '<fmt:message key="message.additional.networks.desc" />',
-'message.add.load.balancer': '<fmt:message key="message.add.load.balancer" />',
-'message.add.load.balancer.under.ip': '<fmt:message key="message.add.load.balancer.under.ip" />',
-'message.add.network': '<fmt:message key="message.add.network" />',
-'message.add.new.gateway.to.vpc': '<fmt:message key="message.add.new.gateway.to.vpc" />',
-'message.add.pod': '<fmt:message key="message.add.pod" />',
-'message.add.primary': '<fmt:message key="message.add.primary" />',
-'message.add.primary.storage': '<fmt:message key="message.add.primary.storage" />',
-'message.add.region': '<fmt:message key="message.add.region" />',
-'message.add.secondary.storage': '<fmt:message key="message.add.secondary.storage" />',
-'message.add.service.offering': '<fmt:message key="message.add.service.offering" />',
-'message.add.system.service.offering': '<fmt:message key="message.add.system.service.offering" />', //Jes
-'message.add.template': '<fmt:message key="message.add.template" />',
-'message.add.volume': '<fmt:message key="message.add.volume" />',
-'message.add.VPN.gateway': '<fmt:message key="message.add.VPN.gateway" />',
-'message.advanced.mode.desc': '<fmt:message key="message.advanced.mode.desc" />',
-'message.advanced.security.group': '<fmt:message key="message.advanced.security.group" />',
-'message.advanced.virtual': '<fmt:message key="message.advanced.virtual" />',
-'message.after.enable.s3': '<fmt:message key="message.after.enable.s3" />',
-'message.after.enable.swift': '<fmt:message key="message.after.enable.swift" />',
-'message.alert.state.detected': '<fmt:message key="message.alert.state.detected" />',
-'message.allow.vpn.access': '<fmt:message key="message.allow.vpn.access" />',
-'message.apply.snapshot.policy': '<fmt:message key="message.apply.snapshot.policy" />',
-'message.attach.iso.confirm': '<fmt:message key="message.attach.iso.confirm" />',
-'message.attach.volume': '<fmt:message key="message.attach.volume" />',
-'message.basic.mode.desc': '<fmt:message key="message.basic.mode.desc" />',
-'message.change.ipaddress': '<fmt:message key="message.change.ipaddress" />',
-'message.change.offering.confirm': '<fmt:message key="message.change.offering.confirm" />',
-'message.change.password': '<fmt:message key="message.change.password" />',
-'message.configure.all.traffic.types': '<fmt:message key="message.configure.all.traffic.types" />',
-'message.configuring.guest.traffic': '<fmt:message key="message.configuring.guest.traffic" />',
-'message.configuring.physical.networks': '<fmt:message key="message.configuring.physical.networks" />',
-'message.configuring.public.traffic': '<fmt:message key="message.configuring.public.traffic" />',
-'message.configuring.storage.traffic': '<fmt:message key="message.configuring.storage.traffic" />',
-'message.confirm.action.force.reconnect': '<fmt:message key="message.confirm.action.force.reconnect" />',
-'message.confirm.delete.BigSwitchBcf': '<fmt:message key="message.confirm.delete.BigSwitchBcf" />',
-'message.confirm.delete.F5': '<fmt:message key="message.confirm.delete.F5" />',
-'message.confirm.delete.BrocadeVcs': '<fmt:message key="message.confirm.delete.BrocadeVcs" />',
-'message.confirm.delete.NetScaler': '<fmt:message key="message.confirm.delete.NetScaler" />',
-'message.confirm.delete.NuageVsp': '<fmt:message key="message.confirm.delete.NuageVsp" />',
-'message.confirm.delete.SRX': '<fmt:message key="message.confirm.delete.SRX" />',
-'message.confirm.delete.PA': '<fmt:message key="message.confirm.delete.PA" />',
-'message.confirm.destroy.router': '<fmt:message key="message.confirm.destroy.router" />',
-'message.confirm.disable.provider': '<fmt:message key="message.confirm.disable.provider" />',
-'message.confirm.enable.provider': '<fmt:message key="message.confirm.enable.provider" />',
-'message.confirm.join.project': '<fmt:message key="message.confirm.join.project" />',
-'message.confirm.remove.IP.range': '<fmt:message key="message.confirm.remove.IP.range" />',
-'message.confirm.shutdown.provider': '<fmt:message key="message.confirm.shutdown.provider" />',
-'message.copy.iso.confirm': '<fmt:message key="message.copy.iso.confirm" />',
-'message.copy.template': '<fmt:message key="message.copy.template" />',
-'message.create.template': '<fmt:message key="message.create.template" />',
-'message.create.template.vm': '<fmt:message key="message.create.template.vm" />',
-'message.create.template.volume': '<fmt:message key="message.create.template.volume" />',
-'message.creating.cluster': '<fmt:message key="message.creating.cluster" />',
-'message.creating.guest.network': '<fmt:message key="message.creating.guest.network" />',
-'message.creating.physical.networks': '<fmt:message key="message.creating.physical.networks" />',
-'message.creating.pod': '<fmt:message key="message.creating.pod" />',
-'message.creating.primary.storage': '<fmt:message key="message.creating.primary.storage" />',
-'message.creating.secondary.storage': '<fmt:message key="message.creating.secondary.storage" />',
-'message.creating.zone': '<fmt:message key="message.creating.zone" />',
-'message.decline.invitation': '<fmt:message key="message.decline.invitation" />',
-'message.dedicate.zone': '<fmt:message key="message.dedicate.zone" />',
-'message.delete.account': '<fmt:message key="message.delete.account" />',
-'message.delete.affinity.group': '<fmt:message key="message.delete.affinity.group" />',
-'message.delete.gateway': '<fmt:message key="message.delete.gateway" />',
-'message.delete.project': '<fmt:message key="message.delete.project" />',
-'message.delete.user': '<fmt:message key="message.delete.user" />',
-'message.delete.VPN.connection': '<fmt:message key="message.delete.VPN.connection" />',
-'message.delete.VPN.customer.gateway': '<fmt:message key="message.delete.VPN.customer.gateway" />',
-'message.delete.VPN.gateway': '<fmt:message key="message.delete.VPN.gateway" />',
-'message.detach.disk': '<fmt:message key="message.detach.disk" />',
-'message.detach.iso.confirm': '<fmt:message key="message.detach.iso.confirm" />',
-'message.disable.account': '<fmt:message key="message.disable.account" />',
-'message.disable.snapshot.policy': '<fmt:message key="message.disable.snapshot.policy" />',
-'message.disable.user': '<fmt:message key="message.disable.user" />',
-'message.disable.vpn.access': '<fmt:message key="message.disable.vpn.access" />',
-'message.disable.vpn': '<fmt:message key="message.disable.vpn" />',
-'message.download.ISO': '<fmt:message key="message.download.ISO" />',
-'message.download.template': '<fmt:message key="message.download.template" />',
-'message.download.volume.confirm': '<fmt:message key="message.download.volume.confirm" />',
-'message.download.volume': '<fmt:message key="message.download.volume" />',
-'message.edit.account': '<fmt:message key="message.edit.account" />',
-'message.edit.confirm': '<fmt:message key="message.edit.confirm" />',
-'message.edit.limits': '<fmt:message key="message.edit.limits" />',
-'message.edit.traffic.type': '<fmt:message key="message.edit.traffic.type" />',
-'message.enable.account': '<fmt:message key="message.enable.account" />',
-'message.enabled.vpn': '<fmt:message key="message.enabled.vpn" />',
-'message.enabled.vpn.ip.sec': '<fmt:message key="message.enabled.vpn.ip.sec" />',
-'message.enable.user': '<fmt:message key="message.enable.user" />',
-'message.enable.vpn.access': '<fmt:message key="message.enable.vpn.access" />',
-'message.enable.vpn': '<fmt:message key="message.enable.vpn" />',
-'message.enabling.security.group.provider': '<fmt:message key="message.enabling.security.group.provider" />',
-'message.enabling.zone': '<fmt:message key="message.enabling.zone" />',
-'message.enabling.zone.dots': '<fmt:message key="message.enabling.zone.dots" />',
-'message.creating.systemVM': '<fmt:message key="message.creating.systemVM" />',
-'message.enter.token': '<fmt:message key="message.enter.token" />',
-'message.generate.keys': '<fmt:message key="message.generate.keys" />',
-'message.installWizard.click.retry': '<fmt:message key="message.installWizard.click.retry" />',
-'message.installWizard.copy.whatIsACluster': '<fmt:message key="message.installWizard.copy.whatIsACluster" />',
-'message.installWizard.copy.whatIsAHost': '<fmt:message key="message.installWizard.copy.whatIsAHost" />',
-'message.installWizard.copy.whatIsAPod': '<fmt:message key="message.installWizard.copy.whatIsAPod" />',
-'message.installWizard.copy.whatIsAZone': '<fmt:message key="message.installWizard.copy.whatIsAZone" />',
-'message.installWizard.copy.whatIsCloudStack': '<fmt:message key="message.installWizard.copy.whatIsCloudStack" />',
-'message.installWizard.copy.whatIsPrimaryStorage': '<fmt:message key="message.installWizard.copy.whatIsPrimaryStorage" />',
-'message.installWizard.copy.whatIsSecondaryStorage': '<fmt:message key="message.installWizard.copy.whatIsSecondaryStorage" />',
-'message.installWizard.now.building': '<fmt:message key="message.installWizard.now.building" />',
-'message.installWizard.tooltip.addCluster.name': '<fmt:message key="message.installWizard.tooltip.addCluster.name" />',
-'message.installWizard.tooltip.addHost.hostname': '<fmt:message key="message.installWizard.tooltip.addHost.hostname" />',
-'message.installWizard.tooltip.addHost.password': '<fmt:message key="message.installWizard.tooltip.addHost.password" />',
-'message.installWizard.tooltip.addHost.username': '<fmt:message key="message.installWizard.tooltip.addHost.username" />',
-'message.installWizard.tooltip.addPod.name': '<fmt:message key="message.installWizard.tooltip.addPod.name" />',
-'message.installWizard.tooltip.addPod.reservedSystemEndIp': '<fmt:message key="message.installWizard.tooltip.addPod.reservedSystemEndIp" />',
-'message.installWizard.tooltip.addPod.reservedSystemGateway': '<fmt:message key="message.installWizard.tooltip.addPod.reservedSystemGateway" />',
-'message.installWizard.tooltip.addPod.reservedSystemNetmask': '<fmt:message key="message.installWizard.tooltip.addPod.reservedSystemNetmask" />',
-'message.installWizard.tooltip.addPod.reservedSystemStartIp': '<fmt:message key="message.installWizard.tooltip.addPod.reservedSystemStartIp" />',
-'message.installWizard.tooltip.addPrimaryStorage.name': '<fmt:message key="message.installWizard.tooltip.addPrimaryStorage.name" />',
-'message.installWizard.tooltip.addPrimaryStorage.path': '<fmt:message key="message.installWizard.tooltip.addPrimaryStorage.path" />',
-'message.installWizard.tooltip.addPrimaryStorage.server': '<fmt:message key="message.installWizard.tooltip.addPrimaryStorage.server" />',
-'message.installWizard.tooltip.addSecondaryStorage.nfsServer': '<fmt:message key="message.installWizard.tooltip.addSecondaryStorage.nfsServer" />',
-'message.installWizard.tooltip.addSecondaryStorage.path': '<fmt:message key="message.installWizard.tooltip.addSecondaryStorage.path" />',
-'message.installWizard.tooltip.addZone.dns1': '<fmt:message key="message.installWizard.tooltip.addZone.dns1" />',
-'message.installWizard.tooltip.addZone.dns2': '<fmt:message key="message.installWizard.tooltip.addZone.dns2" />',
-'message.installWizard.tooltip.addZone.internaldns1': '<fmt:message key="message.installWizard.tooltip.addZone.internaldns1" />',
-'message.installWizard.tooltip.addZone.internaldns2': '<fmt:message key="message.installWizard.tooltip.addZone.internaldns2" />',
-'message.installWizard.tooltip.addZone.name': '<fmt:message key="message.installWizard.tooltip.addZone.name" />',
-'message.installWizard.tooltip.configureGuestTraffic.description': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.description" />',
-'message.installWizard.tooltip.configureGuestTraffic.guestEndIp': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.guestEndIp" />',
-'message.installWizard.tooltip.configureGuestTraffic.guestGateway': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.guestGateway" />',
-'message.installWizard.tooltip.configureGuestTraffic.guestNetmask': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.guestNetmask" />',
-'message.installWizard.tooltip.configureGuestTraffic.guestStartIp': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.guestStartIp" />',
-'message.installWizard.tooltip.configureGuestTraffic.name': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.name" />',
-'message.instanceWizard.noTemplates': '<fmt:message key="message.instanceWizard.noTemplates" />',
-'message.ip.address.changed': '<fmt:message key="message.ip.address.changed" />',
-'message.iso.desc': '<fmt:message key="message.iso.desc" />',
-'message.join.project': '<fmt:message key="message.join.project" />',
-'message.launch.vm.on.private.network': '<fmt:message key="message.launch.vm.on.private.network" />',
-'message.launch.zone': '<fmt:message key="message.launch.zone" />',
-'message.lock.account': '<fmt:message key="message.lock.account" />',
-'message.migrate.instance.confirm': '<fmt:message key="message.migrate.instance.confirm" />',
-'message.migrate.instance.to.host': '<fmt:message key="message.migrate.instance.to.host" />',
-'message.migrate.instance.to.ps': '<fmt:message key="message.migrate.instance.to.ps" />',
-'message.migrate.router.confirm': '<fmt:message key="message.migrate.router.confirm" />',
-'message.migrate.systemvm.confirm': '<fmt:message key="message.migrate.systemvm.confirm" />',
-'message.migrate.volume': '<fmt:message key="message.migrate.volume" />',
-'message.new.user': '<fmt:message key="message.new.user" />',
-'message.no.network.support.configuration.not.true': '<fmt:message key="message.no.network.support.configuration.not.true" />',
-'message.no.network.support': '<fmt:message key="message.no.network.support" />',
-'message.no.projects.adminOnly': '<fmt:message key="message.no.projects.adminOnly" />',
-'message.no.projects': '<fmt:message key="message.no.projects" />',
-'message.number.clusters': '<fmt:message key="message.number.clusters" />',
-'message.number.hosts': '<fmt:message key="message.number.hosts" />',
-'message.number.pods': '<fmt:message key="message.number.pods" />',
-'message.number.storage': '<fmt:message key="message.number.storage" />',
-'message.number.zones': '<fmt:message key="message.number.zones" />',
-'message.pending.projects.1': '<fmt:message key="message.pending.projects.1" />',
-'message.pending.projects.2': '<fmt:message key="message.pending.projects.2" />',
-'message.please.add.at.lease.one.traffic.range': '<fmt:message key="message.please.add.at.lease.one.traffic.range" />',
-'message.please.proceed': '<fmt:message key="message.please.proceed" />',
-'message.please.select.a.different.public.and.management.network.before.removing': '<fmt:message key="message.please.select.a.different.public.and.management.network.before.removing" />',
-'message.please.select.networks': '<fmt:message key="message.please.select.networks" />',
-'message.project.invite.sent': '<fmt:message key="message.project.invite.sent" />',
-'message.redirecting.region': '<fmt:message key="message.redirecting.region" />',
-'message.remove.region': '<fmt:message key="message.remove.region" />',
-'message.remove.vpc': '<fmt:message key="message.remove.vpc" />',
-'message.remove.vpn.access': '<fmt:message key="message.remove.vpn.access" />',
-'message.reset.password.warning.notPasswordEnabled': '<fmt:message key="message.reset.password.warning.notPasswordEnabled" />',
-'message.reset.password.warning.notStopped': '<fmt:message key="message.reset.password.warning.notStopped" />',
-'message.reset.VPN.connection': '<fmt:message key="message.reset.VPN.connection" />',
-'message.restart.mgmt.server': '<fmt:message key="message.restart.mgmt.server" />',
-'message.restart.mgmt.usage.server': '<fmt:message key="message.restart.mgmt.usage.server" />',
-'message.restart.network': '<fmt:message key="message.restart.network" />',
-'message.restart.vpc': '<fmt:message key="message.restart.vpc" />',
-'message.security.group.usage': '<fmt:message key="message.security.group.usage" />',
-'message.select.a.zone': '<fmt:message key="message.select.a.zone" />',
-'message.select.instance': '<fmt:message key="message.select.instance" />',
-'message.select.iso': '<fmt:message key="message.select.iso" />',
-'message.select.item': '<fmt:message key="message.select.item" />',
-'message.select.security.groups': '<fmt:message key="message.select.security.groups" />',
-'message.select.template': '<fmt:message key="message.select.template" />',
-'message.setup.successful': '<fmt:message key="message.setup.successful" />',
-'message.snapshot.schedule': '<fmt:message key="message.snapshot.schedule" />',
-'message.specify.url': '<fmt:message key="message.specify.url" />',
-'message.step.1.continue': '<fmt:message key="message.step.1.continue" />',
-'message.step.1.desc': '<fmt:message key="message.step.1.desc" />',
-'message.step.2.continue': '<fmt:message key="message.step.2.continue" />',
-'message.step.2.desc': '<fmt:message key="message.step.2.desc" />',
-'message.step.3.continue': '<fmt:message key="message.step.3.continue" />',
-'message.step.3.desc': '<fmt:message key="message.step.3.desc" />',
-'message.step.4.continue': '<fmt:message key="message.step.4.continue" />',
-'message.step.4.desc': '<fmt:message key="message.step.4.desc" />',
-'message.suspend.project': '<fmt:message key="message.suspend.project" />',
-'message.template.desc': '<fmt:message key="message.template.desc" />',
-'message.tooltip.dns.1': '<fmt:message key="message.tooltip.dns.1" />',
-'message.tooltip.dns.2': '<fmt:message key="message.tooltip.dns.2" />',
-'message.tooltip.internal.dns.1': '<fmt:message key="message.tooltip.internal.dns.1" />',
-'message.tooltip.internal.dns.2': '<fmt:message key="message.tooltip.internal.dns.2" />',
-'message.tooltip.network.domain': '<fmt:message key="message.tooltip.network.domain" />',
-'message.tooltip.pod.name': '<fmt:message key="message.tooltip.pod.name" />',
-'message.tooltip.reserved.system.gateway': '<fmt:message key="message.tooltip.reserved.system.gateway" />',
-'message.tooltip.reserved.system.netmask': '<fmt:message key="message.tooltip.reserved.system.netmask" />',
-'message.tooltip.zone.name': '<fmt:message key="message.tooltip.zone.name" />',
-'message.update.os.preference': '<fmt:message key="message.update.os.preference" />',
-'message.update.resource.count': '<fmt:message key="message.update.resource.count" />',
-'message.update.ssl': '<fmt:message key="message.update.ssl" />',
-'message.validate.instance.name': '<fmt:message key="message.validate.instance.name" />',
-'message.virtual.network.desc': '<fmt:message key="message.virtual.network.desc" />',
-'message.vm.create.template.confirm': '<fmt:message key="message.vm.create.template.confirm" />',
-'message.vm.review.launch': '<fmt:message key="message.vm.review.launch" />',
-'message.volume.create.template.confirm': '<fmt:message key="message.volume.create.template.confirm" />',
-'message.you.must.have.at.least.one.physical.network': '<fmt:message key="message.you.must.have.at.least.one.physical.network" />',
-'message.Zone.creation.complete': '<fmt:message key="message.Zone.creation.complete" />',
-'message.zone.creation.complete.would.you.like.to.enable.this.zone': '<fmt:message key="message.zone.creation.complete.would.you.like.to.enable.this.zone" />',
-'message.zone.no.network.selection': '<fmt:message key="message.zone.no.network.selection" />',
-'message.zone.step.1.desc': '<fmt:message key="message.zone.step.1.desc" />',
-'message.zone.step.2.desc': '<fmt:message key="message.zone.step.2.desc" />',
-'message.zone.step.3.desc': '<fmt:message key="message.zone.step.3.desc" />',
-'message.restoreVM': '<fmt:message key="message.restoreVM" />',
-'message.zoneWizard.enable.local.storage': '<fmt:message key="message.zoneWizard.enable.local.storage" />',
-'message.instance.scaled.up.confirm': '<fmt:message key="message.instance.scaled.up.confirm" />',
-'message.validate.email.address': '<fmt:message key="message.validate.email.address" />',
-'message.validate.URL': '<fmt:message key="message.validate.URL" />',
-'message.validate.date': '<fmt:message key="message.validate.date" />',
-'message.validate.date.ISO': '<fmt:message key="message.validate.date.ISO" />',
-'message.validate.number': '<fmt:message key="message.validate.number" />',
-'message.validate.digits': '<fmt:message key="message.validate.digits" />',
-'message.validate.creditcard': '<fmt:message key="message.validate.creditcard" />',
-'message.validate.equalto': '<fmt:message key="message.validate.equalto" />',
-'message.validate.accept': '<fmt:message key="message.validate.accept" />',
-'message.validate.maxlength': '<fmt:message key="message.validate.maxlength" />',
-'message.validate.minlength': '<fmt:message key="message.validate.minlength" />',
-'message.validate.range.length': '<fmt:message key="message.validate.range.length" />',
-'message.validate.range': '<fmt:message key="message.validate.range" />',
-'message.validate.max': '<fmt:message key="message.validate.max" />',
-'messgae.validate.min': '<fmt:message key="messgae.validate.min" />',
-'mode': '<fmt:message key="mode" />',
-'network.rate': '<fmt:message key="network.rate" />',
-'notification.reboot.instance': '<fmt:message key="notification.reboot.instance" />',
-'notification.start.instance': '<fmt:message key="notification.start.instance" />',
-'notification.stop.instance': '<fmt:message key="notification.stop.instance" />',
-'side.by.side': '<fmt:message key="side.by.side" />',
-'state.Accepted': '<fmt:message key="state.Accepted" />',
-'state.Active': '<fmt:message key="state.Active" />',
-'state.Allocated': '<fmt:message key="state.Allocated" />',
-'state.Allocating': '<fmt:message key="state.Allocating" />',
-'state.BackedUp': '<fmt:message key="state.BackedUp" />',
-'state.BackingUp': '<fmt:message key="state.BackingUp" />',
-'state.Completed': '<fmt:message key="state.Completed" />',
-'state.Creating': '<fmt:message key="state.Creating" />',
-'state.Declined': '<fmt:message key="state.Declined" />',
-'state.Destroyed': '<fmt:message key="state.Destroyed" />',
-'state.Disabled': '<fmt:message key="state.Disabled" />',
-'state.enabled': '<fmt:message key="state.enabled" />',
-'state.Enabled': '<fmt:message key="state.Enabled" />',
-'state.Error': '<fmt:message key="state.Error" />',
-'state.Expunging': '<fmt:message key="state.Expunging" />',
-'state.Migrating': '<fmt:message key="state.Migrating" />',
-'state.Pending': '<fmt:message key="state.Pending" />',
-'state.Ready': '<fmt:message key="state.Ready" />',
-'state.Running': '<fmt:message key="state.Running" />',
-'state.Starting': '<fmt:message key="state.Starting" />',
-'state.Stopped': '<fmt:message key="state.Stopped" />',
-'state.Stopping': '<fmt:message key="state.Stopping" />',
-'state.Suspended': '<fmt:message key="state.Suspended" />',
-'ui.listView.filters.all': '<fmt:message key="ui.listView.filters.all" />',
-'ui.listView.filters.mine': '<fmt:message key="ui.listView.filters.mine" />',
-'label.opendaylight.controller': '<fmt:message key="label.opendaylight.controller" />',
-'label.resource.name': '<fmt:message key="label.resource.name" />',
-'label.reource.id': '<fmt:message key="label.reource.id" />',
-'label.vnmc.devices': '<fmt:message key="label.vnmc.devices" />',
-'label.add.vnmc.provider': '<fmt:message key="label.add.vnmc.provider" />',
-'label.enable.vnmc.provider': '<fmt:message key="label.enable.vnmc.provider" />',
-'label.add.vnmc.device': '<fmt:message key="label.add.vnmc.device" />',
-'label.ciscovnmc.resource.details': '<fmt:message key="label.ciscovnmc.resource.details" />',
-'label.delete.ciscovnmc.resource': '<fmt:message key="label.delete.ciscovnmc.resource" />',
-'label.enable.vnmc.device': '<fmt:message key="label.enable.vnmc.device" />',
-'label.disbale.vnmc.device': '<fmt:message key="label.disbale.vnmc.device" />',
-'label.disable.vnmc.provider': '<fmt:message key="label.disable.vnmc.provider" />',
-'label.services': '<fmt:message key="label.services" />',
-'label.secondary.staging.store': '<fmt:message key="label.secondary.staging.store" />',
-'label.release.account': '<fmt:message key="label.release.account" />',
-'label.release.account.lowercase': '<fmt:message key="label.release.account.lowercase" />',
-'label.vlan.vni.ranges': '<fmt:message key="label.vlan.vni.ranges" />',
-'label.dedicated.vlan.vni.ranges': '<fmt:message key="label.dedicated.vlan.vni.ranges" />',
-'label.dedicate.vlan.vni.range': '<fmt:message key="label.dedicate.vlan.vni.range" />',
-'label.vlan.vni.range': '<fmt:message key="label.vlan.vni.range" />',
-'label.vlan.range.details': '<fmt:message key="label.vlan.range.details" />',
-'label.release.dedicated.vlan.range': '<fmt:message key="label.release.dedicated.vlan.range" />',
-'label.broadcat.uri': '<fmt:message key="label.broadcat.uri" />',
-'label.ipv4.cidr': '<fmt:message key="label.ipv4.cidr" />',
-'label.guest.network.details': '<fmt:message key="label.guest.network.details" />',
-'label.ipv4.gateway': '<fmt:message key="label.ipv4.gateway" />',
-'label.vlan.ranges': '<fmt:message key="label.vlan.ranges" />',
-'label.virtual.appliance.details': '<fmt:message key="label.virtual.appliance.details" />',
-'label.start.lb.vm': '<fmt:message key="label.start.lb.vm" />',
-'label.stop.lb.vm': '<fmt:message key="label.stop.lb.vm" />',
-'label.migrate.lb.vm': '<fmt:message key="label.migrate.lb.vm" />',
-'label.migrate.volume': '<fmt:message key="label.migrate.volume" />',
-'label.vpc.virtual.router': '<fmt:message key="label.vpc.virtual.router" />',
-'label.ovs': '<fmt:message key="label.ovs" />',
-'label.gslb.service': '<fmt:message key="label.gslb.service" />',
-'label.gslb.service.public.ip': '<fmt:message key="label.gslb.service.public.ip" />',
-'label.gslb.service.private.ip': '<fmt:message key="label.gslb.service.private.ip" />',
-'label.baremetal.dhcp.provider': '<fmt:message key="label.baremetal.dhcp.provider" />',
-'label.add.baremetal.dhcp.device': '<fmt:message key="label.add.baremetal.dhcp.device" />',
-'label.baremetal.pxe.provider': '<fmt:message key="label.baremetal.pxe.provider" />',
-'label.baremetal.pxe.device': '<fmt:message key="label.baremetal.pxe.device" />',
-'label.tftp.root.directory': '<fmt:message key="label.tftp.root.directory" />',
-'label.add.vmware.datacenter': '<fmt:message key="label.add.vmware.datacenter" />',
-'label.remove.vmware.datacenter': '<fmt:message key="label.remove.vmware.datacenter" />',
-'label.dc.name': '<fmt:message key="label.dc.name" />',
-'label.vcenter': '<fmt:message key="label.vcenter" />',
-'label.dedicate.zone': '<fmt:message key="label.dedicate.zone" />',
-'label.zone.dedicated': '<fmt:message key="label.zone.dedicated" />',
-'label.release.dedicated.zone': '<fmt:message key="label.release.dedicated.zone" />',
-'label.vmware.datacenter.name': '<fmt:message key="label.vmware.datacenter.name" />',
-'label.vmware.datacenter.vcenter': '<fmt:message key="label.vmware.datacenter.vcenter" />',
-'label.vmware.datacenter.id': '<fmt:message key="label.vmware.datacenter.id" />',
-'label.system.vm.details': '<fmt:message key="label.system.vm.details" />',
-'label.system.vm.scaled.up': '<fmt:message key="label.system.vm.scaled.up" />',
-'label.console.proxy.vm': '<fmt:message key="label.console.proxy.vm" />',
-'label.settings': '<fmt:message key="label.settings" />',
-'label.requires.upgrade': '<fmt:message key="label.requires.upgrade" />',
-'label.upgrade.router.newer.template': '<fmt:message key="label.upgrade.router.newer.template" />',
-'label.router.vm.scaled.up': '<fmt:message key="label.router.vm.scaled.up" />',
-'label.total.virtual.routers': '<fmt:message key="label.total.virtual.routers" />',
-'label.upgrade.required': '<fmt:message key="label.upgrade.required" />',
-'label.virtual.routers.group.zone': '<fmt:message key="label.virtual.routers.group.zone" />',
-'label.total.virtual.routers.upgrade': '<fmt:message key="label.total.virtual.routers.upgrade" />',
-'label.virtual.routers.group.pod': '<fmt:message key="label.virtual.routers.group.pod" />',
-'label.virtual.routers.group.cluster': '<fmt:message key="label.virtual.routers.group.cluster" />',
-'label.zone.lower': '<fmt:message key="label.zone.lower" />',
-'label.virtual.routers.group.account': '<fmt:message key="label.virtual.routers.group.account" />',
-'label.netscaler.details': '<fmt:message key="label.netscaler.details" />',
-'label.baremetal.dhcp.devices': '<fmt:message key="label.baremetal.dhcp.devices" />',
-'label.baremetal.pxe.devices': '<fmt:message key="label.baremetal.pxe.devices" />',
-'label.addes.new.f5': '<fmt:message key="label.addes.new.f5" />',
-'label.f5.details': '<fmt:message key="label.f5.details" />',
-'label.srx.details': '<fmt:message key="label.srx.details" />',
-'label.palo.alto.details': '<fmt:message key="label.palo.alto.details" />',
-'label.added.nicira.nvp.controller': '<fmt:message key="label.added.nicira.nvp.controller" />',
-'label.nicira.nvp.details': '<fmt:message key="label.nicira.nvp.details" />',
-'label.added.brocade.vcs.switch': '<fmt:message key="label.added.brocade.vcs.switch" />',
-'label.brocade.vcs.details': '<fmt:message key="label.brocade.vcs.details" />',
-'label.added.new.bigswitch.bcf.controller': '<fmt:message key="label.added.new.bigswitch.bcf.controller" />',
-'label.bigswitch.bcf.details': '<fmt:message key="label.bigswitch.bcf.details" />',
-'label.bigswitch.bcf.nat': '<fmt:message key="label.bigswitch.bcf.nat" />',
-'label.dedicate': '<fmt:message key="label.dedicate" />',
-'label.dedicate.pod': '<fmt:message key="label.dedicate.pod" />',
-'label.pod.dedicated': '<fmt:message key="label.pod.dedicated" />',
-'label.release.dedicated.pod': '<fmt:message key="label.release.dedicated.pod" />',
-'label.override.public.traffic': '<fmt:message key="label.override.public.traffic" />',
-'label.public.traffic.vswitch.type': '<fmt:message key="label.public.traffic.vswitch.type" />',
-'label.public.traffic.vswitch.name': '<fmt:message key="label.public.traffic.vswitch.name" />',
-'label.override.guest.traffic': '<fmt:message key="label.override.guest.traffic" />',
-'label.guest.traffic.vswitch.type': '<fmt:message key="label.guest.traffic.vswitch.type" />',
-'label.guest.traffic.vswitch.name': '<fmt:message key="label.guest.traffic.vswitch.name" />',
-'label.cisco.nexus1000v.ip.address': '<fmt:message key="label.cisco.nexus1000v.ip.address" />',
-'label.cisco.nexus1000v.username': '<fmt:message key="label.cisco.nexus1000v.username" />',
-'label.cisco.nexus1000v.password': '<fmt:message key="label.cisco.nexus1000v.password" />',
-'label.dedicate.cluster': '<fmt:message key="label.dedicate.cluster" />',
-'label.release.dedicated.cluster': '<fmt:message key="label.release.dedicated.cluster" />',
-'label.dedicate.host': '<fmt:message key="label.dedicate.host" />',
-'label.release.dedicated.host': '<fmt:message key="label.release.dedicated.host" />',
-'label.number.of.cpu.sockets': '<fmt:message key="label.number.of.cpu.sockets" />',
-'label.delete.ucs.manager': '<fmt:message key="label.delete.ucs.manager" />',
-'label.blades': '<fmt:message key="label.blades" />',
-'label.chassis': '<fmt:message key="label.chassis" />',
-'label.blade.id': '<fmt:message key="label.blade.id" />',
-'label.associated.profile': '<fmt:message key="label.associated.profile" />',
-'label.refresh.blades': '<fmt:message key="label.refresh.blades" />',
-'label.instanciate.template.associate.profile.blade': '<fmt:message key="label.instanciate.template.associate.profile.blade" />',
-'label.select.template': '<fmt:message key="label.select.template" />',
-'label.profile': '<fmt:message key="label.profile" />',
-'label.delete.profile': '<fmt:message key="label.delete.profile" />',
-'label.disassociate.profile.blade': '<fmt:message key="label.disassociate.profile.blade" />',
-'label.secondary.storage.details': '<fmt:message key="label.secondary.storage.details" />',
-'label.secondary.staging.store.details': '<fmt:message key="label.secondary.staging.store.details" />',
-'label.add.nfs.secondary.staging.store': '<fmt:message key="label.add.nfs.secondary.staging.store" />',
-'label.delete.secondary.staging.store': '<fmt:message key="label.delete.secondary.staging.store" />',
-'label.ipv4.start.ip': '<fmt:message key="label.ipv4.start.ip" />',
-'label.ipv4.end.ip': '<fmt:message key="label.ipv4.end.ip" />',
-'label.ipv6.start.ip': '<fmt:message key="label.ipv6.start.ip" />',
-'label.ipv6.end.ip': '<fmt:message key="label.ipv6.end.ip" />',
-'label.vm.password': '<fmt:message key="label.vm.password" />',
-'label.group.by.zone': '<fmt:message key="label.group.by.zone" />',
-'label.group.by.pod': '<fmt:message key="label.group.by.pod" />',
-'label.group.by.cluster': '<fmt:message key="label.group.by.cluster" />',
-'label.group.by.account': '<fmt:message key="label.group.by.account" />',
-'label.no.grouping': '<fmt:message key="label.no.grouping" />',
-'label.create.nfs.secondary.staging.storage': '<fmt:message key="label.create.nfs.secondary.staging.storage" />',
-'label.username.lower': '<fmt:message key="label.username.lower" />',
-'label.password.lower': '<fmt:message key="label.password.lower" />',
-'label.email.lower': '<fmt:message key="label.email.lower" />',
-'label.firstname.lower': '<fmt:message key="label.firstname.lower" />',
-'label.lastname.lower': '<fmt:message key="label.lastname.lower" />',
-'label.domain.lower': '<fmt:message key="label.domain.lower" />',
-'label.account.lower': '<fmt:message key="label.account.lower" />',
-'label.type.lower': '<fmt:message key="label.type.lower" />',
-'label.rule.number': '<fmt:message key="label.rule.number" />',
-'label.action': '<fmt:message key="label.action" />',
-'label.action.register.template': '<fmt:message key="label.action.register.template" />',
-'label.name.lower': '<fmt:message key="label.name.lower" />',
-'label.ucs': '<fmt:message key="label.ucs" />',
-'label.persistent': '<fmt:message key="label.persistent" />',
-'label.broadcasturi': '<fmt:message key="label.broadcasturi" />',
-'label.network.cidr': '<fmt:message key="label.network.cidr" />',
-'label.reserved.ip.range': '<fmt:message key="label.reserved.ip.range" />',
-'label.autoscale': '<fmt:message key="label.autoscale" />',
-'label.health.check': '<fmt:message key="label.health.check" />',
-'label.public.load.balancer.provider': '<fmt:message key="label.public.load.balancer.provider" />',
-'label.add.isolated.network': '<fmt:message key="label.add.isolated.network" />',
-'label.add.isolated.guest.network': '<fmt:message key="label.add.isolated.guest.network" />',
-'label.secondary.isolated.vlan.id': '<fmt:message key="label.secondary.isolated.vlan.id" />',
-'label.ipv4.netmask': '<fmt:message key="label.ipv4.netmask" />',
-'label.custom': '<fmt:message key="label.custom" />',
-'label.disable.network.offering': '<fmt:message key="label.disable.network.offering" />',
-'label.enable.network.offering': '<fmt:message key="label.enable.network.offering" />',
-'label.remove.network.offering': '<fmt:message key="label.remove.network.offering" />',
-'label.system.offering.for.router': '<fmt:message key="label.system.offering.for.router" />',
-'label.mode': '<fmt:message key="label.mode" />',
-'label.associate.public.ip': '<fmt:message key="label.associate.public.ip" />',
-'label.acl': '<fmt:message key="label.acl" />',
-'label.user.data': '<fmt:message key="label.user.data" />',
-'label.virtual.networking': '<fmt:message key="label.virtual.networking" />',
-'label.allow': '<fmt:message key="label.allow" />',
-'label.deny': '<fmt:message key="label.deny" />',
-'label.default.egress.policy': '<fmt:message key="label.default.egress.policy" />',
-'label.xenserver.tools.version.61.plus': '<fmt:message key="label.xenserver.tools.version.61.plus" />',
-'label.routing.host': '<fmt:message key="label.routing.host" />',
-'label.usage.server': '<fmt:message key="label.usage.server" />',
-'label.management.server': '<fmt:message key="label.management.server" />',
-'label.domain.router': '<fmt:message key="label.domain.router" />',
-'label.console.proxy': '<fmt:message key="label.console.proxy" />',
-'label.user.vm': '<fmt:message key="label.user.vm" />',
-'label.resource.limit.exceeded': '<fmt:message key="label.resource.limit.exceeded" />',
-'label.direct.attached.public.ip': '<fmt:message key="label.direct.attached.public.ip" />',
-'label.usage.sanity.result': '<fmt:message key="label.usage.sanity.result" />',
-'label.gpu': '<fmt:message key="label.gpu" />',
-'label.vgpu.type': '<fmt:message key="label.vgpu.type" />',
-'label.vgpu.video.ram': '<fmt:message key="label.vgpu.video.ram" />',
-'label.vgpu.max.resolution': '<fmt:message key="label.vgpu.max.resolution" />',
-'label.vgpu.max.vgpu.per.gpu': '<fmt:message key="label.vgpu.max.vgpu.per.gpu" />',
-'label.vgpu.remaining.capacity': '<fmt:message key="label.vgpu.remaining.capacity" />',
-'message.confirm.delete.ciscovnmc.resource': '<fmt:message key="message.confirm.delete.ciscovnmc.resource" />',
-'message.confirm.add.vnmc.provider': '<fmt:message key="message.confirm.add.vnmc.provider" />',
-'message.confirm.enable.vnmc.provider': '<fmt:message key="message.confirm.enable.vnmc.provider" />',
-'message.confirm.disable.vnmc.provider': '<fmt:message key="message.confirm.disable.vnmc.provider" />',
-'message.vnmc.available.list': '<fmt:message key="message.vnmc.available.list" />',
-'message.vnmc.not.available.list': '<fmt:message key="message.vnmc.not.available.list" />',
-'message.confirm.release.dedicate.vlan.range': '<fmt:message key="message.confirm.release.dedicate.vlan.range" />',
-'message.confirm.start.lb.vm': '<fmt:message key="message.confirm.start.lb.vm" />',
-'message.confirm.stop.lb.vm': '<fmt:message key="message.confirm.stop.lb.vm" />',
-'message.confirm.remove.vmware.datacenter': '<fmt:message key="message.confirm.remove.vmware.datacenter" />',
-'message.confirm.dedicate.zone': '<fmt:message key="message.confirm.dedicate.zone" />',
-'message.confirm.release.dedicated.zone': '<fmt:message key="message.confirm.release.dedicated.zone" />',
-'message.dedicated.zone.released': '<fmt:message key="message.dedicated.zone.released" />',
-'message.read.admin.guide.scaling.up': '<fmt:message key="message.read.admin.guide.scaling.up" />',
-'message.confirm.scale.up.system.vm': '<fmt:message key="message.confirm.scale.up.system.vm" />',
-'message.confirm.upgrade.router.newer.template': '<fmt:message key="message.confirm.upgrade.router.newer.template" />',
-'message.confirm.scale.up.router.vm': '<fmt:message key="message.confirm.scale.up.router.vm" />',
-'message.confirm.upgrade.routers.newtemplate': '<fmt:message key="message.confirm.upgrade.routers.newtemplate" />',
-'message.confirm.upgrade.routers.pod.newtemplate': '<fmt:message key="message.confirm.upgrade.routers.pod.newtemplate" />',
-'message.confirm.upgrade.routers.cluster.newtemplate': '<fmt:message key="message.confirm.upgrade.routers.cluster.newtemplate" />',
-'message.confirm.upgrade.routers.account.newtemplate': '<fmt:message key="message.confirm.upgrade.routers.account.newtemplate" />',
-'message.confirm.dedicate.pod.domain.account': '<fmt:message key="message.confirm.dedicate.pod.domain.account" />',
-'message.confirm.release.dedicated.pod': '<fmt:message key="message.confirm.release.dedicated.pod" />',
-'message.pod.dedication.released': '<fmt:message key="message.pod.dedication.released" />',
-'message.confirm.dedicate.cluster.domain.account': '<fmt:message key="message.confirm.dedicate.cluster.domain.account" />',
-'message.cluster.dedicated': '<fmt:message key="message.cluster.dedicated" />',
-'message.confirm.release.dedicated.cluster': '<fmt:message key="message.confirm.release.dedicated.cluster" />',
-'message.cluster.dedication.released': '<fmt:message key="message.cluster.dedication.released" />',
-'message.confirm.dedicate.host.domain.account': '<fmt:message key="message.confirm.dedicate.host.domain.account" />',
-'message.host.dedicated': '<fmt:message key="message.host.dedicated" />',
-'message.confirm.release.dedicated.host': '<fmt:message key="message.confirm.release.dedicated.host" />',
-'message.host.dedication.released': '<fmt:message key="message.host.dedication.released" />',
-'message.confirm.delete.ucs.manager': '<fmt:message key="message.confirm.delete.ucs.manager" />',
-'message.confirm.refresh.blades': '<fmt:message key="message.confirm.refresh.blades" />',
-'message.confirm.delete.secondary.staging.store': '<fmt:message key="message.confirm.delete.secondary.staging.store" />',
-'message.select.tier': '<fmt:message key="message.select.tier" />',
-'message.disallowed.characters': '<fmt:message key="message.disallowed.characters" />',
-'message.waiting.for.builtin.templates.to.load': '<fmt:message key="message.waiting.for.builtin.templates.to.load" />',
-'message.systems.vms.ready': '<fmt:message key="message.systems.vms.ready" />',
-'message.your.cloudstack.is.ready': '<fmt:message key="message.your.cloudstack.is.ready" />',
-'message.specifiy.tag.key.value': '<fmt:message key="message.specifiy.tag.key.value" />',
-'message.enter.seperated.list.multiple.cidrs': '<fmt:message key="message.enter.seperated.list.multiple.cidrs" />',
-'message.disabling.network.offering': '<fmt:message key="message.disabling.network.offering" />',
-'message.confirm.enable.network.offering': '<fmt:message key="message.confirm.enable.network.offering" />',
-'message.enabling.network.offering': '<fmt:message key="message.enabling.network.offering" />',
-'message.confirm.remove.network.offering': '<fmt:message key="message.confirm.remove.network.offering" />',
-'message.confirm.disable.network.offering': '<fmt:message key="message.confirm.disable.network.offering" />',
-'message.confirm.current.guest.CIDR.unchanged': '<fmt:message key="message.confirm.current.guest.CIDR.unchanged" />',
-'message.update.ssl.succeeded': '<fmt:message key="message.update.ssl.succeeded" />',
-'message.update.ssl.failed': '<fmt:message key="message.update.ssl.failed" />',
-'label.supportsstrechedl2subnet': '<fmt:message key="label.supportsstrechedl2subnet" />',
-'label.menu.vpc.offerings': '<fmt:message key="label.menu.vpc.offerings" />',
-'label.select.region': '<fmt:message key="label.select.region" />',
-'label.info.upper': '<fmt:message key="label.info.upper" />',
-'label.warn.upper': '<fmt:message key="label.warn.upper" />',
-'label.error.upper': '<fmt:message key="label.error.upper" />',
-'label.event.deleted': '<fmt:message key="label.event.deleted" />',
-'label.vpc.offering': '<fmt:message key="label.vpc.offering" />',
-'label.add.vpc.offering': '<fmt:message key="label.add.vpc.offering" />',
-'label.distributedrouter': '<fmt:message key="label.distributedrouter" />',
-'label.regionlevelvpc': '<fmt:message key="label.regionlevelvpc" />',
-'label.vpc.offering.details': '<fmt:message key="label.vpc.offering.details" />',
-'label.disable.vpc.offering': '<fmt:message key="label.disable.vpc.offering" />',
-'label.enable.vpc.offering': '<fmt:message key="label.enable.vpc.offering" />',
-'label.remove.vpc.offering': '<fmt:message key="label.remove.vpc.offering" />',
-'label.vpc.distributedvpcrouter': '<fmt:message key="label.vpc.distributedvpcrouter" />',
-'label.vpc.supportsregionlevelvpc': '<fmt:message key="label.vpc.supportsregionlevelvpc" />',
-'message.disabling.vpc.offering': '<fmt:message key="message.disabling.vpc.offering" />',
-'message.confirm.enable.vpc.offering': '<fmt:message key="message.confirm.enable.vpc.offering" />',
-'message.enabling.vpc.offering': '<fmt:message key="message.enabling.vpc.offering" />',
-'message.confirm.remove.vpc.offering': '<fmt:message key="message.confirm.remove.vpc.offering" />',
-'message.confirm.disable.vpc.offering': '<fmt:message key="message.confirm.disable.vpc.offering" />',
-'label.root.certificate': '<fmt:message key="label.root.certificate" />',
-'label.intermediate.certificate': '<fmt:message key="label.intermediate.certificate" />',
-'label.add.intermediate.certificate': '<fmt:message key="label.add.intermediate.certificate" />',
-'label.add.ciscoASA1000v': '<fmt:message key="label.add.ciscoASA1000v" />',
-'label.delete.ciscoASA1000v': '<fmt:message key="label.delete.ciscoASA1000v" />',
-'message.confirm.delete.ciscoASA1000v': '<fmt:message key="message.confirm.delete.ciscoASA1000v" />',
-'label.inside.port.profile': '<fmt:message key="label.inside.port.profile" />',
-'label.archive': '<fmt:message key="label.archive" />',
-'label.event.archived': '<fmt:message key="label.event.archived" />',
-'label.alert.details': '<fmt:message key="label.alert.details" />',
-'label.alert.deleted': '<fmt:message key="label.alert.deleted" />',
-'label.alert.archived': '<fmt:message key="label.alert.archived" />',
-'label.volume.details': '<fmt:message key="label.volume.details" />',
-'label.volume.migrated': '<fmt:message key="label.volume.migrated" />',
-'label.storage.pool': '<fmt:message key="label.storage.pool" />',
-'message.confirm.remove.selected.events': '<fmt:message key="message.confirm.remove.selected.events" />',
-'message.confirm.archive.selected.events': '<fmt:message key="message.confirm.archive.selected.events" />',
-'message.confirm.remove.event': '<fmt:message key="message.confirm.remove.event" />',
-'message.confirm.archive.event': '<fmt:message key="message.confirm.archive.event" />',
-'message.confirm.remove.selected.alerts': '<fmt:message key="message.confirm.remove.selected.alerts" />',
-'message.confirm.archive.selected.alerts': '<fmt:message key="message.confirm.archive.selected.alerts" />',
-'message.confirm.delete.alert': '<fmt:message key="message.confirm.delete.alert" />',
-'message.confirm.archive.alert': '<fmt:message key="message.confirm.archive.alert" />',
-'message.confirm.migrate.volume': '<fmt:message key="message.confirm.migrate.volume" />',
-'message.confirm.attach.disk': '<fmt:message key="message.confirm.attach.disk" />',
-'message.confirm.create.volume': '<fmt:message key="message.confirm.create.volume" />',
-'label.enable.host': '<fmt:message key="label.enable.host" />',
-'message.confirm.enable.host': '<fmt:message key="message.confirm.enable.host" />',
-'label.disable.host': '<fmt:message key="label.disable.host" />',
-'message.confirm.disable.host': '<fmt:message key="message.confirm.disable.host" />',
-'label.copying.iso': '<fmt:message key="label.copying.iso" />',
-'label.add.internal.lb': '<fmt:message key="label.add.internal.lb" />',
-'label.internal.lb.details': '<fmt:message key="label.internal.lb.details" />',
-'label.delete.internal.lb': '<fmt:message key="label.delete.internal.lb" />',
-'message.confirm.delete.internal.lb': '<fmt:message key="message.confirm.delete.internal.lb" />',
-'label.remove.vm.load.balancer': '<fmt:message key="label.remove.vm.load.balancer" />',
-'message.confirm.remove.load.balancer': '<fmt:message key="message.confirm.remove.load.balancer" />',
-'label.add.acl.list': '<fmt:message key="label.add.acl.list" />',
-'label.add.list.name': '<fmt:message key="label.add.list.name" />',
-'label.add.network.acl.list': '<fmt:message key="label.add.network.acl.list" />',
-'label.delete.acl.list': '<fmt:message key="label.delete.acl.list" />',
-'message.confirm.delete.acl.list': '<fmt:message key="message.confirm.delete.acl.list" />',
-'message.confirm.replace.acl.new.one': '<fmt:message key="message.confirm.replace.acl.new.one" />',
-'label.acl.replaced': '<fmt:message key="label.acl.replaced" />',
-'label.ipv4.dns1': '<fmt:message key="label.ipv4.dns1" />',
-'label.ipv4.dns2': '<fmt:message key="label.ipv4.dns2" />',
-'label.ipv6.dns1': '<fmt:message key="label.ipv6.dns1" />',
-'label.ipv6.dns2': '<fmt:message key="label.ipv6.dns2" />',
-'label.protocol.number': '<fmt:message key="label.protocol.number" />',
-'label.edit.acl.rule': '<fmt:message key="label.edit.acl.rule" />',
-'label.source.ip.address': '<fmt:message key="label.source.ip.address" />',
-'label.source.port': '<fmt:message key="label.source.port" />',
-'label.instance.port': '<fmt:message key="label.instance.port" />',
-'label.assigned.vms': '<fmt:message key="label.assigned.vms" />',
-'label.replace.acl': '<fmt:message key="label.replace.acl" />',
-'label.source.nat.supported': '<fmt:message key="label.source.nat.supported" />',
-'label.acl.name': '<fmt:message key="label.acl.name" />',
-'label.acl.id': '<fmt:message key="label.acl.id" />',
-'label.passive': '<fmt:message key="label.passive" />',
-'label.replace.acl.list': '<fmt:message key="label.replace.acl.list" />',
-'label.vswitch.name': '<fmt:message key="label.vswitch.name" />',
-'label.vSwitch.type': '<fmt:message key="label.vSwitch.type" />',
-'label.ping.path': '<fmt:message key="label.ping.path" />',
-'label.response.timeout.in.sec': '<fmt:message key="label.response.timeout.in.sec" />',
-'label.health.check.interval.in.sec': '<fmt:message key="label.health.check.interval.in.sec" />',
-'label.healthy.threshold': '<fmt:message key="label.healthy.threshold" />',
-'label.unhealthy.threshold': '<fmt:message key="label.unhealthy.threshold" />',
-'label.other': '<fmt:message key="label.other" />',
-'label.vm.id': '<fmt:message key="label.vm.id" />',
-'label.vnmc': '<fmt:message key="label.vnmc" />',
-'label.scale.up.policy': '<fmt:message key="label.scale.up.policy" />',
-'label.counter': '<fmt:message key="label.counter" />',
-'label.operator': '<fmt:message key="label.operator" />',
-'label.threshold': '<fmt:message key="label.threshold" />',
-'label.load.balancer.type': '<fmt:message key="label.load.balancer.type" />',
-'label.vgpu': '<fmt:message key="label.vgpu" />',
-'label.sticky.name': '<fmt:message key="label.sticky.name" />',
-'label.stickiness.method': '<fmt:message key="label.stickiness.method" />',
-'label.gslb': '<fmt:message key="label.gslb" />',
-'label.portable.ip': '<fmt:message key="label.portable.ip" />',
-'label.internallbvm': '<fmt:message key="label.internallbvm" />',
-'label.agent.state': '<fmt:message key="label.agent.state" />',
-'label.duration.in.sec': '<fmt:message key="label.duration.in.sec" />',
-'state.detached': '<fmt:message key="state.detached" />',
-'label.na': '<fmt:message key="label.na" />',
-'label.migrate.volume': '<fmt:message key="label.migrate.volume" />',
-'label.added.network.offering': '<fmt:message key="label.added.network.offering" />',
-'hint.type.part.storage.tag': '<fmt:message key="hint.type.part.storage.tag" />',
-'hint.type.part.host.tag': '<fmt:message key="hint.type.part.host.tag" />',
-'hint.no.storage.tags': '<fmt:message key="hint.no.storage.tags" />',
-'hint.no.host.tags': '<fmt:message key="hint.no.host.tags" />',
-'label.availabilityZone': '<fmt:message key="label.availabilityZone" />',
-'label.diskoffering': '<fmt:message key="label.diskoffering" />',
-'title.upload.volume': '<fmt:message key="title.upload.volume" />',
-'label.format.lower': '<fmt:message key="label.format.lower" />',
-'label.checksum': '<fmt:message key="label.checksum" />',
-'label.assign.vms': '<fmt:message key="label.assign.vms" />',
-'label.extractable.lower': '<fmt:message key="label.extractable.lower" />',
-'label.globo.dns': '<fmt:message key="label.globo.dns" />',
-'label.add.globo.dns': '<fmt:message key="label.add.globo.dns" />',
-'label.globo.dns.configuration': '<fmt:message key="label.globo.dns.configuration" />',
-'label.region.details': '<fmt:message key="label.region.details" />',
-'label.baremetal.rack.configuration': '<fmt:message key="label.baremetal.rack.configuration" />',
-'label.add.baremetal.rack.configuration': '<fmt:message key="label.add.baremetal.rack.configuration" />',
-'label.delete.baremetal.rack.configuration': '<fmt:message key="label.delete.baremetal.rack.configuration" />',
-'message.confirm.delete.baremetal.rack.configuration': '<fmt:message key="message.confirm.delete.baremetal.rack.configuration" />',
-'message.added.new.nuage.vsp.controller': '<fmt:message key="message.added.new.nuage.vsp.controller" />',
-'message.added.vpc.offering': '<fmt:message key="message.added.vpc.offering" />',
-'label.group.by.account': '<fmt:message key="label.group.by.account" />',
-'label.keyboard.language': '<fmt:message key="label.keyboard.language" />',
-'label.standard.us.keyboard': '<fmt:message key="label.standard.us.keyboard" />',
-'label.uk.keyboard': '<fmt:message key="label.uk.keyboard" />',
-'label.japanese.keyboard': '<fmt:message key="label.japanese.keyboard" />',
-'label.simplified.chinese.keyboard': '<fmt:message key="label.simplified.chinese.keyboard" />',
-'label.time.colon': '<fmt:message key="label.time.colon" />',
-'label.min.past.the.hr': '<fmt:message key="label.min.past.the.hr" />',
-'label.timezone.colon': '<fmt:message key="label.timezone.colon" />',
-'label.keep.colon': '<fmt:message key="label.keep.colon" />',
-'label.every': '<fmt:message key="label.every" />',
-'label.day': '<fmt:message key="label.day" />',
-'label.of.month': '<fmt:message key="label.of.month" />',
-'label.minutes.past.hour': '<fmt:message key="label.minutes.past.hour" />',
-'label.snapshots': '<fmt:message key="label.snapshots" />',
-'label.add.private.gateway': '<fmt:message key="label.add.private.gateway" />',
-'label.ovm3.pool': '<fmt:message key="label.ovm3.pool" />',
-'label.ovm3.cluster': '<fmt:message key="label.ovm3.cluster" />',
-'label.ovm3.vip': '<fmt:message key="label.ovm3.vip" />',
-'label.local.file': '<fmt:message key="label.local.file" />',
-'label.local.storage.enabled.system.vms': '<fmt:message key="label.local.storage.enabled.system.vms" />',
-'label.link.domain.to.ldap': '<fmt:message key="label.link.domain.to.ldap" />',
-'message.link.domain.to.ldap': '<fmt:message key="message.link.domain.to.ldap" />',
-'label.ldap.link.type': '<fmt:message key="label.ldap.link.type" />',
-'label.account.type': '<fmt:message key="label.account.type" />',
-'label.create.ssh.key.pair': '<fmt:message key="label.create.ssh.key.pair" />',
-'label.fingerprint': '<fmt:message key="label.fingerprint" />',
-'label.host.tag': '<fmt:message key="label.host.tag" />',
-'label.new.ssh.key.pair': '<fmt:message key="label.new.ssh.key.pair" />',
-'label.private.key': '<fmt:message key="label.private.key" />',
-'label.public.key': '<fmt:message key="label.public.key" />',
-'label.remove.ssh.key.pair': '<fmt:message key="label.remove.ssh.key.pair" />',
-'label.reset.ssh.key.pair': '<fmt:message key="label.reset.ssh.key.pair" />',
-'label.reset.ssh.key.pair.on.vm': '<fmt:message key="label.reset.ssh.key.pair.on.vm" />',
-'label.ssh.key.pair': '<fmt:message key="label.ssh.key.pair" />',
-'label.ssh.key.pair.details': '<fmt:message key="label.ssh.key.pair.details" />',
-'message.desc.created.ssh.key.pair': '<fmt:message key="message.desc.created.ssh.key.pair" />',
-'message.desc.reset.ssh.key.pair': '<fmt:message key="message.desc.reset.ssh.key.pair" />',
-'message.desc.created.ssh.key.pair': '<fmt:message key="message.desc.created.ssh.key.pair" />',
-'message.please.confirm.remove.ssh.key.pair': '<fmt:message key="message.please.confirm.remove.ssh.key.pair" />',
-'message.password.has.been.reset.to': '<fmt:message key="message.password.has.been.reset.to" />',
-'message.password.of.the.vm.has.been.reset.to': '<fmt:message key="message.password.of.the.vm.has.been.reset.to" />',
-'message.question.are.you.sure.you.want.to.add': '<fmt:message key="message.question.are.you.sure.you.want.to.add" />',
-'label.domain.details': '<fmt:message key="label.domain.details" />',
-'label.account.details': '<fmt:message key="label.account.details" />',
-'label.user.details': '<fmt:message key="label.user.details" />',
-'label.service.offering.details': '<fmt:message key="label.service.offering.details" />',
-'label.system.service.offering.details': '<fmt:message key="label.system.service.offering.details" />',
-'label.disk.offering.details': '<fmt:message key="label.disk.offering.details" />',
-'label.network.offering.details': '<fmt:message key="label.network.offering.details" />',
-'label.remove.this.physical.network': '<fmt:message key="label.remove.this.physical.network" />',
-'label.physical.network.name': '<fmt:message key="label.physical.network.name" />',
-'label.save.changes': '<fmt:message key="label.save.changes" />',
-'label.launch.zone': '<fmt:message key="label.launch.zone" />',
-'label.autoscale.configuration.wizard': '<fmt:message key="label.autoscale.configuration.wizard" />',
-'label.health.check.wizard': '<fmt:message key="label.health.check.wizard" />',
-'label.health.check.message.desc': '<fmt:message key="label.health.check.message.desc" />',
-'label.health.check.configurations.options': '<fmt:message key="label.health.check.configurations.options" />',
-'label.health.check.advanced.options': '<fmt:message key="label.health.check.advanced.options" />',
-'label.add.isolated.guest.network.with.sourcenat': '<fmt:message key="label.add.isolated.guest.network.with.sourcenat" />',
-'message.network.remote.access.vpn.configuration': '<fmt:message key="message.network.remote.access.vpn.configuration" />',
-'label.vpc.router.details': '<fmt:message key="label.vpc.router.details" />',
-'label.edit.rule': '<fmt:message key="label.edit.rule" />',
-'label.advanced.search': '<fmt:message key="label.advanced.search" />',
-'label.internal.lb': '<fmt:message key="label.internal.lb" />',
-'label.public.lb': '<fmt:message key="label.public.lb" />',
-'label.acl.list.rules': '<fmt:message key="label.acl.list.rules" />',
-'label.static.routes': '<fmt:message key="label.static.routes" />',
-'label.network.details': '<fmt:message key="label.network.details" />',
-'label.scaleup.policy': '<fmt:message key="label.scaleup.policy" />',
-'label.scaledown.policy': '<fmt:message key="label.scaledown.policy" />',
-'label.configure.sticky.policy': '<fmt:message key="label.configure.sticky.policy" />',
-'label.please.complete.the.following.fields': '<fmt:message key="label.please.complete.the.following.fields" />',
-'message.desc.add.new.lb.sticky.rule': '<fmt:message key="message.desc.add.new.lb.sticky.rule" />',
-'label.ssh.key.pairs': '<fmt:message key="label.ssh.key.pairs" />',
-'message.desc.create.ssh.key.pair': '<fmt:message key="message.desc.create.ssh.key.pair" />',
-'message.removed.ssh.key.pair': '<fmt:message key="message.removed.ssh.key.pair" />',
-'message.please.select.ssh.key.pair.use.with.this.vm': '<fmt:message key="message.please.select.ssh.key.pair.use.with.this.vm" />',
-'message.ldap.group.import': '<fmt:message key="message.ldap.group.import" />',
-'label.vpn.force.encapsulation': '<fmt:message key="label.vpn.force.encapsulation" />'
-});
-</script>
diff --git a/ui/error.jsp b/ui/error.html
similarity index 98%
rename from ui/error.jsp
rename to ui/error.html
index 9fecfb7..130fa6e 100644
--- a/ui/error.jsp
+++ b/ui/error.html
@@ -1,4 +1,4 @@
-<%--
+<!--
      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
@@ -15,7 +15,7 @@
      KIND, either express or implied.  See the License for the
      specific language governing permissions and limitations
      under the License.
---%>
+-->
 <!doctype html>
 <html>
     <head>
diff --git a/ui/index.jsp b/ui/index.html
similarity index 74%
rename from ui/index.jsp
rename to ui/index.html
index 49290fe..41894a6 100644
--- a/ui/index.jsp
+++ b/ui/index.html
@@ -1,5 +1,4 @@
-
-<%--
+<!--
      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
@@ -16,14 +15,7 @@
      KIND, either express or implied.  See the License for the
      specific language governing permissions and limitations
      under the License.
-     --%><%@ page contentType="text/html; charset=UTF-8" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
-<c:if test="${!empty cookie.lang}">
-    <fmt:setLocale value="${cookie.lang.value}" />
-</c:if>
-<fmt:setBundle basename="resources/messages"/>
-<% long now = System.currentTimeMillis(); %>
+-->
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
@@ -34,13 +26,10 @@
         <link type="text/css" rel="stylesheet" href="lib/reset.css"/>
         <link type="text/css" rel="stylesheet" href="css/cloudstack3.css" />
         <link type="text/css" rel="stylesheet" href="css/token-input-facebook.css" />
-        <c:if test="${!empty cookie.lang && cookie.lang.value != 'en'}">
-            <link type="text/css" rel="stylesheet" href="css/cloudstack3.${cookie.lang.value}.css" />
-        </c:if>
         <!--[if IE 7]>
             <link type="text/css" rel="stylesheet" href="css/cloudstack3-ie7.css" />
             <![endif]-->
-	<link type="text/css" rel="stylesheet" href="css/custom.css" />
+    <link type="text/css" rel="stylesheet" href="css/custom.css" />
     </head>
     <body>
         <!-- CloudStack widget content -->
@@ -54,52 +43,35 @@
                     <div class="fields">
                         <div id="login-dropdown">
                             <select id="login-options" style="width: 260px">
-                                <option value="cloudstack-login">Local <fmt:message key="label.login"/></option>
                             </select>
                         </div>
 
                         <div id="cloudstack-login">
                             <!-- User name -->
                             <div class="field username">
-                                <label for="username"><fmt:message key="label.username"/></label>
+                                <label for="username"><translate key="label.username"/></label>
                                 <input type="text" name="username" class="required" />
                             </div>
                             <!-- Password -->
                             <div class="field password">
-                                <label for="password"><fmt:message key="label.password"/></label>
+                                <label for="password"><translate key="label.password"/></label>
                                 <input type="password" name="password" class="required" autocomplete="off" />
                             </div>
                             <!-- Domain -->
                             <div class="field domain">
-                                <label for="domain"><fmt:message key="label.domain"/></label>
+                                <label for="domain"><translate key="label.domain"/></label>
                                 <input type="text" name="domain" />
                             </div>
                         </div>
 
                         <div id="login-submit">
                             <!-- Submit (login) -->
-                            <input id="login-submit" type="submit" value="<fmt:message key="label.login"/>" />
+                            <input id="login-submit" type="submit" tr="label.login" trf='value' value="label.login" />
                         </div>
                         <!-- Select language -->
                         <div class="select-language">
-                            <select name="language">
+                            <select name="language" id="l10n-options">
                                 <option value=""></option> <!-- when this blank option is selected, default language of the browser will be used -->
-                                <option value="en"><fmt:message key="label.lang.english"/></option>
-                                <option value="ja_JP"><fmt:message key="label.lang.japanese"/></option>
-                                <option value="zh_CN"><fmt:message key="label.lang.chinese"/></option>
-                                <option value="ru_RU"><fmt:message key="label.lang.russian"/></option>
-                                <option value="fr_FR"><fmt:message key="label.lang.french"/></option>
-                                <option value="pt_BR"><fmt:message key="label.lang.brportugese"/></option>
-                                <option value="ca"><fmt:message key="label.lang.catalan"/></option>
-                                <option value="ko_KR"><fmt:message key="label.lang.korean"/></option>
-                                <option value="es"><fmt:message key="label.lang.spanish"/></option>
-                                <option value="de_DE"><fmt:message key="label.lang.german"/></option>
-                                <option value="it_IT"><fmt:message key="label.lang.italian"/></option>
-                                <option value="nb_NO"><fmt:message key="label.lang.norwegian"/></option>
-                                <option value="ar"><fmt:message key="label.lang.arabic"/></option>
-                                <option value="nl_NL"><fmt:message key="label.lang.dutch"/></option>
-                                <option value="pl"><fmt:message key="label.lang.polish"/></option>
-                                <option value="hu"><fmt:message key="label.lang.hungarian"/></option>
                             </select>
                         </div>
                     </div>
@@ -109,14 +81,14 @@
             <div class="multi-wizard instance-wizard">
                 <div class="progress">
                     <ul>
-                        <li class="first"><span class="number">1</span><span><fmt:message key="label.setup"/></span><span class="arrow"></span></li>
-                        <li><span class="number">2</span><span class="multiline"><fmt:message key="label.select.a.template"/></span><span class="arrow"></span></li>
-                        <li><span class="number">3</span><span class="multiline"><fmt:message key="label.compute.offering"/></span><span class="arrow"></span></li>
-                        <li><span class="number">4</span><span class="multiline"><fmt:message key="label.disk.offering"/></span><span class="arrow"></span></li>
-                        <li><span class="number">5</span><span><fmt:message key="label.affinity"/></span><span class="arrow"></span></li>
-                        <li><span class="number">6</span><span><fmt:message key="label.menu.network"/></span><span class="arrow"></span></li>
-                        <li><span class="number">7</span><span><fmt:message key="label.menu.sshkeypair"/></span><span class="arrow"></span></li>
-                        <li class="last"><span class="number">8</span><span><fmt:message key="label.review"/></span></li>
+                        <li class="first"><span class="number">1</span><span><translate key="label.setup"/></span><span class="arrow"></span></li>
+                        <li><span class="number">2</span><span class="multiline"><translate key="label.select.a.template"/></span><span class="arrow"></span></li>
+                        <li><span class="number">3</span><span class="multiline"><translate key="label.compute.offering"/></span><span class="arrow"></span></li>
+                        <li><span class="number">4</span><span class="multiline"><translate key="label.disk.offering"/></span><span class="arrow"></span></li>
+                        <li><span class="number">5</span><span><translate key="label.affinity"/></span><span class="arrow"></span></li>
+                        <li><span class="number">6</span><span><translate key="label.menu.network"/></span><span class="arrow"></span></li>
+                        <li><span class="number">7</span><span><translate key="label.menu.sshkeypair"/></span><span class="arrow"></span></li>
+                        <li class="last"><span class="number">8</span><span><translate key="label.review"/></span></li>
                     </ul>
                 </div>
                 <form>
@@ -126,26 +98,25 @@
                             <div class="content">
                                 <!-- Select a zone -->
                                 <div class="section select-zone">
-                                    <h3><fmt:message key="label.select.a.zone"/></h3>
-                                    <p><fmt:message key="message.select.a.zone"/></p>
+                                    <h3><translate key="label.select.a.zone"/></h3>
+                                    <p><translate key="message.select.a.zone"/></p>
                                     <div class="select-area">
                                         <div class="desc"></div>
                                         <select name="zoneid" class="required">
-                                            <option default="default" value="" ><fmt:message key="label.select.a.zone"/></option>
                                         </select>
                                     </div>
                                 </div>
                                 <!-- Select template -->
                                 <div class="section select-template">
-                                    <h3><fmt:message key="label.select.iso.or.template" /></h3>
+                                    <h3><translate key="label.select.iso.or.template" /></h3>
                                     <p></p>
                                     <div class="select-area">
-                                        <div class="desc"><fmt:message key="message.template.desc"/></div>
+                                        <div class="desc"><translate key="message.template.desc"/></div>
                                         <input type="radio" name="select-template" value="select-template" />
-                                        <label><fmt:message key="label.template"/></label>
+                                        <label><translate key="label.template"/></label>
                                     </div>
                                     <div class="select-area">
-                                        <div class="desc"><fmt:message key="message.iso.desc"/></div>
+                                        <div class="desc"><translate key="message.iso.desc"/></div>
                                         <input type="radio" name="select-template" value="select-iso" />
                                         <label>ISO</label>
                                     </div>
@@ -157,14 +128,14 @@
                             <!-- Select template -->
                             <div class="wizard-step-conditional select-template">
                                 <div class="main-desc">
-                                    <p><fmt:message key="message.select.template"/></p>
+                                    <p><translate key="message.select.template"/></p>
                                 </div>
                                 <div class="template-select content tab-view">
                                     <ul>
-                                        <li class="first"><a href="#instance-wizard-featured-templates"><fmt:message key="label.featured"/></a></li>
-                                        <li><a href="#instance-wizard-community-templates"><fmt:message key="label.community"/></a></li>
-                                        <li><a href="#instance-wizard-my-templates"><fmt:message key="label.my.templates"/></a></li>
-                                        <li class="last"><a href="#instance-wizard-shared-templates"><fmt:message key="label.shared"/></a></li>
+                                        <li class="first"><a href="#instance-wizard-featured-templates"><translate key="label.featured"/></a></li>
+                                        <li><a href="#instance-wizard-community-templates"><translate key="label.community"/></a></li>
+                                        <li><a href="#instance-wizard-my-templates"><translate key="label.my.templates"/></a></li>
+                                        <li class="last"><a href="#instance-wizard-shared-templates"><translate key="label.shared"/></a></li>
                                     </ul>
 
                                     <!-- Used for Select Template only -->
@@ -189,7 +160,7 @@
 
                                     <!-- Root disk size -->
                                     <div class="section custom-size">
-                                        <label><fmt:message key="label.root.disk.size"/></label>
+                                        <label><translate key="label.root.disk.size"/></label>
                                         <input type="text" name="rootDiskSize" />
                                     </div>
                                 </div>
@@ -198,14 +169,14 @@
                             <!-- Select ISO -->
                             <div class="wizard-step-conditional select-iso">
                                 <div class="main-desc">
-                                    <p><fmt:message key="message.select.iso"/></p>
+                                    <p><translate key="message.select.iso"/></p>
                                 </div>
                                 <div class="iso-select content tab-view">
                                     <ul>
-                                        <li class="first"><a href="#instance-wizard-featured-isos"><fmt:message key="label.featured"/></a></li>
-                                        <li><a href="#instance-wizard-community-isos"><fmt:message key="label.community"/></a></li>
-                                        <li><a href="#instance-wizard-my-isos"><fmt:message key="label.menu.my.isos"/></a></li>
-                                        <li class="last"><a href="#instance-wizard-shared-isos"><fmt:message key="label.shared"/></a></li>
+                                        <li class="first"><a href="#instance-wizard-featured-isos"><translate key="label.featured"/></a></li>
+                                        <li><a href="#instance-wizard-community-isos"><translate key="label.community"/></a></li>
+                                        <li><a href="#instance-wizard-my-isos"><translate key="label.menu.my.isos"/></a></li>
+                                        <li class="last"><a href="#instance-wizard-shared-isos"><translate key="label.shared"/></a></li>
                                     </ul>
                                     <div id="instance-wizard-featured-isos">
                                         <div class="select-container">
@@ -236,15 +207,15 @@
                                 <!-- Custom size slider -->
                                 <div class="section custom-size">
                                     <div class="field">
-                                        <label><fmt:message key="label.num.cpu.cores"/></label>
+                                        <label><translate key="label.num.cpu.cores"/></label>
                                         <input type="text" class="required disallowSpecialCharacters" name="compute-cpu-cores" />
                                     </div>
                                     <div class="field">
-                                        <label><fmt:message key="label.cpu.mhz"/></label>
+                                        <label><translate key="label.cpu.mhz"/></label>
                                         <input type="text" class="required disallowSpecialCharacters" name="compute-cpu" />
                                     </div>
                                     <div class="field">
-                                        <label><fmt:message key="label.memory.mb"/></label>
+                                        <label><translate key="label.memory.mb"/></label>
                                         <input type="text" class="required disallowSpecialCharacters" name="compute-memory" />
                                     </div>
                                 </div>
@@ -252,11 +223,11 @@
                                 <!-- Custom iops -->
                                 <div class="section custom-iops">
                                     <div class="field">
-                                        <label><fmt:message key="label.disk.iops.min"/></label>
+                                        <label><translate key="label.disk.iops.min"/></label>
                                         <input type="text" class="disallowSpecialCharacters" name="disk-min-iops" />
                                     </div>
                                     <div class="field">
-                                        <label><fmt:message key="label.disk.iops.max"/></label>
+                                        <label><translate key="label.disk.iops.max"/></label>
                                         <input type="text" class="disallowSpecialCharacters" name="disk-max-iops" />
                                     </div>
                                 </div>
@@ -268,7 +239,7 @@
                             <div class="content">
                                 <div class="section no-thanks">
                                     <input type="radio" name="diskofferingid" value="0" />
-                                    <label><fmt:message key="label.no.thanks"/></label>
+                                    <label><translate key="label.no.thanks"/></label>
                                 </div>
 
                                 <!-- Existing offerings -->
@@ -277,7 +248,7 @@
 
                                 <!-- Custom size slider -->
                                 <div class="section custom-size custom-disk-size">
-                                    <label><fmt:message key="label.disk.size"/></label>
+                                    <label><translate key="label.disk.size"/></label>
 
                                     <!-- Slider -->
                                     <label class="size min"><span></span> GB</label>
@@ -291,11 +262,11 @@
                                 <!-- Custom iops -->
                                 <div class="section custom-iops-do">
                                     <div class="field">
-                                        <label><fmt:message key="label.disk.iops.min"/></label>
+                                        <label><translate key="label.disk.iops.min"/></label>
                                         <input type="text" class="disallowSpecialCharacters" name="disk-min-iops-do" />
                                     </div>
                                     <div class="field">
-                                        <label><fmt:message key="label.disk.iops.max"/></label>
+                                        <label><translate key="label.disk.iops.max"/></label>
                                         <input type="text" class="disallowSpecialCharacters" name="disk-max-iops-do" />
                                     </div>
                                 </div>
@@ -314,13 +285,13 @@
                         <div class="step network always-load" wizard-step-id="network">
                             <!-- 5a: Network description -->
                             <div class="wizard-step-conditional nothing-to-select">
-                                <p id="from_instance_page_1"><fmt:message key="message.zone.no.network.selection"/></p>
-                                <p id="from_instance_page_2"><fmt:message key="message.please.proceed"/></p>
+                                <p id="from_instance_page_1"><translate key="message.zone.no.network.selection"/></p>
+                                <p id="from_instance_page_2"><translate key="message.please.proceed"/></p>
                                 <p id="from_vpc_tier">
                                     <div class="specify-ip">
                                         <label>
-                                            <fmt:message key="label.ip.address"/>
-                                            (<fmt:message key="label.optional"/>):
+                                            <translate key="label.ip.address"/>
+                                            (<translate key="label.optional"/>):
                                         </label>
                                         <input type="text" name="vpc-specify-ip" />
                                     </div>
@@ -331,7 +302,7 @@
                             <div class="wizard-step-conditional select-network">
                                 <div class="content">
                                     <div class="main-desc">
-                                        <fmt:message key="message.please.select.networks"/>
+                                        <translate key="message.please.select.networks"/>
                                     </div>
                                     <div class="select-vpc">
                                         <label>VPC:</label>
@@ -343,7 +314,7 @@
                                         <table>
                                             <thead>
                                                 <tr>
-                                                    <th><fmt:message key="label.networks"/></th>
+                                                    <th><translate key="label.networks"/></th>
                                                 </tr>
                                             </thead>
                                             <tbody>
@@ -360,7 +331,7 @@
                                         <table>
                                             <thead>
                                                 <tr>
-                                                    <th><fmt:message key="label.add.network"/></th>
+                                                    <th><translate key="label.add.network"/></th>
                                                 </tr>
                                             </thead>
                                             <tbody>
@@ -374,12 +345,12 @@
                                                                        checked="checked" />
                                                                 <!-- Default (NEW) -->
                                                                 <div class="select-desc hide-if-selected">
-                                                                    <div class="name"><fmt:message key="label.new"/></div>
+                                                                    <div class="name"><translate key="label.new"/></div>
                                                                 </div>
 
                                                                 <!-- Name -->
                                                                 <div class="field name hide-if-unselected">
-                                                                    <div class="name"> <span class="field-required">*</span> <fmt:message key="label.name"/></div>
+                                                                    <div class="name"> <span class="field-required">*</span> <translate key="label.name"/></div>
                                                                     <div class="value">
                                                                         <input type="text" class="required disallowSpecialCharacters" name="new-network-name" />
                                                                     </div>
@@ -387,7 +358,7 @@
 
                                                                 <!-- Service offering -->
                                                                 <div class="select-desc field service-offering hide-if-unselected">
-                                                                    <div class="name"><fmt:message key="label.network.offering"/></div>
+                                                                    <div class="name"><translate key="label.network.offering"/></div>
                                                                     <div class="desc">
                                                                         <select name="new-network-networkofferingid">
                                                                         </select>
@@ -396,7 +367,7 @@
 
                                                                 <div class="secondary-input hide-if-unselected">
                                                                     <input type="radio" name="defaultNetwork" value="new-network" wizard-field="default-network" />
-                                                                    <div class="name"><fmt:message key="label.default"/></div>
+                                                                    <div class="name"><translate key="label.default"/></div>
                                                                 </div>
                                                             </div>
                                                         </div>
@@ -410,7 +381,7 @@
                             <!-- Step 5c: Select security group -->
                             <div class="wizard-step-conditional select-security-group">
                                 <div class="main-desc">
-                                    <fmt:message key="message.select.security.groups"/>
+                                    <translate key="message.select.security.groups"/>
                                 </div>
                                 <div class="content security-groups">
                                     <div class="select-container">
@@ -423,7 +394,7 @@
                           <div class="content">
                             <div class="section no-thanks">
                               <input type="radio" name="sshkeypair" value="" />
-                              <label><fmt:message key="label.no.thanks"/></label>
+                              <label><translate key="label.no.thanks"/></label>
                             </div>
                             <!-- Existing key pairs -->
                             <div class="select-container"></div>
@@ -432,14 +403,14 @@
                         <!-- Step 8: Review -->
                         <div class="step review" wizard-step-id="review">
                             <div class="main-desc">
-                                <fmt:message key="message.vm.review.launch"/>
+                                <translate key="message.vm.review.launch"/>
                             </div>
                             <div class="content">
                                 <div class="select-container">
                                     <!-- Name -->
                                     <div class="select odd vm-instance-name">
                                         <div class="name">
-                                            <span><fmt:message key="label.name"/> (<fmt:message key="label.optional"/>)</span>
+                                            <span><translate key="label.name"/> (<translate key="label.optional"/>)</span>
                                         </div>
                                         <div class="value">
                                             <input type="text" name="displayname" class="disallowSpecialCharacters" />
@@ -448,7 +419,7 @@
                                     <!-- Add to group -->
                                     <div class="select">
                                         <div class="name">
-                                            <span><fmt:message key="label.add.to.group"/> (<fmt:message key="label.optional"/>)</span>
+                                            <span><translate key="label.add.to.group"/> (<translate key="label.optional"/>)</span>
                                         </div>
                                         <div class="value">
                                             <input type="text" name="groupname" class="disallowSpecialCharacters" />
@@ -458,15 +429,11 @@
                                     <!-- Keyboard Language -->
                                     <div class="select odd">
                                         <div class="name">
-                                            <span><fmt:message key="label.keyboard.language" /></span>
+                                            <span><translate key="label.keyboard.language" /></span>
                                         </div>
                                         <div class="value">
-                                            <select name="keyboardLanguage">
+                                            <select name="keyboardLanguage" id="keyboard-options">
                                                 <option value=""></option>
-                                                <option value="us"><fmt:message key="label.standard.us.keyboard" /></option>
-                                                <option value="uk"><fmt:message key="label.uk.keyboard" /></option>
-                                                <option value="jp"><fmt:message key="label.japanese.keyboard" /></option>
-                                                <option value="sc"><fmt:message key="label.simplified.chinese.keyboard" /></option>
                                             </select>
                                         </div>
                                     </div>
@@ -474,120 +441,120 @@
                                     <!-- Zone -->
                                     <div class="select">
                                         <div class="name">
-                                            <span><fmt:message key="label.zone"/></span>
+                                            <span><translate key="label.zone"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="zone"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="1"><fmt:message key="label.edit"/></a>
+                                            <a href="1"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
                                     <!-- Hypervisor -->
                                     <div class="select odd">
                                         <div class="name">
-                                            <span><fmt:message key="label.hypervisor"/></span>
+                                            <span><translate key="label.hypervisor"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="hypervisor"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="2"><fmt:message key="label.edit"/></a>
+                                            <a href="2"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
                                     <!-- Template -->
                                     <div class="select">
                                         <div class="name">
-                                            <span><fmt:message key="label.template"/></span>
+                                            <span><translate key="label.template"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="template"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="2"><fmt:message key="label.edit"/></a>
+                                            <a href="2"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
                                     <!-- Service offering -->
                                     <div class="select odd">
                                         <div class="name">
-                                            <span><fmt:message key="label.compute.offering"/></span>
+                                            <span><translate key="label.compute.offering"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="service-offering"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="3"><fmt:message key="label.edit"/></a>
+                                            <a href="3"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
                                     <!-- Disk offering -->
                                     <div class="select">
                                         <div class="name">
-                                            <span><fmt:message key="label.disk.offering"/></span>
+                                            <span><translate key="label.disk.offering"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="disk-offering"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="4"><fmt:message key="label.edit"/></a>
+                                            <a href="4"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
 
                                     <!-- Affinity -->
                                     <div class="select">
                                         <div class="name">
-                                            <span><fmt:message key="label.affinity.groups"/></span>
+                                            <span><translate key="label.affinity.groups"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="affinity-groups"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="5"><fmt:message key="label.edit"/></a>
+                                            <a href="5"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
 
                                     <!-- Primary network -->
                                     <div class="select odd">
                                         <div class="name">
-                                            <span><fmt:message key="label.network"/></span>
+                                            <span><translate key="label.network"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="default-network" conditional-field="select-network"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="6"><fmt:message key="label.edit"/></a>
+                                            <a href="6"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
 
                                     <!-- Security groups -->
                                     <div class="select odd">
                                         <div class="name">
-                                            <span><fmt:message key="label.security.groups"/></span>
+                                            <span><translate key="label.security.groups"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="security-groups" conditional-field="select-security-group"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="6"><fmt:message key="label.edit"/></a>
+                                            <a href="6"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
 
                                     <!-- SSH Key Pairs -->
                                     <div class="select">
                                         <div class="name">
-                                            <span><fmt:message key="label.ssh.key.pairs"/></span>
+                                            <span><translate key="label.ssh.key.pairs"/></span>
                                         </div>
                                         <div class="value">
                                             <span wizard-field="sshkey-pairs"></span>
                                         </div>
                                         <div class="edit">
-                                            <a href="7"><fmt:message key="label.edit"/></a>
+                                            <a href="7"><translate key="label.edit"/></a>
                                         </div>
                                     </div>
 
                                     <!-- userdata -->
                                     <div class="select">
                                         <div class="name">
-                                            <span><fmt:message key="label.add.userdata"/> (<fmt:message key="label.optional"/>)</span>
+                                            <span><translate key="label.add.userdata"/> (<translate key="label.optional"/>)</span>
                                         </div>
                                         <div class="value">
                                             <textarea name="userdata" class="disallowSpecialCharacters"></textarea>
@@ -612,9 +579,9 @@
                 </div>
                 <!-- Buttons -->
                 <div class="buttons">
-                    <div class="button previous"><span><fmt:message key="label.previous"/></span></div>
-                    <div class="button cancel"><span><fmt:message key="label.cancel"/></span></div>
-                    <div class="button next"><span><fmt:message key="label.next"/></span></div>
+                    <div class="button previous"><span><translate key="label.previous"/></span></div>
+                    <div class="button cancel"><span><translate key="label.cancel"/></span></div>
+                    <div class="button next"><span><translate key="label.next"/></span></div>
                 </div>
             </div>
             <!-- Accounts wizard -->
@@ -626,10 +593,10 @@
                                 <table>
                                     <thead>
                                         <tr>
-                                            <th><fmt:message key="label.select"/></th>
-                                            <th><fmt:message key="label.name"/></th>
-                                            <th><fmt:message key="label.username"/></th>
-                                            <th><fmt:message key="label.email"/></th>
+                                            <th><translate key="label.select"/></th>
+                                            <th><translate key="label.name"/></th>
+                                            <th><translate key="label.username"/></th>
+                                            <th><translate key="label.email"/></th>
                                         </tr>
                                     </thead>
                                     <tbody>
@@ -644,26 +611,26 @@
                     </div>
                 </form>
                 <div class="buttons">
-                    <button class="cancel ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"><span><fmt:message key="label.cancel"/></span></button>
-                    <button class="next ok ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"><span><fmt:message key="label.add"/></span></button>
+                    <button class="cancel ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"><span><translate key="label.cancel"/></span></button>
+                    <button class="next ok ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"><span><translate key="label.add"/></span></button>
                 </div>
             </div>
             <!-- Zone wizard -->
             <div class="multi-wizard zone-wizard">
                 <div class="progress">
                     <ul>
-                        <li class="first"><span class="number">1</span><span><fmt:message key="label.zone.type"/></span><span class="arrow"></span></li>
-                        <li><span class="number">2</span><span><fmt:message key="label.setup.zone"/></span><span class="arrow"></span></li>
-                        <li><span class="number">3</span><span><fmt:message key="label.setup.network"/></span><span class="arrow"></span></li>
+                        <li class="first"><span class="number">1</span><span><translate key="label.zone.type"/></span><span class="arrow"></span></li>
+                        <li><span class="number">2</span><span><translate key="label.setup.zone"/></span><span class="arrow"></span></li>
+                        <li><span class="number">3</span><span><translate key="label.setup.network"/></span><span class="arrow"></span></li>
                         <li style="display:none;"></li>
                         <li style="display:none;"></li>
                         <li style="display:none;"></li>
                         <li style="display:none;"></li>
-                        <li><span class="number">4</span><span><fmt:message key="label.add.resources"/></span><span class="arrow"></span></li>
+                        <li><span class="number">4</span><span><translate key="label.add.resources"/></span><span class="arrow"></span></li>
                         <li style="display:none;"></li>
                         <li style="display:none;"></li>
                         <li style="display:none;"></li>
-                        <li class="last"><span class="number">5</span><span><fmt:message key="label.launch"/></span></li>
+                        <li class="last"><span class="number">5</span><span><translate key="label.launch"/></span></li>
                     </ul>
                 </div>
                 <div class="steps">
@@ -673,34 +640,34 @@
                             <div class="content">
                                 <!-- Select template -->
                                 <div class="section select-network-model">
-                                    <h3><fmt:message key="label.set.up.zone.type"/></h3>
-                                    <p><fmt:message key="message.please.select.a.configuration.for.your.zone"/></p>
+                                    <h3><translate key="label.set.up.zone.type"/></h3>
+                                    <p><translate key="message.please.select.a.configuration.for.your.zone"/></p>
                                     <div class="select-area basic-zone">
                                         <div class="desc">
-                                            <fmt:message key="message.desc.basic.zone"/>
+                                            <translate key="message.desc.basic.zone"/>
                                         </div>
                                         <input type="radio" name="network-model" value="Basic" checked="checked" />
-                                        <label><fmt:message key="label.basic"/></label>
+                                        <label><translate key="label.basic"/></label>
                                     </div>
                                     <div class="select-area advanced-zone disabled">
                                         <div class="desc">
-                                            <fmt:message key="message.desc.advanced.zone"/>
+                                            <translate key="message.desc.advanced.zone"/>
                                         </div>
                                         <input type="radio" name="network-model" value="Advanced" />
-                                        <label><fmt:message key="label.advanced"/></label>
+                                        <label><translate key="label.advanced"/></label>
                                         <!-- Isolation mode -->
                                         <div class="isolation-mode">
                                             <div class="title">
-                                                <fmt:message key="label.isolation.mode"/>
+                                                <translate key="label.isolation.mode"/>
                                             </div>
 
                                             <!-- Security groups -->
                                             <div class="select-area">
                                                 <div class="desc">
-                                                    <fmt:message key="message.advanced.security.group"/>
+                                                    <translate key="message.advanced.security.group"/>
                                                 </div>
                                                 <input type="checkbox" name="zone-advanced-sg-enabled" disabled="disabled" />
-                                                <label><fmt:message key="label.menu.security.groups"/></label>
+                                                <label><translate key="label.menu.security.groups"/></label>
                                             </div>
                                         </div>
                                     </div>
@@ -712,7 +679,7 @@
                     <div class="setup-zone" zone-wizard-form="zone"
                          zone-wizard-step-id="addZone">
                         <div class="info-desc">
-                            <fmt:message key="message.desc.zone"/>
+                            <translate key="message.desc.zone"/>
                         </div>
                         <div class="content input-area">
                             <div class="select-container"></div>
@@ -723,92 +690,96 @@
                          zone-wizard-step-id="setupPhysicalNetwork"
                          zone-wizard-prefilter="setupPhysicalNetwork">
                         <ul class="subnav">
-                            <li class="physical-network active"><fmt:message key="label.physical.network"/></li>
-                            <li class="public-network"><fmt:message key="label.public.traffic"/></li>
-                            <li class="pod"><fmt:message key="label.pod"/></li>
-                            <li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
-                            <li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
+                            <li class="physical-network active"><translate key="label.physical.network"/></li>
+                            <li class="public-network"><translate key="label.public.traffic"/></li>
+                            <li class="pod"><translate key="label.pod"/></li>
+                            <li class="guest-traffic"><translate key="label.guest.traffic"/></li>
+                            <li class="conditional storage-traffic"><translate key="label.storage.traffic"/></li>
                         </ul>
                         <div class="info-desc conditional advanced">
-                            <fmt:message key="message.setup.physical.network.during.zone.creation"/>
+                            <translate key="message.setup.physical.network.during.zone.creation"/>
                         </div>
                         <div class="info-desc conditional basic">
-                            <fmt:message key="message.setup.physical.network.during.zone.creation.basic"/>
+                            <translate key="message.setup.physical.network.during.zone.creation.basic"/>
                         </div>
-                        <div class="button add new-physical-network"><span class="icon">&nbsp;</span><span><fmt:message key="label.add.physical.network"/></span></div>
+                        <div class="button add new-physical-network"><span class="icon">&nbsp;</span><span><translate key="label.add.physical.network"/></span></div>
                         <!-- Traffic types drag area -->
                         <div class="traffic-types-drag-area">
-                            <div class="header"><fmt:message key="label.traffic.types"/></div>
+                            <div class="header"><translate key="label.traffic.types"/></div>
                             <ul>
                                 <li class="management">
                                     <ul class="container">
                                         <li traffic-type-id="management"
-                                            title="<fmt:message key="label.zoneWizard.trafficType.management"/>"
+                                            tr="label.zoneWizard.trafficType.management" trf="title"
+                                            title="label.zoneWizard.trafficType.management"
                                             class="traffic-type-draggable management">
                                             <!-- Edit buttton -->
                                             <div class="edit-traffic-type">
-                                                <span class="name"><fmt:message key="label.management"/></span>
+                                                <span class="name"><translate key="label.management"/></span>
                                                 <span class="icon">&nbsp;</span>
                                                 <span>Edit</span>
                                             </div>
                                         </li>
                                     </ul>
                                     <div class="info">
-                                        <div class="title"><fmt:message key="label.management"/></div>
+                                        <div class="title"><translate key="label.management"/></div>
                                         <div class="desc"></div>
                                     </div>
                                 </li>
                                 <li class="public">
                                     <ul class="container">
                                         <li traffic-type-id="public"
-                                            title="<fmt:message key="label.zoneWizard.trafficType.public"/>"
+                                            tr="label.zoneWizard.trafficType.public" trf="title"
+                                            title="label.zoneWizard.trafficType.public"
                                             class="traffic-type-draggable public">
                                             <!-- Edit buttton -->
                                             <div class="edit-traffic-type">
-                                                <span class="name"><fmt:message key="label.public"/></span>
+                                                <span class="name"><translate key="label.public"/></span>
                                                 <span class="icon">&nbsp;</span>
                                                 <span>Edit</span>
                                             </div>
                                         </li>
                                     </ul>
                                     <div class="info">
-                                        <div class="title"><fmt:message key="label.public"/></div>
+                                        <div class="title"><translate key="label.public"/></div>
                                         <div class="desc"></div>
                                     </div>
                                 </li>
                                 <li class="guest">
                                     <ul class="container">
                                         <li traffic-type-id="guest"
-                                            title="<fmt:message key="label.zoneWizard.trafficType.guest"/>"
+                                            tr="label.zoneWizard.trafficType.guest" trf="title"
+                                            title="label.zoneWizard.trafficType.guest"
                                             class="traffic-type-draggable guest">
                                             <!-- Edit buttton -->
                                             <div class="edit-traffic-type">
-                                                <span class="name"><fmt:message key="label.guest"/></span>
+                                                <span class="name"><translate key="label.guest"/></span>
                                                 <span class="icon">&nbsp;</span>
                                                 <span>Edit</span>
                                             </div>
                                         </li>
                                     </ul>
                                     <div class="info">
-                                        <div class="title"><fmt:message key="label.guest"/></div>
+                                        <div class="title"><translate key="label.guest"/></div>
                                         <div class="desc"></div>
                                     </div>
                                 </li>
                                 <li class="storage">
                                     <ul class="container">
                                         <li traffic-type-id="storage"
-                                            title="<fmt:message key="label.zoneWizard.trafficType.storage"/>"
+                                            tr="label.zoneWizard.trafficType.storage" trf="title"
+                                            title="label.zoneWizard.trafficType.storage"
                                             class="traffic-type-draggable storage">
                                             <!-- Edit buttton -->
                                             <div class="edit-traffic-type">
-                                                <span class="name"><fmt:message key="label.storage"/></span>
+                                                <span class="name"><translate key="label.storage"/></span>
                                                 <span class="icon">&nbsp;</span>
                                                 <span>Edit</span>
                                             </div>
                                         </li>
                                     </ul>
                                     <div class="info">
-                                        <div class="title"><fmt:message key="label.storage"/></div>
+                                        <div class="title"><translate key="label.storage"/></div>
                                         <div class="desc"></div>
                                     </div>
                                 </li>
@@ -825,13 +796,13 @@
                          zone-wizard-form="basicPhysicalNetwork"
                          zone-wizard-prefilter="addNetscalerDevice">
                         <ul class="subnav">
-                            <li class="conditional netscaler physical-network active"><fmt:message key="label.netScaler"/></li>
-                            <li class="public-network"><fmt:message key="label.public.traffic"/></li>
-                            <li class="pod"><fmt:message key="label.pod"/></li>
-                            <li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
-                            <li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
+                            <li class="conditional netscaler physical-network active"><translate key="label.netScaler"/></li>
+                            <li class="public-network"><translate key="label.public.traffic"/></li>
+                            <li class="pod"><translate key="label.pod"/></li>
+                            <li class="guest-traffic"><translate key="label.guest.traffic"/></li>
+                            <li class="conditional storage-traffic"><translate key="label.storage.traffic"/></li>
                         </ul>
-                        <div class="info-desc"><fmt:message key="label.please.specify.netscaler.info"/></div>
+                        <div class="info-desc"><translate key="label.please.specify.netscaler.info"/></div>
                         <div class="content input-area">
                             <div class="select-container"></div>
                         </div>
@@ -840,15 +811,15 @@
                     <div class="setup-public-traffic" zone-wizard-prefilter="addPublicNetwork"
                          zone-wizard-step-id="configurePublicTraffic">
                         <ul class="subnav">
-                            <li class="conditional netscaler physical-network"><fmt:message key="label.netScaler"/></li>
-                            <li class="public-network active"><fmt:message key="label.public.traffic"/></li>
-                            <li class="pod"><fmt:message key="label.pod"/></li>
-                            <li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
-                            <li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
+                            <li class="conditional netscaler physical-network"><translate key="label.netScaler"/></li>
+                            <li class="public-network active"><translate key="label.public.traffic"/></li>
+                            <li class="pod"><translate key="label.pod"/></li>
+                            <li class="guest-traffic"><translate key="label.guest.traffic"/></li>
+                            <li class="conditional storage-traffic"><translate key="label.storage.traffic"/></li>
                         </ul>
                         <div class="info-desc" id="add_zone_public_traffic_desc">
-                            <span id="for_basic_zone" style="display:none"><fmt:message key="message.public.traffic.in.basic.zone"/></span>
-                            <span id="for_advanced_zone" style="display:none"><fmt:message key="message.public.traffic.in.advanced.zone"/></span>
+                            <span id="for_basic_zone" style="display:none"><translate key="message.public.traffic.in.basic.zone"/></span>
+                            <span id="for_advanced_zone" style="display:none"><translate key="message.public.traffic.in.advanced.zone"/></span>
                         </div>
                         <div ui-custom="publicTrafficIPRange"></div>
                     </div>
@@ -856,14 +827,14 @@
                     <div class="add-pod" zone-wizard-form="pod"
                          zone-wizard-step-id="addPod">
                         <ul class="subnav">
-                            <li class="conditional netscaler physical-network"><fmt:message key="label.netScaler"/></li>
-                            <li class="public-network"><fmt:message key="label.public.traffic"/></li>
-                            <li class="pod active"><fmt:message key="label.pod"/></li>
-                            <li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
-                            <li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
+                            <li class="conditional netscaler physical-network"><translate key="label.netScaler"/></li>
+                            <li class="public-network"><translate key="label.public.traffic"/></li>
+                            <li class="pod active"><translate key="label.pod"/></li>
+                            <li class="guest-traffic"><translate key="label.guest.traffic"/></li>
+                            <li class="conditional storage-traffic"><translate key="label.storage.traffic"/></li>
                         </ul>
                         <div class="info-desc">
-                            <fmt:message key="message.add.pod.during.zone.creation"/>
+                            <translate key="message.add.pod.during.zone.creation"/>
                         </div>
                         <div class="content input-area">
                             <div class="select-container"></div>
@@ -875,15 +846,15 @@
                          zone-wizard-step-id="configureGuestTraffic"
                          zone-wizard-prefilter="configureGuestTraffic">
                         <ul class="subnav">
-                            <li class="conditional netscaler physical-network"><fmt:message key="label.netScaler"/></li>
-                            <li class="public-network"><fmt:message key="label.public.traffic"/></li>
-                            <li class="pod"><fmt:message key="label.pod"/></li>
-                            <li class="guest-traffic active"><fmt:message key="label.guest.traffic"/></li>
-                            <li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
+                            <li class="conditional netscaler physical-network"><translate key="label.netScaler"/></li>
+                            <li class="public-network"><translate key="label.public.traffic"/></li>
+                            <li class="pod"><translate key="label.pod"/></li>
+                            <li class="guest-traffic active"><translate key="label.guest.traffic"/></li>
+                            <li class="conditional storage-traffic"><translate key="label.storage.traffic"/></li>
                         </ul>
                         <div class="info-desc" id="add_zone_guest_traffic_desc">
-                            <span id="for_basic_zone" style="display:none"><fmt:message key="message.guest.traffic.in.basic.zone"/></span>
-                            <span id="for_advanced_zone" style="display:none"><fmt:message key="message.guest.traffic.in.advanced.zone"/></span>
+                            <span id="for_basic_zone" style="display:none"><translate key="message.guest.traffic.in.basic.zone"/></span>
+                            <span id="for_advanced_zone" style="display:none"><translate key="message.guest.traffic.in.advanced.zone"/></span>
                         </div>
                         <div class="content input-area">
                             <div class="select-container"></div>
@@ -893,14 +864,14 @@
                     <div class="setup-storage-traffic" zone-wizard-prefilter="configureStorageTraffic"
                          zone-wizard-step-id="configureStorageTraffic">
                         <ul class="subnav">
-                            <li class="conditional netscaler physical-network"><fmt:message key="label.netScaler"/></li>
-                            <li class="public-network"><fmt:message key="label.public.traffic"/></li>
-                            <li class="pod"><fmt:message key="label.pod"/><</li>
-                                                                               <li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
-                            <li class="storage-traffic active"><fmt:message key="label.storage.traffic"/></li>
+                            <li class="conditional netscaler physical-network"><translate key="label.netScaler"/></li>
+                            <li class="public-network"><translate key="label.public.traffic"/></li>
+                            <li class="pod"><translate key="label.pod"/><</li>
+                                                                               <li class="guest-traffic"><translate key="label.guest.traffic"/></li>
+                            <li class="storage-traffic active"><translate key="label.storage.traffic"/></li>
                         </ul>
                         <div class="info-desc">
-                            <fmt:message key="message.storage.traffic"/>
+                            <translate key="message.storage.traffic"/>
                         </div>
                         <div ui-custom="storageTrafficIPRange"></div>
                     </div>
@@ -908,14 +879,14 @@
                     <div class="add-cluster" zone-wizard-form="cluster"
                          zone-wizard-step-id="addCluster">
                         <ul class="subnav">
-                            <li class="cluster active"><fmt:message key="label.cluster"/></li>
-                            <li class="host"><fmt:message key="label.host"/></li>
-                            <li class="primary-storage"><fmt:message key="label.primary.storage"/></li>
-                            <li class="secondary-storage"><fmt:message key="label.secondary.storage"/></li>
+                            <li class="cluster active"><translate key="label.cluster"/></li>
+                            <li class="host"><translate key="label.host"/></li>
+                            <li class="primary-storage"><translate key="label.primary.storage"/></li>
+                            <li class="secondary-storage"><translate key="label.secondary.storage"/></li>
                         </ul>
 
                         <div class="info-desc">
-                            <fmt:message key="message.desc.cluster"/>
+                            <translate key="message.desc.cluster"/>
                         </div>
                         <div class="content input-area">
                             <div class="select-container"></div>
@@ -925,13 +896,13 @@
                     <div class="add-cluster" zone-wizard-form="host"
                          zone-wizard-step-id="addHost" zone-wizard-prefilter="addHost">
                         <ul class="subnav">
-                            <li class="cluster"><fmt:message key="label.cluster"/></li>
-                            <li class="host active"><fmt:message key="label.host"/></li>
-                            <li class="primary-storage"><fmt:message key="label.primary.storage"/></li>
-                            <li class="secondary-storage"><fmt:message key="label.secondary.storage"/></li>
+                            <li class="cluster"><translate key="label.cluster"/></li>
+                            <li class="host active"><translate key="label.host"/></li>
+                            <li class="primary-storage"><translate key="label.primary.storage"/></li>
+                            <li class="secondary-storage"><translate key="label.secondary.storage"/></li>
                         </ul>
                         <div class="info-desc">
-                            <fmt:message key="message.desc.host"/>
+                            <translate key="message.desc.host"/>
                         </div>
                         <div class="content input-area">
                             <div class="select-container"></div>
@@ -941,13 +912,13 @@
                     <div class="add-cluster" zone-wizard-form="primaryStorage" zone-wizard-prefilter="addPrimaryStorage"
                          zone-wizard-step-id="addPrimaryStorage">
                         <ul class="subnav">
-                            <li class="cluster"><fmt:message key="label.cluster"/></li>
-                            <li class="host"><fmt:message key="label.host"/></li>
-                            <li class="primary-storage active"><fmt:message key="label.primary.storage"/></li>
-                            <li class="secondary-storage"><fmt:message key="label.secondary.storage"/></li>
+                            <li class="cluster"><translate key="label.cluster"/></li>
+                            <li class="host"><translate key="label.host"/></li>
+                            <li class="primary-storage active"><translate key="label.primary.storage"/></li>
+                            <li class="secondary-storage"><translate key="label.secondary.storage"/></li>
                         </ul>
                         <div class="info-desc">
-                            <fmt:message key="message.desc.primary.storage"/>
+                            <translate key="message.desc.primary.storage"/>
                         </div>
                         <div class="content input-area">
                             <div class="select-container"></div>
@@ -957,13 +928,13 @@
                     <div class="add-cluster" zone-wizard-form="secondaryStorage"
                          zone-wizard-step-id="addSecondaryStorage">
                         <ul class="subnav">
-                            <li class="cluster"><fmt:message key="label.cluster"/></li>
-                            <li class="host"><fmt:message key="label.host"/></li>
-                            <li class="primary-storage"><fmt:message key="label.primary.storage"/></li>
-                            <li class="secondary-storage active"><fmt:message key="label.secondary.storage"/></li>
+                            <li class="cluster"><translate key="label.cluster"/></li>
+                            <li class="host"><translate key="label.host"/></li>
+                            <li class="primary-storage"><translate key="label.primary.storage"/></li>
+                            <li class="secondary-storage active"><translate key="label.secondary.storage"/></li>
                         </ul>
                         <div class="info-desc">
-                            <fmt:message key="message.desc.secondary.storage"/>
+                            <translate key="message.desc.secondary.storage"/>
                         </div>
                         <div class="content input-area">
                             <div class="select-container"></div>
@@ -971,9 +942,9 @@
                     </div>
                     <!-- Step 5: Launch -->
                     <div class="review" zone-wizard-step-id="launch">
-                        <div class="main-desc pre-setup"><fmt:message key="message.launch.zone"/></div>
+                        <div class="main-desc pre-setup"><translate key="message.launch.zone"/></div>
                         <div class="main-desc launch" style="display:none;">
-                            <fmt:message key="message.please.wait.while.zone.is.being.created"/>
+                            <translate key="message.please.wait.while.zone.is.being.created"/>
                         </div>
                         <form>
                         </form>
@@ -984,25 +955,25 @@
                 </div>
                 <!-- Buttons -->
                 <div class="buttons">
-                    <div class="button previous"><span><fmt:message key="label.previous"/></span></div>
-                    <div class="button cancel"><span><fmt:message key="label.cancel"/></span></div>
-                    <div class="button next"><span><fmt:message key="label.next"/></span></div>
+                    <div class="button previous"><span><translate key="label.previous"/></span></div>
+                    <div class="button cancel"><span><translate key="label.cancel"/></span></div>
+                    <div class="button next"><span><translate key="label.next"/></span></div>
                 </div>
             </div>
             <!-- Network chart -->
             <div class="network-chart normal">
                 <ul>
                     <li class="firewall">
-                        <div class="name"><span><fmt:message key="label.firewall"/></span></div>
-                        <div class="view-details" net-target="firewall"><fmt:message key="label.view.all"/></div>
+                        <div class="name"><span><translate key="label.firewall"/></span></div>
+                        <div class="view-details" net-target="firewall"><translate key="label.view.all"/></div>
                     </li>
                     <li class="loadBalancing">
-                        <div class="name"><span><fmt:message key="label.load.balancing"/></span></div>
-                        <div class="view-details" net-target="loadBalancing"><fmt:message key="label.view.all"/></div>
+                        <div class="name"><span><translate key="label.load.balancing"/></span></div>
+                        <div class="view-details" net-target="loadBalancing"><translate key="label.view.all"/></div>
                     </li>
                     <li class="portForwarding">
-                        <div class="name"><span><fmt:message key="label.port.forwarding"/></span></div>
-                        <div class="view-details" net-target="portForwarding"><fmt:message key="label.view.all"/></div>
+                        <div class="name"><span><translate key="label.port.forwarding"/></span></div>
+                        <div class="view-details" net-target="portForwarding"><translate key="label.view.all"/></div>
                     </li>
                 </ul>
             </div>
@@ -1010,13 +981,13 @@
             <div class="network-chart static-nat">
                 <ul>
                     <li class="static-nat-enabled">
-                        <div class="name"><span><fmt:message key="label.static.nat.enabled"/></span></div>
+                        <div class="name"><span><translate key="label.static.nat.enabled"/></span></div>
                         <div class="vmname"></div>
                     </li>
                     <li class="firewall">
-                        <div class="name"><span><fmt:message key="label.firewall"/></span></div>
-                        <!--<div class="view-details" net-target="staticNAT"><fmt:message key="label.view.all"/></div>-->
-                        <div class="view-details" net-target="firewall"><fmt:message key="label.view.all" /></div>
+                        <div class="name"><span><translate key="label.firewall"/></span></div>
+                        <!--<div class="view-details" net-target="staticNAT"><translate key="label.view.all"/></div>-->
+                        <div class="view-details" net-target="firewall"><translate key="label.view.all" /></div>
                     </li>
                 </ul>
             </div>
@@ -1027,41 +998,41 @@
                     <div class="compute-and-storage">
                         <div class="system-dashboard">
                             <div class="head">
-                                <span><fmt:message key="label.compute.and.storage"/></span>
+                                <span><translate key="label.compute.and.storage"/></span>
                             </div>
                             <ul class="status_box good">
                                 <!-- Virtual Machines -->
                                 <li class="block virtual-machines">
-                                    <span class="header"><fmt:message key="label.virtual.machines"/></span>
+                                    <span class="header"><translate key="label.virtual.machines"/></span>
                                     <div class="icon"></div>
                                     <div class="overview">
                                         <!-- Running -->
                                         <div class="overview-item running">
                                             <div class="total" data-item="runningInstances">5</div>
-                                            <div class="label"><fmt:message key="state.Running"/></div>
+                                            <div class="label"><translate key="state.Running"/></div>
                                         </div>
 
                                         <!-- Stopped -->
                                         <div class="overview-item stopped">
                                             <div class="total" data-item="stoppedInstances">10</div>
-                                            <div class="label"><fmt:message key="state.Stopped"/></div>
+                                            <div class="label"><translate key="state.Stopped"/></div>
                                         </div>
                                     </div>
                                 </li>
 
                                 <!-- Storage -->
                                 <li class="block storage">
-                                    <span class="header"><fmt:message key="label.storage"/></span>
+                                    <span class="header"><translate key="label.storage"/></span>
                                     <div class="icon"></div>
                                     <div class="overview">
                                         <div class="total" data-item="totalVolumes">10</div>
-                                        <div class="label"><fmt:message key="label.volumes"/></div>
+                                        <div class="label"><translate key="label.volumes"/></div>
                                     </div>
                                 </li>
 
                                 <!-- Bandwidth -->
                                 <li class="block storage bandwidth">
-                                    <span class="header"><fmt:message key="label.bandwidth"/></span>
+                                    <span class="header"><translate key="label.bandwidth"/></span>
                                     <div class="icon"></div>
                                     <div class="overview">
                                         <div class="total" data-item="totalBandwidth">200</div>
@@ -1076,7 +1047,7 @@
                     <div class="users">
                         <div class="system-dashboard">
                             <div class="head">
-                                <span><fmt:message key="label.users"/></span>
+                                <span><translate key="label.users"/></span>
                             </div>
                             <ul class="status_box good" data-item="users">
                                 <li class="block user">
@@ -1091,25 +1062,25 @@
                     <!-- Networking and security -->
                     <div class="info-box networking-and-security">
                         <div class="title">
-                            <span><fmt:message key="label.networking.and.security"/></span>
+                            <span><translate key="label.networking.and.security"/></span>
                         </div>
                         <ul>
                             <!-- IP addresses -->
                             <li class="odd">
                                 <div class="total"><span data-item="totalIPAddresses"></span></div>
-                                <div class="desc"><fmt:message key="label.menu.ipaddresses"/></div>
+                                <div class="desc"><translate key="label.menu.ipaddresses"/></div>
                             </li>
 
                             <!-- Load balancing policies -->
                             <li>
                                 <div class="total"><span data-item="totalLoadBalancers"></span></div>
-                                <div class="desc"><fmt:message key="label.load.balancing.policies"/></div>
+                                <div class="desc"><translate key="label.load.balancing.policies"/></div>
                             </li>
 
                             <!-- Port forwarding policies -->
                             <li class="odd">
                                 <div class="total"><span data-item="totalPortForwards"></span></div>
-                                <div class="desc"><fmt:message key="label.port.forwarding.policies"/></div>
+                                <div class="desc"><translate key="label.port.forwarding.policies"/></div>
                             </li>
 
                             <!-- Blank -->
@@ -1123,7 +1094,7 @@
                                 <div class="total"></div>
                                 <div class="desc">
                                     <div class="button manage-resources">
-                                        <span><fmt:message key="label.manage.resources"/></span>
+                                        <span><translate key="label.manage.resources"/></span>
                                         <span class="arrow"></span>
                                     </div>
                                 </div>
@@ -1133,9 +1104,9 @@
                     <!-- Events -->
                     <div class="info-box events">
                         <div class="title">
-                            <span><fmt:message key="label.menu.events"/></span>
+                            <span><translate key="label.menu.events"/></span>
                             <div class="button view-all">
-                                <span><fmt:message key="label.view.all"/></span>
+                                <span><translate key="label.view.all"/></span>
                                 <span class="arrow"></span>
                             </div>
                         </div>
@@ -1152,91 +1123,100 @@
             <div class="system-dashboard-view">
                 <div class="toolbar">
                     <div class="button refresh" id="refresh_button">
-                        <span><fmt:message key="label.refresh"/></span>
+                        <span><translate key="label.refresh"/></span>
                     </div>
                     <div id="update_ssl_button" class="button action main-action reduced-hide lock" title="Updates your SSL Certificate">
                         <span class="icon">&nbsp;</span>
-                        <span><fmt:message key="label.update.ssl.cert"/></span>
+                        <span><translate key="label.update.ssl.cert"/></span>
                     </div>
                 </div>
 
                 <!-- Zone dashboard -->
                 <div class="system-dashboard zone">
                     <div class="head">
-                        <span><fmt:message key="label.menu.infrastructure"/></span>
+                        <span><translate key="label.menu.infrastructure"/></span>
                     </div>
                     <ul class="status_box good">
                         <li class="block zones">
-                            <span class="header"><fmt:message key="label.zones"/></span>
+                            <span class="header"><translate key="label.zones"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="zoneCount"></span>
                             <span class="button view-all zones"
-                                  view-all-title="<fmt:message key="label.zones"/>"
-                                  view-all-target="zones"><fmt:message key="label.view.all"/></span>
+                                  tr="label.zones" trf="view-all-title"
+                                  view-all-title="label.zones"
+                                  view-all-target="zones"><translate key="label.view.all"/></span>
                         </li>
                         <li class="block pods">
-                            <span class="header"><fmt:message key="label.pods"/></span>
+                            <span class="header"><translate key="label.pods"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="podCount"></span>
                             <span class="button view-all pods"
-                                  view-all-title="<fmt:message key="label.pods"/>"
-                                  view-all-target="pods"><fmt:message key="label.view.all"/></span>
+                                  tr="label.pods" trf="view-all-title"
+                                  view-all-title="label.pods"
+                                  view-all-target="pods"><translate key="label.view.all"/></span>
                         </li>
                         <li class="block clusters">
-                            <span class="header"><fmt:message key="label.clusters"/></span>
+                            <span class="header"><translate key="label.clusters"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="clusterCount"></span>
                             <span class="button view-all clusters"
-                                  view-all-title="<fmt:message key="label.clusters"/>"
-                                  view-all-target="clusters"><fmt:message key="label.view.all"/></span>
+                                  tr="label.clusters" trf="view-all-title"
+                                  view-all-title="label.clusters"
+                                  view-all-target="clusters"><translate key="label.view.all"/></span>
                         </li>
                         <li class="block last hosts">
-                            <span class="header"><fmt:message key="label.hosts"/></span>
+                            <span class="header"><translate key="label.hosts"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="hostCount"></span>
                             <span class="button view-all hosts"
-                                  view-all-title="<fmt:message key="label.hosts"/>"
-                                  view-all-target="hosts"><fmt:message key="label.view.all"/></span>
+                                  tr="label.hosts" trf="view-all-title"
+                                  view-all-title="label.hosts"
+                                  view-all-target="hosts"><translate key="label.view.all"/></span>
                         </li>
                         <li class="block primary-storage">
-                            <span class="header"><fmt:message key="label.primary.storage"/></span>
+                            <span class="header"><translate key="label.primary.storage"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="primaryStorageCount"></span>
                             <span class="button view-all zones"
-                                  view-all-title="<fmt:message key="label.primary.storage"/>"
-                                  view-all-target="primaryStorage"><fmt:message key="label.view.all"/></span>
+                                  tr="label.primary.storage" trf="view-all-title"
+                                  view-all-title="label.primary.storage"
+                                  view-all-target="primaryStorage"><translate key="label.view.all"/></span>
                         </li>
                         <li class="block secondary-storage">
-                            <span class="header"><fmt:message key="label.secondary.storage"/></span>
+                            <span class="header"><translate key="label.secondary.storage"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="secondaryStorageCount"></span>
                             <span class="button view-all pods"
-                                  view-all-title="<fmt:message key="label.secondary.storage"/>"
-                                  view-all-target="secondaryStorage"><fmt:message key="label.view.all"/></span>
+                                  tr="label.secondary.storage" trf="view-all-title"
+                                  view-all-title="label.secondary.storage"
+                                  view-all-target="secondaryStorage"><translate key="label.view.all"/></span>
                         </li>
                         <li class="block system-vms">
-                            <span class="header"><fmt:message key="label.system.vms"/></span>
+                            <span class="header"><translate key="label.system.vms"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="systemVmCount"></span>
                             <span class="button view-all clusters"
-                                  view-all-title="<fmt:message key="label.system.vms"/>"
-                                  view-all-target="systemVms"><fmt:message key="label.view.all"/></span>
+                                  tr="label.system.vms" trf="view-all-title"
+                                  view-all-title="label.system.vms"
+                                  view-all-target="systemVms"><translate key="label.view.all"/></span>
                         </li>
                         <li class="block virtual-routers">
-                            <span class="header"><fmt:message key="label.virtual.routers"/></span>
+                            <span class="header"><translate key="label.virtual.routers"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="virtualRouterCount"></span>
                             <span class="button view-all hosts"
-                                  view-all-title="<fmt:message key="label.virtual.routers"/>"
-                                  view-all-target="virtualRouters"><fmt:message key="label.view.all"/></span>
+                                  tr="label.virtual.routers" trf="view-all-title"
+                                  view-all-title="label.virtual.routers"
+                                  view-all-target="virtualRouters"><translate key="label.view.all"/></span>
                         </li>
                         <li class="block sockets">
-                            <span class="header"><fmt:message key="label.sockets"/></span>
+                            <span class="header"><translate key="label.sockets"/></span>
                             <span class="icon">&nbsp;</span>
                             <span class="overview total" data-item="socketCount"></span>
                             <span class="button view-all sockets"
-                                  view-all-title="<fmt:message key="label.sockets"/>"
-                                  view-all-target="sockets"><fmt:message key="label.view.all"/></span>
+                                  tr="label.sockets" trf="view-all-title"
+                                  view-all-title="label.sockets"
+                                  view-all-target="sockets"><translate key="label.view.all"/></span>
                         </li>
                     </ul>
                 </div>
@@ -1249,7 +1229,7 @@
                     <ul>
                         <li>
                             <div class="icon"><span>1</span></div>
-                            <div class="title"><fmt:message key="label.guest" /></div>
+                            <div class="title"><translate key="label.guest" /></div>
                             <p>Set up the network for traffic between end-user VMs.</p>
                         </li>
                         <li>
@@ -1414,17 +1394,17 @@
                         </div>
 
                         <div class="button fetch-latest">
-                            <span><fmt:message key="label.fetch.latest"/></span>
+                            <span><translate key="label.fetch.latest"/></span>
                         </div>
 
                         <div class="selects" style="display:none;">
                             <div class="select">
-                                <label><fmt:message key="label.zone"/>:</label>
+                                <label><translate key="label.zone"/>:</label>
                                 <select>
                                 </select>
                             </div>
                             <div class="select">
-                                <label><fmt:message key="label.pods"/>:</label>
+                                <label><translate key="label.pods"/>:</label>
                                 <select>
                                 </select>
                             </div>
@@ -1436,7 +1416,7 @@
                         <ul data-item="zoneCapacities">
                             <li concat-value="25">
                                 <div class="label">
-                                    <fmt:message key="label.zone"/>: <span data-list-item="zoneName"></span>
+                                    <translate key="label.zone"/>: <span data-list-item="zoneName"></span>
                                 </div>
                                 <div class="pie-chart-container">
                                     <div class="percent-label"><span data-list-item="percent"></span>%</div>
@@ -1459,20 +1439,20 @@
             <!-- User dashboard-->
             <div class="dashboard user">
                 <div class="vm-status">
-                    <div class="title"><span><fmt:message key="label.virtual.machines"/></span></div>
+                    <div class="title"><span><translate key="label.virtual.machines"/></span></div>
 
                     <div class="content">
                         <ul>
                             <li class="running">
-                                <div class="name"><fmt:message key="label.running.vms"/></div>
+                                <div class="name"><translate key="label.running.vms"/></div>
                                 <div class="value" data-item="runningInstances"></div>
                             </li>
                             <li class="stopped">
-                                <div class="name"><fmt:message key="label.stopped.vms"/></div>
+                                <div class="name"><translate key="label.stopped.vms"/></div>
                                 <div class="value" data-item="stoppedInstances"></div>
                             </li>
                             <li class="total">
-                                <div class="name"><fmt:message key="label.total.vms"/></div>
+                                <div class="name"><translate key="label.total.vms"/></div>
                                 <div class="value" data-item="totalInstances"></div>
                             </li>
                         </ul>
@@ -1485,7 +1465,7 @@
                             <table>
                                 <thead>
                                     <tr>
-                                        <th><fmt:message key="label.latest.events"/> <div class="button view-all events"><fmt:message key="label.view.all"/></div></th>
+                                        <th><translate key="label.latest.events"/> <div class="button view-all events"><translate key="label.view.all"/></div></th>
                                     </tr>
                                 </thead>
                             </table>
@@ -1502,7 +1482,7 @@
                             <table>
                                 <thead>
                                     <tr>
-                                        <th><fmt:message key="label.network"/> <div class="button view-all network"><fmt:message key="label.view.all"/></div></th>
+                                        <th><translate key="label.network"/> <div class="button view-all network"><translate key="label.view.all"/></div></th>
                                     </tr>
                                 </thead>
                             </table>
@@ -1510,13 +1490,13 @@
                                 <tbody>
                                     <tr>
                                         <td>
-                                            <div class="desc"><span><fmt:message key="label.isolated.networks"/>:</span></div>
+                                            <div class="desc"><span><translate key="label.isolated.networks"/>:</span></div>
                                             <div class="value"><span data-item="netTotal"></span></div>
                                         </td>
                                     </tr>
                                     <tr class="odd">
                                         <td>
-                                            <div class="desc"><span><fmt:message key="label.public.ips"/>:</span></div>
+                                            <div class="desc"><span><translate key="label.public.ips"/>:</span></div>
                                             <div class="value"><span data-item="ipTotal"></span></div>
                                         </td>
                                     </tr>
@@ -1529,7 +1509,7 @@
 
             <!-- Recurring Snapshots -->
             <div class="recurring-snapshots">
-                <p class="desc"><fmt:message key="label.description" /></p>
+                <p class="desc"><translate key="label.description" /></p>
 
                 <div class="schedule">
                     <p>Schedule:</p>
@@ -1552,7 +1532,7 @@
                                     <div class="name"></div>
                                     <div class="value">
                                         <select name="schedule"></select>
-                                        <label for="schedule"><fmt:message key="label.minutes.past.hour" /></label>
+                                        <label for="schedule"><translate key="label.minutes.past.hour" /></label>
                                     </div>
                                 </div>
 
@@ -1567,10 +1547,10 @@
 
                                 <!-- Max snapshots -->
                                 <div class="field maxsnaps">
-                                    <div class="name"><fmt:message key="label.keep" /></div>
+                                    <div class="name"><translate key="label.keep" /></div>
                                     <div class="value">
                                         <input type="text" name="maxsnaps" class="required" />
-                                        <label for="maxsnaps"><fmt:message key="label.snapshots" /></label>
+                                        <label for="maxsnaps"><translate key="label.snapshots" /></label>
                                     </div>
                                 </div>
                             </form>
@@ -1583,7 +1563,7 @@
 
                                 <!-- Time -->
                                 <div class="field time">
-                                    <div class="name"><fmt:message key="label.time" /></div>
+                                    <div class="name"><translate key="label.time" /></div>
                                     <div class="value">
                                         <select name="time-hour"></select>
                                         <select name="time-minute"></select>
@@ -1593,7 +1573,7 @@
 
                                 <!-- Timezone -->
                                 <div class="field timezone">
-                                    <div class="name"><fmt:message key="label.time.zone" /></div>
+                                    <div class="name"><translate key="label.time.zone" /></div>
                                     <div class="value">
                                         <select name="timezone"></select>
                                     </div>
@@ -1601,10 +1581,10 @@
 
                                 <!-- Max snapshots -->
                                 <div class="field maxsnaps">
-                                    <div class="name"><fmt:message key="label.keep" /></div>
+                                    <div class="name"><translate key="label.keep" /></div>
                                     <div class="value">
                                         <input type="text" name="maxsnaps" class="required" />
-                                        <label for="maxsnaps"><fmt:message key="label.snapshots" /></label>
+                                        <label for="maxsnaps"><translate key="label.snapshots" /></label>
                                     </div>
                                 </div>
                             </form>
@@ -1617,7 +1597,7 @@
 
                                 <!-- Time -->
                                 <div class="field time">
-                                    <div class="name"><fmt:message key="label.time" /></div>
+                                    <div class="name"><translate key="label.time" /></div>
                                     <div class="value">
                                         <select name="time-hour"></select>
                                         <select name="time-minute"></select>
@@ -1627,7 +1607,7 @@
 
                                 <!-- Day of week -->
                                 <div class="field day-of-week">
-                                    <div class="name"><fmt:message key="label.day.of.week" /></div>
+                                    <div class="name"><translate key="label.day.of.week" /></div>
                                     <div class="value">
                                         <select name="day-of-week"></select>
                                     </div>
@@ -1635,7 +1615,7 @@
 
                                 <!-- Timezone -->
                                 <div class="field timezone">
-                                    <div class="name"><fmt:message key="label.time.zone" /></div>
+                                    <div class="name"><translate key="label.time.zone" /></div>
                                     <div class="value">
                                         <select name="timezone"></select>
                                     </div>
@@ -1643,10 +1623,10 @@
 
                                 <!-- Max snapshots -->
                                 <div class="field maxsnaps">
-                                    <div class="name"><fmt:message key="label.keep" /></div>
+                                    <div class="name"><translate key="label.keep" /></div>
                                     <div class="value">
                                         <input type="text" name="maxsnaps" class="required" />
-                                        <label for="maxsnaps"><fmt:message key="label.snapshots" /></label>
+                                        <label for="maxsnaps"><translate key="label.snapshots" /></label>
                                     </div>
                                 </div>
                             </form>
@@ -1659,7 +1639,7 @@
 
                                 <!-- Time -->
                                 <div class="field time">
-                                    <div class="name"><fmt:message key="label.time" /></div>
+                                    <div class="name"><translate key="label.time" /></div>
                                     <div class="value">
                                         <select name="time-hour"></select>
                                         <select name="time-minute"></select>
@@ -1669,7 +1649,7 @@
 
                                 <!-- Day of week -->
                                 <div class="field day-of-month">
-                                    <div class="name"><fmt:message key="label.day.of.month" /></div>
+                                    <div class="name"><translate key="label.day.of.month" /></div>
                                     <div class="value">
                                         <select name="day-of-month"></select>
                                     </div>
@@ -1677,7 +1657,7 @@
 
                                 <!-- Timezone -->
                                 <div class="field timezone">
-                                    <div class="name"><fmt:message key="label.time.zone" /></div>
+                                    <div class="name"><translate key="label.time.zone" /></div>
                                     <div class="value">
                                         <select name="timezone"></select>
                                     </div>
@@ -1685,10 +1665,10 @@
 
                                 <!-- Max snapshots -->
                                 <div class="field maxsnaps">
-                                    <div class="name"><fmt:message key="label.keep" /></div>
+                                    <div class="name"><translate key="label.keep" /></div>
                                     <div class="value">
                                         <input type="text" name="maxsnaps" class="required" />
-                                        <label for="maxsnaps"><fmt:message key="label.snapshots" /></label>
+                                        <label for="maxsnaps"><translate key="label.snapshots" /></label>
                                     </div>
                                 </div>
                             </form>
@@ -1706,34 +1686,34 @@
                         <tbody>
                             <!-- Hourly -->
                             <tr class="hourly">
-                                <td class="time"><fmt:message key="label.time.colon" /> <span></span> <fmt:message key="label.min.past.the.hr" /></td>
+                                <td class="time"><translate key="label.time.colon" /> <span></span> <translate key="label.min.past.the.hr" /></td>
                                 <td class="day-of-week"><span></span></td>
-                                <td class="timezone"><fmt:message key="label.timezone.colon" /><br/><span></span></td>
-                                <td class="keep"><fmt:message key="label.keep.colon" /> <span></span></td>
+                                <td class="timezone"><translate key="label.timezone.colon" /><br/><span></span></td>
+                                <td class="keep"><translate key="label.keep.colon" /> <span></span></td>
                                 <td class="actions"><div class="action destroy"><span class="icon">&nbsp;</span></div></td>
                             </tr>
                             <!-- Daily -->
                             <tr class="daily">
-                                <td class="time"><fmt:message key="label.time.colon" /> <span></span></td>
+                                <td class="time"><translate key="label.time.colon" /> <span></span></td>
                                 <td class="day-of-week"><span></span></td>
-                                <td class="timezone"><fmt:message key="label.timezone.colon" /><br/><span></span></td>
-                                <td class="keep"><fmt:message key="label.keep.colon" /> <span></span></td>
+                                <td class="timezone"><translate key="label.timezone.colon" /><br/><span></span></td>
+                                <td class="keep"><translate key="label.keep.colon" /> <span></span></td>
                                 <td class="actions"><div class="action destroy"><span class="icon">&nbsp;</span></div></td>
                             </tr>
                             <!-- Weekly -->
                             <tr class="weekly">
-                                <td class="time"><fmt:message key="label.time.colon" /> <span></span></td>
-                                <td class="day-of-week"><fmt:message key="label.every" /> <span></span></td>
-                                <td class="timezone"><fmt:message key="label.timezone.colon" /><br/><span></span></td>
-                                <td class="keep"><fmt:message key="label.keep.colon" /> <span></span></td>
+                                <td class="time"><translate key="label.time.colon" /> <span></span></td>
+                                <td class="day-of-week"><translate key="label.every" /> <span></span></td>
+                                <td class="timezone"><translate key="label.timezone.colon" /><br/><span></span></td>
+                                <td class="keep"><translate key="label.keep.colon" /> <span></span></td>
                                 <td class="actions"><div class="action destroy"><span class="icon">&nbsp;</span></div></td>
                             </tr>
                             <!-- Monthly -->
                             <tr class="monthly">
-                                <td class="time"><fmt:message key="label.time.colon" /> <span></span></td>
-                                <td class="day-of-week"><fmt:message key="label.day" /> <span></span> <fmt:message key="label.of.month" /></td>
-                                <td class="timezone"><fmt:message key="label.timezone.colon" /><br/><span></span></td>
-                                <td class="keep"><fmt:message key="label.keep.colon" /> <span></span></td>
+                                <td class="time"><translate key="label.time.colon" /> <span></span></td>
+                                <td class="day-of-week"><translate key="label.day" /> <span></span> <translate key="label.of.month" /></td>
+                                <td class="timezone"><translate key="label.timezone.colon" /><br/><span></span></td>
+                                <td class="keep"><translate key="label.keep.colon" /> <span></span></td>
                                 <td class="actions"><div class="action destroy"><span class="icon">&nbsp;</span></div></td>
                             </tr>
                         </tbody>
@@ -1754,8 +1734,71 @@
         <script src="lib/require.js" type="text/javascript"></script>
 
         <!-- localized messages -->
-        <jsp:include page="dictionary.jsp" />
-        <jsp:include page="dictionary2.jsp" />
+        <script type="text/javascript">
+            var $head = $('head');
+            $head.append('<script src="l10n/en.js">');
+            var defaultDict = dictionary;
+            if ($.cookie('lang') && $.cookie('lang') != 'en') {
+                $head.append('<link type="text/css" rel="stylesheet" href="css/cloudstack3.' + $.cookie('lang') + '.css" />');
+                $head.append('<script src="l10n/' + $.cookie('lang')  + '.js">');
+            }
+
+            $.each(defaultDict, function(key, value) {
+                if (!(key in dictionary)) {
+                    dictionary[key] = value;
+                }
+            });
+
+            var translate = function(key) {
+                if (key in dictionary) {
+                    return dictionary[key];
+                }
+                return key;
+            }
+
+            // Translate labels on the fly
+            $.each($.find('translate[key]'), function(idx, elem) {
+                var key = $(elem).attr('key');
+                $(elem).text(translate(key));
+            });
+
+            // Translate element attributes
+            $.each($.find('[tr]'), function(idx, elem) {
+                var key = $(elem).attr('tr');
+                var field = $(elem).attr('trf');
+                $(elem).attr(field, translate(key));
+            });
+
+            // Inject translated login options
+            var loginDropdown = $($.find('#login-options'));
+            loginDropdown.append($('<option>', {value: 'cloudstack-login', text: 'Local ' + translate('label.login')}));
+
+            // Inject translated l10n language options
+            var l10nDropdown = $($.find('#l10n-options'));
+            l10nDropdown.append($('<option>', {value: 'en', text: translate('label.lang.english')}));
+            l10nDropdown.append($('<option>', {value: 'ja_JP', text: translate('label.lang.japanese')}));
+            l10nDropdown.append($('<option>', {value: 'zh_CN', text: translate('label.lang.chinese')}));
+            l10nDropdown.append($('<option>', {value: 'ru_RU', text: translate('label.lang.russian')}));
+            l10nDropdown.append($('<option>', {value: 'fr_FR', text: translate('label.lang.french')}));
+            l10nDropdown.append($('<option>', {value: 'pt_BR', text: translate('label.lang.brportugese')}));
+            l10nDropdown.append($('<option>', {value: 'ca', text: translate('label.lang.catalan')}));
+            l10nDropdown.append($('<option>', {value: 'ko_KR', text: translate('label.lang.korean')}));
+            l10nDropdown.append($('<option>', {value: 'es', text: translate('label.lang.spanish')}));
+            l10nDropdown.append($('<option>', {value: 'de_DE', text: translate('label.lang.german')}));
+            l10nDropdown.append($('<option>', {value: 'it_IT', text: translate('label.lang.italian')}));
+            l10nDropdown.append($('<option>', {value: 'nb_NO', text: translate('label.lang.norwegian')}));
+            l10nDropdown.append($('<option>', {value: 'ar', text: translate('label.lang.arabic')}));
+            l10nDropdown.append($('<option>', {value: 'nl_NL', text: translate('label.lang.dutch')}));
+            l10nDropdown.append($('<option>', {value: 'pl', text: translate('label.lang.polish')}));
+            l10nDropdown.append($('<option>', {value: 'hu', text: translate('label.lang.hungarian')}));
+
+            // Inject translated keyboard options
+            var keyboardDropdown = $($.find('#keyboard-options'));
+            keyboardDropdown.append($('<option>', {value: 'us', text: translate('label.standard.us.keyboard')}));
+            keyboardDropdown.append($('<option>', {value: 'uk', text: translate('label.uk.keyboard')}));
+            keyboardDropdown.append($('<option>', {value: 'jp', text: translate('label.japanese.keyboard')}));
+            keyboardDropdown.append($('<option>', {value: 'sc', text: translate('label.simplified.chinese.keyboard')}));
+        </script>
 
         <script src="lib/excanvas.js" type="text/javascript"></script>
         <script src="lib/flot/jquery.flot.js" type="text/javascript"></script>
@@ -1809,6 +1852,8 @@
         <script type="text/javascript" src="scripts/instanceWizard.js"></script>
         <script type="text/javascript" src="scripts/affinity.js"></script>
         <script type="text/javascript" src="scripts/ui-custom/affinity.js"></script>
+        <script type="text/javascript" src="scripts/ui-custom/migrate.js"></script>
+        <script type="text/javascript" src="scripts/ui-custom/copyTemplate.js"></script>
         <script type="text/javascript" src="scripts/instances.js"></script>
         <script type="text/javascript" src="scripts/events.js"></script>
         <script type="text/javascript" src="scripts/regions.js"></script>
diff --git a/ui/l10n/ar.js b/ui/l10n/ar.js
new file mode 100644
index 0000000..6e21c62
--- /dev/null
+++ b/ui/l10n/ar.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP Code",
+    "ICMP.type": "ICMP Type",
+    "changed.item.properties": "تغير خصائص العنصر",
+    "confirm.enable.s3": "فضلا قم بتعبئة البيانات القادمة لتمكين التخزين S3 للذاكرة الثانوية.",
+    "confirm.enable.swift": "Please fill in the following information to enable support for Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Error could not change your password because LDAP is enabled.",
+    "error.could.not.enable.zone": "Could not enable zone",
+    "error.installWizard.message": "Something went wrong; you may go back and correct any errors",
+    "error.invalid.username.password": "Invalid username or password",
+    "error.login": "Your username/password does not match our records.",
+    "error.menu.select": "Unable to perform action due to no items being selected.",
+    "error.mgmt.server.inaccessible": "The Management Server is unaccessible.  Please try again later.",
+    "error.password.not.match": "The password fields do not match",
+    "error.please.specify.physical.network.tags": "Network offerings is not available until you specify tags for this physical network.",
+    "error.session.expired": "Your session has expired.",
+    "error.something.went.wrong.please.correct.the.following": "Something went wrong; please correct the following",
+    "error.unable.to.reach.management.server": "Unable to reach Management Server",
+    "error.unresolved.internet.name": "Your internet name cannot be resolved.",
+    "force.delete": "Force Delete",
+    "force.delete.domain.warning": "Warning: Choosing this option will cause the deletion of all child domains and all associated accounts and their resources.",
+    "force.remove": "Force Remove",
+    "force.remove.host.warning": "Warning: Choosing this option will cause CloudStack to forcefully stop all running virtual machines before removing this host from the cluster.",
+    "force.stop": "Force Stop",
+    "force.stop.instance.warning": "Warning: Forcing a stop on this instance should be your last option. It can lead to data loss as well as inconsistent behavior of the virtual machine state.",
+    "hint.no.host.tags": "No host tags found",
+    "hint.no.storage.tags": "No storage tags found",
+    "hint.type.part.host.tag": "Type in part of a host tag",
+    "hint.type.part.storage.tag": "Type in part of a storage tag",
+    "image.directory": "Image Directory",
+    "inline": "Inline",
+    "instances.actions.reboot.label": "إعادة تشغيل النموذج",
+    "label.CIDR.list": "قائمة CIDR",
+    "label.CIDR.of.destination.network": "CIDR الخاص بالشبكة الموجهة.",
+    "label.CPU.cap": "CPU Cap",
+    "label.DHCP.server.type": "DHCP Server Type",
+    "label.DNS.domain.for.guest.networks": "مجال DNS لشبكات الزائر",
+    "label.ESP.encryption": "ESP Encryption",
+    "label.ESP.hash": "ESP Hash",
+    "label.ESP.lifetime": "عمر ESP (ثانية)",
+    "label.ESP.policy": "سياسة ESP",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE Encryption",
+    "label.IKE.hash": "IKE Hash",
+    "label.IKE.lifetime": "عمر IKE (ثانية)",
+    "label.IKE.policy": "سياسة IKE",
+    "label.IPsec.preshared.key": "مفتاح أمن بروتوكول الإنترنت تمت مشاركته مسبقا",
+    "label.LB.isolation": "LB isolation",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto Log Profile",
+    "label.PA.threat.profile": "Palo Alto Threat Profile",
+    "label.PING.CIFS.password": "PING CIFS password",
+    "label.PING.CIFS.username": "PING CIFS username",
+    "label.PING.dir": "PING Directory",
+    "label.PING.storage.IP": "PING storage IP",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "Pxe Server Type",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNMP Port",
+    "label.SR.name": "SR Name-Label",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP Directory",
+    "label.VMFS.datastore": "VMFS datastore",
+    "label.VMs.in.tier": "الأجهزة الإفتراضية في طبقة",
+    "label.VPC.limits": "VPC limits",
+    "label.VPC.router.details": "تفاصيل جهاز التوجيه VPC",
+    "label.VPN.connection": "إتصال الشبكة الافتراضية الشخصية",
+    "label.VPN.customer.gateway": "بوابة الشبكة الافتراضية الشخصية للعميل",
+    "label.VPN.gateway": "بوابة الشبكة الافتراضية الشخصية",
+    "label.Xenserver.Tools.Version61plus": "Original XS Version is 6.1+",
+    "label.about": "About",
+    "label.about.app": "About CloudStack",
+    "label.accept.project.invitation": "قبول دعوة المشروع",
+    "label.account": "Account",
+    "label.account.and.security.group": "Account, Security group",
+    "label.account.details": "Account details",
+    "label.account.id": "Account ID",
+    "label.account.lower": "account",
+    "label.account.name": "Account Name",
+    "label.account.specific": "Account-Specific",
+    "label.account.type": "Account Type",
+    "label.accounts": "Accounts",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL List Rules",
+    "label.acl.name": "ACL Name",
+    "label.acl.replaced": "ACL replaced",
+    "label.acquire.new.ip": "Acquire New IP",
+    "label.acquire.new.secondary.ip": "Acquire new secondary IP",
+    "label.action": "Action",
+    "label.action.attach.disk": "Attach Disk",
+    "label.action.attach.disk.processing": "Attaching Disk....",
+    "label.action.attach.iso": "Attach ISO",
+    "label.action.attach.iso.processing": "Attaching ISO....",
+    "label.action.cancel.maintenance.mode": "Cancel Maintenance Mode",
+    "label.action.cancel.maintenance.mode.processing": "Cancelling Maintenance Mode....",
+    "label.action.change.password": "Change Password",
+    "label.action.change.service": "Change Service",
+    "label.action.change.service.processing": "Changing Service....",
+    "label.action.configure.samlauthorization": "Configure SAML SSO Authorization",
+    "label.action.copy.ISO": "Copy ISO",
+    "label.action.copy.ISO.processing": "Copying ISO....",
+    "label.action.copy.template": "Copy Template",
+    "label.action.copy.template.processing": "Copying Template....",
+    "label.action.create.template": "Create Template",
+    "label.action.create.template.from.vm": "Create Template from VM",
+    "label.action.create.template.from.volume": "Create Template from Volume",
+    "label.action.create.template.processing": "Creating Template....",
+    "label.action.create.vm": "Create VM",
+    "label.action.create.vm.processing": "Creating VM....",
+    "label.action.create.volume": "Create Volume",
+    "label.action.create.volume.processing": "Creating Volume....",
+    "label.action.delete.IP.range": "Delete IP Range",
+    "label.action.delete.IP.range.processing": "Deleting IP Range....",
+    "label.action.delete.ISO": "Delete ISO",
+    "label.action.delete.ISO.processing": "Deleting ISO....",
+    "label.action.delete.account": "Delete account",
+    "label.action.delete.account.processing": "Deleting account....",
+    "label.action.delete.cluster": "Delete Cluster",
+    "label.action.delete.cluster.processing": "Deleting Cluster....",
+    "label.action.delete.disk.offering": "Delete Disk Offering",
+    "label.action.delete.disk.offering.processing": "Deleting Disk Offering....",
+    "label.action.delete.domain": "Delete Domain",
+    "label.action.delete.domain.processing": "Deleting Domain....",
+    "label.action.delete.firewall": "Delete firewall rule",
+    "label.action.delete.firewall.processing": "Deleting Firewall....",
+    "label.action.delete.ingress.rule": "Delete Ingress Rule",
+    "label.action.delete.ingress.rule.processing": "Deleting Ingress Rule....",
+    "label.action.delete.load.balancer": "Delete load balancer rule",
+    "label.action.delete.load.balancer.processing": "Deleting Load Balancer....",
+    "label.action.delete.network": "Delete Network",
+    "label.action.delete.network.processing": "Deleting Network....",
+    "label.action.delete.nexusVswitch": "Delete Nexus 1000v",
+    "label.action.delete.nic": "Remove NIC",
+    "label.action.delete.physical.network": "Delete physical network",
+    "label.action.delete.pod": "Delete Pod",
+    "label.action.delete.pod.processing": "Deleting Pod....",
+    "label.action.delete.primary.storage": "Delete Primary Storage",
+    "label.action.delete.primary.storage.processing": "Deleting Primary Storage....",
+    "label.action.delete.secondary.storage": "Delete Secondary Storage",
+    "label.action.delete.secondary.storage.processing": "Deleting Secondary Storage....",
+    "label.action.delete.security.group": "Delete Security Group",
+    "label.action.delete.security.group.processing": "Deleting Security Group....",
+    "label.action.delete.service.offering": "Delete Service Offering",
+    "label.action.delete.service.offering.processing": "Deleting Service Offering....",
+    "label.action.delete.snapshot": "Delete Snapshot",
+    "label.action.delete.snapshot.processing": "Deleting Snapshot....",
+    "label.action.delete.system.service.offering": "حذف نظام تقديم الخدمة",
+    "label.action.delete.template": "Delete Template",
+    "label.action.delete.template.processing": "Deleting Template....",
+    "label.action.delete.user": "Delete User",
+    "label.action.delete.user.processing": "Deleting User....",
+    "label.action.delete.volume": "Delete Volume",
+    "label.action.delete.volume.processing": "Deleting Volume....",
+    "label.action.delete.zone": "Delete Zone",
+    "label.action.delete.zone.processing": "Deleting Zone....",
+    "label.action.destroy.instance": "Destroy Instance",
+    "label.action.destroy.instance.processing": "Destroying Instance....",
+    "label.action.destroy.systemvm": "Destroy System VM",
+    "label.action.destroy.systemvm.processing": "Destroying System VM....",
+    "label.action.detach.disk": "Detach Disk",
+    "label.action.detach.disk.processing": "Detaching Disk....",
+    "label.action.detach.iso": "Detach ISO",
+    "label.action.detach.iso.processing": "Detaching ISO....",
+    "label.action.disable.account": "Disable account",
+    "label.action.disable.account.processing": "Disabling account....",
+    "label.action.disable.cluster": "Disable Cluster",
+    "label.action.disable.cluster.processing": "Disabling Cluster....",
+    "label.action.disable.nexusVswitch": "Disable Nexus 1000v",
+    "label.action.disable.physical.network": "تعطيل شبكة فيزيائية",
+    "label.action.disable.pod": "Disable Pod",
+    "label.action.disable.pod.processing": "Disabling Pod....",
+    "label.action.disable.static.NAT": "Disable Static NAT",
+    "label.action.disable.static.NAT.processing": "Disabling Static NAT....",
+    "label.action.disable.user": "Disable User",
+    "label.action.disable.user.processing": "Disabling User....",
+    "label.action.disable.zone": "Disable Zone",
+    "label.action.disable.zone.processing": "Disabling Zone....",
+    "label.action.download.ISO": "Download ISO",
+    "label.action.download.template": "Download Template",
+    "label.action.download.volume": "Download Volume",
+    "label.action.download.volume.processing": "Downloading Volume....",
+    "label.action.edit.ISO": "Edit ISO",
+    "label.action.edit.account": "Edit account",
+    "label.action.edit.disk.offering": "Edit Disk Offering",
+    "label.action.edit.domain": "Edit Domain",
+    "label.action.edit.global.setting": "Edit Global Setting",
+    "label.action.edit.host": "Edit Host",
+    "label.action.edit.instance": "Edit Instance",
+    "label.action.edit.network": "Edit Network",
+    "label.action.edit.network.offering": "Edit Network Offering",
+    "label.action.edit.network.processing": "Editing Network....",
+    "label.action.edit.pod": "Edit Pod",
+    "label.action.edit.primary.storage": "Edit Primary Storage",
+    "label.action.edit.resource.limits": "Edit Resource Limits",
+    "label.action.edit.service.offering": "Edit Service Offering",
+    "label.action.edit.template": "Edit Template",
+    "label.action.edit.user": "Edit User",
+    "label.action.edit.zone": "Edit Zone",
+    "label.action.enable.account": "Enable account",
+    "label.action.enable.account.processing": "Enabling account....",
+    "label.action.enable.cluster": "Enable Cluster",
+    "label.action.enable.cluster.processing": "Enabling Cluster....",
+    "label.action.enable.maintenance.mode": "Enable Maintenance Mode",
+    "label.action.enable.maintenance.mode.processing": "Enabling Maintenance Mode....",
+    "label.action.enable.nexusVswitch": "Enable Nexus 1000v",
+    "label.action.enable.physical.network": "تمكين شبكة فيزيائية",
+    "label.action.enable.pod": "Enable Pod",
+    "label.action.enable.pod.processing": "Enabling Pod....",
+    "label.action.enable.static.NAT": "Enable Static NAT",
+    "label.action.enable.static.NAT.processing": "Enabling Static NAT....",
+    "label.action.enable.user": "Enable User",
+    "label.action.enable.user.processing": "Enabling User....",
+    "label.action.enable.zone": "Enable Zone",
+    "label.action.enable.zone.processing": "Enabling Zone....",
+    "label.action.expunge.instance": "Expunge Instance",
+    "label.action.expunge.instance.processing": "Expunging Instance....",
+    "label.action.force.reconnect": "Force Reconnect",
+    "label.action.force.reconnect.processing": "Reconnecting....",
+    "label.action.generate.keys": "Generate Keys",
+    "label.action.generate.keys.processing": "Generate Keys....",
+    "label.action.list.nexusVswitch": "List Nexus 1000v",
+    "label.action.lock.account": "Lock account",
+    "label.action.lock.account.processing": "Locking account....",
+    "label.action.manage.cluster": "Manage Cluster",
+    "label.action.manage.cluster.processing": "Managing Cluster....",
+    "label.action.migrate.instance": "Migrate Instance",
+    "label.action.migrate.instance.processing": "Migrating Instance....",
+    "label.action.migrate.router": "Migrate Router",
+    "label.action.migrate.router.processing": "Migrating Router....",
+    "label.action.migrate.systemvm": "Migrate System VM",
+    "label.action.migrate.systemvm.processing": "Migrating System VM....",
+    "label.action.reboot.instance": "Reboot Instance",
+    "label.action.reboot.instance.processing": "Rebooting Instance....",
+    "label.action.reboot.router": "Reboot Router",
+    "label.action.reboot.router.processing": "Rebooting Router....",
+    "label.action.reboot.systemvm": "Reboot System VM",
+    "label.action.reboot.systemvm.processing": "Rebooting System VM....",
+    "label.action.recurring.snapshot": "Recurring Snapshots",
+    "label.action.register.iso": "Register ISO",
+    "label.action.register.template": "Register Template from URL",
+    "label.action.release.ip": "Release IP",
+    "label.action.release.ip.processing": "Releasing IP....",
+    "label.action.remove.host": "Remove Host",
+    "label.action.remove.host.processing": "Removing Host....",
+    "label.action.reset.password": "Reset Password",
+    "label.action.reset.password.processing": "Resetting Password....",
+    "label.action.resize.volume": "Resize Volume",
+    "label.action.resize.volume.processing": "Resizing Volume....",
+    "label.action.resource.limits": "Resource limits",
+    "label.action.restore.instance": "Restore Instance",
+    "label.action.restore.instance.processing": "Restoring Instance....",
+    "label.action.revert.snapshot": "Revert to Snapshot",
+    "label.action.revert.snapshot.processing": "Reverting to Snapshot...",
+    "label.action.start.instance": "Start Instance",
+    "label.action.start.instance.processing": "Starting Instance....",
+    "label.action.start.router": "Start Router",
+    "label.action.start.router.processing": "Starting Router....",
+    "label.action.start.systemvm": "Start System VM",
+    "label.action.start.systemvm.processing": "Starting System VM....",
+    "label.action.stop.instance": "Stop Instance",
+    "label.action.stop.instance.processing": "Stopping Instance....",
+    "label.action.stop.router": "Stop Router",
+    "label.action.stop.router.processing": "Stopping Router....",
+    "label.action.stop.systemvm": "Stop System VM",
+    "label.action.stop.systemvm.processing": "Stopping System VM....",
+    "label.action.take.snapshot": "Take Snapshot",
+    "label.action.take.snapshot.processing": "Taking Snapshot....",
+    "label.action.unmanage.cluster": "Unmanage Cluster",
+    "label.action.unmanage.cluster.processing": "Unmanaging Cluster....",
+    "label.action.update.OS.preference": "Update OS Preference",
+    "label.action.update.OS.preference.processing": "Updating OS Preference....",
+    "label.action.update.resource.count": "Update Resource Count",
+    "label.action.update.resource.count.processing": "Updating Resource Count....",
+    "label.action.vmsnapshot.create": "Take VM Snapshot",
+    "label.action.vmsnapshot.delete": "Delete VM snapshot",
+    "label.action.vmsnapshot.revert": "Revert to VM snapshot",
+    "label.actions": "Actions",
+    "label.activate.project": "تفعيل المشروع",
+    "label.active.sessions": "Active Sessions",
+    "label.add": "Add",
+    "label.add.ACL": "إضافة ACL",
+    "label.add.BigSwitchBcf.device": "Add BigSwitch BCF Controller",
+    "label.add.BrocadeVcs.device": "Add Brocade Vcs Switch",
+    "label.add.F5.device": "Add F5 device",
+    "label.add.LDAP.account": "Add LDAP Account",
+    "label.add.NiciraNvp.device": "Add Nvp Controller",
+    "label.add.NuageVsp.device": "Add Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Add OpenDaylight Controller",
+    "label.add.PA.device": "Add Palo Alto device",
+    "label.add.SRX.device": "Add SRX device",
+    "label.add.VM.to.tier": "إضافة جهاز إفتراضي في طبقة",
+    "label.add.VPN.gateway": "أضف بوابة الشبكة الافتراضية الشخصية",
+    "label.add.account": "Add Account",
+    "label.add.account.to.project": "إضافة حساب للمشروع",
+    "label.add.accounts": "إضافة حسابات",
+    "label.add.accounts.to": "إضافة حسابات إلى",
+    "label.add.acl.list": "Add ACL List",
+    "label.add.affinity.group": "Add new affinity group",
+    "label.add.baremetal.dhcp.device": "Add Baremetal DHCP Device",
+    "label.add.baremetal.rack.configuration": "Add Baremetal Rack Configuration",
+    "label.add.by": "Add by",
+    "label.add.by.cidr": "Add By CIDR",
+    "label.add.by.group": "Add By Group",
+    "label.add.ciscoASA1000v": "Add CiscoASA1000v Resource",
+    "label.add.cluster": "Add Cluster",
+    "label.add.compute.offering": "Add compute offering",
+    "label.add.direct.iprange": "Add Direct Ip Range",
+    "label.add.disk.offering": "Add Disk Offering",
+    "label.add.domain": "Add Domain",
+    "label.add.egress.rule": "Add egress rule",
+    "label.add.firewall": "Add firewall rule",
+    "label.add.globo.dns": "Add GloboDNS",
+    "label.add.gslb": "Add GSLB",
+    "label.add.guest.network": "Add guest network",
+    "label.add.host": "Add Host",
+    "label.add.ingress.rule": "Add Ingress Rule",
+    "label.add.intermediate.certificate": "Add intermediate certificate",
+    "label.add.internal.lb": "Add Internal LB",
+    "label.add.ip.range": "Add IP Range",
+    "label.add.isolated.guest.network": "Add Isolated Guest Network",
+    "label.add.isolated.guest.network.with.sourcenat": "Add Isolated Guest Network with SourceNat",
+    "label.add.isolated.network": "Add Isolated Network",
+    "label.add.ldap.account": "Add LDAP account",
+    "label.add.list.name": "ACL List Name",
+    "label.add.load.balancer": "Add Load Balancer",
+    "label.add.more": "Add More",
+    "label.add.netScaler.device": "Add Netscaler device",
+    "label.add.network": "Add Network",
+    "label.add.network.ACL": "إضافة شبكة ACL",
+    "label.add.network.acl.list": "Add Network ACL List",
+    "label.add.network.device": "Add Network Device",
+    "label.add.network.offering": "Add network offering",
+    "label.add.new.F5": "Add new F5",
+    "label.add.new.NetScaler": "Add new NetScaler",
+    "label.add.new.PA": "Add new Palo Alto",
+    "label.add.new.SRX": "Add new SRX",
+    "label.add.new.gateway": "أضف بوابة جديدة",
+    "label.add.new.tier": "إضافة طبقة جديدة",
+    "label.add.nfs.secondary.staging.store": "Add NFS Secondary Staging Store",
+    "label.add.physical.network": "Add physical network",
+    "label.add.pod": "Add Pod",
+    "label.add.port.forwarding.rule": "إضافة قاعدة منفذ إعادة التوجيه",
+    "label.add.portable.ip.range": "Add Portable IP Range",
+    "label.add.primary.storage": "Add Primary Storage",
+    "label.add.private.gateway": "Add Private Gateway",
+    "label.add.region": "Add Region",
+    "label.add.resources": "Add Resources",
+    "label.add.role": "Add Role",
+    "label.add.route": "إضافة مسار",
+    "label.add.rule": "إضافة قاعدة",
+    "label.add.secondary.storage": "Add Secondary Storage",
+    "label.add.security.group": "Add Security Group",
+    "label.add.service.offering": "Add Service Offering",
+    "label.add.static.nat.rule": "Add static NAT rule",
+    "label.add.static.route": "إضافة توجيه ثابت",
+    "label.add.system.service.offering": "Add System Service Offering",
+    "label.add.template": "Add Template",
+    "label.add.to.group": "إضافة إلى المجموعة",
+    "label.add.ucs.manager": "Add UCS Manager",
+    "label.add.user": "Add User",
+    "label.add.userdata": "Userdata",
+    "label.add.vlan": "Add VLAN",
+    "label.add.vm": "Add VM",
+    "label.add.vms": "Add VMs",
+    "label.add.vms.to.lb": "Add VM(s) to load balancer rule",
+    "label.add.vmware.datacenter": "Add VMware datacenter",
+    "label.add.vnmc.device": "Add VNMC device",
+    "label.add.vnmc.provider": "Add VNMC provider",
+    "label.add.volume": "Add Volume",
+    "label.add.vpc": "إضافة سحابة إفتراضية خاصة",
+    "label.add.vpc.offering": "Add VPC Offering",
+    "label.add.vpn.customer.gateway": "Add VPN Customer Gateway",
+    "label.add.vpn.user": "Add VPN user",
+    "label.add.vxlan": "Add VXLAN",
+    "label.add.zone": "Add Zone",
+    "label.added.brocade.vcs.switch": "Added new Brocade Vcs Switch",
+    "label.added.network.offering": "Added network offering",
+    "label.added.new.bigswitch.bcf.controller": "Added new BigSwitch BCF Controller",
+    "label.added.nicira.nvp.controller": "Added new Nicira NVP Controller",
+    "label.addes.new.f5": "Added new F5",
+    "label.adding": "Adding",
+    "label.adding.cluster": "Adding Cluster",
+    "label.adding.failed": "Adding Failed",
+    "label.adding.pod": "Adding Pod",
+    "label.adding.processing": "Adding....",
+    "label.adding.succeeded": "Adding Succeeded",
+    "label.adding.user": "Adding User",
+    "label.adding.zone": "Adding Zone",
+    "label.additional.networks": "Additional Networks",
+    "label.admin": "Admin",
+    "label.admin.accounts": "Admin Accounts",
+    "label.advanced": "Advanced",
+    "label.advanced.mode": "Advanced Mode",
+    "label.advanced.search": "Advanced Search",
+    "label.affinity": "Affinity",
+    "label.affinity.group": "Affinity Group",
+    "label.affinity.groups": "Affinity Groups",
+    "label.agent.password": "Agent Password",
+    "label.agent.port": "Agent Port",
+    "label.agent.state": "Agent State",
+    "label.agent.username": "Agent Username",
+    "label.agree": "Agree",
+    "label.alert": "Alert",
+    "label.alert.archived": "Alert Archived",
+    "label.alert.deleted": "Alert Deleted",
+    "label.alert.details": "Alert details",
+    "label.algorithm": "Algorithm",
+    "label.allocated": "تخصيص",
+    "label.allocation.state": "Allocation State",
+    "label.allow": "Allow",
+    "label.anti.affinity": "Anti-affinity",
+    "label.anti.affinity.group": "Anti-affinity Group",
+    "label.anti.affinity.groups": "Anti-affinity Groups",
+    "label.api.key": "API Key",
+    "label.api.version": "API Version",
+    "label.app.name": "CloudStack",
+    "label.apply": "تطبيق",
+    "label.archive": "Archive",
+    "label.archive.alerts": "Archive alerts",
+    "label.archive.events": "Archive events",
+    "label.assign": "Assign",
+    "label.assign.instance.another": "Assign Instance to Another Account",
+    "label.assign.to.load.balancer": "Assigning instance to load balancer",
+    "label.assign.vms": "Assign VMs",
+    "label.assigned.vms": "Assigned VMs",
+    "label.associate.public.ip": "Associate Public IP",
+    "label.associated.network": "شبكة مرتبطة",
+    "label.associated.network.id": "Associated Network ID",
+    "label.associated.profile": "Associated Profile",
+    "label.attached.iso": "Attached ISO",
+    "label.author.email": "Author e-mail",
+    "label.author.name": "Author name",
+    "label.autoscale": "AutoScale",
+    "label.autoscale.configuration.wizard": "AutoScale Configuration Wizard",
+    "label.availability": "Availability",
+    "label.availability.zone": "Availability Zone",
+    "label.availabilityZone": "availabilityZone",
+    "label.available": "Available",
+    "label.available.public.ips": "Available Public IP Addresses",
+    "label.back": "Back",
+    "label.bandwidth": "Bandwidth",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP Devices",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP Provider",
+    "label.baremetal.pxe.device": "Add Baremetal PXE Device",
+    "label.baremetal.pxe.devices": "Baremetal PXE Devices",
+    "label.baremetal.pxe.provider": "Baremetal PXE Provider",
+    "label.baremetal.rack.configuration": "Baremetal Rack Configuration",
+    "label.basic": "Basic",
+    "label.basic.mode": "Basic Mode",
+    "label.bigswitch.bcf.details": "BigSwitch BCF details",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT Enabled",
+    "label.bigswitch.controller.address": "BigSwitch BCF Controller Address",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blades",
+    "label.bootable": "Bootable",
+    "label.broadcast.domain.range": "Broadcast domain range",
+    "label.broadcast.domain.type": "Broadcast Domain Type",
+    "label.broadcast.uri": "بث الرابط",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "بث الرابط",
+    "label.brocade.vcs.address": "Vcs Switch Address",
+    "label.brocade.vcs.details": "Brocade Vcs Switch details",
+    "label.by.account": "By Account",
+    "label.by.alert.type": "By alert type",
+    "label.by.availability": "By Availability",
+    "label.by.date.end": "By date (end)",
+    "label.by.date.start": "By date (start)",
+    "label.by.domain": "By Domain",
+    "label.by.end.date": "By End Date",
+    "label.by.event.type": "By event type",
+    "label.by.level": "By Level",
+    "label.by.pod": "By Pod",
+    "label.by.role": "By Role",
+    "label.by.start.date": "By Start Date",
+    "label.by.state": "By State",
+    "label.by.traffic.type": "By Traffic Type",
+    "label.by.type": "By Type",
+    "label.by.type.id": "By Type ID",
+    "label.by.zone": "By Zone",
+    "label.bytes.received": "Bytes Received",
+    "label.bytes.sent": "Bytes Sent",
+    "label.cache.mode": "Write-cache Type",
+    "label.cancel": "Cancel",
+    "label.capacity": "Capacity",
+    "label.capacity.bytes": "Capacity Bytes",
+    "label.capacity.iops": "Capacity IOPS",
+    "label.certificate": "Server certificate",
+    "label.change.affinity": "Change Affinity",
+    "label.change.ipaddress": "Change IP address for NIC",
+    "label.change.service.offering": "Change service offering",
+    "label.change.value": "تغير القيمة",
+    "label.character": "Character",
+    "label.chassis": "Chassis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR or Account/Security Group",
+    "label.cidr.list": "Source CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP Address",
+    "label.cisco.nexus1000v.password": "Nexus 1000v Password",
+    "label.cisco.nexus1000v.username": "Nexus 1000v Username",
+    "label.ciscovnmc.resource.details": "CiscoVNMC resource details",
+    "label.clean.up": "تنظيف",
+    "label.clear.list": "مسح القائمة",
+    "label.close": "Close",
+    "label.cloud.console": "Cloud Management Console",
+    "label.cloud.managed": "Cloud.com Managed",
+    "label.cluster": "Cluster",
+    "label.cluster.name": "Cluster Name",
+    "label.cluster.type": "Cluster Type",
+    "label.clusters": "Clusters",
+    "label.clvm": "CLVM",
+    "label.code": "Code",
+    "label.community": "Community",
+    "label.compute": "Compute",
+    "label.compute.and.storage": "Compute and Storage",
+    "label.compute.offering": "Compute offering",
+    "label.compute.offerings": "Compute Offerings",
+    "label.configuration": "ترتيب",
+    "label.configure": "قم بتكوين",
+    "label.configure.ldap": "Configure LDAP",
+    "label.configure.network.ACLs": "ضبط شبكة ACLs",
+    "label.configure.sticky.policy": "Configure Sticky Policy",
+    "label.configure.vpc": "تكوين VPC",
+    "label.confirm.password": "Confirm password",
+    "label.confirmation": "Confirmation",
+    "label.congratulations": "Congratulations!",
+    "label.conserve.mode": "Conserve mode",
+    "label.console.proxy": "Console proxy",
+    "label.console.proxy.vm": "Console Proxy VM",
+    "label.continue": "Continue",
+    "label.continue.basic.install": "Continue with basic installation",
+    "label.copying.iso": "Copying ISO",
+    "label.corrections.saved": "تم حفظ التصحيحات",
+    "label.counter": "Counter",
+    "label.cpu": "و م م",
+    "label.cpu.allocated": "CPU Allocated",
+    "label.cpu.allocated.for.VMs": "CPU Allocated for VMs",
+    "label.cpu.limits": "CPU limits",
+    "label.cpu.mhz": "وحدة المعالجة المركزية (بالميغاهيرتز)",
+    "label.cpu.utilized": "CPU Utilized",
+    "label.create.VPN.connection": "إنشاء اتصال بوابة الشبكة الافتراضية الشخصية",
+    "label.create.nfs.secondary.staging.storage": "Create NFS Secondary Staging Store",
+    "label.create.nfs.secondary.staging.store": "Create NFS secondary staging store",
+    "label.create.project": "أنشئ مشروع",
+    "label.create.ssh.key.pair": "Create a SSH Key Pair",
+    "label.create.template": "Create template",
+    "label.created": "Created",
+    "label.created.by.system": "Created by system",
+    "label.cross.zones": "Cross Zones",
+    "label.custom": "Custom",
+    "label.custom.disk.iops": "Custom IOPS",
+    "label.custom.disk.offering": "Custom Disk Offering",
+    "label.custom.disk.size": "Custom Disk Size",
+    "label.daily": "Daily",
+    "label.data.disk.offering": "Data Disk Offering",
+    "label.date": "Date",
+    "label.day": "Day",
+    "label.day.of.month": "Day of Month",
+    "label.day.of.week": "Day of Week",
+    "label.dc.name": "DC Name",
+    "label.dead.peer.detection": "كشف القرين المفقود",
+    "label.decline.invitation": "رفض الدعوة",
+    "label.dedicate": "Dedicate",
+    "label.dedicate.cluster": "Dedicate Cluster",
+    "label.dedicate.host": "Dedicate Host",
+    "label.dedicate.pod": "Dedicate Pod",
+    "label.dedicate.vlan.vni.range": "Dedicate VLAN/VNI Range",
+    "label.dedicate.zone": "Dedicate Zone",
+    "label.dedicated": "Dedicated",
+    "label.dedicated.vlan.vni.ranges": "Dedicated VLAN/VNI Ranges",
+    "label.default": "الإفتراضي",
+    "label.default.egress.policy": "Default egress policy",
+    "label.default.use": "Default Use",
+    "label.default.view": "طريقة العرض الافتراضية",
+    "label.delete": "Delete",
+    "label.delete.BigSwitchBcf": "Remove BigSwitch BCF Controller",
+    "label.delete.BrocadeVcs": "Remove Brocade Vcs Switch",
+    "label.delete.F5": "Delete F5",
+    "label.delete.NetScaler": "Delete NetScaler",
+    "label.delete.NiciraNvp": "Remove Nvp Controller",
+    "label.delete.NuageVsp": "Remove Nuage VSD",
+    "label.delete.OpenDaylight.device": "Delete OpenDaylight Controller",
+    "label.delete.PA": "Delete Palo Alto",
+    "label.delete.SRX": "Delete SRX",
+    "label.delete.VPN.connection": "احذف بوابة الشبكة الافتراضية الشخصية",
+    "label.delete.VPN.customer.gateway": "حذف بوابة VPN المخصصة",
+    "label.delete.VPN.gateway": "احذف بوابة الشبكة الافتراضية الشخصية",
+    "label.delete.acl.list": "Delete ACL List",
+    "label.delete.affinity.group": "Delete Affinity Group",
+    "label.delete.alerts": "Delete alerts",
+    "label.delete.baremetal.rack.configuration": "Delete Baremetal Rack Configuration",
+    "label.delete.ciscoASA1000v": "Delete CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Delete CiscoVNMC resource",
+    "label.delete.events": "Delete events",
+    "label.delete.gateway": "احذف البوابة",
+    "label.delete.internal.lb": "Delete Internal LB",
+    "label.delete.portable.ip.range": "Delete Portable IP Range",
+    "label.delete.profile": "Delete Profile",
+    "label.delete.project": "حذف المشروع",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Delete Secondary Staging Store",
+    "label.delete.ucs.manager": "Delete UCS Manager",
+    "label.delete.vpn.user": "Delete VPN user",
+    "label.deleting.failed": "Deleting Failed",
+    "label.deleting.processing": "Deleting....",
+    "label.deny": "Deny",
+    "label.deployment.planner": "Deployment planner",
+    "label.description": "Description",
+    "label.destination.physical.network.id": "Destination physical network ID",
+    "label.destination.zone": "Destination Zone",
+    "label.destroy": "هدم",
+    "label.destroy.router": "Destroy router",
+    "label.destroy.vm.graceperiod": "Destroy VM Grace Period",
+    "label.detaching.disk": "Detaching Disk",
+    "label.details": "Details",
+    "label.device.id": "Device ID",
+    "label.devices": "الأجهزة",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Direct Attached Public IP",
+    "label.direct.ips": "الشبكة المشتركة IPs",
+    "label.disable.autoscale": "Disable Autoscale",
+    "label.disable.host": "Disable Host",
+    "label.disable.network.offering": "Disable network offering",
+    "label.disable.provider": "Disable provider",
+    "label.disable.vnmc.provider": "Disable VNMC provider",
+    "label.disable.vpc.offering": "Disable VPC offering",
+    "label.disable.vpn": "Disable Remote Access VPN",
+    "label.disabled": "Disabled",
+    "label.disabling.vpn.access": "Disabling VPN Access",
+    "label.disassociate.profile.blade": "Disassociate Profile from Blade",
+    "label.disbale.vnmc.device": "Disable VNMC device",
+    "label.disk.allocated": "Disk Allocated",
+    "label.disk.bytes.read.rate": "Disk Read Rate (BPS)",
+    "label.disk.bytes.write.rate": "Disk Write Rate (BPS)",
+    "label.disk.iops.max": "Max IOPS",
+    "label.disk.iops.min": "Min IOPS",
+    "label.disk.iops.read.rate": "Disk Read Rate (IOPS)",
+    "label.disk.iops.total": "IOPS Total",
+    "label.disk.iops.write.rate": "Disk Write Rate (IOPS)",
+    "label.disk.offering": "Disk Offering",
+    "label.disk.offering.details": "Disk offering details",
+    "label.disk.provisioningtype": "Provisioning Type",
+    "label.disk.read.bytes": "Disk Read (Bytes)",
+    "label.disk.read.io": "Disk Read (IO)",
+    "label.disk.size": "Disk Size",
+    "label.disk.size.gb": "Disk Size (in GB)",
+    "label.disk.total": "Disk Total",
+    "label.disk.volume": "Disk Volume",
+    "label.disk.write.bytes": "Disk Write (Bytes)",
+    "label.disk.write.io": "Disk Write (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Display Name",
+    "label.display.text": "Display Text",
+    "label.distributedrouter": "Distributed Router",
+    "label.dns": "نظام تسمية المجال DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Domain",
+    "label.domain.admin": "Domain Admin",
+    "label.domain.details": "Domain details",
+    "label.domain.id": "Domain ID",
+    "label.domain.lower": "domain",
+    "label.domain.name": "Domain Name",
+    "label.domain.router": "Domain router",
+    "label.domain.suffix": "DNS Domain Suffix (i.e., xyz.com)",
+    "label.done": "Done",
+    "label.double.quotes.are.not.allowed": "Double quotes are not allowed",
+    "label.download.progress": "Download Progress",
+    "label.drag.new.position": "اسحب لموقف جديد",
+    "label.duration.in.sec": "Duration (in sec)",
+    "label.dynamically.scalable": "Dynamically Scalable",
+    "label.edit": "Edit",
+    "label.edit.acl.rule": "Edit ACL rule",
+    "label.edit.affinity.group": "Edit Affinity Group",
+    "label.edit.lb.rule": "Edit LB rule",
+    "label.edit.network.details": "تحرير تفاصيل الشبكة",
+    "label.edit.project.details": "اضافة تفاصيل المشروع",
+    "label.edit.region": "Edit Region",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Edit rule",
+    "label.edit.secondary.ips": "Edit secondary IPs",
+    "label.edit.tags": "تعديل العلامات",
+    "label.edit.traffic.type": "Edit traffic type",
+    "label.edit.vpc": "تعديل VPC",
+    "label.egress.default.policy": "Egress Default Policy",
+    "label.egress.rule": "Egress rule",
+    "label.egress.rules": "قواعد الخروج",
+    "label.elastic": "مرن",
+    "label.elastic.IP": "Elastic IP",
+    "label.elastic.LB": "Elastic LB",
+    "label.email": "Email",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Enable Autoscale",
+    "label.enable.host": "Enable Host",
+    "label.enable.network.offering": "Enable network offering",
+    "label.enable.provider": "Enable provider",
+    "label.enable.s3": "تمكين التخزين الثانوي S3",
+    "label.enable.swift": "Enable Swift",
+    "label.enable.vnmc.device": "Enable VNMC device",
+    "label.enable.vnmc.provider": "Enable VNMC provider",
+    "label.enable.vpc.offering": "Enable VPC offering",
+    "label.enable.vpn": "Enable Remote Access VPN",
+    "label.enabling.vpn": "Enabling VPN",
+    "label.enabling.vpn.access": "Enabling VPN Access",
+    "label.end.IP": "End IP",
+    "label.end.port": "End Port",
+    "label.end.reserved.system.IP": "End Reserved system IP",
+    "label.end.vlan": "End VLAN",
+    "label.end.vxlan": "End VXLAN",
+    "label.endpoint": "نقطة النهاية",
+    "label.endpoint.or.operation": "Endpoint or Operation",
+    "label.enter.token": "Enter token",
+    "label.error": "خطأ",
+    "label.error.code": "Error Code",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "ESX/ESXi Host",
+    "label.event": "Event",
+    "label.event.archived": "Event Archived",
+    "label.event.deleted": "Event Deleted",
+    "label.every": "Every",
+    "label.example": "Example",
+    "label.expunge": "Expunge",
+    "label.external.link": "External link",
+    "label.extractable": "Extractable",
+    "label.extractable.lower": "extractable",
+    "label.f5": "F5",
+    "label.f5.details": "F5 details",
+    "label.failed": "خطأ",
+    "label.featured": "Featured",
+    "label.fetch.latest": "Fetch latest",
+    "label.filterBy": "تصفية حسب",
+    "label.fingerprint": "FingerPrint",
+    "label.firewall": "Firewall",
+    "label.first.name": "First Name",
+    "label.firstname.lower": "firstname",
+    "label.format": "Format",
+    "label.format.lower": "format",
+    "label.friday": "Friday",
+    "label.full": "Full",
+    "label.full.path": "مسار كامل",
+    "label.gateway": "Gateway",
+    "label.general.alerts": "General Alerts",
+    "label.generating.url": "Generating URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS Configuration",
+    "label.gluster.volume": "Volume",
+    "label.go.step.2": "Go to Step 2",
+    "label.go.step.3": "Go to Step 3",
+    "label.go.step.4": "Go to Step 4",
+    "label.go.step.5": "Go to Step 5",
+    "label.gpu": "وعر",
+    "label.group": "Group",
+    "label.group.by.account": "Group by account",
+    "label.group.by.cluster": "Group by cluster",
+    "label.group.by.pod": "Group by pod",
+    "label.group.by.zone": "Group by zone",
+    "label.group.optional": "Group (Optional)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Assigned load balancing",
+    "label.gslb.assigned.lb.more": "Assign more load balancing",
+    "label.gslb.delete": "Delete GSLB",
+    "label.gslb.details": "GSLB details",
+    "label.gslb.domain.name": "GSLB Domain Name",
+    "label.gslb.lb.details": "Load balancing details",
+    "label.gslb.lb.remove": "Remove load balancing from this GSLB",
+    "label.gslb.lb.rule": "Load balancing rule",
+    "label.gslb.service": "GSLB service",
+    "label.gslb.service.private.ip": "GSLB service Private IP",
+    "label.gslb.service.public.ip": "GSLB service Public IP",
+    "label.gslb.servicetype": "Service Type",
+    "label.guest": "Guest",
+    "label.guest.cidr": "Guest CIDR",
+    "label.guest.end.ip": "Guest end IP",
+    "label.guest.gateway": "Guest Gateway",
+    "label.guest.ip": "Guest IP Address",
+    "label.guest.ip.range": "Guest IP Range",
+    "label.guest.netmask": "Guest Netmask",
+    "label.guest.network.details": "Guest network details",
+    "label.guest.networks": "Guest networks",
+    "label.guest.start.ip": "Guest start IP",
+    "label.guest.traffic": "Guest Traffic",
+    "label.guest.traffic.vswitch.name": "Guest Traffic vSwitch Name",
+    "label.guest.traffic.vswitch.type": "Guest Traffic vSwitch Type",
+    "label.guest.type": "نوع الضيف",
+    "label.ha.enabled": "HA Enabled",
+    "label.health.check": "Health Check",
+    "label.health.check.advanced.options": "Advanced Options:",
+    "label.health.check.configurations.options": "Configuration Options:",
+    "label.health.check.interval.in.sec": "Health Check Interval (in sec)",
+    "label.health.check.message.desc": "Your load balancer will automatically perform health checks on your cloudstack instances and only route traffic to instances that pass the health check",
+    "label.health.check.wizard": "Health Check Wizard",
+    "label.healthy.threshold": "Healthy Threshold",
+    "label.help": "Help",
+    "label.hide.ingress.rule": "Hide Ingress Rule",
+    "label.hints": "Hints",
+    "label.home": "Home",
+    "label.host": "Host",
+    "label.host.MAC": "Host MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Host Name",
+    "label.host.tag": "Host Tag",
+    "label.host.tags": "Host Tags",
+    "label.hosts": "Hosts",
+    "label.hourly": "Hourly",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Traffic Label",
+    "label.hypervisor": "Hypervisor",
+    "label.hypervisor.capabilities": "Hypervisor capabilities",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Snapshot Reserve",
+    "label.hypervisor.type": "Hypervisor Type",
+    "label.hypervisor.version": "Hypervisor version",
+    "label.hypervisors": "Hypervisors",
+    "label.id": "ID",
+    "label.info": "Info",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Ingress Rule",
+    "label.initiated.by": "Initiated By",
+    "label.inside.port.profile": "Inside Port Profile",
+    "label.installWizard.addClusterIntro.subtitle": "What is a cluster?",
+    "label.installWizard.addClusterIntro.title": "Let&rsquo;s add a cluster",
+    "label.installWizard.addHostIntro.subtitle": "What is a host?",
+    "label.installWizard.addHostIntro.title": "Let&rsquo;s add a host",
+    "label.installWizard.addPodIntro.subtitle": "What is a pod?",
+    "label.installWizard.addPodIntro.title": "Let&rsquo;s add a pod",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "What is primary storage?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Let&rsquo;s add primary storage",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "What is secondary storage?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Let&rsquo;s add secondary storage",
+    "label.installWizard.addZone.title": "Add zone",
+    "label.installWizard.addZoneIntro.subtitle": "What is a zone?",
+    "label.installWizard.addZoneIntro.title": "Let&rsquo;s add a zone",
+    "label.installWizard.click.launch": "Click the launch button.",
+    "label.installWizard.subtitle": "This tour will aid you in setting up your CloudStack&#8482 installation",
+    "label.installWizard.title": "Hello and Welcome to CloudStack&#8482",
+    "label.instance": "Instance",
+    "label.instance.limits": "Instance Limits",
+    "label.instance.name": "Instance Name",
+    "label.instance.port": "Instance Port",
+    "label.instance.scaled.up": "Instance scaled to the requested offering",
+    "label.instances": "الحالات",
+    "label.instanciate.template.associate.profile.blade": "Instanciate Template and Associate Profile to Blade",
+    "label.intermediate.certificate": "Intermediate certificate {0}",
+    "label.internal.dns.1": "Internal DNS 1",
+    "label.internal.dns.2": "Internal DNS 2",
+    "label.internal.lb": "Internal LB",
+    "label.internal.lb.details": "Internal LB details",
+    "label.internal.name": "Internal name",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "Interval Type",
+    "label.introduction.to.cloudstack": "Introduction to CloudStack&#8482",
+    "label.invalid.integer": "Invalid Integer",
+    "label.invalid.number": "Invalid Number",
+    "label.invitations": "دعوات",
+    "label.invite": "Invite",
+    "label.invite.to": "دعوة لـ",
+    "label.invited.accounts": "دعوة حسابات",
+    "label.ip": "IP",
+    "label.ip.address": "IP Address",
+    "label.ip.allocations": "IP Allocations",
+    "label.ip.limits": "Public IP Limits",
+    "label.ip.or.fqdn": "IP or FQDN",
+    "label.ip.range": "IP Range",
+    "label.ip.ranges": "IP Ranges",
+    "label.ipaddress": "IP Address",
+    "label.ips": "IPs",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 End IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4 Netmask",
+    "label.ipv4.start.ip": "IPv4 Start IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP Address",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 End IP",
+    "label.ipv6.gateway": "IPv6 Gateway",
+    "label.ipv6.start.ip": "IPv6 Start IP",
+    "label.is.default": "Is Default",
+    "label.is.redundant.router": "Redundant",
+    "label.is.shared": "Is Shared",
+    "label.is.system": "Is System",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO Boot",
+    "label.isolated.networks": "Isolated networks",
+    "label.isolation.method": "Isolation method",
+    "label.isolation.mode": "Isolation Mode",
+    "label.isolation.uri": "عزل الرابط",
+    "label.item.listing": "Item listing",
+    "label.japanese.keyboard": "Japanese keyboard",
+    "label.keep": "Keep",
+    "label.keep.colon": "Keep:",
+    "label.key": "Key",
+    "label.keyboard.language": "Keyboard language",
+    "label.keyboard.type": "نوع لوحة المفاتيح",
+    "label.kvm.traffic.label": "KVM traffic label",
+    "label.label": "Label",
+    "label.lang.arabic": "Arabic",
+    "label.lang.brportugese": "Brazilian Portugese",
+    "label.lang.catalan": "Catalan",
+    "label.lang.chinese": "Chinese (Simplified)",
+    "label.lang.dutch": "Dutch (Netherlands)",
+    "label.lang.english": "English",
+    "label.lang.french": "French",
+    "label.lang.german": "German",
+    "label.lang.hungarian": "Hungarian",
+    "label.lang.italian": "Italian",
+    "label.lang.japanese": "Japanese",
+    "label.lang.korean": "Korean",
+    "label.lang.norwegian": "Norwegian",
+    "label.lang.polish": "Polish",
+    "label.lang.russian": "Russian",
+    "label.lang.spanish": "Spanish",
+    "label.last.disconnected": "Last Disconnected",
+    "label.last.name": "Last Name",
+    "label.lastname.lower": "lastname",
+    "label.latest.events": "Latest events",
+    "label.launch": "Launch",
+    "label.launch.vm": "Launch VM",
+    "label.launch.zone": "Launch zone",
+    "label.lb.algorithm.leastconn": "أقل الإتصالات",
+    "label.lb.algorithm.roundrobin": "Round-robin",
+    "label.lb.algorithm.source": "مصدر",
+    "label.ldap.configuration": "LDAP Configuration",
+    "label.ldap.group.name": "LDAP Group",
+    "label.ldap.link.type": "Type",
+    "label.ldap.port": "LDAP port",
+    "label.level": "Level",
+    "label.link.domain.to.ldap": "Link Domain to LDAP",
+    "label.linklocal.ip": "Link Local IP Address",
+    "label.load.balancer": "Load Balancer",
+    "label.load.balancer.type": "Load Balancer Type",
+    "label.load.balancing": "Load Balancing",
+    "label.load.balancing.policies": "Load balancing policies",
+    "label.loading": "Loading",
+    "label.local": "Local",
+    "label.local.file": "Local file",
+    "label.local.storage": "Local Storage",
+    "label.local.storage.enabled": "Enable local storage for User VMs",
+    "label.local.storage.enabled.system.vms": "Enable local storage for System VMs",
+    "label.login": "Login",
+    "label.logout": "Logout",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC Traffic Label",
+    "label.make.project.owner": "جعل الحساب مالك للمشروع",
+    "label.make.redundant": "Make redundant",
+    "label.manage": "Manage",
+    "label.manage.resources": "Manage Resources",
+    "label.managed": "Managed",
+    "label.management": "Management",
+    "label.management.ips": "Management IP Addresses",
+    "label.management.server": "Management Server",
+    "label.max.cpus": "Max. CPU cores",
+    "label.max.guest.limit": "الحد الأقصاء لضيف",
+    "label.max.instances": "Max Instances",
+    "label.max.memory": "Max. memory (MiB)",
+    "label.max.networks": "Max. networks",
+    "label.max.primary.storage": "Max. primary (GiB)",
+    "label.max.public.ips": "Max. public IPs",
+    "label.max.secondary.storage": "Max. secondary (GiB)",
+    "label.max.snapshots": "Max. snapshots",
+    "label.max.templates": "Max. templates",
+    "label.max.vms": "Max. user VMs",
+    "label.max.volumes": "Max. volumes",
+    "label.max.vpcs": "Max. VPCs",
+    "label.maximum": "Maximum",
+    "label.may.continue": "You may now continue.",
+    "label.md5.checksum": "MD5 checksum",
+    "label.memory": "الذاكرة",
+    "label.memory.allocated": "Memory Allocated",
+    "label.memory.limits": "Memory limits (MiB)",
+    "label.memory.mb": "الذاكرة ( بالميجابايبت)",
+    "label.memory.total": "Memory Total",
+    "label.memory.used": "Memory Used",
+    "label.menu.accounts": "Accounts",
+    "label.menu.alerts": "التنبيهات",
+    "label.menu.all.accounts": "جميع الحسابات",
+    "label.menu.all.instances": "جميع الحالات",
+    "label.menu.community.isos": "التضامن الدولي المجتمعي",
+    "label.menu.community.templates": "قوالب المجتمع",
+    "label.menu.configuration": "ترتيب",
+    "label.menu.dashboard": "لوحة القيادة",
+    "label.menu.destroyed.instances": "حالات التدمير",
+    "label.menu.disk.offerings": "عروض القرص",
+    "label.menu.domains": "المجالات",
+    "label.menu.events": "أحداث",
+    "label.menu.featured.isos": "مميزات التضامن الدولي",
+    "label.menu.featured.templates": "قوالب مميزة",
+    "label.menu.global.settings": "الإعدادات العمومية",
+    "label.menu.infrastructure": "Infrastructure",
+    "label.menu.instances": "الحالات",
+    "label.menu.ipaddresses": "IP Addresses",
+    "label.menu.isos": "ISOs",
+    "label.menu.my.accounts": "My Accounts",
+    "label.menu.my.instances": "My Instances",
+    "label.menu.my.isos": "My ISOs",
+    "label.menu.my.templates": "My Templates",
+    "label.menu.network": "Network",
+    "label.menu.network.offerings": "Network Offerings",
+    "label.menu.physical.resources": "Physical Resources",
+    "label.menu.regions": "Regions",
+    "label.menu.running.instances": "Running Instances",
+    "label.menu.security.groups": "Security Groups",
+    "label.menu.service.offerings": "Service Offerings",
+    "label.menu.snapshots": "Snapshots",
+    "label.menu.sshkeypair": "SSH KeyPair",
+    "label.menu.stopped.instances": "Stopped Instances",
+    "label.menu.storage": "Storage",
+    "label.menu.system": "System",
+    "label.menu.system.service.offerings": "System Offerings",
+    "label.menu.system.vms": "System VMs",
+    "label.menu.templates": "Templates",
+    "label.menu.virtual.appliances": "Virtual Appliances",
+    "label.menu.virtual.resources": "Virtual Resources",
+    "label.menu.volumes": "Volumes",
+    "label.menu.vpc.offerings": "VPC Offerings",
+    "label.metrics": "Metrics",
+    "label.metrics.allocated": "تخصيص",
+    "label.metrics.clusters": "Clusters",
+    "label.metrics.cpu.allocated": "CPU Allocation",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "CPU Usage",
+    "label.metrics.cpu.used.avg": "Used",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "تخصيص",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Read",
+    "label.metrics.disk.size": "Size",
+    "label.metrics.disk.storagetype": "Type",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Unallocated",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "Used",
+    "label.metrics.disk.write": "Write",
+    "label.metrics.hosts": "Hosts",
+    "label.metrics.memory.allocated": "Mem Allocation",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Mem Usage",
+    "label.metrics.memory.used.avg": "Used",
+    "label.metrics.name": "Name",
+    "label.metrics.network.read": "Read",
+    "label.metrics.network.usage": "Network Usage",
+    "label.metrics.network.write": "Write",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "المجال",
+    "label.metrics.state": "State",
+    "label.metrics.storagepool": "Storage Pool",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "Migrate instance to",
+    "label.migrate.instance.to.host": "نقل القالب إلى مضيف آخر",
+    "label.migrate.instance.to.ps": "نقل القالب إلى الذاكرة الأساسية",
+    "label.migrate.lb.vm": "Migrate LB VM",
+    "label.migrate.router.to": "Migrate Router to",
+    "label.migrate.systemvm.to": "Migrate System VM to",
+    "label.migrate.to.host": "التحول إلى المضيف",
+    "label.migrate.to.storage": "التحول إلى التخزين",
+    "label.migrate.volume": "Migrate Volume",
+    "label.migrate.volume.to.primary.storage": "Migrate volume to another primary storage",
+    "label.min.instances": "Min Instances",
+    "label.min.past.the.hr": "min past the hr",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "minute(s) past the hour",
+    "label.minutes.past.hour": "minutes(s) past the hour",
+    "label.mode": "Mode",
+    "label.monday": "Monday",
+    "label.monthly": "Monthly",
+    "label.more.templates": "More Templates",
+    "label.move.down.row": "الانتقال إلى الأسفل بصف واحد",
+    "label.move.to.bottom": "الانتقال إلى الأسفل",
+    "label.move.to.top": "انتقال إلى أعلى",
+    "label.move.up.row": "الانتقال إلى الأعلى بصف واحد",
+    "label.my.account": "My Account",
+    "label.my.network": "شبكتي",
+    "label.my.templates": "قوالبي",
+    "label.na": "N/A",
+    "label.name": "Name",
+    "label.name.lower": "name",
+    "label.name.optional": "Name (Optional)",
+    "label.nat.port.range": "NAT Port Range",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Netmask",
+    "label.netscaler.details": "NetScaler details",
+    "label.network": "Network",
+    "label.network.ACL": "شبكة ACL",
+    "label.network.ACL.total": "إجمال شبكة ACL",
+    "label.network.ACLs": "شبكة ACLs",
+    "label.network.addVM": "Add network to VM",
+    "label.network.cidr": "Network CIDR",
+    "label.network.desc": "Network Desc",
+    "label.network.details": "Network Details",
+    "label.network.device": "Network Device",
+    "label.network.device.type": "Network Device Type",
+    "label.network.domain": "Network Domain",
+    "label.network.domain.text": "Network domain",
+    "label.network.id": "Network ID",
+    "label.network.label.display.for.blank.value": "Use default gateway",
+    "label.network.limits": "Network limits",
+    "label.network.name": "Network Name",
+    "label.network.offering": "Network Offering",
+    "label.network.offering.details": "Network offering details",
+    "label.network.offering.display.text": "Network Offering Display Text",
+    "label.network.offering.id": "Network Offering ID",
+    "label.network.offering.name": "Network Offering Name",
+    "label.network.rate": "Network Rate (Mb/s)",
+    "label.network.rate.megabytes": "Network Rate (MB/s)",
+    "label.network.read": "Network Read",
+    "label.network.service.providers": "Network Service Providers",
+    "label.network.type": "Network Type",
+    "label.network.write": "Network Write",
+    "label.networking.and.security": "Networking and security",
+    "label.networks": "الشبكات",
+    "label.new": "جديد",
+    "label.new.password": "New Password",
+    "label.new.project": "مشروع جديد",
+    "label.new.ssh.key.pair": "New SSH Key Pair",
+    "label.new.vm": "New VM",
+    "label.next": "Next",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS Server",
+    "label.nfs.storage": "NFS Storage",
+    "label.nic.adapter.type": "NIC adapter type",
+    "label.nicira.controller.address": "Controller Address",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP details",
+    "label.nicira.transportzoneuuid": "Transport Zone Uuid",
+    "label.nics": "NICs",
+    "label.no": "No",
+    "label.no.actions": "No Available Actions",
+    "label.no.alerts": "No Recent Alerts",
+    "label.no.data": "لا يوجد بيانات للعرض",
+    "label.no.errors": "No Recent Errors",
+    "label.no.grouping": "(no grouping)",
+    "label.no.isos": "No available ISOs",
+    "label.no.items": "No Available Items",
+    "label.no.security.groups": "No Available Security Groups",
+    "label.no.thanks": "لا؛ شكراً",
+    "label.none": "None",
+    "label.not.found": "Not Found",
+    "label.notifications": "التنبيهات",
+    "label.num.cpu.cores": "# of CPU Cores",
+    "label.number.of.clusters": "Number of Clusters",
+    "label.number.of.cpu.sockets": "The Number of CPU Sockets",
+    "label.number.of.hosts": "Number of Hosts",
+    "label.number.of.pods": "Number of Pods",
+    "label.number.of.system.vms": "Number of System VMs",
+    "label.number.of.virtual.routers": "Number of Virtual Routers",
+    "label.number.of.zones": "Number of Zones",
+    "label.numretries": "Number of Retries",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "of month",
+    "label.offer.ha": "Offer HA",
+    "label.ok": "موافق",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight Controller",
+    "label.opendaylight.controllerdetail": "OpenDaylight Controller Details",
+    "label.opendaylight.controllers": "OpenDaylight Controllers",
+    "label.operator": "Operator",
+    "label.optional": "Optional",
+    "label.order": "ترتيب",
+    "label.os.preference": "OS Preference",
+    "label.os.type": "OS Type",
+    "label.other": "Other",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Action",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Password",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Username",
+    "label.override.guest.traffic": "Override Guest-Traffic",
+    "label.override.public.traffic": "Override Public-Traffic",
+    "label.ovm.traffic.label": "OVM traffic label",
+    "label.ovm3.cluster": "Native Clustering",
+    "label.ovm3.pool": "Native Pooling",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "Master Vip IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Owned Public IP Addresses",
+    "label.owner.account": "Owner Account",
+    "label.owner.domain": "Owner Domain",
+    "label.palo.alto.details": "Palo Alto details",
+    "label.parent.domain": "Parent Domain",
+    "label.passive": "Passive",
+    "label.password": "Password",
+    "label.password.enabled": "Password Enabled",
+    "label.password.lower": "password",
+    "label.password.reset.confirm": "Password has been reset to ",
+    "label.path": "Path",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "Persistent ",
+    "label.physical.network": "Physical Network",
+    "label.physical.network.ID": "Physical network ID",
+    "label.physical.network.name": "Physical network name",
+    "label.ping.path": "Ping Path",
+    "label.planner.mode": "Planner mode",
+    "label.please.complete.the.following.fields": "Please complete the following fields",
+    "label.please.specify.netscaler.info": "Please specify Netscaler info",
+    "label.please.wait": "Please Wait",
+    "label.plugin.details": "Plugin details",
+    "label.plugins": "Plugins",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod Dedicated",
+    "label.pod.name": "Pod name",
+    "label.pods": "Pods",
+    "label.polling.interval.sec": "Polling Interval (in sec)",
+    "label.port": "Port",
+    "label.port.forwarding": "Port Forwarding",
+    "label.port.forwarding.policies": "Port forwarding policies",
+    "label.port.range": "Port Range",
+    "label.portable.ip": "Portable IP",
+    "label.portable.ip.range.details": "Portable IP Range details",
+    "label.portable.ip.ranges": "Portable IP Ranges",
+    "label.portable.ips": "Portable IPs",
+    "label.powerstate": "Power State",
+    "label.prev": "Prev",
+    "label.previous": "السابق",
+    "label.primary.allocated": "Primary Storage Allocated",
+    "label.primary.network": "Primary Network",
+    "label.primary.storage": "Primary Storage",
+    "label.primary.storage.count": "Primary Storage Pools",
+    "label.primary.storage.limits": "Primary Storage limits (GiB)",
+    "label.primary.used": "Primary Storage Used",
+    "label.private.Gateway": "منفذGateway خاص",
+    "label.private.interface": "Private Interface",
+    "label.private.ip": "Private IP Address",
+    "label.private.ip.range": "Private IP Range",
+    "label.private.ips": "Private IP Addresses",
+    "label.private.key": "Private Key",
+    "label.private.network": "Private network",
+    "label.private.port": "Private Port",
+    "label.private.zone": "Private Zone",
+    "label.privatekey": "PKCS#8 Private Key",
+    "label.profile": "Profile",
+    "label.project": "مشروع",
+    "label.project.dashboard": "Project dashboard",
+    "label.project.id": "Project ID",
+    "label.project.invite": "دعوة إلى المشروع",
+    "label.project.name": "اسم المشروع",
+    "label.project.view": "عرض المشروع",
+    "label.projects": "المشاريع",
+    "label.protocol": "Protocol",
+    "label.protocol.number": "Protocol Number",
+    "label.provider": "Provider",
+    "label.providers": "Providers",
+    "label.public": "Public",
+    "label.public.interface": "Public Interface",
+    "label.public.ip": "Public IP Address",
+    "label.public.ips": "Public IP Addresses",
+    "label.public.key": "Public Key",
+    "label.public.lb": "Public LB",
+    "label.public.load.balancer.provider": "Public Load Balancer Provider",
+    "label.public.network": "Public network",
+    "label.public.port": "Public Port",
+    "label.public.traffic": "Public traffic",
+    "label.public.traffic.vswitch.name": "Public Traffic vSwitch Name",
+    "label.public.traffic.vswitch.type": "Public Traffic vSwitch Type",
+    "label.public.zone": "Public Zone",
+    "label.purpose": "Purpose",
+    "label.qos.type": "QoS Type",
+    "label.quickview": "نظرة سريعة",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Quiet Time (in sec)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "Date",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "End Date",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "جميع الحسابات",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Start Date",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "State",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx user",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "إعادة تشغيل",
+    "label.recent.errors": "Recent Errors",
+    "label.recover.vm": "Recover VM",
+    "label.redundant.router": "Redundant Router",
+    "label.redundant.router.capability": "Redundant router capability",
+    "label.redundant.state": "Redundant state",
+    "label.redundant.vpc": "Redundant VPC",
+    "label.refresh": "Refresh",
+    "label.refresh.blades": "Refresh Blades",
+    "label.region": "Region",
+    "label.region.details": "Region details",
+    "label.regionlevelvpc": "Region Level VPC",
+    "label.reinstall.vm": "Reinstall VM",
+    "label.related": "Related",
+    "label.release.account": "Release from Account",
+    "label.release.account.lowercase": "Release from account",
+    "label.release.dedicated.cluster": "Release Dedicated Cluster",
+    "label.release.dedicated.host": "Release Dedicated Host",
+    "label.release.dedicated.pod": "Release Dedicated Pod",
+    "label.release.dedicated.vlan.range": "Release dedicated VLAN range",
+    "label.release.dedicated.zone": "Release Dedicated Zone",
+    "label.remind.later": "ذكرني لاحقاً",
+    "label.remove.ACL": "إزالة ACL",
+    "label.remove.egress.rule": "Remove egress rule",
+    "label.remove.from.load.balancer": "Removing instance from load balancer",
+    "label.remove.ingress.rule": "Remove ingress rule",
+    "label.remove.ip.range": "Remove IP range",
+    "label.remove.ldap": "Remove LDAP",
+    "label.remove.network.offering": "Remove network offering",
+    "label.remove.pf": "Remove port forwarding rule",
+    "label.remove.project.account": "Remove account from project",
+    "label.remove.region": "Remove Region",
+    "label.remove.rule": "Remove rule",
+    "label.remove.ssh.key.pair": "Remove SSH Key Pair",
+    "label.remove.static.nat.rule": "Remove static NAT rule",
+    "label.remove.static.route": "إزالة التوجيه ثابت",
+    "label.remove.this.physical.network": "Remove this physical network",
+    "label.remove.tier": "إضافة طبقة",
+    "label.remove.vm.from.lb": "Remove VM from load balancer rule",
+    "label.remove.vm.load.balancer": "Remove VM from load balancer",
+    "label.remove.vmware.datacenter": "Remove VMware datacenter",
+    "label.remove.vpc": "إزالة VPC",
+    "label.remove.vpc.offering": "Remove VPC offering",
+    "label.removing": "Removing",
+    "label.removing.user": "Removing User",
+    "label.reource.id": "Resource ID",
+    "label.replace.acl": "Replace ACL",
+    "label.replace.acl.list": "Replace ACL List",
+    "label.required": "Required",
+    "label.requires.upgrade": "Requires Upgrade",
+    "label.reserved.ip.range": "Reserved IP Range",
+    "label.reserved.system.gateway": "Reserved system gateway",
+    "label.reserved.system.ip": "Reserved System IP",
+    "label.reserved.system.netmask": "Reserved system netmask",
+    "label.reset.VPN.connection": "إعادة تعيين اتصال الشبكة الافتراضية الشخصية",
+    "label.reset.ssh.key.pair": "Reset SSH Key Pair",
+    "label.reset.ssh.key.pair.on.vm": "Reset SSH Key Pair on VM",
+    "label.resetVM": "Reset VM",
+    "label.resize.new.offering.id": "New Offering",
+    "label.resize.new.size": "New Size (GB)",
+    "label.resize.shrink.ok": "Shrink OK",
+    "label.resource": "Resource",
+    "label.resource.limit.exceeded": "Resource Limit Exceeded",
+    "label.resource.limits": "Resource Limits",
+    "label.resource.name": "Resource Name",
+    "label.resource.state": "Resource state",
+    "label.resources": "Resources",
+    "label.response.timeout.in.sec": "Response Timeout (in sec)",
+    "label.restart.network": "إعادة تشغيل الشبكة",
+    "label.restart.required": "مطلوب إعادة التشغيل",
+    "label.restart.vpc": "إعداة تشغيل VPC",
+    "label.restore": "إستعادة",
+    "label.retry.interval": "Retry Interval",
+    "label.review": "مراجعة",
+    "label.revoke.project.invite": "إلغاء الدعوة",
+    "label.role": "Role",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Root certificate",
+    "label.root.disk.controller": "Root disk controller",
+    "label.root.disk.offering": "Root Disk Offering",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "Router VM Scaled Up",
+    "label.routing": "Routing",
+    "label.routing.host": "Routing Host",
+    "label.rule": "Rule",
+    "label.rule.number": "Rule Number",
+    "label.rules": "Rules",
+    "label.running.vms": "Running VMs",
+    "label.s3.access_key": "مفتاح الوصول",
+    "label.s3.bucket": "دلو",
+    "label.s3.connection_timeout": "مهلة الاتصال",
+    "label.s3.endpoint": "نقطة النهاية",
+    "label.s3.max_error_retry": "أقصى خطأ في إعادة المحاولة",
+    "label.s3.nfs.path": "S3 NFS Path",
+    "label.s3.nfs.server": "S3 NFS Server",
+    "label.s3.secret_key": "المفتاح السري",
+    "label.s3.socket_timeout": "مهلة المقبس",
+    "label.s3.use_https": "استخدم HTTPS",
+    "label.saml.enable": "Authorize SAML SSO",
+    "label.saml.entity": "Identity Provider",
+    "label.saturday": "Saturday",
+    "label.save": "Save",
+    "label.save.and.continue": "Save and continue",
+    "label.save.changes": "Save changes",
+    "label.saving.processing": "Saving....",
+    "label.scale.up.policy": "SCALE UP POLICY",
+    "label.scaledown.policy": "ScaleDown Policy",
+    "label.scaleup.policy": "ScaleUp Policy",
+    "label.scope": "المجال",
+    "label.search": "بحث",
+    "label.secondary.ips": "Secondary IPs",
+    "label.secondary.isolated.vlan.id": "Secondary Isolated VLAN ID",
+    "label.secondary.staging.store": "Secondary Staging Store",
+    "label.secondary.staging.store.details": "Secondary Staging Store details",
+    "label.secondary.storage": "Secondary Storage",
+    "label.secondary.storage.count": "Secondary Storage Pools",
+    "label.secondary.storage.details": "Secondary storage details",
+    "label.secondary.storage.limits": "Secondary Storage limits (GiB)",
+    "label.secondary.storage.vm": "Secondary storage VM",
+    "label.secondary.used": "Secondary Storage Used",
+    "label.secret.key": "المفتاح السري",
+    "label.security.group": "Security Group",
+    "label.security.group.name": "Security Group Name",
+    "label.security.groups": "Security Groups",
+    "label.security.groups.enabled": "Security Groups Enabled",
+    "label.select": "Select",
+    "label.select-view": "حدد طريقة العرض",
+    "label.select.a.template": "اختر قالب",
+    "label.select.a.zone": "Select a zone",
+    "label.select.instance": "Select instance",
+    "label.select.instance.to.attach.volume.to": "Select instance to attach volume to",
+    "label.select.iso.or.template": "Select ISO or template",
+    "label.select.offering": "Select offering",
+    "label.select.project": "حدد المشروع",
+    "label.select.region": "Select region",
+    "label.select.template": "Select Template",
+    "label.select.tier": "حدد طبقة",
+    "label.select.vm.for.static.nat": "Select VM for static NAT",
+    "label.sent": "Sent",
+    "label.server": "Server",
+    "label.service.capabilities": "قدرات الخدمة",
+    "label.service.offering": "Service Offering",
+    "label.service.offering.details": "Service offering details",
+    "label.service.state": "Service State",
+    "label.services": "Services",
+    "label.session.expired": "Session Expired",
+    "label.set.default.NIC": "Set default NIC",
+    "label.set.up.zone.type": "Set up zone type",
+    "label.settings": "Settings",
+    "label.setup": "التثبيت",
+    "label.setup.network": "Set up Network",
+    "label.setup.zone": "Set up Zone",
+    "label.shared": "Shared",
+    "label.show.advanced.settings": "Show advanced settings",
+    "label.show.ingress.rule": "Show Ingress Rule",
+    "label.shutdown.provider": "Shutdown provider",
+    "label.simplified.chinese.keyboard": "Simplified Chinese keyboard",
+    "label.site.to.site.VPN": "موقع إلى موقع-الشبكة الشخصية الظاهرية  VPN",
+    "label.size": "Size",
+    "label.skip.guide": "I have used CloudStack before, skip this guide",
+    "label.smb.domain": "SMB Domain",
+    "label.smb.password": "SMB Password",
+    "label.smb.username": "SMB Username",
+    "label.snapshot": "Snapshot",
+    "label.snapshot.limits": "Snapshot Limits",
+    "label.snapshot.name": "Snapshot Name",
+    "label.snapshot.s": "Snapshots",
+    "label.snapshot.schedule": "Set up Recurring Snapshot",
+    "label.snapshots": "Snapshots",
+    "label.sockets": "CPU Sockets",
+    "label.source.ip.address": "Source IP Address",
+    "label.source.nat": "Source NAT",
+    "label.source.nat.supported": "SourceNAT Supported",
+    "label.source.port": "Source Port",
+    "label.specify.IP.ranges": "تحديد نطاقات IP",
+    "label.specify.vlan": "Specify VLAN",
+    "label.specify.vxlan": "Specify VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX details",
+    "label.ssh.key.pair": "SSH Key Pair",
+    "label.ssh.key.pair.details": "SSH Key Pair Details",
+    "label.ssh.key.pairs": "SSH Key Pairs",
+    "label.standard.us.keyboard": "Standard (US) keyboard",
+    "label.start.IP": "Start IP",
+    "label.start.lb.vm": "Start LB VM",
+    "label.start.port": "Start Port",
+    "label.start.reserved.system.IP": "Start Reserved system IP",
+    "label.start.vlan": "Start VLAN",
+    "label.start.vxlan": "Start VXLAN",
+    "label.state": "State",
+    "label.static.nat": "Static NAT",
+    "label.static.nat.enabled": "Static NAT Enabled",
+    "label.static.nat.to": "Static NAT to",
+    "label.static.nat.vm.details": "Static NAT VM Details",
+    "label.static.routes": "Static Routes",
+    "label.statistics": "Statistics",
+    "label.status": "Status",
+    "label.step.1": "Step 1",
+    "label.step.1.title": "Step 1: <strong>Select a Template</strong>",
+    "label.step.2": "Step 2",
+    "label.step.2.title": "Step 2: <strong>Service Offering</strong>",
+    "label.step.3": "Step 3",
+    "label.step.3.title": "Step 3: <strong id=\"step3_label\">Select a Disk Offering</strong>",
+    "label.step.4": "Step 4",
+    "label.step.4.title": "Step 4: <strong>Network</strong>",
+    "label.step.5": "Step 5",
+    "label.step.5.title": "Step 5: <strong>Review</strong>",
+    "label.stickiness": "Stickiness",
+    "label.stickiness.method": "Stickiness method",
+    "label.sticky.cookie-name": "Cookie name",
+    "label.sticky.domain": "Domain",
+    "label.sticky.expire": "Expires",
+    "label.sticky.holdtime": "Hold time",
+    "label.sticky.indirect": "Indirect",
+    "label.sticky.length": "Length",
+    "label.sticky.mode": "Mode",
+    "label.sticky.name": "Sticky Name",
+    "label.sticky.nocache": "No cache",
+    "label.sticky.postonly": "Post only",
+    "label.sticky.prefix": "Prefix",
+    "label.sticky.request-learn": "Request learn",
+    "label.sticky.tablesize": "حجم الجدول",
+    "label.stop": "توقف",
+    "label.stop.lb.vm": "Stop LB VM",
+    "label.stopped.vms": "Stopped VMs",
+    "label.storage": "Storage",
+    "label.storage.pool": "Storage Pool",
+    "label.storage.tags": "Storage Tags",
+    "label.storage.traffic": "Storage Traffic",
+    "label.storage.type": "Storage Type",
+    "label.subdomain.access": "Subdomain Access",
+    "label.submit": "Submit",
+    "label.submitted.by": "[Submitted by: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Succeeded",
+    "label.sunday": "Sunday",
+    "label.super.cidr.for.guest.networks": "CIDR ممتاز لشبكات الضيف.",
+    "label.supported.services": "tالخدمات المدعومة",
+    "label.supported.source.NAT.type": "Supported Source NAT type",
+    "label.supportsstrechedl2subnet": "Supports Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "إيقاف المشروع",
+    "label.switch.type": "Switch Type",
+    "label.system.capacity": "System Capacity",
+    "label.system.offering": "System Offering",
+    "label.system.offering.for.router": "System Offering for Router",
+    "label.system.service.offering": "System Service Offering",
+    "label.system.service.offering.details": "System service offering details",
+    "label.system.vm": "System VM",
+    "label.system.vm.details": "System VM details",
+    "label.system.vm.scaled.up": "System VM Scaled Up",
+    "label.system.vm.type": "System VM Type",
+    "label.system.vms": "System VMs",
+    "label.system.wide.capacity": "System-wide capacity",
+    "label.tag.key": "Tag Key",
+    "label.tag.value": "Tag Value",
+    "label.tagged": "Tagged",
+    "label.tags": "Tags",
+    "label.target.iqn": "Target IQN",
+    "label.task.completed": "Task completed",
+    "label.template": "Template",
+    "label.template.limits": "Template Limits",
+    "label.tftp.root.directory": "Tftp root directory",
+    "label.theme.default": "Default Theme",
+    "label.theme.grey": "Custom - Grey",
+    "label.theme.lightblue": "Custom - Light Blue",
+    "label.threshold": "Threshold",
+    "label.thursday": "Thursday",
+    "label.tier": "طبقة",
+    "label.tier.details": "تفاصيل الطبقة",
+    "label.time": "Time",
+    "label.time.colon": "Time:",
+    "label.time.zone": "Timezone",
+    "label.timeout": "Timeout",
+    "label.timeout.in.second ": " Timeout (seconds)",
+    "label.timezone": "Timezone",
+    "label.timezone.colon": "Timezone:",
+    "label.token": "Token",
+    "label.total.CPU": "Total CPU",
+    "label.total.cpu": "Total CPU",
+    "label.total.hosts": "Total Hosts",
+    "label.total.memory": "Total Memory",
+    "label.total.of.ip": "Total of IP Addresses",
+    "label.total.of.vm": "Total of VMs",
+    "label.total.storage": "Total Storage",
+    "label.total.virtual.routers": "Total of Virtual Routers",
+    "label.total.virtual.routers.upgrade": "Total of Virtual Routers that require upgrade",
+    "label.total.vms": "Total VMs",
+    "label.traffic.label": "Traffic label",
+    "label.traffic.type": "Traffic Type",
+    "label.traffic.types": "Traffic Types",
+    "label.tuesday": "Tuesday",
+    "label.type": "Type",
+    "label.type.id": "Type ID",
+    "label.type.lower": "type",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK keyboard",
+    "label.unavailable": "Unavailable",
+    "label.unhealthy.threshold": "Unhealthy Threshold",
+    "label.unlimited": "Unlimited",
+    "label.untagged": "Untagged",
+    "label.update.project.resources": "Update project resources",
+    "label.update.ssl": " SSL Certificate",
+    "label.update.ssl.cert": " SSL Certificate",
+    "label.updating": "Updating",
+    "label.upgrade.required": "Upgrade is required",
+    "label.upgrade.router.newer.template": "Upgrade Router to Use Newer Template",
+    "label.upload": "رفع",
+    "label.upload.from.local": "Upload from Local",
+    "label.upload.template.from.local": "Upload Template from Local",
+    "label.upload.volume": "Upload volume",
+    "label.upload.volume.from.local": "Upload Volume from Local",
+    "label.upload.volume.from.url": "Upload volume from URL",
+    "label.url": "URL",
+    "label.usage.interface": "Usage Interface",
+    "label.usage.sanity.result": "Usage Sanity Result",
+    "label.usage.server": "Usage Server",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "Use VM IP:",
+    "label.use.vm.ips": "Use VM IPs",
+    "label.used": "Used",
+    "label.user": "User",
+    "label.user.data": "User Data",
+    "label.user.details": "User details",
+    "label.user.vm": "User VM",
+    "label.username": "Username",
+    "label.username.lower": "username",
+    "label.users": "Users",
+    "label.vSwitch.type": "vSwitch Type",
+    "label.value": "Value",
+    "label.vcdcname": "vCenter DC name",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter Cluster",
+    "label.vcenter.datacenter": "vCenter Datacenter",
+    "label.vcenter.datastore": "vCenter Datastore",
+    "label.vcenter.host": "vCenter Host",
+    "label.vcenter.password": "vCenter Password",
+    "label.vcenter.username": "vCenter Username",
+    "label.vcipaddress": "vCenter IP Address",
+    "label.version": "Version",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Max resolution",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs per GPU",
+    "label.vgpu.remaining.capacity": "Remaining capacity",
+    "label.vgpu.type": "vGPU type",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "عرض",
+    "label.view.all": "عرض الكل",
+    "label.view.console": "View console",
+    "label.view.more": "View more",
+    "label.view.secondary.ips": "View secondary IPs",
+    "label.viewing": "عرض",
+    "label.virtual.appliance": "Virtual Appliance",
+    "label.virtual.appliance.details": "Virtual applicance details",
+    "label.virtual.appliances": "Virtual Appliances",
+    "label.virtual.machine": "Virtual Machine",
+    "label.virtual.machines": "Virtual Machines",
+    "label.virtual.network": "Virtual Network",
+    "label.virtual.networking": "Virtual Networking",
+    "label.virtual.router": "Virtual Router",
+    "label.virtual.routers": "Virtual Routers",
+    "label.virtual.routers.group.account": "Virtual Routers group by account",
+    "label.virtual.routers.group.cluster": "Virtual Routers group by cluster",
+    "label.virtual.routers.group.pod": "Virtual Routers group by pod",
+    "label.virtual.routers.group.zone": "Virtual Routers group by zone",
+    "label.vlan": "VLAN/VNI",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI Range",
+    "label.vlan.range.details": "VLAN Range details",
+    "label.vlan.ranges": "VLAN Range(s)",
+    "label.vlan.vni.range": "VLAN/VNI Range",
+    "label.vlan.vni.ranges": "VLAN/VNI Range(s)",
+    "label.vm.add": "Add Instance",
+    "label.vm.destroy": "هدم",
+    "label.vm.display.name": "VM display name",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP Address",
+    "label.vm.name": "VM name",
+    "label.vm.password": "Password of the VM is",
+    "label.vm.reboot": "إعادة تشغيل",
+    "label.vm.start": "Start",
+    "label.vm.state": "VM state",
+    "label.vm.stop": "توقف",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMs",
+    "label.vmsnapshot": "VM Snapshots",
+    "label.vmsnapshot.current": "isCurrent",
+    "label.vmsnapshot.memory": "Snapshot memory",
+    "label.vmsnapshot.parentname": "Parent",
+    "label.vmsnapshot.type": "Type",
+    "label.vmware.datacenter.id": "VMware datacenter ID",
+    "label.vmware.datacenter.name": "VMware datacenter Name",
+    "label.vmware.datacenter.vcenter": "VMware datacenter vcenter",
+    "label.vmware.traffic.label": "VMware traffic label",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC Devices",
+    "label.volatile": "Volatile",
+    "label.volgroup": "Volume Group",
+    "label.volume": "Volume",
+    "label.volume.details": "Volume details",
+    "label.volume.limits": "حدود المنطقة",
+    "label.volume.migrated": "Volume migrated",
+    "label.volume.name": "Volume Name",
+    "label.volumes": "Volumes",
+    "label.vpc": "سحابة إفتراضية خاصة VPC",
+    "label.vpc.distributedvpcrouter": "Distributed VPC Router",
+    "label.vpc.id": "هوية خاصة بسحابة إفتراضية خاصة",
+    "label.vpc.offering": "VPC Offering",
+    "label.vpc.offering.details": "VPC offering details",
+    "label.vpc.router.details": "VPC Router Details",
+    "label.vpc.supportsregionlevelvpc": "Supports Region Level VPC",
+    "label.vpc.virtual.router": "VPC Virtual Router",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "بوابة الشبكة الافتراضية الشخصية للعميل",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "Control VLAN ID",
+    "label.vsmpktvlanid": "Packet VLAN ID",
+    "label.vsmstoragevlanid": "Storage VLAN ID",
+    "label.vsphere.managed": "vSphere Managed",
+    "label.vswitch.name": "vSwitch Name",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN Range",
+    "label.waiting": "قيد الإنتظار",
+    "label.warn": "تحذير",
+    "label.warn.upper": "WARN",
+    "label.warning": "Warning",
+    "label.wednesday": "الأربعاء",
+    "label.weekly": "إسبوعي",
+    "label.welcome": "مرحبا",
+    "label.welcome.cloud.console": "مرحبا بكم في وحدة التحكم الإرادية",
+    "label.what.is.cloudstack": "What is CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Original XS Version is 6.1+",
+    "label.xenserver.traffic.label": "XenServer traffic label",
+    "label.yes": "نعم",
+    "label.zone": "Zone",
+    "label.zone.dedicated": "Zone Dedicated",
+    "label.zone.details": "تفاصيل المنطقة",
+    "label.zone.id": "Zone ID",
+    "label.zone.lower": "zone",
+    "label.zone.name": "Zone Name",
+    "label.zone.step.1.title": "الخطوة 1 : على .<قوي> اختر شبكة </ قوي>",
+    "label.zone.step.2.title": "الخطوة 2 : <قوي> إضافة منطقة </ قوي>",
+    "label.zone.step.3.title": "الخطوة 3 : على <قوي> إضافة بود </ قوي>",
+    "label.zone.step.4.title": "الخطوة 4 : <قوي> إضافة مجموعة IP <قوي>",
+    "label.zone.type": "Zone Type",
+    "label.zone.wide": "منطقة واسعة",
+    "label.zoneWizard.trafficType.guest": "الضيف : الحركة بين الأجهزة الإفتراضية للمستخدم النهائي.",
+    "label.zoneWizard.trafficType.management": "إدارة: الحركة بين الموارد الداخلية ل كلاود ستاك ، متضمنة أي جزء يتصل بخادمسيرفر الإدارة ، مثل المضيفات و أنظمة كلاود ستاك الإفتراضية.",
+    "label.zoneWizard.trafficType.public": "العامة : المرور بين الإنترنت والأجهزة الظاهرية في السحابة.",
+    "label.zoneWizard.trafficType.storage": "التخزين : المرور بين ملقمات التخزين الابتدائية والثانوية، مثل قوالب VM واللقطات",
+    "label.zones": "Zones",
+    "managed.state": "Managed State",
+    "message.XSTools61plus.update.failed": "Failed to update Original XS Version is 6.1+ field. Error:",
+    "message.Zone.creation.complete": "Zone creation complete",
+    "message.acquire.ip.nic": "Please confirm that you would like to acquire a new secondary IP for this NIC.<br/>NOTE: You need to manually configure the newly-acquired secondary IP inside the virtual machine.",
+    "message.acquire.new.ip": "Please confirm that you would like to acquire a new IP for this network.",
+    "message.acquire.new.ip.vpc": "يرجى التأكيد بأنك ترغب في الحصول على بورتوكول إنترنت جديد لهذا الحاسوب الإفتراضي.",
+    "message.acquire.public.ip": "Please select a zone from which you want to acquire your new IP from.",
+    "message.action.cancel.maintenance": "Your host has been successfully canceled for maintenance. This process can take up to several minutes.",
+    "message.action.cancel.maintenance.mode": "Please confirm that you want to cancel this maintenance.",
+    "message.action.change.service.warning.for.instance": "Your instance must be stopped before attempting to change its current service offering.",
+    "message.action.change.service.warning.for.router": "Your router must be stopped before attempting to change its current service offering.",
+    "message.action.delete.ISO": "Please confirm that you want to delete this ISO.",
+    "message.action.delete.ISO.for.all.zones": "The ISO is used by all zones. Please confirm that you want to delete it from all zones.",
+    "message.action.delete.cluster": "Please confirm that you want to delete this cluster.",
+    "message.action.delete.disk.offering": "Please confirm that you want to delete this disk offering.",
+    "message.action.delete.domain": "Please confirm that you want to delete this domain.",
+    "message.action.delete.external.firewall": "Please confirm that you would like to remove this external firewall. Warning: If you are planning to add back the same external firewall, you must reset usage data on the device.",
+    "message.action.delete.external.load.balancer": "Please confirm that you would like to remove this external load balancer. Warning: If you are planning to add back the same external load balancer, you must reset usage data on the device.",
+    "message.action.delete.ingress.rule": "Please confirm that you want to delete this ingress rule.",
+    "message.action.delete.network": "Please confirm that you want to delete this network.",
+    "message.action.delete.nexusVswitch": "Please confirm that you want to delete this nexus 1000v",
+    "message.action.delete.nic": "Please confirm that want to remove this NIC, which will also remove the associated network from the VM.",
+    "message.action.delete.physical.network": "Please confirm that you want to delete this physical network",
+    "message.action.delete.pod": "Please confirm that you want to delete this pod.",
+    "message.action.delete.primary.storage": "Please confirm that you want to delete this primary storage.",
+    "message.action.delete.secondary.storage": "Please confirm that you want to delete this secondary storage.",
+    "message.action.delete.security.group": "Please confirm that you want to delete this security group.",
+    "message.action.delete.service.offering": "Please confirm that you want to delete this service offering.",
+    "message.action.delete.snapshot": "Please confirm that you want to delete this snapshot.",
+    "message.action.delete.system.service.offering": "الرجاء تأكيد رغبتك في حذف خدمة النظام المقدمة.",
+    "message.action.delete.template": "Please confirm that you want to delete this template.",
+    "message.action.delete.template.for.all.zones": "The template is used by all zones. Please confirm that you want to delete it from all zones.",
+    "message.action.delete.volume": "Please confirm that you want to delete this volume.",
+    "message.action.delete.zone": "Please confirm that you want to delete this zone.",
+    "message.action.destroy.instance": "Please confirm that you want to destroy this instance.",
+    "message.action.destroy.systemvm": "Please confirm that you want to destroy this System VM.",
+    "message.action.disable.cluster": "Please confirm that you want to disable this cluster.",
+    "message.action.disable.nexusVswitch": "Please confirm that you want to disable this nexus 1000v",
+    "message.action.disable.physical.network": "فضلا ، أكّد أنك تريد تعطيل هذه الشبكة الفيزيائية",
+    "message.action.disable.pod": "Please confirm that you want to disable this pod.",
+    "message.action.disable.static.NAT": "Please confirm that you want to disable static NAT.",
+    "message.action.disable.zone": "Please confirm that you want to disable this zone.",
+    "message.action.download.iso": "Please confirm that you want to download this ISO.",
+    "message.action.download.template": "Please confirm that you want to download this template.",
+    "message.action.downloading.template": "Downloading template.",
+    "message.action.enable.cluster": "Please confirm that you want to enable this cluster.",
+    "message.action.enable.maintenance": "Your host has been successfully prepared for maintenance.  This process can take up to several minutes or longer depending on how many VMs are currently on this host.",
+    "message.action.enable.nexusVswitch": "Please confirm that you want to enable this nexus 1000v",
+    "message.action.enable.physical.network": "فضلا ، أكّد أنك تريد تمكين هذه الشبكة الفيزيائية",
+    "message.action.enable.pod": "Please confirm that you want to enable this pod.",
+    "message.action.enable.zone": "Please confirm that you want to enable this zone.",
+    "message.action.expunge.instance": "Please confirm that you want to expunge this instance.",
+    "message.action.force.reconnect": "Your host has been successfully forced to reconnect.  This process can take up to several minutes.",
+    "message.action.host.enable.maintenance.mode": "Enabling maintenance mode will cause a live migration of all running instances on this host to any available host.",
+    "message.action.instance.reset.password": "Please confirm that you want to change the ROOT password for this virtual machine.",
+    "message.action.manage.cluster": "Please confirm that you want to manage the cluster.",
+    "message.action.primarystorage.enable.maintenance.mode": "Warning: placing the primary storage into maintenance mode will cause all VMs using volumes from it to be stopped.  Do you want to continue?",
+    "message.action.reboot.instance": "Please confirm that you want to reboot this instance.",
+    "message.action.reboot.router": "All services provided by this virtual router will be interrupted. Please confirm that you want to reboot this router.",
+    "message.action.reboot.systemvm": "Please confirm that you want to reboot this system VM.",
+    "message.action.release.ip": "Please confirm that you want to release this IP.",
+    "message.action.remove.host": "Please confirm that you want to remove this host.",
+    "message.action.reset.password.off": "Your instance currently does not support this feature.",
+    "message.action.reset.password.warning": "Your instance must be stopped before attempting to change its current password.",
+    "message.action.restore.instance": "Please confirm that you want to restore this instance.",
+    "message.action.revert.snapshot": "Please confirm that you want to revert the owning volume to this snapshot.",
+    "message.action.start.instance": "Please confirm that you want to start this instance.",
+    "message.action.start.router": "Please confirm that you want to start this router.",
+    "message.action.start.systemvm": "Please confirm that you want to start this system VM.",
+    "message.action.stop.instance": "Please confirm that you want to stop this instance.",
+    "message.action.stop.router": "All services provided by this virtual router will be interrupted. Please confirm that you want to stop this router.",
+    "message.action.stop.systemvm": "Please confirm that you want to stop this system VM.",
+    "message.action.take.snapshot": "Please confirm that you want to take a snapshot of this volume.",
+    "message.action.unmanage.cluster": "Please confirm that you want to unmanage the cluster.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Please confirm that you want to delete this VM snapshot.",
+    "message.action.vmsnapshot.revert": "Revert VM snapshot",
+    "message.activate.project": "هل أنت متأكد من أنك تريد تفعيل هذا المشروع ؟",
+    "message.add.VPN.gateway": "يرجى تأكيد رغبتك في إضافة بوابة الشبكة الافتراضية الشخصية VPN",
+    "message.add.cluster": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Please specify the following parameters to add a new disk offering",
+    "message.add.domain": "يرجى تحديد المجال الفرعي الذي تريد إنشاء تحت هذا النطاق",
+    "message.add.firewall": "Add a firewall to zone",
+    "message.add.guest.network": "Please confirm that you would like to add a guest network",
+    "message.add.host": "Please specify the following parameters to add a new host",
+    "message.add.ip.range": "Add an IP range to public network in zone",
+    "message.add.ip.range.direct.network": "Add an IP range to direct network <b><span id=\"directnetwork_name\"></span></b> in zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Add an IP range to pod: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Add a load balancer to zone",
+    "message.add.load.balancer.under.ip": "The load balancer rule has been added under IP:",
+    "message.add.network": "Add a new network for zone: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "فضلا حدد المعلومات لإضافة بوابة gateway لهذه السحابة الإفتراضية الخاصة VPC",
+    "message.add.pod": "Add a new pod for zone <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.",
+    "message.add.primary": "Please specify the following parameters to add a new primary storage",
+    "message.add.primary.storage": "Add a new Primary Storage for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Please specify the required information to add a new region.",
+    "message.add.secondary.storage": "Add a new storage for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Please fill in the following data to add a new compute offering.",
+    "message.add.system.service.offering": "الرجاء تعبئة البيانات التالية لإضافة نظام جديد لطرح",
+    "message.add.template": "Please enter the following data to create your new template",
+    "message.add.volume": "Please fill in the following data to add a new volume.",
+    "message.added.new.nuage.vsp.controller": "Added new Nuage Vsp Controller",
+    "message.added.vpc.offering": "Added VPC offering",
+    "message.adding.Netscaler.device": "Adding Netscaler device",
+    "message.adding.Netscaler.provider": "Adding Netscaler provider",
+    "message.adding.host": "Adding host",
+    "message.additional.networks.desc": "Please select additional network(s) that your virtual instance will be connected to.",
+    "message.admin.guide.read": "For VMware-based VMs, please read the dynamic scaling section in the admin guide before scaling. Would you like to continue?,",
+    "message.advanced.mode.desc": "Choose this network model if you wish to enable VLAN support.  This network model provides the most flexibility in allowing administrators to provide custom network offerings such as providing firewall, vpn, or load balancer support as well as enabling direct vs virtual networking.",
+    "message.advanced.security.group": "Choose this if you wish to use security groups to provide guest VM isolation.",
+    "message.advanced.virtual": "Choose this if you wish to use zone-wide VLANs to provide guest VM isolation.",
+    "message.after.enable.s3": "تم إعداد التخزين S3 للذاكرة الثانوية. تنويه : عند مغادرتك لهذه الصفحة لن يكون بإمكانك إعادة ضبط S3 مرة أخرى.",
+    "message.after.enable.swift": "Swift configured. Note: When you leave this page, you will not be able to re-configure Swift again.",
+    "message.alert.state.detected": "Alert state detected",
+    "message.allow.vpn.access": "Please enter a username and password of the user that you want to allow VPN access.",
+    "message.apply.snapshot.policy": "You have successfully updated your current snapshot policy.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Please confirm that you want to attach the ISO to this virtual instance.",
+    "message.attach.volume": "Please fill in the following data to attach a new volume. If you are attaching a disk volume to a Windows based virtual machine, you will need to reboot the instance to see the attached disk.",
+    "message.basic.mode.desc": "Choose this network model if you do <b>*<u>not</u>*</b> want to enable any VLAN support.  All virtual instances created under this network model will be assigned an IP directly from the network and security groups are used to provide security and segregation.",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "Please confirm that you wish to change the service offering of this virtual instance.",
+    "message.change.password": "Please change your password.",
+    "message.cluster.dedicated": "Cluster Dedicated",
+    "message.cluster.dedication.released": "Cluster dedication released",
+    "message.configure.all.traffic.types": "You have multiple physical networks; please configure labels for each traffic type by clicking on the Edit button.",
+    "message.configure.firewall.rules.allow.traffic": "Configure the rules to allow Traffic",
+    "message.configure.firewall.rules.block.traffic": "Configure the rules to block Traffic",
+    "message.configure.ldap": "Please confirm you would like to configure LDAP.",
+    "message.configuring.guest.traffic": "Configuring guest traffic",
+    "message.configuring.physical.networks": "Configuring physical networks",
+    "message.configuring.public.traffic": "Configuring public traffic",
+    "message.configuring.storage.traffic": "Configuring storage traffic",
+    "message.confirm.action.force.reconnect": "Please confirm that you want to force reconnect this host.",
+    "message.confirm.add.vnmc.provider": "Please confirm you would like to add the VNMC provider.",
+    "message.confirm.archive.alert": "Please confirm that you want to archive this alert.",
+    "message.confirm.archive.event": "Please confirm that you want to archive this event.",
+    "message.confirm.archive.selected.alerts": "Please confirm you would like to archive the selected alerts",
+    "message.confirm.archive.selected.events": "Please confirm you would like to archive the selected events",
+    "message.confirm.attach.disk": "Are you sure you want to attach disk?",
+    "message.confirm.create.volume": "Are you sure you want to create volume?",
+    "message.confirm.current.guest.CIDR.unchanged": "Do you want to keep the current guest network CIDR unchanged?",
+    "message.confirm.dedicate.cluster.domain.account": "Do you really want to dedicate this cluster to a domain/account? ",
+    "message.confirm.dedicate.host.domain.account": "Do you really want to dedicate this host to a domain/account? ",
+    "message.confirm.dedicate.pod.domain.account": "Do you really want to dedicate this pod to a domain/account? ",
+    "message.confirm.dedicate.zone": "Do you really want to dedicate this zone to a domain/account?",
+    "message.confirm.delete.BigSwitchBcf": "Please confirm that you would like to delete this BigSwitch BCF Controller",
+    "message.confirm.delete.BrocadeVcs": "Please confirm that you would like to delete Brocade Vcs Switch",
+    "message.confirm.delete.F5": "Please confirm that you would like to delete F5",
+    "message.confirm.delete.NetScaler": "Please confirm that you would like to delete NetScaler",
+    "message.confirm.delete.NuageVsp": "Please confirm that you would like to delete Nuage Virtualized Services Directory",
+    "message.confirm.delete.PA": "Please confirm that you would like to delete Palo Alto",
+    "message.confirm.delete.SRX": "Please confirm that you would like to delete SRX",
+    "message.confirm.delete.acl.list": "Are you sure you want to delete this ACL list?",
+    "message.confirm.delete.alert": "Are you sure you want to delete this alert ?",
+    "message.confirm.delete.baremetal.rack.configuration": "Please confirm that you want to delete Baremetal Rack Configuration.",
+    "message.confirm.delete.ciscoASA1000v": "Please confirm you want to delete CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Please confirm you want to delete CiscoVNMC resource",
+    "message.confirm.delete.internal.lb": "Please confirm you want to delete Internal LB",
+    "message.confirm.delete.secondary.staging.store": "Please confirm you want to delete Secondary Staging Store.",
+    "message.confirm.delete.ucs.manager": "Please confirm that you want to delete UCS Manager",
+    "message.confirm.destroy.router": "Please confirm that you would like to destroy this router",
+    "message.confirm.disable.host": "Please confirm that you want to disable the host",
+    "message.confirm.disable.network.offering": "Are you sure you want to disable this network offering?",
+    "message.confirm.disable.provider": "Please confirm that you would like to disable this provider",
+    "message.confirm.disable.vnmc.provider": "Please confirm you would like to disable the VNMC provider.",
+    "message.confirm.disable.vpc.offering": "Are you sure you want to disable this VPC offering?",
+    "message.confirm.enable.host": "Please confirm that you want to enable the host",
+    "message.confirm.enable.network.offering": "Are you sure you want to enable this network offering?",
+    "message.confirm.enable.provider": "Please confirm that you would like to enable this provider",
+    "message.confirm.enable.vnmc.provider": "Please confirm you would like to enable the VNMC provider.",
+    "message.confirm.enable.vpc.offering": "Are you sure you want to enable this VPC offering?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "نرجو تأكيد رغبتك في المشاركة في المشروع",
+    "message.confirm.migrate.volume": "Do you want to migrate this volume?",
+    "message.confirm.refresh.blades": "Please confirm that you want to refresh blades.",
+    "message.confirm.release.dedicate.vlan.range": "Please confirm you want to release dedicated VLAN range",
+    "message.confirm.release.dedicated.cluster": "Do you want to release this dedicated cluster ?",
+    "message.confirm.release.dedicated.host": "Do you want to release this dedicated host ?",
+    "message.confirm.release.dedicated.pod": "Do you want to release this dedicated pod ?",
+    "message.confirm.release.dedicated.zone": "Do you want to release this dedicated zone ? ",
+    "message.confirm.remove.IP.range": "Please confirm that you would like to remove this IP range.",
+    "message.confirm.remove.event": "Are you sure you want to remove this event?",
+    "message.confirm.remove.load.balancer": "Please confirm you want to remove VM from load balancer",
+    "message.confirm.remove.network.offering": "Are you sure you want to remove this network offering?",
+    "message.confirm.remove.selected.alerts": "Please confirm you would like to remove the selected alerts",
+    "message.confirm.remove.selected.events": "Please confirm you would like to remove the selected events",
+    "message.confirm.remove.vmware.datacenter": "Please confirm you want to remove VMware datacenter",
+    "message.confirm.remove.vpc.offering": "Are you sure you want to remove this VPC offering?",
+    "message.confirm.replace.acl.new.one": "Do you want to replace the ACL with a new one?",
+    "message.confirm.scale.up.router.vm": "Do you really want to scale up the Router VM ?",
+    "message.confirm.scale.up.system.vm": "Do you really want to scale up the system VM ?",
+    "message.confirm.shutdown.provider": "Please confirm that you would like to shutdown this provider",
+    "message.confirm.start.lb.vm": "Please confirm you want to start LB VM",
+    "message.confirm.stop.lb.vm": "Please confirm you want to stop LB VM",
+    "message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template",
+    "message.confirm.upgrade.routers.account.newtemplate": "Please confirm that you want to upgrade all routers in this account to use newer template",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Please confirm that you want to upgrade all routers in this cluster to use newer template",
+    "message.confirm.upgrade.routers.newtemplate": "Please confirm that you want to upgrade all routers in this zone to use newer template",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Please confirm that you want to upgrade all routers in this pod to use newer template",
+    "message.copy.iso.confirm": "Please confirm that you wish to copy your ISO to",
+    "message.copy.template": "Copy template <b id=\"copy_template_name_text\">XXX</b> from zone <b id=\"copy_template_source_zone_text\"></b> to",
+    "message.copy.template.confirm": "Are you sure you want to copy template?",
+    "message.create.template": "Are you sure you want to create template?",
+    "message.create.template.vm": "Create VM from template <b id=\"p_name\"></b>",
+    "message.create.template.volume": "Please specify the following information before creating a template of your disk volume: <b><span id=\"volume_name\"></span></b>. Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.creating.cluster": "Creating cluster",
+    "message.creating.guest.network": "Creating guest network",
+    "message.creating.physical.networks": "Creating physical networks",
+    "message.creating.pod": "Creating pod",
+    "message.creating.primary.storage": "Creating primary storage",
+    "message.creating.secondary.storage": "Creating secondary storage",
+    "message.creating.systemVM": "Creating system VMs (this may take a while)",
+    "message.creating.zone": "Creating zone",
+    "message.decline.invitation": "هل أنت متأكد من أنك تريد رفض هذه الدعوة المشروع؟",
+    "message.dedicate.zone": "Dedicating zone",
+    "message.dedicated.zone.released": "Zone dedication released",
+    "message.delete.VPN.connection": "يرجى تأكيد رغبتك في حذف بوابة الشبكة الافتراضية الشخصية VPN",
+    "message.delete.VPN.customer.gateway": "Please confirm that you want to delete this VPN Customer Gateway",
+    "message.delete.VPN.gateway": "يرجى تأكيد رغبتك في حذف بوابة الشبكة الافتراضية الشخصية",
+    "message.delete.account": "Please confirm that you want to delete this account.",
+    "message.delete.affinity.group": "Please confirm that you would like to remove this affinity group.",
+    "message.delete.gateway": "يرجى تأكيد رغبتك في حذف البوابة",
+    "message.delete.project": "هل أنت متأكد من أنك تريد حذف المشروع ؟",
+    "message.delete.user": "الرجاء التأكيد بأنك ترغب بحذف هذا المستخدم",
+    "message.desc.add.new.lb.sticky.rule": "Add new LB sticky rule",
+    "message.desc.advanced.zone": "For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.",
+    "message.desc.basic.zone": "Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering).",
+    "message.desc.cluster": "Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.",
+    "message.desc.create.ssh.key.pair": "Please fill in the following data to create or register a ssh key pair.<br><br>(1) If public key is set, CloudStack will register the public key. You can use it through your private key.<br><br>(2) If public key is not set, CloudStack will create a new SSH Key pair. In this case, please copy and save the private key. CloudStack will not keep it.<br>",
+    "message.desc.created.ssh.key.pair": "Created a SSH Key Pair.",
+    "message.desc.host": "Each cluster must contain at least one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.",
+    "message.desc.primary.storage": "Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.",
+    "message.desc.reset.ssh.key.pair": "Please specify a ssh key pair that you would like to add to this VM. Please note the root password will be changed by this operation if password is enabled.",
+    "message.desc.secondary.storage": "Each zone must have at least one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.",
+    "message.desc.zone": "A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.",
+    "message.detach.disk": "هل أنت متأكد من أنك تريد فصل هذا القرص؟",
+    "message.detach.iso.confirm": "Please confirm that you want to detach the ISO from this virtual instance.",
+    "message.disable.account": "Please confirm that you want to disable this account.  By disabling the account, all users for this account will no longer have access to their cloud resources.  All running virtual machines will be immediately shut down.",
+    "message.disable.snapshot.policy": "You have successfully disabled your current snapshot policy.",
+    "message.disable.user": "الرجاء التأكيد بأنك ترغب بتعطيل هذا المستخدم",
+    "message.disable.vpn": "Are you sure you want to disable VPN?",
+    "message.disable.vpn.access": "Please confirm that you want to disable Remote Access VPN.",
+    "message.disabling.network.offering": "Disabling network offering",
+    "message.disabling.vpc.offering": "Disabling VPC offering",
+    "message.disallowed.characters": "Disallowed characters: <,>",
+    "message.download.ISO": "Please click <a href=\"#\">00000</a> to download ISO",
+    "message.download.template": "Please click <a href=\"#\">00000</a> to download template",
+    "message.download.volume": "Please click <a href=\"#\">00000</a> to download volume",
+    "message.download.volume.confirm": "Please confirm that you want to download this volume.",
+    "message.edit.account": "Edit (\"-1\" indicates no limit to the amount of resources create)",
+    "message.edit.confirm": "Please confirm your changes before clicking \"Save\".",
+    "message.edit.limits": "Please specify limits to the following resources.  A \"-1\" indicates no limit to the amount of resources create.",
+    "message.edit.traffic.type": "Please specify the traffic label you want associated with this traffic type.",
+    "message.enable.account": "الرجاء تأكيد أنك تريد تمكين هذا الحساب.",
+    "message.enable.user": "الرجاء التأكيد بأنك ترغب بتفعيل هذا المستخدم",
+    "message.enable.vpn": "Please confirm that you want Remote Access VPN enabled for this IP address.",
+    "message.enable.vpn.access": "VPN is currently disabled for this IP Address.  Would you like to enable VPN access?",
+    "message.enabled.vpn": "Your Remote Access VPN is currently enabled and can be accessed via the IP",
+    "message.enabled.vpn.ip.sec": "Your IPSec pre-shared key is",
+    "message.enabling.network.offering": "Enabling network offering",
+    "message.enabling.security.group.provider": "Enabling Security Group provider",
+    "message.enabling.vpc.offering": "Enabling VPC offering",
+    "message.enabling.zone": "Enabling zone",
+    "message.enabling.zone.dots": "Enabling zone...",
+    "message.enter.seperated.list.multiple.cidrs": "Please enter a comma separated list of CIDRs if more than one",
+    "message.enter.token": "Please enter the token that you were given in your invite e-mail.",
+    "message.generate.keys": "الرجاء التأكيد بأنك ترغب بإنشاء مفاتيح جديدة لهذا المستخدم",
+    "message.gslb.delete.confirm": "Please confirm you want to delete this GSLB",
+    "message.gslb.lb.remove.confirm": "Please confirm you want to remove load balancing from GSLB",
+    "message.guest.traffic.in.advanced.zone": "Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.",
+    "message.guest.traffic.in.basic.zone": "Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.",
+    "message.host.dedicated": "Host Dedicated",
+    "message.host.dedication.released": "Host dedication released",
+    "message.installWizard.click.retry": "Click the button to retry launch.",
+    "message.installWizard.copy.whatIsACluster": "A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack&#8482; deployment. Clusters are contained within pods, and pods are contained within zones.<br/><br/>CloudStack&#8482; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster.",
+    "message.installWizard.copy.whatIsAHost": "A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer or KVM.<br/><br/>The host is the smallest organizational unit within a CloudStack&#8482; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones.",
+    "message.installWizard.copy.whatIsAPod": "A pod often represents a single rack. Hosts in the same pod are in the same subnet.<br/><br/>A pod is the second-largest organizational unit within a CloudStack&#8482; deployment. Pods are contained within zones. Each zone can contain one or more pods; in the Basic Installation, you will have just one pod in your zone.",
+    "message.installWizard.copy.whatIsAZone": "A zone is the largest organizational unit within a CloudStack&#8482; deployment. A zone typically corresponds to a single datacenter, although it is permissible to have multiple zones in a datacenter. The benefit of organizing infrastructure into zones is to provide physical isolation and redundancy. For example, each zone can have its own power supply and network uplink, and the zones can be widely separated geographically (though this is not required).",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482 is a software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. CloudStack&#8482 manages the network, storage, and compute nodes that make up a cloud infrastructure. Use CloudStack&#8482 to deploy, manage, and configure cloud computing environments.<br/><br/>Extending beyond individual virtual machine images running on commodity hardware, CloudStack&#8482 provides a turnkey cloud infrastructure software stack for delivering virtual datacenters as a service - delivering all of the essential components to build, deploy, and manage multi-tier and multi-tenant cloud applications. Both open-source and Premium versions are available, with the open-source version offering nearly identical features.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "A CloudStack&#8482; cloud infrastructure makes use of two types of storage: primary storage and secondary storage. Both of these can be iSCSI or NFS servers, or localdisk.<br/><br/><strong>Primary storage</strong> is associated with a cluster, and it stores the disk volumes of each guest VM for all the VMs running on hosts in that cluster. The primary storage server is typically located close to the hosts.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "Secondary storage is associated with a zone, and it stores the following:<ul><li>Templates - OS images that can be used to boot VMs and can include additional configuration information, such as installed applications</li><li>ISO images - OS images that can be bootable or non-bootable</li><li>Disk volume snapshots - saved copies of VM data which can be used for data recovery or to create new templates</ul>",
+    "message.installWizard.now.building": "Now building your cloud...",
+    "message.installWizard.tooltip.addCluster.name": "A name for the cluster.  This can be text of your choosing and is not used by CloudStack.",
+    "message.installWizard.tooltip.addHost.hostname": "The DNS name or IP address of the host.",
+    "message.installWizard.tooltip.addHost.password": "This is the password for the user named above (from your XenServer install).",
+    "message.installWizard.tooltip.addHost.username": "Usually root.",
+    "message.installWizard.tooltip.addPod.name": "A name for the pod",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "The gateway for the hosts in that pod.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "The netmask in use on the subnet the guests will use.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "The name for the storage device.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(for NFS) In NFS this is the exported path from the server. Path (for SharedMountPoint).  With KVM this is the path on each host that is where this primary storage is mounted.  For example, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(for NFS, iSCSI, or PreSetup) The IP address or DNS name of the storage device.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "The IP address of the NFS server hosting the secondary storage",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "The exported path, located on the server you specified above",
+    "message.installWizard.tooltip.addZone.dns1": "These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.dns2": "These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.internaldns1": "These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.internaldns2": "These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.name": "A name for the zone",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "A description for your network",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "The gateway that the guests should use",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "The netmask in use on the subnet that the guests should use",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "A name for your network",
+    "message.instance.scaled.up.confirm": "Do you really want to scale Up your instance ?",
+    "message.instanceWizard.noTemplates": "ليس لديك أي قوالب متاحة؛ يرجى إضافة قالب متوافق، وإعادة إطلاق المعالج .",
+    "message.ip.address.changed": "Your IP addresses may have changed; would you like to refresh the listing? Note that in this case the details pane will close.",
+    "message.iso.desc": "Disc image containing data or bootable media for OS",
+    "message.join.project": "لقد انضممت إلى المشروع. يرجى التبديل إلى طريقة عرض المشروع لرؤية المشروع",
+    "message.launch.vm.on.private.network": "Do you wish to launch your instance on your own private dedicated network?",
+    "message.launch.zone": "Zone is ready to launch; please proceed to the next step.",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "Enable autosync for this domain in LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "Please confirm that you want to lock this account.  By locking the account, all users for this account will no longer be able to manage their cloud resources.  Existing resources can still be accessed.",
+    "message.migrate.instance.confirm": "Please confirm the host you wish to migrate the virtual instance to.",
+    "message.migrate.instance.to.host": "يرجى تأكيد أنك تريد نقل القالب إلى مضيف آخر.",
+    "message.migrate.instance.to.ps": "يرجى تأكيد أنك تريد نقل القالب إلى الذاكرة الأساسية.",
+    "message.migrate.router.confirm": "Please confirm the host you wish to migrate the router to:",
+    "message.migrate.systemvm.confirm": "Please confirm the host you wish to migrate the system VM to:",
+    "message.migrate.volume": "Please confirm that you want to migrate volume to another primary storage.",
+    "message.network.addVM.desc": "Please specify the network that you would like to add this VM to. A new NIC will be added for this network.",
+    "message.network.addVMNIC": "Please confirm that you would like to add a new VM NIC for this network.",
+    "message.network.remote.access.vpn.configuration": "Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.",
+    "message.new.user": "Specify the following to add a new user to the account",
+    "message.no.affinity.groups": "You do not have any affinity groups. Please continue to the next step.",
+    "message.no.host.available": "No Hosts are available for Migration",
+    "message.no.network.support": "Your selected hypervisor, vSphere, does not have any additional network features.  Please continue to step 5.",
+    "message.no.network.support.configuration.not.true": "You do not have any zone that has security group enabled. Thus, no additional network features.  Please continue to step 5.",
+    "message.no.projects": "ليس لديك أي مشاريع. <br/> يرجى إنشاء مشروع جديد من قسم المشاريع.",
+    "message.no.projects.adminOnly": "ليس لديك أي مشاريع. <br/> الرجاء طلب من المسؤول إنشاء مشروع جديد.",
+    "message.number.clusters": "<h2><span> # of </span> Clusters</h2>",
+    "message.number.hosts": "<h2><span> # of </span> Hosts</h2>",
+    "message.number.pods": "<h2><span> # of </span> Pods</h2>",
+    "message.number.storage": "<h2><span> # of </span> Primary Storage Volumes</h2>",
+    "message.number.zones": "<h2><span> # of </span> Zones</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "Password has been reset to",
+    "message.password.of.the.vm.has.been.reset.to": "Password of the VM has been reset to",
+    "message.pending.projects.1": "لديك دعوات مشروع معلقة/:",
+    "message.pending.projects.2": "لعرض، الرجاء الذهاب إلى قسم المشاريع، ثم حدد دعوات من القائمة المنسدلة.",
+    "message.please.add.at.lease.one.traffic.range": "Please add at least one traffic range.",
+    "message.please.confirm.remove.ssh.key.pair": "Please confirm that you want to remove this SSH Key Pair",
+    "message.please.proceed": "Please proceed to the next step.",
+    "message.please.select.a.configuration.for.your.zone": "Please select a configuration for your zone.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Please select a different public and management network before removing",
+    "message.please.select.networks": "الرجاء اختيار الشبكات لجهازك الإفتراضي",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Please select a ssh key pair you want this VM to use:",
+    "message.please.wait.while.zone.is.being.created": "Please wait while your zone is being created; this may take a while...",
+    "message.pod.dedication.released": "Pod dedication released",
+    "message.portable.ip.delete.confirm": "Please confirm you want to delete Portable IP Range",
+    "message.project.invite.sent": "تم إرسال الدعوة ; سيتم إضافتهم إلى المشروع بمجرد قبول الدعوة",
+    "message.public.traffic.in.advanced.zone": "Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.",
+    "message.public.traffic.in.basic.zone": "Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.",
+    "message.question.are.you.sure.you.want.to.add": "Are you sure you want to add",
+    "message.read.admin.guide.scaling.up": "Please read the dynamic scaling section in the admin guide before scaling up.",
+    "message.recover.vm": "Please confirm that you would like to recover this VM.",
+    "message.redirecting.region": "Redirecting to region...",
+    "message.reinstall.vm": "NOTE: Proceed with caution. This will cause the VM to be reinstalled from the template; data on the root disk will be lost. Extra data volumes, if any, will not be touched.",
+    "message.remove.ldap": "Are you sure you want to delete the LDAP configuration?",
+    "message.remove.region": "Are you sure you want to remove this region from this management server?",
+    "message.remove.vpc": "يرجى تأكيد رغبتك في حذف الـVPC",
+    "message.remove.vpn.access": "Please confirm that you want to remove VPN access from the following user.",
+    "message.removed.ssh.key.pair": "Removed a SSH Key Pair",
+    "message.reset.VPN.connection": "يرجى تأكيد أنك تريد إعادة-ضبط إتصال الشبكة الافتراضية الشخصية VPN",
+    "message.reset.password.warning.notPasswordEnabled": "القالب لهذا النموذج تم انشائه من دون كلمة مرور ممكنة",
+    "message.reset.password.warning.notStopped": "يجب إيقاف النموذج الخاص بك قبل محاولة تغيير كلمة المرور الحالية",
+    "message.restart.mgmt.server": "Please restart your management server(s) for your new settings to take effect.",
+    "message.restart.mgmt.usage.server": "Please restart your management server(s) and usage server(s) for your new settings to take effect.",
+    "message.restart.network": "All services provided by this network will be interrupted. Please confirm that you want to restart this network.",
+    "message.restart.vpc": "يرجى تأكيد رغبتك في إعادة تشغيل الـVPN",
+    "message.restart.vpc.remark": "Please confirm that you want to restart the VPC <p><small><i>Remark: making a non-redundant VPC redundant will force a clean up. The networks will not be available for a couple of minutes</i>.</small></p>",
+    "message.restoreVM": "Do you want to restore the VM ?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(Use <strong>Ctrl-click</strong> to select all applicable security groups)",
+    "message.select.a.zone": "A zone typically corresponds to a single datacenter. Multiple zones help make the cloud more reliable by providing physical isolation and redundancy.",
+    "message.select.affinity.groups": "Please select any affinity groups you want this VM to belong to:",
+    "message.select.instance": "Please select an instance.",
+    "message.select.iso": "Please select an ISO for your new virtual instance.",
+    "message.select.item": "Please select an item.",
+    "message.select.security.groups": "Please select security group(s) for your new VM",
+    "message.select.template": "الرجاء اختيار قالب لمثالك الإفتراضي الجديد",
+    "message.select.tier": "Please select a tier",
+    "message.set.default.NIC": "Please confirm that you would like to make this NIC the default for this VM.",
+    "message.set.default.NIC.manual": "Please manually update the default NIC on the VM now.",
+    "message.setup.physical.network.during.zone.creation": "When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the hypervisor. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.",
+    "message.setup.physical.network.during.zone.creation.basic": "When adding a basic zone, you can set up one physical network, which corresponds to a NIC on the hypervisor. The network carries several types of traffic.<br/><br/>You may also <strong>drag and drop</strong> other traffic types onto the physical network.",
+    "message.setup.successful": "Cloud setup successful!",
+    "message.snapshot.schedule": "You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference",
+    "message.specifiy.tag.key.value": "Please specify a tag key and value",
+    "message.specify.url": "Please specify URL",
+    "message.step.1.continue": "Please select a template or ISO to continue",
+    "message.step.1.desc": "Please select a template for your new virtual instance. You can also choose to select a blank template from which an ISO image can be installed onto.",
+    "message.step.2.continue": "Please select a service offering to continue",
+    "message.step.3.continue": "Please select a disk offering to continue",
+    "message.step.4.continue": "Please select at least one network to continue",
+    "message.step.4.desc": "Please select the primary network that your virtual instance will be connected to.",
+    "message.storage.traffic": "Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.",
+    "message.suspend.project": "هل أنت متأكد من أنك تريد إيقاف هذا المشروع ؟",
+    "message.systems.vms.ready": "System VMs ready.",
+    "message.template.copying": "Template is being copied.",
+    "message.template.desc": "OS image that can be used to boot VMs",
+    "message.tier.required": "Tier is required",
+    "message.tooltip.dns.1": "Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+    "message.tooltip.dns.2": "A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+    "message.tooltip.internal.dns.1": "Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.",
+    "message.tooltip.internal.dns.2": "Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.",
+    "message.tooltip.network.domain": "A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.",
+    "message.tooltip.pod.name": "A name for this pod.",
+    "message.tooltip.reserved.system.gateway": "The gateway for the hosts in the pod.",
+    "message.tooltip.reserved.system.netmask": "The network prefix that defines the pod subnet. Uses CIDR notation.",
+    "message.tooltip.zone.name": "A name for the zone.",
+    "message.update.os.preference": "Please choose a OS preference for this host.  All virtual instances with similar preferences will be first allocated to this host before choosing another.",
+    "message.update.resource.count": "الرجاء التأكيد بأنك ترغب بتحديث مصادر الحسابات لهذا الحساب",
+    "message.update.ssl": "Please submit a new X.509 compliant SSL certificate chain to be updated to each console proxy and secondary storage virtual instance:",
+    "message.update.ssl.failed": "Failed to update SSL Certificate.",
+    "message.update.ssl.succeeded": "Update SSL Certificates succeeded",
+    "message.validate.URL": "Please enter a valid URL.",
+    "message.validate.accept": "Please enter a value with a valid extension.",
+    "message.validate.creditcard": "Please enter a valid credit card number.",
+    "message.validate.date": "Please enter a valid date.",
+    "message.validate.date.ISO": "Please enter a valid date (ISO).",
+    "message.validate.digits": "Please enter only digits.",
+    "message.validate.email.address": "Please enter a valid email address.",
+    "message.validate.equalto": "Please enter the same value again.",
+    "message.validate.fieldrequired": "This field is required.",
+    "message.validate.fixfield": "Please fix this field.",
+    "message.validate.instance.name": "Instance name can not be longer than 63 characters. Only ASCII letters a~z, A~Z, digits 0~9, hyphen are allowed. Must start with a letter and end with a letter or a digit.",
+    "message.validate.invalid.characters": "Invalid characters found; please correct.",
+    "message.validate.max": "Please enter a value less than or equal to {0}.",
+    "message.validate.maxlength": "Please enter no more than {0} characters.",
+    "message.validate.minlength": "Please enter at least {0} characters.",
+    "message.validate.number": "Please enter a valid number.",
+    "message.validate.range": "Please enter a value between {0} and {1}.",
+    "message.validate.range.length": "Please enter a value between {0} and {1} characters long.",
+    "message.virtual.network.desc": "A dedicated virtualized network for your account.  The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.",
+    "message.vm.create.template.confirm": "Create Template will reboot the VM automatically.",
+    "message.vm.review.launch": "يرجى مراجعة المعلومات التالية وتأكد أن مثالك الإفتراضي صحيح قبل الإنطلاق",
+    "message.vnmc.available.list": "VNMC is not available from provider list.",
+    "message.vnmc.not.available.list": "VNMC is not available from provider list.",
+    "message.volume.create.template.confirm": "Please confirm that you wish to create a template for this disk volume.  Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.waiting.for.builtin.templates.to.load": "Waiting for builtin templates to load...",
+    "message.you.must.have.at.least.one.physical.network": "You must have at least one physical network",
+    "message.your.cloudstack.is.ready": "Your CloudStack is ready!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Zone creation complete. Would you like to enable this zone?",
+    "message.zone.no.network.selection": "The zone you selected does not have any choices for network selection.",
+    "message.zone.step.1.desc": "Please select a network model for your zone.",
+    "message.zone.step.2.desc": "Please enter the following info to add a new zone",
+    "message.zone.step.3.desc": "Please enter the following info to add a new pod",
+    "message.zoneWizard.enable.local.storage": "WARNING: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch:<br/><br/>1. If system VMs need to be launched in shared primary storage, shared primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local primary storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?",
+    "messgae.validate.min": "Please enter a value greater than or equal to {0}.",
+    "mode": "Mode",
+    "network.rate": "Network Rate",
+    "notification.reboot.instance": "إعادة تشغيل النموذج",
+    "notification.start.instance": "بدء النموذج",
+    "notification.stop.instance": "إيقاف النموذج",
+    "side.by.side": "Side by Side",
+    "state.Accepted": "تم القبول",
+    "state.Active": "نشط",
+    "state.Allocated": "تخصيص",
+    "state.Allocating": "Allocating",
+    "state.BackedUp": "Backed Up",
+    "state.BackingUp": "Backing Up",
+    "state.Completed": "تم الاكمال",
+    "state.Creating": "إنشاء",
+    "state.Declined": "تم الرفض",
+    "state.Destroyed": "دمر",
+    "state.Disabled": "Disabled",
+    "state.Enabled": "تمكين",
+    "state.Error": "خطأ",
+    "state.Expunging": "محو",
+    "state.Migrating": "Migrating",
+    "state.Pending": "في الانتظار",
+    "state.Ready": "جاهز",
+    "state.Running": "Running",
+    "state.Starting": "Starting",
+    "state.Stopped": "توقف",
+    "state.Stopping": "Stopping",
+    "state.Suspended": "تم الإيقاف",
+    "state.detached": "Detached",
+    "title.upload.volume": "Upload Volume",
+    "ui.listView.filters.all": "الكل",
+    "ui.listView.filters.mine": "Mine"
+};
diff --git a/ui/l10n/ca.js b/ui/l10n/ca.js
new file mode 100644
index 0000000..958e2cd
--- /dev/null
+++ b/ui/l10n/ca.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP Code",
+    "ICMP.type": "ICMP Type",
+    "changed.item.properties": "Changed item properties",
+    "confirm.enable.s3": "Please fill in the following information to enable support for S3-backed Secondary Storage",
+    "confirm.enable.swift": "Si us plau ompliu la següent informació per habilitar el suport per a Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Error could not change your password because LDAP is enabled.",
+    "error.could.not.enable.zone": "Could not enable zone",
+    "error.installWizard.message": "Quelcom ha fallat, vostè pot tornar enrere i corregir els errors detalls suggerime",
+    "error.invalid.username.password": "Invalid username or password",
+    "error.login": "Your username/password does not match our records.",
+    "error.menu.select": "Unable to perform action due to no items being selected.",
+    "error.mgmt.server.inaccessible": "The Management Server is unaccessible.  Please try again later.",
+    "error.password.not.match": "Els camps de contrasenya no coincideixen",
+    "error.please.specify.physical.network.tags": "Network offerings is not available until you specify tags for this physical network.",
+    "error.session.expired": "Your session has expired.",
+    "error.something.went.wrong.please.correct.the.following": "Something went wrong; please correct the following",
+    "error.unable.to.reach.management.server": "Unable to reach Management Server",
+    "error.unresolved.internet.name": "Your internet name cannot be resolved.",
+    "force.delete": "Force Delete",
+    "force.delete.domain.warning": "Warning: Choosing this option will cause the deletion of all child domains and all associated accounts and their resources.",
+    "force.remove": "Force Remove",
+    "force.remove.host.warning": "Warning: Choosing this option will cause CloudStack to forcefully stop all running virtual machines before removing this host from the cluster.",
+    "force.stop": "Force Stop",
+    "force.stop.instance.warning": "Warning: Forcing a stop on this instance should be your last option. It can lead to data loss as well as inconsistent behavior of the virtual machine state.",
+    "hint.no.host.tags": "No host tags found",
+    "hint.no.storage.tags": "No storage tags found",
+    "hint.type.part.host.tag": "Type in part of a host tag",
+    "hint.type.part.storage.tag": "Type in part of a storage tag",
+    "image.directory": "Image Directory",
+    "inline": "En línia",
+    "instances.actions.reboot.label": "Reboot instance",
+    "label.CIDR.list": "CIDR list",
+    "label.CIDR.of.destination.network": "CIDR of destination network",
+    "label.CPU.cap": "CPU Cap",
+    "label.DHCP.server.type": "DHCP Server Type",
+    "label.DNS.domain.for.guest.networks": "DNS domain for Guest Networks",
+    "label.ESP.encryption": "ESP Encryption",
+    "label.ESP.hash": "ESP Hash",
+    "label.ESP.lifetime": "ESP Lifetime (second)",
+    "label.ESP.policy": "ESP policy",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE Encryption",
+    "label.IKE.hash": "IKE Hash",
+    "label.IKE.lifetime": "IKE lifetime (second)",
+    "label.IKE.policy": "IKE policy",
+    "label.IPsec.preshared.key": "IPsec Preshared-Key",
+    "label.LB.isolation": "LB isolation",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto Log Profile",
+    "label.PA.threat.profile": "Palo Alto Threat Profile",
+    "label.PING.CIFS.password": "PING CIFS password",
+    "label.PING.CIFS.username": "PING CIFS username",
+    "label.PING.dir": "PING Directory",
+    "label.PING.storage.IP": "PING storage IP",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "Tipus de servidor PXE",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNMP Port",
+    "label.SR.name": "SR Name-Label",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP Directory",
+    "label.VMFS.datastore": "VMFS datastore",
+    "label.VMs.in.tier": "VMs in tier",
+    "label.VPC.limits": "VPC limits",
+    "label.VPC.router.details": "VPC router details",
+    "label.VPN.connection": "VPN Connection",
+    "label.VPN.customer.gateway": "VPN Customer Gateway",
+    "label.VPN.gateway": "VPN Gateway",
+    "label.Xenserver.Tools.Version61plus": "Original XS Version is 6.1+",
+    "label.about": "About",
+    "label.about.app": "About CloudStack",
+    "label.accept.project.invitation": "Accpetar invitació al projecte",
+    "label.account": "Account",
+    "label.account.and.security.group": "Account, Security group",
+    "label.account.details": "Account details",
+    "label.account.id": "Account ID",
+    "label.account.lower": "account",
+    "label.account.name": "Account Name",
+    "label.account.specific": "Account-Specific",
+    "label.account.type": "Account Type",
+    "label.accounts": "Accounts",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL List Rules",
+    "label.acl.name": "ACL Name",
+    "label.acl.replaced": "ACL replaced",
+    "label.acquire.new.ip": "Acquire New IP",
+    "label.acquire.new.secondary.ip": "Acquire new secondary IP",
+    "label.action": "Action",
+    "label.action.attach.disk": "Attach Disk",
+    "label.action.attach.disk.processing": "Attaching Disk....",
+    "label.action.attach.iso": "Attach ISO",
+    "label.action.attach.iso.processing": "Attaching ISO....",
+    "label.action.cancel.maintenance.mode": "Cancel Maintenance Mode",
+    "label.action.cancel.maintenance.mode.processing": "Cancelling Maintenance Mode....",
+    "label.action.change.password": "Change Password",
+    "label.action.change.service": "Change Service",
+    "label.action.change.service.processing": "Changing Service....",
+    "label.action.configure.samlauthorization": "Configure SAML SSO Authorization",
+    "label.action.copy.ISO": "Copy ISO",
+    "label.action.copy.ISO.processing": "Copying ISO....",
+    "label.action.copy.template": "Copy Template",
+    "label.action.copy.template.processing": "Copying Template....",
+    "label.action.create.template": "Create Template",
+    "label.action.create.template.from.vm": "Create Template from VM",
+    "label.action.create.template.from.volume": "Create Template from Volume",
+    "label.action.create.template.processing": "Creating Template....",
+    "label.action.create.vm": "Create VM",
+    "label.action.create.vm.processing": "Creating VM....",
+    "label.action.create.volume": "Create Volume",
+    "label.action.create.volume.processing": "Creating Volume....",
+    "label.action.delete.IP.range": "Delete IP Range",
+    "label.action.delete.IP.range.processing": "Deleting IP Range....",
+    "label.action.delete.ISO": "Delete ISO",
+    "label.action.delete.ISO.processing": "Deleting ISO....",
+    "label.action.delete.account": "Delete account",
+    "label.action.delete.account.processing": "Deleting account....",
+    "label.action.delete.cluster": "Delete Cluster",
+    "label.action.delete.cluster.processing": "Deleting Cluster....",
+    "label.action.delete.disk.offering": "Delete Disk Offering",
+    "label.action.delete.disk.offering.processing": "Deleting Disk Offering....",
+    "label.action.delete.domain": "Delete Domain",
+    "label.action.delete.domain.processing": "Deleting Domain....",
+    "label.action.delete.firewall": "Delete firewall rule",
+    "label.action.delete.firewall.processing": "Deleting Firewall....",
+    "label.action.delete.ingress.rule": "Delete Ingress Rule",
+    "label.action.delete.ingress.rule.processing": "Deleting Ingress Rule....",
+    "label.action.delete.load.balancer": "Delete load balancer rule",
+    "label.action.delete.load.balancer.processing": "Deleting Load Balancer....",
+    "label.action.delete.network": "Delete Network",
+    "label.action.delete.network.processing": "Deleting Network....",
+    "label.action.delete.nexusVswitch": "Delete Nexus 1000v",
+    "label.action.delete.nic": "Remove NIC",
+    "label.action.delete.physical.network": "Delete physical network",
+    "label.action.delete.pod": "Delete Pod",
+    "label.action.delete.pod.processing": "Deleting Pod....",
+    "label.action.delete.primary.storage": "Delete Primary Storage",
+    "label.action.delete.primary.storage.processing": "Deleting Primary Storage....",
+    "label.action.delete.secondary.storage": "Delete Secondary Storage",
+    "label.action.delete.secondary.storage.processing": "Deleting Secondary Storage....",
+    "label.action.delete.security.group": "Delete Security Group",
+    "label.action.delete.security.group.processing": "Deleting Security Group....",
+    "label.action.delete.service.offering": "Delete Service Offering",
+    "label.action.delete.service.offering.processing": "Deleting Service Offering....",
+    "label.action.delete.snapshot": "Delete Snapshot",
+    "label.action.delete.snapshot.processing": "Deleting Snapshot....",
+    "label.action.delete.system.service.offering": "Delete System Service Offering",
+    "label.action.delete.template": "Delete Template",
+    "label.action.delete.template.processing": "Deleting Template....",
+    "label.action.delete.user": "Delete User",
+    "label.action.delete.user.processing": "Deleting User....",
+    "label.action.delete.volume": "Delete Volume",
+    "label.action.delete.volume.processing": "Deleting Volume....",
+    "label.action.delete.zone": "Delete Zone",
+    "label.action.delete.zone.processing": "Deleting Zone....",
+    "label.action.destroy.instance": "Destroy Instance",
+    "label.action.destroy.instance.processing": "Destroying Instance....",
+    "label.action.destroy.systemvm": "Destroy System VM",
+    "label.action.destroy.systemvm.processing": "Destroying System VM....",
+    "label.action.detach.disk": "Detach Disk",
+    "label.action.detach.disk.processing": "Detaching Disk....",
+    "label.action.detach.iso": "Detach ISO",
+    "label.action.detach.iso.processing": "Detaching ISO....",
+    "label.action.disable.account": "Disable account",
+    "label.action.disable.account.processing": "Disabling account....",
+    "label.action.disable.cluster": "Disable Cluster",
+    "label.action.disable.cluster.processing": "Disabling Cluster....",
+    "label.action.disable.nexusVswitch": "Disable Nexus 1000v",
+    "label.action.disable.physical.network": "Disable physical network",
+    "label.action.disable.pod": "Disable Pod",
+    "label.action.disable.pod.processing": "Disabling Pod....",
+    "label.action.disable.static.NAT": "Disable Static NAT",
+    "label.action.disable.static.NAT.processing": "Disabling Static NAT....",
+    "label.action.disable.user": "Disable User",
+    "label.action.disable.user.processing": "Disabling User....",
+    "label.action.disable.zone": "Disable Zone",
+    "label.action.disable.zone.processing": "Disabling Zone....",
+    "label.action.download.ISO": "Download ISO",
+    "label.action.download.template": "Download Template",
+    "label.action.download.volume": "Download Volume",
+    "label.action.download.volume.processing": "Downloading Volume....",
+    "label.action.edit.ISO": "Edit ISO",
+    "label.action.edit.account": "Edit account",
+    "label.action.edit.disk.offering": "Edit Disk Offering",
+    "label.action.edit.domain": "Edit Domain",
+    "label.action.edit.global.setting": "Edit Global Setting",
+    "label.action.edit.host": "Editar Host",
+    "label.action.edit.instance": "Edit Instance",
+    "label.action.edit.network": "Edit Network",
+    "label.action.edit.network.offering": "Edit Network Offering",
+    "label.action.edit.network.processing": "Editing Network....",
+    "label.action.edit.pod": "Edit Pod",
+    "label.action.edit.primary.storage": "Edit Primary Storage",
+    "label.action.edit.resource.limits": "Edit Resource Limits",
+    "label.action.edit.service.offering": "Edit Service Offering",
+    "label.action.edit.template": "Edit Template",
+    "label.action.edit.user": "Edit User",
+    "label.action.edit.zone": "Edit Zone",
+    "label.action.enable.account": "Enable account",
+    "label.action.enable.account.processing": "Enabling account....",
+    "label.action.enable.cluster": "Enable Cluster",
+    "label.action.enable.cluster.processing": "Enabling Cluster....",
+    "label.action.enable.maintenance.mode": "Enable Maintenance Mode",
+    "label.action.enable.maintenance.mode.processing": "Enabling Maintenance Mode....",
+    "label.action.enable.nexusVswitch": "Enable Nexus 1000v",
+    "label.action.enable.physical.network": "Enable physical network",
+    "label.action.enable.pod": "Enable Pod",
+    "label.action.enable.pod.processing": "Enabling Pod....",
+    "label.action.enable.static.NAT": "Enable Static NAT",
+    "label.action.enable.static.NAT.processing": "Enabling Static NAT....",
+    "label.action.enable.user": "Enable User",
+    "label.action.enable.user.processing": "Enabling User....",
+    "label.action.enable.zone": "Enable Zone",
+    "label.action.enable.zone.processing": "Enabling Zone....",
+    "label.action.expunge.instance": "Expunge Instance",
+    "label.action.expunge.instance.processing": "Expunging Instance....",
+    "label.action.force.reconnect": "Force Reconnect",
+    "label.action.force.reconnect.processing": "Reconnecting....",
+    "label.action.generate.keys": "Generate Keys",
+    "label.action.generate.keys.processing": "Generate Keys....",
+    "label.action.list.nexusVswitch": "List Nexus 1000v",
+    "label.action.lock.account": "Lock account",
+    "label.action.lock.account.processing": "Locking account....",
+    "label.action.manage.cluster": "Manage Cluster",
+    "label.action.manage.cluster.processing": "Managing Cluster....",
+    "label.action.migrate.instance": "Migrate Instance",
+    "label.action.migrate.instance.processing": "Migrating Instance....",
+    "label.action.migrate.router": "Migrar router",
+    "label.action.migrate.router.processing": "Migrant router...",
+    "label.action.migrate.systemvm": "Migrar MV de Sistema",
+    "label.action.migrate.systemvm.processing": "Migrant MV de Sistema...",
+    "label.action.reboot.instance": "Reboot Instance",
+    "label.action.reboot.instance.processing": "Rebooting Instance....",
+    "label.action.reboot.router": "Reboot Router",
+    "label.action.reboot.router.processing": "Rebooting Router....",
+    "label.action.reboot.systemvm": "Reboot System VM",
+    "label.action.reboot.systemvm.processing": "Rebooting System VM....",
+    "label.action.recurring.snapshot": "Recurring Snapshots",
+    "label.action.register.iso": "Register ISO",
+    "label.action.register.template": "Register Template from URL",
+    "label.action.release.ip": "Release IP",
+    "label.action.release.ip.processing": "Releasing IP....",
+    "label.action.remove.host": "Remove Host",
+    "label.action.remove.host.processing": "Removing Host....",
+    "label.action.reset.password": "Reset Password",
+    "label.action.reset.password.processing": "Resetting Password....",
+    "label.action.resize.volume": "Resize Volume",
+    "label.action.resize.volume.processing": "Resizing Volume....",
+    "label.action.resource.limits": "Resource limits",
+    "label.action.restore.instance": "Restore Instance",
+    "label.action.restore.instance.processing": "Restoring Instance....",
+    "label.action.revert.snapshot": "Revert to Snapshot",
+    "label.action.revert.snapshot.processing": "Reverting to Snapshot...",
+    "label.action.start.instance": "Start Instance",
+    "label.action.start.instance.processing": "Starting Instance....",
+    "label.action.start.router": "Start Router",
+    "label.action.start.router.processing": "Starting Router....",
+    "label.action.start.systemvm": "Start System VM",
+    "label.action.start.systemvm.processing": "Starting System VM....",
+    "label.action.stop.instance": "Stop Instance",
+    "label.action.stop.instance.processing": "Stopping Instance....",
+    "label.action.stop.router": "Stop Router",
+    "label.action.stop.router.processing": "Stopping Router....",
+    "label.action.stop.systemvm": "Stop System VM",
+    "label.action.stop.systemvm.processing": "Stopping System VM....",
+    "label.action.take.snapshot": "Take Snapshot",
+    "label.action.take.snapshot.processing": "Taking Snapshot....",
+    "label.action.unmanage.cluster": "Unmanage Cluster",
+    "label.action.unmanage.cluster.processing": "Unmanaging Cluster....",
+    "label.action.update.OS.preference": "Update OS Preference",
+    "label.action.update.OS.preference.processing": "Updating OS Preference....",
+    "label.action.update.resource.count": "Update Resource Count",
+    "label.action.update.resource.count.processing": "Updating Resource Count....",
+    "label.action.vmsnapshot.create": "Take VM Snapshot",
+    "label.action.vmsnapshot.delete": "Delete VM snapshot",
+    "label.action.vmsnapshot.revert": "Revert to VM snapshot",
+    "label.actions": "Actions",
+    "label.activate.project": "Activar projecte",
+    "label.active.sessions": "Active Sessions",
+    "label.add": "Add",
+    "label.add.ACL": "Add ACL",
+    "label.add.BigSwitchBcf.device": "Add BigSwitch BCF Controller",
+    "label.add.BrocadeVcs.device": "Add Brocade Vcs Switch",
+    "label.add.F5.device": "Add F5 device",
+    "label.add.LDAP.account": "Add LDAP Account",
+    "label.add.NiciraNvp.device": "Add Nvp Controller",
+    "label.add.NuageVsp.device": "Add Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Add OpenDaylight Controller",
+    "label.add.PA.device": "Add Palo Alto device",
+    "label.add.SRX.device": "Add SRX device",
+    "label.add.VM.to.tier": "Add VM to tier",
+    "label.add.VPN.gateway": "Add VPN Gateway",
+    "label.add.account": "Add Account",
+    "label.add.account.to.project": "Afegir compte al projecte",
+    "label.add.accounts": "Afegir comptes",
+    "label.add.accounts.to": "Afegir comptes a",
+    "label.add.acl.list": "Add ACL List",
+    "label.add.affinity.group": "Add new affinity group",
+    "label.add.baremetal.dhcp.device": "Add Baremetal DHCP Device",
+    "label.add.baremetal.rack.configuration": "Add Baremetal Rack Configuration",
+    "label.add.by": "Afegir per",
+    "label.add.by.cidr": "Add By CIDR",
+    "label.add.by.group": "Add By Group",
+    "label.add.ciscoASA1000v": "Add CiscoASA1000v Resource",
+    "label.add.cluster": "Add Cluster",
+    "label.add.compute.offering": "Add compute offering",
+    "label.add.direct.iprange": "Add Direct Ip Range",
+    "label.add.disk.offering": "Add Disk Offering",
+    "label.add.domain": "Add Domain",
+    "label.add.egress.rule": "Afegir regla de sortida",
+    "label.add.firewall": "Add firewall rule",
+    "label.add.globo.dns": "Add GloboDNS",
+    "label.add.gslb": "Add GSLB",
+    "label.add.guest.network": "Add guest network",
+    "label.add.host": "Add Host",
+    "label.add.ingress.rule": "Add Ingress Rule",
+    "label.add.intermediate.certificate": "Add intermediate certificate",
+    "label.add.internal.lb": "Add Internal LB",
+    "label.add.ip.range": "Add IP Range",
+    "label.add.isolated.guest.network": "Add Isolated Guest Network",
+    "label.add.isolated.guest.network.with.sourcenat": "Add Isolated Guest Network with SourceNat",
+    "label.add.isolated.network": "Add Isolated Network",
+    "label.add.ldap.account": "Add LDAP account",
+    "label.add.list.name": "ACL List Name",
+    "label.add.load.balancer": "Add Load Balancer",
+    "label.add.more": "Add More",
+    "label.add.netScaler.device": "Add Netscaler device",
+    "label.add.network": "Add Network",
+    "label.add.network.ACL": "Add network ACL",
+    "label.add.network.acl.list": "Add Network ACL List",
+    "label.add.network.device": "Add Network Device",
+    "label.add.network.offering": "Add network offering",
+    "label.add.new.F5": "Afegir nou F5",
+    "label.add.new.NetScaler": "Afegir un nou NetScaler",
+    "label.add.new.PA": "Add new Palo Alto",
+    "label.add.new.SRX": "Afegir nou SRX",
+    "label.add.new.gateway": "Add new gateway",
+    "label.add.new.tier": "Add new tier",
+    "label.add.nfs.secondary.staging.store": "Add NFS Secondary Staging Store",
+    "label.add.physical.network": "Afegir xarxa física",
+    "label.add.pod": "Add Pod",
+    "label.add.port.forwarding.rule": "Add port forwarding rule",
+    "label.add.portable.ip.range": "Add Portable IP Range",
+    "label.add.primary.storage": "Add Primary Storage",
+    "label.add.private.gateway": "Add Private Gateway",
+    "label.add.region": "Add Region",
+    "label.add.resources": "Add Resources",
+    "label.add.role": "Add Role",
+    "label.add.route": "Add route",
+    "label.add.rule": "Afegir regla",
+    "label.add.secondary.storage": "Add Secondary Storage",
+    "label.add.security.group": "Add Security Group",
+    "label.add.service.offering": "Add Service Offering",
+    "label.add.static.nat.rule": "Afegir regla de NAT estàtic",
+    "label.add.static.route": "Add static route",
+    "label.add.system.service.offering": "Add System Service Offering",
+    "label.add.template": "Add Template",
+    "label.add.to.group": "Afegir a grup",
+    "label.add.ucs.manager": "Add UCS Manager",
+    "label.add.user": "Add User",
+    "label.add.userdata": "Userdata",
+    "label.add.vlan": "Add VLAN",
+    "label.add.vm": "Afegir MV",
+    "label.add.vms": "Afegir MVs",
+    "label.add.vms.to.lb": "Afegir MV(s) a la regla de balanceig de càrrega",
+    "label.add.vmware.datacenter": "Add VMware datacenter",
+    "label.add.vnmc.device": "Add VNMC device",
+    "label.add.vnmc.provider": "Add VNMC provider",
+    "label.add.volume": "Add Volume",
+    "label.add.vpc": "Add VPC",
+    "label.add.vpc.offering": "Add VPC Offering",
+    "label.add.vpn.customer.gateway": "Add VPN Customer Gateway",
+    "label.add.vpn.user": "Afegir usuari VPN",
+    "label.add.vxlan": "Add VXLAN",
+    "label.add.zone": "Add Zone",
+    "label.added.brocade.vcs.switch": "Added new Brocade Vcs Switch",
+    "label.added.network.offering": "Added network offering",
+    "label.added.new.bigswitch.bcf.controller": "Added new BigSwitch BCF Controller",
+    "label.added.nicira.nvp.controller": "Added new Nicira NVP Controller",
+    "label.addes.new.f5": "Added new F5",
+    "label.adding": "Adding",
+    "label.adding.cluster": "Adding Cluster",
+    "label.adding.failed": "Adding Failed",
+    "label.adding.pod": "Adding Pod",
+    "label.adding.processing": "Adding....",
+    "label.adding.succeeded": "Adding Succeeded",
+    "label.adding.user": "Adding User",
+    "label.adding.zone": "Adding Zone",
+    "label.additional.networks": "Additional Networks",
+    "label.admin": "Admin",
+    "label.admin.accounts": "Admin Accounts",
+    "label.advanced": "Advanced",
+    "label.advanced.mode": "Advanced Mode",
+    "label.advanced.search": "Advanced Search",
+    "label.affinity": "Affinity",
+    "label.affinity.group": "Affinity Group",
+    "label.affinity.groups": "Affinity Groups",
+    "label.agent.password": "Agent Password",
+    "label.agent.port": "Agent Port",
+    "label.agent.state": "Agent State",
+    "label.agent.username": "Agent Username",
+    "label.agree": "D'acord",
+    "label.alert": "Alert",
+    "label.alert.archived": "Alert Archived",
+    "label.alert.deleted": "Alert Deleted",
+    "label.alert.details": "Alert details",
+    "label.algorithm": "Algorithm",
+    "label.allocated": "Allocated",
+    "label.allocation.state": "Allocation State",
+    "label.allow": "Allow",
+    "label.anti.affinity": "Anti-affinity",
+    "label.anti.affinity.group": "Anti-affinity Group",
+    "label.anti.affinity.groups": "Anti-affinity Groups",
+    "label.api.key": "API Key",
+    "label.api.version": "API Version",
+    "label.app.name": "CloudStack",
+    "label.apply": "Aplicar",
+    "label.archive": "Archive",
+    "label.archive.alerts": "Archive alerts",
+    "label.archive.events": "Archive events",
+    "label.assign": "Assign",
+    "label.assign.instance.another": "Assign Instance to Another Account",
+    "label.assign.to.load.balancer": "Assigning instance to load balancer",
+    "label.assign.vms": "Assign VMs",
+    "label.assigned.vms": "Assigned VMs",
+    "label.associate.public.ip": "Associate Public IP",
+    "label.associated.network": "Associated Network",
+    "label.associated.network.id": "Associated Network ID",
+    "label.associated.profile": "Associated Profile",
+    "label.attached.iso": "Attached ISO",
+    "label.author.email": "Author e-mail",
+    "label.author.name": "Author name",
+    "label.autoscale": "AutoScale",
+    "label.autoscale.configuration.wizard": "AutoScale Configuration Wizard",
+    "label.availability": "Availability",
+    "label.availability.zone": "Availability Zone",
+    "label.availabilityZone": "availabilityZone",
+    "label.available": "Available",
+    "label.available.public.ips": "Available Public IP Addresses",
+    "label.back": "Back",
+    "label.bandwidth": "Ample de banda",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP Devices",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP Provider",
+    "label.baremetal.pxe.device": "Add Baremetal PXE Device",
+    "label.baremetal.pxe.devices": "Baremetal PXE Devices",
+    "label.baremetal.pxe.provider": "Baremetal PXE Provider",
+    "label.baremetal.rack.configuration": "Baremetal Rack Configuration",
+    "label.basic": "Basic",
+    "label.basic.mode": "Basic Mode",
+    "label.bigswitch.bcf.details": "BigSwitch BCF details",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT Enabled",
+    "label.bigswitch.controller.address": "BigSwitch BCF Controller Address",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blades",
+    "label.bootable": "Bootable",
+    "label.broadcast.domain.range": "Rang del domini de broadcast",
+    "label.broadcast.domain.type": "Broadcast Domain Type",
+    "label.broadcast.uri": "Broadcast URI",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "Broadcast URI",
+    "label.brocade.vcs.address": "Vcs Switch Address",
+    "label.brocade.vcs.details": "Brocade Vcs Switch details",
+    "label.by.account": "By Account",
+    "label.by.alert.type": "By alert type",
+    "label.by.availability": "By Availability",
+    "label.by.date.end": "By date (end)",
+    "label.by.date.start": "By date (start)",
+    "label.by.domain": "By Domain",
+    "label.by.end.date": "By End Date",
+    "label.by.event.type": "By event type",
+    "label.by.level": "By Level",
+    "label.by.pod": "By Pod",
+    "label.by.role": "By Role",
+    "label.by.start.date": "By Start Date",
+    "label.by.state": "By State",
+    "label.by.traffic.type": "By Traffic Type",
+    "label.by.type": "By Type",
+    "label.by.type.id": "By Type ID",
+    "label.by.zone": "By Zone",
+    "label.bytes.received": "Bytes Received",
+    "label.bytes.sent": "Bytes Sent",
+    "label.cache.mode": "Write-cache Type",
+    "label.cancel": "Cancel",
+    "label.capacity": "Capacitat",
+    "label.capacity.bytes": "Capacity Bytes",
+    "label.capacity.iops": "Capacity IOPS",
+    "label.certificate": "Server certificate",
+    "label.change.affinity": "Change Affinity",
+    "label.change.ipaddress": "Change IP address for NIC",
+    "label.change.service.offering": "Canvia oferta de servei",
+    "label.change.value": "Canviar valor",
+    "label.character": "Character",
+    "label.chassis": "Chassis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR or Account/Security Group",
+    "label.cidr.list": "Source CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP Address",
+    "label.cisco.nexus1000v.password": "Nexus 1000v Password",
+    "label.cisco.nexus1000v.username": "Nexus 1000v Username",
+    "label.ciscovnmc.resource.details": "CiscoVNMC resource details",
+    "label.clean.up": "Clean up",
+    "label.clear.list": "Esborra llista",
+    "label.close": "Close",
+    "label.cloud.console": "Cloud Management Console",
+    "label.cloud.managed": "Cloud.com Managed",
+    "label.cluster": "Cluster",
+    "label.cluster.name": "Cluster Name",
+    "label.cluster.type": "Cluster Type",
+    "label.clusters": "Clusters",
+    "label.clvm": "CLVM",
+    "label.code": "Code",
+    "label.community": "Comunitat",
+    "label.compute": "Computació",
+    "label.compute.and.storage": "Computació i Emmagatzematge",
+    "label.compute.offering": "Compute offering",
+    "label.compute.offerings": "Compute Offerings",
+    "label.configuration": "Configuració",
+    "label.configure": "Configurar",
+    "label.configure.ldap": "Configure LDAP",
+    "label.configure.network.ACLs": "Configure Network ACLs",
+    "label.configure.sticky.policy": "Configure Sticky Policy",
+    "label.configure.vpc": "Configure VPC",
+    "label.confirm.password": "Confirmar contrasenya",
+    "label.confirmation": "Confirmation",
+    "label.congratulations": "Enorabona!",
+    "label.conserve.mode": "Conserve mode",
+    "label.console.proxy": "Console proxy",
+    "label.console.proxy.vm": "Console Proxy VM",
+    "label.continue": "Continuar",
+    "label.continue.basic.install": "Continueu amb la instal·lació bàsica",
+    "label.copying.iso": "Copying ISO",
+    "label.corrections.saved": "Correccions guardades",
+    "label.counter": "Counter",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU Allocated",
+    "label.cpu.allocated.for.VMs": "CPU Allocated for VMs",
+    "label.cpu.limits": "CPU limits",
+    "label.cpu.mhz": "CPU (in MHz)",
+    "label.cpu.utilized": "CPU Utilized",
+    "label.create.VPN.connection": "Create VPN Connection",
+    "label.create.nfs.secondary.staging.storage": "Create NFS Secondary Staging Store",
+    "label.create.nfs.secondary.staging.store": "Create NFS secondary staging store",
+    "label.create.project": "Crear projecte",
+    "label.create.ssh.key.pair": "Create a SSH Key Pair",
+    "label.create.template": "Create template",
+    "label.created": "Created",
+    "label.created.by.system": "Created by system",
+    "label.cross.zones": "Cross Zones",
+    "label.custom": "Custom",
+    "label.custom.disk.iops": "Custom IOPS",
+    "label.custom.disk.offering": "Custom Disk Offering",
+    "label.custom.disk.size": "Custom Disk Size",
+    "label.daily": "Daily",
+    "label.data.disk.offering": "Data Disk Offering",
+    "label.date": "Date",
+    "label.day": "Day",
+    "label.day.of.month": "Day of Month",
+    "label.day.of.week": "Day of Week",
+    "label.dc.name": "DC Name",
+    "label.dead.peer.detection": "Dead Peer Detection",
+    "label.decline.invitation": "Declinar invitació",
+    "label.dedicate": "Dedicate",
+    "label.dedicate.cluster": "Dedicate Cluster",
+    "label.dedicate.host": "Dedicate Host",
+    "label.dedicate.pod": "Dedicate Pod",
+    "label.dedicate.vlan.vni.range": "Dedicate VLAN/VNI Range",
+    "label.dedicate.zone": "Dedicate Zone",
+    "label.dedicated": "Dedicat",
+    "label.dedicated.vlan.vni.ranges": "Dedicated VLAN/VNI Ranges",
+    "label.default": "Per defecte",
+    "label.default.egress.policy": "Default egress policy",
+    "label.default.use": "Default Use",
+    "label.default.view": "Default View",
+    "label.delete": "Delete",
+    "label.delete.BigSwitchBcf": "Remove BigSwitch BCF Controller",
+    "label.delete.BrocadeVcs": "Remove Brocade Vcs Switch",
+    "label.delete.F5": "Esborrar F5",
+    "label.delete.NetScaler": "Esborrar NetScaler",
+    "label.delete.NiciraNvp": "Remove Nvp Controller",
+    "label.delete.NuageVsp": "Remove Nuage VSD",
+    "label.delete.OpenDaylight.device": "Delete OpenDaylight Controller",
+    "label.delete.PA": "Delete Palo Alto",
+    "label.delete.SRX": "Esborar SRX",
+    "label.delete.VPN.connection": "Delete VPN connection",
+    "label.delete.VPN.customer.gateway": "Delete VPN Customer Gateway",
+    "label.delete.VPN.gateway": "Delete VPN Gateway",
+    "label.delete.acl.list": "Delete ACL List",
+    "label.delete.affinity.group": "Delete Affinity Group",
+    "label.delete.alerts": "Delete alerts",
+    "label.delete.baremetal.rack.configuration": "Delete Baremetal Rack Configuration",
+    "label.delete.ciscoASA1000v": "Delete CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Delete CiscoVNMC resource",
+    "label.delete.events": "Delete events",
+    "label.delete.gateway": "Delete gateway",
+    "label.delete.internal.lb": "Delete Internal LB",
+    "label.delete.portable.ip.range": "Delete Portable IP Range",
+    "label.delete.profile": "Delete Profile",
+    "label.delete.project": "Esborrar projecte",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Delete Secondary Staging Store",
+    "label.delete.ucs.manager": "Delete UCS Manager",
+    "label.delete.vpn.user": "Esborrar usuari VPN",
+    "label.deleting.failed": "Deleting Failed",
+    "label.deleting.processing": "Deleting....",
+    "label.deny": "Deny",
+    "label.deployment.planner": "Deployment planner",
+    "label.description": "Description",
+    "label.destination.physical.network.id": "ID de xarxa física de destí",
+    "label.destination.zone": "Zona de destí",
+    "label.destroy": "Destroy",
+    "label.destroy.router": "Destruir router",
+    "label.destroy.vm.graceperiod": "Destroy VM Grace Period",
+    "label.detaching.disk": "Detaching Disk",
+    "label.details": "Details",
+    "label.device.id": "Device ID",
+    "label.devices": "Devices",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Direct Attached Public IP",
+    "label.direct.ips": "Shared Network IPs",
+    "label.disable.autoscale": "Disable Autoscale",
+    "label.disable.host": "Disable Host",
+    "label.disable.network.offering": "Disable network offering",
+    "label.disable.provider": "Deshabilitar proveïdor",
+    "label.disable.vnmc.provider": "Disable VNMC provider",
+    "label.disable.vpc.offering": "Disable VPC offering",
+    "label.disable.vpn": "Deshabilitar VPN",
+    "label.disabled": "Deshabilitat",
+    "label.disabling.vpn.access": "Disabling VPN Access",
+    "label.disassociate.profile.blade": "Disassociate Profile from Blade",
+    "label.disbale.vnmc.device": "Disable VNMC device",
+    "label.disk.allocated": "Disk Allocated",
+    "label.disk.bytes.read.rate": "Disk Read Rate (BPS)",
+    "label.disk.bytes.write.rate": "Disk Write Rate (BPS)",
+    "label.disk.iops.max": "Max IOPS",
+    "label.disk.iops.min": "Min IOPS",
+    "label.disk.iops.read.rate": "Disk Read Rate (IOPS)",
+    "label.disk.iops.total": "IOPS Total",
+    "label.disk.iops.write.rate": "Disk Write Rate (IOPS)",
+    "label.disk.offering": "Disk Offering",
+    "label.disk.offering.details": "Disk offering details",
+    "label.disk.provisioningtype": "Provisioning Type",
+    "label.disk.read.bytes": "Disk Read (Bytes)",
+    "label.disk.read.io": "Disk Read (IO)",
+    "label.disk.size": "Disk Size",
+    "label.disk.size.gb": "Disk Size (in GB)",
+    "label.disk.total": "Disk Total",
+    "label.disk.volume": "Disk Volume",
+    "label.disk.write.bytes": "Disk Write (Bytes)",
+    "label.disk.write.io": "Disk Write (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Display Name",
+    "label.display.text": "Display Text",
+    "label.distributedrouter": "Distributed Router",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Domain",
+    "label.domain.admin": "Domain Admin",
+    "label.domain.details": "Domain details",
+    "label.domain.id": "Domain ID",
+    "label.domain.lower": "domain",
+    "label.domain.name": "Domain Name",
+    "label.domain.router": "Domain router",
+    "label.domain.suffix": "DNS Domain Suffix (i.e., xyz.com)",
+    "label.done": "Done",
+    "label.double.quotes.are.not.allowed": "Double quotes are not allowed",
+    "label.download.progress": "Download Progress",
+    "label.drag.new.position": "Arrosegar a la nova posició",
+    "label.duration.in.sec": "Duration (in sec)",
+    "label.dynamically.scalable": "Dynamically Scalable",
+    "label.edit": "Edit",
+    "label.edit.acl.rule": "Edit ACL rule",
+    "label.edit.affinity.group": "Edit Affinity Group",
+    "label.edit.lb.rule": "Edit LB rule",
+    "label.edit.network.details": "Edit network details",
+    "label.edit.project.details": "Editar detalls del projecte",
+    "label.edit.region": "Edit Region",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Edit rule",
+    "label.edit.secondary.ips": "Edit secondary IPs",
+    "label.edit.tags": "Edit tags",
+    "label.edit.traffic.type": "Edit traffic type",
+    "label.edit.vpc": "Edit VPC",
+    "label.egress.default.policy": "Egress Default Policy",
+    "label.egress.rule": "Regla de sortida",
+    "label.egress.rules": "Egress rules",
+    "label.elastic": "Elàstic",
+    "label.elastic.IP": "Elastic IP",
+    "label.elastic.LB": "Elastic LB",
+    "label.email": "Email",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Enable Autoscale",
+    "label.enable.host": "Enable Host",
+    "label.enable.network.offering": "Enable network offering",
+    "label.enable.provider": "Habilitar proveïdor",
+    "label.enable.s3": "Enable S3-backed Secondary Storage",
+    "label.enable.swift": "Habilitar Swift",
+    "label.enable.vnmc.device": "Enable VNMC device",
+    "label.enable.vnmc.provider": "Enable VNMC provider",
+    "label.enable.vpc.offering": "Enable VPC offering",
+    "label.enable.vpn": "Habilitar VPN",
+    "label.enabling.vpn": "Enabling VPN",
+    "label.enabling.vpn.access": "Enabling VPN Access",
+    "label.end.IP": "End IP",
+    "label.end.port": "End Port",
+    "label.end.reserved.system.IP": "End Reserved system IP",
+    "label.end.vlan": "End VLAN",
+    "label.end.vxlan": "End VXLAN",
+    "label.endpoint": "Endpoint",
+    "label.endpoint.or.operation": "Endpoint or Operation",
+    "label.enter.token": "Enter token",
+    "label.error": "Error",
+    "label.error.code": "Error Code",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "ESX/ESXi Host",
+    "label.event": "Event",
+    "label.event.archived": "Event Archived",
+    "label.event.deleted": "Event Deleted",
+    "label.every": "Every",
+    "label.example": "Example",
+    "label.expunge": "Expunge",
+    "label.external.link": "External link",
+    "label.extractable": "Es pot extreure",
+    "label.extractable.lower": "extractable",
+    "label.f5": "F5",
+    "label.f5.details": "F5 details",
+    "label.failed": "Failed",
+    "label.featured": "Featured",
+    "label.fetch.latest": "Fetch latest",
+    "label.filterBy": "Filter by",
+    "label.fingerprint": "FingerPrint",
+    "label.firewall": "Firewall",
+    "label.first.name": "First Name",
+    "label.firstname.lower": "firstname",
+    "label.format": "Format",
+    "label.format.lower": "format",
+    "label.friday": "Friday",
+    "label.full": "Full",
+    "label.full.path": "Camí sencer",
+    "label.gateway": "Gateway",
+    "label.general.alerts": "General Alerts",
+    "label.generating.url": "Generating URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS Configuration",
+    "label.gluster.volume": "Volume",
+    "label.go.step.2": "Go to Step 2",
+    "label.go.step.3": "Go to Step 3",
+    "label.go.step.4": "Go to Step 4",
+    "label.go.step.5": "Go to Step 5",
+    "label.gpu": "GPU",
+    "label.group": "Group",
+    "label.group.by.account": "Group by account",
+    "label.group.by.cluster": "Group by cluster",
+    "label.group.by.pod": "Group by pod",
+    "label.group.by.zone": "Group by zone",
+    "label.group.optional": "Group (Optional)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Assigned load balancing",
+    "label.gslb.assigned.lb.more": "Assign more load balancing",
+    "label.gslb.delete": "Delete GSLB",
+    "label.gslb.details": "GSLB details",
+    "label.gslb.domain.name": "GSLB Domain Name",
+    "label.gslb.lb.details": "Load balancing details",
+    "label.gslb.lb.remove": "Remove load balancing from this GSLB",
+    "label.gslb.lb.rule": "Load balancing rule",
+    "label.gslb.service": "GSLB service",
+    "label.gslb.service.private.ip": "GSLB service Private IP",
+    "label.gslb.service.public.ip": "GSLB service Public IP",
+    "label.gslb.servicetype": "Service Type",
+    "label.guest": "MV",
+    "label.guest.cidr": "Guest CIDR",
+    "label.guest.end.ip": "Fi d'IP per a MV",
+    "label.guest.gateway": "Guest Gateway",
+    "label.guest.ip": "Guest IP Address",
+    "label.guest.ip.range": "Guest IP Range",
+    "label.guest.netmask": "Guest Netmask",
+    "label.guest.network.details": "Guest network details",
+    "label.guest.networks": "Guest networks",
+    "label.guest.start.ip": "Inici d'IP per a MV",
+    "label.guest.traffic": "Tràfic de MV",
+    "label.guest.traffic.vswitch.name": "Guest Traffic vSwitch Name",
+    "label.guest.traffic.vswitch.type": "Guest Traffic vSwitch Type",
+    "label.guest.type": "Guest Type",
+    "label.ha.enabled": "HA Enabled",
+    "label.health.check": "Health Check",
+    "label.health.check.advanced.options": "Advanced Options:",
+    "label.health.check.configurations.options": "Configuration Options:",
+    "label.health.check.interval.in.sec": "Health Check Interval (in sec)",
+    "label.health.check.message.desc": "Your load balancer will automatically perform health checks on your cloudstack instances and only route traffic to instances that pass the health check",
+    "label.health.check.wizard": "Health Check Wizard",
+    "label.healthy.threshold": "Healthy Threshold",
+    "label.help": "Help",
+    "label.hide.ingress.rule": "Hide Ingress Rule",
+    "label.hints": "Pistes",
+    "label.home": "Home",
+    "label.host": "Host",
+    "label.host.MAC": "Host MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Host Name",
+    "label.host.tag": "Host Tag",
+    "label.host.tags": "Host Tags",
+    "label.hosts": "Hosts",
+    "label.hourly": "Hourly",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Traffic Label",
+    "label.hypervisor": "Hypervisor",
+    "label.hypervisor.capabilities": "Hypervisor capabilities",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Snapshot Reserve",
+    "label.hypervisor.type": "Hypervisor Type",
+    "label.hypervisor.version": "Hypervisor version",
+    "label.hypervisors": "Hypervisors",
+    "label.id": "ID",
+    "label.info": "Info",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Ingress Rule",
+    "label.initiated.by": "Initiated By",
+    "label.inside.port.profile": "Inside Port Profile",
+    "label.installWizard.addClusterIntro.subtitle": "Que és un cluster?",
+    "label.installWizard.addClusterIntro.title": "Anem a afegir un cluster",
+    "label.installWizard.addHostIntro.subtitle": "Què és un amfitrió \"host\"?",
+    "label.installWizard.addHostIntro.title": "Anem a afegir un amfitrió",
+    "label.installWizard.addPodIntro.subtitle": "Que és un pod?",
+    "label.installWizard.addPodIntro.title": "Anem a afegir un pod",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Què és l'emmagatzematge primari?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Anem a afegir emmagatzematge primari",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Què és el emmagatzematge secundari?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Anem a afegir emmagatzematge secundari",
+    "label.installWizard.addZone.title": "Afegir zona",
+    "label.installWizard.addZoneIntro.subtitle": "Que és una zona?",
+    "label.installWizard.addZoneIntro.title": "Anem a afegir una zona",
+    "label.installWizard.click.launch": "Feu clic al botó d'inici.",
+    "label.installWizard.subtitle": "Auqesta guia us ajudarà a configurar la vostra instal·lació de CloudStack&#8482",
+    "label.installWizard.title": "Hola i benvigut a CloudStack&#8482",
+    "label.instance": "Instance",
+    "label.instance.limits": "Instance Limits",
+    "label.instance.name": "Instance Name",
+    "label.instance.port": "Instance Port",
+    "label.instance.scaled.up": "Instance scaled to the requested offering",
+    "label.instances": "Instances",
+    "label.instanciate.template.associate.profile.blade": "Instanciate Template and Associate Profile to Blade",
+    "label.intermediate.certificate": "Intermediate certificate {0}",
+    "label.internal.dns.1": "Internal DNS 1",
+    "label.internal.dns.2": "Internal DNS 2",
+    "label.internal.lb": "Internal LB",
+    "label.internal.lb.details": "Internal LB details",
+    "label.internal.name": "Internal name",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "Interval Type",
+    "label.introduction.to.cloudstack": "Introducció a la CloudStack&#8482",
+    "label.invalid.integer": "Invalid Integer",
+    "label.invalid.number": "Invalid Number",
+    "label.invitations": "Invitacions",
+    "label.invite": "Convidar",
+    "label.invite.to": "Convidar a",
+    "label.invited.accounts": "Comptes convidades",
+    "label.ip": "IP",
+    "label.ip.address": "IP Address",
+    "label.ip.allocations": "IP Allocations",
+    "label.ip.limits": "Public IP Limits",
+    "label.ip.or.fqdn": "IP or FQDN",
+    "label.ip.range": "IP Range",
+    "label.ip.ranges": "Rangs d'IPs",
+    "label.ipaddress": "IP Address",
+    "label.ips": "IPs",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 End IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4 Netmask",
+    "label.ipv4.start.ip": "IPv4 Start IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP Address",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 End IP",
+    "label.ipv6.gateway": "IPv6 Gateway",
+    "label.ipv6.start.ip": "IPv6 Start IP",
+    "label.is.default": "Is Default",
+    "label.is.redundant.router": "Redundant",
+    "label.is.shared": "Is Shared",
+    "label.is.system": "Is System",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO Boot",
+    "label.isolated.networks": "Isolated networks",
+    "label.isolation.method": "Isolation method",
+    "label.isolation.mode": "Isolation Mode",
+    "label.isolation.uri": "Isolation URI",
+    "label.item.listing": "Llista d'articles",
+    "label.japanese.keyboard": "Japanese keyboard",
+    "label.keep": "Keep",
+    "label.keep.colon": "Keep:",
+    "label.key": "Clau",
+    "label.keyboard.language": "Keyboard language",
+    "label.keyboard.type": "Tipus de teclat",
+    "label.kvm.traffic.label": "KVM traffic label",
+    "label.label": "Label",
+    "label.lang.arabic": "Arabic",
+    "label.lang.brportugese": "Brazilian Portugese",
+    "label.lang.catalan": "Catalan",
+    "label.lang.chinese": "Chinese (Simplified)",
+    "label.lang.dutch": "Dutch (Netherlands)",
+    "label.lang.english": "English",
+    "label.lang.french": "French",
+    "label.lang.german": "German",
+    "label.lang.hungarian": "Hungarian",
+    "label.lang.italian": "Italian",
+    "label.lang.japanese": "Japanese",
+    "label.lang.korean": "Korean",
+    "label.lang.norwegian": "Norwegian",
+    "label.lang.polish": "Polish",
+    "label.lang.russian": "Russian",
+    "label.lang.spanish": "Spanish",
+    "label.last.disconnected": "Last Disconnected",
+    "label.last.name": "Last Name",
+    "label.lastname.lower": "lastname",
+    "label.latest.events": "Latest events",
+    "label.launch": "Iniciar",
+    "label.launch.vm": "Arrencar MV",
+    "label.launch.zone": "Launch zone",
+    "label.lb.algorithm.leastconn": "Least connections",
+    "label.lb.algorithm.roundrobin": "Round-robin",
+    "label.lb.algorithm.source": "Source",
+    "label.ldap.configuration": "LDAP Configuration",
+    "label.ldap.group.name": "LDAP Group",
+    "label.ldap.link.type": "Type",
+    "label.ldap.port": "LDAP port",
+    "label.level": "Level",
+    "label.link.domain.to.ldap": "Link Domain to LDAP",
+    "label.linklocal.ip": "Link Local IP Address",
+    "label.load.balancer": "Load Balancer",
+    "label.load.balancer.type": "Load Balancer Type",
+    "label.load.balancing": "Balanceig de càrrega",
+    "label.load.balancing.policies": "Pol·lítiques de balanceig de càrrega",
+    "label.loading": "Loading",
+    "label.local": "Local",
+    "label.local.file": "Local file",
+    "label.local.storage": "Emmagatzemament local",
+    "label.local.storage.enabled": "Enable local storage for User VMs",
+    "label.local.storage.enabled.system.vms": "Enable local storage for System VMs",
+    "label.login": "Login",
+    "label.logout": "Logout",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC Traffic Label",
+    "label.make.project.owner": "Feu la compta propietària del projecte",
+    "label.make.redundant": "Make redundant",
+    "label.manage": "Manage",
+    "label.manage.resources": "Administrar Recursos",
+    "label.managed": "Managed",
+    "label.management": "Administració",
+    "label.management.ips": "Management IP Addresses",
+    "label.management.server": "Management Server",
+    "label.max.cpus": "Max. CPU cores",
+    "label.max.guest.limit": "Max guest limit",
+    "label.max.instances": "Max Instances",
+    "label.max.memory": "Max. memory (MiB)",
+    "label.max.networks": "Max. networks",
+    "label.max.primary.storage": "Max. primary (GiB)",
+    "label.max.public.ips": "Max. IP públiques",
+    "label.max.secondary.storage": "Max. secondary (GiB)",
+    "label.max.snapshots": "Max. instantànies",
+    "label.max.templates": "Max. plantilles",
+    "label.max.vms": "Max. MV d'usuari",
+    "label.max.volumes": "Max. Volums",
+    "label.max.vpcs": "Max. VPCs",
+    "label.maximum": "Maximum",
+    "label.may.continue": "Ara pot continuar",
+    "label.md5.checksum": "MD5 checksum",
+    "label.memory": "Memory",
+    "label.memory.allocated": "Memory Allocated",
+    "label.memory.limits": "Memory limits (MiB)",
+    "label.memory.mb": "Memory (in MB)",
+    "label.memory.total": "Memory Total",
+    "label.memory.used": "Memory Used",
+    "label.menu.accounts": "Accounts",
+    "label.menu.alerts": "Alerts",
+    "label.menu.all.accounts": "All Accounts",
+    "label.menu.all.instances": "All Instances",
+    "label.menu.community.isos": "Community ISOs",
+    "label.menu.community.templates": "Community Templates",
+    "label.menu.configuration": "Configuració",
+    "label.menu.dashboard": "Dashboard",
+    "label.menu.destroyed.instances": "Destroyed Instances",
+    "label.menu.disk.offerings": "Disk Offerings",
+    "label.menu.domains": "Domains",
+    "label.menu.events": "Events",
+    "label.menu.featured.isos": "Featured ISOs",
+    "label.menu.featured.templates": "Featured Templates",
+    "label.menu.global.settings": "Global Settings",
+    "label.menu.infrastructure": "Infrastructure",
+    "label.menu.instances": "Instances",
+    "label.menu.ipaddresses": "IP Addresses",
+    "label.menu.isos": "ISOs",
+    "label.menu.my.accounts": "My Accounts",
+    "label.menu.my.instances": "My Instances",
+    "label.menu.my.isos": "My ISOs",
+    "label.menu.my.templates": "My Templates",
+    "label.menu.network": "Network",
+    "label.menu.network.offerings": "Network Offerings",
+    "label.menu.physical.resources": "Physical Resources",
+    "label.menu.regions": "Regions",
+    "label.menu.running.instances": "Running Instances",
+    "label.menu.security.groups": "Security Groups",
+    "label.menu.service.offerings": "Service Offerings",
+    "label.menu.snapshots": "Snapshots",
+    "label.menu.sshkeypair": "SSH KeyPair",
+    "label.menu.stopped.instances": "Stopped Instances",
+    "label.menu.storage": "Storage",
+    "label.menu.system": "System",
+    "label.menu.system.service.offerings": "System Offerings",
+    "label.menu.system.vms": "System VMs",
+    "label.menu.templates": "Templates",
+    "label.menu.virtual.appliances": "Virtual Appliances",
+    "label.menu.virtual.resources": "Virtual Resources",
+    "label.menu.volumes": "Volumes",
+    "label.menu.vpc.offerings": "VPC Offerings",
+    "label.metrics": "Metrics",
+    "label.metrics.allocated": "Allocated",
+    "label.metrics.clusters": "Clusters",
+    "label.metrics.cpu.allocated": "CPU Allocation",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "CPU Usage",
+    "label.metrics.cpu.used.avg": "Used",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "Allocated",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Read",
+    "label.metrics.disk.size": "Size",
+    "label.metrics.disk.storagetype": "Type",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Unallocated",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "Used",
+    "label.metrics.disk.write": "Write",
+    "label.metrics.hosts": "Hosts",
+    "label.metrics.memory.allocated": "Mem Allocation",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Mem Usage",
+    "label.metrics.memory.used.avg": "Used",
+    "label.metrics.name": "Name",
+    "label.metrics.network.read": "Read",
+    "label.metrics.network.usage": "Network Usage",
+    "label.metrics.network.write": "Write",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "Scope",
+    "label.metrics.state": "State",
+    "label.metrics.storagepool": "Storage Pool",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "Migrate instance to",
+    "label.migrate.instance.to.host": "Migrar instància a un altre amfitrió \"Host\"",
+    "label.migrate.instance.to.ps": "Migrar instància a un altra emmagatzematge primari",
+    "label.migrate.lb.vm": "Migrate LB VM",
+    "label.migrate.router.to": "Migrar router a",
+    "label.migrate.systemvm.to": "Migrar MV de sistema a:",
+    "label.migrate.to.host": "Migrate to host",
+    "label.migrate.to.storage": "Migrate to storage",
+    "label.migrate.volume": "Migrate Volume",
+    "label.migrate.volume.to.primary.storage": "Migrate volume to another primary storage",
+    "label.min.instances": "Min Instances",
+    "label.min.past.the.hr": "min past the hr",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "minute(s) past the hour",
+    "label.minutes.past.hour": "minutes(s) past the hour",
+    "label.mode": "Mode",
+    "label.monday": "Monday",
+    "label.monthly": "Monthly",
+    "label.more.templates": "More Templates",
+    "label.move.down.row": "Moure una fila cap a baix",
+    "label.move.to.bottom": "Move to bottom",
+    "label.move.to.top": "Moure a dalt",
+    "label.move.up.row": "Moure una fla cap a dalt",
+    "label.my.account": "My Account",
+    "label.my.network": "La meva xarxa",
+    "label.my.templates": "Les meves plantilles",
+    "label.na": "N/A",
+    "label.name": "Name",
+    "label.name.lower": "name",
+    "label.name.optional": "Name (Optional)",
+    "label.nat.port.range": "NAT Port Range",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Netmask",
+    "label.netscaler.details": "NetScaler details",
+    "label.network": "Network",
+    "label.network.ACL": "Network ACL",
+    "label.network.ACL.total": "Network ACL Total",
+    "label.network.ACLs": "Network ACLs",
+    "label.network.addVM": "Add network to VM",
+    "label.network.cidr": "Network CIDR",
+    "label.network.desc": "Network Desc",
+    "label.network.details": "Network Details",
+    "label.network.device": "Network Device",
+    "label.network.device.type": "Network Device Type",
+    "label.network.domain": "Network Domain",
+    "label.network.domain.text": "Network domain",
+    "label.network.id": "Network ID",
+    "label.network.label.display.for.blank.value": "Use default gateway",
+    "label.network.limits": "Network limits",
+    "label.network.name": "Network Name",
+    "label.network.offering": "Network Offering",
+    "label.network.offering.details": "Network offering details",
+    "label.network.offering.display.text": "Network Offering Display Text",
+    "label.network.offering.id": "Network Offering ID",
+    "label.network.offering.name": "Network Offering Name",
+    "label.network.rate": "Velocitat de xarxa",
+    "label.network.rate.megabytes": "Network Rate (MB/s)",
+    "label.network.read": "Network Read",
+    "label.network.service.providers": "Network Service Providers",
+    "label.network.type": "Network Type",
+    "label.network.write": "Network Write",
+    "label.networking.and.security": "Xarxa i seguretat",
+    "label.networks": "Xarxes",
+    "label.new": "Nou",
+    "label.new.password": "New Password",
+    "label.new.project": "Nou projecte",
+    "label.new.ssh.key.pair": "New SSH Key Pair",
+    "label.new.vm": "Nova MV",
+    "label.next": "Next",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS Server",
+    "label.nfs.storage": "NFS Storage",
+    "label.nic.adapter.type": "Tipus de tarja de xarxa",
+    "label.nicira.controller.address": "Controller Address",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP details",
+    "label.nicira.transportzoneuuid": "Transport Zone Uuid",
+    "label.nics": "NICs",
+    "label.no": "No",
+    "label.no.actions": "No Available Actions",
+    "label.no.alerts": "No Recent Alerts",
+    "label.no.data": "No hi ha dades",
+    "label.no.errors": "No Recent Errors",
+    "label.no.grouping": "(no grouping)",
+    "label.no.isos": "No available ISOs",
+    "label.no.items": "No Available Items",
+    "label.no.security.groups": "No Available Security Groups",
+    "label.no.thanks": "No gràcies",
+    "label.none": "None",
+    "label.not.found": "Not Found",
+    "label.notifications": "Notifications",
+    "label.num.cpu.cores": "# of CPU Cores",
+    "label.number.of.clusters": "Nombre de clústers",
+    "label.number.of.cpu.sockets": "The Number of CPU Sockets",
+    "label.number.of.hosts": "Nombre de Hosts",
+    "label.number.of.pods": "Nombre de racks",
+    "label.number.of.system.vms": "Number of System VMs",
+    "label.number.of.virtual.routers": "Number of Virtual Routers",
+    "label.number.of.zones": "Nombre de zones",
+    "label.numretries": "Number of Retries",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "of month",
+    "label.offer.ha": "Offer HA",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight Controller",
+    "label.opendaylight.controllerdetail": "OpenDaylight Controller Details",
+    "label.opendaylight.controllers": "OpenDaylight Controllers",
+    "label.operator": "Operator",
+    "label.optional": "Optional",
+    "label.order": "Ordre",
+    "label.os.preference": "OS Preference",
+    "label.os.type": "OS Type",
+    "label.other": "Other",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Action",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Password",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Username",
+    "label.override.guest.traffic": "Override Guest-Traffic",
+    "label.override.public.traffic": "Override Public-Traffic",
+    "label.ovm.traffic.label": "OVM traffic label",
+    "label.ovm3.cluster": "Native Clustering",
+    "label.ovm3.pool": "Native Pooling",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "Master Vip IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Owned Public IP Addresses",
+    "label.owner.account": "Owner Account",
+    "label.owner.domain": "Owner Domain",
+    "label.palo.alto.details": "Palo Alto details",
+    "label.parent.domain": "Parent Domain",
+    "label.passive": "Passive",
+    "label.password": "Password",
+    "label.password.enabled": "Password Enabled",
+    "label.password.lower": "password",
+    "label.password.reset.confirm": "Password has been reset to ",
+    "label.path": "Path",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "Persistent ",
+    "label.physical.network": "Physical Network",
+    "label.physical.network.ID": "ID de xarxa física",
+    "label.physical.network.name": "Physical network name",
+    "label.ping.path": "Ping Path",
+    "label.planner.mode": "Planner mode",
+    "label.please.complete.the.following.fields": "Please complete the following fields",
+    "label.please.specify.netscaler.info": "Si us plau doneu informació del NetScaler",
+    "label.please.wait": "Please Wait",
+    "label.plugin.details": "Plugin details",
+    "label.plugins": "Plugins",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod Dedicated",
+    "label.pod.name": "Nom de rack",
+    "label.pods": "Racks",
+    "label.polling.interval.sec": "Polling Interval (in sec)",
+    "label.port": "Port",
+    "label.port.forwarding": "Port Forwarding",
+    "label.port.forwarding.policies": "Pol·lítiques de reenviament de ports",
+    "label.port.range": "Port Range",
+    "label.portable.ip": "Portable IP",
+    "label.portable.ip.range.details": "Portable IP Range details",
+    "label.portable.ip.ranges": "Portable IP Ranges",
+    "label.portable.ips": "Portable IPs",
+    "label.powerstate": "Power State",
+    "label.prev": "Prev",
+    "label.previous": "Anterior",
+    "label.primary.allocated": "Primary Storage Allocated",
+    "label.primary.network": "Primary Network",
+    "label.primary.storage": "Primary Storage",
+    "label.primary.storage.count": "Primary Storage Pools",
+    "label.primary.storage.limits": "Primary Storage limits (GiB)",
+    "label.primary.used": "Primary Storage Used",
+    "label.private.Gateway": "Private Gateway",
+    "label.private.interface": "Private Interface",
+    "label.private.ip": "Private IP Address",
+    "label.private.ip.range": "Private IP Range",
+    "label.private.ips": "Private IP Addresses",
+    "label.private.key": "Private Key",
+    "label.private.network": "Xarxa privada",
+    "label.private.port": "Private Port",
+    "label.private.zone": "Private Zone",
+    "label.privatekey": "PKCS#8 Private Key",
+    "label.profile": "Profile",
+    "label.project": "Projecte",
+    "label.project.dashboard": "Quadre de comandament del projecte",
+    "label.project.id": "ID de projecte",
+    "label.project.invite": "Convidar al projecte",
+    "label.project.name": "Nom del projecte",
+    "label.project.view": "Project View",
+    "label.projects": "Projectes",
+    "label.protocol": "Protocol",
+    "label.protocol.number": "Protocol Number",
+    "label.provider": "Provider",
+    "label.providers": "Proveïdors",
+    "label.public": "Public",
+    "label.public.interface": "Public Interface",
+    "label.public.ip": "Public IP Address",
+    "label.public.ips": "Public IP Addresses",
+    "label.public.key": "Public Key",
+    "label.public.lb": "Public LB",
+    "label.public.load.balancer.provider": "Public Load Balancer Provider",
+    "label.public.network": "Xarxa pública",
+    "label.public.port": "Public Port",
+    "label.public.traffic": "Public traffic",
+    "label.public.traffic.vswitch.name": "Public Traffic vSwitch Name",
+    "label.public.traffic.vswitch.type": "Public Traffic vSwitch Type",
+    "label.public.zone": "Public Zone",
+    "label.purpose": "Purpose",
+    "label.qos.type": "QoS Type",
+    "label.quickview": "Quickview",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Quiet Time (in sec)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "Date",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "End Date",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "All Accounts",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Start Date",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "State",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx user",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "Reboot",
+    "label.recent.errors": "Recent Errors",
+    "label.recover.vm": "Recover VM",
+    "label.redundant.router": "Redundant Router",
+    "label.redundant.router.capability": "Redundant router capability",
+    "label.redundant.state": "Estat redundant",
+    "label.redundant.vpc": "Redundant VPC",
+    "label.refresh": "Refresh",
+    "label.refresh.blades": "Refresh Blades",
+    "label.region": "Region",
+    "label.region.details": "Region details",
+    "label.regionlevelvpc": "Region Level VPC",
+    "label.reinstall.vm": "Reinstall VM",
+    "label.related": "Related",
+    "label.release.account": "Release from Account",
+    "label.release.account.lowercase": "Release from account",
+    "label.release.dedicated.cluster": "Release Dedicated Cluster",
+    "label.release.dedicated.host": "Release Dedicated Host",
+    "label.release.dedicated.pod": "Release Dedicated Pod",
+    "label.release.dedicated.vlan.range": "Release dedicated VLAN range",
+    "label.release.dedicated.zone": "Release Dedicated Zone",
+    "label.remind.later": "Recordeu-m'ho després",
+    "label.remove.ACL": "Remove ACL",
+    "label.remove.egress.rule": "Esborrar regla de sortida",
+    "label.remove.from.load.balancer": "Removing instance from load balancer",
+    "label.remove.ingress.rule": "Esborrar regla d'entrada",
+    "label.remove.ip.range": "Remove IP range",
+    "label.remove.ldap": "Remove LDAP",
+    "label.remove.network.offering": "Remove network offering",
+    "label.remove.pf": "Esborrar regla de reenviament de port",
+    "label.remove.project.account": "Remove account from project",
+    "label.remove.region": "Remove Region",
+    "label.remove.rule": "Esborrar regla",
+    "label.remove.ssh.key.pair": "Remove SSH Key Pair",
+    "label.remove.static.nat.rule": "Esborrar regla de NAT estàtic",
+    "label.remove.static.route": "Remove static route",
+    "label.remove.this.physical.network": "Remove this physical network",
+    "label.remove.tier": "Remove tier",
+    "label.remove.vm.from.lb": "Treure VM de la regla de balanceig de càrrega",
+    "label.remove.vm.load.balancer": "Remove VM from load balancer",
+    "label.remove.vmware.datacenter": "Remove VMware datacenter",
+    "label.remove.vpc": "Remove VPC",
+    "label.remove.vpc.offering": "Remove VPC offering",
+    "label.removing": "Esborrant",
+    "label.removing.user": "Removing User",
+    "label.reource.id": "Resource ID",
+    "label.replace.acl": "Replace ACL",
+    "label.replace.acl.list": "Replace ACL List",
+    "label.required": "Required",
+    "label.requires.upgrade": "Requires Upgrade",
+    "label.reserved.ip.range": "Reserved IP Range",
+    "label.reserved.system.gateway": "Pasarel·la reservada del sistema",
+    "label.reserved.system.ip": "Reserved System IP",
+    "label.reserved.system.netmask": "Màscara reservada del sistema",
+    "label.reset.VPN.connection": "Reset VPN connection",
+    "label.reset.ssh.key.pair": "Reset SSH Key Pair",
+    "label.reset.ssh.key.pair.on.vm": "Reset SSH Key Pair on VM",
+    "label.resetVM": "Reset VM",
+    "label.resize.new.offering.id": "New Offering",
+    "label.resize.new.size": "New Size (GB)",
+    "label.resize.shrink.ok": "Shrink OK",
+    "label.resource": "Resource",
+    "label.resource.limit.exceeded": "Resource Limit Exceeded",
+    "label.resource.limits": "Resource Limits",
+    "label.resource.name": "Resource Name",
+    "label.resource.state": "Resource state",
+    "label.resources": "Resources",
+    "label.response.timeout.in.sec": "Response Timeout (in sec)",
+    "label.restart.network": "Restart network",
+    "label.restart.required": "Restart required",
+    "label.restart.vpc": "Restart VPC",
+    "label.restore": "Restore",
+    "label.retry.interval": "Retry Interval",
+    "label.review": "Review",
+    "label.revoke.project.invite": "Revocar invitació",
+    "label.role": "Role",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Root certificate",
+    "label.root.disk.controller": "Controlador de disc arrel",
+    "label.root.disk.offering": "Root Disk Offering",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "Router VM Scaled Up",
+    "label.routing": "Routing",
+    "label.routing.host": "Routing Host",
+    "label.rule": "Rule",
+    "label.rule.number": "Rule Number",
+    "label.rules": "Rules",
+    "label.running.vms": "Running VMs",
+    "label.s3.access_key": "Access Key",
+    "label.s3.bucket": "Bucket",
+    "label.s3.connection_timeout": "Connection Timeout",
+    "label.s3.endpoint": "Endpoint",
+    "label.s3.max_error_retry": "Max Error Retry",
+    "label.s3.nfs.path": "S3 NFS Path",
+    "label.s3.nfs.server": "S3 NFS Server",
+    "label.s3.secret_key": "Secret Key",
+    "label.s3.socket_timeout": "Socket Timeout",
+    "label.s3.use_https": "Use HTTPS",
+    "label.saml.enable": "Authorize SAML SSO",
+    "label.saml.entity": "Identity Provider",
+    "label.saturday": "Saturday",
+    "label.save": "Save",
+    "label.save.and.continue": "Desa i continua",
+    "label.save.changes": "Save changes",
+    "label.saving.processing": "Saving....",
+    "label.scale.up.policy": "SCALE UP POLICY",
+    "label.scaledown.policy": "ScaleDown Policy",
+    "label.scaleup.policy": "ScaleUp Policy",
+    "label.scope": "Scope",
+    "label.search": "Search",
+    "label.secondary.ips": "Secondary IPs",
+    "label.secondary.isolated.vlan.id": "Secondary Isolated VLAN ID",
+    "label.secondary.staging.store": "Secondary Staging Store",
+    "label.secondary.staging.store.details": "Secondary Staging Store details",
+    "label.secondary.storage": "Secondary Storage",
+    "label.secondary.storage.count": "Secondary Storage Pools",
+    "label.secondary.storage.details": "Secondary storage details",
+    "label.secondary.storage.limits": "Secondary Storage limits (GiB)",
+    "label.secondary.storage.vm": "Secondary storage VM",
+    "label.secondary.used": "Secondary Storage Used",
+    "label.secret.key": "Secret Key",
+    "label.security.group": "Security Group",
+    "label.security.group.name": "Security Group Name",
+    "label.security.groups": "Security Groups",
+    "label.security.groups.enabled": "Security Groups Enabled",
+    "label.select": "Select",
+    "label.select-view": "Sel·lecioni vista",
+    "label.select.a.template": "Sel·leccioni una plantilla",
+    "label.select.a.zone": "Sel·leccioni una zona",
+    "label.select.instance": "Select instance",
+    "label.select.instance.to.attach.volume.to": "Select instance to attach volume to",
+    "label.select.iso.or.template": "Sel·leccioni ISO o plantilla",
+    "label.select.offering": "Select offering",
+    "label.select.project": "Sel·leccionar projecte",
+    "label.select.region": "Select region",
+    "label.select.template": "Select Template",
+    "label.select.tier": "Select Tier",
+    "label.select.vm.for.static.nat": "Select VM for static NAT",
+    "label.sent": "Sent",
+    "label.server": "Server",
+    "label.service.capabilities": "Service Capabilities",
+    "label.service.offering": "Service Offering",
+    "label.service.offering.details": "Service offering details",
+    "label.service.state": "Service State",
+    "label.services": "Services",
+    "label.session.expired": "Session Expired",
+    "label.set.default.NIC": "Set default NIC",
+    "label.set.up.zone.type": "Set up zone type",
+    "label.settings": "Settings",
+    "label.setup": "Configuració",
+    "label.setup.network": "Set up Network",
+    "label.setup.zone": "Set up Zone",
+    "label.shared": "Shared",
+    "label.show.advanced.settings": "Show advanced settings",
+    "label.show.ingress.rule": "Show Ingress Rule",
+    "label.shutdown.provider": "Apagar proveïdor",
+    "label.simplified.chinese.keyboard": "Simplified Chinese keyboard",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Size",
+    "label.skip.guide": "Si heu utilitzat CloudStack abans, ometi aquesta guia",
+    "label.smb.domain": "SMB Domain",
+    "label.smb.password": "SMB Password",
+    "label.smb.username": "SMB Username",
+    "label.snapshot": "Snapshot",
+    "label.snapshot.limits": "Snapshot Limits",
+    "label.snapshot.name": "Snapshot Name",
+    "label.snapshot.s": "Snapshots",
+    "label.snapshot.schedule": "Set up Recurring Snapshot",
+    "label.snapshots": "Snapshots",
+    "label.sockets": "CPU Sockets",
+    "label.source.ip.address": "Source IP Address",
+    "label.source.nat": "Source NAT",
+    "label.source.nat.supported": "SourceNAT Supported",
+    "label.source.port": "Source Port",
+    "label.specify.IP.ranges": "Specify IP ranges",
+    "label.specify.vlan": "Specify VLAN",
+    "label.specify.vxlan": "Specify VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX details",
+    "label.ssh.key.pair": "SSH Key Pair",
+    "label.ssh.key.pair.details": "SSH Key Pair Details",
+    "label.ssh.key.pairs": "SSH Key Pairs",
+    "label.standard.us.keyboard": "Standard (US) keyboard",
+    "label.start.IP": "Start IP",
+    "label.start.lb.vm": "Start LB VM",
+    "label.start.port": "Start Port",
+    "label.start.reserved.system.IP": "Start Reserved system IP",
+    "label.start.vlan": "Start VLAN",
+    "label.start.vxlan": "Start VXLAN",
+    "label.state": "State",
+    "label.static.nat": "Static NAT",
+    "label.static.nat.enabled": "NAT estàtic habilitat",
+    "label.static.nat.to": "Static NAT to",
+    "label.static.nat.vm.details": "Static NAT VM Details",
+    "label.static.routes": "Static Routes",
+    "label.statistics": "Statistics",
+    "label.status": "Status",
+    "label.step.1": "Step 1",
+    "label.step.1.title": "Step 1: <strong>Select a Template</strong>",
+    "label.step.2": "Step 2",
+    "label.step.2.title": "Step 2: <strong>Service Offering</strong>",
+    "label.step.3": "Step 3",
+    "label.step.3.title": "Step 3: <strong id=\"step3_label\">Select a Disk Offering</strong>",
+    "label.step.4": "Step 4",
+    "label.step.4.title": "Step 4: <strong>Network</strong>",
+    "label.step.5": "Step 5",
+    "label.step.5.title": "Step 5: <strong>Review</strong>",
+    "label.stickiness": "Tendència",
+    "label.stickiness.method": "Stickiness method",
+    "label.sticky.cookie-name": "Cookie name",
+    "label.sticky.domain": "Domain",
+    "label.sticky.expire": "Expires",
+    "label.sticky.holdtime": "Hold time",
+    "label.sticky.indirect": "Indirect",
+    "label.sticky.length": "Length",
+    "label.sticky.mode": "Mode",
+    "label.sticky.name": "Sticky Name",
+    "label.sticky.nocache": "No cache",
+    "label.sticky.postonly": "Post only",
+    "label.sticky.prefix": "Prefix",
+    "label.sticky.request-learn": "Request learn",
+    "label.sticky.tablesize": "Table size",
+    "label.stop": "Stop",
+    "label.stop.lb.vm": "Stop LB VM",
+    "label.stopped.vms": "Stopped VMs",
+    "label.storage": "Storage",
+    "label.storage.pool": "Storage Pool",
+    "label.storage.tags": "Storage Tags",
+    "label.storage.traffic": "Tràfic d'emmagatzemament",
+    "label.storage.type": "Storage Type",
+    "label.subdomain.access": "Accés de subdomini",
+    "label.submit": "Submit",
+    "label.submitted.by": "[Submitted by: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Succeeded",
+    "label.sunday": "Sunday",
+    "label.super.cidr.for.guest.networks": "Super CIDR for Guest Networks",
+    "label.supported.services": "Supported Services",
+    "label.supported.source.NAT.type": "Supported Source NAT type",
+    "label.supportsstrechedl2subnet": "Supports Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "Suspendre projecte",
+    "label.switch.type": "Switch Type",
+    "label.system.capacity": "System Capacity",
+    "label.system.offering": "System Offering",
+    "label.system.offering.for.router": "System Offering for Router",
+    "label.system.service.offering": "System Service Offering",
+    "label.system.service.offering.details": "System service offering details",
+    "label.system.vm": "System VM",
+    "label.system.vm.details": "System VM details",
+    "label.system.vm.scaled.up": "System VM Scaled Up",
+    "label.system.vm.type": "System VM Type",
+    "label.system.vms": "System VMs",
+    "label.system.wide.capacity": "System-wide capacity",
+    "label.tag.key": "Tag Key",
+    "label.tag.value": "Tag Value",
+    "label.tagged": "Tagged",
+    "label.tags": "Tags",
+    "label.target.iqn": "Target IQN",
+    "label.task.completed": "Tasca complerta",
+    "label.template": "Template",
+    "label.template.limits": "Template Limits",
+    "label.tftp.root.directory": "Tftp root directory",
+    "label.theme.default": "Default Theme",
+    "label.theme.grey": "Custom - Grey",
+    "label.theme.lightblue": "Custom - Light Blue",
+    "label.threshold": "Threshold",
+    "label.thursday": "Thursday",
+    "label.tier": "Tier",
+    "label.tier.details": "Tier details",
+    "label.time": "Time",
+    "label.time.colon": "Time:",
+    "label.time.zone": "Timezone",
+    "label.timeout": "Timeout",
+    "label.timeout.in.second ": " Timeout (seconds)",
+    "label.timezone": "Timezone",
+    "label.timezone.colon": "Timezone:",
+    "label.token": "Token",
+    "label.total.CPU": "Total de CPU",
+    "label.total.cpu": "Total de CPU",
+    "label.total.hosts": "Total de hosts",
+    "label.total.memory": "Total de RAM",
+    "label.total.of.ip": "Total of IP Addresses",
+    "label.total.of.vm": "Total of VMs",
+    "label.total.storage": "Total d'emmagatzemament",
+    "label.total.virtual.routers": "Total of Virtual Routers",
+    "label.total.virtual.routers.upgrade": "Total of Virtual Routers that require upgrade",
+    "label.total.vms": "Total VMs",
+    "label.traffic.label": "Traffic label",
+    "label.traffic.type": "Traffic Type",
+    "label.traffic.types": "Tipus de tràfics",
+    "label.tuesday": "Tuesday",
+    "label.type": "Type",
+    "label.type.id": "Type ID",
+    "label.type.lower": "type",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK keyboard",
+    "label.unavailable": "Unavailable",
+    "label.unhealthy.threshold": "Unhealthy Threshold",
+    "label.unlimited": "Unlimited",
+    "label.untagged": "Untagged",
+    "label.update.project.resources": "Actualitzar recursos del projecte",
+    "label.update.ssl": " SSL Certificate",
+    "label.update.ssl.cert": " SSL Certificate",
+    "label.updating": "Updating",
+    "label.upgrade.required": "Upgrade is required",
+    "label.upgrade.router.newer.template": "Upgrade Router to Use Newer Template",
+    "label.upload": "Upload",
+    "label.upload.from.local": "Upload from Local",
+    "label.upload.template.from.local": "Upload Template from Local",
+    "label.upload.volume": "Upload volume",
+    "label.upload.volume.from.local": "Upload Volume from Local",
+    "label.upload.volume.from.url": "Upload volume from URL",
+    "label.url": "URL",
+    "label.usage.interface": "Usage Interface",
+    "label.usage.sanity.result": "Usage Sanity Result",
+    "label.usage.server": "Usage Server",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "Use VM IP:",
+    "label.use.vm.ips": "Use VM IPs",
+    "label.used": "Used",
+    "label.user": "User",
+    "label.user.data": "User Data",
+    "label.user.details": "User details",
+    "label.user.vm": "User VM",
+    "label.username": "Username",
+    "label.username.lower": "username",
+    "label.users": "Users",
+    "label.vSwitch.type": "vSwitch Type",
+    "label.value": "Value",
+    "label.vcdcname": "vCenter DC name",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter Cluster",
+    "label.vcenter.datacenter": "vCenter Datacenter",
+    "label.vcenter.datastore": "vCenter Datastore",
+    "label.vcenter.host": "vCenter Host",
+    "label.vcenter.password": "vCenter Password",
+    "label.vcenter.username": "vCenter Username",
+    "label.vcipaddress": "vCenter IP Address",
+    "label.version": "Version",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Max resolution",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs per GPU",
+    "label.vgpu.remaining.capacity": "Remaining capacity",
+    "label.vgpu.type": "vGPU type",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Veure",
+    "label.view.all": "Veure tots",
+    "label.view.console": "Veure consola",
+    "label.view.more": "Veure més",
+    "label.view.secondary.ips": "View secondary IPs",
+    "label.viewing": "Veient",
+    "label.virtual.appliance": "Virtual Appliance",
+    "label.virtual.appliance.details": "Virtual applicance details",
+    "label.virtual.appliances": "Virtual Appliances",
+    "label.virtual.machine": "Virtual Machine",
+    "label.virtual.machines": "Virtual Machines",
+    "label.virtual.network": "Virtual Network",
+    "label.virtual.networking": "Virtual Networking",
+    "label.virtual.router": "Router virtual",
+    "label.virtual.routers": "Virtual Routers",
+    "label.virtual.routers.group.account": "Virtual Routers group by account",
+    "label.virtual.routers.group.cluster": "Virtual Routers group by cluster",
+    "label.virtual.routers.group.pod": "Virtual Routers group by pod",
+    "label.virtual.routers.group.zone": "Virtual Routers group by zone",
+    "label.vlan": "VLAN/VNI",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI Range",
+    "label.vlan.range.details": "VLAN Range details",
+    "label.vlan.ranges": "VLAN Range(s)",
+    "label.vlan.vni.range": "VLAN/VNI Range",
+    "label.vlan.vni.ranges": "VLAN/VNI Range(s)",
+    "label.vm.add": "Add Instance",
+    "label.vm.destroy": "Destroy",
+    "label.vm.display.name": "VM display name",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP Address",
+    "label.vm.name": "VM name",
+    "label.vm.password": "Password of the VM is",
+    "label.vm.reboot": "Reboot",
+    "label.vm.start": "Start",
+    "label.vm.state": "VM state",
+    "label.vm.stop": "Stop",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMs",
+    "label.vmsnapshot": "VM Snapshots",
+    "label.vmsnapshot.current": "isCurrent",
+    "label.vmsnapshot.memory": "Snapshot memory",
+    "label.vmsnapshot.parentname": "Parent",
+    "label.vmsnapshot.type": "Type",
+    "label.vmware.datacenter.id": "VMware datacenter ID",
+    "label.vmware.datacenter.name": "VMware datacenter Name",
+    "label.vmware.datacenter.vcenter": "VMware datacenter vcenter",
+    "label.vmware.traffic.label": "VMware traffic label",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC Devices",
+    "label.volatile": "Volatile",
+    "label.volgroup": "Volume Group",
+    "label.volume": "Volume",
+    "label.volume.details": "Volume details",
+    "label.volume.limits": "Volume Limits",
+    "label.volume.migrated": "Volume migrated",
+    "label.volume.name": "Volume Name",
+    "label.volumes": "Volumes",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Distributed VPC Router",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "VPC Offering",
+    "label.vpc.offering.details": "VPC offering details",
+    "label.vpc.router.details": "VPC Router Details",
+    "label.vpc.supportsregionlevelvpc": "Supports Region Level VPC",
+    "label.vpc.virtual.router": "VPC Virtual Router",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN Customer Gateway",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "Control VLAN ID",
+    "label.vsmpktvlanid": "Packet VLAN ID",
+    "label.vsmstoragevlanid": "Storage VLAN ID",
+    "label.vsphere.managed": "vSphere Managed",
+    "label.vswitch.name": "vSwitch Name",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN Range",
+    "label.waiting": "Waiting",
+    "label.warn": "Warn",
+    "label.warn.upper": "WARN",
+    "label.warning": "Warning",
+    "label.wednesday": "Wednesday",
+    "label.weekly": "Weekly",
+    "label.welcome": "Welcome",
+    "label.welcome.cloud.console": "Welcome to Management Console",
+    "label.what.is.cloudstack": "Que és CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Original XS Version is 6.1+",
+    "label.xenserver.traffic.label": "XenServer traffic label",
+    "label.yes": "Yes",
+    "label.zone": "Zone",
+    "label.zone.dedicated": "Zone Dedicated",
+    "label.zone.details": "Detalls de la zona",
+    "label.zone.id": "Zone ID",
+    "label.zone.lower": "zone",
+    "label.zone.name": "Zone Name",
+    "label.zone.step.1.title": "Step 1: <strong>Select a Network</strong>",
+    "label.zone.step.2.title": "Step 2: <strong>Add a Zone</strong>",
+    "label.zone.step.3.title": "Step 3: <strong>Add a Pod</strong>",
+    "label.zone.step.4.title": "Step 4: <strong>Add an IP range</strong>",
+    "label.zone.type": "Zone Type",
+    "label.zone.wide": "Zone-Wide",
+    "label.zoneWizard.trafficType.guest": "Guest: Traffic between end-user virtual machines",
+    "label.zoneWizard.trafficType.management": "Management: Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs",
+    "label.zoneWizard.trafficType.public": "Public: Traffic between the internet and virtual machines in the cloud.",
+    "label.zoneWizard.trafficType.storage": "Storage: Traffic between primary and secondary storage servers, such as VM templates and snapshots",
+    "label.zones": "Zones",
+    "managed.state": "Managed State",
+    "message.XSTools61plus.update.failed": "Failed to update Original XS Version is 6.1+ field. Error:",
+    "message.Zone.creation.complete": "Zone creation complete",
+    "message.acquire.ip.nic": "Please confirm that you would like to acquire a new secondary IP for this NIC.<br/>NOTE: You need to manually configure the newly-acquired secondary IP inside the virtual machine.",
+    "message.acquire.new.ip": "Si us plau confirmeu que voleu adquirir una nova IP per aquesta xarxa.",
+    "message.acquire.new.ip.vpc": "Please confirm that you would like to acquire a new IP for this VPC.",
+    "message.acquire.public.ip": "Please select a zone from which you want to acquire your new IP from.",
+    "message.action.cancel.maintenance": "Your host has been successfully canceled for maintenance. This process can take up to several minutes.",
+    "message.action.cancel.maintenance.mode": "Please confirm that you want to cancel this maintenance.",
+    "message.action.change.service.warning.for.instance": "Your instance must be stopped before attempting to change its current service offering.",
+    "message.action.change.service.warning.for.router": "Your router must be stopped before attempting to change its current service offering.",
+    "message.action.delete.ISO": "Please confirm that you want to delete this ISO.",
+    "message.action.delete.ISO.for.all.zones": "The ISO is used by all zones. Please confirm that you want to delete it from all zones.",
+    "message.action.delete.cluster": "Please confirm that you want to delete this cluster.",
+    "message.action.delete.disk.offering": "Please confirm that you want to delete this disk offering.",
+    "message.action.delete.domain": "Please confirm that you want to delete this domain.",
+    "message.action.delete.external.firewall": "Please confirm that you would like to remove this external firewall. Warning: If you are planning to add back the same external firewall, you must reset usage data on the device.",
+    "message.action.delete.external.load.balancer": "Please confirm that you would like to remove this external load balancer. Warning: If you are planning to add back the same external load balancer, you must reset usage data on the device.",
+    "message.action.delete.ingress.rule": "Please confirm that you want to delete this ingress rule.",
+    "message.action.delete.network": "Please confirm that you want to delete this network.",
+    "message.action.delete.nexusVswitch": "Please confirm that you want to delete this nexus 1000v",
+    "message.action.delete.nic": "Please confirm that want to remove this NIC, which will also remove the associated network from the VM.",
+    "message.action.delete.physical.network": "Please confirm that you want to delete this physical network",
+    "message.action.delete.pod": "Please confirm that you want to delete this pod.",
+    "message.action.delete.primary.storage": "Please confirm that you want to delete this primary storage.",
+    "message.action.delete.secondary.storage": "Please confirm that you want to delete this secondary storage.",
+    "message.action.delete.security.group": "Please confirm that you want to delete this security group.",
+    "message.action.delete.service.offering": "Please confirm that you want to delete this service offering.",
+    "message.action.delete.snapshot": "Please confirm that you want to delete this snapshot.",
+    "message.action.delete.system.service.offering": "Please confirm that you want to delete this system service offering.",
+    "message.action.delete.template": "Please confirm that you want to delete this template.",
+    "message.action.delete.template.for.all.zones": "The template is used by all zones. Please confirm that you want to delete it from all zones.",
+    "message.action.delete.volume": "Please confirm that you want to delete this volume.",
+    "message.action.delete.zone": "Please confirm that you want to delete this zone.",
+    "message.action.destroy.instance": "Please confirm that you want to destroy this instance.",
+    "message.action.destroy.systemvm": "Please confirm that you want to destroy this System VM.",
+    "message.action.disable.cluster": "Please confirm that you want to disable this cluster.",
+    "message.action.disable.nexusVswitch": "Please confirm that you want to disable this nexus 1000v",
+    "message.action.disable.physical.network": "Please confirm that you want to disable this physical network.",
+    "message.action.disable.pod": "Please confirm that you want to disable this pod.",
+    "message.action.disable.static.NAT": "Please confirm that you want to disable static NAT.",
+    "message.action.disable.zone": "Please confirm that you want to disable this zone.",
+    "message.action.download.iso": "Si us plau confirmeu que voleu descarregar aquesta ISO.",
+    "message.action.download.template": "Si us plau confirmeu que voleu descarregar aquesta plantilla.",
+    "message.action.downloading.template": "Downloading template.",
+    "message.action.enable.cluster": "Please confirm that you want to enable this cluster.",
+    "message.action.enable.maintenance": "Your host has been successfully prepared for maintenance.  This process can take up to several minutes or longer depending on how many VMs are currently on this host.",
+    "message.action.enable.nexusVswitch": "Please confirm that you want to enable this nexus 1000v",
+    "message.action.enable.physical.network": "Please confirm that you want to enable this physical network.",
+    "message.action.enable.pod": "Please confirm that you want to enable this pod.",
+    "message.action.enable.zone": "Please confirm that you want to enable this zone.",
+    "message.action.expunge.instance": "Please confirm that you want to expunge this instance.",
+    "message.action.force.reconnect": "Your host has been successfully forced to reconnect.  This process can take up to several minutes.",
+    "message.action.host.enable.maintenance.mode": "Enabling maintenance mode will cause a live migration of all running instances on this host to any available host.",
+    "message.action.instance.reset.password": "Please confirm that you want to change the ROOT password for this virtual machine.",
+    "message.action.manage.cluster": "Please confirm that you want to manage the cluster.",
+    "message.action.primarystorage.enable.maintenance.mode": "Warning: placing the primary storage into maintenance mode will cause all VMs using volumes from it to be stopped.  Do you want to continue?",
+    "message.action.reboot.instance": "Please confirm that you want to reboot this instance.",
+    "message.action.reboot.router": "All services provided by this virtual router will be interrupted. Please confirm that you want to reboot this router.",
+    "message.action.reboot.systemvm": "Please confirm that you want to reboot this system VM.",
+    "message.action.release.ip": "Please confirm that you want to release this IP.",
+    "message.action.remove.host": "Please confirm that you want to remove this host.",
+    "message.action.reset.password.off": "Your instance currently does not support this feature.",
+    "message.action.reset.password.warning": "Your instance must be stopped before attempting to change its current password.",
+    "message.action.restore.instance": "Please confirm that you want to restore this instance.",
+    "message.action.revert.snapshot": "Please confirm that you want to revert the owning volume to this snapshot.",
+    "message.action.start.instance": "Please confirm that you want to start this instance.",
+    "message.action.start.router": "Please confirm that you want to start this router.",
+    "message.action.start.systemvm": "Please confirm that you want to start this system VM.",
+    "message.action.stop.instance": "Please confirm that you want to stop this instance.",
+    "message.action.stop.router": "All services provided by this virtual router will be interrupted. Please confirm that you want to stop this router.",
+    "message.action.stop.systemvm": "Please confirm that you want to stop this system VM.",
+    "message.action.take.snapshot": "Please confirm that you want to take a snapshot of this volume.",
+    "message.action.unmanage.cluster": "Please confirm that you want to unmanage the cluster.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Please confirm that you want to delete this VM snapshot.",
+    "message.action.vmsnapshot.revert": "Revert VM snapshot",
+    "message.activate.project": "Esteu segurs d'activar aquest projecte?",
+    "message.add.VPN.gateway": "Please confirm that you want to add a VPN Gateway",
+    "message.add.cluster": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Please specify the following parameters to add a new disk offering",
+    "message.add.domain": "Si us plau especifiqueu el sub-domini que voleu crear sota aquest domini",
+    "message.add.firewall": "Add a firewall to zone",
+    "message.add.guest.network": "Si us plau confirmeu que voleu afegir una xarxa per a MVs",
+    "message.add.host": "Please specify the following parameters to add a new host",
+    "message.add.ip.range": "Add an IP range to public network in zone",
+    "message.add.ip.range.direct.network": "Add an IP range to direct network <b><span id=\"directnetwork_name\"></span></b> in zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Add an IP range to pod: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Add a load balancer to zone",
+    "message.add.load.balancer.under.ip": "The load balancer rule has been added under IP:",
+    "message.add.network": "Add a new network for zone: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Please specify the information to add a new gateway to this VPC.",
+    "message.add.pod": "Add a new pod for zone <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.",
+    "message.add.primary": "Please specify the following parameters to add a new primary storage",
+    "message.add.primary.storage": "Add a new Primary Storage for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Please specify the required information to add a new region.",
+    "message.add.secondary.storage": "Add a new storage for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Please fill in the following data to add a new compute offering.",
+    "message.add.system.service.offering": "Please fill in the following data to add a new system service offering.",
+    "message.add.template": "Please enter the following data to create your new template",
+    "message.add.volume": "Please fill in the following data to add a new volume.",
+    "message.added.new.nuage.vsp.controller": "Added new Nuage Vsp Controller",
+    "message.added.vpc.offering": "Added VPC offering",
+    "message.adding.Netscaler.device": "Adding Netscaler device",
+    "message.adding.Netscaler.provider": "Adding Netscaler provider",
+    "message.adding.host": "Adding host",
+    "message.additional.networks.desc": "Please select additional network(s) that your virtual instance will be connected to.",
+    "message.admin.guide.read": "For VMware-based VMs, please read the dynamic scaling section in the admin guide before scaling. Would you like to continue?,",
+    "message.advanced.mode.desc": "Choose this network model if you wish to enable VLAN support.  This network model provides the most flexibility in allowing administrators to provide custom network offerings such as providing firewall, vpn, or load balancer support as well as enabling direct vs virtual networking.",
+    "message.advanced.security.group": "Choose this if you wish to use security groups to provide guest VM isolation.",
+    "message.advanced.virtual": "Choose this if you wish to use zone-wide VLANs to provide guest VM isolation.",
+    "message.after.enable.s3": "S3-backed Secondary Storage configured. Note: When you leave this page, you will not be able to re-configure S3 again.",
+    "message.after.enable.swift": "Swift configurat. Nota: Quan abandoneu aquesta pàgina, no sereu capaços de reconfigurar Swift de nou.",
+    "message.alert.state.detected": "Estat d'alerta detectat",
+    "message.allow.vpn.access": "Please enter a username and password of the user that you want to allow VPN access.",
+    "message.apply.snapshot.policy": "You have successfully updated your current snapshot policy.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Please confirm that you want to attach the ISO to this virtual instance.",
+    "message.attach.volume": "Please fill in the following data to attach a new volume. If you are attaching a disk volume to a Windows based virtual machine, you will need to reboot the instance to see the attached disk.",
+    "message.basic.mode.desc": "Choose this network model if you do <b>*<u>not</u>*</b> want to enable any VLAN support.  All virtual instances created under this network model will be assigned an IP directly from the network and security groups are used to provide security and segregation.",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "Please confirm that you wish to change the service offering of this virtual instance.",
+    "message.change.password": "Si us plau, canvieu la contrasenya.",
+    "message.cluster.dedicated": "Cluster Dedicated",
+    "message.cluster.dedication.released": "Cluster dedication released",
+    "message.configure.all.traffic.types": "You have multiple physical networks; please configure labels for each traffic type by clicking on the Edit button.",
+    "message.configure.firewall.rules.allow.traffic": "Configure the rules to allow Traffic",
+    "message.configure.firewall.rules.block.traffic": "Configure the rules to block Traffic",
+    "message.configure.ldap": "Please confirm you would like to configure LDAP.",
+    "message.configuring.guest.traffic": "Configuring guest traffic",
+    "message.configuring.physical.networks": "Configuring physical networks",
+    "message.configuring.public.traffic": "Configuring public traffic",
+    "message.configuring.storage.traffic": "Configuring storage traffic",
+    "message.confirm.action.force.reconnect": "Please confirm that you want to force reconnect this host.",
+    "message.confirm.add.vnmc.provider": "Please confirm you would like to add the VNMC provider.",
+    "message.confirm.archive.alert": "Please confirm that you want to archive this alert.",
+    "message.confirm.archive.event": "Please confirm that you want to archive this event.",
+    "message.confirm.archive.selected.alerts": "Please confirm you would like to archive the selected alerts",
+    "message.confirm.archive.selected.events": "Please confirm you would like to archive the selected events",
+    "message.confirm.attach.disk": "Are you sure you want to attach disk?",
+    "message.confirm.create.volume": "Are you sure you want to create volume?",
+    "message.confirm.current.guest.CIDR.unchanged": "Do you want to keep the current guest network CIDR unchanged?",
+    "message.confirm.dedicate.cluster.domain.account": "Do you really want to dedicate this cluster to a domain/account? ",
+    "message.confirm.dedicate.host.domain.account": "Do you really want to dedicate this host to a domain/account? ",
+    "message.confirm.dedicate.pod.domain.account": "Do you really want to dedicate this pod to a domain/account? ",
+    "message.confirm.dedicate.zone": "Do you really want to dedicate this zone to a domain/account?",
+    "message.confirm.delete.BigSwitchBcf": "Please confirm that you would like to delete this BigSwitch BCF Controller",
+    "message.confirm.delete.BrocadeVcs": "Please confirm that you would like to delete Brocade Vcs Switch",
+    "message.confirm.delete.F5": "Si us plau confirmeu que voleu esborrar l'F5",
+    "message.confirm.delete.NetScaler": "Si us plau confirmeu que voleu esborrar el NetScaler",
+    "message.confirm.delete.NuageVsp": "Please confirm that you would like to delete Nuage Virtualized Services Directory",
+    "message.confirm.delete.PA": "Please confirm that you would like to delete Palo Alto",
+    "message.confirm.delete.SRX": "Si us plau confirmeu que voleu esborrar l'SRX",
+    "message.confirm.delete.acl.list": "Are you sure you want to delete this ACL list?",
+    "message.confirm.delete.alert": "Are you sure you want to delete this alert ?",
+    "message.confirm.delete.baremetal.rack.configuration": "Please confirm that you want to delete Baremetal Rack Configuration.",
+    "message.confirm.delete.ciscoASA1000v": "Please confirm you want to delete CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Please confirm you want to delete CiscoVNMC resource",
+    "message.confirm.delete.internal.lb": "Please confirm you want to delete Internal LB",
+    "message.confirm.delete.secondary.staging.store": "Please confirm you want to delete Secondary Staging Store.",
+    "message.confirm.delete.ucs.manager": "Please confirm that you want to delete UCS Manager",
+    "message.confirm.destroy.router": "Si us plau confirmeu que voleu destruir aquest router",
+    "message.confirm.disable.host": "Please confirm that you want to disable the host",
+    "message.confirm.disable.network.offering": "Are you sure you want to disable this network offering?",
+    "message.confirm.disable.provider": "Si us plau confirmeu que voleu deshabilitar aquest proveïdor",
+    "message.confirm.disable.vnmc.provider": "Please confirm you would like to disable the VNMC provider.",
+    "message.confirm.disable.vpc.offering": "Are you sure you want to disable this VPC offering?",
+    "message.confirm.enable.host": "Please confirm that you want to enable the host",
+    "message.confirm.enable.network.offering": "Are you sure you want to enable this network offering?",
+    "message.confirm.enable.provider": "Si us plau confirmeu que voleu habilitar aquest proveïdor",
+    "message.confirm.enable.vnmc.provider": "Please confirm you would like to enable the VNMC provider.",
+    "message.confirm.enable.vpc.offering": "Are you sure you want to enable this VPC offering?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Si us plau confirmeu que voleu unir-vos al projecte.",
+    "message.confirm.migrate.volume": "Do you want to migrate this volume?",
+    "message.confirm.refresh.blades": "Please confirm that you want to refresh blades.",
+    "message.confirm.release.dedicate.vlan.range": "Please confirm you want to release dedicated VLAN range",
+    "message.confirm.release.dedicated.cluster": "Do you want to release this dedicated cluster ?",
+    "message.confirm.release.dedicated.host": "Do you want to release this dedicated host ?",
+    "message.confirm.release.dedicated.pod": "Do you want to release this dedicated pod ?",
+    "message.confirm.release.dedicated.zone": "Do you want to release this dedicated zone ? ",
+    "message.confirm.remove.IP.range": "Please confirm that you would like to remove this IP range.",
+    "message.confirm.remove.event": "Are you sure you want to remove this event?",
+    "message.confirm.remove.load.balancer": "Please confirm you want to remove VM from load balancer",
+    "message.confirm.remove.network.offering": "Are you sure you want to remove this network offering?",
+    "message.confirm.remove.selected.alerts": "Please confirm you would like to remove the selected alerts",
+    "message.confirm.remove.selected.events": "Please confirm you would like to remove the selected events",
+    "message.confirm.remove.vmware.datacenter": "Please confirm you want to remove VMware datacenter",
+    "message.confirm.remove.vpc.offering": "Are you sure you want to remove this VPC offering?",
+    "message.confirm.replace.acl.new.one": "Do you want to replace the ACL with a new one?",
+    "message.confirm.scale.up.router.vm": "Do you really want to scale up the Router VM ?",
+    "message.confirm.scale.up.system.vm": "Do you really want to scale up the system VM ?",
+    "message.confirm.shutdown.provider": "Si us plau confirmeu que voleu apagar aquest proveïdor",
+    "message.confirm.start.lb.vm": "Please confirm you want to start LB VM",
+    "message.confirm.stop.lb.vm": "Please confirm you want to stop LB VM",
+    "message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template",
+    "message.confirm.upgrade.routers.account.newtemplate": "Please confirm that you want to upgrade all routers in this account to use newer template",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Please confirm that you want to upgrade all routers in this cluster to use newer template",
+    "message.confirm.upgrade.routers.newtemplate": "Please confirm that you want to upgrade all routers in this zone to use newer template",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Please confirm that you want to upgrade all routers in this pod to use newer template",
+    "message.copy.iso.confirm": "Please confirm that you wish to copy your ISO to",
+    "message.copy.template": "Copy template <b id=\"copy_template_name_text\">XXX</b> from zone <b id=\"copy_template_source_zone_text\"></b> to",
+    "message.copy.template.confirm": "Are you sure you want to copy template?",
+    "message.create.template": "Are you sure you want to create template?",
+    "message.create.template.vm": "Create VM from template <b id=\"p_name\"></b>",
+    "message.create.template.volume": "Please specify the following information before creating a template of your disk volume: <b><span id=\"volume_name\"></span></b>. Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.creating.cluster": "Creating cluster",
+    "message.creating.guest.network": "Creating guest network",
+    "message.creating.physical.networks": "Creating physical networks",
+    "message.creating.pod": "Creating pod",
+    "message.creating.primary.storage": "Creating primary storage",
+    "message.creating.secondary.storage": "Creating secondary storage",
+    "message.creating.systemVM": "Creating system VMs (this may take a while)",
+    "message.creating.zone": "Creating zone",
+    "message.decline.invitation": "Esteu segurs de declinar aquesta invitació per al projecte?",
+    "message.dedicate.zone": "Dedicating zone",
+    "message.dedicated.zone.released": "Zone dedication released",
+    "message.delete.VPN.connection": "Please confirm that you want to delete VPN connection",
+    "message.delete.VPN.customer.gateway": "Please confirm that you want to delete this VPN Customer Gateway",
+    "message.delete.VPN.gateway": "Please confirm that you want to delete this VPN Gateway",
+    "message.delete.account": "Please confirm that you want to delete this account.",
+    "message.delete.affinity.group": "Please confirm that you would like to remove this affinity group.",
+    "message.delete.gateway": "Please confirm you want to delete the gateway",
+    "message.delete.project": "Esteu segurs d'eliminar el projecte?",
+    "message.delete.user": "Si us plau confirmeu que voleu esborrar aquest usuari.",
+    "message.desc.add.new.lb.sticky.rule": "Add new LB sticky rule",
+    "message.desc.advanced.zone": "For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.",
+    "message.desc.basic.zone": "Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering).",
+    "message.desc.cluster": "Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.",
+    "message.desc.create.ssh.key.pair": "Please fill in the following data to create or register a ssh key pair.<br><br>(1) If public key is set, CloudStack will register the public key. You can use it through your private key.<br><br>(2) If public key is not set, CloudStack will create a new SSH Key pair. In this case, please copy and save the private key. CloudStack will not keep it.<br>",
+    "message.desc.created.ssh.key.pair": "Created a SSH Key Pair.",
+    "message.desc.host": "Each cluster must contain at least one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.",
+    "message.desc.primary.storage": "Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.",
+    "message.desc.reset.ssh.key.pair": "Please specify a ssh key pair that you would like to add to this VM. Please note the root password will be changed by this operation if password is enabled.",
+    "message.desc.secondary.storage": "Each zone must have at least one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.",
+    "message.desc.zone": "A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.",
+    "message.detach.disk": "Are you sure you want to detach this disk?",
+    "message.detach.iso.confirm": "Please confirm that you want to detach the ISO from this virtual instance.",
+    "message.disable.account": "Please confirm that you want to disable this account.  By disabling the account, all users for this account will no longer have access to their cloud resources.  All running virtual machines will be immediately shut down.",
+    "message.disable.snapshot.policy": "You have successfully disabled your current snapshot policy.",
+    "message.disable.user": "Si us plao confirmeu que voleu deshabilitar aquest usuari.",
+    "message.disable.vpn": "¿Esteu segurs de deshabilitar la VPN?",
+    "message.disable.vpn.access": "Please confirm that you want to disable Remote Access VPN.",
+    "message.disabling.network.offering": "Disabling network offering",
+    "message.disabling.vpc.offering": "Disabling VPC offering",
+    "message.disallowed.characters": "Disallowed characters: <,>",
+    "message.download.ISO": "Please click <a href=\"#\">00000</a> to download ISO",
+    "message.download.template": "Please click <a href=\"#\">00000</a> to download template",
+    "message.download.volume": "Please click <a href=\"#\">00000</a> to download volume",
+    "message.download.volume.confirm": "Please confirm that you want to download this volume.",
+    "message.edit.account": "Editar (\"-1\" indica que no hi ha limit en la quantitat de recursos a crear)",
+    "message.edit.confirm": "Please confirm your changes before clicking \"Save\".",
+    "message.edit.limits": "Please specify limits to the following resources.  A \"-1\" indicates no limit to the amount of resources create.",
+    "message.edit.traffic.type": "Please specify the traffic label you want associated with this traffic type.",
+    "message.enable.account": "Please confirm that you want to enable this account.",
+    "message.enable.user": "Si us plau confirmeu que voleu habilitar aquest usuari.",
+    "message.enable.vpn": "Si us plau confirmeu que voleu habilitar l'accés VPN per aquesta adreça IP",
+    "message.enable.vpn.access": "VPN is currently disabled for this IP Address.  Would you like to enable VPN access?",
+    "message.enabled.vpn": "Your Remote Access VPN is currently enabled and can be accessed via the IP",
+    "message.enabled.vpn.ip.sec": "Your IPSec pre-shared key is",
+    "message.enabling.network.offering": "Enabling network offering",
+    "message.enabling.security.group.provider": "Enabling Security Group provider",
+    "message.enabling.vpc.offering": "Enabling VPC offering",
+    "message.enabling.zone": "Enabling zone",
+    "message.enabling.zone.dots": "Enabling zone...",
+    "message.enter.seperated.list.multiple.cidrs": "Please enter a comma separated list of CIDRs if more than one",
+    "message.enter.token": "Please enter the token that you were given in your invite e-mail.",
+    "message.generate.keys": "Si us plau confirmeu que voleu generar noves claus per aquest usuari.",
+    "message.gslb.delete.confirm": "Please confirm you want to delete this GSLB",
+    "message.gslb.lb.remove.confirm": "Please confirm you want to remove load balancing from GSLB",
+    "message.guest.traffic.in.advanced.zone": "Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.",
+    "message.guest.traffic.in.basic.zone": "Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.",
+    "message.host.dedicated": "Host Dedicated",
+    "message.host.dedication.released": "Host dedication released",
+    "message.installWizard.click.retry": "Feu clic al botó per tornar a intentar l'inici.",
+    "message.installWizard.copy.whatIsACluster": "A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack&#8482; deployment. Clusters are contained within pods, and pods are contained within zones.<br/><br/>CloudStack&#8482; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster.",
+    "message.installWizard.copy.whatIsAHost": "A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer or KVM.<br/><br/>The host is the smallest organizational unit within a CloudStack&#8482; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones.",
+    "message.installWizard.copy.whatIsAPod": "A pod often represents a single rack. Hosts in the same pod are in the same subnet.<br/><br/>A pod is the second-largest organizational unit within a CloudStack&#8482; deployment. Pods are contained within zones. Each zone can contain one or more pods; in the Basic Installation, you will have just one pod in your zone.",
+    "message.installWizard.copy.whatIsAZone": "A zone is the largest organizational unit within a CloudStack&#8482; deployment. A zone typically corresponds to a single datacenter, although it is permissible to have multiple zones in a datacenter. The benefit of organizing infrastructure into zones is to provide physical isolation and redundancy. For example, each zone can have its own power supply and network uplink, and the zones can be widely separated geographically (though this is not required).",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482 is a software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. CloudStack&#8482 manages the network, storage, and compute nodes that make up a cloud infrastructure. Use CloudStack&#8482 to deploy, manage, and configure cloud computing environments.<br/><br/>Extending beyond individual virtual machine images running on commodity hardware, CloudStack&#8482 provides a turnkey cloud infrastructure software stack for delivering virtual datacenters as a service - delivering all of the essential components to build, deploy, and manage multi-tier and multi-tenant cloud applications. Both open-source and Premium versions are available, with the open-source version offering nearly identical features.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "A CloudStack&#8482; cloud infrastructure makes use of two types of storage: primary storage and secondary storage. Both of these can be iSCSI or NFS servers, or localdisk.<br/><br/><strong>Primary storage</strong> is associated with a cluster, and it stores the disk volumes of each guest VM for all the VMs running on hosts in that cluster. The primary storage server is typically located close to the hosts.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "L'emmagatzemament secundari s'associa amb una zona, i emmagatzema el següent:<ul><li>Plantilles - Imatges de SO que es poden fer servir per arrencar MVs i poden incloure altra informació de configuració, com ara aplicacions instal·lades</li><li>Imatges ISO - Imatges de SO que poden ser arrencables o no</li><li>Snapshots de disc - copies guardades de dades de MV que poden usar-se per recuperació de dades o crear altres plantilles</ul>",
+    "message.installWizard.now.building": "Now building your cloud...",
+    "message.installWizard.tooltip.addCluster.name": "Un nom per al cluster. Pot ser un text de la seva elecció i no utilitzat per CloudStack.",
+    "message.installWizard.tooltip.addHost.hostname": "El nom DNS o adreça de l'amfitrió \"host\".",
+    "message.installWizard.tooltip.addHost.password": "Aquesta és la contrasenya per a l'usuari del d'amunt (des de la instal·lació de XenServer).",
+    "message.installWizard.tooltip.addHost.username": "Normalment root",
+    "message.installWizard.tooltip.addPod.name": "Un nom per al pod",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Aquest és el rang IP a la xarxa privada que el CloudStack fa servir per administrar MVs per al Secondary Storage i Proxy de consoles. Aquestes IP es prenen de la mateixa sub-xarxa que els servidors de virtualització.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "La passarel·la per als amfitrions en aquest pot.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "La màscara de xarxa en ús en la subxarxa dels clients a utilitzar",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Aquest és el rang IP a la xarxa privada que el CloudStack fa servir per administrar MVs per al Secondary Storage i Proxy de consoles. Aquestes IP es prenen de la mateixa sub-xarxa que els servidors de virtualització.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "El nom per al dispositiu d'emmagatzematge",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(per a NFS) A NFS, aquest és el camí exportat des del servidor. Camí (per SharedMountPoint). Amb KVM aquest és el camí a cada host on es munta el emmagatzemament primari. Per exemple, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(per NFS, iSCSI, o PreSetup) La adreça IP o nom DNS del dispositiu d'emmagatzematge.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "L'adreça IP del servidor NFS que allotja l'emmagatzematge secundari",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "La ruta d'exportació, que es troba en el servidor que s'ha especificat anteriorment",
+    "message.installWizard.tooltip.addZone.dns1": "These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.dns2": "These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.internaldns1": "These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.internaldns2": "These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.name": "A name for the zone",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "Una descripció de la xarxa",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "La passarel·la que els convidats han d'utilitzar",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "La màscara de xarxa en ús en la subxarxa que els clients han d'utilitzar",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Un nom per a la teva xarxa",
+    "message.instance.scaled.up.confirm": "Do you really want to scale Up your instance ?",
+    "message.instanceWizard.noTemplates": "No teniu cap plantilla disponible; si us plau afegiu una plantilla disponible i torneu a usar l'assistent.",
+    "message.ip.address.changed": "Your IP addresses may have changed; would you like to refresh the listing? Note that in this case the details pane will close.",
+    "message.iso.desc": "Disc image containing data or bootable media for OS",
+    "message.join.project": "Us heu unit a un projecte. Si us pla canvieu a vista de projecte per veure el projecte.",
+    "message.launch.vm.on.private.network": "Do you wish to launch your instance on your own private dedicated network?",
+    "message.launch.zone": "Zone is ready to launch; please proceed to the next step.",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "Enable autosync for this domain in LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "Please confirm that you want to lock this account.  By locking the account, all users for this account will no longer be able to manage their cloud resources.  Existing resources can still be accessed.",
+    "message.migrate.instance.confirm": "Please confirm the host you wish to migrate the virtual instance to.",
+    "message.migrate.instance.to.host": "Si us plau, confirmi que vol migrar la instància a un altra  amfitrió \"host\"",
+    "message.migrate.instance.to.ps": "Si us plau, confirmi que vol migrar la instància a un altra emmagatzematge primari.",
+    "message.migrate.router.confirm": "Si us plau confirmeu que voleu migrar el router a:",
+    "message.migrate.systemvm.confirm": "Si us plau confirmeu que voleu migrar la MV de sistema a:",
+    "message.migrate.volume": "Please confirm that you want to migrate volume to another primary storage.",
+    "message.network.addVM.desc": "Please specify the network that you would like to add this VM to. A new NIC will be added for this network.",
+    "message.network.addVMNIC": "Please confirm that you would like to add a new VM NIC for this network.",
+    "message.network.remote.access.vpn.configuration": "Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.",
+    "message.new.user": "Specify the following to add a new user to the account",
+    "message.no.affinity.groups": "You do not have any affinity groups. Please continue to the next step.",
+    "message.no.host.available": "No Hosts are available for Migration",
+    "message.no.network.support": "Your selected hypervisor, vSphere, does not have any additional network features.  Please continue to step 5.",
+    "message.no.network.support.configuration.not.true": "You do not have any zone that has security group enabled. Thus, no additional network features.  Please continue to step 5.",
+    "message.no.projects": "No teniu cap projecte.<br/>Si us plau creeu-ne un des de la secció de projecte.",
+    "message.no.projects.adminOnly": "No teniu cap projecte.<br/>Si us plau demaneu a l'administrador que us en crei un.",
+    "message.number.clusters": "<h2><span> # of </span> Clusters</h2>",
+    "message.number.hosts": "<h2><span> # of </span> Hosts</h2>",
+    "message.number.pods": "<h2><span> # of </span> Pods</h2>",
+    "message.number.storage": "<h2><span> # of </span> Primary Storage Volumes</h2>",
+    "message.number.zones": "<h2><span> # of </span> Zones</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "Password has been reset to",
+    "message.password.of.the.vm.has.been.reset.to": "Password of the VM has been reset to",
+    "message.pending.projects.1": "Teniu invitacions pendents.",
+    "message.pending.projects.2": "Per veure, si us plau aneu a la secció de projectes, i sel·leccioneu invitacions al desplegable.",
+    "message.please.add.at.lease.one.traffic.range": "Please add at least one traffic range.",
+    "message.please.confirm.remove.ssh.key.pair": "Please confirm that you want to remove this SSH Key Pair",
+    "message.please.proceed": "Please proceed to the next step.",
+    "message.please.select.a.configuration.for.your.zone": "Please select a configuration for your zone.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Please select a different public and management network before removing",
+    "message.please.select.networks": "Please select networks for your virtual machine.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Please select a ssh key pair you want this VM to use:",
+    "message.please.wait.while.zone.is.being.created": "Please wait while your zone is being created; this may take a while...",
+    "message.pod.dedication.released": "Pod dedication released",
+    "message.portable.ip.delete.confirm": "Please confirm you want to delete Portable IP Range",
+    "message.project.invite.sent": "Invitació enviada a l'usuari; serà afegit al projecte quan accepti l'invitació",
+    "message.public.traffic.in.advanced.zone": "Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.",
+    "message.public.traffic.in.basic.zone": "Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.",
+    "message.question.are.you.sure.you.want.to.add": "Are you sure you want to add",
+    "message.read.admin.guide.scaling.up": "Please read the dynamic scaling section in the admin guide before scaling up.",
+    "message.recover.vm": "Please confirm that you would like to recover this VM.",
+    "message.redirecting.region": "Redirecting to region...",
+    "message.reinstall.vm": "NOTE: Proceed with caution. This will cause the VM to be reinstalled from the template; data on the root disk will be lost. Extra data volumes, if any, will not be touched.",
+    "message.remove.ldap": "Are you sure you want to delete the LDAP configuration?",
+    "message.remove.region": "Are you sure you want to remove this region from this management server?",
+    "message.remove.vpc": "Please confirm that you want to remove the VPC",
+    "message.remove.vpn.access": "Please confirm that you want to remove VPN access from the following user.",
+    "message.removed.ssh.key.pair": "Removed a SSH Key Pair",
+    "message.reset.VPN.connection": "Please confirm that you want to reset VPN connection",
+    "message.reset.password.warning.notPasswordEnabled": "The template of this instance was created without password enabled",
+    "message.reset.password.warning.notStopped": "Your instance must be stopped before attempting to change its current password",
+    "message.restart.mgmt.server": "Please restart your management server(s) for your new settings to take effect.",
+    "message.restart.mgmt.usage.server": "Please restart your management server(s) and usage server(s) for your new settings to take effect.",
+    "message.restart.network": "All services provided by this network will be interrupted. Please confirm that you want to restart this network.",
+    "message.restart.vpc": "Please confirm that you want to restart the VPC",
+    "message.restart.vpc.remark": "Please confirm that you want to restart the VPC <p><small><i>Remark: making a non-redundant VPC redundant will force a clean up. The networks will not be available for a couple of minutes</i>.</small></p>",
+    "message.restoreVM": "Do you want to restore the VM ?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(Use <strong>Ctrl-click</strong> to select all applicable security groups)",
+    "message.select.a.zone": "A zone typically corresponds to a single datacenter. Multiple zones help make the cloud more reliable by providing physical isolation and redundancy.",
+    "message.select.affinity.groups": "Please select any affinity groups you want this VM to belong to:",
+    "message.select.instance": "Please select an instance.",
+    "message.select.iso": "Please select an ISO for your new virtual instance.",
+    "message.select.item": "Si us plau sel·leccioneu un article",
+    "message.select.security.groups": "Please select security group(s) for your new VM",
+    "message.select.template": "Please select a template for your new virtual instance.",
+    "message.select.tier": "Please select a tier",
+    "message.set.default.NIC": "Please confirm that you would like to make this NIC the default for this VM.",
+    "message.set.default.NIC.manual": "Please manually update the default NIC on the VM now.",
+    "message.setup.physical.network.during.zone.creation": "When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the hypervisor. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.",
+    "message.setup.physical.network.during.zone.creation.basic": "When adding a basic zone, you can set up one physical network, which corresponds to a NIC on the hypervisor. The network carries several types of traffic.<br/><br/>You may also <strong>drag and drop</strong> other traffic types onto the physical network.",
+    "message.setup.successful": "Instal·lació del cloud correcte!",
+    "message.snapshot.schedule": "You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference",
+    "message.specifiy.tag.key.value": "Please specify a tag key and value",
+    "message.specify.url": "Please specify URL",
+    "message.step.1.continue": "Please select a template or ISO to continue",
+    "message.step.1.desc": "Please select a template for your new virtual instance. You can also choose to select a blank template from which an ISO image can be installed onto.",
+    "message.step.2.continue": "Please select a service offering to continue",
+    "message.step.3.continue": "Please select a disk offering to continue",
+    "message.step.4.continue": "Please select at least one network to continue",
+    "message.step.4.desc": "Please select the primary network that your virtual instance will be connected to.",
+    "message.storage.traffic": "Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.",
+    "message.suspend.project": "Esteu segurs de suspendre aquest projecte?",
+    "message.systems.vms.ready": "System VMs ready.",
+    "message.template.copying": "Template is being copied.",
+    "message.template.desc": "OS image that can be used to boot VMs",
+    "message.tier.required": "Tier is required",
+    "message.tooltip.dns.1": "Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+    "message.tooltip.dns.2": "A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+    "message.tooltip.internal.dns.1": "Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.",
+    "message.tooltip.internal.dns.2": "Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.",
+    "message.tooltip.network.domain": "A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.",
+    "message.tooltip.pod.name": "A name for this pod.",
+    "message.tooltip.reserved.system.gateway": "The gateway for the hosts in the pod.",
+    "message.tooltip.reserved.system.netmask": "The network prefix that defines the pod subnet. Uses CIDR notation.",
+    "message.tooltip.zone.name": "A name for the zone.",
+    "message.update.os.preference": "Please choose a OS preference for this host.  All virtual instances with similar preferences will be first allocated to this host before choosing another.",
+    "message.update.resource.count": "Si us plau confirmeu que voleu actualitzar el comptatge de recursos per aquest compte.",
+    "message.update.ssl": "Please submit a new X.509 compliant SSL certificate chain to be updated to each console proxy and secondary storage virtual instance:",
+    "message.update.ssl.failed": "Failed to update SSL Certificate.",
+    "message.update.ssl.succeeded": "Update SSL Certificates succeeded",
+    "message.validate.URL": "Please enter a valid URL.",
+    "message.validate.accept": "Please enter a value with a valid extension.",
+    "message.validate.creditcard": "Please enter a valid credit card number.",
+    "message.validate.date": "Please enter a valid date.",
+    "message.validate.date.ISO": "Please enter a valid date (ISO).",
+    "message.validate.digits": "Please enter only digits.",
+    "message.validate.email.address": "Please enter a valid email address.",
+    "message.validate.equalto": "Please enter the same value again.",
+    "message.validate.fieldrequired": "This field is required.",
+    "message.validate.fixfield": "Please fix this field.",
+    "message.validate.instance.name": "Instance name can not be longer than 63 characters. Only ASCII letters a~z, A~Z, digits 0~9, hyphen are allowed. Must start with a letter and end with a letter or a digit.",
+    "message.validate.invalid.characters": "Invalid characters found; please correct.",
+    "message.validate.max": "Please enter a value less than or equal to {0}.",
+    "message.validate.maxlength": "Please enter no more than {0} characters.",
+    "message.validate.minlength": "Please enter at least {0} characters.",
+    "message.validate.number": "Please enter a valid number.",
+    "message.validate.range": "Please enter a value between {0} and {1}.",
+    "message.validate.range.length": "Please enter a value between {0} and {1} characters long.",
+    "message.virtual.network.desc": "A dedicated virtualized network for your account.  The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.",
+    "message.vm.create.template.confirm": "Create Template will reboot the VM automatically.",
+    "message.vm.review.launch": "Please review the following information and confirm that your virtual instance is correct before launch.",
+    "message.vnmc.available.list": "VNMC is not available from provider list.",
+    "message.vnmc.not.available.list": "VNMC is not available from provider list.",
+    "message.volume.create.template.confirm": "Please confirm that you wish to create a template for this disk volume.  Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.waiting.for.builtin.templates.to.load": "Waiting for builtin templates to load...",
+    "message.you.must.have.at.least.one.physical.network": "You must have at least one physical network",
+    "message.your.cloudstack.is.ready": "Your CloudStack is ready!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Zone creation complete. Would you like to enable this zone?",
+    "message.zone.no.network.selection": "The zone you selected does not have any choices for network selection.",
+    "message.zone.step.1.desc": "Please select a network model for your zone.",
+    "message.zone.step.2.desc": "Please enter the following info to add a new zone",
+    "message.zone.step.3.desc": "Please enter the following info to add a new pod",
+    "message.zoneWizard.enable.local.storage": "WARNING: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch:<br/><br/>1. If system VMs need to be launched in shared primary storage, shared primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local primary storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?",
+    "messgae.validate.min": "Please enter a value greater than or equal to {0}.",
+    "mode": "Mode",
+    "network.rate": "Velocitat de xarxa",
+    "notification.reboot.instance": "Reboot instance",
+    "notification.start.instance": "Start instance",
+    "notification.stop.instance": "Stop instance",
+    "side.by.side": "Costat a costat",
+    "state.Accepted": "Acceptat",
+    "state.Active": "Actiu",
+    "state.Allocated": "Allocated",
+    "state.Allocating": "Allocating",
+    "state.BackedUp": "Backed Up",
+    "state.BackingUp": "Backing Up",
+    "state.Completed": "Complert",
+    "state.Creating": "Creant",
+    "state.Declined": "Declinat",
+    "state.Destroyed": "Destroyed",
+    "state.Disabled": "Deshabilitat",
+    "state.Enabled": "Habilitat",
+    "state.Error": "Error",
+    "state.Expunging": "Esborrant",
+    "state.Migrating": "Migrating",
+    "state.Pending": "Pendent",
+    "state.Ready": "Preparat",
+    "state.Running": "Running",
+    "state.Starting": "Arrencant",
+    "state.Stopped": "Stopped",
+    "state.Stopping": "Stopping",
+    "state.Suspended": "Suspés",
+    "state.detached": "Detached",
+    "title.upload.volume": "Upload Volume",
+    "ui.listView.filters.all": "All",
+    "ui.listView.filters.mine": "Mine"
+};
diff --git a/ui/l10n/de_DE.js b/ui/l10n/de_DE.js
new file mode 100644
index 0000000..fb3e110
--- /dev/null
+++ b/ui/l10n/de_DE.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP-Code",
+    "ICMP.type": "ICMP-Typ",
+    "changed.item.properties": "Geänderte Eintragseigenschaften",
+    "confirm.enable.s3": "Bitte fügen Sie die folgenden Informationen hinzu, um die Unterstützung für \"S3-backed Secondary Storage\" hinzuzufügen",
+    "confirm.enable.swift": "Bitte fügen Sie die folgenden Informationen hinzu, um die Unterstützung für Swift zu ermöglichen.",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Fehler! Ihr Passwort konnte nicht geändert werden, weil LDAP konfiguriert wurde.",
+    "error.could.not.enable.zone": "Zone konnte nicht aktiviert werden",
+    "error.installWizard.message": "Etwas ging schief; Sie können zurückgehen um mögliche Fehler zu beheben",
+    "error.invalid.username.password": "Ungültiger Benutzername oder ungültiges Passwort",
+    "error.login": "Ihr Benutzername / Passwort stimmt nicht mit unseren Aufzeichnungen überein.",
+    "error.menu.select": "Es ist nicht möglich dies auszuführen, weil nichts ausgewählt wurde.",
+    "error.mgmt.server.inaccessible": "Der Verwaltungsserver ist nicht erreichbar. Bitte versuche Sie es später noch einmal.",
+    "error.password.not.match": "Die Passwortfelder stimmen nicht überein",
+    "error.please.specify.physical.network.tags": "Netzwerk-Angebote sind nicht verfügbar solange Sie keine Tags für dieses physische Netzwerk aufführen.",
+    "error.session.expired": "Ihre Sitzung ist abgelaufen.",
+    "error.something.went.wrong.please.correct.the.following": "Etwas ging schief; bitte korrigieren Sie folgende Angaben",
+    "error.unable.to.reach.management.server": "Verwaltungsserver kann nicht erreicht werden",
+    "error.unresolved.internet.name": "Ihr Internetname kann nicht aufgelöst werden.",
+    "force.delete": "Erzwinge Löschung",
+    "force.delete.domain.warning": "Achtung: Diese Auswahl führt zu einer Löschung aller untergeordneten Domains und aller angeschlossenen Konten sowie ihrer Quellen.",
+    "force.remove": "Erzwinge Entfernung",
+    "force.remove.host.warning": "Achtung: Diese Auswahl wird CloudStack zum sofortigen Anhalten der virtuellen Maschine führen, bevor der Host vom Cluster entfernt wurde.",
+    "force.stop": "Erzwinge Stopp",
+    "force.stop.instance.warning": "Warnung: Das erwzungene Stoppen dieser Instanz sollte Ihre letzte Option sein. Es kann zu Datenverlust und inkonsistentem Zustand der virtuellen Maschine führen.",
+    "hint.no.host.tags": "Keine Host-Tags gefunden",
+    "hint.no.storage.tags": "Keine Speicher-Tags gefunden",
+    "hint.type.part.host.tag": "Teil eines Host-Tags eintragen",
+    "hint.type.part.storage.tag": "Teil eines Storage-Tags eintragen",
+    "image.directory": "Bildverzeichnis",
+    "inline": "Inline",
+    "instances.actions.reboot.label": "Instanz neu starten",
+    "label.CIDR.list": "CIDR-Liste",
+    "label.CIDR.of.destination.network": "CIDR des Zielnetzwerks",
+    "label.CPU.cap": "CPU Obergrenze",
+    "label.DHCP.server.type": "DHCP Server Type",
+    "label.DNS.domain.for.guest.networks": "DNS Domain für Gast-Netzwerke",
+    "label.ESP.encryption": "ESP-Verschlüsselung",
+    "label.ESP.hash": "ESP-Prüfsumme",
+    "label.ESP.lifetime": "ESP-Lebensdauer (Sekunde)",
+    "label.ESP.policy": "ESP-Richtlinie",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE-Verschlüsselung",
+    "label.IKE.hash": "IKE-Prüfsumme",
+    "label.IKE.lifetime": "IKE-Lebensdauer (Sekunde)",
+    "label.IKE.policy": "IKE-Richtlinie",
+    "label.IPsec.preshared.key": "IPsec Preshared-Schlüssel",
+    "label.LB.isolation": "LB-Isolation",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto-Protokollprofil",
+    "label.PA.threat.profile": "Palo Alto Threat Profil",
+    "label.PING.CIFS.password": "PING CIFS Passwort",
+    "label.PING.CIFS.username": "PING CIFS Benutzername",
+    "label.PING.dir": "PING-Verzeichnis",
+    "label.PING.storage.IP": "IP des externen Speichers anpingen",
+    "label.PreSetup": "Voreinstellung",
+    "label.Pxe.server.type": "PXE Server Type",
+    "label.SNMP.community": "SNMP Gemeinschaft",
+    "label.SNMP.port": "SNMP-Port",
+    "label.SR.name": "SR Name-Bezeichnung",
+    "label.SharedMountPoint": "Geteilter Einhängepunkt",
+    "label.TFTP.dir": "TFTP-Verzeichnis",
+    "label.VMFS.datastore": "VMFS-Datenspeicher",
+    "label.VMs.in.tier": "VMs in Ebene",
+    "label.VPC.limits": "VPC-Begrenzungen",
+    "label.VPC.router.details": "VPC-Routerdetails",
+    "label.VPN.connection": "VPN-Verbindung",
+    "label.VPN.customer.gateway": "VPN Customer Gateway",
+    "label.VPN.gateway": "VPN-Gateway",
+    "label.Xenserver.Tools.Version61plus": "Originale XS-Version ist 6.1+",
+    "label.about": "Über",
+    "label.about.app": "Über CloudStack",
+    "label.accept.project.invitation": "Projekteinladung annehmen",
+    "label.account": "Benutzerkonto",
+    "label.account.and.security.group": "Konto, Sicherheitsgruppe",
+    "label.account.details": "Kontodetails",
+    "label.account.id": "Benutzerkonto-ID",
+    "label.account.lower": "Konto",
+    "label.account.name": "Benutzerkonto-Name",
+    "label.account.specific": "Besonderheiten des Benutzerkontos",
+    "label.account.type": "Benutzerkontotyp",
+    "label.accounts": "Benutzerkonten",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL-Kennung",
+    "label.acl.list.rules": "ACL-Listenregeln",
+    "label.acl.name": "ACL-Name",
+    "label.acl.replaced": "ACL ersetzt",
+    "label.acquire.new.ip": "Neue IP erwerben",
+    "label.acquire.new.secondary.ip": "Neue sekundäre IP erwerben",
+    "label.action": "Aktion",
+    "label.action.attach.disk": "Festplatte hinzufügen",
+    "label.action.attach.disk.processing": "Festplatte wird hinzugefügt....",
+    "label.action.attach.iso": "ISO hinzufügen",
+    "label.action.attach.iso.processing": "ISO wird hinzugefügt....",
+    "label.action.cancel.maintenance.mode": "Wartungsmodus abbrechen",
+    "label.action.cancel.maintenance.mode.processing": "Abbruch des Wartungsmodus",
+    "label.action.change.password": "Passwort ändern",
+    "label.action.change.service": "Dienst ändern",
+    "label.action.change.service.processing": "Dienst wird gewechselt....",
+    "label.action.configure.samlauthorization": "SAML SSO Autorisation konfigurieren",
+    "label.action.copy.ISO": "ISO kopieren",
+    "label.action.copy.ISO.processing": "ISO wird kopiert....",
+    "label.action.copy.template": "Vorlage kopieren",
+    "label.action.copy.template.processing": "Vorlage wird kopiert....",
+    "label.action.create.template": "Vorlage erstellen",
+    "label.action.create.template.from.vm": "Erstelle Vorlage aus VM",
+    "label.action.create.template.from.volume": "Vorlage vom Volumen erstellen",
+    "label.action.create.template.processing": "Vorlage wird erstellt....",
+    "label.action.create.vm": "Erstelle VM",
+    "label.action.create.vm.processing": "VM wird erstellt....",
+    "label.action.create.volume": "Volumen erstellen",
+    "label.action.create.volume.processing": "Volumen wird erstellt....",
+    "label.action.delete.IP.range": "IP-Bereich löschen",
+    "label.action.delete.IP.range.processing": "IP-Bereich wird gelöscht....",
+    "label.action.delete.ISO": "ISO löschen",
+    "label.action.delete.ISO.processing": "ISO wird gelöscht....",
+    "label.action.delete.account": "Benutzerkonto löschen",
+    "label.action.delete.account.processing": "Konto wird gelöscht....",
+    "label.action.delete.cluster": "Löschen des Clusters",
+    "label.action.delete.cluster.processing": "Cluster wird gelöscht....",
+    "label.action.delete.disk.offering": "Festplattenangebot löschen",
+    "label.action.delete.disk.offering.processing": "Festplattenangebot wird gelöscht....",
+    "label.action.delete.domain": "Löschen der Domain",
+    "label.action.delete.domain.processing": "Domäne wird gelöscht....",
+    "label.action.delete.firewall": "Firewall-Regel löschen",
+    "label.action.delete.firewall.processing": "Firewall wird gelöscht....",
+    "label.action.delete.ingress.rule": "Zutrittsregel löschen",
+    "label.action.delete.ingress.rule.processing": "Zutrittsregel wird gelöscht....",
+    "label.action.delete.load.balancer": "Lastverteilerregel löschen",
+    "label.action.delete.load.balancer.processing": "Lastverteiler wird gelöscht....",
+    "label.action.delete.network": "Löschen des Netzwerks",
+    "label.action.delete.network.processing": "Netzwerk wird gelöscht....",
+    "label.action.delete.nexusVswitch": "Nexus 1000v löschen",
+    "label.action.delete.nic": "NIC entfernen",
+    "label.action.delete.physical.network": "Physikalisches Netzwerk löschen",
+    "label.action.delete.pod": "Pod löschen",
+    "label.action.delete.pod.processing": "Pod wird gelöscht....",
+    "label.action.delete.primary.storage": "Hauptspeicher löschen",
+    "label.action.delete.primary.storage.processing": "Hauptspeicher wird gelöscht....",
+    "label.action.delete.secondary.storage": "Sekundärspeicher löschen",
+    "label.action.delete.secondary.storage.processing": "Sekundärspeicher wird gelöscht....",
+    "label.action.delete.security.group": "Sicherheitsgruppe löschen",
+    "label.action.delete.security.group.processing": "Sicherheitsgruppe wird gelöscht....",
+    "label.action.delete.service.offering": "Dienstangebot löschen",
+    "label.action.delete.service.offering.processing": "Dienstangebot wird gelöscht....",
+    "label.action.delete.snapshot": "Schnappschuss löschen",
+    "label.action.delete.snapshot.processing": "Schnappschuss wird gelöscht....",
+    "label.action.delete.system.service.offering": "Systemdienstangebot löschen",
+    "label.action.delete.template": "Vorlage löschen",
+    "label.action.delete.template.processing": "Vorlage wird gelöscht....",
+    "label.action.delete.user": "Benutzer löschen",
+    "label.action.delete.user.processing": "Benutzer wird gelöscht....",
+    "label.action.delete.volume": "Volumen löschen",
+    "label.action.delete.volume.processing": "Volumen wird gelöscht....",
+    "label.action.delete.zone": "Zone löschen",
+    "label.action.delete.zone.processing": "Zone wird gelöscht....",
+    "label.action.destroy.instance": "Die Instanz vernichten",
+    "label.action.destroy.instance.processing": "Instanz wird zerstört....",
+    "label.action.destroy.systemvm": "System-VM vernichten",
+    "label.action.destroy.systemvm.processing": "System-VM wird zerstört....",
+    "label.action.detach.disk": "Festplatte loslösen",
+    "label.action.detach.disk.processing": "Festplatte wird losgelöst...",
+    "label.action.detach.iso": "ISO loslösen",
+    "label.action.detach.iso.processing": "ISO wird losgelöst....",
+    "label.action.disable.account": "Benutzerkonto deaktivieren",
+    "label.action.disable.account.processing": "Konto wird deaktiviert....",
+    "label.action.disable.cluster": "Deaktivieren des Clusters",
+    "label.action.disable.cluster.processing": "Cluster wird deaktiviert....",
+    "label.action.disable.nexusVswitch": "Nexus 1000v deaktivieren",
+    "label.action.disable.physical.network": "Physikalisches Netzwerk deaktivieren",
+    "label.action.disable.pod": "Deaktiviere Pod",
+    "label.action.disable.pod.processing": "Pod wird deaktiviert....",
+    "label.action.disable.static.NAT": "Statische NAT deaktivieren",
+    "label.action.disable.static.NAT.processing": "Statische NAT wird deaktiviert....",
+    "label.action.disable.user": "Benutzer deaktivieren",
+    "label.action.disable.user.processing": "Benutzer wird deaktiviert....",
+    "label.action.disable.zone": "Deaktivieren der Zone",
+    "label.action.disable.zone.processing": "Zone wird deaktiviert....",
+    "label.action.download.ISO": "ISO herunterladen",
+    "label.action.download.template": "Vorlage herunterladen",
+    "label.action.download.volume": "Volumen herunterladen",
+    "label.action.download.volume.processing": "Volumen wird heruntergeladen....",
+    "label.action.edit.ISO": "ISO bearbeiten",
+    "label.action.edit.account": "Benutzerkonto bearbeiten",
+    "label.action.edit.disk.offering": "Festplattenangebot bearbeiten",
+    "label.action.edit.domain": "Domain bearbeiten",
+    "label.action.edit.global.setting": "Globale Einstellungen bearbeiten",
+    "label.action.edit.host": "Bearbeite Host",
+    "label.action.edit.instance": "Instanz bearbeiten",
+    "label.action.edit.network": "Bearbeiten des Netzwerks",
+    "label.action.edit.network.offering": "Netzwerkangebot bearbeiten",
+    "label.action.edit.network.processing": "Netzwerk wird bearbeitet....",
+    "label.action.edit.pod": "Bearbeiten des Pods",
+    "label.action.edit.primary.storage": "Hauptspeicher bearbeiten",
+    "label.action.edit.resource.limits": "Resourcenlimit bearbeiten",
+    "label.action.edit.service.offering": "Dienstangebot bearbeiten",
+    "label.action.edit.template": "Vorlage bearbeiten",
+    "label.action.edit.user": "Benutzer bearbeiten",
+    "label.action.edit.zone": "Zone bearbeiten",
+    "label.action.enable.account": "Konto aktivieren",
+    "label.action.enable.account.processing": "Konto wird aktiviert....",
+    "label.action.enable.cluster": "Aktivieren des Clusters",
+    "label.action.enable.cluster.processing": "Cluster wird aktiviert....",
+    "label.action.enable.maintenance.mode": "Wartungsmodus aktivieren",
+    "label.action.enable.maintenance.mode.processing": "Aktivieren des Wartungsmodus",
+    "label.action.enable.nexusVswitch": "Nexus 1000v aktivieren",
+    "label.action.enable.physical.network": "Physikalisches Netzwerk aktivieren",
+    "label.action.enable.pod": "Aktiviere Pod",
+    "label.action.enable.pod.processing": "Pod wird aktiviert....",
+    "label.action.enable.static.NAT": "Statische NAT aktivieren",
+    "label.action.enable.static.NAT.processing": "Statische NAT wird aktiviert....",
+    "label.action.enable.user": "Nutzer aktivieren",
+    "label.action.enable.user.processing": "Benutzer wird aktiviert....",
+    "label.action.enable.zone": "Aktivieren der Zone",
+    "label.action.enable.zone.processing": "Zone wird aktiviert....",
+    "label.action.expunge.instance": "Instanz unwiederbringlich löschen",
+    "label.action.expunge.instance.processing": "Lösche Instanz unwiederbringlich...",
+    "label.action.force.reconnect": "Erzwinge wieder verbinden",
+    "label.action.force.reconnect.processing": "Wieder verbinden....",
+    "label.action.generate.keys": "Schlüssel generieren",
+    "label.action.generate.keys.processing": "Generiere Schlüssel...",
+    "label.action.list.nexusVswitch": "Nexus 1000v auflisten",
+    "label.action.lock.account": "Konto sperren",
+    "label.action.lock.account.processing": "Konto wird gesperrt....",
+    "label.action.manage.cluster": "Verwalte Cluster",
+    "label.action.manage.cluster.processing": "Cluster wird verwaltet....",
+    "label.action.migrate.instance": "Eine Instanz migrieren",
+    "label.action.migrate.instance.processing": "Instanz migrieren",
+    "label.action.migrate.router": "Router migrieren",
+    "label.action.migrate.router.processing": "Router wird migriert....",
+    "label.action.migrate.systemvm": "System-VM migrieren",
+    "label.action.migrate.systemvm.processing": "System-VM wird migriert....",
+    "label.action.reboot.instance": "Instanz neu starten",
+    "label.action.reboot.instance.processing": "Instanz wird neu gebootet...",
+    "label.action.reboot.router": "Router neu starten",
+    "label.action.reboot.router.processing": "Router wird neu gebootet....",
+    "label.action.reboot.systemvm": "System-VM neu starten",
+    "label.action.reboot.systemvm.processing": "System-VM wird neu gebootet....",
+    "label.action.recurring.snapshot": "Wiederkehrende Schnappschüsse",
+    "label.action.register.iso": "ISO registrieren",
+    "label.action.register.template": "Vorlage von URL registrieren",
+    "label.action.release.ip": "IP loslösen",
+    "label.action.release.ip.processing": "IP wird losgelöst....",
+    "label.action.remove.host": "Host entfernen",
+    "label.action.remove.host.processing": "Host wird entfernt....",
+    "label.action.reset.password": "Passwort zurücksetzen",
+    "label.action.reset.password.processing": "Passwort wird zurückgesetzt....",
+    "label.action.resize.volume": "Volumengröße ändern",
+    "label.action.resize.volume.processing": "Volumengröße wird geändert....",
+    "label.action.resource.limits": "Ressourcenlimits",
+    "label.action.restore.instance": "Instanz wiederherstellen",
+    "label.action.restore.instance.processing": "Instanz wird wiederhergestellt....",
+    "label.action.revert.snapshot": "Auf Schnappschuss zurückkehren",
+    "label.action.revert.snapshot.processing": "Es wird auf den Schnappschuss zurückgekehrt...",
+    "label.action.start.instance": "Instanz beginnen",
+    "label.action.start.instance.processing": "Instanz wird gestartet....",
+    "label.action.start.router": "Router starten",
+    "label.action.start.router.processing": "Router wird gestartet....",
+    "label.action.start.systemvm": "System-VM starten",
+    "label.action.start.systemvm.processing": "System-VM wird gestartet....",
+    "label.action.stop.instance": "Instanz stoppen",
+    "label.action.stop.instance.processing": "Instanz wird gestartet....",
+    "label.action.stop.router": "Router stoppen",
+    "label.action.stop.router.processing": "Routers wird gestoppt....",
+    "label.action.stop.systemvm": "System-VM stoppen",
+    "label.action.stop.systemvm.processing": "System-VM wird gestoppt....",
+    "label.action.take.snapshot": "Schnappschuss erstellen",
+    "label.action.take.snapshot.processing": "Schnappschuss wird gemacht....",
+    "label.action.unmanage.cluster": "Vernachlässige Cluster",
+    "label.action.unmanage.cluster.processing": "Cluster wird nicht mehr verwaltet....",
+    "label.action.update.OS.preference": "Betriebssystem Präverenz aktualisieren",
+    "label.action.update.OS.preference.processing": "Betriebssystemeinstellung wird aktualisiert....",
+    "label.action.update.resource.count": "Ressourcenanzahl aktualisieren",
+    "label.action.update.resource.count.processing": "Ressourcenanzahl wird aktualisiert....",
+    "label.action.vmsnapshot.create": "VM-Schnappschuss machen",
+    "label.action.vmsnapshot.delete": "VM-Schnappschuss löschen",
+    "label.action.vmsnapshot.revert": "Auf VM-Schnappschuss zurückkehren",
+    "label.actions": "Aktionen",
+    "label.activate.project": "Projekt aktivieren",
+    "label.active.sessions": "Aktive Sitzungen",
+    "label.add": "Hinzufügen",
+    "label.add.ACL": "ACL hinzufügen",
+    "label.add.BigSwitchBcf.device": "Füge BigSwitch BCF Controller hinzu",
+    "label.add.BrocadeVcs.device": "Brocade Vcs Switch hinzufügen",
+    "label.add.F5.device": "F5-Gerät hinzufügen",
+    "label.add.LDAP.account": "LDAP-Konto hinzufügen",
+    "label.add.NiciraNvp.device": "Nvp Controller hinzufügen",
+    "label.add.NuageVsp.device": "Nuage Virtualized Services Directory (VSD) hinzufügen",
+    "label.add.OpenDaylight.device": "OpenDaylight Controller hinzufügen",
+    "label.add.PA.device": "Palo Alto-Gerät hinzufügen",
+    "label.add.SRX.device": "SRX-Gerät hinzufügen",
+    "label.add.VM.to.tier": "VM zur Ebene hinzufügen",
+    "label.add.VPN.gateway": "VPN Gateway hinzufügen",
+    "label.add.account": "Konto hinzufügen",
+    "label.add.account.to.project": "Konto zu Projekt hinzufügen",
+    "label.add.accounts": "Konten hinzufügen",
+    "label.add.accounts.to": "Konten hinzufügen zu",
+    "label.add.acl.list": "ACL-Liste hinzufügen",
+    "label.add.affinity.group": "Neue Affinitätsgruppe hinzufügen",
+    "label.add.baremetal.dhcp.device": "Baremetal DHCP-Gerät hinzufügen",
+    "label.add.baremetal.rack.configuration": "Baremetal Rackkonfiguration hinzufügen",
+    "label.add.by": "Hinzugefügt von",
+    "label.add.by.cidr": "Hinzufügen durch CIDR",
+    "label.add.by.group": "Hinzufügen durch Gruppe",
+    "label.add.ciscoASA1000v": "CiscoASA1000v-Ressource hinzufügen",
+    "label.add.cluster": "Cluster hinzufügen",
+    "label.add.compute.offering": "Berechnungsangebot hinzufügen",
+    "label.add.direct.iprange": "Direkten IP-Bereich hinzufügen",
+    "label.add.disk.offering": "Festplattenangebot hinzufügen",
+    "label.add.domain": "Domain hinzufügen",
+    "label.add.egress.rule": "Egress-Regel hinzufügen",
+    "label.add.firewall": "Firewall-Regel hinzufügen",
+    "label.add.globo.dns": "GloboDNS hinzufügen",
+    "label.add.gslb": "GSLB hinzufügen",
+    "label.add.guest.network": "Gastnetzwerk hinzufügen",
+    "label.add.host": "Host hinzufügen",
+    "label.add.ingress.rule": "Zutrittsregel hinzufügen",
+    "label.add.intermediate.certificate": "Intermediate Zertifikat hinzufügen",
+    "label.add.internal.lb": "Interne LB hinzufügen",
+    "label.add.ip.range": "IP-Bereich hinzufügen",
+    "label.add.isolated.guest.network": "Isoliertes Gastnetzwerk hinzufügen",
+    "label.add.isolated.guest.network.with.sourcenat": "Isoliertes Gastnetzwerk mit Source-NAT hinzufügen",
+    "label.add.isolated.network": "Isoliertes Netzwerk hinzufügen",
+    "label.add.ldap.account": "LDAP-Konto hinzufügen",
+    "label.add.list.name": "ACL-Listename",
+    "label.add.load.balancer": "Lastverteiler hinzufügen",
+    "label.add.more": "Mehr hinzufügen",
+    "label.add.netScaler.device": "Netscaler-Gerät hinzufügen",
+    "label.add.network": "Netzwerk hinzufügen",
+    "label.add.network.ACL": "Netzwerk-ACL hinzufügen",
+    "label.add.network.acl.list": "Netzwerk-ACL-Liste hinzufügen",
+    "label.add.network.device": "Hinzufügen eines Netzwerkgerätes",
+    "label.add.network.offering": "Netzwerkangebot hinzufügen",
+    "label.add.new.F5": "Neues F5 hinzufügen",
+    "label.add.new.NetScaler": "Neuer NetScaler hinzufügen",
+    "label.add.new.PA": "Neues Palo Alto hinzufügen",
+    "label.add.new.SRX": "Neuer SRX hinzufügen",
+    "label.add.new.gateway": "Neues Gateway hinzufügen",
+    "label.add.new.tier": "Neue Ebene hinzufügen",
+    "label.add.nfs.secondary.staging.store": "NFS Sekundär Staging Store hinzufügen",
+    "label.add.physical.network": "Physikalisches Netzwerk hinzufügen",
+    "label.add.pod": "Pod hinzufügen",
+    "label.add.port.forwarding.rule": "Portweiterleitungsregel hinzufügen",
+    "label.add.portable.ip.range": "Portablen IP-Bereich hinzufügen",
+    "label.add.primary.storage": "Hauptspeicher hinzufügen",
+    "label.add.private.gateway": "Privaten Gateway hinzufügen",
+    "label.add.region": "Region hinzufügen",
+    "label.add.resources": "Ressourcen hinzufügen",
+    "label.add.role": "Rolle hinzufügen",
+    "label.add.route": "Route hinzufügen",
+    "label.add.rule": "Regel hinzufügen",
+    "label.add.secondary.storage": "Sekundärspeicher hinzufügen",
+    "label.add.security.group": "Sicherheitsgruppe hinzufügen",
+    "label.add.service.offering": "Dienstangebot hinzufügen",
+    "label.add.static.nat.rule": "Statische NAT-Regel hinzufügen",
+    "label.add.static.route": "Füge eine statische Route hinzu",
+    "label.add.system.service.offering": "Systemdienstangebot hinzufügen",
+    "label.add.template": "Vorlage hinzufügen",
+    "label.add.to.group": "Zu Gruppe hinzufügen",
+    "label.add.ucs.manager": "UCS Manager hinzufügen",
+    "label.add.user": "Benutzer hinzufügen",
+    "label.add.userdata": "Benutzerdaten",
+    "label.add.vlan": "VLAN hinzufügen",
+    "label.add.vm": "VM hinzufügen",
+    "label.add.vms": "VMs hinzufügen",
+    "label.add.vms.to.lb": "VM(s) zur Lastverteilerregel hinzufügen",
+    "label.add.vmware.datacenter": "VMware-Rechenzentrum hinzufügen",
+    "label.add.vnmc.device": "VNMC-Gerät hinzufügen",
+    "label.add.vnmc.provider": "VNMC-Anbieter hinzufügen",
+    "label.add.volume": "Volumen hinzufügen",
+    "label.add.vpc": "VPC hinzufügen",
+    "label.add.vpc.offering": "VPC-Angebot hinzufügen",
+    "label.add.vpn.customer.gateway": "VPN Customer Gateway hinzufügen",
+    "label.add.vpn.user": "VPN-Benutzer hinzufügen",
+    "label.add.vxlan": "VXLAN hinzufügen",
+    "label.add.zone": "Zone hinzufügen",
+    "label.added.brocade.vcs.switch": "Neuer Brocade Vcs Switch hinzugefügt",
+    "label.added.network.offering": "Netzwerkangebot hinzugefügt",
+    "label.added.new.bigswitch.bcf.controller": "Neuer BigSwitch BCF Controller hinzugefügt",
+    "label.added.nicira.nvp.controller": "Neuer Nicira NVP Controller hinzugefügt",
+    "label.addes.new.f5": "Neues F5 hinzugefügt",
+    "label.adding": "Hinzufügen",
+    "label.adding.cluster": "Cluster hinzufügen",
+    "label.adding.failed": "Hinzufügen fehlgeschlagen",
+    "label.adding.pod": "Hinzufügen des Pods",
+    "label.adding.processing": "Hinzufügen....",
+    "label.adding.succeeded": "Erfolgreich hinzugefügt",
+    "label.adding.user": "Nutzer hinzufügen",
+    "label.adding.zone": "Hinzufügen der Zone",
+    "label.additional.networks": "Zusätzliche Netzwerke",
+    "label.admin": "Administrator",
+    "label.admin.accounts": "Administratoren-Konten",
+    "label.advanced": "Weitergehend",
+    "label.advanced.mode": "Erweiterter Modus",
+    "label.advanced.search": "Erweiterte Suche",
+    "label.affinity": "Affinität",
+    "label.affinity.group": "Affinitätsgruppe",
+    "label.affinity.groups": "Affinitätsgruppen",
+    "label.agent.password": "Agent-Passwort",
+    "label.agent.port": "Agent-Port",
+    "label.agent.state": "Agent-Status",
+    "label.agent.username": "Agent-Benutzername",
+    "label.agree": "Zustimmen",
+    "label.alert": "Warnung",
+    "label.alert.archived": "Alarm archiviert",
+    "label.alert.deleted": "Alarm gelöscht",
+    "label.alert.details": "Alarmdetails",
+    "label.algorithm": "Algorithmus",
+    "label.allocated": "Zugeteilt",
+    "label.allocation.state": "Belegungszustand",
+    "label.allow": "Erlauben",
+    "label.anti.affinity": "Anti-Affinität",
+    "label.anti.affinity.group": "Anti-Affinitätsgruppe",
+    "label.anti.affinity.groups": "Anti-Affinitätsgruppen",
+    "label.api.key": "API Schlüssel",
+    "label.api.version": "API-Version",
+    "label.app.name": "CloudStack",
+    "label.apply": "Anwenden",
+    "label.archive": "Archiv",
+    "label.archive.alerts": "Alarme archivieren",
+    "label.archive.events": "Ereignisse archivieren",
+    "label.assign": "Zuweisen",
+    "label.assign.instance.another": "Instanz einem anderen Benutzerkonto zuweisen",
+    "label.assign.to.load.balancer": "Instanz zum Lastverteiler hinzufügen",
+    "label.assign.vms": "VMs zuweisen",
+    "label.assigned.vms": "Zugewiesene VMs",
+    "label.associate.public.ip": "Öffentliche IP assoziieren",
+    "label.associated.network": "Zugehöriges Netzwerk",
+    "label.associated.network.id": "Assozierte Netzwerk ID",
+    "label.associated.profile": "Zugehöriges Profil",
+    "label.attached.iso": "Angehängte ISO",
+    "label.author.email": "Autoremail",
+    "label.author.name": "Autorname",
+    "label.autoscale": "Automatische Skalierung",
+    "label.autoscale.configuration.wizard": "Eingabehilfe der Autoskalierungs-Konfiguration",
+    "label.availability": "Verfügbarkeit",
+    "label.availability.zone": "Verfügbare Zone",
+    "label.availabilityZone": "Verfügbarkeitszone",
+    "label.available": "Verfügbar",
+    "label.available.public.ips": "Verfügbaren öffentlichen IP-Adressen",
+    "label.back": "Zurück",
+    "label.bandwidth": "Bandbreite",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP-Geräte",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP-Provider",
+    "label.baremetal.pxe.device": "Baremetal PXE-Gerät hinzufügen",
+    "label.baremetal.pxe.devices": "Baremetal PXE-Geräte",
+    "label.baremetal.pxe.provider": "Baremetal PXE-Provider",
+    "label.baremetal.rack.configuration": "Barematel Rackkonfiguration",
+    "label.basic": "Basis",
+    "label.basic.mode": "Grundmodus",
+    "label.bigswitch.bcf.details": "BigSwitch BCF Details",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT aktiviert",
+    "label.bigswitch.controller.address": "Adresse des BigSwitch BCF Controllers",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blades",
+    "label.bootable": "Bootbar",
+    "label.broadcast.domain.range": "Broadcast-Domain Bereich",
+    "label.broadcast.domain.type": "Broadcast Domain Typ",
+    "label.broadcast.uri": "Broadcast URI",
+    "label.broadcasturi": "Broadcast-URI",
+    "label.broadcat.uri": "Broadcast URI",
+    "label.brocade.vcs.address": "Vcs Switch Adresse",
+    "label.brocade.vcs.details": "Brocade Vcs Switch Details",
+    "label.by.account": "Nach Benutzerkonto",
+    "label.by.alert.type": "Nach Alarmtyp",
+    "label.by.availability": "Nach Verfügbarkeit",
+    "label.by.date.end": "Nach Datum (Ende)",
+    "label.by.date.start": "Nach Datum (Start)",
+    "label.by.domain": "Nach Domain",
+    "label.by.end.date": "Nach Endedatum",
+    "label.by.event.type": "Nach Ereignistyp",
+    "label.by.level": "Nach Level",
+    "label.by.pod": "Nach Pod",
+    "label.by.role": "Nach Rolle",
+    "label.by.start.date": "Nach Beginndatum",
+    "label.by.state": "über den Zustand",
+    "label.by.traffic.type": "Nach Traffic-Typ",
+    "label.by.type": "Nach Typ",
+    "label.by.type.id": "Nach Typ ID",
+    "label.by.zone": "Nach Zone",
+    "label.bytes.received": "Empfangene Bytes",
+    "label.bytes.sent": "Gesendete Bytes",
+    "label.cache.mode": "Schreib-Cache-Typ",
+    "label.cancel": "Abbrechen",
+    "label.capacity": "Kapazität",
+    "label.capacity.bytes": "Kapazitäts-Bytes",
+    "label.capacity.iops": "Kapazitäts-IOPS",
+    "label.certificate": "Serverzertifikat",
+    "label.change.affinity": "Affinität ändern",
+    "label.change.ipaddress": "Ändern der IP Adresse für das NIC",
+    "label.change.service.offering": "Dienstangebot ändern",
+    "label.change.value": "Wert ändern",
+    "label.character": "Buchstabe",
+    "label.chassis": "Chassis",
+    "label.checksum": "Prüfsumme",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR oder Benutzerkonto/Sicherheitsgruppe",
+    "label.cidr.list": "Quelle CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v-IP-Adresse",
+    "label.cisco.nexus1000v.password": "Nexus 1000v-Passwort",
+    "label.cisco.nexus1000v.username": "Nexus 1000v-Benutzername",
+    "label.ciscovnmc.resource.details": "CiscoVNMC-Ressourcendetails",
+    "label.clean.up": "Bereinigen",
+    "label.clear.list": "Liste löschen",
+    "label.close": "Schliessen",
+    "label.cloud.console": "Cloud Verwaltungskonsole",
+    "label.cloud.managed": "Geleitet von cloud.com",
+    "label.cluster": "Cluster",
+    "label.cluster.name": "Clustername",
+    "label.cluster.type": "Cluster-Typ",
+    "label.clusters": "Cluster",
+    "label.clvm": "CLVM",
+    "label.code": "Code",
+    "label.community": "Gemeinschaft",
+    "label.compute": "Berechnen",
+    "label.compute.and.storage": "Berechnen und Speicher",
+    "label.compute.offering": "Berechnungsangebot",
+    "label.compute.offerings": "Berechnungsangebote",
+    "label.configuration": "Konfiguration",
+    "label.configure": "Konfigurieren",
+    "label.configure.ldap": "LDAP konfigurieren",
+    "label.configure.network.ACLs": "Netzwerk-ACLs konfigurieren",
+    "label.configure.sticky.policy": "Sticky-Richtlinie konfigurieren",
+    "label.configure.vpc": "VPC konfigurieren",
+    "label.confirm.password": "Passwort bestätigen",
+    "label.confirmation": "Bestätigung",
+    "label.congratulations": "Herzlichen Glückwunsch",
+    "label.conserve.mode": "Konserven-Modus",
+    "label.console.proxy": "Konsolenproxy",
+    "label.console.proxy.vm": "Konsolenproxy-VM",
+    "label.continue": "Fortsetzen",
+    "label.continue.basic.install": "Weiterfahren mit Basisinstallation",
+    "label.copying.iso": "ISO wird kopiert",
+    "label.corrections.saved": "Korrekturen gespeichert",
+    "label.counter": "Zähler",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "Zugeteilte CPU",
+    "label.cpu.allocated.for.VMs": "CPU alloziert für VMs",
+    "label.cpu.limits": "CPU-Begrenzungen",
+    "label.cpu.mhz": "CPU (in MHz)",
+    "label.cpu.utilized": "genutzte CPU",
+    "label.create.VPN.connection": "VPN-Verbindung erstellen",
+    "label.create.nfs.secondary.staging.storage": "NFS sekundärer Staging Store erstellen",
+    "label.create.nfs.secondary.staging.store": "NFS sekundärer Staging Store erstellen",
+    "label.create.project": "Projekt erstellen",
+    "label.create.ssh.key.pair": "Erstelle ein SSH-Schlüsselpaar",
+    "label.create.template": "Vorlage erstellen",
+    "label.created": "Erstellt",
+    "label.created.by.system": "Vom System erstellt",
+    "label.cross.zones": "überschneidende Zonen",
+    "label.custom": "Benutzerdefiniert",
+    "label.custom.disk.iops": "Benutzerspezifische IOPS",
+    "label.custom.disk.offering": "Benutzerdefiniertes Festplattenangebot",
+    "label.custom.disk.size": "Benutzerdefinierte Festplattengrösse",
+    "label.daily": "Täglich",
+    "label.data.disk.offering": "Datenspeicherplatzangebot",
+    "label.date": "Datum",
+    "label.day": "Tag",
+    "label.day.of.month": "Tag des Monats",
+    "label.day.of.week": "Tag der Woche",
+    "label.dc.name": "DC-Name",
+    "label.dead.peer.detection": "Dead-Peer-Erkennung",
+    "label.decline.invitation": "Einladung ablehnen",
+    "label.dedicate": "Dedizieren",
+    "label.dedicate.cluster": "Dediziere Cluster",
+    "label.dedicate.host": "Dediziere Host",
+    "label.dedicate.pod": "Dediziere Pod",
+    "label.dedicate.vlan.vni.range": "Dedizierter VLAN/VNI Bereich",
+    "label.dedicate.zone": "Zone dedizieren",
+    "label.dedicated": "Dediziert",
+    "label.dedicated.vlan.vni.ranges": "Dedizierte VLAN/VNI Bereiche",
+    "label.default": "Standard",
+    "label.default.egress.policy": "Standard Egress Richtlinie",
+    "label.default.use": "Standardeinstellung nutzen",
+    "label.default.view": "Standardansicht",
+    "label.delete": "Löschen",
+    "label.delete.BigSwitchBcf": "BigSwitch BCF Controller entfernen",
+    "label.delete.BrocadeVcs": "Brocade Vcs Switch löschen",
+    "label.delete.F5": "F5 löschen",
+    "label.delete.NetScaler": "Lösche NetScaler",
+    "label.delete.NiciraNvp": "Entferne Nvp Controller",
+    "label.delete.NuageVsp": "Nuage VSD entfernen",
+    "label.delete.OpenDaylight.device": "OpenDaylight Controller löschen",
+    "label.delete.PA": "Palo Alto löschen",
+    "label.delete.SRX": "SRX löschen",
+    "label.delete.VPN.connection": "VPN-Verbindung löschen",
+    "label.delete.VPN.customer.gateway": "VPN Customer Gateway löschen",
+    "label.delete.VPN.gateway": "VPN-Gateway löschen",
+    "label.delete.acl.list": "ACL-Liste ersetzen",
+    "label.delete.affinity.group": "Affinitätsgruppe entfernen",
+    "label.delete.alerts": "Alarme löschen",
+    "label.delete.baremetal.rack.configuration": "Barematel Rackkonfiguration entfernen",
+    "label.delete.ciscoASA1000v": "CiscoASA1000v löschen",
+    "label.delete.ciscovnmc.resource": "CiscoVNMC-Ressource löschen",
+    "label.delete.events": "Ereignisse löschen",
+    "label.delete.gateway": "Lösche Gateway",
+    "label.delete.internal.lb": "Interne LB löschen",
+    "label.delete.portable.ip.range": "Portablen IP-Bereich löschen",
+    "label.delete.profile": "Profil löschen",
+    "label.delete.project": "Projekt löschen",
+    "label.delete.role": "Rolle löschen",
+    "label.delete.secondary.staging.store": "Sekundärer Staging Store löschen",
+    "label.delete.ucs.manager": "UCS Manager löschen",
+    "label.delete.vpn.user": "VPN-Benutzer löschen",
+    "label.deleting.failed": "Löschen fehlgeschlagen",
+    "label.deleting.processing": "Lösche....",
+    "label.deny": "Verweigern",
+    "label.deployment.planner": "Deployment-Planer",
+    "label.description": "Beschreibung",
+    "label.destination.physical.network.id": "Physiche Netzwerk-ID des Zielorts",
+    "label.destination.zone": "Zielzone",
+    "label.destroy": "Zerstören",
+    "label.destroy.router": "Router zerstören",
+    "label.destroy.vm.graceperiod": "Gnadenfrist bis zur Zerstörung der VM",
+    "label.detaching.disk": "Entfernen der Festplatte",
+    "label.details": "Details",
+    "label.device.id": "Geräte-ID",
+    "label.devices": "Geräte",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Direkt angeschlossene öffentliche IP",
+    "label.direct.ips": "Gemeinsame Netzwerk-IPs",
+    "label.disable.autoscale": "Automatische Skalierung deaktivieren",
+    "label.disable.host": "Host deaktivieren",
+    "label.disable.network.offering": "Netzwerkangebot deaktivieren",
+    "label.disable.provider": "Anbieter deaktivieren",
+    "label.disable.vnmc.provider": "VNMC-Anbieter deaktivieren",
+    "label.disable.vpc.offering": "VPC-Angebot deaktivieren",
+    "label.disable.vpn": "Fernzugriff-VPN deaktivieren",
+    "label.disabled": "Deaktiviert",
+    "label.disabling.vpn.access": "Deaktivierung des VPN Zugangs",
+    "label.disassociate.profile.blade": "Verbindung vom Profil zum Blade entfernen",
+    "label.disbale.vnmc.device": "VNMC-Gerät deaktivieren",
+    "label.disk.allocated": "Zugeordnete Festplatte",
+    "label.disk.bytes.read.rate": "Festplatten-Leserate (BPS)",
+    "label.disk.bytes.write.rate": "Festplatten-Schreibrate (BPS)",
+    "label.disk.iops.max": "Max IOPS",
+    "label.disk.iops.min": "Min IOPS",
+    "label.disk.iops.read.rate": "Festplatten-Leserate (IOPS)",
+    "label.disk.iops.total": "Gesamte IOPS",
+    "label.disk.iops.write.rate": "Festplatten-Schreibrate (IOPS)",
+    "label.disk.offering": "Festplattenangebot",
+    "label.disk.offering.details": "Festplattenangebotdetails",
+    "label.disk.provisioningtype": "Provisionierungstyp",
+    "label.disk.read.bytes": "Festplatte Lesen (Bytes)",
+    "label.disk.read.io": "Festplatte Lesen (EA)",
+    "label.disk.size": "Festplattengröße",
+    "label.disk.size.gb": "Festplattengröße (in GB)",
+    "label.disk.total": "Gesamtzahl der Festplatten",
+    "label.disk.volume": "Festplattenvolumen",
+    "label.disk.write.bytes": "Festplatte Schreiben (Bytes)",
+    "label.disk.write.io": "Festplatte Schreiben (EA)",
+    "label.diskoffering": "Festplattenangebot",
+    "label.display.name": "Anzeigename",
+    "label.display.text": "Anzeigetext",
+    "label.distributedrouter": "Verteilter Router",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Domain",
+    "label.domain.admin": "Domain Administrator",
+    "label.domain.details": "Nährere Angaben zu Domains",
+    "label.domain.id": "Domain ID",
+    "label.domain.lower": "Domäne",
+    "label.domain.name": "Domain Name",
+    "label.domain.router": "Domain Router",
+    "label.domain.suffix": "DNS Domainsuffix (z.B. xzy.com)",
+    "label.done": "Fertig",
+    "label.double.quotes.are.not.allowed": "Anführungszeichen sind nicht erlaubt",
+    "label.download.progress": "Download-Fortschritt",
+    "label.drag.new.position": "Ziehe zu neuer Position",
+    "label.duration.in.sec": "Dauer (in Sekunden)",
+    "label.dynamically.scalable": "Dynamisch skalierbar",
+    "label.edit": "Bearbeiten",
+    "label.edit.acl.rule": "ACL-Regel bearbeiten",
+    "label.edit.affinity.group": "Affinitätsgruppe bearbeiten",
+    "label.edit.lb.rule": "LB-Regel bearbeiten",
+    "label.edit.network.details": "Netzwerkdetails bearbeiten",
+    "label.edit.project.details": "Projektdetails bearbeiten",
+    "label.edit.region": "Region bearbeiten",
+    "label.edit.role": "Rolle bearbeiten",
+    "label.edit.rule": "Regel bearbeiten",
+    "label.edit.secondary.ips": "Sekundäre IPs bearbeiten",
+    "label.edit.tags": "Schlagwörter bearbeiten",
+    "label.edit.traffic.type": "Datenverkehrstyp bearbeiten",
+    "label.edit.vpc": "VPC bearbeiten",
+    "label.egress.default.policy": "Egress Standard Richtlinie",
+    "label.egress.rule": "Egress-Regel",
+    "label.egress.rules": "Egress-Regeln",
+    "label.elastic": "Elastisch",
+    "label.elastic.IP": "Elastische IP Adresse",
+    "label.elastic.LB": "Elastischer LB",
+    "label.email": "E-Mail",
+    "label.email.lower": "E-Mail-Adresse",
+    "label.enable.autoscale": "Automatische Skalierung aktivieren",
+    "label.enable.host": "Host aktivieren",
+    "label.enable.network.offering": "Netzwerkangebot aktivieren",
+    "label.enable.provider": "Anbieter aktivieren",
+    "label.enable.s3": "S3-Backend Sekundärspeicher einschalten",
+    "label.enable.swift": "Swift aktivieren",
+    "label.enable.vnmc.device": "VNMC-Gerät aktivieren",
+    "label.enable.vnmc.provider": "VNMC-Anbieter aktivieren",
+    "label.enable.vpc.offering": "VPC-Angebot aktivieren",
+    "label.enable.vpn": "Fernzugriff-VPN einschalten",
+    "label.enabling.vpn": "VPN aktivieren",
+    "label.enabling.vpn.access": "Aktivieren des VPN-Zugriffs",
+    "label.end.IP": "End-IP",
+    "label.end.port": "Beende Port",
+    "label.end.reserved.system.IP": "Reservierte System-End-IP",
+    "label.end.vlan": "End-VLAN",
+    "label.end.vxlan": "End-VXLAN",
+    "label.endpoint": "Endpunkt",
+    "label.endpoint.or.operation": "Endpunkt oder Bedienung",
+    "label.enter.token": "Token eingeben",
+    "label.error": "Fehler",
+    "label.error.code": "Fehlercode",
+    "label.error.upper": "FEHLER",
+    "label.esx.host": "ESX / ESXi-Host",
+    "label.event": "Ereignis",
+    "label.event.archived": "Ereignis archiviert",
+    "label.event.deleted": "Ereignis gelöscht",
+    "label.every": "Jeder",
+    "label.example": "Beispiel",
+    "label.expunge": "Unwiederbringlich löschen",
+    "label.external.link": "Externer Link",
+    "label.extractable": "Extrahierbar",
+    "label.extractable.lower": "extrahierbar",
+    "label.f5": "F5",
+    "label.f5.details": "F5-Details",
+    "label.failed": "Fehlgeschlagen",
+    "label.featured": "Empfohlen",
+    "label.fetch.latest": "Neuste abrufen",
+    "label.filterBy": "Filtern nach",
+    "label.fingerprint": "FingerAbdruck",
+    "label.firewall": "Firewall",
+    "label.first.name": "Vorname",
+    "label.firstname.lower": "Vorname",
+    "label.format": "Format",
+    "label.format.lower": "Format",
+    "label.friday": "Freitag",
+    "label.full": "Voll",
+    "label.full.path": "Vollständiger Pfad",
+    "label.gateway": "Schnittstelle",
+    "label.general.alerts": "Allgemeine Alarme",
+    "label.generating.url": "Generieren der URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS-Konfiguration",
+    "label.gluster.volume": "Volume",
+    "label.go.step.2": "Gehe zu Schritt 2",
+    "label.go.step.3": "Weiter zu Schritt 3",
+    "label.go.step.4": "Weiter mit Schritt 4",
+    "label.go.step.5": "Weiter mit Schritt 5",
+    "label.gpu": "GPU",
+    "label.group": "Gruppe",
+    "label.group.by.account": "Nach Konto gruppieren",
+    "label.group.by.cluster": "Nach Cluster gruppieren",
+    "label.group.by.pod": "Gruppiert nach Pod",
+    "label.group.by.zone": "Nach Zone gruppieren",
+    "label.group.optional": "Gruppe (optional)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Zugewiesene Lastverteilung",
+    "label.gslb.assigned.lb.more": "Mehr Lastverteilung zuweisen",
+    "label.gslb.delete": "GSLB löschen",
+    "label.gslb.details": "GSLB-Details",
+    "label.gslb.domain.name": "GSLB-Domänenname",
+    "label.gslb.lb.details": "Lastverteilungsdetails",
+    "label.gslb.lb.remove": "Lastverteilung aus diesem GSLB entfernen",
+    "label.gslb.lb.rule": "Lastverteilungsregel",
+    "label.gslb.service": "GSLB-Dienst",
+    "label.gslb.service.private.ip": "GSLB-Dienst Private IP",
+    "label.gslb.service.public.ip": "GSLB-Dienst Öffentliche IP",
+    "label.gslb.servicetype": "Diensttyp",
+    "label.guest": "Gast",
+    "label.guest.cidr": "Gast CIDR",
+    "label.guest.end.ip": "Gast-End-IP",
+    "label.guest.gateway": "Gast-Schnittstelle",
+    "label.guest.ip": "Gast IP-Adresse",
+    "label.guest.ip.range": "Gast-IP-Bereich",
+    "label.guest.netmask": "Gast Netzmaske",
+    "label.guest.network.details": "Gastnetzwerkdetails",
+    "label.guest.networks": "Gastnetzwerke",
+    "label.guest.start.ip": "Gast-Start-IP",
+    "label.guest.traffic": "Gast-Datenverkehr",
+    "label.guest.traffic.vswitch.name": "Gast Datenverkehr vSwitch Name",
+    "label.guest.traffic.vswitch.type": "Gast Datenverkehr vSwitch Typ",
+    "label.guest.type": "Gasttyp",
+    "label.ha.enabled": "HA aktiviert",
+    "label.health.check": "Heath-Check",
+    "label.health.check.advanced.options": "Erweiterte Optionen:",
+    "label.health.check.configurations.options": "Konfigurationsoptionen:",
+    "label.health.check.interval.in.sec": "Gesundheitscheck-Interval (in Sek.)",
+    "label.health.check.message.desc": "Ihr Lastverteiler wird autmatisch Heath-Checks ausführen auf Ihren CloudStack Instanzen und nur Datenverkehr zu denjenigen Instanzen routen, welchen den Heath-Check bestehen.",
+    "label.health.check.wizard": "Health-Check Eingabehilfe",
+    "label.healthy.threshold": "Schwellwert gesund",
+    "label.help": "Hilfe",
+    "label.hide.ingress.rule": "Verstecke Regeln, die den Zutritt steuern",
+    "label.hints": "Hinweise",
+    "label.home": "Start",
+    "label.host": "Host",
+    "label.host.MAC": "Host-MAC",
+    "label.host.alerts": "Hosts im Alarmzustand",
+    "label.host.name": "Host Name",
+    "label.host.tag": "Host Tag",
+    "label.host.tags": "Markierungen des Hosts",
+    "label.hosts": "Hosts",
+    "label.hourly": "Stündlich",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Datenverkehrs-Bezeichnung",
+    "label.hypervisor": "Hypervisor",
+    "label.hypervisor.capabilities": "Hypervisorfähigkeiten",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Schnappschuss-Reserve",
+    "label.hypervisor.type": "Hypervisor Typ",
+    "label.hypervisor.version": "Hypervisor-Version",
+    "label.hypervisors": "Hypervisoren",
+    "label.id": "Identifikation",
+    "label.info": "Info",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Zutrittsregel",
+    "label.initiated.by": "Initiiert durch",
+    "label.inside.port.profile": "Inside Port Profil",
+    "label.installWizard.addClusterIntro.subtitle": "Was ist ein Cluster?",
+    "label.installWizard.addClusterIntro.title": "Cluster hinzufügen",
+    "label.installWizard.addHostIntro.subtitle": "Was ist ein Host?",
+    "label.installWizard.addHostIntro.title": "Host hinzufügen",
+    "label.installWizard.addPodIntro.subtitle": "Was ist ein Pod?",
+    "label.installWizard.addPodIntro.title": "Pod hinzufügen",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Was ist Primärspeicher?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Primärspeicher hinzufügen",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Was ist Sekundärspeicher?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Sekundärspeicher hinzufügen",
+    "label.installWizard.addZone.title": "Zone hinzufügen",
+    "label.installWizard.addZoneIntro.subtitle": "Was ist eine Zone?",
+    "label.installWizard.addZoneIntro.title": "Zone hinzufügen",
+    "label.installWizard.click.launch": "Bitte den Start-Knopf drücken",
+    "label.installWizard.subtitle": "Diese Führung wird Ihnen beim Aufsetzen Ihrer CloudStack&#8482 Installation behilflich sein.",
+    "label.installWizard.title": "Hallo und Willkommen bei CloudStack&#8482",
+    "label.instance": "Instanz",
+    "label.instance.limits": "Instanz-Limiten",
+    "label.instance.name": "Name der Instanz",
+    "label.instance.port": "Instanz-Port",
+    "label.instance.scaled.up": "Instanz wurde zum gewünschten Angebot skaliert",
+    "label.instances": "Instanzen",
+    "label.instanciate.template.associate.profile.blade": "Vorlage instanzieren und Profil zu Blade assoziieren",
+    "label.intermediate.certificate": "Intermediate Zertifikat {0}",
+    "label.internal.dns.1": "Interner DNS 1",
+    "label.internal.dns.2": "Interner DNS 2",
+    "label.internal.lb": "Interne LB",
+    "label.internal.lb.details": "Interne LB-Details",
+    "label.internal.name": "Interner Name",
+    "label.internallbvm": "Interne LV VM",
+    "label.interval.type": "Interval Typ",
+    "label.introduction.to.cloudstack": "Einführung in CloudStack&#8482",
+    "label.invalid.integer": "Ungültige Ganzzahl",
+    "label.invalid.number": "Ungültige Anzahl",
+    "label.invitations": "Einladungen",
+    "label.invite": "Einladen",
+    "label.invite.to": "Einladen zu",
+    "label.invited.accounts": "Eingeladene Konten",
+    "label.ip": "IP",
+    "label.ip.address": "IP-Adresse",
+    "label.ip.allocations": "IP-Zuweisungen",
+    "label.ip.limits": "Öffentliche IP-Begrenzungen",
+    "label.ip.or.fqdn": "IP oder FQDN",
+    "label.ip.range": "IP-Bereich",
+    "label.ip.ranges": "IP-Bereiche",
+    "label.ipaddress": "IP-Adresse",
+    "label.ips": "IPs",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 End-IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4-Netzmaske",
+    "label.ipv4.start.ip": "IPv4 Start-IP",
+    "label.ipv6.CIDR": "IPv6-CIDR",
+    "label.ipv6.address": "IPv6-IP-Adresse",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 End-IP",
+    "label.ipv6.gateway": "IPv6-Gateway",
+    "label.ipv6.start.ip": "IPv6 Start-IP",
+    "label.is.default": "Ist vorgegeben",
+    "label.is.redundant.router": "Redundant",
+    "label.is.shared": "Gemeinsam",
+    "label.is.system": "Ist System",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO-Boot",
+    "label.isolated.networks": "Isolierte Netzwerke",
+    "label.isolation.method": "Isolationsmethode",
+    "label.isolation.mode": "Isolationsmodus",
+    "label.isolation.uri": "Isolations-URI",
+    "label.item.listing": "Eintragsauflistung",
+    "label.japanese.keyboard": "Japanische Tastatur",
+    "label.keep": "Behalten",
+    "label.keep.colon": "Behalten:",
+    "label.key": "Schlüssel",
+    "label.keyboard.language": "Tastatursprache",
+    "label.keyboard.type": "Tastaturtyp",
+    "label.kvm.traffic.label": "KVM Datenverkehrs-Bezeichnung",
+    "label.label": "Bezeichnung",
+    "label.lang.arabic": "Arabisch",
+    "label.lang.brportugese": "Brasilianisches Portugiesisch",
+    "label.lang.catalan": "Katalanisch",
+    "label.lang.chinese": "Chinesisch (vereinfacht)",
+    "label.lang.dutch": "Niederländisch",
+    "label.lang.english": "Englisch",
+    "label.lang.french": "Französisch",
+    "label.lang.german": "Deutsch",
+    "label.lang.hungarian": "Ungarisch",
+    "label.lang.italian": "Italienisch",
+    "label.lang.japanese": "Japanisch",
+    "label.lang.korean": "Koreanisch",
+    "label.lang.norwegian": "Norwegisch",
+    "label.lang.polish": "Polnisch",
+    "label.lang.russian": "Russisch",
+    "label.lang.spanish": "Spanisch",
+    "label.last.disconnected": "Zuletzt getrennt",
+    "label.last.name": "Nachname",
+    "label.lastname.lower": "Nachname",
+    "label.latest.events": "Neueste Ereignisse",
+    "label.launch": "Start",
+    "label.launch.vm": "VM starten",
+    "label.launch.zone": "Zone starten",
+    "label.lb.algorithm.leastconn": "Mindestverbindungen",
+    "label.lb.algorithm.roundrobin": "Rundlauf-Verfahren",
+    "label.lb.algorithm.source": "Quelle",
+    "label.ldap.configuration": "LDAP-Konfiguration",
+    "label.ldap.group.name": "LDAP-Gruppe",
+    "label.ldap.link.type": "Typ",
+    "label.ldap.port": "LDAP-Port",
+    "label.level": "Ebene",
+    "label.link.domain.to.ldap": "Verbinde Domain mit LDAP",
+    "label.linklocal.ip": "Link-Local IP-Adresse",
+    "label.load.balancer": "Serverlastverteilung",
+    "label.load.balancer.type": "Lastverteilungstyp",
+    "label.load.balancing": "Lastverteilung",
+    "label.load.balancing.policies": "Verteilungsrichtlinien laden",
+    "label.loading": "Laden",
+    "label.local": "Lokal",
+    "label.local.file": "Lokale Datei",
+    "label.local.storage": "Lokaler Speicher",
+    "label.local.storage.enabled": "Ermögliche lokalen Speicher für Benutzer VMs",
+    "label.local.storage.enabled.system.vms": "Aktiviere lokaler Speicher für die System-VMs",
+    "label.login": "Login",
+    "label.logout": "Abmelden",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC Datenverkehrs-Bezeichnung",
+    "label.make.project.owner": "Mache Benutzerkonto zum Projekteigentümer",
+    "label.make.redundant": "Redundant machen",
+    "label.manage": "Verwalten",
+    "label.manage.resources": "Ressourcen verwalten",
+    "label.managed": "Verwaltet",
+    "label.management": "Verwaltung",
+    "label.management.ips": "Verwaltung IP-Adressen",
+    "label.management.server": "Verwaltungsserver",
+    "label.max.cpus": "Max. CPU-Kerne",
+    "label.max.guest.limit": "Maximales Limit für Anzahl der Gäste",
+    "label.max.instances": "Max Instanzen",
+    "label.max.memory": "Max. Speicher (MiB)",
+    "label.max.networks": "Max. Netzwerke",
+    "label.max.primary.storage": "Max. primärer (GiB)",
+    "label.max.public.ips": "Max. öffentliche IPs",
+    "label.max.secondary.storage": "Max. sekundärer (GiB)",
+    "label.max.snapshots": "Max. Schnappschüsse",
+    "label.max.templates": "Max. Vorlagen",
+    "label.max.vms": "Max. Benutzer-VMs",
+    "label.max.volumes": "Max. Volumen",
+    "label.max.vpcs": "Max. VPCs",
+    "label.maximum": "Maximum",
+    "label.may.continue": "Sie können jetzt fortfahren",
+    "label.md5.checksum": "MD5-Prüfsumme",
+    "label.memory": "Speicher (in MB)",
+    "label.memory.allocated": "zugeordneter Speicher",
+    "label.memory.limits": "Speicherbegrenzungen (MiB)",
+    "label.memory.mb": "Speicher (in MB)",
+    "label.memory.total": "Speicher insgesamt",
+    "label.memory.used": "Genutzter Speicher",
+    "label.menu.accounts": "Benutzerkonten",
+    "label.menu.alerts": "Alarme",
+    "label.menu.all.accounts": "Alle Konten",
+    "label.menu.all.instances": "Alle Instanzen",
+    "label.menu.community.isos": "Gemeinschaft ISOs",
+    "label.menu.community.templates": "Gemeinschaft Vorlagen",
+    "label.menu.configuration": "Konfiguration",
+    "label.menu.dashboard": "Dashboard",
+    "label.menu.destroyed.instances": "Zerstörte Instanzen",
+    "label.menu.disk.offerings": "Festplattenangebote",
+    "label.menu.domains": "Domains",
+    "label.menu.events": "Events",
+    "label.menu.featured.isos": "Empfohlene ISOs",
+    "label.menu.featured.templates": "Empfohlene Vorlagen",
+    "label.menu.global.settings": "Allgemeine Einstellungen",
+    "label.menu.infrastructure": "Infrastruktur",
+    "label.menu.instances": "Instanzen",
+    "label.menu.ipaddresses": "IP-Adressen",
+    "label.menu.isos": "ISOs",
+    "label.menu.my.accounts": "Meine Konten",
+    "label.menu.my.instances": "Meine Fälle",
+    "label.menu.my.isos": "Meine ISOs",
+    "label.menu.my.templates": "Meine Vorlagen",
+    "label.menu.network": "Netzwerk",
+    "label.menu.network.offerings": "Netzwerkangebote",
+    "label.menu.physical.resources": "Technische Ressourcen",
+    "label.menu.regions": "Regionen",
+    "label.menu.running.instances": "Laufende Instanzen",
+    "label.menu.security.groups": "Sicherheitsgruppen",
+    "label.menu.service.offerings": "Dienstangebote",
+    "label.menu.snapshots": "Schnappschüsse",
+    "label.menu.sshkeypair": "SSH-Schlüsselpaar",
+    "label.menu.stopped.instances": "Beendete Instanzen",
+    "label.menu.storage": "Speicher",
+    "label.menu.system": "System",
+    "label.menu.system.service.offerings": "Systemangebote",
+    "label.menu.system.vms": "System-VMs",
+    "label.menu.templates": "Vorlagen",
+    "label.menu.virtual.appliances": "Virtuelle Appliances",
+    "label.menu.virtual.resources": "Virtuelle Ressourcen",
+    "label.menu.volumes": "Volumina",
+    "label.menu.vpc.offerings": "VPC-Angebote",
+    "label.metrics": "Metriken",
+    "label.metrics.allocated": "Zugeteilt",
+    "label.metrics.clusters": "Cluster",
+    "label.metrics.cpu.allocated": "CPU Zuteilung",
+    "label.metrics.cpu.max.dev": "Abweichung",
+    "label.metrics.cpu.total": "Gesamt",
+    "label.metrics.cpu.usage": "CPU Benutzung",
+    "label.metrics.cpu.used.avg": "Gebraucht",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "Zugeteilt",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Lesen",
+    "label.metrics.disk.size": "Größe",
+    "label.metrics.disk.storagetype": "Typ",
+    "label.metrics.disk.total": "Gesamt",
+    "label.metrics.disk.unallocated": "Unbelegt",
+    "label.metrics.disk.usage": "Festplattennutzung",
+    "label.metrics.disk.used": "Gebraucht",
+    "label.metrics.disk.write": "Schreiben",
+    "label.metrics.hosts": "Hosts",
+    "label.metrics.memory.allocated": "Speicher Belegung",
+    "label.metrics.memory.max.dev": "Abweichung",
+    "label.metrics.memory.total": "Gesamt",
+    "label.metrics.memory.usage": "Speichernutzung",
+    "label.metrics.memory.used.avg": "Gebraucht",
+    "label.metrics.name": "Name",
+    "label.metrics.network.read": "Lesen",
+    "label.metrics.network.usage": "Netzwerk Nutzung",
+    "label.metrics.network.write": "Schreiben",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Betriebszustand",
+    "label.metrics.property": "Eigentum",
+    "label.metrics.scope": "Geltungsbereich",
+    "label.metrics.state": "Status",
+    "label.metrics.storagepool": "Speicher-Pool",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "Instanz migrieren zu",
+    "label.migrate.instance.to.host": "Instanz auf einen anderen Host migrieren",
+    "label.migrate.instance.to.ps": "Instanz auf einen anderen Primärspeicher migrieren",
+    "label.migrate.lb.vm": "LB-VM migrieren",
+    "label.migrate.router.to": "Router migrieren zu",
+    "label.migrate.systemvm.to": "System-VM migrieren zu",
+    "label.migrate.to.host": "Zu Host migrieren",
+    "label.migrate.to.storage": "Zu Speicher migrieren",
+    "label.migrate.volume": "Volumen migrieren",
+    "label.migrate.volume.to.primary.storage": "Migriere ein Speichervolumen zu einem anderen Hauptspeicher",
+    "label.min.instances": "Min Instanzen",
+    "label.min.past.the.hr": "min seit Std. vergangen",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "Minute(n) seit der Stunde vergangen",
+    "label.minutes.past.hour": "Minute(n) seit der Stunde vergangen",
+    "label.mode": "Modus",
+    "label.monday": "Montag",
+    "label.monthly": "Monatlich",
+    "label.more.templates": "Mehr Vorlagen",
+    "label.move.down.row": "Eine Zeile nach unten verschieben",
+    "label.move.to.bottom": "Nach unten verschieben",
+    "label.move.to.top": "Nach oben verschieben",
+    "label.move.up.row": "Eine Zeile nach oben verschieben",
+    "label.my.account": "Ihr Benutzerkonto",
+    "label.my.network": "Mein Netzwerk",
+    "label.my.templates": "Meine Vorlagen",
+    "label.na": "N/V",
+    "label.name": "Name",
+    "label.name.lower": "Name",
+    "label.name.optional": "Name (Optional)",
+    "label.nat.port.range": "NAT-Portbereich",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Netzmaske",
+    "label.netscaler.details": "NetScaler-Details",
+    "label.network": "Netzwerk",
+    "label.network.ACL": "Netzwerk-ACL",
+    "label.network.ACL.total": "Netzwerk-ACL Total",
+    "label.network.ACLs": "Netzwerk-ACLs",
+    "label.network.addVM": "Netzwerk zur VM hinzufügen",
+    "label.network.cidr": "Netzwerk-CIDR",
+    "label.network.desc": "Netzwerkbeschreibung",
+    "label.network.details": "Netzwerkdetails",
+    "label.network.device": "Netzwerkgerät",
+    "label.network.device.type": "Netzwerkgerätetyp",
+    "label.network.domain": "Netzwerk-Domain",
+    "label.network.domain.text": "Netzwerkdomäne",
+    "label.network.id": "Netzwerk-ID",
+    "label.network.label.display.for.blank.value": "Standard-Gateway verwenden",
+    "label.network.limits": "Netzwerkbegrenzungen",
+    "label.network.name": "Netzwerk Name",
+    "label.network.offering": "Netzwerkangebot",
+    "label.network.offering.details": "Netzwerkangebotdetails",
+    "label.network.offering.display.text": "Netzwerkangebot-Anzeigetext",
+    "label.network.offering.id": "Netzwerkangebotskennung",
+    "label.network.offering.name": "Netzwerkangebotsname",
+    "label.network.rate": "Netzwerk-Rate",
+    "label.network.rate.megabytes": "Netzwerkrate (MB/s)",
+    "label.network.read": "Netzwerk Lesen",
+    "label.network.service.providers": "Netzwerkdienstanbieter",
+    "label.network.type": "Netzwerk-Typ",
+    "label.network.write": "Netzwerk Schreiben",
+    "label.networking.and.security": "Netzwerkbetrieb und Sicherheit",
+    "label.networks": "Netzwerke",
+    "label.new": "Neu",
+    "label.new.password": "Neues Passwort",
+    "label.new.project": "Neues Projekt",
+    "label.new.ssh.key.pair": "Neues SSH-Schlüsselpaar",
+    "label.new.vm": "Neue VM",
+    "label.next": "Weiter",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS Server",
+    "label.nfs.storage": "NFS-Speicher",
+    "label.nic.adapter.type": "NIC-Adaptertyp",
+    "label.nicira.controller.address": "Controller-Adresse",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP-Details",
+    "label.nicira.transportzoneuuid": "Transportzone Uuid",
+    "label.nics": "NICs",
+    "label.no": "Nein",
+    "label.no.actions": "Nicht verfügbare Aktionen",
+    "label.no.alerts": "Keine aktuellen Alarme",
+    "label.no.data": "Keine anzuzeigenden Daten",
+    "label.no.errors": "Keine neuen Fehler",
+    "label.no.grouping": "(keine Gruppierung)",
+    "label.no.isos": "Kein verfügbaren ISOs",
+    "label.no.items": "Keine verfügbaren Einträge",
+    "label.no.security.groups": "Keine verfügbare Sicherheitsgruppe",
+    "label.no.thanks": "Nein, danke",
+    "label.none": "Kein",
+    "label.not.found": "Nicht gefunden",
+    "label.notifications": "Benachrichtigungen",
+    "label.num.cpu.cores": "Anzahl an CPU-Kernen",
+    "label.number.of.clusters": "Anzahl der Cluster",
+    "label.number.of.cpu.sockets": "Die Anzahl der CPU-Sockeln",
+    "label.number.of.hosts": "Anzahl an Hosts",
+    "label.number.of.pods": "Anzahl Pods",
+    "label.number.of.system.vms": "Anzahl an System-VMs",
+    "label.number.of.virtual.routers": "Anzahl an virtuellen Routern",
+    "label.number.of.zones": "Anzahl an Zonen",
+    "label.numretries": "Anzahl von Wiederholungen",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "des Monats",
+    "label.offer.ha": "HA anbieten",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight Controller",
+    "label.opendaylight.controllerdetail": "OpenDayight Controller Details",
+    "label.opendaylight.controllers": "OpenDaylight Controller",
+    "label.operator": "Betreiber",
+    "label.optional": "optional",
+    "label.order": "Reihenfolge",
+    "label.os.preference": "OS Präferenz",
+    "label.os.type": "OS Typ",
+    "label.other": "Andere",
+    "label.outofbandmanagement": "Out-of-band Verwaltung",
+    "label.outofbandmanagement.action": "Aktion",
+    "label.outofbandmanagement.action.issue": "Eine Out-of-band Verwaltungs-Strom Aktion durchführen",
+    "label.outofbandmanagement.address": "Adresse",
+    "label.outofbandmanagement.changepassword": "Passwort für Out-of-band Verwaltung ändern",
+    "label.outofbandmanagement.configure": "Out-of-band Verwaltung konfigurieren",
+    "label.outofbandmanagement.disable": "Out-of-band Verwaltung deaktivieren",
+    "label.outofbandmanagement.driver": "Treiber",
+    "label.outofbandmanagement.enable": "Out-of-band Verwaltung aktivieren",
+    "label.outofbandmanagement.password": "Passwort",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Passwort erneut eingeben",
+    "label.outofbandmanagement.username": "Benutzername",
+    "label.override.guest.traffic": "Gast-Datenverkehr überschreiben",
+    "label.override.public.traffic": "Öffentlichen Datenverkehr überschreiben",
+    "label.ovm.traffic.label": "OVM Datenverkehrs-Bezeichnung",
+    "label.ovm3.cluster": "Natives Clustering",
+    "label.ovm3.pool": "Natives Pooling",
+    "label.ovm3.traffic.label": "OVM3 Datenverkehrs-Bezeichnung",
+    "label.ovm3.vip": "Master Vip IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Ihnen gehörende öffentliche IP-Adressen",
+    "label.owner.account": "Eigentümerkonto",
+    "label.owner.domain": "Eigentümerdomäne",
+    "label.palo.alto.details": "Palo Alto-Details",
+    "label.parent.domain": "Übergeordnete Domäne",
+    "label.passive": "Passiv",
+    "label.password": "Passwort",
+    "label.password.enabled": "Passwort aktiviert",
+    "label.password.lower": "Passwort",
+    "label.password.reset.confirm": "Passwort wurde zurückgesetzt auf",
+    "label.path": "Pfad",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Berechtigung",
+    "label.persistent": "Persistent",
+    "label.physical.network": "Physikalisches Netzwerk",
+    "label.physical.network.ID": "Physikalisches Netzwerkkennung",
+    "label.physical.network.name": "Name des physischen Netzwerks",
+    "label.ping.path": "Ping-Pfad",
+    "label.planner.mode": "Planungs Modus",
+    "label.please.complete.the.following.fields": "Bitte vervollständigen Sie die folgenden Felder",
+    "label.please.specify.netscaler.info": "Bitte Netscaler-Info definieren",
+    "label.please.wait": "Bitte warten",
+    "label.plugin.details": "Plugindetails",
+    "label.plugins": "Plugins",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod dediziert",
+    "label.pod.name": "Podname",
+    "label.pods": "Pod",
+    "label.polling.interval.sec": "Abfrageintervall (in Sekunden)",
+    "label.port": "Port",
+    "label.port.forwarding": "Portweiterleitung",
+    "label.port.forwarding.policies": "Portweiterleitungsrichtlinien",
+    "label.port.range": "Portbereich",
+    "label.portable.ip": "Portable IP",
+    "label.portable.ip.range.details": "Portable IP-Bereichsdetails",
+    "label.portable.ip.ranges": "Portable IP-Bereiche",
+    "label.portable.ips": "Portable IPs",
+    "label.powerstate": "Betriebszustand",
+    "label.prev": "Vor",
+    "label.previous": "Vorherige",
+    "label.primary.allocated": "Zugewiesener Hauptspeicher",
+    "label.primary.network": "Hauptnetzwerk",
+    "label.primary.storage": "Hauptspeicher",
+    "label.primary.storage.count": "Hauptspeicher-Pools",
+    "label.primary.storage.limits": "Hauptspeicher-Limits (GiB)",
+    "label.primary.used": "Genutzter Hauptspeicher",
+    "label.private.Gateway": "Privater Gateway",
+    "label.private.interface": "Privates Interface",
+    "label.private.ip": "Private IP-Adresse",
+    "label.private.ip.range": "Privater IP-Bereich",
+    "label.private.ips": "Private IP-Adressen",
+    "label.private.key": "Privater Schlüssel",
+    "label.private.network": "Privates Netzwerk",
+    "label.private.port": "Privater Port",
+    "label.private.zone": "Private Zone",
+    "label.privatekey": "PKCS#8 Privater Schlüssel",
+    "label.profile": "Profil",
+    "label.project": "Projekt",
+    "label.project.dashboard": "Projektübersichtsseite",
+    "label.project.id": "Projektkennung",
+    "label.project.invite": "Zum Projekt einladen",
+    "label.project.name": "Projektname",
+    "label.project.view": "Projektansicht",
+    "label.projects": "Projekte",
+    "label.protocol": "Protokoll",
+    "label.protocol.number": "Protokollnummer",
+    "label.provider": "Anbieter",
+    "label.providers": "Anbieter",
+    "label.public": "Öffentlich",
+    "label.public.interface": "Öffentliches Interface",
+    "label.public.ip": "Öffentliche IP-Adresse",
+    "label.public.ips": "Öffentliche IP-Adressen",
+    "label.public.key": "Öffentlicher Schlüssel",
+    "label.public.lb": "Öffentliche LB",
+    "label.public.load.balancer.provider": "Öffentlicher Lastverteileranbieter",
+    "label.public.network": "Öffentliches Netzwerk",
+    "label.public.port": "Öffentlicher Port",
+    "label.public.traffic": "Öffentlicher Datenverkehr",
+    "label.public.traffic.vswitch.name": "Öffentlicher Datenverkehr vSwitch Name",
+    "label.public.traffic.vswitch.type": "Öffentlicher Datenverkehr vSwitch Typ",
+    "label.public.zone": "Öffentliche Zone",
+    "label.purpose": "Zweck",
+    "label.qos.type": "QoS-Typ",
+    "label.quickview": "Schnellansicht",
+    "label.quiesce.vm": "VM stilllegen",
+    "label.quiet.time.sec": "Ruhezeit (in Sekunden)",
+    "label.quota.add.credits": "Guthaben hinzufügen",
+    "label.quota.balance": "Abgleich",
+    "label.quota.configuration": "Konfiguration der Quota",
+    "label.quota.configure": "Konfiguriere eine Quota",
+    "label.quota.credit": "Guthaben",
+    "label.quota.credits": "Guthaben",
+    "label.quota.date": "Datum",
+    "label.quota.dates": "Aktualisierung der Daten",
+    "label.quota.description": "Beschreibung der Quota",
+    "label.quota.email.body": "Körper",
+    "label.quota.email.lastupdated": "Letzte Aktualisierung",
+    "label.quota.email.subject": "Thema",
+    "label.quota.email.template": "Email Vorlage",
+    "label.quota.enddate": "Enddatum",
+    "label.quota.endquota": "Quota Ende",
+    "label.quota.enforcequota": "Erzwinge eine Quota",
+    "label.quota.fullsummary": "Alle Konten",
+    "label.quota.minbalance": "Min Abrechnung",
+    "label.quota.remove": "Eine Quota löschen",
+    "label.quota.startdate": "Startdatum",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "Status",
+    "label.quota.statement": "Aussage",
+    "label.quota.statement.balance": "Quota Abrechnung",
+    "label.quota.statement.bydates": "Aussage",
+    "label.quota.statement.quota": "Quota Verbrauch",
+    "label.quota.statement.tariff": "Quota Tarif",
+    "label.quota.summary": "Summe",
+    "label.quota.tariff": "Tarif",
+    "label.quota.tariff.edit": "Tarif bearbeiten",
+    "label.quota.tariff.effectivedate": "Anwendungsdatum",
+    "label.quota.tariff.value": "Tarif Wert",
+    "label.quota.total": "Gesamt",
+    "label.quota.totalusage": "Gesamte Nutzung",
+    "label.quota.type.name": "Art der Auslastung",
+    "label.quota.type.unit": "Verbrauch der Einheit",
+    "label.quota.usage": "Verbrauch der Quota",
+    "label.quota.value": "Wert der Quota",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx-Benutzer",
+    "label.rbd.monitor": "Ceph-Überwachung",
+    "label.rbd.pool": "Ceph-Pool",
+    "label.rbd.secret": "Cephx-Geheimnis",
+    "label.reboot": "Neustart",
+    "label.recent.errors": "Aktuelle Fehler",
+    "label.recover.vm": "VM wiederherstellen",
+    "label.redundant.router": "Redundanter Router",
+    "label.redundant.router.capability": "Redundanter Router Kapazität",
+    "label.redundant.state": "Redundanter Status",
+    "label.redundant.vpc": "Redundante VPC",
+    "label.refresh": "Aktualisieren",
+    "label.refresh.blades": "Blades aktualisieren",
+    "label.region": "Region",
+    "label.region.details": "Regiondetails",
+    "label.regionlevelvpc": "Region Level VPC",
+    "label.reinstall.vm": "VM neu installieren",
+    "label.related": "Verwandt",
+    "label.release.account": "Vom Benutzerkonto loslösen",
+    "label.release.account.lowercase": "Vom Benutzerkonto loslösen",
+    "label.release.dedicated.cluster": "Dedizierter Cluster loslösen",
+    "label.release.dedicated.host": "Dedizierter Host loslösen",
+    "label.release.dedicated.pod": "Dedizierter Pod freigeben",
+    "label.release.dedicated.vlan.range": "Dedizierter VLAN/VNI Bereich loslösen",
+    "label.release.dedicated.zone": "Dedizierte Zone loslösen",
+    "label.remind.later": "Später erinnern",
+    "label.remove.ACL": "ACL entfernen",
+    "label.remove.egress.rule": "Egress Regel entfernen",
+    "label.remove.from.load.balancer": "Instanz von Lastverteiler entfernen",
+    "label.remove.ingress.rule": "Ingress Regel entfernen",
+    "label.remove.ip.range": "IP-Bereich entfernen",
+    "label.remove.ldap": "LDAP entfernen",
+    "label.remove.network.offering": "Netzwerkangebot entfernen",
+    "label.remove.pf": "Portweiterleitungsregel entfernen",
+    "label.remove.project.account": "Konto aus Projekt entfernen",
+    "label.remove.region": "Region entfernen",
+    "label.remove.rule": "Regel entfernen",
+    "label.remove.ssh.key.pair": "SSH-Schlüsselpaar entfernen",
+    "label.remove.static.nat.rule": "Statische NAT-Regel entfernen",
+    "label.remove.static.route": "Statische Route entfernen",
+    "label.remove.this.physical.network": "Dieses physikalische Netzwerk entfernen",
+    "label.remove.tier": "Ebene entfernen",
+    "label.remove.vm.from.lb": "VM von Lastverteiler-Regel entfernen",
+    "label.remove.vm.load.balancer": "VM aus Lastverteiler entfernen",
+    "label.remove.vmware.datacenter": "VMware-Rechenzentrum entfernen",
+    "label.remove.vpc": "VPC entfernen",
+    "label.remove.vpc.offering": "VPC-Angebot entfernen",
+    "label.removing": "am Entfernen",
+    "label.removing.user": "Entfernen von Benutzern",
+    "label.reource.id": "Ressourcenkennung",
+    "label.replace.acl": "ACL ersetzen",
+    "label.replace.acl.list": "ACL-Liste ersetzen",
+    "label.required": "Erforderlich",
+    "label.requires.upgrade": "Erfordert Aktualisierung",
+    "label.reserved.ip.range": "Reservierter IP-Bereich",
+    "label.reserved.system.gateway": "Reservierter System-Gateway",
+    "label.reserved.system.ip": "Reservierte System-IP",
+    "label.reserved.system.netmask": "Reservierte System-Netzmaske",
+    "label.reset.VPN.connection": "VPN-Verbindung zurücksetzen",
+    "label.reset.ssh.key.pair": "SSH-Schlüsselpaar zurücksetzen",
+    "label.reset.ssh.key.pair.on.vm": "SSH-Schlüsselpaar auf VM zurücksetzen",
+    "label.resetVM": "VM zurücksetzen",
+    "label.resize.new.offering.id": "Neues Angebot",
+    "label.resize.new.size": "Neue Größe (GB)",
+    "label.resize.shrink.ok": "Verkleinern OK",
+    "label.resource": "Ressource",
+    "label.resource.limit.exceeded": "Ressourcenbegrenzung erreicht",
+    "label.resource.limits": "Ressourcenbegrenzungen",
+    "label.resource.name": "Ressourcenname",
+    "label.resource.state": "Ressourcenstatus",
+    "label.resources": "Ressourcen",
+    "label.response.timeout.in.sec": "Zeitüberschreitung der Antworkt (in Sek.)",
+    "label.restart.network": "Netzwerk neu starten",
+    "label.restart.required": "Neustart erforderlich",
+    "label.restart.vpc": "VPC neu starten",
+    "label.restore": "Wiederherstellen",
+    "label.retry.interval": "Wiederversuchs-Interval",
+    "label.review": "Nachprüfung",
+    "label.revoke.project.invite": "Einladung widerrufen",
+    "label.role": "Rolle",
+    "label.roles": "Rollen",
+    "label.roletype": "Rollentyp",
+    "label.root.certificate": "Root-Zertifikat",
+    "label.root.disk.controller": "Root-Festplatten-Controller",
+    "label.root.disk.offering": "Root-Festplattenangebot",
+    "label.root.disk.size": "Root-Festplattengröße",
+    "label.router.vm.scaled.up": "Router VM hochskaliert",
+    "label.routing": "Routing",
+    "label.routing.host": "Routing Host",
+    "label.rule": "Regel",
+    "label.rule.number": "Regelnummer",
+    "label.rules": "Regeln",
+    "label.running.vms": "Laufende VMs",
+    "label.s3.access_key": "Zugriffsschlüssel",
+    "label.s3.bucket": "Bucket",
+    "label.s3.connection_timeout": "Verbindungszeitüberschreitung",
+    "label.s3.endpoint": "Endpunkt",
+    "label.s3.max_error_retry": "Maximale Fehlerwiederholungen",
+    "label.s3.nfs.path": "S3 NFS-Pfad",
+    "label.s3.nfs.server": "S3 NFS-Server",
+    "label.s3.secret_key": "Secret Key",
+    "label.s3.socket_timeout": "Socket-Zeitüberschreitung",
+    "label.s3.use_https": "HTTPS verwenden",
+    "label.saml.enable": "Autorisiere SAML SSO",
+    "label.saml.entity": "Identitätsanbieter",
+    "label.saturday": "Samstag",
+    "label.save": "Sichern",
+    "label.save.and.continue": "Speichern und fortsetzen",
+    "label.save.changes": "Änderungen speichern",
+    "label.saving.processing": "Speichern....",
+    "label.scale.up.policy": "HOCHSKALIERUNGSRICHTLINIE",
+    "label.scaledown.policy": "Herunterskalierungs-Richtlinie",
+    "label.scaleup.policy": "Hochskalierungs-Richtlinie",
+    "label.scope": "Geltungsbereich",
+    "label.search": "Suche",
+    "label.secondary.ips": "Sekundäre IPs",
+    "label.secondary.isolated.vlan.id": "Sekundäre isolierte VLAN ID",
+    "label.secondary.staging.store": "Sekundärer Staging Store",
+    "label.secondary.staging.store.details": "Sekundärer Staging Store Details",
+    "label.secondary.storage": "Sekundärspeicher",
+    "label.secondary.storage.count": "Sekundärespeicher-Pools",
+    "label.secondary.storage.details": "Sekundärspeicherdetails",
+    "label.secondary.storage.limits": "Sekundärspeicherbegrenzungen (GiB)",
+    "label.secondary.storage.vm": "Sekundärspeicher-VM",
+    "label.secondary.used": "Genutzter Sekundärspeicher",
+    "label.secret.key": "Secret Key",
+    "label.security.group": "Sicherheitsgruppe",
+    "label.security.group.name": "Sicherheitsgruppen-Name",
+    "label.security.groups": "Sicherheitsgruppen",
+    "label.security.groups.enabled": "Sicherheitsgruppe aktiviert",
+    "label.select": "Auswählen",
+    "label.select-view": "Ansicht auswählen",
+    "label.select.a.template": "Vorlage auswählen",
+    "label.select.a.zone": "Zone auswählen",
+    "label.select.instance": "Instanz auswählen",
+    "label.select.instance.to.attach.volume.to": "Instanz wählen an welche das Volumen angefügt wird",
+    "label.select.iso.or.template": "ISO oder Vorlage auswählen",
+    "label.select.offering": "Angebot auswählen",
+    "label.select.project": "Projekt auswählen",
+    "label.select.region": "Region auswählen",
+    "label.select.template": "Vorlage auswählen",
+    "label.select.tier": "Ebene auswählen",
+    "label.select.vm.for.static.nat": "VM für statisches NAT auswählen",
+    "label.sent": "Versendet",
+    "label.server": "Server",
+    "label.service.capabilities": "Dienstfähigkeiten",
+    "label.service.offering": "Dienstangebot",
+    "label.service.offering.details": "Dienstangebotdetails",
+    "label.service.state": "Dienststatus",
+    "label.services": "Dienste",
+    "label.session.expired": "Sitzung abgelaufen",
+    "label.set.default.NIC": "Standard-NIC festlegen",
+    "label.set.up.zone.type": "Zonentyp einrichten",
+    "label.settings": "Einstellungen",
+    "label.setup": "Konfiguration",
+    "label.setup.network": "Netzwerk einrichten",
+    "label.setup.zone": "Zone einrichten",
+    "label.shared": "Gemeinsame",
+    "label.show.advanced.settings": "Erweiterte Einstellungen anzeigen",
+    "label.show.ingress.rule": "Zeige Regeln, die den Zutritt steuern",
+    "label.shutdown.provider": "Herunterfahrungs-Anbieter",
+    "label.simplified.chinese.keyboard": "Vereinfachte Chinesische Tastatur",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Größe",
+    "label.skip.guide": "Ich habe CloudStack bereits vorher benutzt, diese Hilfe überspringen",
+    "label.smb.domain": "SMB-Domäne",
+    "label.smb.password": "SMB-Passwort",
+    "label.smb.username": "SMB-Benutzername",
+    "label.snapshot": "Schnappschuss",
+    "label.snapshot.limits": "Schnappschuss Grenzen",
+    "label.snapshot.name": "Schnappschuss Name",
+    "label.snapshot.s": "Schnappschüsse",
+    "label.snapshot.schedule": "Wiederkehrende Schnappschüsse einrichten",
+    "label.snapshots": "Schnappschüsse",
+    "label.sockets": "CPU-Sockets",
+    "label.source.ip.address": "Quell IP-Adresse",
+    "label.source.nat": "Source NAT",
+    "label.source.nat.supported": "SourceNAT unterstützt",
+    "label.source.port": "Port der Quelle",
+    "label.specify.IP.ranges": "IP-Bereiche angeben",
+    "label.specify.vlan": "VLAN angeben",
+    "label.specify.vxlan": "VXLAN angeben",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX-Details",
+    "label.ssh.key.pair": "SSH-Schlüsselpaar",
+    "label.ssh.key.pair.details": "SSH-Schlüsselpaardetails",
+    "label.ssh.key.pairs": "SSH-Schlüsselpaare",
+    "label.standard.us.keyboard": "Standard-(US)-Tastatur",
+    "label.start.IP": "Start-IP",
+    "label.start.lb.vm": "LB-VM starten",
+    "label.start.port": "Startport",
+    "label.start.reserved.system.IP": "Reservierte System-IP starten",
+    "label.start.vlan": "Start VLAN",
+    "label.start.vxlan": "VXLAN starten",
+    "label.state": "Status",
+    "label.static.nat": "Statische NAT",
+    "label.static.nat.enabled": "Statisches NAT eingeschaltet",
+    "label.static.nat.to": "Statisches NAT nach",
+    "label.static.nat.vm.details": "Statisches NAT VM Details",
+    "label.static.routes": "Statische Routen",
+    "label.statistics": "Statistiken",
+    "label.status": "Status",
+    "label.step.1": "Schritt 1",
+    "label.step.1.title": "Schritt 1: <strong>Wählen Sie eine Vorlage aus</strong>",
+    "label.step.2": "Schritt 2",
+    "label.step.2.title": "Schritt 2: <strong>Dienstangebot</strong>",
+    "label.step.3": "Schritt 3",
+    "label.step.3.title": "Schritt 3: <strong id=\"step3_label\">Wählen Sie ein Festplattenangebot aus</strong>",
+    "label.step.4": "Schritt 4",
+    "label.step.4.title": "Schritt 4: <strong>Netzwerk</strong>",
+    "label.step.5": "Schritt 5",
+    "label.step.5.title": "Schritt 5: <strong>Überprüfung</strong>",
+    "label.stickiness": "Klebrigkeit",
+    "label.stickiness.method": "Stickness-Methode",
+    "label.sticky.cookie-name": "Cookiename",
+    "label.sticky.domain": "Domain",
+    "label.sticky.expire": "Läuft ab",
+    "label.sticky.holdtime": "Haltezeit",
+    "label.sticky.indirect": "Indirekt",
+    "label.sticky.length": "Länge",
+    "label.sticky.mode": "Modus",
+    "label.sticky.name": "Sticky-Name",
+    "label.sticky.nocache": "Kein Cache",
+    "label.sticky.postonly": "nur Post",
+    "label.sticky.prefix": "Präfix",
+    "label.sticky.request-learn": "Verlange zu lernen",
+    "label.sticky.tablesize": "Tabellengröße",
+    "label.stop": "Stopp",
+    "label.stop.lb.vm": "LB-VM stoppen",
+    "label.stopped.vms": "Gestoppte VMs",
+    "label.storage": "Speicher",
+    "label.storage.pool": "Speicher-Pool",
+    "label.storage.tags": "Datenspeicher-Markierung",
+    "label.storage.traffic": "Datenspeicherverkehr",
+    "label.storage.type": "Speichertyp",
+    "label.subdomain.access": "Subdomain-Zugriff",
+    "label.submit": "Absenden",
+    "label.submitted.by": "[Eingereicht von: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Erfolgreich",
+    "label.sunday": "Sonntag",
+    "label.super.cidr.for.guest.networks": "Super CIDR für Gast-Netzwerke",
+    "label.supported.services": "Unterstützte Dienste",
+    "label.supported.source.NAT.type": "Unterstützter Source-NAT-Typ",
+    "label.supportsstrechedl2subnet": "Untersützt Streched L2 Subnet",
+    "label.supportspublicaccess": "Unterstützt öffentlichen Zugriff",
+    "label.suspend.project": "Projekt suspendieren",
+    "label.switch.type": "Switch Typ",
+    "label.system.capacity": "Systemkapazität",
+    "label.system.offering": "Systemangebot",
+    "label.system.offering.for.router": "Systemangebot für Router",
+    "label.system.service.offering": "Systemdienstangebot",
+    "label.system.service.offering.details": "Systemdienstangebotdetails",
+    "label.system.vm": "System-VM",
+    "label.system.vm.details": "System-VM-Details",
+    "label.system.vm.scaled.up": "System-VM hochskaliert",
+    "label.system.vm.type": "System-VM-Typ",
+    "label.system.vms": "System-VMs",
+    "label.system.wide.capacity": "Systemweite Kapazität",
+    "label.tag.key": "Schlagwortschlüssel",
+    "label.tag.value": "Schlagwortwert",
+    "label.tagged": "Markiert",
+    "label.tags": "Markierungen",
+    "label.target.iqn": "Ziel-IQN",
+    "label.task.completed": "Aufgabe fertiggestellt",
+    "label.template": "Vorlage",
+    "label.template.limits": "Vorlagenbegrenzungen",
+    "label.tftp.root.directory": "Tftp root-Verzeichnis",
+    "label.theme.default": "Motiv-Standardeinstellung",
+    "label.theme.grey": "Benutzerdefiniert - Grau",
+    "label.theme.lightblue": "Benutzerdefiniert - Hellblau",
+    "label.threshold": "Schwellenwert",
+    "label.thursday": "Donnerstag",
+    "label.tier": "Ebene",
+    "label.tier.details": "Ebenendetails",
+    "label.time": "Zeit",
+    "label.time.colon": "Zeit:",
+    "label.time.zone": "Zeitzone",
+    "label.timeout": "Zeitüberschreitung",
+    "label.timeout.in.second ": " Zeitüberschreitung (Sekunden)",
+    "label.timezone": "Zeitzone",
+    "label.timezone.colon": "Zeitzone:",
+    "label.token": "Token",
+    "label.total.CPU": "Gesamtanzahl CPU",
+    "label.total.cpu": "Gesamtanzahl CPU",
+    "label.total.hosts": "Gesamtanzahl Hosts",
+    "label.total.memory": "Gesamter Speicher",
+    "label.total.of.ip": "Gesamtzahl der IP-Adressen",
+    "label.total.of.vm": "Gesamtanzahl VMs",
+    "label.total.storage": "Gesamter Speicher",
+    "label.total.virtual.routers": "Total an virtuellen Routern",
+    "label.total.virtual.routers.upgrade": "Total an virtuellen Routern, welche ein Softwareupgrade benötigen",
+    "label.total.vms": "Gesamtanzahl VMs",
+    "label.traffic.label": "Datenverkehrsbezeichnung",
+    "label.traffic.type": "Datenverkehrstyp",
+    "label.traffic.types": "Datenverkehrstypen",
+    "label.tuesday": "Dienstag",
+    "label.type": "Typ",
+    "label.type.id": "Typenkennung",
+    "label.type.lower": "Typ",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK-Tastatur",
+    "label.unavailable": "Nicht verfügbar",
+    "label.unhealthy.threshold": "Schwellwert ungesund",
+    "label.unlimited": "Unbegrenzt",
+    "label.untagged": "Unmarkiert",
+    "label.update.project.resources": "Projektressourcen aktualisieren",
+    "label.update.ssl": " SSL-Zertifikat",
+    "label.update.ssl.cert": " SSL-Zertifikat",
+    "label.updating": "Aktualisierungsvorgang",
+    "label.upgrade.required": "Aktualisierung ist erforderlich",
+    "label.upgrade.router.newer.template": "Router upgraden um neuere Vorlage zu verwenden",
+    "label.upload": "Hochladen",
+    "label.upload.from.local": "Von lokal hochladen",
+    "label.upload.template.from.local": "Vorlage von lokal hochladen",
+    "label.upload.volume": "Volumen hochladen",
+    "label.upload.volume.from.local": "Volumen von lokal hochladen",
+    "label.upload.volume.from.url": "Volumen von URL hochladen",
+    "label.url": "URL",
+    "label.usage.interface": "Auslastungsoberfläche",
+    "label.usage.sanity.result": "Usage Sanity Resultat",
+    "label.usage.server": "Auslastungsserver",
+    "label.usage.type": "Art der Auslastung",
+    "label.usage.unit": "Einheit",
+    "label.use.vm.ip": "VM-IP verwenden:",
+    "label.use.vm.ips": "VM-IPs verwenden",
+    "label.used": "Gebraucht",
+    "label.user": "Benutzer",
+    "label.user.data": "Benutzerdaten",
+    "label.user.details": "Benutzerdetails",
+    "label.user.vm": "Benutzer-VM",
+    "label.username": "Benutzername",
+    "label.username.lower": "Benutzername",
+    "label.users": "Benutzer",
+    "label.vSwitch.type": "vSwitch-Typ",
+    "label.value": "Wert",
+    "label.vcdcname": "vCenter RZ-Name",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter-Cluster",
+    "label.vcenter.datacenter": "vCenter-Rechenzentrum",
+    "label.vcenter.datastore": "vCenter-Datenspeicher",
+    "label.vcenter.host": "vCenter-Host",
+    "label.vcenter.password": "vCenter-Passwort",
+    "label.vcenter.username": "vCenter-Benutzername",
+    "label.vcipaddress": "vCenter-IP-Adresse",
+    "label.version": "Version",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Maximale Auflösung",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs pro GPU",
+    "label.vgpu.remaining.capacity": "Verbleibende Kapazität",
+    "label.vgpu.type": "vGPU-Typ",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Ansicht",
+    "label.view.all": "Alle ansehen",
+    "label.view.console": "Konsole ansehen",
+    "label.view.more": "Weitere ansehen",
+    "label.view.secondary.ips": "Sekundäre IPs ansehen",
+    "label.viewing": "Ansehen",
+    "label.virtual.appliance": "Virtuelle Applicance",
+    "label.virtual.appliance.details": "Virtuelle Appliance Details",
+    "label.virtual.appliances": "Virtuelle Appliances",
+    "label.virtual.machine": "Virtuelle Maschine",
+    "label.virtual.machines": "Virtuelle Maschinen",
+    "label.virtual.network": "Virtuelles Netzwerk",
+    "label.virtual.networking": "Virtuelle Netzwerkverbindung",
+    "label.virtual.router": "Virtueller Router",
+    "label.virtual.routers": "Virtuelle Router",
+    "label.virtual.routers.group.account": "Virtuelle Router gruppiert nach Benutzerkonto",
+    "label.virtual.routers.group.cluster": "Virtuelle Router gruppiert nach Cluster",
+    "label.virtual.routers.group.pod": "Virtuelle Router gruppiert nach Pod",
+    "label.virtual.routers.group.zone": "Virtuelle Router gruppiert nach Zone",
+    "label.vlan": "VLAN/VNI",
+    "label.vlan.id": "VLAN/VNI-Kennung",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI-Bereich",
+    "label.vlan.range.details": "VLAN-Bereichdetails",
+    "label.vlan.ranges": "VLAN-Bereich(e)",
+    "label.vlan.vni.range": "VLAN/VNI-Bereich",
+    "label.vlan.vni.ranges": "VLAN/VNI-Bereich(e)",
+    "label.vm.add": "Instanz hinzufügen",
+    "label.vm.destroy": "Zerstören",
+    "label.vm.display.name": "VM-Anzeigename",
+    "label.vm.id": "VM-Kennung",
+    "label.vm.ip": "VM-IP-Adresse",
+    "label.vm.name": "VM-Name",
+    "label.vm.password": "Passwort der VM ist",
+    "label.vm.reboot": "Neustart",
+    "label.vm.start": "Start",
+    "label.vm.state": "VM-Status",
+    "label.vm.stop": "Stopp",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMs",
+    "label.vmsnapshot": "VM-Schnappschüsse",
+    "label.vmsnapshot.current": "istAktuell",
+    "label.vmsnapshot.memory": "Schnappschussspeicher",
+    "label.vmsnapshot.parentname": "Übergeordnet",
+    "label.vmsnapshot.type": "Typ",
+    "label.vmware.datacenter.id": "VMware-Rechenzentrumskennung",
+    "label.vmware.datacenter.name": "VMware-Rechenzentrumsname",
+    "label.vmware.datacenter.vcenter": "VMware Rechenzentrum-vCenter",
+    "label.vmware.traffic.label": "VMware Datenverkehrs-Bezeichnung",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "VLAN/VNI-Kennung",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC-Geräte",
+    "label.volatile": "Vergänglich",
+    "label.volgroup": "Volumengruppe",
+    "label.volume": "Volume",
+    "label.volume.details": "Volumendetails",
+    "label.volume.limits": "Volumenbegrenzungen",
+    "label.volume.migrated": "Volumen migriert",
+    "label.volume.name": "Volumenname",
+    "label.volumes": "Volumina",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Verteilter VPC-Router",
+    "label.vpc.id": "VPC-Kennung",
+    "label.vpc.offering": "VPC-Angebot",
+    "label.vpc.offering.details": "VPC-Angebotdetails",
+    "label.vpc.router.details": "VPC-Routerdetails",
+    "label.vpc.supportsregionlevelvpc": "Unterstützt Region Level VPC",
+    "label.vpc.virtual.router": "VPC Virtueller Router",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN Customer Gateway",
+    "label.vpn.force.encapsulation": "Erzwinge eine Kapselung der UDP- in ESP-Pakete",
+    "label.vsmctrlvlanid": "Steuerungs-VLAN-Kennung",
+    "label.vsmpktvlanid": "Paket-VLAN-Kennung",
+    "label.vsmstoragevlanid": "Speicher-VLAN-Kennung",
+    "label.vsphere.managed": "vSphere verwaltet",
+    "label.vswitch.name": "vSwitch-Name",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN-Kennung",
+    "label.vxlan.range": "VXLAN-Bereich",
+    "label.waiting": "Warten",
+    "label.warn": "Warnen",
+    "label.warn.upper": "WARNEN",
+    "label.warning": "Warnung",
+    "label.wednesday": "Mittwoch",
+    "label.weekly": "Wöchentlich",
+    "label.welcome": "Willkommen",
+    "label.welcome.cloud.console": "Willkommen bei der Verwaltungskonsole",
+    "label.what.is.cloudstack": "Was ist CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Originale XS-Version ist 6.1+",
+    "label.xenserver.traffic.label": "XenServer Datenverkehrs-Bezeichnung",
+    "label.yes": "Ja",
+    "label.zone": "Zone",
+    "label.zone.dedicated": "Zone dediziert",
+    "label.zone.details": "Zonendetails",
+    "label.zone.id": "Zone ID",
+    "label.zone.lower": "Zone",
+    "label.zone.name": "Zonenname",
+    "label.zone.step.1.title": "Schritt 1: <strong>Wählen Sie ein Netzwerk aus</strong>",
+    "label.zone.step.2.title": "Schritt 2: <strong>Fügen Sie eine Zone hinzu</strong>",
+    "label.zone.step.3.title": "Schritt 3: <strong>Pod hinzufügen</strong>",
+    "label.zone.step.4.title": "Schritt 4: <strong>Fügen Sie einen IP-Bereich hinzu</strong>",
+    "label.zone.type": "Zonentyp",
+    "label.zone.wide": "Zonenweit",
+    "label.zoneWizard.trafficType.guest": "Gast: Datenverkehr zwischen den virtuellen Maschinen der Endbenutzer",
+    "label.zoneWizard.trafficType.management": "Management: Datenverkehr zwischen den CloudStack internen Ressourcen, inklusive aller Komponenten, die mit dem Management Server kommunizieren, wie Hosts und CloudStack System VMs",
+    "label.zoneWizard.trafficType.public": "Öffentlich: Datenverkehr zwischen dem Internet und virtuellen Maschinen in der Cloud.",
+    "label.zoneWizard.trafficType.storage": "Speicherung: Datenverkehr zwischen Haupt- und Sekundärspeicherserver, wie VM-Vorlagen und Schnappschüsse.",
+    "label.zones": "Zonen",
+    "managed.state": "Verwalteter Status",
+    "message.XSTools61plus.update.failed": "Die Aktuallisierung des Original XS Version ist 6.1+ Feldes ist fehlgeschlagen. Fehlermeldung:",
+    "message.Zone.creation.complete": "Zonenerstellung abgeschlossen",
+    "message.acquire.ip.nic": "Bitte bestätigen Sie, dass Sie eine neue, sekundäre IP-Adresse für dieses Netzwerk-Schnittstelle benötigen.<br/>HINWEIS: Sie müssen diese neue sekundäre IP-Adresse manuell in der virtuellen Maschine hinzufügen.",
+    "message.acquire.new.ip": "Bitte bestätigen Sie, dass sie eine neue IP Adresse für dieses Netzwerk haben möchten.",
+    "message.acquire.new.ip.vpc": "Bitte bestätigen Sie, dass sie eine neue IP Adresse für diesen VPC benötigen.",
+    "message.acquire.public.ip": "Bitte wählen Sie eine Zone, von der Sie Ihre neue IP erlangen möchten.",
+    "message.action.cancel.maintenance": "Ihr Host ist erfolgreich für die Wartung abgebrochen. Dieser Prozess kann ein paar Minuten dauern.",
+    "message.action.cancel.maintenance.mode": "Bitte bestätigen Sie, dass Sie die Wartung abbrechen möchten.",
+    "message.action.change.service.warning.for.instance": "Ihre Instanz muss zuerst unterbrochen werden, bevor Sie Ihr derzeitiges Dienstangebot ändern können.",
+    "message.action.change.service.warning.for.router": "Ihr Router muss zuerst unterbrochen werden, bevor Sie Ihr derzeitiges Dienstangebot ändern können.",
+    "message.action.delete.ISO": "Bitte bestätigen Sie, dass Sie diese ISO löschen möchten.",
+    "message.action.delete.ISO.for.all.zones": "Die ISO gilt für alle Zonen. Bitte bestätigen Sie, dass Sie diese aus allen Zonen löschen möchten.",
+    "message.action.delete.cluster": "Bitte bestätigen Sie, dass Sie dieses Cluster löschen möchten.",
+    "message.action.delete.disk.offering": "Bitte bestätigen Sie, dass Sie dieses Festplattenangebot löschen möchten.",
+    "message.action.delete.domain": "Bitte bestätigen Sie, dass Sie diese Domain löschen möchten.",
+    "message.action.delete.external.firewall": "Bitte bestätigen Sie, dass Sie die externe Firewall entfernen möchten. Warnung: Wenn Sie planen dieselbe exterene Firewall wieder hinzuzufügen, müssen Sie sämtliche Nutzungsdaten auf diesem Gerät zurücksetzen",
+    "message.action.delete.external.load.balancer": "Bitte bestätigen Sie, dass Sie diesen externen Loadbalancer entfernen möchten. Warnung: Wenn Sie planen denselben exterenen Loadbalancer wieder hinzuzufügen, müssen Sie sämtliche Nutzungsdaten auf diesem Gerät zurücksetzen",
+    "message.action.delete.ingress.rule": "Bitte bestätigen Sie, dass Sie diese Zutrittsregel löschen wollen.",
+    "message.action.delete.network": "Bitte bestätigen Sie, dass Sie dieses Netzwerk löschen möchten.",
+    "message.action.delete.nexusVswitch": "Bitte bestätigen Sie, dass Sie diesen nexus 1000v löschen möchten.",
+    "message.action.delete.nic": "Bitte bestätigen Sie die Löschung dieser NIC, da dies auch zur Löschung des zugehörigen Netzwerks von der VM führt.",
+    "message.action.delete.physical.network": "Bitte bestätigen Sie, dass Sie dieses physikalische Netzwerk löschen möchten",
+    "message.action.delete.pod": "Bitte bestätigen Sie, dass Sie dieses pod löschen möchten.",
+    "message.action.delete.primary.storage": "Bitte bestätigen Sie, dass Sie diese Hauptspeicher löschen möchten.",
+    "message.action.delete.secondary.storage": "Bitte bestätigen Sie, dass Sie diesen Sekundärspeicher löschen möchten.",
+    "message.action.delete.security.group": "Bitte bestätigen Sie, dass Sie diese Sicherheitsgruppe löschen möchten.",
+    "message.action.delete.service.offering": "Bitte bestätigen Sie, dass Sie dieses Dienstangebot löschen möchten.",
+    "message.action.delete.snapshot": "Bitte bestätigen Sie, dass Sie diesen Schnappschuss löschen möchten.",
+    "message.action.delete.system.service.offering": "Bitte bestätigen Sie, dass Sie dieses Dienstangebot des Systems löschen möchten",
+    "message.action.delete.template": "Bitte bestätigen Sie, dass Sie diese Vorlage löschen möchten.",
+    "message.action.delete.template.for.all.zones": "Die Vorlage wird für alle Zonen genutzt. Bitte bestätigen Sie, dass Sie diese für alle Zonen löschen möchten.",
+    "message.action.delete.volume": "Bitte bestätigen Sie, dass Sie dieses Volumen löschen möchten.",
+    "message.action.delete.zone": "Bitte bestätigen Sie, dass Sie diese Zone löschen möchten.",
+    "message.action.destroy.instance": "Bitte bestätigen Sie, dass Sie diese Instanz löschen möchten.",
+    "message.action.destroy.systemvm": "Bitte bestätigen Sie, dass Sie diese System-VM zerstören möchten.",
+    "message.action.disable.cluster": "Bitte bestätigen Sie, dass Sie diesen Cluster deaktivieren möchten.",
+    "message.action.disable.nexusVswitch": "Bitte bestätigen Sie, dass sie diesen nexus 1000v deaktivieren möchten.",
+    "message.action.disable.physical.network": "Bitte bestätigen Sie, dass Sie dieses physikalische Netzwerk deaktivieren möchten.",
+    "message.action.disable.pod": "Bitte bestätigen Sie, dass Sie diesen Pod deaktivieren möchten.",
+    "message.action.disable.static.NAT": "Bitte bestätigen Sie, dass Sie die statische NAT deaktivieren möchten.",
+    "message.action.disable.zone": "Bitte bestätigen Sie, dass Sie diese Zone deaktivieren möchten.",
+    "message.action.download.iso": "Bitte bestätigen Sie, dass Sie dieses ISO herunterladen möchten.",
+    "message.action.download.template": "Bitte bestätigen Sie, dass Sie dieses Template herunterladen möchten.",
+    "message.action.downloading.template": "Vorlage wird heruntergeladen.",
+    "message.action.enable.cluster": "Bitte bestätigen Sie, dass Sie diesen Cluster aktivieren möchten.",
+    "message.action.enable.maintenance": "Ihr Host wurde erfolgreich für die Wartung vorbereitet. Dieser Prozess kann einige Minuten, oder abhänig von der jetzigen Anzahl VMs auf diesem Host auch länger, in Anspruch nehmen.",
+    "message.action.enable.nexusVswitch": "Bitte bestätigen Sie, dass sie diesen nexus 1000v aktivieren möchten.",
+    "message.action.enable.physical.network": "Bitte bestätigen Sie, dass Sie dieses physikalische Netzwerk aktivieren möchten.",
+    "message.action.enable.pod": "Bitte bestätigen Sie, dass Sie diesen Pod aktivieren möchten.",
+    "message.action.enable.zone": "Bitte bestätigen Sie, dass Sie diese Zone aktivieren möchten.",
+    "message.action.expunge.instance": "Bitte bestätigen Sie, dasss Sie diese Instanz unwiederbringlich löschen möchten.",
+    "message.action.force.reconnect": "Ihr Host wurde erfolgreich gewzungen wiederzuverbinden. Dieser Prozess kann einige Minuten beanspruchen.",
+    "message.action.host.enable.maintenance.mode": "Die Aktivierung des Wartungsmodus verursacht eine Livemigration aller laufenden Instanzen auf diesem Host zu einem anderen verfügbaren Host.",
+    "message.action.instance.reset.password": "Bitte bestätigen Sie, dass Sie das ROOT Passwort für diese virtuelle Maschine ändern möchten.",
+    "message.action.manage.cluster": "Bitte bestätigen Sie, dass das Cluster bearbeitet werden soll.",
+    "message.action.primarystorage.enable.maintenance.mode": "Warnung: den Hauptspeicher in den Wartungsmodus zu stellen, wird alle VMs stoppen, welche noch Volumen auf demjenigen haben. Möchten Sie fortfahren?",
+    "message.action.reboot.instance": "Bitte bestätigen Sie, dass Sie diese Instanz neu starten möchten.",
+    "message.action.reboot.router": "Alle angebotenen Dienste dieses Routers werden unterbrochen. Bitte bestätigen Sie, dass Sie den Router neu starten möchten.",
+    "message.action.reboot.systemvm": "Bitte bestätigen Sie, dass Sie diese System-VM neu starten möchten.",
+    "message.action.release.ip": "Bitte bestätigen Sie, dass Sie diese IP freigeben möchten.",
+    "message.action.remove.host": "Bitte bestätigen Sie, dass Sie diesen Host entfernen möchten.",
+    "message.action.reset.password.off": "Ihre Instanz unterschützt derzeitig nicht dieses Feature.",
+    "message.action.reset.password.warning": "Ihre Instanz muss zuerst unterbrochen werden, bevor Sie Ihr derzeitiges Passwort ändern können.",
+    "message.action.restore.instance": "Bitte bestätigen Sie, dass Sie diese Instanz wiederherstellen möchten.",
+    "message.action.revert.snapshot": "Bitte bestätigen Sie, dass Sie das dazugehörige Volumen zu diesen Schnappschuss zurücksetzten möchten.",
+    "message.action.start.instance": "Bitte bestätigen Sie, dass Sie diese Instanz starten möchten.",
+    "message.action.start.router": "Bitte bestätigen Sie, dass Sie diesen Router starten möchten.",
+    "message.action.start.systemvm": "Bitte bestätigen Sie, dass Sie diese System-VM starten möchten.",
+    "message.action.stop.instance": "Bitte bestätigen Sie, dass Sie diese Instanz anhalten möchten.",
+    "message.action.stop.router": "Alle von diesem Router angebotenen Dienste werden unterbrochen. Bitte bestätigen Sie, dass Sie diesen Router stoppen möchten.",
+    "message.action.stop.systemvm": "Bitte bestätigen Sie, dass Sie diese System-VM stoppen möchten.",
+    "message.action.take.snapshot": "Bitte bestätigen Sie, dass Sie einen Schnappschuss von diesem Volumen sichern möchten.",
+    "message.action.unmanage.cluster": "Bitte bestätigen Sie, dass Sie das Cluster vernachlässigen möchten.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Bitte bestätigen Sie, dass Sie diesen VM Schnappschuss löschen wollen.",
+    "message.action.vmsnapshot.revert": "VM-Schnappschuss zurücksetzen",
+    "message.activate.project": "Sind Sie sicher, dass Sie dieses Projekt aktivieren wollen?",
+    "message.add.VPN.gateway": "Bitte bestätigen Sie, dass sie ein VPN Gateway hinzufügen wollen.",
+    "message.add.cluster": "Hinzufügen eines vom Hypervisor verwaltender Clusters für Zone <b><span id=\"zone_name\"></span></b>, Pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Ein Hypervisor verwalteter Cluster für Zone <b><span id=\"zone_name\"></span></b> hinzufügen",
+    "message.add.disk.offering": "Bitte spezifizieren Sie die folgenden Parameter, um ein neues Festplattenangebot hinzuzufügen.",
+    "message.add.domain": "Bitte spezifizieren Sie die Subdomain, die Sie unter dieser Domain erstellen wollen.",
+    "message.add.firewall": "Eine Firewall zur Zone hinzufügen",
+    "message.add.guest.network": "Bitte bestätigen Sie, dass Sie ein Gast-Netzwerk hinzufügen möchten.",
+    "message.add.host": "Bitte spezifizieren Sie die folgenden Parameter, um einen neuen Host hinzuzufügen.",
+    "message.add.ip.range": "IP-Bereich zu öffentlichem Netzwerk in Zone hinzufügen",
+    "message.add.ip.range.direct.network": "Einen IP-Bereich zum direkten Netzwerk<b><span id=\"directnetwork_name\"></span></b> in Zone hinzufügen <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Einen IP-Bereich zum Pod hinzufügen <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Einen Lastverteiler zur Zone hinzufügen",
+    "message.add.load.balancer.under.ip": "Die Lasterverteiler-Regel wurde hinzugefügt zu IP:",
+    "message.add.network": "Eine neues Netzwerk für Zone hinzufügen:  <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Bitte spezifizieren Sie Informationen  um ein neues Gateway für dieses VPC hinzuzufügen.",
+    "message.add.pod": "Ein neuer Pod für Zone <b><span id=\"add_pod_zone_name\"></span></b> hinzufügen",
+    "message.add.pod.during.zone.creation": "Jede Zone muss mindestens einen Pod enthalten, welchen wir nun konfigurieren und hinzufügen. Ein Pod enthält Hosts und primären Storage, welche in einem späteren Schritt hinzugefügt werden. Zuerst konfigurieren Sie den Bereich der reservierten IP-Adressen für CloudStacks internen Verwaltungsdatenverkehr. Der reservierte IP-Bereich muss für jede Zone in der Cloud eindeutig sein.",
+    "message.add.primary": "Bitte spezifizieren Sie die folgenden Parameter, um einen neuen Hauptspeicher hinzuzufügen",
+    "message.add.primary.storage": "Bitte fügen Sie einen neuen primären Speicher für Zone <b><span id=\"zone_name\"></span></b>, und Pod <b><span id=\"pod_name\"></span></b> hinzu.",
+    "message.add.region": "Bitte geben Sie die benötigten Informationen ein um eine neue Region hinzuzufügen",
+    "message.add.secondary.storage": "Bitte fügen Sie einen neuen Speicher für die Zone <b><span id=\"zone_name\"></span></b> hinzu.",
+    "message.add.service.offering": "Bitte geben Sie die folgenden Daten ein, um ein neues Berechnungsangebot hinzuzufügen.",
+    "message.add.system.service.offering": "Bitte geben Sie die folgenden Daten ein, um ein neues Systemdienstangebot hinzuzufügen.",
+    "message.add.template": "Bitte geben Sie die folgende Daten ein, um Ihre neue Vorlage zu erstellen",
+    "message.add.volume": "Bitte geben Sie die folgende Daten ein, um ein neues Volumen hinzuzufügen.",
+    "message.added.new.nuage.vsp.controller": "Neuer Nicira Vsp Controller hinzugefügt",
+    "message.added.vpc.offering": "VPC-Angebot hinzugefügt",
+    "message.adding.Netscaler.device": "Hinzufügen eines Netscaler Gerätes",
+    "message.adding.Netscaler.provider": "Hinzufügen eines Netscaler Provider",
+    "message.adding.host": "Host wird hinzugefügt",
+    "message.additional.networks.desc": "Bitte wählen Sie ein oder mehrere Netzwerke aus, an die Ihre virtuelle Instanz verbunden wird.",
+    "message.admin.guide.read": "Für VMware basierte VMs, lesen Sie bitte den Abschnitt über das dynamische Skalieren in dem Administrations-Leitfaden bevor Sie hochskalieren. Möchten Sie fortfahren?",
+    "message.advanced.mode.desc": "Wählen Sie dieses Netzwerkmodell aus, wenn Sie VLAN-Unterstützung aktivieren möchten. Dieses Netzwerkmodell bietet die größte Flexibilität um Administratoren kundenspezifische Netzwerkangebote zu ermöglichen, wie das Anbieten von Firewall, VPN oder Lastverteilerunterstützung wie auch aktivieren direkten gegen virtuellen Netzwerkverkehr.",
+    "message.advanced.security.group": "Wählen Sie dies, wenn Sie Sicherheits Gruppen verwenden wollen, um eine Isolation für Gast VMs anzubieten.",
+    "message.advanced.virtual": "Wählen Sie dies, wenn Sie Zonen-weite VLANs verwenden wollen, um eine Isolation für Gast VMs anzubieten.",
+    "message.after.enable.s3": "S3-gestützter zweiter Speicher konfiguriert. Hinweis: Wenn Sie dieses Seite verlassen, können Sie S3 nicht mehr umkonfigurieren.",
+    "message.after.enable.swift": "Swift ist konfiguriert. Bemerkung: Wenn Sie diese Seite verlassen, werden Sie nicht mehr in der Lage sein Swift um zu konfigurieren.",
+    "message.alert.state.detected": "Alarmstatus erkannt",
+    "message.allow.vpn.access": "Bitte geben Sie einen Benutzernamen und ein Kennwort für den Benutzer ein, für den Sie VPN-Zugang möchten.",
+    "message.apply.snapshot.policy": "Sie haben Ihre derzeitige Schnappschuss Richtlinie erfolgreich aktualisiert.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Bitte bestätigen Sie, dass sie die ISO zu Ihrer virtuellen Instanz hinzufügen möchten.",
+    "message.attach.volume": "Bitte füllen Sie die folgenden Daten aus um neue Volumen anzubinden. Falls Sie das Festplattenvolumen zu einer Windows-basierten virtuellen Maschine anbinden, müssen Sie die Instanz neu starten um die angebundene Festplatte verwenden zu können.",
+    "message.basic.mode.desc": "Wählen Sie dieses Netzwerk-Modell falls Sie <b>*<u>keine</u>*</b> VLAN-Unterstützung aktivieren möchten. Allen virtuellen Instanzen unter diesem Netzwerk-Modell erhalten eine IP direkt von Netzwerk, Sicherheitsgruppen werden verwendet um Sicherheit und Trennung zu gewährleisten.",
+    "message.change.ipaddress": "Bitte bestätigen Sie, dass Sie die IP Adresse für dieses NIC auf dieser VM ändern möchten.",
+    "message.change.offering.confirm": "Bitte bestätigen Sie, dass Sie das Dienstangebot dieser virtuellen Instanz ändern möchten.",
+    "message.change.password": "Bitte ändern Sie Ihre Passwort.",
+    "message.cluster.dedicated": "Cluster dediziert",
+    "message.cluster.dedication.released": "Cluster-Dedizierung aufgehoben",
+    "message.configure.all.traffic.types": "Sie haben mehrere physikalische Netzwerke; bitte konfigurieren Sie für jeden Datenverkehrstyp Bezeichnungen indem Sie auf den Bearbeiten-Knopf klicken",
+    "message.configure.firewall.rules.allow.traffic": "Konfigurieren Sie die Regeln um Datenverkehr zu erlauben",
+    "message.configure.firewall.rules.block.traffic": "Konfigurieren Sie die Regeln um den Datenverkehr zu blockieren",
+    "message.configure.ldap": "Bitte bestätigen Sie, dass Sie LDAP konfigurieren möchten.",
+    "message.configuring.guest.traffic": "Gast-Datenverkehr wird konfiguriert",
+    "message.configuring.physical.networks": "Physikalische Netzwerke werden konfiguriert",
+    "message.configuring.public.traffic": "Öffentlicher Datenverkehr wird konfiguriert",
+    "message.configuring.storage.traffic": "Speicherungsdatenverkehr wird konfiguriert",
+    "message.confirm.action.force.reconnect": "Bitte bestätigen Sie, dass Sie für diesen Host das Wiederverbinden erzwingen möchten.",
+    "message.confirm.add.vnmc.provider": "Bitte bestätigen Sie, dass Sie den VNMC-Provider hinzufügen möchten.",
+    "message.confirm.archive.alert": "Bitte bestätigen Sie, dass Sie diesen Alarm archivieren möchten.",
+    "message.confirm.archive.event": "Bitte bestätigen Sie, dass Sie dieses Ereignis archivieren möchten.",
+    "message.confirm.archive.selected.alerts": "Bitte bestätigen Sie, dass Sie die ausgewählten Alarme archivieren möchten",
+    "message.confirm.archive.selected.events": "Bitte bestätigen Sie, dass Sie die ausgewählten Vorgänge archivieren möchten",
+    "message.confirm.attach.disk": "Sind Sie sicher, dass Sie eine Platte hinzufügen möchten?",
+    "message.confirm.create.volume": "Sind Sie sicher, dass Sie ein Volumen erstellen möchten?",
+    "message.confirm.current.guest.CIDR.unchanged": "Möchten Sie den aktuellen Gastnetzwerk CIDR unverändert lassen?",
+    "message.confirm.dedicate.cluster.domain.account": "Möchten Sie diesen Cluster wirklich für diese Domain / dieses Benutzerkonto dedizieren?",
+    "message.confirm.dedicate.host.domain.account": "Möchten Sie diesen Host wirklich für diese Domain / dieses Benutzerkonto dedizieren?",
+    "message.confirm.dedicate.pod.domain.account": "Möchten Sie diesen Pod wirklich für diese Domain / dieses Benutzerkonto dedizieren?",
+    "message.confirm.dedicate.zone": "Möchten Sie diese Zone wirklich für diese Domain / dieses Benutzerkonto dedizieren?",
+    "message.confirm.delete.BigSwitchBcf": "Bitte bestätigen Sie, dass Sie diesen BigSwitch BCF Controller löschen möchten",
+    "message.confirm.delete.BrocadeVcs": "Bitte bestätigen Sie, dass Sie Brocade Vcs Switch löschen möchten",
+    "message.confirm.delete.F5": "Bitte bestätigen Sie, dass Sie F5 löschen möchten",
+    "message.confirm.delete.NetScaler": "Bitte bestätigen Sie, dass Sie NetScaler löschen möchten",
+    "message.confirm.delete.NuageVsp": "Bitte bestätigen Sie, dass Sie das Nuage Virtulazierte Dienste Verzeichnis löschen möchten",
+    "message.confirm.delete.PA": "Bitte bestätigen Sie, dass Sie Palo Alto löschen möchten",
+    "message.confirm.delete.SRX": "Bitte bestätigen Sie, dass Sie SRX löschen möchten",
+    "message.confirm.delete.acl.list": "Sind Sie sicher, dass Sie diese ACL-Liste löschen möchten?",
+    "message.confirm.delete.alert": "Sind Sie sicher, dass Sie diesen Alarm löschen möchten?",
+    "message.confirm.delete.baremetal.rack.configuration": "Bitte bestätigen Sie, dass sie die Baremetal Rackkonfiguration löschen wollen.",
+    "message.confirm.delete.ciscoASA1000v": "Bitte bestätigen Sie, dass Sie CiscoASA1000v löschen möchten",
+    "message.confirm.delete.ciscovnmc.resource": "Bitte bestätigen Sie, dass Sie die CiscoVNMC Ressource löschen möchten",
+    "message.confirm.delete.internal.lb": "Bitte bestätigen Sie, dass Sie den internen Loadbalancer löschen möchten",
+    "message.confirm.delete.secondary.staging.store": "Bitte bestätigen Sie, dass Sie diesen Sekundär-Staging-Store löschen möchten.",
+    "message.confirm.delete.ucs.manager": "Bitte bestätigen Sie, dass Sie UCS-Manager löschen möchten",
+    "message.confirm.destroy.router": "Bitte bestätigen Sie, dass Sie diesen Router zerstören möchten",
+    "message.confirm.disable.host": "Bitte bestätigen Sie, dass Sie den Host deaktivieren möchten",
+    "message.confirm.disable.network.offering": "Sind Sie sicher, dass Sie dieses Netzwerkangebot deaktivieren möchten?",
+    "message.confirm.disable.provider": "Bitte bestätigen Sie, dass Sie diesen Anbieter löschen möchten",
+    "message.confirm.disable.vnmc.provider": "Bitte bestätigen Sie, dass Sie den VNMC-Provider deaktivieren möchten.",
+    "message.confirm.disable.vpc.offering": "Sind Sie sicher, dass Sie dieses VPC-Angebot deaktivieren möchten?",
+    "message.confirm.enable.host": "Bitte bestätigen Sie, dass Sie den Host aktivieren möchten",
+    "message.confirm.enable.network.offering": "Sind Sie sicher, dass Sie dieses Netzwerkangebot aktivieren möchten?",
+    "message.confirm.enable.provider": "Bitte bestätigen Sie, dass Sie diesen Anbieter hinzufügen möchten",
+    "message.confirm.enable.vnmc.provider": "Bitte bestätigen Sie, dass Sie den VNMC-Provider aktivieren möchten.",
+    "message.confirm.enable.vpc.offering": "Sind Sie sicher, dass Sie dieses VPC-Angebot aktivieren möchten?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Bitte bestätigen Sie, dass Sie diesem Projekt beitreten möchten.",
+    "message.confirm.migrate.volume": "Möchten Sie dieses Volumen migrieren?",
+    "message.confirm.refresh.blades": "Bitte bestätigen Sie, dass Sie die Blades aktuallisieren möchten.",
+    "message.confirm.release.dedicate.vlan.range": "Bitte bestätigen Sie, dass Sie ein dedizierten VLAN-Bereich loslösen möchten",
+    "message.confirm.release.dedicated.cluster": "Möchten Sie diesen dedizierten Cluster freigeben?",
+    "message.confirm.release.dedicated.host": "Möchten Sie diesen dedizierten Host freigeben?",
+    "message.confirm.release.dedicated.pod": "Möchten Sie diesen dedizierten Pod freigeben?",
+    "message.confirm.release.dedicated.zone": "Möchten Sie diese dedizierte Zone freigeben?",
+    "message.confirm.remove.IP.range": "Bitte bestätigen Sie, dass sie diesen IP Adressbereich löschen möchten.",
+    "message.confirm.remove.event": "Sind Sie sicher, dass Sie dieses Ereignis entfernen möchten?",
+    "message.confirm.remove.load.balancer": "Bitte bestätigen Sie, dass Sie die VM vom Lastverteiler zurückziehen möchten",
+    "message.confirm.remove.network.offering": "Sind Sie sicher, dass Sie dieses Netzwerkangebot entfernen möchten?",
+    "message.confirm.remove.selected.alerts": "Bitte bestätigen Sie, dass Sie die ausgewählten Alarme entfernen möchten",
+    "message.confirm.remove.selected.events": "Bitte bestätigen Sie, dass Sie die ausgewählten Ereignisse entfernen möchten",
+    "message.confirm.remove.vmware.datacenter": "Bitte bestätigen Sie, dass Sie das VMware Rechenzentrum entfernen möchten",
+    "message.confirm.remove.vpc.offering": "Sind Sie sicher, dass Sie dieses VPC-Angebot entfernen möchten?",
+    "message.confirm.replace.acl.new.one": "Möchten Sie die ACL durch die neue ersetzen?",
+    "message.confirm.scale.up.router.vm": "Möchten Sie die Router-VM wirklich hochskalieren?",
+    "message.confirm.scale.up.system.vm": "Möchten Sie die System-VM wirklich hochskalieren?",
+    "message.confirm.shutdown.provider": "Bitte bestätigen Sie, dass sie diesen Anbieter herunterfahren möchten.",
+    "message.confirm.start.lb.vm": "Bitte bestätigen Sie, dass Sie die LB VM starten möchten",
+    "message.confirm.stop.lb.vm": "Bitte bestätigen Sie, dass Sie die LB VM stoppen möchten",
+    "message.confirm.upgrade.router.newer.template": "Bitte bestätigen Sie, dass Sie den Router aktuallisieren möchten, so dass er die neue Vorlage verwendet.",
+    "message.confirm.upgrade.routers.account.newtemplate": "Bitte bestätigen Sie, dass Sie alle Router zu dieser Benutzerkonto aktuallisieren möchten, so dass sie die neue Vorlage verwenden.",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Bitte bestätigen Sie, dass Sie alle Router in diesem Cluster aktuallisieren möchten, so dass sie die neue Vorlage verwenden.",
+    "message.confirm.upgrade.routers.newtemplate": "Bitte bestätigen Sie, dass Sie alle Router in dieser Zone aktuallisieren möchten, so dass sie die neue Vorlage verwenden.",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Bitte bestätigen Sie, dass Sie alle Router in diesem Pod aktuallisieren möchten, so dass sie die neue Vorlage verwenden.",
+    "message.copy.iso.confirm": "Bitte bestätigen Sie, dass Sie Ihre ISO kopieren möchten und zwar nach",
+    "message.copy.template": "Kopiere Vorlage <b id=\"copy_template_name_text\">XXX</b> von Zone <b id=\"copy_template_source_zone_text\"></b> nach",
+    "message.copy.template.confirm": "Sind Sie sicher, dass Sie die Vorlage kopieren möchten?",
+    "message.create.template": "Sind Sie sicher, dass Sie eine Vorlage erstellen möchten?",
+    "message.create.template.vm": "VM aus Vorlage <b id=\"p_name\"></b> erstellen",
+    "message.create.template.volume": "Bitte definieren Sie die folgenden Informationen bevor Sie eine Vorlage für Ihr Festplattenvolumen erstellen: <b><span id=\"volume_name\"></span></b>. Das Erstellen der Vorlage kann einige Minuten oder abhängig von der Volumengröße auch länger dauern.",
+    "message.creating.cluster": "Cluster wird erstellt",
+    "message.creating.guest.network": "Gastnetzwerk wird erstellt",
+    "message.creating.physical.networks": "Physikalische Netzwerke werden erstellt",
+    "message.creating.pod": "Erstelle einen Pod",
+    "message.creating.primary.storage": "Hauptspeicher wird erstellt",
+    "message.creating.secondary.storage": "Sekundärspeicher wird erstellt",
+    "message.creating.systemVM": "Erstellung von System VMs (das kann eine Weile dauern)",
+    "message.creating.zone": "Zone wird erstellt",
+    "message.decline.invitation": "Sind Sie sicher, dass Sie diese Einladung zu dem Projekt ablehnen möchten?",
+    "message.dedicate.zone": "Dediziere Zone",
+    "message.dedicated.zone.released": "Zonen-Dedizierung freigegeben",
+    "message.delete.VPN.connection": "Bitte bestätigen Sie, dass Sie die VPN-Verbindung löschen möchten",
+    "message.delete.VPN.customer.gateway": "Bitte bestätigen Sie, dass Sie dieses Kunden VPN Gateway löschen möchten",
+    "message.delete.VPN.gateway": "Bitte bestätigen Sie, dass Sie dieses VPN Gateway löschen möchten",
+    "message.delete.account": "Bitte bestätigen Sie, dass Sie dieses Benutzerkonto löschen möchten.",
+    "message.delete.affinity.group": "Bitte bestätigen Sie, dass Sie diese Affinitätsgruppe löschen möchten.",
+    "message.delete.gateway": "Bitte bestätigen Sie, dass Sie dieses Gateway löschen möchten",
+    "message.delete.project": "Sind Sie sicher, dass Sie dieses Projekt löschen möchten?",
+    "message.delete.user": "Bitte bestätigen Sie, dass Sie diesen Benutzer löschen möchten.",
+    "message.desc.add.new.lb.sticky.rule": "Neue Lastverteiler Sticky Regel hinzufügen",
+    "message.desc.advanced.zone": "Für anspruchvollere Netzwerk-Topologien. Dieses Netzwerkmodell bietet die höchste Flexibilität beim Definieren der Gast-Netzwerke und beim Anbieten von maßgeschneiderten Nerzwerk-Angeboten wie Firewall-, VPN- oder Lastverteilungsunterstützung.",
+    "message.desc.basic.zone": "Biete ein einzelnes Netzwerk an, in dem alle VM-Instanzen direkt mit IP vom Netzwerk verbunden sind. Gästeisolation kann durch Layer-3 wie Sicherheitsgruppen angeboten werden (IP-Adressen Source Filtering)",
+    "message.desc.cluster": "Jeder Pod muss einen oder mehrere Clusters enthalten, und wir werden jetzt den ersten Cluster hinzufügen. Ein Cluster bietet die Möglichkeit Hosts zu gruppieren. Die Hosts in einem Cluster haben alle identische Hardware, betreiben den selben Hypervisor, sind im selben Subnetz und greiffen auf den selben geteilten Speicher zu. Jeder Cluster besteht aus einem oder mehreren Hosts und einem oder mehreren Hauptspeicher-Server.",
+    "message.desc.create.ssh.key.pair": "Bitte die folgenden Daten eintragen um einen SSH-Schlüsselpaar zu registrieren oder erstellen.<br><br> (1) Wenn öffentlicher Schlüssel ausgewählt, registriert CloudStack einen öffentlichen Schlüssel. Dieser kann über den privaten Schlüssel verwendet werden.<br><br>(2) Wenn öffentlicher Schlüssel nicht ausgewählt ist, erstellt CloudStack einen neuen SSH-Schlüssel. In diesem Fall bitte den privaten Schlüssel kopieren und speichern. CloudStack wird ihn nicht speichern.<br>",
+    "message.desc.created.ssh.key.pair": "Erstellte ein SSH-Schlüsselpaar.",
+    "message.desc.host": "Jeder Cluster muss mindestens ein Host (Computer) beinhalten damit Gast-VMs darauf laufen können und wir werden nun den ersten Host erstellen. Damit ein Host in CloudStack funktioniert, muss eine Hypervisor-Software darauf installiert, eine IP-Adressse zugewiesen sowie sichergestellt sein, dass sich der Host mit dem CloudStack Verwaltungs-Server verbinden kann .<br/><br/>Geben Sie bitte den DNS-Namen oder IP-Adresse, den Benutzernamen (für gewöhnlich root) und das Passwort sowie jegliche Labels ein, mit denen Sie den Host kategorisieren möchten.",
+    "message.desc.primary.storage": "Jeder Cluster muss einen oder mehrere Hauptspeicher-Server enthalten, und wir werden nun den ersten erfassen. Hauptspeicher enthält die Festplatten-Volumen aller VMs, welche auf den Hosts in dem Cluster befinden. Benutzen Sie irgend ein standardkonformes Protokoll, welches vom darunterliegenden Hypervisor unterstützt wird.",
+    "message.desc.reset.ssh.key.pair": "Bitte definieren Sie ein SSH-Schlüsselpaar welches Sie zu dieser VM hinzufügen möchten. Bitte beachten Sie, dass das Root-Passwort dabei geändert wird falls es aktiviert ist.",
+    "message.desc.secondary.storage": "Jede Zone muss mindestens ein NFS oder Sekundärspeicher-Server haben und wir werden nun den ersten hinzufügen. Sekundärspeicher speichert VM-Vorlagen, ISO-Abbilder und VM-Festplatten-Schnappschüsse. Dieser Server muss für alle Host in der Zone erreichbar sein.<br/><br/>Geben Sie die IP und den exportierten Pfad an.",
+    "message.desc.zone": "Eine Zone ist die größte organisatorische Einheit in CloudStack und entspricht typischerweise eines einzelnen Rechenzentrum. Zonen bieten physikalische Isolation und Redundanz. Eine Zone beinhaltet einen oder mehrere Pods (jeder von Ihnen beinhaltet Hosts und Hauptspeicher-Server) und ein Sekundärspeicher-Server, welcher von allen Pods in der Zone geteilt wird.",
+    "message.detach.disk": "Sind Sie sicher, dass Sie diese Festplatte loslösen möchten?",
+    "message.detach.iso.confirm": "Bitte bestätigen Sie, dass Sie die ISO von der virtuellen Instanz trennen möchten.",
+    "message.disable.account": "Bitte bestätigen Sie, dass Sie Ihr Benutzerkonto deaktivieren möchten. Kein Nutzer dieses Kontos wird mehr Zugriff auf die Cloud Ressourcen haben. Alle laufenden virtuellen Maschinen werden sofort abgestellt.",
+    "message.disable.snapshot.policy": "Sie haben Ihre derzeitige Schnappschuss Richtlinie erfolgreich deaktiviert.",
+    "message.disable.user": "Bitte bestätigen Sie, dass Sie diesen Benutzer deaktivieren möchten.",
+    "message.disable.vpn": "Sind Sie sicher, dass Sie das VPN deaktivieren möchten?",
+    "message.disable.vpn.access": "Bitte bestätigen Sie, dass Sie den VPN Zugriff deaktivieren möchten.",
+    "message.disabling.network.offering": "Netzwerkangebot wird deaktiviert",
+    "message.disabling.vpc.offering": "VPC-Angebot wird deaktiviert",
+    "message.disallowed.characters": "Nicht erlaubte Zeichen: <,>",
+    "message.download.ISO": "Bitte klicken Sie auf <a href=\"#\">00000</a>, um das ISO herunterzuladen",
+    "message.download.template": "Bitte klicken Sie auf <a href=\"#\">00000</a>, um die Vorlage herunterzuladen",
+    "message.download.volume": "Bitte klicken Sie auf <a href=\"#\">00000</a>, um das Volumen herunterzuladen",
+    "message.download.volume.confirm": "Bitte bestätigen Sie, dass Sie dieses Volumen herunterladen möchten.",
+    "message.edit.account": "Bearbeiten (\"-1\" bedeutet keine Begrenzung der Anzahl Ressourcen)",
+    "message.edit.confirm": "Bitte bestätigen Sie Ihre Änderungen bevor Sie \"Speichern\" klicken.",
+    "message.edit.limits": "Bitte definieren Sie Begrenzungen für die folgenden Ressourcen. Ein \"-1\" bedeutet keine Begrenzung für die Ressourcen-Erstellung.",
+    "message.edit.traffic.type": "Bitte definieren Sie die Datenverkehrs-Bezeichnung, welche Sie mit diesem Datenverkehrs-Typ verbunden haben möchten.",
+    "message.enable.account": "Bitte bestätigen Sie, dass Sie dieses Konto aktivieren möchten.",
+    "message.enable.user": "Bitte bestätigen Sie, dass sie diesen Benutzer aktivieren möchten.",
+    "message.enable.vpn": "Bitte bestätigen Sie, dass Sie für diese IP-Adresse das Remote Access VPN aktivieren möchten.",
+    "message.enable.vpn.access": "VPN ist zurzeit nicht für diese IP Addresse aktiviert. Möchten Sie den VPN Zugriff aktivieren?",
+    "message.enabled.vpn": "Ihr VPN Zugriff ist zurzeit aktiv und via IP können Sie darauf zugreifen",
+    "message.enabled.vpn.ip.sec": "Ihr IPSec Preshared-Schlüssel ist",
+    "message.enabling.network.offering": "Netzwerkangebot wird aktiviert",
+    "message.enabling.security.group.provider": "Sicherheitsgruppenanbieter wird aktiviert",
+    "message.enabling.vpc.offering": "VPC-Angebot wird aktiviert",
+    "message.enabling.zone": "Zone wird aktiviert",
+    "message.enabling.zone.dots": "Zone wird aktiviert...",
+    "message.enter.seperated.list.multiple.cidrs": "Bitte geben Sie eine Komma separierte Liste von CIDRs ein, sofern es mehrere sind.",
+    "message.enter.token": "Bitte geben Sie dasjenige Merkmal ein, welches Ihnen in Ihrem Einladungsemail mitgeteilt wurde.",
+    "message.generate.keys": "Bitte bestätigen Sie, dass Sie für diesen Benutzer neue Schlüssel generieren möchten.",
+    "message.gslb.delete.confirm": "Bitte bestätigen Sie, dass Sie diesen GSLB löschen möchten.",
+    "message.gslb.lb.remove.confirm": "Bitte bestätigen Sie, dass Sie die Lastverteilung vom GSLB entfernen möchten",
+    "message.guest.traffic.in.advanced.zone": "Gastnetzwerk-Datenverkehr ist die kommunikation zwischen virtuellen Maschinen des Endbenutzers. Definieren Sie einen Bereich von VLAN IDs um den Gast-Datenverkehr jedes physikalischen Netzwerks zuzustellen.",
+    "message.guest.traffic.in.basic.zone": "Gastnetzwerk-Datenverkehr ist die kommunikation zwischen virtuellen Maschinen des Endbenutzers. Definieren Sie einen Bereich von IP-Adressen welche CloudStack Gast-VMs zuweisen kann. Stellen Sie sicher, dass dieser Bereich sich nicht mit dem reservierten IP-Bereich des Systems überlappt.",
+    "message.host.dedicated": "Host dediziert",
+    "message.host.dedication.released": "Host-Dedizierung freigegeben",
+    "message.installWizard.click.retry": "Bitte den Start Button für einen neuen Versuch drücken",
+    "message.installWizard.copy.whatIsACluster": "Ein Cluster bietet die Möglichkeit Hosts zu gruppieren. Die Hosts in einem Cluster haben alle identische Hardware, laufen mit dem selben Hypervisor, sind im selben Subnetz und greifen auf den selben Speicher zu. Instanzen von virtuellen Maschinen (VMs) können von einem Host zum anderen innerhalb des Clusters live-migriert werden, ohne Unterbrechung des Dienstes für den Endbenutzer. Ein Cluster ist die drittgrößte organisatorische Einheit innerhalb einer CloudStack&#8482; Installation. Cluster sind geschlossen innerhalb Pods und Pods sind geschlossen innerhalb Zonen. <br/><br/>CloudStack&#8482; erlaubt mehrere Cluster in einer Cloudinstallation, aber für eine Basisinstallation benötigen wir nur ein Cluster.",
+    "message.installWizard.copy.whatIsAHost": "Ein Host ist ein einzelner Computer. Hosts bieten Rechnungsressourcen für virtuelle Maschinen. Jeder Host hat Hypervisorsoftware installiert, welche die Gäste-VMs verwaltet (ausgenommen davon sind Bare-Metal-Hosts, welche im erweiterten Installationsanleitung als Spezialfall behandelt werden). Beispiele für Hosts sind ein KVM Linuxserver, ein Citrix XenServer-Server oder auch ein ESXi-Server. In der Basisinstallation verwenden wir einen einzelnen Host mit XenServer oder KVM.<br/><br/>Der Host ist die kleinste, organisatorische Einheit innerhalb einer CloudStack&#8482; Installation. Hosts befinden sind innerhalb von Clustern, Cluster innerhalb Pods und Pods innerhalb von Zonen.",
+    "message.installWizard.copy.whatIsAPod": "Ein Pod steht häufig für ein einzelnes Rack. Host im selben Pod sind im selben Subnetz.<br/><br/>Ein Pod ist die zweitgrößte Einheit innerhalb einer CloudStack&#8482; Installation. Pods sind geschlossen innerhalb der Zonen. Jede Zone kann eine oder mehrere Pods enthalten; in der Basisinstallation werden Sie nur ein Pod in Ihrer Zone haben.",
+    "message.installWizard.copy.whatIsAZone": "Eine Zone ist die größte organisatorische Einheit innerhalb einer CloudStack&#8482; Installation. Eine Zone steht typischerweise für ein einzelnes Rechenzentrum, obwohl es natürlich erlaubt ist, mehrere Zonen in einem Rechenzentrum zu haben. Der Vorteil einer Unterteilung der Infrastruktur in Zonen besteht im Anbieten einer physikalischen Isolierung und Redundanz. Zum Beispiel kann jede Zone ihre eigene Stromversorgung und ihr eigener Netzwerk-Uplink haben und geographisch weit auseinanderliegen (obschon dies nicht zwingend ist).",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482; ist eine Software-Plattform welche Rechenressourcen zusammenfasst, um öffentliche, private oder hybride \"Infrastructure as a Service\" (IaaS) Clouds zu bauen. CloudStack&#8482; verwaltet das Netzwerk-, Speicher- und Computingknoten was eine Cloud-Infrastruktur ausmacht. Benutzen Sie CloudStack&#8482; um Computing-Umgebungen zu erstellen, verwalten und zu konfigurieren.<br/><br/>Neben dem Erweitern von individuellen virtuellen Maschinenabbilder auf auf Standardhardware bietet CloudStack&#8482; einen schlüsselfertigen Cloud Infrastruktur-Software-Stack für die Bereitstellung von virtueller Rechenzentren as a Service – Liefert alle wesentlichen Komponenten für das Bauen, Bereitstellen und Verwalten von multi-tier- und mandantenfähigen Cloud-Anwendungen. Open-Source sowie Premium-Versionen sind verfügbar, mit nahezu identischen Features.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "Eine CloudStack&#8482; Cloud-Infrastruktur verwendet zwei Arten von Speicher: Hauptspeicher und Sekundärspeicher. Beide können iSCSI- oder NFS-Server, oder auch lokale Festplatten sein.<br/><br/><strong>Hauptspeicher</strong> ist mit einem Cluster verbunden und speichert Festplattenvolumen aller diejenigen Gast-VMs, welche auf Hosts in diesem Cluster laufen. Der Hauptspeicher-Server ist typischerweise nahe am Host gelegen.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "Sekundärspeicher wird mit einer Zone verbunden und speichert alles folgende:<ul><li>Vorlagen - Betriebssystemabbilder welche für das Booten der VMs verwendet werden und zusätzliche Konfigurationsinformationen wie installierte Applikationen beinhalten kann</li><li>ISO-Abbilder - Betriebssystemabbilder welche bootbar oder nicht bootbar sein können</li><li>Festplattenvolumen-Schnappschüsse - gesicherte Kopien von VM-Daten, welche für die Datenwiederherstellung oder für neue Vorlagen verwenden werden können</li></ul>",
+    "message.installWizard.now.building": "Ihre Cloud wird erstellt...",
+    "message.installWizard.tooltip.addCluster.name": "Der Name des Clusters. Der Name kann frei gewählt werden und wird von Cloudstack nicht genutzt.",
+    "message.installWizard.tooltip.addHost.hostname": "Der DNS-Name oder die IP-Adresse des hosts",
+    "message.installWizard.tooltip.addHost.password": "Dies ist das Passwort des o.a. Users (von der XenServer Installation)",
+    "message.installWizard.tooltip.addHost.username": "überlicherweise root",
+    "message.installWizard.tooltip.addPod.name": "Der Name für den pod",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Dies ist der IP-Bereich im privaten Netzwerk, welches CloudStack verwendet um Sekundärspeicher-VMs und Konsolen-Proxies zu verwalten. Diese IP-Adressen werden vom selben Subnetz genommen wie Computing-Server.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "Das Gateways für die Hosts des pod",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "Die Subnetzmaske des Gast-Netzwerks",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Dies ist der IP-Bereich im privaten Netzwerk, welches CloudStack verwendet um Sekundärspeicher-VMs und Konsolen-Proxies zu verwalten. Diese IP-Adressen werden vom selben Subnetz genommen wie Computing-Server.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "Der Name der Storage Devices",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(für NFS) Bei NFS wird hier der exportierte Pfad (Shared Mount Point) angegeben. Für KVM wird hier der Pfad angegeben, wo auf jedem Host das primary storage gemountet wurde. Z.B. \"/mnt/primary\"",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(für NFS, iSCSI oder PreSetup) Die IP-Adresse oder der DNS-Name des storage devices.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "Die IP-Adresse des NFS-Servers, der den Secondary Storage bereitstellt.",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "Der exportierte Pfad, der auf dem o.a. Server liegt.",
+    "message.installWizard.tooltip.addZone.dns1": "Dies sind die DNS Server für die Gäste VMs in dieser Zone. Diese DNS Server werden über das Interface für das private Netzwerk der System VMs erreicht. Die private IP Adresse, die Sie angeben muss eine Route zu dem hier benannten DNS Server haben.",
+    "message.installWizard.tooltip.addZone.dns2": "Dies sind die DNS Server für die Gäste VMs in dieser Zone. Diese DNS Server werden über das Interface für das private Netzwerk der System VMs erreicht. Die private IP Adresse, die Sie angeben muss eine Route zu dem hier benannten DNS Server haben.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Dies sind die DNS Server für die System VMs in dieser Zone. Diese DNS Server werden über das Interface für das private Netzwerk der System VMs erreicht. Die private IP Adresse, die Sie angeben muss eine Route zu dem hier benannten DNS Server haben.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Dies sind die DNS Server für die System VMs in dieser Zone. Diese DNS Server werden über das Interface für das private Netzwerk der System VMs erreicht. Die private IP Adresse, die Sie angeben muss eine Route zu dem hier benannten DNS Server haben.",
+    "message.installWizard.tooltip.addZone.name": "Der Name für die zone",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "Eine Beschreibung des Netzwerkes.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "Der Bereich der IP Adressen die für die Verwendung durch Gäster in dieser Zone verfügbar sind. Wenn nur ein NIC verwendet wird, sollten die IP Adressen in demselben CIDR seind wie der CIDR des Pods.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "Das gateway, welches der Gast benutzen soll.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "Die Subnetzmaske des Gast-Netzwerks",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "Der Bereich der IP Adressen die für die Verwendung durch Gäster in dieser Zone verfügbar sind. Wenn nur ein NIC verwendet wird, sollten die IP Adressen in demselben CIDR seind wie der CIDR des Pods.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Der Name für das Netzwerk",
+    "message.instance.scaled.up.confirm": "Möchten Sie Ihre Instanz wirklich hochskalieren?",
+    "message.instanceWizard.noTemplates": "Sie haben keine Vorlagen verfügbar; bitte fügen Sie kompatible Vorlagen hinzu, und starten Sie den Instanz-Installationsassistent neu.",
+    "message.ip.address.changed": "Ihre IP Adresse kann sich geändert haben; möchten Sie die Liste aktualisieren lassen? Bitte beachten Sie, dass sich in diesem Fall die Ansicht der Details schließen wird.",
+    "message.iso.desc": "Dieses Disk Image enthält Daten oder ein bootfähiges Medium für das Betriebssystem.",
+    "message.join.project": "Sie sind jetzt einem Projekt beigetreten. Bitte wechseln Sie in die Ansicht über die Projekte um das Projekt zu sehen.",
+    "message.launch.vm.on.private.network": "Wünschen Sie Ihre Instanze in Ihren eigenen privaten dedizierten Netzwerk zu starten?",
+    "message.launch.zone": "Die Zone kann gestartet werden; bitte fahren sie mit dem nächsten Schritt fort.",
+    "message.ldap.group.import": "Alle Benutzer von der gewählten Gruppe werden importiert.",
+    "message.link.domain.to.ldap": "Autosync für diese Domain mit LDAP einstellen",
+    "message.listView.subselect.multi": "(Strg/Cmd-Klick)",
+    "message.lock.account": "Bitte bestätigen Sie, dass Sie dieses Benutzerkonto sperren möchten. Nach dem Sperren ist es Benutzer dieses Benutzerkontos nicht mehr möglich, ihre Cloud Ressourcen zu verwalten. Auf bestehende Ressourcen kann aber weiterhin zugegriffen werden.",
+    "message.migrate.instance.confirm": "Bitte bestätigen Sie den Host auf den Sie die virtuelle Instanz migrieren wollen.",
+    "message.migrate.instance.to.host": "Bitte bestätigen sie, dass die Instanz auf einen anderen Host migriert werden soll",
+    "message.migrate.instance.to.ps": "Bitte bestätigen sie, dass sie die Instanz auf einen anderen primären Speicher migrieren wollen.",
+    "message.migrate.router.confirm": "Bitte bestätigen Sie den Host, auf welchen Sie den Router migrieren möchten:",
+    "message.migrate.systemvm.confirm": "Bitte bestätigen Sie den Host, auf welchen Sie die System-VM migrieren möchten:",
+    "message.migrate.volume": "Bitte bestätigen sie, dass sie dieses Volume auf einen anderen primären Speicher migrieren wollen.",
+    "message.network.addVM.desc": "Bitte definieren Sie das Netzwerk, zu welchen Sie die VM hinzufügen möchten. Eine neue NIC wird zu diesem Netzwerk hinzugefügt.",
+    "message.network.addVMNIC": "Bitte bestätigen Sie, dass sie eine neue VM NIC zu dieses Netzwerk hinzufügen möchten.",
+    "message.network.remote.access.vpn.configuration": "Remote VPN-Zugang wurde generiert, konnte aber nicht angewendet werden. Bitte überprüfe die Verbindung zum Netzwerkelement und probiere es neu aus.",
+    "message.new.user": "Spezifieren Sie das folgende um einen neuen Nutzer dem Benutzerkonto hinzuzufügen",
+    "message.no.affinity.groups": "Sie haben keine Affinitäts-Gruppen. Bitte fahren Sie fort zum nächsten Schritt.",
+    "message.no.host.available": "Es ist kein Host für eine Migration verfügbar",
+    "message.no.network.support": "Ihr ausgewählter Hypervisor vSphere hat keine zusätzlichen Netzwerk Merkmale. Bitte fahren Sie mit Schritt 5 fort.",
+    "message.no.network.support.configuration.not.true": "Sie haben keine Zone die eine aktivierte Sicherheitsgruppe hat. Deswegen gibt es keine zusätzlichen Netzwerk Merkmale. Bitte fahren Sie mit Schritt 5 fort.",
+    "message.no.projects": "Sie haben keine Projekte.<br/>Bitte erzeugen Sie ein neues aus dem Projekt Bereich.",
+    "message.no.projects.adminOnly": "Sie haben keine Projekt.<br/>Bitte fragen Sie Ihren Administrator damit er ein neues Projekt anlegt.",
+    "message.number.clusters": "<h2><span> # of </span> Cluster</h2>",
+    "message.number.hosts": "<h2><span> # of </span> Hosts</h2>",
+    "message.number.pods": "<h2><span>Anzahl der</span>Pods</h2>",
+    "message.number.storage": "<h2><span> # von </span> Hauptspeichervolumina</h2>",
+    "message.number.zones": "<h2><span> # of </span> Zonen</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warnung Host ist im Wartungsmodus",
+    "message.outofbandmanagement.changepassword": "Passwort für Out-of-band Verwaltung ändern",
+    "message.outofbandmanagement.configure": "Out-of-band Verwaltung konfigurieren",
+    "message.outofbandmanagement.disable": "Out-of-band Verwaltung deaktivieren",
+    "message.outofbandmanagement.enable": "Out-of-band Verwaltung aktivieren",
+    "message.outofbandmanagement.issue": "Eine Out-of-band Verwaltungs-Strom Aktion durchführen",
+    "message.password.has.been.reset.to": "Passwort wurde zurückgesetzt auf",
+    "message.password.of.the.vm.has.been.reset.to": "Passwort der VM wurde zurückgesetzt auf",
+    "message.pending.projects.1": "Sie haben ausstehende Projekteinladungen:",
+    "message.pending.projects.2": "Für die Ansicht wechseln Sie bitte in den Projekt Bereich und wählen die Einladungen aus dem Drop-down-Menü",
+    "message.please.add.at.lease.one.traffic.range": "Bitte fügen Sie mindestens einen Datenverkehrsbereich hinzu.",
+    "message.please.confirm.remove.ssh.key.pair": "Bitte bestätigen Sie, dass Sie dieses SSH-Schlüsselpaar entfernen möchten",
+    "message.please.proceed": "Bitte fahren Sie mit dem nächsten Schritt fort.",
+    "message.please.select.a.configuration.for.your.zone": "Bitte wählen Sie eine Konfiguration für Ihre Zone aus.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Bitte wählen Sie ein anderes öffentliches und Management Netzwerk bevor Sie es löschen",
+    "message.please.select.networks": "Bitte wählen Sie Netzwerke für Ihre virtuelle Maschine aus.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Bitte ein SSH Schlüsselpaar auswählen, welches Sie mit dieser VM verwenden möchten:",
+    "message.please.wait.while.zone.is.being.created": "Bitte warten Sie solange Ihre Zone erstellt wird; dies kann einige Zeit in Anspruch nehmen...",
+    "message.pod.dedication.released": "Pod-Dedizierung freigegeben",
+    "message.portable.ip.delete.confirm": "Bitte bestätigen Sie, dass Sie ein portablen IP-Bereich löschen möchten",
+    "message.project.invite.sent": "Einladung an Benutzer verschickt; sie werden zum Projekt hinzugefügt sobald sie Einladung akzeptiert haben",
+    "message.public.traffic.in.advanced.zone": "Öffentlicher Datenverkehr wird verursacht, wenn VMs in der Cloud auf das Internet zugreifen. Öffentlich zugreifbare IPs müssen für diesen Zweck bezogen werden. Endbenutzer können hierfür das CloudStack UI verwenden um NAT zwischen dem Gast-Netzwerk und Ihrem öffentlichen Netzwerk einzurichten.  <br/><br/>Bitte geben Sie mindestens einen Bereich von IP-Adressen für den Internet-Datenverkehr an.",
+    "message.public.traffic.in.basic.zone": "Öffentlicher Datenverkehr wird generiert, sobald VMs in der Cloud auf das Internet zugreifen oder Dienste an Kunden über das Internet anbieten. Hierfür müssen öffentliche IPs zugewiesen werden. Wenn eine Instanz erstellt wird, wird eine öffentliche IP von diesem Satz zusätzlich zu der Gäste- IP-Adresse zugewiesen. Statisches 1-1-Nat wird automatisch zwischen der öffentlichen IP und der Gäste-IP einrichtet. Endbenutzer können zudem das CloudStack UI verwenden um zusätzliche IPs zu beziehen um statisches NAT zwischen ihren Instanzen und der öffentlichen IP zu implementieren.",
+    "message.question.are.you.sure.you.want.to.add": "Sind Sie sicher, dass Sie hinzufügen möchten",
+    "message.read.admin.guide.scaling.up": "Bitte lesen Sie den Abschnitt über das dynamische Skalieren in dem Administrations-Leitfaden bevor Sie hochskalieren.",
+    "message.recover.vm": "Bitte bestätigen Sie, dass Sie diese VM wiederherstellen möchten.",
+    "message.redirecting.region": "Weiterleitung zu Region...",
+    "message.reinstall.vm": "Hinweis: Mit Vorsicht verwenden. Dies wird dazu führen, dass die VM von der Vorlage neu installiert wird; Daten auf der Root-Ferstplatte werden dadruch gelöscht. Extra Daten-Volumen, falls vorhanden, bleiben jedoch unberührt.",
+    "message.remove.ldap": "Sind Sie sicher, dass Sie die LDAP-Konfiguration löschen möchten?",
+    "message.remove.region": "Sind Sie sicher, dass Sie diese Region vom Verwaltungsserver entfernen möchten?",
+    "message.remove.vpc": "Bitte bestätigen Sie, dass Sie das VPC löschen möchten",
+    "message.remove.vpn.access": "Bitte bestätigen Sie, dass Sie den VPN-Zugriff vom folgenden Benutzer entfernen möchten.",
+    "message.removed.ssh.key.pair": "Hat ein SSH-Schlüsselpaar entfernt",
+    "message.reset.VPN.connection": "Bitte bestätigen Sie, dass Sie die VPN-Verbindung zurücksetzen möchten",
+    "message.reset.password.warning.notPasswordEnabled": "Das Template dieser Instanz wurde erstellt ohne dass ein Passwort erforderlich ist",
+    "message.reset.password.warning.notStopped": "Ihre Instanz muss gestoppt werden bevor Sie versuchen können das Passwort zu ändern",
+    "message.restart.mgmt.server": "Bitte starten Sie Ihre(n) Management Server durch, damit Ihre neuen Einstellungen aktiviert werden.",
+    "message.restart.mgmt.usage.server": "Bitte starten Sie Ihre(n) Management- und Usage Server durch, damit Ihre neuen Einstellungen aktiviert werden.",
+    "message.restart.network": "Alle angebotenen Dienste in diesem Netzwerk werden unterbrochen. Bitte bestätigen Sie, dass Sie dieses Netzwerk neu starten möchten.",
+    "message.restart.vpc": "Bitte bestätigen Sie, dass Sie den VPC neu starten möchten",
+    "message.restart.vpc.remark": "Bitte bestätigen Sie, dass Sie die VPC neu starten möchten <p>small><i>Hinweis: Ein nicht-redundante VPC redundant zu machen wird eine Bereinigung erzwingen. Die Netzwerke werden dadurch einige Minuten nicht verfügbar sein</i>.</small></p>",
+    "message.restoreVM": "Möchten Sie die VM wiederherstellen?",
+    "message.role.ordering.fail": "Die Neuordnung der Regelberechtigungen wurde abgebrochen, es sind Änderungen eingetreten während Sie an der Liste Arbeiten durchgeführt haben. Bitte versuchen Sie es erneut.",
+    "message.security.group.usage": "(Verwenden Sie <strong>Ctrl-click</strong> um alle passenden Sicherheits Gruppen auszuwählen)",
+    "message.select.a.zone": "Eine Zone steht typischerweise für ein einzelnes Rechenzentrum. Mehrere Zonen helfen dabei, die Cloud zuverlässiger zu machen durch physikalische Isolation und Redundanz.",
+    "message.select.affinity.groups": "Bitte wählen Sie beliebige Affinitätsgruppen, zu denen diese VM gehören soll:",
+    "message.select.instance": "Bitte wählen Sie eine Instanz aus.",
+    "message.select.iso": "Bitte wählen Sie ein ISO für Ihre neue virtuelle Instanz aus.",
+    "message.select.item": "Bitte wählen Sie ein Element aus.",
+    "message.select.security.groups": "Bitte wählen Sie (eine) Sicherheitsgruppe(n) für Ihre neue VM aus",
+    "message.select.template": "Bitte wählen Sie eine Vorlage für Ihre neue virtuelle Instanz aus.",
+    "message.select.tier": "Bitte Ebene auswählen",
+    "message.set.default.NIC": "Bitte bestätigen Sie, dass Sie für die VM diese NIC zur Standard-NIC möchten.",
+    "message.set.default.NIC.manual": "Bitte aktuallisieren Sie die Standard-NIC auf der VM jetzt manuell.",
+    "message.setup.physical.network.during.zone.creation": "Wenn Sie eine erweiterte Zone hinzufügen, müssen Sie ein oder mehrere physikalische Netzweke einrichten. Jedes Netzwerk entspricht einer NIC auf dem Hypervisor. Jedes physikalische Netzwerk kann eine oder mehere Arten von Datenverkehr behandeln, mit gewissen Beschränkungen wie diese kombiniert werden können. <br/><br/><strong>Durch Ziehen und Loslassen eines oder mehreren Datenverkehrsarten auf jedes einzelne physikalische Netzwerk.",
+    "message.setup.physical.network.during.zone.creation.basic": "Wenn Sie eine Basiszone hinzufügen, können Sie ein einzelnes physikalisches Netzwerk einrichten, welches einer NIC auf dem Hypervisor entspricht. Das Netzwerk behandelt mehrere Arten von Datenverkehr.<br/><br/>Sie können auch weitere Datenverkehrsarten zum pysikalische Netzwerk hinzufügen, durch <strong>Ziehen und Loslassen</strong>.",
+    "message.setup.successful": "Cloud setup erfolgreich",
+    "message.snapshot.schedule": "Sie können wiederkehrende Schnapschuss-Zeitpläne einrichten in dem Sie die untenstehenden verfügbaren Optionen auswählen und Ihren Regeleinstellungen anwenden",
+    "message.specifiy.tag.key.value": "Bitte geben Sie einen Ettikettnamen und -wert an",
+    "message.specify.url": "Bitte geben Sie eine URL an",
+    "message.step.1.continue": "Bitte wählen Sie eine Vorlage oder ISO, um fortzufahren",
+    "message.step.1.desc": "Bitte wählen Sie eine Vorlage für Ihre neue virtuelle Instanz aus. Sie können auch ein leeres Template auswählen, von welchen aus dann ein ISO-Abbild instaliert werden kann.",
+    "message.step.2.continue": "Bitte wählen Sie ein Dienstangebot zum Fortfahren aus",
+    "message.step.3.continue": "Bitte wählen Sie ein Festplattenangebot zum Fortfahren aus",
+    "message.step.4.continue": "Bitte wählen Sie mindestens ein Netzwerk, um fortzufahren",
+    "message.step.4.desc": "Bitte wählen Sie Ihr Hauptnetzwerk zu dem Ihre virtuelle Instanz verbunden sein wird.",
+    "message.storage.traffic": "Datenverkehr zwischen den CloudStack internen Ressourcen, inklusive aller Komponenten, die mit dem Verwaltugns-Server kommunizieren, wie Hosts und CloudStack System VMs. Bitte konfigurieren Sie Speicherdatenverkehr hier.",
+    "message.suspend.project": "Sind Sie sicher, dass sie die Ausführung dieses Projektes unterbrechen möchten?",
+    "message.systems.vms.ready": "System-VMs bereit.",
+    "message.template.copying": "Vorlage wird kopiert.",
+    "message.template.desc": "Betriebssystem Abbild das zum starten von VMs verwendet werden kann",
+    "message.tier.required": "Ebene ist zwingend",
+    "message.tooltip.dns.1": "Name eines DNS Servers zur Verwendung von VMs in der Zone. Die öffentlichen IP Adressen müssen eine Route zu diesem Server haben.",
+    "message.tooltip.dns.2": "Ein zweiter Name eines DNS Servers zur Verwendung von VMs in der Zone. Die öffentlichen IP Adressen müssen eine Route zu diesem Server haben.",
+    "message.tooltip.internal.dns.1": "Ein Name eines DNS Servers zur Verwendung von CloudStack internen System VMs in der Zone. Die öffentlichen IP Adressen müssen eine Route zu diesem Server haben.",
+    "message.tooltip.internal.dns.2": "Ein Name eines DNS Servers zur Verwendung von CloudStack internen System VMs in der Zone. Die öffentlichen IP Adressen müssen eine Route zu diesem Server haben.",
+    "message.tooltip.network.domain": "Ein DNS Suffix zur Erstellung eines Kunden Domain Namens für das Netzwerk das von Gast VMs verwendet wird.",
+    "message.tooltip.pod.name": "Ein Name für diesen Pod.",
+    "message.tooltip.reserved.system.gateway": "Das Gateway für die Hosts des pods.",
+    "message.tooltip.reserved.system.netmask": "Das Netzwerk Prefix welches das Pod Subnetz definiert. Es verwendet CIDR Notation.",
+    "message.tooltip.zone.name": "Einen Namen für die Zone.",
+    "message.update.os.preference": "Bitte geben Sie eine Betriebssystem-Präferenz für diesen Host an, Alle virtuellen Instanzen mit gleichen Präferenzen werden zuerst zu diesem Host zugewiesen bevor andere gewählt werden.",
+    "message.update.resource.count": "Bitte bestätigen Sie, dass Sie die Anzahl der Ressourcen für dieses Benutzerkonto aktualisieren möchten.",
+    "message.update.ssl": "Bitte eine neue X.509 kompatible SSL Zertifikatskette einreichen, diese wird auf jedem Konsolenproxy und der Sekundärspeicher-VM aktuallisiert:",
+    "message.update.ssl.failed": "Fehler beim Aktualisieren des SSL-Zertifikats.",
+    "message.update.ssl.succeeded": "Aktualisierung der SSL Zertifikate erfolgreich durchgeführt",
+    "message.validate.URL": "Bitte geben Sie eine gültige URL ein.",
+    "message.validate.accept": "Bitte geben Sie einen Wert mit einer gültigen Erweiterung ein.",
+    "message.validate.creditcard": "Bitte geben Sie eine gültige Kreditkartennummer ein.",
+    "message.validate.date": "Bitte geben Sie ein gültiges Datum ein.",
+    "message.validate.date.ISO": "Bitte geben Sie ein gültiges Datum (ISO) ein.",
+    "message.validate.digits": "Bitte geben Sie nur Ziffern ein.",
+    "message.validate.email.address": "Bitte geben Sie eine gültige E-Mail-Adresse ein.",
+    "message.validate.equalto": "Bitte geben Sie den gleichen Wert erneut ein.",
+    "message.validate.fieldrequired": "Dieses Feld wird benötigt",
+    "message.validate.fixfield": "Bitte korrigieren Sie dieses Feld.",
+    "message.validate.instance.name": "Der Name der Instanz kann nicht länger als 63 Zeichen sein. Nur ASCII Zeichen wie a~z, A~Z, Zahlen 0~9 und Bindestriche sind erlaubt. Er muß mit einem Buchstaben starten und mit einem Buchstaben oder einer Zahl enden.",
+    "message.validate.invalid.characters": "Ungültige Zeichen gefunden; bitte korrigieren.",
+    "message.validate.max": "Bitte geben sie einen Wert kleiner oder gleich {0} ein.",
+    "message.validate.maxlength": "Bitte geben Sie nicht mehr als {0} Zeichen ein.",
+    "message.validate.minlength": "Bitte geben Sie mindestens {0} Zeichen ein.",
+    "message.validate.number": "Bitte geben Sie eine gültige Nummer ein.",
+    "message.validate.range": "Bitte geben Sie einen Wert zwischen {0} und {1} ein.",
+    "message.validate.range.length": "Bitte geben Sie einen Wert zwischen {0}  und {1} Zeichen land ein.",
+    "message.virtual.network.desc": "Ein dediziert virtualisiertes Netzwerk für Ihr Benutzerkonto. Die Broadcast-Domain ist innerhalb  eines VLANs und jeglicher öffentliche Netzwerkzugriff wird von einem virtuellen Router geroutet.",
+    "message.vm.create.template.confirm": "Das Erstellen einer Vorlage führt automatisch zu einem Neustart der VM.",
+    "message.vm.review.launch": "Bitte überprüfen Sie die folgenden Informationen und bestätigen Sie, dass Ihre virtuelle Instanz korrekt ist, bevor Sie sie starten.",
+    "message.vnmc.available.list": "VNMC ist nicht verfügbar aus der Providerliste.",
+    "message.vnmc.not.available.list": "VNMC ist nicht verfügbar aus der Providerliste.",
+    "message.volume.create.template.confirm": "Bitte bestätigen Sie, dass Sie eine Vorlage aus diesem Festplatten-Volumen erstellen möchten. Das Erstellen der Vorlage kann wenige Minuten oder auch länger dauern abhängig von der Größe des Volumen.",
+    "message.waiting.for.builtin.templates.to.load": "Warten bis die mitgelieferten Vorlagen geladen sind...",
+    "message.you.must.have.at.least.one.physical.network": "Sie müssen mindestens ein physikalisches Netzwerk haben",
+    "message.your.cloudstack.is.ready": "Ihr CloudStack ist bereit!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Die Erstellung der Zone ist komplett. Möchten Sie diese Zone aktivieren?",
+    "message.zone.no.network.selection": "Die von Ihnen gewählte Zone bietet keine Alternativen für die Auswahl eines Netzwerks.",
+    "message.zone.step.1.desc": "Bitte wählen Sie ein Netzwerk-Modell für Ihre Zone.",
+    "message.zone.step.2.desc": "Bitte geben Sie die folgende Information ein, um eine neue Zone hinzuzufügen",
+    "message.zone.step.3.desc": "Bitte geben Sie die folgende Information ein, um einen neuen pod hinzuzufügen",
+    "message.zoneWizard.enable.local.storage": "WARNUNG: Wenn Sie den lokalen Speicher für diese Zone aktivieren möchten, müssen Sie, abhängig davon wo Sie Ihre System-VMs starten möchten, wie folgt vorgehen: <br/><br/>1. Wenn die System-VMs im geteilten Hauptspeicher gestartet werden sollen, muss der geteilte Hauptspeicher nach dem Erstellen zur Zone hinzugefügt werden. Zudem muss die Zone im deaktivierten Zustand gestartet werden.<br/><br/>2. Wenn die System-VMs im lokalen Hauptspeicher gestartet werden sollen, muss, \"system.vm.use.local.storage\" auf \"true\" gesetzt werden bevor Sie die Zone aktivieren.<br/><br/><br/>Möchten Sie weiterfahren?",
+    "messgae.validate.min": "Bitte geben sie einen Wert größer oder gleich {0} ein.",
+    "mode": "Modus",
+    "network.rate": "Netzwerk-Rate",
+    "notification.reboot.instance": "Instanz neu starten",
+    "notification.start.instance": "Instanz starten",
+    "notification.stop.instance": "Instanz stoppen",
+    "side.by.side": "Nebeneinander",
+    "state.Accepted": "Angenommen",
+    "state.Active": "Aktiv",
+    "state.Allocated": "Zugeteilt",
+    "state.Allocating": "Zugeteilt",
+    "state.BackedUp": "Daten gesichert",
+    "state.BackingUp": "Daten werden gesichert",
+    "state.Completed": "Fertiggestellt",
+    "state.Creating": "Erstellung",
+    "state.Declined": "Abgelehnt",
+    "state.Destroyed": "Zerstört",
+    "state.Disabled": "Deaktiviert",
+    "state.Enabled": "Aktiviert",
+    "state.Error": "Fehler",
+    "state.Expunging": "Unwiederbringlich gelöscht",
+    "state.Migrating": "Migration",
+    "state.Pending": "Ausstehend",
+    "state.Ready": "Bereit",
+    "state.Running": "Läuft",
+    "state.Starting": "Startet",
+    "state.Stopped": "Gestoppt",
+    "state.Stopping": "Stoppt",
+    "state.Suspended": "Suspendiert",
+    "state.detached": "Losgelöst",
+    "title.upload.volume": "Volumen hochladen",
+    "ui.listView.filters.all": "Alle",
+    "ui.listView.filters.mine": "Meine"
+};
diff --git a/ui/l10n/en.js b/ui/l10n/en.js
new file mode 100644
index 0000000..c71c7c1
--- /dev/null
+++ b/ui/l10n/en.js
@@ -0,0 +1,2293 @@
+// 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.
+var dictionary = {"ICMP.code":"ICMP Code",
+"ICMP.type":"ICMP Type",
+"changed.item.properties":"Changed item properties",
+"confirm.enable.s3":"Please fill in the following information to enable support for S3-backed Secondary Storage",
+"confirm.enable.swift":"Please fill in the following information to enable support for Swift",
+"error.could.not.change.your.password.because.ldap.is.enabled":"Error could not change your password because LDAP is enabled.",
+"error.could.not.enable.zone":"Could not enable zone",
+"error.installWizard.message":"Something went wrong; you may go back and correct any errors",
+"error.invalid.username.password":"Invalid username or password",
+"error.login":"Your username/password does not match our records.",
+"error.menu.select":"Unable to perform action due to no items being selected.",
+"error.mgmt.server.inaccessible":"The Management Server is unaccessible.  Please try again later.",
+"error.password.not.match":"The password fields do not match",
+"error.please.specify.physical.network.tags":"Network offerings is not available until you specify tags for this physical network.",
+"error.session.expired":"Your session has expired.",
+"error.something.went.wrong.please.correct.the.following":"Something went wrong; please correct the following",
+"error.unable.to.reach.management.server":"Unable to reach Management Server",
+"error.unresolved.internet.name":"Your internet name cannot be resolved.",
+"force.delete":"Force Delete",
+"force.delete.domain.warning":"Warning: Choosing this option will cause the deletion of all child domains and all associated accounts and their resources.",
+"force.remove":"Force Remove",
+"force.remove.host.warning":"Warning: Choosing this option will cause CloudStack to forcefully stop all running virtual machines before removing this host from the cluster.",
+"force.stop":"Force Stop",
+"force.stop.instance.warning":"Warning: Forcing a stop on this instance should be your last option. It can lead to data loss as well as inconsistent behavior of the virtual machine state.",
+"hint.no.host.tags":"No host tags found",
+"hint.no.storage.tags":"No storage tags found",
+"hint.type.part.host.tag":"Type in part of a host tag",
+"hint.type.part.storage.tag":"Type in part of a storage tag",
+"image.directory":"Image Directory",
+"inline":"Inline",
+"instances.actions.reboot.label":"Reboot instance",
+"label.CIDR.list":"CIDR list",
+"label.CIDR.of.destination.network":"CIDR of destination network",
+"label.CPU.cap":"CPU Cap",
+"label.DHCP.server.type":"DHCP Server Type",
+"label.DNS.domain.for.guest.networks":"DNS domain for Guest Networks",
+"label.ESP.encryption":"ESP Encryption",
+"label.ESP.hash":"ESP Hash",
+"label.ESP.lifetime":"ESP Lifetime (second)",
+"label.ESP.policy":"ESP policy",
+"label.IKE.DH":"IKE DH",
+"label.IKE.encryption":"IKE Encryption",
+"label.IKE.hash":"IKE Hash",
+"label.IKE.lifetime":"IKE lifetime (second)",
+"label.IKE.policy":"IKE policy",
+"label.IPsec.preshared.key":"IPsec Preshared-Key",
+"label.LB.isolation":"LB isolation",
+"label.LUN.number":"LUN #",
+"label.PA":"Palo Alto",
+"label.PA.log.profile":"Palo Alto Log Profile",
+"label.PA.threat.profile":"Palo Alto Threat Profile",
+"label.PING.CIFS.password":"PING CIFS password",
+"label.PING.CIFS.username":"PING CIFS username",
+"label.PING.dir":"PING Directory",
+"label.PING.storage.IP":"PING storage IP",
+"label.PreSetup":"PreSetup",
+"label.Pxe.server.type":"Pxe Server Type",
+"label.SNMP.community":"SNMP Community",
+"label.SNMP.port":"SNMP Port",
+"label.SR.name":"SR Name-Label",
+"label.SharedMountPoint":"SharedMountPoint",
+"label.TFTP.dir":"TFTP Directory",
+"label.VMFS.datastore":"VMFS datastore",
+"label.VMs.in.tier":"VMs in tier",
+"label.VPC.limits":"VPC limits",
+"label.VPC.router.details":"VPC router details",
+"label.VPN.connection":"VPN Connection",
+"label.VPN.customer.gateway":"VPN Customer Gateway",
+"label.VPN.gateway":"VPN Gateway",
+"label.Xenserver.Tools.Version61plus":"Original XS Version is 6.1+",
+"label.about":"About",
+"label.about.app":"About CloudStack",
+"label.accept.project.invitation":"Accept project invitation",
+"label.account":"Account",
+"label.account.and.security.group":"Account, Security group",
+"label.account.details":"Account details",
+"label.account.id":"Account ID",
+"label.account.lower":"account",
+"label.account.name":"Account Name",
+"label.account.specific":"Account-Specific",
+"label.account.type":"Account Type",
+"label.accounts":"Accounts",
+"label.acl":"ACL",
+"label.acl.id":"ACL ID",
+"label.acl.list.rules":"ACL List Rules",
+"label.acl.name":"ACL Name",
+"label.acl.replaced":"ACL replaced",
+"label.acquire.new.ip":"Acquire New IP",
+"label.acquire.new.secondary.ip":"Acquire new secondary IP",
+"label.action":"Action",
+"label.action.attach.disk":"Attach Disk",
+"label.action.attach.disk.processing":"Attaching Disk....",
+"label.action.attach.iso":"Attach ISO",
+"label.action.attach.iso.processing":"Attaching ISO....",
+"label.action.cancel.maintenance.mode":"Cancel Maintenance Mode",
+"label.action.cancel.maintenance.mode.processing":"Cancelling Maintenance Mode....",
+"label.action.change.password":"Change Password",
+"label.action.change.service":"Change Service",
+"label.action.change.service.processing":"Changing Service....",
+"label.action.configure.samlauthorization":"Configure SAML SSO Authorization",
+"label.action.copy.ISO":"Copy ISO",
+"label.action.copy.ISO.processing":"Copying ISO....",
+"label.action.copy.template":"Copy Template",
+"label.action.copy.template.processing":"Copying Template....",
+"label.action.create.template":"Create Template",
+"label.action.create.template.from.vm":"Create Template from VM",
+"label.action.create.template.from.volume":"Create Template from Volume",
+"label.action.create.template.processing":"Creating Template....",
+"label.action.create.vm":"Create VM",
+"label.action.create.vm.processing":"Creating VM....",
+"label.action.create.volume":"Create Volume",
+"label.action.create.volume.processing":"Creating Volume....",
+"label.action.delete.IP.range":"Delete IP Range",
+"label.action.delete.IP.range.processing":"Deleting IP Range....",
+"label.action.delete.ISO":"Delete ISO",
+"label.action.delete.ISO.processing":"Deleting ISO....",
+"label.action.delete.account":"Delete account",
+"label.action.delete.account.processing":"Deleting account....",
+"label.action.delete.cluster":"Delete Cluster",
+"label.action.delete.cluster.processing":"Deleting Cluster....",
+"label.action.delete.disk.offering":"Delete Disk Offering",
+"label.action.delete.disk.offering.processing":"Deleting Disk Offering....",
+"label.action.delete.domain":"Delete Domain",
+"label.action.delete.domain.processing":"Deleting Domain....",
+"label.action.delete.firewall":"Delete firewall rule",
+"label.action.delete.firewall.processing":"Deleting Firewall....",
+"label.action.delete.ingress.rule":"Delete Ingress Rule",
+"label.action.delete.ingress.rule.processing":"Deleting Ingress Rule....",
+"label.action.delete.load.balancer":"Delete load balancer rule",
+"label.action.delete.load.balancer.processing":"Deleting Load Balancer....",
+"label.action.delete.network":"Delete Network",
+"label.action.delete.network.processing":"Deleting Network....",
+"label.action.delete.nexusVswitch":"Delete Nexus 1000v",
+"label.action.delete.nic":"Remove NIC",
+"label.action.delete.physical.network":"Delete physical network",
+"label.action.delete.pod":"Delete Pod",
+"label.action.delete.pod.processing":"Deleting Pod....",
+"label.action.delete.primary.storage":"Delete Primary Storage",
+"label.action.delete.primary.storage.processing":"Deleting Primary Storage....",
+"label.action.delete.secondary.storage":"Delete Secondary Storage",
+"label.action.delete.secondary.storage.processing":"Deleting Secondary Storage....",
+"label.action.delete.security.group":"Delete Security Group",
+"label.action.delete.security.group.processing":"Deleting Security Group....",
+"label.action.delete.service.offering":"Delete Service Offering",
+"label.action.delete.service.offering.processing":"Deleting Service Offering....",
+"label.action.delete.snapshot":"Delete Snapshot",
+"label.action.delete.snapshot.processing":"Deleting Snapshot....",
+"label.action.delete.system.service.offering":"Delete System Service Offering",
+"label.action.delete.template":"Delete Template",
+"label.action.delete.template.processing":"Deleting Template....",
+"label.action.delete.user":"Delete User",
+"label.action.delete.user.processing":"Deleting User....",
+"label.action.delete.volume":"Delete Volume",
+"label.action.delete.volume.processing":"Deleting Volume....",
+"label.action.delete.zone":"Delete Zone",
+"label.action.delete.zone.processing":"Deleting Zone....",
+"label.action.destroy.instance":"Destroy Instance",
+"label.action.destroy.instance.processing":"Destroying Instance....",
+"label.action.destroy.systemvm":"Destroy System VM",
+"label.action.destroy.systemvm.processing":"Destroying System VM....",
+"label.action.detach.disk":"Detach Disk",
+"label.action.detach.disk.processing":"Detaching Disk....",
+"label.action.detach.iso":"Detach ISO",
+"label.action.detach.iso.processing":"Detaching ISO....",
+"label.action.disable.account":"Disable account",
+"label.action.disable.account.processing":"Disabling account....",
+"label.action.disable.cluster":"Disable Cluster",
+"label.action.disable.cluster.processing":"Disabling Cluster....",
+"label.action.disable.nexusVswitch":"Disable Nexus 1000v",
+"label.action.disable.physical.network":"Disable physical network",
+"label.action.disable.pod":"Disable Pod",
+"label.action.disable.pod.processing":"Disabling Pod....",
+"label.action.disable.static.NAT":"Disable Static NAT",
+"label.action.disable.static.NAT.processing":"Disabling Static NAT....",
+"label.action.disable.user":"Disable User",
+"label.action.disable.user.processing":"Disabling User....",
+"label.action.disable.zone":"Disable Zone",
+"label.action.disable.zone.processing":"Disabling Zone....",
+"label.action.download.ISO":"Download ISO",
+"label.action.download.template":"Download Template",
+"label.action.download.volume":"Download Volume",
+"label.action.download.volume.processing":"Downloading Volume....",
+"label.action.edit.ISO":"Edit ISO",
+"label.action.edit.account":"Edit account",
+"label.action.edit.disk.offering":"Edit Disk Offering",
+"label.action.edit.domain":"Edit Domain",
+"label.action.edit.global.setting":"Edit Global Setting",
+"label.action.edit.host":"Edit Host",
+"label.action.edit.instance":"Edit Instance",
+"label.action.edit.network":"Edit Network",
+"label.action.edit.network.offering":"Edit Network Offering",
+"label.action.edit.network.processing":"Editing Network....",
+"label.action.edit.pod":"Edit Pod",
+"label.action.edit.primary.storage":"Edit Primary Storage",
+"label.action.edit.resource.limits":"Edit Resource Limits",
+"label.action.edit.service.offering":"Edit Service Offering",
+"label.action.edit.template":"Edit Template",
+"label.action.edit.user":"Edit User",
+"label.action.edit.zone":"Edit Zone",
+"label.action.enable.account":"Enable account",
+"label.action.enable.account.processing":"Enabling account....",
+"label.action.enable.cluster":"Enable Cluster",
+"label.action.enable.cluster.processing":"Enabling Cluster....",
+"label.action.enable.maintenance.mode":"Enable Maintenance Mode",
+"label.action.enable.maintenance.mode.processing":"Enabling Maintenance Mode....",
+"label.action.enable.nexusVswitch":"Enable Nexus 1000v",
+"label.action.enable.physical.network":"Enable physical network",
+"label.action.enable.pod":"Enable Pod",
+"label.action.enable.pod.processing":"Enabling Pod....",
+"label.action.enable.static.NAT":"Enable Static NAT",
+"label.action.enable.static.NAT.processing":"Enabling Static NAT....",
+"label.action.enable.user":"Enable User",
+"label.action.enable.user.processing":"Enabling User....",
+"label.action.enable.zone":"Enable Zone",
+"label.action.enable.zone.processing":"Enabling Zone....",
+"label.action.expunge.instance":"Expunge Instance",
+"label.action.expunge.instance.processing":"Expunging Instance....",
+"label.action.force.reconnect":"Force Reconnect",
+"label.action.force.reconnect.processing":"Reconnecting....",
+"label.action.generate.keys":"Generate Keys",
+"label.action.generate.keys.processing":"Generate Keys....",
+"label.action.list.nexusVswitch":"List Nexus 1000v",
+"label.action.lock.account":"Lock account",
+"label.action.lock.account.processing":"Locking account....",
+"label.action.manage.cluster":"Manage Cluster",
+"label.action.manage.cluster.processing":"Managing Cluster....",
+"label.action.migrate.instance":"Migrate Instance",
+"label.action.migrate.instance.processing":"Migrating Instance....",
+"label.action.migrate.router":"Migrate Router",
+"label.action.migrate.router.processing":"Migrating Router....",
+"label.action.migrate.systemvm":"Migrate System VM",
+"label.action.migrate.systemvm.processing":"Migrating System VM....",
+"label.action.reboot.instance":"Reboot Instance",
+"label.action.reboot.instance.processing":"Rebooting Instance....",
+"label.action.reboot.router":"Reboot Router",
+"label.action.reboot.router.processing":"Rebooting Router....",
+"label.action.reboot.systemvm":"Reboot System VM",
+"label.action.reboot.systemvm.processing":"Rebooting System VM....",
+"label.action.recurring.snapshot":"Recurring Snapshots",
+"label.action.register.iso":"Register ISO",
+"label.action.register.template":"Register Template from URL",
+"label.action.release.ip":"Release IP",
+"label.action.release.ip.processing":"Releasing IP....",
+"label.action.remove.host":"Remove Host",
+"label.action.remove.host.processing":"Removing Host....",
+"label.action.reset.password":"Reset Password",
+"label.action.reset.password.processing":"Resetting Password....",
+"label.action.resize.volume":"Resize Volume",
+"label.action.resize.volume.processing":"Resizing Volume....",
+"label.action.resource.limits":"Resource limits",
+"label.action.restore.instance":"Restore Instance",
+"label.action.restore.instance.processing":"Restoring Instance....",
+"label.action.revert.snapshot":"Revert to Snapshot",
+"label.action.revert.snapshot.processing":"Reverting to Snapshot...",
+"label.action.start.instance":"Start Instance",
+"label.action.start.instance.processing":"Starting Instance....",
+"label.action.start.router":"Start Router",
+"label.action.start.router.processing":"Starting Router....",
+"label.action.start.systemvm":"Start System VM",
+"label.action.start.systemvm.processing":"Starting System VM....",
+"label.action.stop.instance":"Stop Instance",
+"label.action.stop.instance.processing":"Stopping Instance....",
+"label.action.stop.router":"Stop Router",
+"label.action.stop.router.processing":"Stopping Router....",
+"label.action.stop.systemvm":"Stop System VM",
+"label.action.stop.systemvm.processing":"Stopping System VM....",
+"label.action.take.snapshot":"Take Snapshot",
+"label.action.take.snapshot.processing":"Taking Snapshot....",
+"label.action.unmanage.cluster":"Unmanage Cluster",
+"label.action.unmanage.cluster.processing":"Unmanaging Cluster....",
+"label.action.update.OS.preference":"Update OS Preference",
+"label.action.update.OS.preference.processing":"Updating OS Preference....",
+"label.action.update.resource.count":"Update Resource Count",
+"label.action.update.resource.count.processing":"Updating Resource Count....",
+"label.action.vmsnapshot.create":"Take VM Snapshot",
+"label.action.vmsnapshot.delete":"Delete VM snapshot",
+"label.action.vmsnapshot.revert":"Revert to VM snapshot",
+"label.actions":"Actions",
+"label.activate.project":"Activate Project",
+"label.active.sessions":"Active Sessions",
+"label.add":"Add",
+"label.add.ACL":"Add ACL",
+"label.add.BigSwitchBcf.device":"Add BigSwitch BCF Controller",
+"label.add.BrocadeVcs.device":"Add Brocade Vcs Switch",
+"label.add.F5.device":"Add F5 device",
+"label.add.LDAP.account":"Add LDAP Account",
+"label.add.NiciraNvp.device":"Add Nvp Controller",
+"label.add.NuageVsp.device":"Add Nuage Virtualized Services Directory (VSD)",
+"label.add.OpenDaylight.device":"Add OpenDaylight Controller",
+"label.add.PA.device":"Add Palo Alto device",
+"label.add.SRX.device":"Add SRX device",
+"label.add.VM.to.tier":"Add VM to tier",
+"label.add.VPN.gateway":"Add VPN Gateway",
+"label.add.account":"Add Account",
+"label.add.account.to.project":"Add account to project",
+"label.add.accounts":"Add accounts",
+"label.add.accounts.to":"Add accounts to",
+"label.add.acl.list":"Add ACL List",
+"label.add.affinity.group":"Add new affinity group",
+"label.add.baremetal.dhcp.device":"Add Baremetal DHCP Device",
+"label.add.baremetal.rack.configuration":"Add Baremetal Rack Configuration",
+"label.add.by":"Add by",
+"label.add.by.cidr":"Add By CIDR",
+"label.add.by.group":"Add By Group",
+"label.add.ciscoASA1000v":"Add CiscoASA1000v Resource",
+"label.add.cluster":"Add Cluster",
+"label.add.compute.offering":"Add compute offering",
+"label.add.direct.iprange":"Add Direct Ip Range",
+"label.add.disk.offering":"Add Disk Offering",
+"label.add.domain":"Add Domain",
+"label.add.egress.rule":"Add egress rule",
+"label.add.firewall":"Add firewall rule",
+"label.add.globo.dns":"Add GloboDNS",
+"label.add.gslb":"Add GSLB",
+"label.add.guest.network":"Add guest network",
+"label.add.host":"Add Host",
+"label.add.ingress.rule":"Add Ingress Rule",
+"label.add.intermediate.certificate":"Add intermediate certificate",
+"label.add.internal.lb":"Add Internal LB",
+"label.add.ip.range":"Add IP Range",
+"label.add.isolated.guest.network":"Add Isolated Guest Network",
+"label.add.isolated.guest.network.with.sourcenat":"Add Isolated Guest Network with SourceNat",
+"label.add.isolated.network":"Add Isolated Network",
+"label.add.ldap.account":"Add LDAP account",
+"label.add.list.name":"ACL List Name",
+"label.add.load.balancer":"Add Load Balancer",
+"label.add.more":"Add More",
+"label.add.netScaler.device":"Add Netscaler device",
+"label.add.network":"Add Network",
+"label.add.network.ACL":"Add network ACL",
+"label.add.network.acl.list":"Add Network ACL List",
+"label.add.network.device":"Add Network Device",
+"label.add.network.offering":"Add network offering",
+"label.add.new.F5":"Add new F5",
+"label.add.new.NetScaler":"Add new NetScaler",
+"label.add.new.PA":"Add new Palo Alto",
+"label.add.new.SRX":"Add new SRX",
+"label.add.new.gateway":"Add new gateway",
+"label.add.new.tier":"Add new tier",
+"label.add.nfs.secondary.staging.store":"Add NFS Secondary Staging Store",
+"label.add.physical.network":"Add physical network",
+"label.add.pod":"Add Pod",
+"label.add.port.forwarding.rule":"Add port forwarding rule",
+"label.add.portable.ip.range":"Add Portable IP Range",
+"label.add.primary.storage":"Add Primary Storage",
+"label.add.private.gateway":"Add Private Gateway",
+"label.add.region":"Add Region",
+"label.add.resources":"Add Resources",
+"label.add.role":"Add Role",
+"label.add.route":"Add route",
+"label.add.rule":"Add rule",
+"label.add.secondary.storage":"Add Secondary Storage",
+"label.add.security.group":"Add Security Group",
+"label.add.service.offering":"Add Service Offering",
+"label.add.static.nat.rule":"Add static NAT rule",
+"label.add.static.route":"Add static route",
+"label.add.system.service.offering":"Add System Service Offering",
+"label.add.template":"Add Template",
+"label.add.to.group":"Add to group",
+"label.add.ucs.manager":"Add UCS Manager",
+"label.add.user":"Add User",
+"label.add.userdata":"Userdata",
+"label.add.vlan":"Add VLAN",
+"label.add.vm":"Add VM",
+"label.add.vms":"Add VMs",
+"label.add.vms.to.lb":"Add VM(s) to load balancer rule",
+"label.add.vmware.datacenter":"Add VMware datacenter",
+"label.add.vnmc.device":"Add VNMC device",
+"label.add.vnmc.provider":"Add VNMC provider",
+"label.add.volume":"Add Volume",
+"label.add.vpc":"Add VPC",
+"label.add.vpc.offering":"Add VPC Offering",
+"label.add.vpn.customer.gateway":"Add VPN Customer Gateway",
+"label.add.vpn.user":"Add VPN user",
+"label.add.vxlan":"Add VXLAN",
+"label.add.zone":"Add Zone",
+"label.added.brocade.vcs.switch":"Added new Brocade Vcs Switch",
+"label.added.network.offering":"Added network offering",
+"label.added.new.bigswitch.bcf.controller":"Added new BigSwitch BCF Controller",
+"label.added.nicira.nvp.controller":"Added new Nicira NVP Controller",
+"label.addes.new.f5":"Added new F5",
+"label.adding":"Adding",
+"label.adding.cluster":"Adding Cluster",
+"label.adding.failed":"Adding Failed",
+"label.adding.pod":"Adding Pod",
+"label.adding.processing":"Adding....",
+"label.adding.succeeded":"Adding Succeeded",
+"label.adding.user":"Adding User",
+"label.adding.zone":"Adding Zone",
+"label.additional.networks":"Additional Networks",
+"label.admin":"Admin",
+"label.admin.accounts":"Admin Accounts",
+"label.advanced":"Advanced",
+"label.advanced.mode":"Advanced Mode",
+"label.advanced.search":"Advanced Search",
+"label.affinity":"Affinity",
+"label.affinity.group":"Affinity Group",
+"label.affinity.groups":"Affinity Groups",
+"label.agent.password":"Agent Password",
+"label.agent.port":"Agent Port",
+"label.agent.state":"Agent State",
+"label.agent.username":"Agent Username",
+"label.agree":"Agree",
+"label.alert":"Alert",
+"label.alert.archived":"Alert Archived",
+"label.alert.deleted":"Alert Deleted",
+"label.alert.details":"Alert details",
+"label.algorithm":"Algorithm",
+"label.allocated":"Allocated",
+"label.allocation.state":"Allocation State",
+"label.allow":"Allow",
+"label.anti.affinity":"Anti-affinity",
+"label.anti.affinity.group":"Anti-affinity Group",
+"label.anti.affinity.groups":"Anti-affinity Groups",
+"label.api.key":"API Key",
+"label.api.version":"API Version",
+"label.app.name":"CloudStack",
+"label.apply":"Apply",
+"label.archive":"Archive",
+"label.archive.alerts":"Archive alerts",
+"label.archive.events":"Archive events",
+"label.assign":"Assign",
+"label.assign.instance.another":"Assign Instance to Another Account",
+"label.assign.to.load.balancer":"Assigning instance to load balancer",
+"label.assign.vms":"Assign VMs",
+"label.assigned.vms":"Assigned VMs",
+"label.associate.public.ip":"Associate Public IP",
+"label.associated.network":"Associated Network",
+"label.associated.network.id":"Associated Network ID",
+"label.associated.profile":"Associated Profile",
+"label.attached.iso":"Attached ISO",
+"label.author.email":"Author e-mail",
+"label.author.name":"Author name",
+"label.autoscale":"AutoScale",
+"label.autoscale.configuration.wizard":"AutoScale Configuration Wizard",
+"label.availability":"Availability",
+"label.availability.zone":"Availability Zone",
+"label.availabilityZone":"availabilityZone",
+"label.available":"Available",
+"label.available.public.ips":"Available Public IP Addresses",
+"label.back":"Back",
+"label.bandwidth":"Bandwidth",
+"label.baremetal.dhcp.devices":"Baremetal DHCP Devices",
+"label.baremetal.dhcp.provider":"Baremetal DHCP Provider",
+"label.baremetal.pxe.device":"Add Baremetal PXE Device",
+"label.baremetal.pxe.devices":"Baremetal PXE Devices",
+"label.baremetal.pxe.provider":"Baremetal PXE Provider",
+"label.baremetal.rack.configuration":"Baremetal Rack Configuration",
+"label.basic":"Basic",
+"label.basic.mode":"Basic Mode",
+"label.bigswitch.bcf.details":"BigSwitch BCF details",
+"label.bigswitch.bcf.nat":"BigSwitch BCF NAT Enabled",
+"label.bigswitch.controller.address":"BigSwitch BCF Controller Address",
+"label.blade.id":"Blade ID",
+"label.blades":"Blades",
+"label.bootable":"Bootable",
+"label.broadcast.domain.range":"Broadcast domain range",
+"label.broadcast.domain.type":"Broadcast Domain Type",
+"label.broadcast.uri":"Broadcast URI",
+"label.broadcasturi":"broadcasturi",
+"label.broadcat.uri":"Broadcast URI",
+"label.brocade.vcs.address":"Vcs Switch Address",
+"label.brocade.vcs.details":"Brocade Vcs Switch details",
+"label.by.account":"By Account",
+"label.by.alert.type":"By alert type",
+"label.by.availability":"By Availability",
+"label.by.date.end":"By date (end)",
+"label.by.date.start":"By date (start)",
+"label.by.domain":"By Domain",
+"label.by.end.date":"By End Date",
+"label.by.event.type":"By event type",
+"label.by.level":"By Level",
+"label.by.pod":"By Pod",
+"label.by.role":"By Role",
+"label.by.start.date":"By Start Date",
+"label.by.state":"By State",
+"label.by.traffic.type":"By Traffic Type",
+"label.by.type":"By Type",
+"label.by.type.id":"By Type ID",
+"label.by.zone":"By Zone",
+"label.bytes.received":"Bytes Received",
+"label.bytes.sent":"Bytes Sent",
+"label.cache.mode":"Write-cache Type",
+"label.cancel":"Cancel",
+"label.capacity":"Capacity",
+"label.capacity.bytes":"Capacity Bytes",
+"label.capacity.iops":"Capacity IOPS",
+"label.certificate":"Server certificate",
+"label.change.affinity":"Change Affinity",
+"label.change.ipaddress":"Change IP address for NIC",
+"label.change.service.offering":"Change service offering",
+"label.change.value":"Change value",
+"label.character":"Character",
+"label.chassis":"Chassis",
+"label.checksum":"checksum",
+"label.cidr":"CIDR",
+"label.cidr.account":"CIDR or Account/Security Group",
+"label.cidr.list":"Source CIDR",
+    "label.cidr.destination.list":"Destination CIDR",
+"label.cisco.nexus1000v.ip.address":"Nexus 1000v IP Address",
+"label.cisco.nexus1000v.password":"Nexus 1000v Password",
+"label.cisco.nexus1000v.username":"Nexus 1000v Username",
+"label.ciscovnmc.resource.details":"CiscoVNMC resource details",
+"label.clean.up":"Clean up",
+"label.clear.list":"Clear list",
+"label.close":"Close",
+"label.cloud.console":"Cloud Management Console",
+"label.cloud.managed":"Cloud.com Managed",
+"label.cluster":"Cluster",
+"label.cluster.name":"Cluster Name",
+"label.cluster.type":"Cluster Type",
+"label.clusters":"Clusters",
+"label.clvm":"CLVM",
+"label.code":"Code",
+"label.community":"Community",
+"label.compute":"Compute",
+"label.compute.and.storage":"Compute and Storage",
+"label.compute.offering":"Compute offering",
+"label.compute.offerings":"Compute Offerings",
+"label.configuration":"Configuration",
+"label.configure":"Configure",
+"label.configure.ldap":"Configure LDAP",
+"label.configure.network.ACLs":"Configure Network ACLs",
+"label.configure.sticky.policy":"Configure Sticky Policy",
+"label.configure.vpc":"Configure VPC",
+"label.confirm.password":"Confirm password",
+"label.confirmation":"Confirmation",
+"label.congratulations":"Congratulations!",
+"label.conserve.mode":"Conserve mode",
+"label.console.proxy":"Console proxy",
+"label.console.proxy.vm":"Console Proxy VM",
+"label.continue":"Continue",
+"label.continue.basic.install":"Continue with basic installation",
+"label.copying.iso":"Copying ISO",
+"label.corrections.saved":"Corrections saved",
+"label.counter":"Counter",
+"label.cpu":"CPU",
+"label.cpu.allocated":"CPU Allocated",
+"label.cpu.allocated.for.VMs":"CPU Allocated for VMs",
+"label.cpu.limits":"CPU limits",
+"label.cpu.mhz":"CPU (in MHz)",
+"label.cpu.utilized":"CPU Utilized",
+"label.create.VPN.connection":"Create VPN Connection",
+"label.create.nfs.secondary.staging.storage":"Create NFS Secondary Staging Store",
+"label.create.nfs.secondary.staging.store":"Create NFS secondary staging store",
+"label.create.project":"Create project",
+"label.create.ssh.key.pair":"Create a SSH Key Pair",
+"label.create.template":"Create template",
+"label.created":"Created",
+"label.created.by.system":"Created by system",
+"label.cross.zones":"Cross Zones",
+"label.custom":"Custom",
+"label.custom.disk.iops":"Custom IOPS",
+"label.custom.disk.offering":"Custom Disk Offering",
+"label.custom.disk.size":"Custom Disk Size",
+"label.daily":"Daily",
+"label.data.disk.offering":"Data Disk Offering",
+"label.date":"Date",
+"label.day":"Day",
+"label.day.of.month":"Day of Month",
+"label.day.of.week":"Day of Week",
+"label.dc.name":"DC Name",
+"label.dead.peer.detection":"Dead Peer Detection",
+"label.decline.invitation":"Decline invitation",
+"label.dedicate":"Dedicate",
+"label.dedicate.cluster":"Dedicate Cluster",
+"label.dedicate.host":"Dedicate Host",
+"label.dedicate.pod":"Dedicate Pod",
+"label.dedicate.vlan.vni.range":"Dedicate VLAN/VNI Range",
+"label.dedicate.zone":"Dedicate Zone",
+"label.dedicated":"Dedicated",
+"label.dedicated.vlan.vni.ranges":"Dedicated VLAN/VNI Ranges",
+"label.default":"Default",
+"label.default.egress.policy":"Default egress policy",
+"label.default.use":"Default Use",
+"label.default.view":"Default View",
+"label.delete":"Delete",
+"label.delete.BigSwitchBcf":"Remove BigSwitch BCF Controller",
+"label.delete.BrocadeVcs":"Remove Brocade Vcs Switch",
+"label.delete.F5":"Delete F5",
+"label.delete.NetScaler":"Delete NetScaler",
+"label.delete.NiciraNvp":"Remove Nvp Controller",
+"label.delete.NuageVsp":"Remove Nuage VSD",
+"label.delete.OpenDaylight.device":"Delete OpenDaylight Controller",
+"label.delete.PA":"Delete Palo Alto",
+"label.delete.SRX":"Delete SRX",
+"label.delete.VPN.connection":"Delete VPN connection",
+"label.delete.VPN.customer.gateway":"Delete VPN Customer Gateway",
+"label.delete.VPN.gateway":"Delete VPN Gateway",
+"label.delete.acl.list":"Delete ACL List",
+"label.delete.affinity.group":"Delete Affinity Group",
+"label.delete.alerts":"Delete alerts",
+"label.delete.baremetal.rack.configuration":"Delete Baremetal Rack Configuration",
+"label.delete.ciscoASA1000v":"Delete CiscoASA1000v",
+"label.delete.ciscovnmc.resource":"Delete CiscoVNMC resource",
+"label.delete.events":"Delete events",
+"label.delete.gateway":"Delete gateway",
+"label.delete.internal.lb":"Delete Internal LB",
+"label.delete.portable.ip.range":"Delete Portable IP Range",
+"label.delete.profile":"Delete Profile",
+"label.delete.project":"Delete project",
+"label.delete.role":"Delete Role",
+"label.delete.secondary.staging.store":"Delete Secondary Staging Store",
+"label.delete.ucs.manager":"Delete UCS Manager",
+"label.delete.vpn.user":"Delete VPN user",
+"label.deleting.failed":"Deleting Failed",
+"label.deleting.processing":"Deleting....",
+"label.deny":"Deny",
+"label.deployment.planner":"Deployment planner",
+"label.description":"Description",
+"label.destination.physical.network.id":"Destination physical network ID",
+"label.destination.zone":"Destination Zone",
+"label.destroy":"Destroy",
+"label.destroy.router":"Destroy router",
+"label.destroy.vm.graceperiod":"Destroy VM Grace Period",
+"label.detaching.disk":"Detaching Disk",
+"label.details":"Details",
+"label.device.id":"Device ID",
+"label.devices":"Devices",
+"label.dhcp":"DHCP",
+"label.direct.attached.public.ip":"Direct Attached Public IP",
+"label.direct.ips":"Shared Network IPs",
+"label.disable.autoscale":"Disable Autoscale",
+"label.disable.host":"Disable Host",
+"label.disable.network.offering":"Disable network offering",
+"label.disable.provider":"Disable provider",
+"label.disable.vnmc.provider":"Disable VNMC provider",
+"label.disable.vpc.offering":"Disable VPC offering",
+"label.disable.vpn":"Disable Remote Access VPN",
+"label.disabled":"Disabled",
+"label.disabling.vpn.access":"Disabling VPN Access",
+"label.disassociate.profile.blade":"Disassociate Profile from Blade",
+"label.disbale.vnmc.device":"Disable VNMC device",
+"label.disk.allocated":"Disk Allocated",
+"label.disk.bytes.read.rate":"Disk Read Rate (BPS)",
+"label.disk.bytes.write.rate":"Disk Write Rate (BPS)",
+"label.disk.iops.max":"Max IOPS",
+"label.disk.iops.min":"Min IOPS",
+"label.disk.iops.read.rate":"Disk Read Rate (IOPS)",
+"label.disk.iops.total":"IOPS Total",
+"label.disk.iops.write.rate":"Disk Write Rate (IOPS)",
+"label.disk.offering":"Disk Offering",
+"label.disk.offering.details":"Disk offering details",
+"label.disk.provisioningtype":"Provisioning Type",
+"label.disk.read.bytes":"Disk Read (Bytes)",
+"label.disk.read.io":"Disk Read (IO)",
+"label.disk.size":"Disk Size",
+"label.disk.size.gb":"Disk Size (in GB)",
+"label.disk.total":"Disk Total",
+"label.disk.volume":"Disk Volume",
+"label.disk.write.bytes":"Disk Write (Bytes)",
+"label.disk.write.io":"Disk Write (IO)",
+"label.diskoffering":"diskoffering",
+"label.display.name":"Display Name",
+"label.display.text":"Display Text",
+"label.distributedrouter":"Distributed Router",
+"label.dns":"DNS",
+"label.dns.1":"DNS 1",
+"label.dns.2":"DNS 2",
+"label.domain":"Domain",
+"label.domain.admin":"Domain Admin",
+"label.domain.details":"Domain details",
+"label.domain.id":"Domain ID",
+"label.domain.lower":"domain",
+"label.domain.name":"Domain Name",
+"label.domain.router":"Domain router",
+"label.domain.suffix":"DNS Domain Suffix (i.e., xyz.com)",
+"label.done":"Done",
+"label.double.quotes.are.not.allowed":"Double quotes are not allowed",
+"label.download.progress":"Download Progress",
+"label.drag.new.position":"Drag to new position",
+"label.duration.in.sec":"Duration (in sec)",
+"label.dynamically.scalable":"Dynamically Scalable",
+"label.edit":"Edit",
+"label.edit.acl.rule":"Edit ACL rule",
+"label.edit.affinity.group":"Edit Affinity Group",
+"label.edit.lb.rule":"Edit LB rule",
+"label.edit.network.details":"Edit network details",
+"label.edit.project.details":"Edit project details",
+"label.edit.region":"Edit Region",
+"label.edit.role":"Edit Role",
+"label.edit.rule":"Edit rule",
+"label.edit.secondary.ips":"Edit secondary IPs",
+"label.edit.tags":"Edit tags",
+"label.edit.traffic.type":"Edit traffic type",
+"label.edit.vpc":"Edit VPC",
+"label.egress.default.policy":"Egress Default Policy",
+"label.egress.rule":"Egress rule",
+"label.egress.rules":"Egress rules",
+"label.elastic":"Elastic",
+"label.elastic.IP":"Elastic IP",
+"label.elastic.LB":"Elastic LB",
+"label.email":"Email",
+"label.email.lower":"email",
+"label.enable.autoscale":"Enable Autoscale",
+"label.enable.host":"Enable Host",
+"label.enable.network.offering":"Enable network offering",
+"label.enable.provider":"Enable provider",
+"label.enable.s3":"Enable S3-backed Secondary Storage",
+"label.enable.swift":"Enable Swift",
+"label.enable.vnmc.device":"Enable VNMC device",
+"label.enable.vnmc.provider":"Enable VNMC provider",
+"label.enable.vpc.offering":"Enable VPC offering",
+"label.enable.vpn":"Enable Remote Access VPN",
+"label.enabling.vpn":"Enabling VPN",
+"label.enabling.vpn.access":"Enabling VPN Access",
+"label.end.IP":"End IP",
+"label.end.port":"End Port",
+"label.end.reserved.system.IP":"End Reserved system IP",
+"label.end.vlan":"End VLAN",
+"label.end.vxlan":"End VXLAN",
+"label.endpoint":"Endpoint",
+"label.endpoint.or.operation":"Endpoint or Operation",
+"label.enter.token":"Enter token",
+"label.error":"Error",
+"label.error.code":"Error Code",
+"label.error.upper":"ERROR",
+"label.esx.host":"ESX/ESXi Host",
+"label.event":"Event",
+"label.event.archived":"Event Archived",
+"label.event.deleted":"Event Deleted",
+"label.every":"Every",
+"label.example":"Example",
+"label.expunge":"Expunge",
+"label.external.link":"External link",
+"label.extractable":"Extractable",
+"label.extractable.lower":"extractable",
+"label.f5":"F5",
+"label.f5.details":"F5 details",
+"label.failed":"Failed",
+"label.featured":"Featured",
+"label.fetch.latest":"Fetch latest",
+"label.filterBy":"Filter by",
+"label.fingerprint":"FingerPrint",
+"label.firewall":"Firewall",
+"label.first.name":"First Name",
+"label.firstname.lower":"firstname",
+"label.format":"Format",
+"label.format.lower":"format",
+"label.friday":"Friday",
+"label.full":"Full",
+"label.full.path":"Full path",
+"label.gateway":"Gateway",
+"label.general.alerts":"General Alerts",
+"label.generating.url":"Generating URL",
+"label.globo.dns":"GloboDNS",
+"label.globo.dns.configuration":"GloboDNS Configuration",
+"label.gluster.volume":"Volume",
+"label.go.step.2":"Go to Step 2",
+"label.go.step.3":"Go to Step 3",
+"label.go.step.4":"Go to Step 4",
+"label.go.step.5":"Go to Step 5",
+"label.gpu":"GPU",
+"label.group":"Group",
+"label.group.by.account":"Group by account",
+"label.group.by.cluster":"Group by cluster",
+"label.group.by.pod":"Group by pod",
+"label.group.by.zone":"Group by zone",
+"label.group.optional":"Group (Optional)",
+"label.gslb":"GSLB",
+"label.gslb.assigned.lb":"Assigned load balancing",
+"label.gslb.assigned.lb.more":"Assign more load balancing",
+"label.gslb.delete":"Delete GSLB",
+"label.gslb.details":"GSLB details",
+"label.gslb.domain.name":"GSLB Domain Name",
+"label.gslb.lb.details":"Load balancing details",
+"label.gslb.lb.remove":"Remove load balancing from this GSLB",
+"label.gslb.lb.rule":"Load balancing rule",
+"label.gslb.service":"GSLB service",
+"label.gslb.service.private.ip":"GSLB service Private IP",
+"label.gslb.service.public.ip":"GSLB service Public IP",
+"label.gslb.servicetype":"Service Type",
+"label.guest":"Guest",
+"label.guest.cidr":"Guest CIDR",
+"label.guest.end.ip":"Guest end IP",
+"label.guest.gateway":"Guest Gateway",
+"label.guest.ip":"Guest IP Address",
+"label.guest.ip.range":"Guest IP Range",
+"label.guest.netmask":"Guest Netmask",
+"label.guest.network.details":"Guest network details",
+"label.guest.networks":"Guest networks",
+"label.guest.start.ip":"Guest start IP",
+"label.guest.traffic":"Guest Traffic",
+"label.guest.traffic.vswitch.name":"Guest Traffic vSwitch Name",
+"label.guest.traffic.vswitch.type":"Guest Traffic vSwitch Type",
+"label.guest.type":"Guest Type",
+"label.ha.enabled":"HA Enabled",
+"label.health.check":"Health Check",
+"label.health.check.advanced.options":"Advanced Options:",
+"label.health.check.configurations.options":"Configuration Options:",
+"label.health.check.interval.in.sec":"Health Check Interval (in sec)",
+"label.health.check.message.desc":"Your load balancer will automatically perform health checks on your cloudstack instances and only route traffic to instances that pass the health check",
+"label.health.check.wizard":"Health Check Wizard",
+"label.healthy.threshold":"Healthy Threshold",
+"label.help":"Help",
+"label.hide.ingress.rule":"Hide Ingress Rule",
+"label.hints":"Hints",
+"label.home":"Home",
+"label.host":"Host",
+"label.host.MAC":"Host MAC",
+"label.host.alerts":"Hosts in Alert State",
+"label.host.name":"Host Name",
+"label.host.tag":"Host Tag",
+"label.host.tags":"Host Tags",
+"label.hosts":"Hosts",
+"label.hourly":"Hourly",
+"label.hvm":"HVM",
+"label.hyperv.traffic.label":"HyperV Traffic Label",
+"label.hypervisor":"Hypervisor",
+"label.hypervisor.capabilities":"Hypervisor capabilities",
+"label.hypervisor.snapshot.reserve":"Hypervisor Snapshot Reserve",
+"label.hypervisor.type":"Hypervisor Type",
+"label.hypervisor.version":"Hypervisor version",
+"label.hypervisors":"Hypervisors",
+"label.id":"ID",
+"label.info":"Info",
+"label.info.upper":"INFO",
+"label.ingress.rule":"Ingress Rule",
+"label.initiated.by":"Initiated By",
+"label.inside.port.profile":"Inside Port Profile",
+"label.installWizard.addClusterIntro.subtitle":"What is a cluster?",
+"label.installWizard.addClusterIntro.title":"Let&rsquo;s add a cluster",
+"label.installWizard.addHostIntro.subtitle":"What is a host?",
+"label.installWizard.addHostIntro.title":"Let&rsquo;s add a host",
+"label.installWizard.addPodIntro.subtitle":"What is a pod?",
+"label.installWizard.addPodIntro.title":"Let&rsquo;s add a pod",
+"label.installWizard.addPrimaryStorageIntro.subtitle":"What is primary storage?",
+"label.installWizard.addPrimaryStorageIntro.title":"Let&rsquo;s add primary storage",
+"label.installWizard.addSecondaryStorageIntro.subtitle":"What is secondary storage?",
+"label.installWizard.addSecondaryStorageIntro.title":"Let&rsquo;s add secondary storage",
+"label.installWizard.addZone.title":"Add zone",
+"label.installWizard.addZoneIntro.subtitle":"What is a zone?",
+"label.installWizard.addZoneIntro.title":"Let&rsquo;s add a zone",
+"label.installWizard.click.launch":"Click the launch button.",
+"label.installWizard.subtitle":"This tour will aid you in setting up your CloudStack&#8482 installation",
+"label.installWizard.title":"Hello and Welcome to CloudStack&#8482",
+"label.instance":"Instance",
+"label.instance.limits":"Instance Limits",
+"label.instance.name":"Instance Name",
+"label.instance.port":"Instance Port",
+"label.instance.scaled.up":"Instance scaled to the requested offering",
+"label.instances":"Instances",
+"label.instanciate.template.associate.profile.blade":"Instanciate Template and Associate Profile to Blade",
+"label.intermediate.certificate":"Intermediate certificate {0}",
+"label.internal.dns.1":"Internal DNS 1",
+"label.internal.dns.2":"Internal DNS 2",
+"label.internal.lb":"Internal LB",
+"label.internal.lb.details":"Internal LB details",
+"label.internal.name":"Internal name",
+"label.internallbvm":"InternalLbVm",
+"label.interval.type":"Interval Type",
+"label.introduction.to.cloudstack":"Introduction to CloudStack&#8482",
+"label.invalid.integer":"Invalid Integer",
+"label.invalid.number":"Invalid Number",
+"label.invitations":"Invitations",
+"label.invite":"Invite",
+"label.invite.to":"Invite to",
+"label.invited.accounts":"Invited accounts",
+"label.ip":"IP",
+"label.ip.address":"IP Address",
+"label.ip.allocations":"IP Allocations",
+"label.ip.limits":"Public IP Limits",
+"label.ip.or.fqdn":"IP or FQDN",
+"label.ip.range":"IP Range",
+"label.ip.ranges":"IP Ranges",
+"label.ipaddress":"IP Address",
+"label.ips":"IPs",
+"label.ipv4.cidr":"IPv4 CIDR",
+"label.ipv4.dns1":"IPv4 DNS1",
+"label.ipv4.dns2":"IPv4 DNS2",
+"label.ipv4.end.ip":"IPv4 End IP",
+"label.ipv4.gateway":"IPv4 Gateway",
+"label.ipv4.netmask":"IPv4 Netmask",
+"label.ipv4.start.ip":"IPv4 Start IP",
+"label.ipv6.CIDR":"IPv6 CIDR",
+"label.ipv6.address":"IPv6 IP Address",
+"label.ipv6.dns1":"IPv6 DNS1",
+"label.ipv6.dns2":"IPv6 DNS2",
+"label.ipv6.end.ip":"IPv6 End IP",
+"label.ipv6.gateway":"IPv6 Gateway",
+"label.ipv6.start.ip":"IPv6 Start IP",
+"label.is.default":"Is Default",
+"label.is.redundant.router":"Redundant",
+"label.is.shared":"Is Shared",
+"label.is.system":"Is System",
+"label.iscsi":"iSCSI",
+"label.iso":"ISO",
+"label.iso.boot":"ISO Boot",
+"label.isolated.networks":"Isolated networks",
+"label.isolation.method":"Isolation method",
+"label.isolation.mode":"Isolation Mode",
+"label.isolation.uri":"Isolation URI",
+"label.item.listing":"Item listing",
+"label.japanese.keyboard":"Japanese keyboard",
+"label.keep":"Keep",
+"label.keep.colon":"Keep:",
+"label.key":"Key",
+"label.keyboard.language":"Keyboard language",
+"label.keyboard.type":"Keyboard type",
+"label.kvm.traffic.label":"KVM traffic label",
+"label.label":"Label",
+"label.lang.arabic":"Arabic",
+"label.lang.brportugese":"Brazilian Portugese",
+"label.lang.catalan":"Catalan",
+"label.lang.chinese":"Chinese (Simplified)",
+"label.lang.dutch":"Dutch (Netherlands)",
+"label.lang.english":"English",
+"label.lang.french":"French",
+"label.lang.german":"German",
+"label.lang.hungarian":"Hungarian",
+"label.lang.italian":"Italian",
+"label.lang.japanese":"Japanese",
+"label.lang.korean":"Korean",
+"label.lang.norwegian":"Norwegian",
+"label.lang.polish":"Polish",
+"label.lang.russian":"Russian",
+"label.lang.spanish":"Spanish",
+"label.last.disconnected":"Last Disconnected",
+"label.last.name":"Last Name",
+"label.lastname.lower":"lastname",
+"label.latest.events":"Latest events",
+"label.launch":"Launch",
+"label.launch.vm":"Launch VM",
+"label.launch.zone":"Launch zone",
+"label.lb.algorithm.leastconn":"Least connections",
+"label.lb.algorithm.roundrobin":"Round-robin",
+"label.lb.algorithm.source":"Source",
+"label.ldap.configuration":"LDAP Configuration",
+"label.ldap.group.name":"LDAP Group",
+"label.ldap.link.type":"Type",
+"label.ldap.port":"LDAP port",
+"label.level":"Level",
+"label.link.domain.to.ldap":"Link Domain to LDAP",
+"label.linklocal.ip":"Link Local IP Address",
+"label.load.balancer":"Load Balancer",
+"label.load.balancer.type":"Load Balancer Type",
+"label.load.balancing":"Load Balancing",
+"label.load.balancing.policies":"Load balancing policies",
+"label.loading":"Loading",
+"label.local":"Local",
+"label.local.file":"Local file",
+"label.local.storage":"Local Storage",
+"label.local.storage.enabled":"Enable local storage for User VMs",
+"label.local.storage.enabled.system.vms":"Enable local storage for System VMs",
+"label.login":"Login",
+"label.logout":"Logout",
+"label.lun":"LUN",
+"label.lxc.traffic.label":"LXC Traffic Label",
+"label.make.project.owner":"Make account project owner",
+"label.make.redundant":"Make redundant",
+"label.manage":"Manage",
+"label.manage.resources":"Manage Resources",
+"label.managed":"Managed",
+"label.management":"Management",
+"label.management.ips":"Management IP Addresses",
+"label.management.server":"Management Server",
+"label.max.cpus":"Max. CPU cores",
+"label.max.guest.limit":"Max guest limit",
+"label.max.instances":"Max Instances",
+"label.max.memory":"Max. memory (MiB)",
+"label.max.networks":"Max. networks",
+"label.max.primary.storage":"Max. primary (GiB)",
+"label.max.public.ips":"Max. public IPs",
+"label.max.secondary.storage":"Max. secondary (GiB)",
+"label.max.snapshots":"Max. snapshots",
+"label.max.templates":"Max. templates",
+"label.max.vms":"Max. user VMs",
+"label.max.volumes":"Max. volumes",
+"label.max.vpcs":"Max. VPCs",
+"label.maximum":"Maximum",
+"label.may.continue":"You may now continue.",
+"label.md5.checksum":"MD5 checksum",
+"label.memory":"Memory",
+"label.memory.allocated":"Memory Allocated",
+"label.memory.limits":"Memory limits (MiB)",
+"label.memory.mb":"Memory (in MB)",
+"label.memory.total":"Memory Total",
+"label.memory.used":"Memory Used",
+"label.menu.accounts":"Accounts",
+"label.menu.alerts":"Alerts",
+"label.menu.all.accounts":"All Accounts",
+"label.menu.all.instances":"All Instances",
+"label.menu.community.isos":"Community ISOs",
+"label.menu.community.templates":"Community Templates",
+"label.menu.configuration":"Configuration",
+"label.menu.dashboard":"Dashboard",
+"label.menu.destroyed.instances":"Destroyed Instances",
+"label.menu.disk.offerings":"Disk Offerings",
+"label.menu.domains":"Domains",
+"label.menu.events":"Events",
+"label.menu.featured.isos":"Featured ISOs",
+"label.menu.featured.templates":"Featured Templates",
+"label.menu.global.settings":"Global Settings",
+"label.menu.infrastructure":"Infrastructure",
+"label.menu.instances":"Instances",
+"label.menu.ipaddresses":"IP Addresses",
+"label.menu.isos":"ISOs",
+"label.menu.my.accounts":"My Accounts",
+"label.menu.my.instances":"My Instances",
+"label.menu.my.isos":"My ISOs",
+"label.menu.my.templates":"My Templates",
+"label.menu.network":"Network",
+"label.menu.network.offerings":"Network Offerings",
+"label.menu.physical.resources":"Physical Resources",
+"label.menu.regions":"Regions",
+"label.menu.running.instances":"Running Instances",
+"label.menu.security.groups":"Security Groups",
+"label.menu.service.offerings":"Service Offerings",
+"label.menu.snapshots":"Snapshots",
+"label.menu.sshkeypair":"SSH KeyPair",
+"label.menu.stopped.instances":"Stopped Instances",
+"label.menu.storage":"Storage",
+"label.menu.system":"System",
+"label.menu.system.service.offerings":"System Offerings",
+"label.menu.system.vms":"System VMs",
+"label.menu.templates":"Templates",
+"label.menu.virtual.appliances":"Virtual Appliances",
+"label.menu.virtual.resources":"Virtual Resources",
+"label.menu.volumes":"Volumes",
+"label.menu.vpc.offerings":"VPC Offerings",
+"label.metrics":"Metrics",
+"label.metrics.allocated":"Allocated",
+"label.metrics.clusters":"Clusters",
+"label.metrics.cpu.allocated":"CPU Allocation",
+"label.metrics.cpu.max.dev":"Deviation",
+"label.metrics.cpu.total":"Total",
+"label.metrics.cpu.usage":"CPU Usage",
+"label.metrics.cpu.used.avg":"Used",
+"label.metrics.disk":"Disk",
+"label.metrics.disk.allocated":"Allocated",
+"label.metrics.disk.iops.total":"IOPS",
+"label.metrics.disk.read":"Read",
+"label.metrics.disk.size":"Size",
+"label.metrics.disk.storagetype":"Type",
+"label.metrics.disk.total":"Total",
+"label.metrics.disk.unallocated":"Unallocated",
+"label.metrics.disk.usage":"Disk Usage",
+"label.metrics.disk.used":"Used",
+"label.metrics.disk.write":"Write",
+"label.metrics.hosts":"Hosts",
+"label.metrics.memory.allocated":"Mem Allocation",
+"label.metrics.memory.max.dev":"Deviation",
+"label.metrics.memory.total":"Total",
+"label.metrics.memory.usage":"Mem Usage",
+"label.metrics.memory.used.avg":"Used",
+"label.metrics.name":"Name",
+"label.metrics.network.read":"Read",
+"label.metrics.network.usage":"Network Usage",
+"label.metrics.network.write":"Write",
+"label.metrics.num.cpu.cores":"Cores",
+"label.metrics.outofbandmanagementpowerstate":"Power State",
+"label.metrics.property":"Property",
+"label.metrics.scope":"Scope",
+"label.metrics.state":"State",
+"label.metrics.storagepool":"Storage Pool",
+"label.metrics.vm.name":"VM Name",
+"label.migrate.instance.to":"Migrate instance to",
+"label.migrate.instance.to.host":"Migrate instance to another host",
+"label.migrate.instance.to.ps":"Migrate instance to another primary storage",
+"label.migrate.lb.vm":"Migrate LB VM",
+"label.migrate.router.to":"Migrate Router to",
+"label.migrate.systemvm.to":"Migrate System VM to",
+"label.migrate.to.host":"Migrate to host",
+"label.migrate.to.storage":"Migrate to storage",
+"label.migrate.volume":"Migrate Volume",
+"label.migrate.volume.to.primary.storage":"Migrate volume to another primary storage",
+"label.min.instances":"Min Instances",
+"label.min.past.the.hr":"min past the hr",
+"label.minimum":"Minimum",
+"label.minute.past.hour":"minute(s) past the hour",
+"label.minutes.past.hour":"minutes(s) past the hour",
+"label.mode":"Mode",
+"label.monday":"Monday",
+"label.monthly":"Monthly",
+"label.more.templates":"More Templates",
+"label.move.down.row":"Move down one row",
+"label.move.to.bottom":"Move to bottom",
+"label.move.to.top":"Move to top",
+"label.move.up.row":"Move up one row",
+"label.my.account":"My Account",
+"label.my.network":"My network",
+"label.my.templates":"My templates",
+"label.na":"N/A",
+"label.name":"Name",
+"label.name.lower":"name",
+"label.name.optional":"Name (Optional)",
+"label.nat.port.range":"NAT Port Range",
+"label.netScaler":"NetScaler",
+"label.netmask":"Netmask",
+"label.netscaler.details":"NetScaler details",
+"label.network":"Network",
+"label.network.ACL":"Network ACL",
+"label.network.ACL.total":"Network ACL Total",
+"label.network.ACLs":"Network ACLs",
+"label.network.addVM":"Add network to VM",
+"label.network.cidr":"Network CIDR",
+"label.network.desc":"Network Desc",
+"label.network.details":"Network Details",
+"label.network.device":"Network Device",
+"label.network.device.type":"Network Device Type",
+"label.network.domain":"Network Domain",
+"label.network.domain.text":"Network domain",
+"label.network.id":"Network ID",
+"label.network.label.display.for.blank.value":"Use default gateway",
+"label.network.limits":"Network limits",
+"label.network.name":"Network Name",
+"label.network.offering":"Network Offering",
+"label.network.offering.details":"Network offering details",
+"label.network.offering.display.text":"Network Offering Display Text",
+"label.network.offering.id":"Network Offering ID",
+"label.network.offering.name":"Network Offering Name",
+"label.network.rate":"Network Rate (Mb/s)",
+"label.network.rate.megabytes":"Network Rate (MB/s)",
+"label.network.read":"Network Read",
+"label.network.service.providers":"Network Service Providers",
+"label.network.type":"Network Type",
+"label.network.write":"Network Write",
+"label.networking.and.security":"Networking and security",
+"label.networks":"Networks",
+"label.new":"New",
+"label.new.password":"New Password",
+"label.new.project":"New Project",
+"label.new.ssh.key.pair":"New SSH Key Pair",
+"label.new.vm":"New VM",
+"label.next":"Next",
+"label.nexusVswitch":"Nexus 1000v",
+"label.nfs":"NFS",
+"label.nfs.server":"NFS Server",
+"label.nfs.storage":"NFS Storage",
+"label.nic.adapter.type":"NIC adapter type",
+"label.nicira.controller.address":"Controller Address",
+"label.nicira.l2gatewayserviceuuid":"L2 Gateway Service Uuid",
+"label.nicira.l3gatewayserviceuuid":"L3 Gateway Service Uuid",
+"label.nicira.nvp.details":"Nicira NVP details",
+"label.nicira.transportzoneuuid":"Transport Zone Uuid",
+"label.nics":"NICs",
+"label.no":"No",
+"label.no.actions":"No Available Actions",
+"label.no.alerts":"No Recent Alerts",
+"label.no.data":"No data to show",
+"label.no.errors":"No Recent Errors",
+"label.no.grouping":"(no grouping)",
+"label.no.isos":"No available ISOs",
+"label.no.items":"No Available Items",
+"label.no.security.groups":"No Available Security Groups",
+"label.no.thanks":"No thanks",
+"label.none":"None",
+"label.not.found":"Not Found",
+"label.notifications":"Notifications",
+"label.num.cpu.cores":"# of CPU Cores",
+"label.number.of.clusters":"Number of Clusters",
+"label.number.of.cpu.sockets":"The Number of CPU Sockets",
+"label.number.of.hosts":"Number of Hosts",
+"label.number.of.pods":"Number of Pods",
+"label.number.of.system.vms":"Number of System VMs",
+"label.number.of.virtual.routers":"Number of Virtual Routers",
+"label.number.of.zones":"Number of Zones",
+"label.numretries":"Number of Retries",
+"label.ocfs2":"OCFS2",
+"label.of.month":"of month",
+"label.offer.ha":"Offer HA",
+"label.ok":"OK",
+"label.openDaylight":"OpenDaylight",
+"label.opendaylight.controller":"OpenDaylight Controller",
+"label.opendaylight.controllerdetail":"OpenDaylight Controller Details",
+"label.opendaylight.controllers":"OpenDaylight Controllers",
+"label.operator":"Operator",
+"label.optional":"Optional",
+"label.order":"Order",
+"label.os.preference":"OS Preference",
+"label.os.type":"OS Type",
+"label.other":"Other",
+"label.outofbandmanagement":"Out-of-band Management",
+"label.outofbandmanagement.action":"Action",
+"label.outofbandmanagement.action.issue":"Issue Out-of-band Management Power Action",
+"label.outofbandmanagement.address":"Address",
+"label.outofbandmanagement.changepassword":"Change Out-of-band Management Password",
+"label.outofbandmanagement.configure":"Configure Out-of-band Management",
+"label.outofbandmanagement.disable":"Disable Out-of-band Management",
+"label.outofbandmanagement.driver":"Driver",
+"label.outofbandmanagement.enable":"Enable Out-of-band Management",
+"label.outofbandmanagement.password":"Password",
+"label.outofbandmanagement.port":"Port",
+"label.outofbandmanagement.reenterpassword":"Re-enter Password",
+"label.outofbandmanagement.username":"Username",
+"label.override.guest.traffic":"Override Guest-Traffic",
+"label.override.public.traffic":"Override Public-Traffic",
+"label.ovm.traffic.label":"OVM traffic label",
+"label.ovm3.cluster":"Native Clustering",
+"label.ovm3.pool":"Native Pooling",
+"label.ovm3.traffic.label":"OVM3 traffic label",
+"label.ovm3.vip":"Master Vip IP",
+"label.ovs":"OVS",
+"label.owned.public.ips":"Owned Public IP Addresses",
+"label.owner.account":"Owner Account",
+"label.owner.domain":"Owner Domain",
+"label.palo.alto.details":"Palo Alto details",
+"label.parent.domain":"Parent Domain",
+"label.passive":"Passive",
+"label.password":"Password",
+"label.password.enabled":"Password Enabled",
+"label.password.lower":"password",
+"label.password.reset.confirm":"Password has been reset to ",
+"label.path":"Path",
+"label.perfect.forward.secrecy":"Perfect Forward Secrecy",
+"label.permission":"Permission",
+"label.persistent":"Persistent ",
+"label.physical.network":"Physical Network",
+"label.physical.network.ID":"Physical network ID",
+"label.physical.network.name":"Physical network name",
+"label.ping.path":"Ping Path",
+"label.planner.mode":"Planner mode",
+"label.please.complete.the.following.fields":"Please complete the following fields",
+"label.please.specify.netscaler.info":"Please specify Netscaler info",
+"label.please.wait":"Please Wait",
+"label.plugin.details":"Plugin details",
+"label.plugins":"Plugins",
+"label.pod":"Pod",
+"label.pod.dedicated":"Pod Dedicated",
+"label.pod.name":"Pod name",
+"label.pods":"Pods",
+"label.polling.interval.sec":"Polling Interval (in sec)",
+"label.port":"Port",
+"label.port.forwarding":"Port Forwarding",
+"label.port.forwarding.policies":"Port forwarding policies",
+"label.port.range":"Port Range",
+"label.portable.ip":"Portable IP",
+"label.portable.ip.range.details":"Portable IP Range details",
+"label.portable.ip.ranges":"Portable IP Ranges",
+"label.portable.ips":"Portable IPs",
+"label.powerstate":"Power State",
+"label.prev":"Prev",
+"label.previous":"Previous",
+"label.primary.allocated":"Primary Storage Allocated",
+"label.primary.network":"Primary Network",
+"label.primary.storage":"Primary Storage",
+"label.primary.storage.count":"Primary Storage Pools",
+"label.primary.storage.limits":"Primary Storage limits (GiB)",
+"label.primary.used":"Primary Storage Used",
+"label.private.Gateway":"Private Gateway",
+"label.private.interface":"Private Interface",
+"label.private.ip":"Private IP Address",
+"label.private.ip.range":"Private IP Range",
+"label.private.ips":"Private IP Addresses",
+"label.private.key":"Private Key",
+"label.private.network":"Private network",
+"label.private.port":"Private Port",
+"label.private.zone":"Private Zone",
+"label.privatekey":"PKCS#8 Private Key",
+"label.profile":"Profile",
+"label.project":"Project",
+"label.project.dashboard":"Project dashboard",
+"label.project.id":"Project ID",
+"label.project.invite":"Invite to project",
+"label.project.name":"Project name",
+"label.project.view":"Project View",
+"label.projects":"Projects",
+"label.protocol":"Protocol",
+"label.protocol.number":"Protocol Number",
+"label.provider":"Provider",
+"label.providers":"Providers",
+"label.public":"Public",
+"label.public.interface":"Public Interface",
+"label.public.ip":"Public IP Address",
+"label.public.ips":"Public IP Addresses",
+"label.public.key":"Public Key",
+"label.public.lb":"Public LB",
+"label.public.load.balancer.provider":"Public Load Balancer Provider",
+"label.public.network":"Public network",
+"label.public.port":"Public Port",
+"label.public.traffic":"Public traffic",
+"label.public.traffic.vswitch.name":"Public Traffic vSwitch Name",
+"label.public.traffic.vswitch.type":"Public Traffic vSwitch Type",
+"label.public.zone":"Public Zone",
+"label.purpose":"Purpose",
+"label.qos.type":"QoS Type",
+"label.quickview":"Quickview",
+"label.quiesce.vm":"Quiesce VM",
+"label.quiet.time.sec":"Quiet Time (in sec)",
+"label.quota.add.credits":"Add Credits",
+"label.quota.balance":"Balance",
+"label.quota.configuration":"Quota Configuration",
+"label.quota.configure":"Configure Quota",
+"label.quota.credit":"Credit",
+"label.quota.credits":"Credits",
+"label.quota.date":"Date",
+"label.quota.dates":"Update Dates",
+"label.quota.description":"Quota Description",
+"label.quota.email.body":"Body",
+"label.quota.email.lastupdated":"Last Update",
+"label.quota.email.subject":"Subject",
+"label.quota.email.template":"Email Template",
+"label.quota.enddate":"End Date",
+"label.quota.endquota":"End Quota",
+"label.quota.enforcequota":"Enforce Quota",
+"label.quota.fullsummary":"All Accounts",
+"label.quota.minbalance":"Min Balance",
+"label.quota.remove":"Remove Quota",
+"label.quota.startdate":"Start Date",
+"label.quota.startquota":"Start Quota",
+"label.quota.state":"State",
+"label.quota.statement":"Statement",
+"label.quota.statement.balance":"Quota Balance",
+"label.quota.statement.bydates":"Statement",
+"label.quota.statement.quota":"Quota Usage",
+"label.quota.statement.tariff":"Quota Tariff",
+"label.quota.summary":"Summary",
+"label.quota.tariff":"Tariff",
+"label.quota.tariff.edit":"Edit Tariff",
+"label.quota.tariff.effectivedate":"Effective Date",
+"label.quota.tariff.value":"Tariff Value",
+"label.quota.total":"Total",
+"label.quota.totalusage":"Total Usage",
+"label.quota.type.name":"Usage Type",
+"label.quota.type.unit":"Usage Unit",
+"label.quota.usage":"Quota Consumption",
+"label.quota.value":"Quota Value",
+"label.rbd":"RBD",
+"label.rbd.id":"Cephx user",
+"label.rbd.monitor":"Ceph monitor",
+"label.rbd.pool":"Ceph pool",
+"label.rbd.secret":"Cephx secret",
+"label.reboot":"Reboot",
+"label.recent.errors":"Recent Errors",
+"label.recover.vm":"Recover VM",
+"label.redundant.router":"Redundant Router",
+"label.redundant.router.capability":"Redundant router capability",
+"label.redundant.state":"Redundant state",
+"label.redundant.vpc":"Redundant VPC",
+"label.refresh":"Refresh",
+"label.refresh.blades":"Refresh Blades",
+"label.region":"Region",
+"label.region.details":"Region details",
+"label.regionlevelvpc":"Region Level VPC",
+"label.reinstall.vm":"Reinstall VM",
+"label.related":"Related",
+"label.release.account":"Release from Account",
+"label.release.account.lowercase":"Release from account",
+"label.release.dedicated.cluster":"Release Dedicated Cluster",
+"label.release.dedicated.host":"Release Dedicated Host",
+"label.release.dedicated.pod":"Release Dedicated Pod",
+"label.release.dedicated.vlan.range":"Release dedicated VLAN range",
+"label.release.dedicated.zone":"Release Dedicated Zone",
+"label.remind.later":"Remind me later",
+"label.remove.ACL":"Remove ACL",
+"label.remove.egress.rule":"Remove egress rule",
+"label.remove.from.load.balancer":"Removing instance from load balancer",
+"label.remove.ingress.rule":"Remove ingress rule",
+"label.remove.ip.range":"Remove IP range",
+"label.remove.ldap":"Remove LDAP",
+"label.remove.network.offering":"Remove network offering",
+"label.remove.pf":"Remove port forwarding rule",
+"label.remove.project.account":"Remove account from project",
+"label.remove.region":"Remove Region",
+"label.remove.rule":"Remove rule",
+"label.remove.ssh.key.pair":"Remove SSH Key Pair",
+"label.remove.static.nat.rule":"Remove static NAT rule",
+"label.remove.static.route":"Remove static route",
+"label.remove.this.physical.network":"Remove this physical network",
+"label.remove.tier":"Remove tier",
+"label.remove.vm.from.lb":"Remove VM from load balancer rule",
+"label.remove.vm.load.balancer":"Remove VM from load balancer",
+"label.remove.vmware.datacenter":"Remove VMware datacenter",
+"label.remove.vpc":"Remove VPC",
+"label.remove.vpc.offering":"Remove VPC offering",
+"label.removing":"Removing",
+"label.removing.user":"Removing User",
+"label.reource.id":"Resource ID",
+"label.replace.acl":"Replace ACL",
+"label.replace.acl.list":"Replace ACL List",
+"label.required":"Required",
+"label.requires.upgrade":"Requires Upgrade",
+"label.reserved.ip.range":"Reserved IP Range",
+"label.reserved.system.gateway":"Reserved system gateway",
+"label.reserved.system.ip":"Reserved System IP",
+"label.reserved.system.netmask":"Reserved system netmask",
+"label.reset.VPN.connection":"Reset VPN connection",
+"label.reset.ssh.key.pair":"Reset SSH Key Pair",
+"label.reset.ssh.key.pair.on.vm":"Reset SSH Key Pair on VM",
+"label.resetVM":"Reset VM",
+"label.resize.new.offering.id":"New Offering",
+"label.resize.new.size":"New Size (GB)",
+"label.resize.shrink.ok":"Shrink OK",
+"label.resource":"Resource",
+"label.resource.limit.exceeded":"Resource Limit Exceeded",
+"label.resource.limits":"Resource Limits",
+"label.resource.name":"Resource Name",
+"label.resource.state":"Resource state",
+"label.resources":"Resources",
+"label.response.timeout.in.sec":"Response Timeout (in sec)",
+"label.restart.network":"Restart network",
+"label.restart.required":"Restart required",
+"label.restart.vpc":"Restart VPC",
+"label.restore":"Restore",
+"label.retry.interval":"Retry Interval",
+"label.review":"Review",
+"label.revoke.project.invite":"Revoke invitation",
+"label.role":"Role",
+"label.roles":"Roles",
+"label.roletype":"Role Type",
+"label.root.certificate":"Root certificate",
+"label.root.disk.controller":"Root disk controller",
+"label.root.disk.offering":"Root Disk Offering",
+"label.root.disk.size":"Root disk size (GB)",
+"label.router.vm.scaled.up":"Router VM Scaled Up",
+"label.routing":"Routing",
+"label.routing.host":"Routing Host",
+"label.rule":"Rule",
+"label.rule.number":"Rule Number",
+"label.rules":"Rules",
+"label.running.vms":"Running VMs",
+"label.s3.access_key":"Access Key",
+"label.s3.bucket":"Bucket",
+"label.s3.connection_timeout":"Connection Timeout",
+"label.s3.endpoint":"Endpoint",
+"label.s3.max_error_retry":"Max Error Retry",
+"label.s3.nfs.path":"S3 NFS Path",
+"label.s3.nfs.server":"S3 NFS Server",
+"label.s3.secret_key":"Secret Key",
+"label.s3.socket_timeout":"Socket Timeout",
+"label.s3.use_https":"Use HTTPS",
+"label.saml.enable":"Authorize SAML SSO",
+"label.saml.entity":"Identity Provider",
+"label.saturday":"Saturday",
+"label.save":"Save",
+"label.save.and.continue":"Save and continue",
+"label.save.changes":"Save changes",
+"label.saving.processing":"Saving....",
+"label.scale.up.policy":"SCALE UP POLICY",
+"label.scaledown.policy":"ScaleDown Policy",
+"label.scaleup.policy":"ScaleUp Policy",
+"label.scope":"Scope",
+"label.search":"Search",
+"label.secondary.ips":"Secondary IPs",
+"label.secondary.isolated.vlan.id":"Secondary Isolated VLAN ID",
+"label.secondary.staging.store":"Secondary Staging Store",
+"label.secondary.staging.store.details":"Secondary Staging Store details",
+"label.secondary.storage":"Secondary Storage",
+"label.secondary.storage.count":"Secondary Storage Pools",
+"label.secondary.storage.details":"Secondary storage details",
+"label.secondary.storage.limits":"Secondary Storage limits (GiB)",
+"label.secondary.storage.vm":"Secondary storage VM",
+"label.secondary.used":"Secondary Storage Used",
+"label.secret.key":"Secret Key",
+"label.security.group":"Security Group",
+"label.security.group.name":"Security Group Name",
+"label.security.groups":"Security Groups",
+"label.security.groups.enabled":"Security Groups Enabled",
+"label.select":"Select",
+"label.select-view":"Select view",
+"label.select.a.template":"Select a template",
+"label.select.a.zone":"Select a zone",
+"label.select.instance":"Select instance",
+"label.select.host":"Select host",
+"label.select.instance.to.attach.volume.to":"Select instance to attach volume to",
+"label.select.iso.or.template":"Select ISO or template",
+"label.select.offering":"Select offering",
+"label.select.project":"Select Project",
+"label.select.region":"Select region",
+"label.select.template":"Select Template",
+"label.select.tier":"Select Tier",
+"label.select.vm.for.static.nat":"Select VM for static NAT",
+"label.sent":"Sent",
+"label.server":"Server",
+"label.service.capabilities":"Service Capabilities",
+"label.service.offering":"Service Offering",
+"label.service.offering.details":"Service offering details",
+"label.service.state":"Service State",
+"label.services":"Services",
+"label.session.expired":"Session Expired",
+"label.set.default.NIC":"Set default NIC",
+"label.set.up.zone.type":"Set up zone type",
+"label.settings":"Settings",
+"label.setup":"Setup",
+"label.setup.network":"Set up Network",
+"label.setup.zone":"Set up Zone",
+"label.shared":"Shared",
+"label.show.advanced.settings":"Show advanced settings",
+"label.show.ingress.rule":"Show Ingress Rule",
+"label.shutdown.provider":"Shutdown provider",
+"label.simplified.chinese.keyboard":"Simplified Chinese keyboard",
+"label.site.to.site.VPN":"Site-to-site VPN",
+"label.size":"Size",
+"label.skip.guide":"I have used CloudStack before, skip this guide",
+"label.smb.domain":"SMB Domain",
+"label.smb.password":"SMB Password",
+"label.smb.username":"SMB Username",
+"label.snapshot":"Snapshot",
+"label.snapshot.limits":"Snapshot Limits",
+"label.snapshot.name":"Snapshot Name",
+"label.snapshot.s":"Snapshots",
+"label.snapshot.schedule":"Set up Recurring Snapshot",
+"label.snapshots":"Snapshots",
+"label.sockets":"CPU Sockets",
+"label.source.ip.address":"Source IP Address",
+"label.source.nat":"Source NAT",
+"label.source.nat.supported":"SourceNAT Supported",
+"label.source.port":"Source Port",
+"label.specify.IP.ranges":"Specify IP ranges",
+"label.specify.vlan":"Specify VLAN",
+"label.specify.vxlan":"Specify VXLAN",
+"label.srx":"SRX",
+"label.srx.details":"SRX details",
+"label.ssh.key.pair":"SSH Key Pair",
+"label.ssh.key.pair.details":"SSH Key Pair Details",
+"label.ssh.key.pairs":"SSH Key Pairs",
+"label.standard.us.keyboard":"Standard (US) keyboard",
+"label.start.IP":"Start IP",
+"label.start.lb.vm":"Start LB VM",
+"label.start.port":"Start Port",
+"label.start.reserved.system.IP":"Start Reserved system IP",
+"label.start.vlan":"Start VLAN",
+"label.start.vxlan":"Start VXLAN",
+"label.state":"State",
+"label.suitability": "Suitability",
+"label.static.nat":"Static NAT",
+"label.static.nat.enabled":"Static NAT Enabled",
+"label.static.nat.to":"Static NAT to",
+"label.static.nat.vm.details":"Static NAT VM Details",
+"label.static.routes":"Static Routes",
+"label.statistics":"Statistics",
+"label.status":"Status",
+"label.step.1":"Step 1",
+"label.step.1.title":"Step 1: <strong>Select a Template</strong>",
+"label.step.2":"Step 2",
+"label.step.2.title":"Step 2: <strong>Service Offering</strong>",
+"label.step.3":"Step 3",
+"label.step.3.title":"Step 3: <strong id=\"step3_label\">Select a Disk Offering</strong>",
+"label.step.4":"Step 4",
+"label.step.4.title":"Step 4: <strong>Network</strong>",
+"label.step.5":"Step 5",
+"label.step.5.title":"Step 5: <strong>Review</strong>",
+"label.stickiness":"Stickiness",
+"label.stickiness.method":"Stickiness method",
+"label.sticky.cookie-name":"Cookie name",
+"label.sticky.domain":"Domain",
+"label.sticky.expire":"Expires",
+"label.sticky.holdtime":"Hold time",
+"label.sticky.indirect":"Indirect",
+"label.sticky.length":"Length",
+"label.sticky.mode":"Mode",
+"label.sticky.name":"Sticky Name",
+"label.sticky.nocache":"No cache",
+"label.sticky.postonly":"Post only",
+"label.sticky.prefix":"Prefix",
+"label.sticky.request-learn":"Request learn",
+"label.sticky.tablesize":"Table size",
+"label.stop":"Stop",
+"label.stop.lb.vm":"Stop LB VM",
+"label.stopped.vms":"Stopped VMs",
+"label.storage":"Storage",
+"label.storage.pool":"Storage Pool",
+"label.storage.tags":"Storage Tags",
+"label.storage.traffic":"Storage Traffic",
+"label.storage.type":"Storage Type",
+"label.subdomain.access":"Subdomain Access",
+"label.submit":"Submit",
+"label.submitted.by":"[Submitted by: <span id=\"submitted_by\"></span>]",
+"label.succeeded":"Succeeded",
+"label.sunday":"Sunday",
+"label.super.cidr.for.guest.networks":"Super CIDR for Guest Networks",
+"label.supported.services":"Supported Services",
+"label.supported.source.NAT.type":"Supported Source NAT type",
+"label.supportsstrechedl2subnet":"Supports Streched L2 Subnet",
+"label.supportspublicaccess":"Supports Public Access",
+"label.suspend.project":"Suspend Project",
+"label.switch.type":"Switch Type",
+"label.system.capacity":"System Capacity",
+"label.system.offering":"System Offering",
+"label.system.offering.for.router":"System Offering for Router",
+"label.system.service.offering":"System Service Offering",
+"label.system.service.offering.details":"System service offering details",
+"label.system.vm":"System VM",
+"label.system.vm.details":"System VM details",
+"label.system.vm.scaled.up":"System VM Scaled Up",
+"label.system.vm.type":"System VM Type",
+"label.system.vms":"System VMs",
+"label.system.wide.capacity":"System-wide capacity",
+"label.tag.key":"Tag Key",
+"label.tag.value":"Tag Value",
+"label.tagged":"Tagged",
+"label.tags":"Tags",
+"label.target.iqn":"Target IQN",
+"label.task.completed":"Task completed",
+"label.template":"Template",
+"label.template.limits":"Template Limits",
+"label.tftp.root.directory":"Tftp root directory",
+"label.theme.default":"Default Theme",
+"label.theme.grey":"Custom - Grey",
+"label.theme.lightblue":"Custom - Light Blue",
+"label.threshold":"Threshold",
+"label.thursday":"Thursday",
+"label.tier":"Tier",
+"label.tier.details":"Tier details",
+"label.time":"Time",
+"label.time.colon":"Time:",
+"label.time.zone":"Timezone",
+"label.timeout":"Timeout",
+"label.timeout.in.second ":" Timeout (seconds)",
+"label.timezone":"Timezone",
+"label.timezone.colon":"Timezone:",
+"label.token":"Token",
+"label.total.CPU":"Total CPU",
+"label.total.cpu":"Total CPU",
+"label.total.hosts":"Total Hosts",
+"label.total.memory":"Total Memory",
+"label.total.of.ip":"Total of IP Addresses",
+"label.total.of.vm":"Total of VMs",
+"label.total.storage":"Total Storage",
+"label.total.virtual.routers":"Total of Virtual Routers",
+"label.total.virtual.routers.upgrade":"Total of Virtual Routers that require upgrade",
+"label.total.vms":"Total VMs",
+"label.traffic.label":"Traffic label",
+"label.traffic.type":"Traffic Type",
+"label.traffic.types":"Traffic Types",
+"label.tuesday":"Tuesday",
+"label.type":"Type",
+"label.type.id":"Type ID",
+"label.type.lower":"type",
+"label.ucs":"UCS",
+"label.uk.keyboard":"UK keyboard",
+"label.unavailable":"Unavailable",
+"label.unhealthy.threshold":"Unhealthy Threshold",
+"label.unlimited":"Unlimited",
+"label.untagged":"Untagged",
+"label.update.project.resources":"Update project resources",
+"label.update.ssl":" SSL Certificate",
+"label.update.ssl.cert":" SSL Certificate",
+"label.updating":"Updating",
+"label.upgrade.required":"Upgrade is required",
+"label.upgrade.router.newer.template":"Upgrade Router to Use Newer Template",
+"label.upload":"Upload",
+"label.upload.from.local":"Upload from Local",
+"label.upload.template.from.local":"Upload Template from Local",
+"label.upload.volume":"Upload volume",
+"label.upload.volume.from.local":"Upload Volume from Local",
+"label.upload.volume.from.url":"Upload volume from URL",
+"label.url":"URL",
+"label.usage.interface":"Usage Interface",
+"label.usage.sanity.result":"Usage Sanity Result",
+"label.usage.server":"Usage Server",
+"label.usage.type":"Usage Type",
+"label.usage.unit":"Unit",
+"label.use.vm.ip":"Use VM IP:",
+"label.use.vm.ips":"Use VM IPs",
+"label.used":"Used",
+"label.user":"User",
+"label.user.data":"User Data",
+"label.user.details":"User details",
+"label.user.vm":"User VM",
+"label.username":"Username",
+"label.username.lower":"username",
+"label.users":"Users",
+"label.vSwitch.type":"vSwitch Type",
+"label.value":"Value",
+"label.vcdcname":"vCenter DC name",
+"label.vcenter":"vcenter",
+"label.vcenter.cluster":"vCenter Cluster",
+"label.vcenter.datacenter":"vCenter Datacenter",
+"label.vcenter.datastore":"vCenter Datastore",
+"label.vcenter.host":"vCenter Host",
+"label.vcenter.password":"vCenter Password",
+"label.vcenter.username":"vCenter Username",
+"label.vcipaddress":"vCenter IP Address",
+"label.version":"Version",
+"label.vgpu":"VGPU",
+"label.vgpu.max.resolution":"Max resolution",
+"label.vgpu.max.vgpu.per.gpu":"vGPUs per GPU",
+"label.vgpu.remaining.capacity":"Remaining capacity",
+"label.vgpu.type":"vGPU type",
+"label.vgpu.video.ram":"Video RAM",
+"label.view":"View",
+"label.view.all":"View all",
+"label.view.console":"View console",
+"label.view.more":"View more",
+"label.view.secondary.ips":"View secondary IPs",
+"label.viewing":"Viewing",
+"label.virtual.appliance":"Virtual Appliance",
+"label.virtual.appliance.details":"Virtual applicance details",
+"label.virtual.appliances":"Virtual Appliances",
+"label.virtual.machine":"Virtual Machine",
+"label.virtual.machines":"Virtual Machines",
+"label.virtual.network":"Virtual Network",
+"label.virtual.networking":"Virtual Networking",
+"label.virtual.router":"Virtual Router",
+"label.virtual.routers":"Virtual Routers",
+"label.virtual.routers.group.account":"Virtual Routers group by account",
+"label.virtual.routers.group.cluster":"Virtual Routers group by cluster",
+"label.virtual.routers.group.pod":"Virtual Routers group by pod",
+"label.virtual.routers.group.zone":"Virtual Routers group by zone",
+"label.vlan":"VLAN/VNI",
+"label.vlan.id":"VLAN/VNI ID",
+"label.vlan.only":"VLAN",
+"label.vlan.range":"VLAN/VNI Range",
+"label.vlan.range.details":"VLAN Range details",
+"label.vlan.ranges":"VLAN Range(s)",
+"label.vlan.vni.range":"VLAN/VNI Range",
+"label.vlan.vni.ranges":"VLAN/VNI Range(s)",
+"label.vm.add":"Add Instance",
+"label.vm.destroy":"Destroy",
+"label.vm.display.name":"VM display name",
+"label.vm.id":"VM ID",
+"label.vm.ip":"VM IP Address",
+"label.vm.name":"VM name",
+"label.vm.password":"Password of the VM is",
+"label.vm.reboot":"Reboot",
+"label.vm.start":"Start",
+"label.vm.state":"VM state",
+"label.vm.stop":"Stop",
+"label.vmfs":"VMFS",
+"label.vms":"VMs",
+"label.vmsnapshot":"VM Snapshots",
+"label.vmsnapshot.current":"isCurrent",
+"label.vmsnapshot.memory":"Snapshot memory",
+"label.vmsnapshot.parentname":"Parent",
+"label.vmsnapshot.type":"Type",
+"label.vmware.datacenter.id":"VMware datacenter ID",
+"label.vmware.datacenter.name":"VMware datacenter Name",
+"label.vmware.datacenter.vcenter":"VMware datacenter vcenter",
+"label.vmware.traffic.label":"VMware traffic label",
+"label.vnet":"VLAN/VNI",
+"label.vnet.id":"VLAN/VNI ID",
+"label.vnmc":"VNMC",
+"label.vnmc.devices":"VNMC Devices",
+"label.volatile":"Volatile",
+"label.volgroup":"Volume Group",
+"label.volume":"Volume",
+"label.volume.details":"Volume details",
+"label.volume.limits":"Volume Limits",
+"label.volume.migrated":"Volume migrated",
+"label.volume.name":"Volume Name",
+"label.volumes":"Volumes",
+"label.vpc":"VPC",
+"label.vpc.distributedvpcrouter":"Distributed VPC Router",
+"label.vpc.id":"VPC ID",
+"label.vpc.offering":"VPC Offering",
+"label.vpc.offering.details":"VPC offering details",
+"label.vpc.router.details":"VPC Router Details",
+"label.vpc.supportsregionlevelvpc":"Supports Region Level VPC",
+"label.vpc.virtual.router":"VPC Virtual Router",
+"label.vpn":"VPN",
+"label.vpn.customer.gateway":"VPN Customer Gateway",
+"label.vpn.force.encapsulation":"Force UDP Encapsulation of ESP Packets",
+"label.vsmctrlvlanid":"Control VLAN ID",
+"label.vsmpktvlanid":"Packet VLAN ID",
+"label.vsmstoragevlanid":"Storage VLAN ID",
+"label.vsphere.managed":"vSphere Managed",
+"label.vswitch.name":"vSwitch Name",
+"label.vxlan":"VXLAN",
+"label.vxlan.id":"VXLAN ID",
+"label.vxlan.range":"VXLAN Range",
+"label.waiting":"Waiting",
+"label.warn":"Warn",
+"label.warn.upper":"WARN",
+"label.warning":"Warning",
+"label.wednesday":"Wednesday",
+"label.weekly":"Weekly",
+"label.welcome":"Welcome",
+"label.welcome.cloud.console":"Welcome to Management Console",
+"label.what.is.cloudstack":"What is CloudStack&#8482?",
+"label.xenserver.tools.version.61.plus":"Original XS Version is 6.1+",
+"label.xenserver.traffic.label":"XenServer traffic label",
+"label.yes":"Yes",
+"label.zone":"Zone",
+"label.zone.dedicated":"Zone Dedicated",
+"label.zone.details":"Zone details",
+"label.zone.id":"Zone ID",
+"label.zone.lower":"zone",
+"label.zone.name":"Zone Name",
+"label.zone.step.1.title":"Step 1: <strong>Select a Network</strong>",
+"label.zone.step.2.title":"Step 2: <strong>Add a Zone</strong>",
+"label.zone.step.3.title":"Step 3: <strong>Add a Pod</strong>",
+"label.zone.step.4.title":"Step 4: <strong>Add an IP range</strong>",
+"label.zone.type":"Zone Type",
+"label.zone.wide":"Zone-Wide",
+"label.zoneWizard.trafficType.guest":"Guest: Traffic between end-user virtual machines",
+"label.zoneWizard.trafficType.management":"Management: Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs",
+"label.zoneWizard.trafficType.public":"Public: Traffic between the internet and virtual machines in the cloud.",
+"label.zoneWizard.trafficType.storage":"Storage: Traffic between primary and secondary storage servers, such as VM templates and snapshots",
+"label.zones":"Zones",
+"managed.state":"Managed State",
+"message.XSTools61plus.update.failed":"Failed to update Original XS Version is 6.1+ field. Error:",
+"message.Zone.creation.complete":"Zone creation complete",
+"message.acquire.ip.nic":"Please confirm that you would like to acquire a new secondary IP for this NIC.<br/>NOTE: You need to manually configure the newly-acquired secondary IP inside the virtual machine.",
+"message.acquire.new.ip":"Please confirm that you would like to acquire a new IP for this network.",
+"message.acquire.new.ip.vpc":"Please confirm that you would like to acquire a new IP for this VPC.",
+"message.acquire.public.ip":"Please select a zone from which you want to acquire your new IP from.",
+"message.action.cancel.maintenance":"Your host has been successfully canceled for maintenance. This process can take up to several minutes.",
+"message.action.cancel.maintenance.mode":"Please confirm that you want to cancel this maintenance.",
+"message.action.change.service.warning.for.instance":"Your instance must be stopped before attempting to change its current service offering.",
+"message.action.change.service.warning.for.router":"Your router must be stopped before attempting to change its current service offering.",
+"message.action.delete.ISO":"Please confirm that you want to delete this ISO.",
+"message.action.delete.ISO.for.all.zones":"The ISO is used by all zones. Please confirm that you want to delete it from all zones.",
+"message.action.delete.cluster":"Please confirm that you want to delete this cluster.",
+"message.action.delete.disk.offering":"Please confirm that you want to delete this disk offering.",
+"message.action.delete.domain":"Please confirm that you want to delete this domain.",
+"message.action.delete.external.firewall":"Please confirm that you would like to remove this external firewall. Warning: If you are planning to add back the same external firewall, you must reset usage data on the device.",
+"message.action.delete.external.load.balancer":"Please confirm that you would like to remove this external load balancer. Warning: If you are planning to add back the same external load balancer, you must reset usage data on the device.",
+"message.action.delete.ingress.rule":"Please confirm that you want to delete this ingress rule.",
+"message.action.delete.network":"Please confirm that you want to delete this network.",
+"message.action.delete.nexusVswitch":"Please confirm that you want to delete this nexus 1000v",
+"message.action.delete.nic":"Please confirm that want to remove this NIC, which will also remove the associated network from the VM.",
+"message.action.delete.physical.network":"Please confirm that you want to delete this physical network",
+"message.action.delete.pod":"Please confirm that you want to delete this pod.",
+"message.action.delete.primary.storage":"Please confirm that you want to delete this primary storage.",
+"message.action.delete.secondary.storage":"Please confirm that you want to delete this secondary storage.",
+"message.action.delete.security.group":"Please confirm that you want to delete this security group.",
+"message.action.delete.service.offering":"Please confirm that you want to delete this service offering.",
+"message.action.delete.snapshot":"Please confirm that you want to delete this snapshot.",
+"message.action.delete.system.service.offering":"Please confirm that you want to delete this system service offering.",
+"message.action.delete.template":"Please confirm that you want to delete this template.",
+"message.action.delete.template.for.all.zones":"The template is used by all zones. Please confirm that you want to delete it from all zones.",
+"message.action.delete.volume":"Please confirm that you want to delete this volume.",
+"message.action.delete.zone":"Please confirm that you want to delete this zone.",
+"message.action.destroy.instance":"Please confirm that you want to destroy this instance.",
+"message.action.destroy.systemvm":"Please confirm that you want to destroy this System VM.",
+"message.action.disable.cluster":"Please confirm that you want to disable this cluster.",
+"message.action.disable.nexusVswitch":"Please confirm that you want to disable this nexus 1000v",
+"message.action.disable.physical.network":"Please confirm that you want to disable this physical network.",
+"message.action.disable.pod":"Please confirm that you want to disable this pod.",
+"message.action.disable.static.NAT":"Please confirm that you want to disable static NAT.",
+"message.action.disable.zone":"Please confirm that you want to disable this zone.",
+"message.action.download.iso":"Please confirm that you want to download this ISO.",
+"message.action.download.template":"Please confirm that you want to download this template.",
+"message.action.downloading.template":"Downloading template.",
+"message.action.enable.cluster":"Please confirm that you want to enable this cluster.",
+"message.action.enable.maintenance":"Your host has been successfully prepared for maintenance.  This process can take up to several minutes or longer depending on how many VMs are currently on this host.",
+"message.action.enable.nexusVswitch":"Please confirm that you want to enable this nexus 1000v",
+"message.action.enable.physical.network":"Please confirm that you want to enable this physical network.",
+"message.action.enable.pod":"Please confirm that you want to enable this pod.",
+"message.action.enable.zone":"Please confirm that you want to enable this zone.",
+"message.action.expunge.instance":"Please confirm that you want to expunge this instance.",
+"message.action.force.reconnect":"Your host has been successfully forced to reconnect.  This process can take up to several minutes.",
+"message.action.host.enable.maintenance.mode":"Enabling maintenance mode will cause a live migration of all running instances on this host to any available host.",
+"message.action.instance.reset.password":"Please confirm that you want to change the ROOT password for this virtual machine.",
+"message.action.manage.cluster":"Please confirm that you want to manage the cluster.",
+"message.action.primarystorage.enable.maintenance.mode":"Warning: placing the primary storage into maintenance mode will cause all VMs using volumes from it to be stopped.  Do you want to continue?",
+"message.action.reboot.instance":"Please confirm that you want to reboot this instance.",
+"message.action.reboot.router":"All services provided by this virtual router will be interrupted. Please confirm that you want to reboot this router.",
+"message.action.reboot.systemvm":"Please confirm that you want to reboot this system VM.",
+"message.action.release.ip":"Please confirm that you want to release this IP.",
+"message.action.remove.host":"Please confirm that you want to remove this host.",
+"message.action.reset.password.off":"Your instance currently does not support this feature.",
+"message.action.reset.password.warning":"Your instance must be stopped before attempting to change its current password.",
+"message.action.restore.instance":"Please confirm that you want to restore this instance.",
+"message.action.revert.snapshot":"Please confirm that you want to revert the owning volume to this snapshot.",
+"message.action.start.instance":"Please confirm that you want to start this instance.",
+"message.action.start.router":"Please confirm that you want to start this router.",
+"message.action.start.systemvm":"Please confirm that you want to start this system VM.",
+"message.action.stop.instance":"Please confirm that you want to stop this instance.",
+"message.action.stop.router":"All services provided by this virtual router will be interrupted. Please confirm that you want to stop this router.",
+"message.action.stop.systemvm":"Please confirm that you want to stop this system VM.",
+"message.action.take.snapshot":"Please confirm that you want to take a snapshot of this volume.",
+"message.action.unmanage.cluster":"Please confirm that you want to unmanage the cluster.",
+"message.action.vmsnapshot.create":"Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+"message.action.vmsnapshot.delete":"Please confirm that you want to delete this VM snapshot.",
+"message.action.vmsnapshot.revert":"Revert VM snapshot",
+"message.activate.project":"Are you sure you want to activate this project?",
+"message.add.VPN.gateway":"Please confirm that you want to add a VPN Gateway",
+"message.add.cluster":"Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+"message.add.cluster.zone":"Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>",
+"message.add.disk.offering":"Please specify the following parameters to add a new disk offering",
+"message.add.domain":"Please specify the subdomain you want to create under this domain",
+"message.add.firewall":"Add a firewall to zone",
+"message.add.guest.network":"Please confirm that you would like to add a guest network",
+"message.add.host":"Please specify the following parameters to add a new host",
+"message.add.ip.range":"Add an IP range to public network in zone",
+"message.add.ip.range.direct.network":"Add an IP range to direct network <b><span id=\"directnetwork_name\"></span></b> in zone <b><span id=\"zone_name\"></span></b>",
+"message.add.ip.range.to.pod":"<p>Add an IP range to pod: <b><span id=\"pod_name_label\"></span></b></p>",
+"message.add.load.balancer":"Add a load balancer to zone",
+"message.add.load.balancer.under.ip":"The load balancer rule has been added under IP:",
+"message.add.network":"Add a new network for zone: <b><span id=\"zone_name\"></span></b>",
+"message.add.new.gateway.to.vpc":"Please specify the information to add a new gateway to this VPC.",
+"message.add.pod":"Add a new pod for zone <b><span id=\"add_pod_zone_name\"></span></b>",
+"message.add.pod.during.zone.creation":"Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.",
+"message.add.primary":"Please specify the following parameters to add a new primary storage",
+"message.add.primary.storage":"Add a new Primary Storage for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+"message.add.region":"Please specify the required information to add a new region.",
+"message.add.secondary.storage":"Add a new storage for zone <b><span id=\"zone_name\"></span></b>",
+"message.add.service.offering":"Please fill in the following data to add a new compute offering.",
+"message.add.system.service.offering":"Please fill in the following data to add a new system service offering.",
+"message.add.template":"Please enter the following data to create your new template",
+"message.add.volume":"Please fill in the following data to add a new volume.",
+"message.added.new.nuage.vsp.controller":"Added new Nuage Vsp Controller",
+"message.added.vpc.offering":"Added VPC offering",
+"message.adding.Netscaler.device":"Adding Netscaler device",
+"message.adding.Netscaler.provider":"Adding Netscaler provider",
+"message.adding.host":"Adding host",
+"message.additional.networks.desc":"Please select additional network(s) that your virtual instance will be connected to.",
+"message.admin.guide.read":"For VMware-based VMs, please read the dynamic scaling section in the admin guide before scaling. Would you like to continue?,",
+"message.advanced.mode.desc":"Choose this network model if you wish to enable VLAN support.  This network model provides the most flexibility in allowing administrators to provide custom network offerings such as providing firewall, vpn, or load balancer support as well as enabling direct vs virtual networking.",
+"message.advanced.security.group":"Choose this if you wish to use security groups to provide guest VM isolation.",
+"message.advanced.virtual":"Choose this if you wish to use zone-wide VLANs to provide guest VM isolation.",
+"message.after.enable.s3":"S3-backed Secondary Storage configured. Note: When you leave this page, you will not be able to re-configure S3 again.",
+"message.after.enable.swift":"Swift configured. Note: When you leave this page, you will not be able to re-configure Swift again.",
+"message.alert.state.detected":"Alert state detected",
+"message.allow.vpn.access":"Please enter a username and password of the user that you want to allow VPN access.",
+"message.apply.snapshot.policy":"You have successfully updated your current snapshot policy.",
+"message.assign.instance.another":"Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+"message.attach.iso.confirm":"Please confirm that you want to attach the ISO to this virtual instance.",
+"message.attach.volume":"Please fill in the following data to attach a new volume. If you are attaching a disk volume to a Windows based virtual machine, you will need to reboot the instance to see the attached disk.",
+"message.basic.mode.desc":"Choose this network model if you do <b>*<u>not</u>*</b> want to enable any VLAN support.  All virtual instances created under this network model will be assigned an IP directly from the network and security groups are used to provide security and segregation.",
+"message.change.ipaddress":"Please confirm that you would like to change the IP address for this NIC on VM.",
+"message.change.offering.confirm":"Please confirm that you wish to change the service offering of this virtual instance.",
+"message.change.password":"Please change your password.",
+"message.cluster.dedicated":"Cluster Dedicated",
+"message.cluster.dedication.released":"Cluster dedication released",
+"message.configure.all.traffic.types":"You have multiple physical networks; please configure labels for each traffic type by clicking on the Edit button.",
+"message.configure.firewall.rules.allow.traffic":"Configure the rules to allow Traffic",
+"message.configure.firewall.rules.block.traffic":"Configure the rules to block Traffic",
+"message.configure.ldap":"Please confirm you would like to configure LDAP.",
+"message.configuring.guest.traffic":"Configuring guest traffic",
+"message.configuring.physical.networks":"Configuring physical networks",
+"message.configuring.public.traffic":"Configuring public traffic",
+"message.configuring.storage.traffic":"Configuring storage traffic",
+"message.confirm.action.force.reconnect":"Please confirm that you want to force reconnect this host.",
+"message.confirm.add.vnmc.provider":"Please confirm you would like to add the VNMC provider.",
+"message.confirm.archive.alert":"Please confirm that you want to archive this alert.",
+"message.confirm.archive.event":"Please confirm that you want to archive this event.",
+"message.confirm.archive.selected.alerts":"Please confirm you would like to archive the selected alerts",
+"message.confirm.archive.selected.events":"Please confirm you would like to archive the selected events",
+"message.confirm.attach.disk":"Are you sure you want to attach disk?",
+"message.confirm.create.volume":"Are you sure you want to create volume?",
+"message.confirm.current.guest.CIDR.unchanged":"Do you want to keep the current guest network CIDR unchanged?",
+"message.confirm.dedicate.cluster.domain.account":"Do you really want to dedicate this cluster to a domain/account? ",
+"message.confirm.dedicate.host.domain.account":"Do you really want to dedicate this host to a domain/account? ",
+"message.confirm.dedicate.pod.domain.account":"Do you really want to dedicate this pod to a domain/account? ",
+"message.confirm.dedicate.zone":"Do you really want to dedicate this zone to a domain/account?",
+"message.confirm.delete.BigSwitchBcf":"Please confirm that you would like to delete this BigSwitch BCF Controller",
+"message.confirm.delete.BrocadeVcs":"Please confirm that you would like to delete Brocade Vcs Switch",
+"message.confirm.delete.F5":"Please confirm that you would like to delete F5",
+"message.confirm.delete.NetScaler":"Please confirm that you would like to delete NetScaler",
+"message.confirm.delete.NuageVsp":"Please confirm that you would like to delete Nuage Virtualized Services Directory",
+"message.confirm.delete.PA":"Please confirm that you would like to delete Palo Alto",
+"message.confirm.delete.SRX":"Please confirm that you would like to delete SRX",
+"message.confirm.delete.acl.list":"Are you sure you want to delete this ACL list?",
+"message.confirm.delete.alert":"Are you sure you want to delete this alert ?",
+"message.confirm.delete.baremetal.rack.configuration":"Please confirm that you want to delete Baremetal Rack Configuration.",
+"message.confirm.delete.ciscoASA1000v":"Please confirm you want to delete CiscoASA1000v",
+"message.confirm.delete.ciscovnmc.resource":"Please confirm you want to delete CiscoVNMC resource",
+"message.confirm.delete.internal.lb":"Please confirm you want to delete Internal LB",
+"message.confirm.delete.secondary.staging.store":"Please confirm you want to delete Secondary Staging Store.",
+"message.confirm.delete.ucs.manager":"Please confirm that you want to delete UCS Manager",
+"message.confirm.destroy.router":"Please confirm that you would like to destroy this router",
+"message.confirm.disable.host":"Please confirm that you want to disable the host",
+"message.confirm.disable.network.offering":"Are you sure you want to disable this network offering?",
+"message.confirm.disable.provider":"Please confirm that you would like to disable this provider",
+"message.confirm.disable.vnmc.provider":"Please confirm you would like to disable the VNMC provider.",
+"message.confirm.disable.vpc.offering":"Are you sure you want to disable this VPC offering?",
+"message.confirm.enable.host":"Please confirm that you want to enable the host",
+"message.confirm.enable.network.offering":"Are you sure you want to enable this network offering?",
+"message.confirm.enable.provider":"Please confirm that you would like to enable this provider",
+"message.confirm.enable.vnmc.provider":"Please confirm you would like to enable the VNMC provider.",
+"message.confirm.enable.vpc.offering":"Are you sure you want to enable this VPC offering?",
+"message.confirm.force.update":"Do you want to make a force update?",
+"message.confirm.join.project":"Please confirm you wish to join this project.",
+"message.confirm.migrate.volume":"Do you want to migrate this volume?",
+"message.confirm.refresh.blades":"Please confirm that you want to refresh blades.",
+"message.confirm.release.dedicate.vlan.range":"Please confirm you want to release dedicated VLAN range",
+"message.confirm.release.dedicated.cluster":"Do you want to release this dedicated cluster ?",
+"message.confirm.release.dedicated.host":"Do you want to release this dedicated host ?",
+"message.confirm.release.dedicated.pod":"Do you want to release this dedicated pod ?",
+"message.confirm.release.dedicated.zone":"Do you want to release this dedicated zone ? ",
+"message.confirm.remove.IP.range":"Please confirm that you would like to remove this IP range.",
+"message.confirm.remove.event":"Are you sure you want to remove this event?",
+"message.confirm.remove.load.balancer":"Please confirm you want to remove VM from load balancer",
+"message.confirm.remove.network.offering":"Are you sure you want to remove this network offering?",
+"message.confirm.remove.selected.alerts":"Please confirm you would like to remove the selected alerts",
+"message.confirm.remove.selected.events":"Please confirm you would like to remove the selected events",
+"message.confirm.remove.vmware.datacenter":"Please confirm you want to remove VMware datacenter",
+"message.confirm.remove.vpc.offering":"Are you sure you want to remove this VPC offering?",
+"message.confirm.replace.acl.new.one":"Do you want to replace the ACL with a new one?",
+"message.confirm.scale.up.router.vm":"Do you really want to scale up the Router VM ?",
+"message.confirm.scale.up.system.vm":"Do you really want to scale up the system VM ?",
+"message.confirm.shutdown.provider":"Please confirm that you would like to shutdown this provider",
+"message.confirm.start.lb.vm":"Please confirm you want to start LB VM",
+"message.confirm.stop.lb.vm":"Please confirm you want to stop LB VM",
+"message.confirm.upgrade.router.newer.template":"Please confirm that you want to upgrade router to use newer template",
+"message.confirm.upgrade.routers.account.newtemplate":"Please confirm that you want to upgrade all routers in this account to use newer template",
+"message.confirm.upgrade.routers.cluster.newtemplate":"Please confirm that you want to upgrade all routers in this cluster to use newer template",
+"message.confirm.upgrade.routers.newtemplate":"Please confirm that you want to upgrade all routers in this zone to use newer template",
+"message.confirm.upgrade.routers.pod.newtemplate":"Please confirm that you want to upgrade all routers in this pod to use newer template",
+"message.copy.iso.confirm":"Please confirm that you wish to copy your ISO to",
+"message.copy.template":"Copy template <b id=\"copy_template_name_text\">XXX</b> from zone <b id=\"copy_template_source_zone_text\"></b> to",
+"message.copy.template.confirm":"Are you sure you want to copy template?",
+"message.create.template":"Are you sure you want to create template?",
+"message.create.template.vm":"Create VM from template <b id=\"p_name\"></b>",
+"message.create.template.volume":"Please specify the following information before creating a template of your disk volume: <b><span id=\"volume_name\"></span></b>. Creation of the template can range from several minutes to longer depending on the size of the volume.",
+"message.creating.cluster":"Creating cluster",
+"message.creating.guest.network":"Creating guest network",
+"message.creating.physical.networks":"Creating physical networks",
+"message.creating.pod":"Creating pod",
+"message.creating.primary.storage":"Creating primary storage",
+"message.creating.secondary.storage":"Creating secondary storage",
+"message.creating.systemVM":"Creating system VMs (this may take a while)",
+"message.creating.zone":"Creating zone",
+"message.decline.invitation":"Are you sure you want to decline this project invitation?",
+"message.dedicate.zone":"Dedicating zone",
+"message.dedicated.zone.released":"Zone dedication released",
+"message.delete.VPN.connection":"Please confirm that you want to delete VPN connection",
+"message.delete.VPN.customer.gateway":"Please confirm that you want to delete this VPN Customer Gateway",
+"message.delete.VPN.gateway":"Please confirm that you want to delete this VPN Gateway",
+"message.delete.account":"Please confirm that you want to delete this account.",
+"message.delete.affinity.group":"Please confirm that you would like to remove this affinity group.",
+"message.delete.gateway":"Please confirm you want to delete the gateway",
+"message.delete.project":"Are you sure you want to delete this project?",
+"message.delete.user":"Please confirm that you would like to delete this user.",
+"message.desc.add.new.lb.sticky.rule":"Add new LB sticky rule",
+"message.desc.advanced.zone":"For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.",
+"message.desc.basic.zone":"Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering).",
+"message.desc.cluster":"Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.",
+"message.desc.create.ssh.key.pair":"Please fill in the following data to create or register a ssh key pair.<br><br>(1) If public key is set, CloudStack will register the public key. You can use it through your private key.<br><br>(2) If public key is not set, CloudStack will create a new SSH Key pair. In this case, please copy and save the private key. CloudStack will not keep it.<br>",
+"message.desc.created.ssh.key.pair":"Created a SSH Key Pair.",
+"message.desc.host":"Each cluster must contain at least one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.",
+"message.desc.primary.storage":"Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.",
+"message.desc.reset.ssh.key.pair":"Please specify a ssh key pair that you would like to add to this VM. Please note the root password will be changed by this operation if password is enabled.",
+"message.desc.secondary.storage":"Each zone must have at least one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.",
+"message.desc.zone":"A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.",
+"message.detach.disk":"Are you sure you want to detach this disk?",
+"message.detach.iso.confirm":"Please confirm that you want to detach the ISO from this virtual instance.",
+"message.disable.account":"Please confirm that you want to disable this account.  By disabling the account, all users for this account will no longer have access to their cloud resources.  All running virtual machines will be immediately shut down.",
+"message.disable.snapshot.policy":"You have successfully disabled your current snapshot policy.",
+"message.disable.user":"Please confirm that you would like to disable this user.",
+"message.disable.vpn":"Are you sure you want to disable VPN?",
+"message.disable.vpn.access":"Please confirm that you want to disable Remote Access VPN.",
+"message.disabling.network.offering":"Disabling network offering",
+"message.disabling.vpc.offering":"Disabling VPC offering",
+"message.disallowed.characters":"Disallowed characters: <,>",
+"message.download.ISO":"Please click <a href=\"#\">00000</a> to download ISO",
+"message.download.template":"Please click <a href=\"#\">00000</a> to download template",
+"message.download.volume":"Please click <a href=\"#\">00000</a> to download volume",
+"message.download.volume.confirm":"Please confirm that you want to download this volume.",
+"message.edit.account":"Edit (\"-1\" indicates no limit to the amount of resources create)",
+"message.edit.confirm":"Please confirm your changes before clicking \"Save\".",
+"message.edit.limits":"Please specify limits to the following resources.  A \"-1\" indicates no limit to the amount of resources create.",
+"message.edit.traffic.type":"Please specify the traffic label you want associated with this traffic type.",
+"message.enable.account":"Please confirm that you want to enable this account.",
+"message.enable.user":"Please confirm that you would like to enable this user.",
+"message.enable.vpn":"Please confirm that you want Remote Access VPN enabled for this IP address.",
+"message.enable.vpn.access":"VPN is currently disabled for this IP Address.  Would you like to enable VPN access?",
+"message.enabled.vpn":"Your Remote Access VPN is currently enabled and can be accessed via the IP",
+"message.enabled.vpn.ip.sec":"Your IPSec pre-shared key is",
+"message.enabling.network.offering":"Enabling network offering",
+"message.enabling.security.group.provider":"Enabling Security Group provider",
+"message.enabling.vpc.offering":"Enabling VPC offering",
+"message.enabling.zone":"Enabling zone",
+"message.enabling.zone.dots":"Enabling zone...",
+"message.enter.seperated.list.multiple.cidrs":"Please enter a comma separated list of CIDRs if more than one",
+"message.enter.token":"Please enter the token that you were given in your invite e-mail.",
+"message.generate.keys":"Please confirm that you would like to generate new keys for this user.",
+"message.gslb.delete.confirm":"Please confirm you want to delete this GSLB",
+"message.gslb.lb.remove.confirm":"Please confirm you want to remove load balancing from GSLB",
+"message.guest.traffic.in.advanced.zone":"Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.",
+"message.guest.traffic.in.basic.zone":"Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.",
+"message.host.dedicated":"Host Dedicated",
+"message.host.dedication.released":"Host dedication released",
+"message.installWizard.click.retry":"Click the button to retry launch.",
+"message.installWizard.copy.whatIsACluster":"A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack&#8482; deployment. Clusters are contained within pods, and pods are contained within zones.<br/><br/>CloudStack&#8482; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster.",
+"message.installWizard.copy.whatIsAHost":"A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer or KVM.<br/><br/>The host is the smallest organizational unit within a CloudStack&#8482; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones.",
+"message.installWizard.copy.whatIsAPod":"A pod often represents a single rack. Hosts in the same pod are in the same subnet.<br/><br/>A pod is the second-largest organizational unit within a CloudStack&#8482; deployment. Pods are contained within zones. Each zone can contain one or more pods; in the Basic Installation, you will have just one pod in your zone.",
+"message.installWizard.copy.whatIsAZone":"A zone is the largest organizational unit within a CloudStack&#8482; deployment. A zone typically corresponds to a single datacenter, although it is permissible to have multiple zones in a datacenter. The benefit of organizing infrastructure into zones is to provide physical isolation and redundancy. For example, each zone can have its own power supply and network uplink, and the zones can be widely separated geographically (though this is not required).",
+"message.installWizard.copy.whatIsCloudStack":"CloudStack&#8482 is a software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. CloudStack&#8482 manages the network, storage, and compute nodes that make up a cloud infrastructure. Use CloudStack&#8482 to deploy, manage, and configure cloud computing environments.<br/><br/>Extending beyond individual virtual machine images running on commodity hardware, CloudStack&#8482 provides a turnkey cloud infrastructure software stack for delivering virtual datacenters as a service - delivering all of the essential components to build, deploy, and manage multi-tier and multi-tenant cloud applications. Both open-source and Premium versions are available, with the open-source version offering nearly identical features.",
+"message.installWizard.copy.whatIsPrimaryStorage":"A CloudStack&#8482; cloud infrastructure makes use of two types of storage: primary storage and secondary storage. Both of these can be iSCSI or NFS servers, or localdisk.<br/><br/><strong>Primary storage</strong> is associated with a cluster, and it stores the disk volumes of each guest VM for all the VMs running on hosts in that cluster. The primary storage server is typically located close to the hosts.",
+"message.installWizard.copy.whatIsSecondaryStorage":"Secondary storage is associated with a zone, and it stores the following:<ul><li>Templates - OS images that can be used to boot VMs and can include additional configuration information, such as installed applications</li><li>ISO images - OS images that can be bootable or non-bootable</li><li>Disk volume snapshots - saved copies of VM data which can be used for data recovery or to create new templates</ul>",
+"message.installWizard.now.building":"Now building your cloud...",
+"message.installWizard.tooltip.addCluster.name":"A name for the cluster.  This can be text of your choosing and is not used by CloudStack.",
+"message.installWizard.tooltip.addHost.hostname":"The DNS name or IP address of the host.",
+"message.installWizard.tooltip.addHost.password":"This is the password for the user named above (from your XenServer install).",
+"message.installWizard.tooltip.addHost.username":"Usually root.",
+"message.installWizard.tooltip.addPod.name":"A name for the pod",
+"message.installWizard.tooltip.addPod.reservedSystemEndIp":"This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.",
+"message.installWizard.tooltip.addPod.reservedSystemGateway":"The gateway for the hosts in that pod.",
+"message.installWizard.tooltip.addPod.reservedSystemNetmask":"The netmask in use on the subnet the guests will use.",
+"message.installWizard.tooltip.addPod.reservedSystemStartIp":"This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.",
+"message.installWizard.tooltip.addPrimaryStorage.name":"The name for the storage device.",
+"message.installWizard.tooltip.addPrimaryStorage.path":"(for NFS) In NFS this is the exported path from the server. Path (for SharedMountPoint).  With KVM this is the path on each host that is where this primary storage is mounted.  For example, \"/mnt/primary\".",
+"message.installWizard.tooltip.addPrimaryStorage.server":"(for NFS, iSCSI, or PreSetup) The IP address or DNS name of the storage device.",
+"message.installWizard.tooltip.addSecondaryStorage.nfsServer":"The IP address of the NFS server hosting the secondary storage",
+"message.installWizard.tooltip.addSecondaryStorage.path":"The exported path, located on the server you specified above",
+"message.installWizard.tooltip.addZone.dns1":"These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.",
+"message.installWizard.tooltip.addZone.dns2":"These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.",
+"message.installWizard.tooltip.addZone.internaldns1":"These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.",
+"message.installWizard.tooltip.addZone.internaldns2":"These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.",
+"message.installWizard.tooltip.addZone.name":"A name for the zone",
+"message.installWizard.tooltip.configureGuestTraffic.description":"A description for your network",
+"message.installWizard.tooltip.configureGuestTraffic.guestEndIp":"The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+"message.installWizard.tooltip.configureGuestTraffic.guestGateway":"The gateway that the guests should use",
+"message.installWizard.tooltip.configureGuestTraffic.guestNetmask":"The netmask in use on the subnet that the guests should use",
+"message.installWizard.tooltip.configureGuestTraffic.guestStartIp":"The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+"message.installWizard.tooltip.configureGuestTraffic.name":"A name for your network",
+"message.instance.scaled.up.confirm":"Do you really want to scale Up your instance ?",
+"message.instanceWizard.noTemplates":"You do not have any templates available; please add a compatible template, and re-launch the instance wizard.",
+"message.ip.address.changed":"Your IP addresses may have changed; would you like to refresh the listing? Note that in this case the details pane will close.",
+"message.iso.desc":"Disc image containing data or bootable media for OS",
+"message.join.project":"You have now joined a project. Please switch to Project view to see the project.",
+"message.launch.vm.on.private.network":"Do you wish to launch your instance on your own private dedicated network?",
+"message.launch.zone":"Zone is ready to launch; please proceed to the next step.",
+"message.ldap.group.import":"All The users from the given group name will be imported",
+"message.link.domain.to.ldap":"Enable autosync for this domain in LDAP",
+"message.listView.subselect.multi":"(Ctrl/Cmd-click)",
+"message.lock.account":"Please confirm that you want to lock this account.  By locking the account, all users for this account will no longer be able to manage their cloud resources.  Existing resources can still be accessed.",
+"message.migrate.instance.confirm":"Please confirm the host you wish to migrate the virtual instance to.",
+"message.migrate.instance.to.host":"Please confirm that you want to migrate instance to another host.",
+"message.migrate.instance.select.host":"Please select a host for migration",
+"message.migrate.instance.to.ps":"Please confirm that you want to migrate instance to another primary storage.",
+"message.migrate.router.confirm":"Please confirm the host you wish to migrate the router to:",
+"message.migrate.systemvm.confirm":"Please confirm the host you wish to migrate the system VM to:",
+"message.migrate.volume":"Please confirm that you want to migrate volume to another primary storage.",
+"message.network.addVM.desc":"Please specify the network that you would like to add this VM to. A new NIC will be added for this network.",
+"message.network.addVMNIC":"Please confirm that you would like to add a new VM NIC for this network.",
+"message.network.remote.access.vpn.configuration":"Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.",
+"message.new.user":"Specify the following to add a new user to the account",
+"message.no.affinity.groups":"You do not have any affinity groups. Please continue to the next step.",
+"message.no.host.available":"No hosts are available for migration",
+"message.no.more.hosts.available":"No more hosts are available for migration",
+"message.no.network.support":"Your selected hypervisor, vSphere, does not have any additional network features.  Please continue to step 5.",
+"message.no.network.support.configuration.not.true":"You do not have any zone that has security group enabled. Thus, no additional network features.  Please continue to step 5.",
+"message.no.projects":"You do not have any projects.<br/>Please create a new one from the projects section.",
+"message.no.projects.adminOnly":"You do not have any projects.<br/>Please ask your administrator to create a new project.",
+"message.number.clusters":"<h2><span> # of </span> Clusters</h2>",
+"message.number.hosts":"<h2><span> # of </span> Hosts</h2>",
+"message.number.pods":"<h2><span> # of </span> Pods</h2>",
+"message.number.storage":"<h2><span> # of </span> Primary Storage Volumes</h2>",
+"message.number.zones":"<h2><span> # of </span> Zones</h2>",
+"message.outofbandmanagement.action.maintenance":"Warning host is in maintenance mode",
+"message.outofbandmanagement.changepassword":"Change Out-of-band Management password",
+"message.outofbandmanagement.configure":"Configure Out-of-band Management",
+"message.outofbandmanagement.disable":"Disable Out-of-band Management",
+"message.outofbandmanagement.enable":"Enable Out-of-band Management",
+"message.outofbandmanagement.issue":"Issue Out-of-band Management Power Action",
+"message.password.has.been.reset.to":"Password has been reset to",
+"message.password.of.the.vm.has.been.reset.to":"Password of the VM has been reset to",
+"message.pending.projects.1":"You have pending project invitations:",
+"message.pending.projects.2":"To view, please go to the projects section, then select invitations from the drop-down.",
+"message.please.add.at.lease.one.traffic.range":"Please add at least one traffic range.",
+"message.please.confirm.remove.ssh.key.pair":"Please confirm that you want to remove this SSH Key Pair",
+"message.please.proceed":"Please proceed to the next step.",
+"message.please.select.a.configuration.for.your.zone":"Please select a configuration for your zone.",
+"message.please.select.a.different.public.and.management.network.before.removing":"Please select a different public and management network before removing",
+"message.please.select.networks":"Please select networks for your virtual machine.",
+"message.please.select.ssh.key.pair.use.with.this.vm":"Please select a ssh key pair you want this VM to use:",
+"message.please.wait.while.zone.is.being.created":"Please wait while your zone is being created; this may take a while...",
+"message.pod.dedication.released":"Pod dedication released",
+"message.portable.ip.delete.confirm":"Please confirm you want to delete Portable IP Range",
+"message.project.invite.sent":"Invite sent to user; they will be added to the project once they accept the invitation",
+"message.public.traffic.in.advanced.zone":"Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.",
+"message.public.traffic.in.basic.zone":"Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.",
+"message.question.are.you.sure.you.want.to.add":"Are you sure you want to add",
+"message.read.admin.guide.scaling.up":"Please read the dynamic scaling section in the admin guide before scaling up.",
+"message.recover.vm":"Please confirm that you would like to recover this VM.",
+"message.redirecting.region":"Redirecting to region...",
+"message.reinstall.vm":"NOTE: Proceed with caution. This will cause the VM to be reinstalled from the template; data on the root disk will be lost. Extra data volumes, if any, will not be touched.",
+"message.remove.ldap":"Are you sure you want to delete the LDAP configuration?",
+"message.remove.region":"Are you sure you want to remove this region from this management server?",
+"message.remove.vpc":"Please confirm that you want to remove the VPC",
+"message.remove.vpn.access":"Please confirm that you want to remove VPN access from the following user.",
+"message.removed.ssh.key.pair":"Removed a SSH Key Pair",
+"message.reset.VPN.connection":"Please confirm that you want to reset VPN connection",
+"message.reset.password.warning.notPasswordEnabled":"The template of this instance was created without password enabled",
+"message.reset.password.warning.notStopped":"Your instance must be stopped before attempting to change its current password",
+"message.restart.mgmt.server":"Please restart your management server(s) for your new settings to take effect.",
+"message.restart.mgmt.usage.server":"Please restart your management server(s) and usage server(s) for your new settings to take effect.",
+"message.restart.network":"All services provided by this network will be interrupted. Please confirm that you want to restart this network.",
+"message.restart.vpc":"Please confirm that you want to restart the VPC",
+"message.restart.vpc.remark":"Please confirm that you want to restart the VPC <p><small><i>Remark: making a non-redundant VPC redundant will force a clean up. The networks will not be available for a couple of minutes</i>.</small></p>",
+"message.restoreVM":"Do you want to restore the VM ?",
+"message.role.ordering.fail":"Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+"message.security.group.usage":"(Use <strong>Ctrl-click</strong> to select all applicable security groups)",
+"message.select.a.zone":"A zone typically corresponds to a single datacenter. Multiple zones help make the cloud more reliable by providing physical isolation and redundancy.",
+"message.select.affinity.groups":"Please select any affinity groups you want this VM to belong to:",
+"message.select.instance":"Please select an instance.",
+"message.select.iso":"Please select an ISO for your new virtual instance.",
+"message.select.item":"Please select an item.",
+"message.select.security.groups":"Please select security group(s) for your new VM",
+"message.select.template":"Please select a template for your new virtual instance.",
+"message.select.tier":"Please select a tier",
+"message.set.default.NIC":"Please confirm that you would like to make this NIC the default for this VM.",
+"message.set.default.NIC.manual":"Please manually update the default NIC on the VM now.",
+"message.setup.physical.network.during.zone.creation":"When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the hypervisor. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.",
+"message.setup.physical.network.during.zone.creation.basic":"When adding a basic zone, you can set up one physical network, which corresponds to a NIC on the hypervisor. The network carries several types of traffic.<br/><br/>You may also <strong>drag and drop</strong> other traffic types onto the physical network.",
+"message.setup.successful":"Cloud setup successful!",
+"message.snapshot.schedule":"You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference",
+"message.specifiy.tag.key.value":"Please specify a tag key and value",
+"message.specify.url":"Please specify URL",
+"message.step.1.continue":"Please select a template or ISO to continue",
+"message.step.1.desc":"Please select a template for your new virtual instance. You can also choose to select a blank template from which an ISO image can be installed onto.",
+"message.step.2.continue":"Please select a service offering to continue",
+"message.step.3.continue":"Please select a disk offering to continue",
+"message.step.4.continue":"Please select at least one network to continue",
+"message.step.4.desc":"Please select the primary network that your virtual instance will be connected to.",
+"message.storage.traffic":"Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.",
+"message.suspend.project":"Are you sure you want to suspend this project?",
+"message.systems.vms.ready":"System VMs ready.",
+"message.template.copying":"Template is being copied.",
+"message.template.copy.select.zone":"Please select a zone to copy template.",
+"message.template.desc":"OS image that can be used to boot VMs",
+"message.tier.required":"Tier is required",
+"message.tooltip.dns.1":"Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+"message.tooltip.dns.2":"A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+"message.tooltip.internal.dns.1":"Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.",
+"message.tooltip.internal.dns.2":"Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.",
+"message.tooltip.network.domain":"A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.",
+"message.tooltip.pod.name":"A name for this pod.",
+"message.tooltip.reserved.system.gateway":"The gateway for the hosts in the pod.",
+"message.tooltip.reserved.system.netmask":"The network prefix that defines the pod subnet. Uses CIDR notation.",
+"message.tooltip.zone.name":"A name for the zone.",
+"message.update.os.preference":"Please choose a OS preference for this host.  All virtual instances with similar preferences will be first allocated to this host before choosing another.",
+"message.update.resource.count":"Please confirm that you want to update resource counts for this account.",
+"message.update.ssl":"Please submit a new X.509 compliant SSL certificate chain to be updated to each console proxy and secondary storage virtual instance:",
+"message.update.ssl.failed":"Failed to update SSL Certificate.",
+"message.update.ssl.succeeded":"Update SSL Certificates succeeded",
+"message.validate.URL":"Please enter a valid URL.",
+"message.validate.accept":"Please enter a value with a valid extension.",
+"message.validate.creditcard":"Please enter a valid credit card number.",
+"message.validate.date":"Please enter a valid date.",
+"message.validate.date.ISO":"Please enter a valid date (ISO).",
+"message.validate.digits":"Please enter only digits.",
+"message.validate.email.address":"Please enter a valid email address.",
+"message.validate.equalto":"Please enter the same value again.",
+"message.validate.fieldrequired":"This field is required.",
+"message.validate.fixfield":"Please fix this field.",
+"message.validate.instance.name":"Instance name can not be longer than 63 characters. Only ASCII letters a~z, A~Z, digits 0~9, hyphen are allowed. Must start with a letter and end with a letter or a digit.",
+"message.validate.invalid.characters":"Invalid characters found; please correct.",
+"message.validate.max":"Please enter a value less than or equal to {0}.",
+"message.validate.maxlength":"Please enter no more than {0} characters.",
+"message.validate.minlength":"Please enter at least {0} characters.",
+"message.validate.number":"Please enter a valid number.",
+"message.validate.range":"Please enter a value between {0} and {1}.",
+"message.validate.range.length":"Please enter a value between {0} and {1} characters long.",
+"message.virtual.network.desc":"A dedicated virtualized network for your account.  The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.",
+"message.vm.create.template.confirm":"Create Template will reboot the VM automatically.",
+"message.vm.review.launch":"Please review the following information and confirm that your virtual instance is correct before launch.",
+"message.vnmc.available.list":"VNMC is not available from provider list.",
+"message.vnmc.not.available.list":"VNMC is not available from provider list.",
+"message.volume.create.template.confirm":"Please confirm that you wish to create a template for this disk volume.  Creation of the template can range from several minutes to longer depending on the size of the volume.",
+"message.waiting.for.builtin.templates.to.load":"Waiting for builtin templates to load...",
+"message.you.must.have.at.least.one.physical.network":"You must have at least one physical network",
+"message.your.cloudstack.is.ready":"Your CloudStack is ready!",
+"message.zone.creation.complete.would.you.like.to.enable.this.zone":"Zone creation complete. Would you like to enable this zone?",
+"message.zone.no.network.selection":"The zone you selected does not have any choices for network selection.",
+"message.zone.step.1.desc":"Please select a network model for your zone.",
+"message.zone.step.2.desc":"Please enter the following info to add a new zone",
+"message.zone.step.3.desc":"Please enter the following info to add a new pod",
+"message.zoneWizard.enable.local.storage":"WARNING: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch:<br/><br/>1. If system VMs need to be launched in shared primary storage, shared primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local primary storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?",
+"messgae.validate.min":"Please enter a value greater than or equal to {0}.",
+"mode":"Mode",
+"network.rate":"Network Rate",
+"notification.reboot.instance":"Reboot instance",
+"notification.start.instance":"Start instance",
+"notification.stop.instance":"Stop instance",
+"side.by.side":"Side by Side",
+"state.Accepted":"Accepted",
+"state.Active":"Active",
+"state.Allocated":"Allocated",
+"state.Allocating":"Allocating",
+"state.BackedUp":"Backed Up",
+"state.BackingUp":"Backing Up",
+"state.Completed":"Completed",
+"state.Creating":"Creating",
+"state.Declined":"Declined",
+"state.Destroyed":"Destroyed",
+"state.Disabled":"Disabled",
+"state.Enabled":"Enabled",
+"state.Error":"Error",
+"state.Expunging":"Expunging",
+"state.Migrating":"Migrating",
+"state.Pending":"Pending",
+"state.Ready":"Ready",
+"state.Running":"Running",
+"state.Starting":"Starting",
+"state.Stopped":"Stopped",
+"state.Stopping":"Stopping",
+"state.Suspended":"Suspended",
+"state.detached":"Detached",
+"title.upload.volume":"Upload Volume",
+"ui.listView.filters.all":"All",
+"ui.listView.filters.mine":"Mine"};
diff --git a/ui/l10n/es.js b/ui/l10n/es.js
new file mode 100644
index 0000000..c311cd4
--- /dev/null
+++ b/ui/l10n/es.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "Código ICMP",
+    "ICMP.type": "Tipo ICMP",
+    "changed.item.properties": "Cambiadas las propiedades del elemento",
+    "confirm.enable.s3": "Por favor, complete la siguiente información para habilitar el soporte del Almacenamiento Secundario sobre S3",
+    "confirm.enable.swift": "Por favor, complete la siguiente información para habilitar el soporte para Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Error, no se puede cambiar la contraseña porque LDAP esta activado",
+    "error.could.not.enable.zone": "No se pudo habilitar la zona",
+    "error.installWizard.message": "Algo salio mal, debes ir para atrás y corregir los errores.",
+    "error.invalid.username.password": "Usuario o contraseña invalido",
+    "error.login": "Su nombre de usuario / contraseña no coinciden con nuestros registros.",
+    "error.menu.select": "Imposible ejecutar la acción, ya que no hay elementos seleccionados.",
+    "error.mgmt.server.inaccessible": "El Servidor de Gestión es inaccesible. Por favor, inténtelo de nuevo más tarde.",
+    "error.password.not.match": "Los campos de contraseña no coinciden",
+    "error.please.specify.physical.network.tags": "Las Ofertas de Red no están disponibles hasta que se especifique los tags para esta red física.",
+    "error.session.expired": "Su sesión ha caducado.",
+    "error.something.went.wrong.please.correct.the.following": "Algo salió mal, por favor corrija lo siguiente",
+    "error.unable.to.reach.management.server": "No es posible alcanzar al Servidor de Gestión",
+    "error.unresolved.internet.name": "El nombre de Internet no se puede resolver.",
+    "force.delete": "Forzar Borrado",
+    "force.delete.domain.warning": "Advertencia: Elegir esta opción, provocará la eliminación de todos los dominios hijos y todas las cuentas asociadas y sus recursos.",
+    "force.remove": "Forzar el retiro",
+    "force.remove.host.warning": "Advertencia: Elegir esta opción provocará que CloudStack detenga a la fuerza todas las máquinas virtuales antes de eliminar este host del clúster.",
+    "force.stop": "Forzar Parar",
+    "force.stop.instance.warning": "Advertencia: Forzar la dertención de esta instancia deberí­a ser su última opción. Puede conducir a la pérdida de datos, así­ como un comportamiento incoherente del estado de la máquina virtual.",
+    "hint.no.host.tags": "No se encontraron las etiquetas de servidor",
+    "hint.no.storage.tags": "No se encontraron las etiquetas de almacenamiento",
+    "hint.type.part.host.tag": "Introduzca parte de la etiqueta de servidor",
+    "hint.type.part.storage.tag": "Introduzca parte de la etiqueta de almacenamiento",
+    "image.directory": "Directorio de Imágenes",
+    "inline": "En línea",
+    "instances.actions.reboot.label": "Reiniciar Instancia",
+    "label.CIDR.list": "Lista CIDR",
+    "label.CIDR.of.destination.network": "CIDR de la red destino",
+    "label.CPU.cap": "CPU Cap",
+    "label.DHCP.server.type": "Tipo de servidor DHCP",
+    "label.DNS.domain.for.guest.networks": "Dominio DNS de las Redes Invitado",
+    "label.ESP.encryption": "Encriptación ESP",
+    "label.ESP.hash": "Hash ESP",
+    "label.ESP.lifetime": "Tiempo de vida ESP (en segundos)",
+    "label.ESP.policy": "Política ESP",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "Encriptación IKE",
+    "label.IKE.hash": "Hash IKE",
+    "label.IKE.lifetime": "Tiempo de vida IKE (segundos)",
+    "label.IKE.policy": "Política IKE",
+    "label.IPsec.preshared.key": "Clave precompartida IPsec",
+    "label.LB.isolation": "Aislamiento de LB",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Perfil de Log Palo Alto",
+    "label.PA.threat.profile": "Perfíl de Amenazas Palo Alto",
+    "label.PING.CIFS.password": "PING CIFS Contraseña",
+    "label.PING.CIFS.username": "PING CIFS nombre de usuario",
+    "label.PING.dir": "PING Directorio",
+    "label.PING.storage.IP": "PING almacenamiento IP",
+    "label.PreSetup": "PreConfiguración",
+    "label.Pxe.server.type": "Tipo de servidor PXE",
+    "label.SNMP.community": "Comunidad SNMP",
+    "label.SNMP.port": "Puerto SNMP",
+    "label.SR.name": "SR Nombre de etiqueta",
+    "label.SharedMountPoint": "PuntoMontajeCompartido",
+    "label.TFTP.dir": "Directorio de TFTP",
+    "label.VMFS.datastore": "Almacén de datos VMFS",
+    "label.VMs.in.tier": "MVs en el tier",
+    "label.VPC.limits": "Límites de VPC",
+    "label.VPC.router.details": "Detalles del router VPC",
+    "label.VPN.connection": "Conexión VPN",
+    "label.VPN.customer.gateway": "Gateway Usuario de VPN",
+    "label.VPN.gateway": "Gateway VPN",
+    "label.Xenserver.Tools.Version61plus": "Versión Original XS es 6.1+",
+    "label.about": "Acerca de",
+    "label.about.app": "Acerca de CloudStack",
+    "label.accept.project.invitation": "Aceptar invitación al proyecto",
+    "label.account": "Cuenta",
+    "label.account.and.security.group": "Cuenta, Grupo de seguridad",
+    "label.account.details": "Detalles de la Cuenta",
+    "label.account.id": "ID de la cuenta",
+    "label.account.lower": "cuenta",
+    "label.account.name": "Nombre de cuenta",
+    "label.account.specific": "específicas de la cuenta",
+    "label.account.type": "Tipo de Cuenta",
+    "label.accounts": "Cuentas",
+    "label.acl": "ACL",
+    "label.acl.id": "ID de ACL",
+    "label.acl.list.rules": "Lista de Reglas ACL",
+    "label.acl.name": "Nombre de ACL",
+    "label.acl.replaced": "ACL reemplazada",
+    "label.acquire.new.ip": "Adquirir nueva IP",
+    "label.acquire.new.secondary.ip": "Adquirir nueva IP secundaria",
+    "label.action": "Acción",
+    "label.action.attach.disk": "Conecte el disco",
+    "label.action.attach.disk.processing": "Conectando el disco....",
+    "label.action.attach.iso": "Conectar ISO",
+    "label.action.attach.iso.processing": "Conectando el ISO....",
+    "label.action.cancel.maintenance.mode": "Cancelar el modo de mantenimiento",
+    "label.action.cancel.maintenance.mode.processing": "Cancelando el modo de mantenimiento....",
+    "label.action.change.password": "Cambiar la contraseña",
+    "label.action.change.service": "Cambiar el Servicio",
+    "label.action.change.service.processing": "Cambiando el servicio....",
+    "label.action.configure.samlauthorization": "Configurar Autorización SAML SSO",
+    "label.action.copy.ISO": "Copiar ISO",
+    "label.action.copy.ISO.processing": "Copiando ISO....",
+    "label.action.copy.template": "Copiar Plantilla",
+    "label.action.copy.template.processing": "Copiando Plantilla....",
+    "label.action.create.template": "Crear plantilla",
+    "label.action.create.template.from.vm": "Crear plantilla de MV",
+    "label.action.create.template.from.volume": "Crear plantilla de Volumen",
+    "label.action.create.template.processing": "Creando Plantilla...",
+    "label.action.create.vm": "Crear MV",
+    "label.action.create.vm.processing": "Creando MV...",
+    "label.action.create.volume": "Crear volumen",
+    "label.action.create.volume.processing": "Creando Volumen ....",
+    "label.action.delete.IP.range": "Eliminar Rango IP",
+    "label.action.delete.IP.range.processing": "Eliminando Rango IP ....",
+    "label.action.delete.ISO": "Eliminar ISO",
+    "label.action.delete.ISO.processing": "Eliminando ISO...",
+    "label.action.delete.account": "Eliminar cuenta",
+    "label.action.delete.account.processing": "Eliminando cuenta ....",
+    "label.action.delete.cluster": "Borrar Clúster",
+    "label.action.delete.cluster.processing": "Borrando Clúster....",
+    "label.action.delete.disk.offering": "Borrar Oferta Disco",
+    "label.action.delete.disk.offering.processing": "Borrando Oferta Disco...",
+    "label.action.delete.domain": "Eliminar Dominio",
+    "label.action.delete.domain.processing": "Eliminando Dominio ....",
+    "label.action.delete.firewall": "Eliminar regla firewall",
+    "label.action.delete.firewall.processing": "Eliminado Firewall...",
+    "label.action.delete.ingress.rule": "Borrar Regla Entrada",
+    "label.action.delete.ingress.rule.processing": "Eliminando Regla Entrada...",
+    "label.action.delete.load.balancer": "Eliminar Balanceador de Carga",
+    "label.action.delete.load.balancer.processing": "Eliminando Balanceador de Carga...",
+    "label.action.delete.network": "Eliminar Red",
+    "label.action.delete.network.processing": "Eliminando Red ....",
+    "label.action.delete.nexusVswitch": "Eliminar Nexus 1000v",
+    "label.action.delete.nic": "Quitar NIC",
+    "label.action.delete.physical.network": "Eliminar red física",
+    "label.action.delete.pod": "Eliminar Pod",
+    "label.action.delete.pod.processing": "Eliminando Pod ....",
+    "label.action.delete.primary.storage": "Eliminar Almacenamiento Primario",
+    "label.action.delete.primary.storage.processing": "Eliminando Almacenamiento Primario....",
+    "label.action.delete.secondary.storage": "Eliminar Almacenamiento Secundario",
+    "label.action.delete.secondary.storage.processing": "Eliminando Almacenamiento Secundario...",
+    "label.action.delete.security.group": "Borrar Grupo de Seguridad",
+    "label.action.delete.security.group.processing": "Eliminando Grupo de Seguridad ....",
+    "label.action.delete.service.offering": "Eliminar Oferta de Servicio",
+    "label.action.delete.service.offering.processing": "Eliminando Oferta de Servicio ....",
+    "label.action.delete.snapshot": "Eliminar instantánea",
+    "label.action.delete.snapshot.processing": "Eliminando instantánea ....",
+    "label.action.delete.system.service.offering": "Eliminar Oferta de Servicio de Sistema",
+    "label.action.delete.template": "Eliminar plantilla",
+    "label.action.delete.template.processing": "Eliminando Plantilla ....",
+    "label.action.delete.user": "Eliminar usuario",
+    "label.action.delete.user.processing": "Eliminando Usuario ....",
+    "label.action.delete.volume": "Eliminar volumen",
+    "label.action.delete.volume.processing": "Eliminando Volumen ....",
+    "label.action.delete.zone": "Eliminar Zona",
+    "label.action.delete.zone.processing": "Eliminando Zona ....",
+    "label.action.destroy.instance": "Destruye Instancia",
+    "label.action.destroy.instance.processing": "Destruyendo Instancia ....",
+    "label.action.destroy.systemvm": "Destruye MV de Sistema",
+    "label.action.destroy.systemvm.processing": "Destruyendo MV de Sistema...",
+    "label.action.detach.disk": "Desconectar Disco",
+    "label.action.detach.disk.processing": "Desconectando Disco ....",
+    "label.action.detach.iso": "Desconectar ISO",
+    "label.action.detach.iso.processing": "Desconectando ISO ....",
+    "label.action.disable.account": "Desactivar cuenta",
+    "label.action.disable.account.processing": "Deshabilitando Cuenta ....",
+    "label.action.disable.cluster": "Deshabilitar Clúster",
+    "label.action.disable.cluster.processing": "Deshabilitando Clúster...",
+    "label.action.disable.nexusVswitch": "Deshabilitar Nexus 1000v",
+    "label.action.disable.physical.network": "Desactivar la red física",
+    "label.action.disable.pod": "Deshabilitar Pod",
+    "label.action.disable.pod.processing": "Deshabilitar Pod ....",
+    "label.action.disable.static.NAT": "Deshabilitar NAT estática",
+    "label.action.disable.static.NAT.processing": "Deshabilitando NAT estático ....",
+    "label.action.disable.user": "Deshabilitar Usuario",
+    "label.action.disable.user.processing": "Deshabilitando Usuario ....",
+    "label.action.disable.zone": "Deshabilitar Zona",
+    "label.action.disable.zone.processing": "Desactivando Zona ....",
+    "label.action.download.ISO": "Descargar ISO",
+    "label.action.download.template": "Descargar Plantilla",
+    "label.action.download.volume": "Descargar Volumen",
+    "label.action.download.volume.processing": "Descargando Volumen....",
+    "label.action.edit.ISO": "Editar ISO",
+    "label.action.edit.account": "Editar Cuenta",
+    "label.action.edit.disk.offering": "Editar Oferta Disco",
+    "label.action.edit.domain": "Editar Dominio",
+    "label.action.edit.global.setting": "Editar Configuración Global",
+    "label.action.edit.host": "Editar Anfitrión",
+    "label.action.edit.instance": "Editar Instancia",
+    "label.action.edit.network": "Editar Red",
+    "label.action.edit.network.offering": "Editar Oferta de Red",
+    "label.action.edit.network.processing": "Editando Red....",
+    "label.action.edit.pod": "Editar Pod",
+    "label.action.edit.primary.storage": "Editar Almacenamiento Primario",
+    "label.action.edit.resource.limits": "Editar límites de recursos",
+    "label.action.edit.service.offering": "Editar Oferta de Servicio",
+    "label.action.edit.template": "Editar Plantilla",
+    "label.action.edit.user": "Editar usuario",
+    "label.action.edit.zone": "Edición Zona",
+    "label.action.enable.account": "Habilitar cuenta",
+    "label.action.enable.account.processing": "Habilitando Cuenta...",
+    "label.action.enable.cluster": "Habilitar clúster",
+    "label.action.enable.cluster.processing": "Habilitando clúster ....",
+    "label.action.enable.maintenance.mode": "Habilitar Modo de Mantenimiento",
+    "label.action.enable.maintenance.mode.processing": "Habilitando Modo de Mantenimiento ....",
+    "label.action.enable.nexusVswitch": "Habilitar Nexus 1000v",
+    "label.action.enable.physical.network": "Habilitar red física",
+    "label.action.enable.pod": "Habilitar Pod",
+    "label.action.enable.pod.processing": "Habilitando Pod ....",
+    "label.action.enable.static.NAT": "Habilitar NAT estático",
+    "label.action.enable.static.NAT.processing": "Habilitando NAT estático ....",
+    "label.action.enable.user": "Activar Usuario",
+    "label.action.enable.user.processing": "Habilitando Usuario...",
+    "label.action.enable.zone": "Habilitar Zona",
+    "label.action.enable.zone.processing": "Habilitando Zona ....",
+    "label.action.expunge.instance": "Purgar Instancia",
+    "label.action.expunge.instance.processing": "Purgando Instancia....",
+    "label.action.force.reconnect": "Forzar Reconectar",
+    "label.action.force.reconnect.processing": "Reconectando ....",
+    "label.action.generate.keys": "Generar Claves",
+    "label.action.generate.keys.processing": "Generar Claves ....",
+    "label.action.list.nexusVswitch": "Listar Nexus 1000v",
+    "label.action.lock.account": "Bloquear Cuenta",
+    "label.action.lock.account.processing": "Bloqueando Cuenta ....",
+    "label.action.manage.cluster": "Gestionar Clúster",
+    "label.action.manage.cluster.processing": "Gestionando Clúster",
+    "label.action.migrate.instance": "Migrar Instancia",
+    "label.action.migrate.instance.processing": "Migrando Instancia ....",
+    "label.action.migrate.router": "Migrar Router",
+    "label.action.migrate.router.processing": "Migrando Router ....",
+    "label.action.migrate.systemvm": "Migrar MV de Sistema",
+    "label.action.migrate.systemvm.processing": "Migrando MV de Sistema...",
+    "label.action.reboot.instance": "Reiniciar Instancia",
+    "label.action.reboot.instance.processing": "Reiniciando Instancia ....",
+    "label.action.reboot.router": "Reiniciar router",
+    "label.action.reboot.router.processing": "Reiniciando Router ....",
+    "label.action.reboot.systemvm": "Reiniciar MV de Sistema",
+    "label.action.reboot.systemvm.processing": "Reinicando MV de Sistema...",
+    "label.action.recurring.snapshot": "Instantáneas Recurrentes",
+    "label.action.register.iso": "Registrar ISO",
+    "label.action.register.template": "Registrar Plantilla desde una URL",
+    "label.action.release.ip": "Liberar IP",
+    "label.action.release.ip.processing": "Liberando IP ....",
+    "label.action.remove.host": "Quitar host",
+    "label.action.remove.host.processing": "Quitando Host ....",
+    "label.action.reset.password": "Restablecer contraseña",
+    "label.action.reset.password.processing": "Restableciendo Contraseña ....",
+    "label.action.resize.volume": "Redimensionar Volúmen",
+    "label.action.resize.volume.processing": "Redimensionando Volúmen...",
+    "label.action.resource.limits": "Límites de Recursos",
+    "label.action.restore.instance": "Restaurar Instancia",
+    "label.action.restore.instance.processing": "Restaurando Instancia ....",
+    "label.action.revert.snapshot": "Revertir a Instantánea",
+    "label.action.revert.snapshot.processing": "Volviendo a Instantánea...",
+    "label.action.start.instance": "Iniciar Instancia",
+    "label.action.start.instance.processing": "Iniciando Instancia...",
+    "label.action.start.router": "Iniciar Router",
+    "label.action.start.router.processing": "Iniciando Router ....",
+    "label.action.start.systemvm": "Iniciar MV de Sistema",
+    "label.action.start.systemvm.processing": "Iniciando MV de Sistema...",
+    "label.action.stop.instance": "Parar Instancia",
+    "label.action.stop.instance.processing": "Parando Instancia ....",
+    "label.action.stop.router": "Parar Router",
+    "label.action.stop.router.processing": "Parando Router ....",
+    "label.action.stop.systemvm": "Parar MV de Sistema",
+    "label.action.stop.systemvm.processing": "Parando MV de Sistema",
+    "label.action.take.snapshot": "Tomar Instantánea",
+    "label.action.take.snapshot.processing": "Tomando Instantáneas ....",
+    "label.action.unmanage.cluster": "Parar gestión Clúster",
+    "label.action.unmanage.cluster.processing": "Parando gestión Clúster....",
+    "label.action.update.OS.preference": "Actualizar Preferencia SO",
+    "label.action.update.OS.preference.processing": "Actualizando Prefernecia SO...",
+    "label.action.update.resource.count": "Actualizar Cuenta de Recursos",
+    "label.action.update.resource.count.processing": "Actualizando Cuenta de Recursos...",
+    "label.action.vmsnapshot.create": "Tomar instantánea de MV",
+    "label.action.vmsnapshot.delete": "Borrar Instantanea de MV",
+    "label.action.vmsnapshot.revert": "Volver a Instantánea de MV",
+    "label.actions": "Acciones",
+    "label.activate.project": "Activar Proyecto",
+    "label.active.sessions": "Sesiones activas",
+    "label.add": "Agregar",
+    "label.add.ACL": "Agregar ACL",
+    "label.add.BigSwitchBcf.device": "Agregar Controlador BigSwitch BCF",
+    "label.add.BrocadeVcs.device": "Agregar Switch Brocade Vcs",
+    "label.add.F5.device": "Agregar dispositivo F5",
+    "label.add.LDAP.account": "Agregar Cuenta LDAP",
+    "label.add.NiciraNvp.device": "Agregar Controlador Nvp",
+    "label.add.NuageVsp.device": "Agregar Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Agregar el Controlador OpenDaylight",
+    "label.add.PA.device": "Agregar dispositivo Palo Alto",
+    "label.add.SRX.device": "Agregar dispositivo SRX",
+    "label.add.VM.to.tier": "Agregar MV al tier",
+    "label.add.VPN.gateway": "Agregar Gateway VPN",
+    "label.add.account": "Añadir Cuenta",
+    "label.add.account.to.project": "Agregar Cuenta al Proyecto",
+    "label.add.accounts": "Agregar Cuentas",
+    "label.add.accounts.to": "Agregar Cuentas a",
+    "label.add.acl.list": "Agregar Lista ACL",
+    "label.add.affinity.group": "Agregar un nuevo grupo de afinidad",
+    "label.add.baremetal.dhcp.device": "Agregar dispositivo DHCP Baremetal",
+    "label.add.baremetal.rack.configuration": "Agregar Configuración de Rack Baremetal",
+    "label.add.by": "Añadir por",
+    "label.add.by.cidr": "Añadir Por CIDR",
+    "label.add.by.group": "Añadir Por el Grupo de",
+    "label.add.ciscoASA1000v": "Agregar un Recurso CiscoASA1000v",
+    "label.add.cluster": "Añadir Clúster",
+    "label.add.compute.offering": "Agregar oferta de computo",
+    "label.add.direct.iprange": "Añadir Rango IP Directo",
+    "label.add.disk.offering": "Añadir Oferta Disco",
+    "label.add.domain": "Agregar Dominio",
+    "label.add.egress.rule": "Agregar Regla de Salida",
+    "label.add.firewall": "Agregar Regla de Firewall",
+    "label.add.globo.dns": "Agregar GloboDNS",
+    "label.add.gslb": "Agregar GSLB",
+    "label.add.guest.network": "Agregar red de invitado",
+    "label.add.host": "Agregar Anfitrión",
+    "label.add.ingress.rule": "Añadir Regla de Entrada",
+    "label.add.intermediate.certificate": "Agregar certificado intermedio",
+    "label.add.internal.lb": "Agregar LB Interno",
+    "label.add.ip.range": "Añadir Rango IP",
+    "label.add.isolated.guest.network": "Añadir Red Invitado Aislada",
+    "label.add.isolated.guest.network.with.sourcenat": "Agregar Red de Invitado Aislada con NatOrigen",
+    "label.add.isolated.network": "Agregar Red Aislada",
+    "label.add.ldap.account": "Agregar cuenta LDAP",
+    "label.add.list.name": "Nombre de la Lista ACL",
+    "label.add.load.balancer": "Añadir balanceador de carga",
+    "label.add.more": "Añadir más",
+    "label.add.netScaler.device": "Agregar dispositivo Netscaler",
+    "label.add.network": "Agregar Red",
+    "label.add.network.ACL": "Agregar ACL de Red",
+    "label.add.network.acl.list": "Agregar Lista ACL de Red",
+    "label.add.network.device": "Añadir dispositivo de red",
+    "label.add.network.offering": "Agregar Oferta de Red",
+    "label.add.new.F5": "Agregar un nuevo F5",
+    "label.add.new.NetScaler": "Agregar un nuevo NetScaler",
+    "label.add.new.PA": "Agregar un nuevo Palo Alto",
+    "label.add.new.SRX": "Agregar nuevo SRX",
+    "label.add.new.gateway": "Agregar nuevo gateway",
+    "label.add.new.tier": "Agregar un nuevo tier",
+    "label.add.nfs.secondary.staging.store": "Agregar un Almacenamiento Secundario Temporario NFS",
+    "label.add.physical.network": "Agregar red física",
+    "label.add.pod": "Añadir Pod",
+    "label.add.port.forwarding.rule": "Agregar regla encaminamiento puerto",
+    "label.add.portable.ip.range": "Agregar un Rango IP Portátil",
+    "label.add.primary.storage": "Añadir Almacenamiento primario",
+    "label.add.private.gateway": "Agregar Gateway Privado",
+    "label.add.region": "Agregar Región",
+    "label.add.resources": "Agregar Recursos",
+    "label.add.role": "Agregar Rol",
+    "label.add.route": "Agregar ruta",
+    "label.add.rule": "Agregar regla",
+    "label.add.secondary.storage": "Añadir almacenamiento secundario",
+    "label.add.security.group": "Agregar grupo de seguridad",
+    "label.add.service.offering": "Añadir Oferta de Servicio",
+    "label.add.static.nat.rule": "Agregar regla NAT estática",
+    "label.add.static.route": "Agregar ruta estática",
+    "label.add.system.service.offering": "Agregar Oferta de Servicio para MV de Sistema",
+    "label.add.template": "Añadir plantilla",
+    "label.add.to.group": "Agregar al grupo",
+    "label.add.ucs.manager": "Agregar UCS Manager",
+    "label.add.user": "Agregar Usuario",
+    "label.add.userdata": "DatosUsuario",
+    "label.add.vlan": "Añadir VLAN",
+    "label.add.vm": "Agregar MV",
+    "label.add.vms": "Agregar MVs",
+    "label.add.vms.to.lb": "Agregar MV(s) al balanceador de carga",
+    "label.add.vmware.datacenter": "Agregar Datacenter VMware",
+    "label.add.vnmc.device": "Agregar dispositivo VNMC",
+    "label.add.vnmc.provider": "Agregar proveedor VNMC",
+    "label.add.volume": "Añadir Volumen",
+    "label.add.vpc": "Agregar VPC",
+    "label.add.vpc.offering": "Agregar Ofertas de VPC",
+    "label.add.vpn.customer.gateway": "Agregar VPN para Acceso del Cliente",
+    "label.add.vpn.user": "Agregar usuario VPN",
+    "label.add.vxlan": "Añadir VXLAN",
+    "label.add.zone": "Añadir Zona",
+    "label.added.brocade.vcs.switch": "Agregado nuevo Switch VCS Brocade",
+    "label.added.network.offering": "Agregada Oferta de Red",
+    "label.added.new.bigswitch.bcf.controller": "Agregado nuevo Controlador BigSwitch BCF",
+    "label.added.nicira.nvp.controller": "Agregado nuevo Controlador Nicira NVP",
+    "label.addes.new.f5": "Agregar nuevo F5",
+    "label.adding": "Agregando",
+    "label.adding.cluster": "Agregando Clúster",
+    "label.adding.failed": "No se pudo agregar",
+    "label.adding.pod": "Agregar Pod",
+    "label.adding.processing": "Agregando ....",
+    "label.adding.succeeded": "Agregación correcta",
+    "label.adding.user": "Agregar Usuario",
+    "label.adding.zone": "Agregando Zona",
+    "label.additional.networks": "Redes adicionales",
+    "label.admin": "Admin",
+    "label.admin.accounts": "Cuentas Admin",
+    "label.advanced": "Avanzado",
+    "label.advanced.mode": "Modo avanzado",
+    "label.advanced.search": "Búsqueda Avanzada",
+    "label.affinity": "Afinidad",
+    "label.affinity.group": "Grupo de Afinidad",
+    "label.affinity.groups": "Grupos de Afinidad",
+    "label.agent.password": "Contraseña de Agente",
+    "label.agent.port": "Puerto del Agente",
+    "label.agent.state": "Estado del Agente",
+    "label.agent.username": "Nombre de usuario del agente",
+    "label.agree": "De-acuerdo",
+    "label.alert": "Alerta",
+    "label.alert.archived": "Alerta Archivada",
+    "label.alert.deleted": "Alerta Borrada",
+    "label.alert.details": "Detalles de la Alerta",
+    "label.algorithm": "Algoritmo",
+    "label.allocated": "Asignados",
+    "label.allocation.state": "Estado de la Asignación",
+    "label.allow": "Permitir",
+    "label.anti.affinity": "Anti-afinidad",
+    "label.anti.affinity.group": "Grupo de Anti-Afinidad",
+    "label.anti.affinity.groups": "Grupos de Anti-Afinidad",
+    "label.api.key": "clave de API",
+    "label.api.version": "Versión de API",
+    "label.app.name": "CloudStack",
+    "label.apply": "Aplicar",
+    "label.archive": "Archivar",
+    "label.archive.alerts": "Archivar alertas",
+    "label.archive.events": "Archivar eventos",
+    "label.assign": "Asignar",
+    "label.assign.instance.another": "Asignar Instancias a otra Cuenta",
+    "label.assign.to.load.balancer": "Asignando Instancia a Balanceador de Carga",
+    "label.assign.vms": "Asignar MVs",
+    "label.assigned.vms": "MVs Asignadas",
+    "label.associate.public.ip": "Asociar IP Pública",
+    "label.associated.network": "Red Asociada",
+    "label.associated.network.id": "ID de red asociados",
+    "label.associated.profile": "Perfil Asociado",
+    "label.attached.iso": "ISO Conectada",
+    "label.author.email": "e-mail del Autor",
+    "label.author.name": "Nombre del Autor",
+    "label.autoscale": "Escalado Automático",
+    "label.autoscale.configuration.wizard": "Asistente de configuración de Escalado Automático",
+    "label.availability": "Disponibilidad",
+    "label.availability.zone": "Disponibilidad de la zona",
+    "label.availabilityZone": "zonaDeDisponibilidad",
+    "label.available": "Disponible",
+    "label.available.public.ips": "Direcciones IP públicas disponibles",
+    "label.back": "Volver",
+    "label.bandwidth": "Ancho de banda",
+    "label.baremetal.dhcp.devices": "Dispositivo Baremetal para DHCP",
+    "label.baremetal.dhcp.provider": "Proveedor Baremetal de DHCP",
+    "label.baremetal.pxe.device": "Agregar Proveedor PXE para Baremetal",
+    "label.baremetal.pxe.devices": "Dispositivo Baremetal para PXE",
+    "label.baremetal.pxe.provider": "Proveedor PXE para Baremetal",
+    "label.baremetal.rack.configuration": "Configuración del Rack Baremetal",
+    "label.basic": "Básica",
+    "label.basic.mode": "Modo básico",
+    "label.bigswitch.bcf.details": "Detalles del Controlador BigSwitch BCF",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF con NAT habilitado",
+    "label.bigswitch.controller.address": "Dirección del Controlador BigSwitch BCF",
+    "label.blade.id": "ID de Hoja",
+    "label.blades": "Hojas",
+    "label.bootable": "Arrancable",
+    "label.broadcast.domain.range": "Rango del dominio de Broadcast",
+    "label.broadcast.domain.type": "Tipo de dominio de difusión",
+    "label.broadcast.uri": "URI de Broadcast",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "URI de Broadcast",
+    "label.brocade.vcs.address": "Dirección del Switch VCS",
+    "label.brocade.vcs.details": "Detalles del Switch VCS Brocade",
+    "label.by.account": "Por Cuenta",
+    "label.by.alert.type": "Por tipo de alerta",
+    "label.by.availability": "Por Disponibilidad",
+    "label.by.date.end": "Por fecha (finalización)",
+    "label.by.date.start": "Por fecha (inicio)",
+    "label.by.domain": "Por dominio",
+    "label.by.end.date": "Por Fecha de finalización",
+    "label.by.event.type": "Por tipo de evento",
+    "label.by.level": "por Nivel",
+    "label.by.pod": "Por Pod",
+    "label.by.role": "por Rol",
+    "label.by.start.date": "Por Fecha de inicio",
+    "label.by.state": "Por Estado",
+    "label.by.traffic.type": "Por tipo de tráfico",
+    "label.by.type": "Por tipo",
+    "label.by.type.id": "Por tipo de ID",
+    "label.by.zone": "Por Zona",
+    "label.bytes.received": "Bytes recibidos",
+    "label.bytes.sent": "Bytes enviados",
+    "label.cache.mode": "Tipo de cache de escritura",
+    "label.cancel": "Cancelar",
+    "label.capacity": "Capacidad",
+    "label.capacity.bytes": "Capacidad en Bytes",
+    "label.capacity.iops": "Capacidad en IOPS",
+    "label.certificate": "Certificado",
+    "label.change.affinity": "Cambiar Afinidad",
+    "label.change.ipaddress": "Cambiar la dirección IP de la NIC",
+    "label.change.service.offering": "Cambiar oferta de servicio",
+    "label.change.value": "Cambiar valor",
+    "label.character": "Carácter",
+    "label.chassis": "Chasis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR o Cuenta / Grupo de Seguridad",
+    "label.cidr.list": "CIDR Origen",
+    "label.cisco.nexus1000v.ip.address": "Dirección IP del Nexus 1000v",
+    "label.cisco.nexus1000v.password": "Contraseña del Nexus 1000v",
+    "label.cisco.nexus1000v.username": "Usuario del Nexus 1000v",
+    "label.ciscovnmc.resource.details": "Detalle de recursos CiscoVNMC",
+    "label.clean.up": "Limpiar",
+    "label.clear.list": "Limpiar lista",
+    "label.close": "Cerrar",
+    "label.cloud.console": "Consola de Gestión Cloud",
+    "label.cloud.managed": "Cloud.com Gestionado",
+    "label.cluster": "Clúster",
+    "label.cluster.name": "Nombre del Cluster",
+    "label.cluster.type": "Tipo de Clúster",
+    "label.clusters": "Clústers",
+    "label.clvm": "CLVM",
+    "label.code": "Código",
+    "label.community": "Comunidad",
+    "label.compute": "Computo",
+    "label.compute.and.storage": "Computo y Almacenamiento",
+    "label.compute.offering": "Oferta de Computo",
+    "label.compute.offerings": "Ofertas de Computo",
+    "label.configuration": "Configuración",
+    "label.configure": "Configurar",
+    "label.configure.ldap": "Configurar LDAP",
+    "label.configure.network.ACLs": "Configurar ACLs de la Red",
+    "label.configure.sticky.policy": "Configurar política Sticky",
+    "label.configure.vpc": "Configurar VPC",
+    "label.confirm.password": "Confirmar Contraseña",
+    "label.confirmation": "Confirmación",
+    "label.congratulations": "¡Felicidades!",
+    "label.conserve.mode": "Modo Conservativo",
+    "label.console.proxy": "Proxy de Consolas",
+    "label.console.proxy.vm": "MV Proxy de Consolas",
+    "label.continue": "Continuar",
+    "label.continue.basic.install": "Continuar con la instalación básica",
+    "label.copying.iso": "Copiando ISO",
+    "label.corrections.saved": "Correcciones guardadas",
+    "label.counter": "Contador",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU asignada",
+    "label.cpu.allocated.for.VMs": "CPU asignada para MVs",
+    "label.cpu.limits": "Límites de CPU",
+    "label.cpu.mhz": "CPU(MHz)",
+    "label.cpu.utilized": "CPU Utilizada",
+    "label.create.VPN.connection": "Crear Conexión VPN",
+    "label.create.nfs.secondary.staging.storage": "Crear almacén Temporal Secundario NFS",
+    "label.create.nfs.secondary.staging.store": "Crear almacén temporal secundario NFS",
+    "label.create.project": "Crear proyecto",
+    "label.create.ssh.key.pair": "Crear un par de claves SSH",
+    "label.create.template": "Crear Plantilla",
+    "label.created": "Creado",
+    "label.created.by.system": "Creado por el sistema",
+    "label.cross.zones": "Zonas transversales",
+    "label.custom": "A Medida",
+    "label.custom.disk.iops": "IOPS personalizadas",
+    "label.custom.disk.offering": "Oferta de Disco Personalizada",
+    "label.custom.disk.size": "Personal Disk Size",
+    "label.daily": "Diario",
+    "label.data.disk.offering": "Oferta de Disco de Datos",
+    "label.date": "Fecha",
+    "label.day": "Día",
+    "label.day.of.month": "Día del mes",
+    "label.day.of.week": "Día de la semana",
+    "label.dc.name": "Nombre del DC",
+    "label.dead.peer.detection": "Detección de Dead Peer",
+    "label.decline.invitation": "Declinar invitación",
+    "label.dedicate": "Dedicar",
+    "label.dedicate.cluster": "Dedicar el Cluster",
+    "label.dedicate.host": "Dedicar Anfitrión",
+    "label.dedicate.pod": "DedicarPod",
+    "label.dedicate.vlan.vni.range": "Dedicar Rango VLAN/VNI",
+    "label.dedicate.zone": "Dedicar Zona",
+    "label.dedicated": "Dedicado",
+    "label.dedicated.vlan.vni.ranges": "Rangos VLAN/VNI Dedicados",
+    "label.default": "Por Defecto",
+    "label.default.egress.policy": "Política de salida por defecto",
+    "label.default.use": "Uso por defecto",
+    "label.default.view": "Vista Por Defecto",
+    "label.delete": "Eliminar",
+    "label.delete.BigSwitchBcf": "Remover Controlador BigSwitch BCF",
+    "label.delete.BrocadeVcs": "Remover Switch Brocade Vcs",
+    "label.delete.F5": "Borrar F5",
+    "label.delete.NetScaler": "Borrar NetScaler",
+    "label.delete.NiciraNvp": "Quitar Controlado Nvp",
+    "label.delete.NuageVsp": "Quitar Nuage VSD",
+    "label.delete.OpenDaylight.device": "Borrar el Controlador OpenDaylight",
+    "label.delete.PA": "Borrar Palo Alto",
+    "label.delete.SRX": "Borrar SRX",
+    "label.delete.VPN.connection": "Borrar conexión VPN",
+    "label.delete.VPN.customer.gateway": "Borrar VPN para Acceso del Cliente",
+    "label.delete.VPN.gateway": "eliminar Gateway VPN",
+    "label.delete.acl.list": "Borrar Lista ACL",
+    "label.delete.affinity.group": "Borrar Grupo de Afinidad",
+    "label.delete.alerts": "Eliminar alertas",
+    "label.delete.baremetal.rack.configuration": "Borrar Configuración del Rack Baremetal",
+    "label.delete.ciscoASA1000v": "Borrar CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Borrar recurso CiscoVNMC",
+    "label.delete.events": "Eliminar sucesos",
+    "label.delete.gateway": "Borrar gateway",
+    "label.delete.internal.lb": "Borrar LB Interno",
+    "label.delete.portable.ip.range": "Borrar Rango IP Portátil",
+    "label.delete.profile": "Borrar Perfil",
+    "label.delete.project": "Eliminar proyecto",
+    "label.delete.role": "Borrar Rol",
+    "label.delete.secondary.staging.store": "Borrar Almacenamiento Secundario Temporal",
+    "label.delete.ucs.manager": "Borrar UCS Manager",
+    "label.delete.vpn.user": "Eliminar usuario VPN",
+    "label.deleting.failed": "No se pudo eliminar",
+    "label.deleting.processing": "Eliminando...",
+    "label.deny": "Denegar",
+    "label.deployment.planner": "Planificador de Despliegue",
+    "label.description": "Descripción",
+    "label.destination.physical.network.id": "ID de la red física destino",
+    "label.destination.zone": "Zona de destino",
+    "label.destroy": "Destruir",
+    "label.destroy.router": "Destruir router",
+    "label.destroy.vm.graceperiod": "Período de Gracia para Destruir MV",
+    "label.detaching.disk": "Extracción del disco",
+    "label.details": "Detalles",
+    "label.device.id": "ID de dispositivo",
+    "label.devices": "Dispositivos",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "IP Pública Conectada en forma Directa",
+    "label.direct.ips": "IPs de la Red Compartida",
+    "label.disable.autoscale": "Deshabilitar Escalado Automático",
+    "label.disable.host": "Deshabitar Anfitrión",
+    "label.disable.network.offering": "Deshabitar oferta de red",
+    "label.disable.provider": "Deshabilitar proveedor",
+    "label.disable.vnmc.provider": "Deshabitar proveedor VNMC",
+    "label.disable.vpc.offering": "Deshabitar oferta VPC",
+    "label.disable.vpn": "Deshabilitar VPN",
+    "label.disabled": "Deshabilitado",
+    "label.disabling.vpn.access": "Deshabilitando Acceso VPN",
+    "label.disassociate.profile.blade": "Desasociar Perfil del Blade",
+    "label.disbale.vnmc.device": "Deshabitar dispositivo VNMC",
+    "label.disk.allocated": "Disco asignado",
+    "label.disk.bytes.read.rate": "Tasa Lectura Disco (BPS)",
+    "label.disk.bytes.write.rate": "Tasa Escritura Disco (BPS)",
+    "label.disk.iops.max": "IOPS máximas",
+    "label.disk.iops.min": "IOPS mínimas",
+    "label.disk.iops.read.rate": "Tasa Lectura Disco (IOPS)",
+    "label.disk.iops.total": "Total de IOPS",
+    "label.disk.iops.write.rate": "Tasa Escritura de Disco (IOPS)",
+    "label.disk.offering": "Oferta de Disco",
+    "label.disk.offering.details": "Detalles de Oferta de Disco",
+    "label.disk.provisioningtype": "Tipo de Aprovisionamiento",
+    "label.disk.read.bytes": "Lectura Disco (Bytes)",
+    "label.disk.read.io": "Lectura Disco (IO)",
+    "label.disk.size": "tamaño de disco",
+    "label.disk.size.gb": "tamaño de disco (en GB)",
+    "label.disk.total": "disco Total",
+    "label.disk.volume": "volumen de disco",
+    "label.disk.write.bytes": "Escritura Disco (Bytes)",
+    "label.disk.write.io": "Escritura Disco (IO)",
+    "label.diskoffering": "Oferta de Disco",
+    "label.display.name": "Nombre a Mostrar",
+    "label.display.text": "Texto a mostrar",
+    "label.distributedrouter": "Router Distribuido",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Dominio",
+    "label.domain.admin": "Administrador de dominio",
+    "label.domain.details": "Detalles del Dominio",
+    "label.domain.id": "ID de dominio",
+    "label.domain.lower": "dominio",
+    "label.domain.name": "Nombre de dominio",
+    "label.domain.router": "Router de Dominio",
+    "label.domain.suffix": "Sufijo de dominio DNS (es decir, xyz.com)",
+    "label.done": "Listo",
+    "label.double.quotes.are.not.allowed": "No se permiten comillas dobles ",
+    "label.download.progress": "Progreso de la descarga",
+    "label.drag.new.position": "Arrastrar a una nueva ubicación",
+    "label.duration.in.sec": "Duración (en seg)",
+    "label.dynamically.scalable": "Escalable Dinamicamente",
+    "label.edit": "Editar",
+    "label.edit.acl.rule": "Editar regla ACL",
+    "label.edit.affinity.group": "Editar Grupo de Afinidad",
+    "label.edit.lb.rule": "Editar regla LB",
+    "label.edit.network.details": "Editar detalles de red",
+    "label.edit.project.details": "Editar detalles de proyecto",
+    "label.edit.region": "Editar Región",
+    "label.edit.role": "Editar Rol",
+    "label.edit.rule": "Editar regla",
+    "label.edit.secondary.ips": "Editar IPs secundarios",
+    "label.edit.tags": "Editar etiquetas",
+    "label.edit.traffic.type": "Edite el tipo de trafico",
+    "label.edit.vpc": "Editar VPC",
+    "label.egress.default.policy": "Política de salida por defecto",
+    "label.egress.rule": "Regla de salida",
+    "label.egress.rules": "Reglas de salida",
+    "label.elastic": "Elástico",
+    "label.elastic.IP": "IP Elástica",
+    "label.elastic.LB": "LB Elástico",
+    "label.email": "correo electrónico",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Habilitar Autoescalado",
+    "label.enable.host": "Habilitar Anfitrión",
+    "label.enable.network.offering": "Habilitar  oferta de red",
+    "label.enable.provider": "Habilitar proveedor",
+    "label.enable.s3": "Habilitar Almacenamiento Secundario sobre S3",
+    "label.enable.swift": "Habilitar Swift",
+    "label.enable.vnmc.device": "Habilitar dispositivo VNMC",
+    "label.enable.vnmc.provider": "Habilitar proveedor VNMC",
+    "label.enable.vpc.offering": "Habilitar oferta VPC",
+    "label.enable.vpn": "Habilitar acceso remoto VPN",
+    "label.enabling.vpn": "Habilitando VPN",
+    "label.enabling.vpn.access": "Habilitando Acceso VPN",
+    "label.end.IP": "IP Final",
+    "label.end.port": "Puerto final",
+    "label.end.reserved.system.IP": "Última IP de sistema Reservada",
+    "label.end.vlan": "VLAN Final",
+    "label.end.vxlan": "VXLAN Final",
+    "label.endpoint": "Endpoint",
+    "label.endpoint.or.operation": "Endpoint u Operación",
+    "label.enter.token": "Introduzca token",
+    "label.error": "Error",
+    "label.error.code": "Código de error",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "ESX / ESXi anfitrión",
+    "label.event": "Evento",
+    "label.event.archived": "Evento Archivado",
+    "label.event.deleted": "Evento Borrado",
+    "label.every": "Cada",
+    "label.example": "Ejemplo",
+    "label.expunge": "Purgar",
+    "label.external.link": "Enlace externo",
+    "label.extractable": "Descargable",
+    "label.extractable.lower": "Descargable",
+    "label.f5": "F5",
+    "label.f5.details": "Detalles F5",
+    "label.failed": "Error",
+    "label.featured": "Destacados",
+    "label.fetch.latest": "Obtener último",
+    "label.filterBy": "Filtrar por",
+    "label.fingerprint": "Huella Digital",
+    "label.firewall": "Firewall",
+    "label.first.name": "Nombre",
+    "label.firstname.lower": "nombre",
+    "label.format": "Formato",
+    "label.format.lower": "formato",
+    "label.friday": "Viernes",
+    "label.full": "Completo",
+    "label.full.path": "Path completo",
+    "label.gateway": "puerta de enlace",
+    "label.general.alerts": "Alertas Generales",
+    "label.generating.url": "Generando URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "Configuración de GloboDNS",
+    "label.gluster.volume": "Volúmen",
+    "label.go.step.2": "Ir al paso 2",
+    "label.go.step.3": "Ir al paso 3",
+    "label.go.step.4": "Ir al paso 4",
+    "label.go.step.5": "Ir al paso 5",
+    "label.gpu": "GPU",
+    "label.group": "Grupo",
+    "label.group.by.account": "Agrupar por cuenta",
+    "label.group.by.cluster": "Agrupar por clúster",
+    "label.group.by.pod": "Agrupar por pod",
+    "label.group.by.zone": "Agrupar por zona",
+    "label.group.optional": "Grupo (Opcional)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Balanceador de Carga asignado",
+    "label.gslb.assigned.lb.more": "Asignar más Balanceo de Carga",
+    "label.gslb.delete": "Borrar el GSLB",
+    "label.gslb.details": "Detalles del GSLB",
+    "label.gslb.domain.name": "Nombre de Dominio GSLB",
+    "label.gslb.lb.details": "Detalles balanceo de carga",
+    "label.gslb.lb.remove": "Quitar balanceo de carga de este GSLB",
+    "label.gslb.lb.rule": "Regla de balanceo de carga",
+    "label.gslb.service": "Servicio GSLB",
+    "label.gslb.service.private.ip": "IP Privada del Servicio GSLB",
+    "label.gslb.service.public.ip": "IP Pública del Servicio GSLB",
+    "label.gslb.servicetype": "Tipo de Servicio",
+    "label.guest": "Invitado",
+    "label.guest.cidr": "CIDR Invitado",
+    "label.guest.end.ip": "IP final de Invitado",
+    "label.guest.gateway": "Gateway de Invitado",
+    "label.guest.ip": "Dirección IP de Invitado",
+    "label.guest.ip.range": "Rango IP de Invitado",
+    "label.guest.netmask": "Máscara de red de Invitado",
+    "label.guest.network.details": "Detalles de la red de Invitado",
+    "label.guest.networks": "Redes de invitado",
+    "label.guest.start.ip": "IP inicial de Invitado",
+    "label.guest.traffic": "Tráfico de Invitado",
+    "label.guest.traffic.vswitch.name": "Nombre del  vSwitch para Tráfico Invitado",
+    "label.guest.traffic.vswitch.type": "Tipo de vSwitch para Tráfico Invitado",
+    "label.guest.type": "Tipo de Invitado",
+    "label.ha.enabled": "HA Activado",
+    "label.health.check": "Health Check",
+    "label.health.check.advanced.options": "Opciones Avanzadas:",
+    "label.health.check.configurations.options": "Opciones de Configuración:",
+    "label.health.check.interval.in.sec": "Intervalo de chequeo de salud (en seg)",
+    "label.health.check.message.desc": "Su balanceador de carga realizará de forma automática chequeos de salud en sus instancias cloudstack  y solo encaminará el tráfico a las instancias que los pasen.",
+    "label.health.check.wizard": "Wizard para chequeo de salud",
+    "label.healthy.threshold": "Barrera de Salud",
+    "label.help": "Ayuda",
+    "label.hide.ingress.rule": "Ocultar Regla Entrada",
+    "label.hints": "Sugerencias",
+    "label.home": "Inicio",
+    "label.host": "Anfitrión",
+    "label.host.MAC": "MAC del Anfitrión",
+    "label.host.alerts": "Anfitriones en Estado de Alerta",
+    "label.host.name": "nombre de host",
+    "label.host.tag": "Etiqueta del Anfitrión",
+    "label.host.tags": "Etiquetas de Anfitrión",
+    "label.hosts": "Anfitriones",
+    "label.hourly": "por hora",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "Etiqueta de tráfico HyperV",
+    "label.hypervisor": "Hypervisor",
+    "label.hypervisor.capabilities": "Capacidades del Hipervisor",
+    "label.hypervisor.snapshot.reserve": "Reserva de instantáneas de hipervisores",
+    "label.hypervisor.type": "Tipo Hypervisor",
+    "label.hypervisor.version": "Versión del Hipervisor",
+    "label.hypervisors": "Hipervisores",
+    "label.id": "ID",
+    "label.info": "Información",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Regla Entrada",
+    "label.initiated.by": "Iniciado por",
+    "label.inside.port.profile": "Dentro del Perfil de Puerto",
+    "label.installWizard.addClusterIntro.subtitle": "¿Qué es un cluster?",
+    "label.installWizard.addClusterIntro.title": "Agreguemos un clúster",
+    "label.installWizard.addHostIntro.subtitle": "¿Qué es un Anfitrión?",
+    "label.installWizard.addHostIntro.title": "Agreguemos un Anfitrión",
+    "label.installWizard.addPodIntro.subtitle": "¿Que es un Pod?",
+    "label.installWizard.addPodIntro.title": "Agreguemos un Pod",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "¿Qué es el almacenamiento primario?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Agreguemos almacenamiento primario",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Qué es almacenamiento secundario?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Agreguemos almacenamiento secundario",
+    "label.installWizard.addZone.title": "Agregar zona",
+    "label.installWizard.addZoneIntro.subtitle": "¿Qué es una zona?",
+    "label.installWizard.addZoneIntro.title": "Agreguemos una zona",
+    "label.installWizard.click.launch": "Click en el botón de lanzar.",
+    "label.installWizard.subtitle": "Esta guía te ayudará a configurar la instalación de CloudStack&#848",
+    "label.installWizard.title": "Hola y Bienvenido a CloudStack&#8482",
+    "label.instance": "Instancia",
+    "label.instance.limits": "Límites de Instancia ",
+    "label.instance.name": "Nombre de instancia",
+    "label.instance.port": "Puerto de Instancia",
+    "label.instance.scaled.up": "Instancia escalada a lo requerido en la oferta",
+    "label.instances": "Instancias",
+    "label.instanciate.template.associate.profile.blade": "Instanciar Plantilla y asociar al Perfil al Blade",
+    "label.intermediate.certificate": "Certificado intermedio {0}",
+    "label.internal.dns.1": "DNS interno una",
+    "label.internal.dns.2": "DNS interno 2",
+    "label.internal.lb": "LB interno",
+    "label.internal.lb.details": "Detalles del LB Interno",
+    "label.internal.name": "Nombre interno",
+    "label.internallbvm": "LbVmInterna",
+    "label.interval.type": "Tipo de intervalo",
+    "label.introduction.to.cloudstack": "Introducción a CloudStack&#8482",
+    "label.invalid.integer": "Entero no válido",
+    "label.invalid.number": "Número no válido",
+    "label.invitations": "Invitaciones",
+    "label.invite": "Invitar",
+    "label.invite.to": "Invitar a .",
+    "label.invited.accounts": "Cuentas de invitado",
+    "label.ip": "IP",
+    "label.ip.address": "Dirección IP",
+    "label.ip.allocations": "Asignaciones IP",
+    "label.ip.limits": "Límites IP pública",
+    "label.ip.or.fqdn": "IP o FQDN",
+    "label.ip.range": "Rango IP",
+    "label.ip.ranges": "Rangos IP",
+    "label.ipaddress": "Dirección IP",
+    "label.ips": "IP",
+    "label.ipv4.cidr": "CIDR IPv4",
+    "label.ipv4.dns1": "DNS1 IPv4 ",
+    "label.ipv4.dns2": "DNS2 IPv4",
+    "label.ipv4.end.ip": "IP Final IPv4",
+    "label.ipv4.gateway": "Puerta de enlace IPv4",
+    "label.ipv4.netmask": "Máscara IPv4",
+    "label.ipv4.start.ip": "IP Inicial IPv4",
+    "label.ipv6.CIDR": "CIDR IPv6",
+    "label.ipv6.address": "Dirección IP IPv6",
+    "label.ipv6.dns1": "DNS1 IPv6",
+    "label.ipv6.dns2": "DNS2 IPv6",
+    "label.ipv6.end.ip": "IP Final IPv6",
+    "label.ipv6.gateway": "Puerta de enlace IPv6",
+    "label.ipv6.start.ip": "IP Inicial IPv6",
+    "label.is.default": "Es por defecto",
+    "label.is.redundant.router": "redundante",
+    "label.is.shared": "es Compartido",
+    "label.is.system": "es Sistema",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO de arranque",
+    "label.isolated.networks": "Redes Aisladas",
+    "label.isolation.method": "Método de aislamiento",
+    "label.isolation.mode": "modo de aislamiento",
+    "label.isolation.uri": "URI de aislamiento",
+    "label.item.listing": "Listado de artículos",
+    "label.japanese.keyboard": "Teclado Japones",
+    "label.keep": "Mantener",
+    "label.keep.colon": "Conservar:",
+    "label.key": "Llave",
+    "label.keyboard.language": "Lenguaje del Teclado",
+    "label.keyboard.type": "Tipo de teclado",
+    "label.kvm.traffic.label": "Etiqueta de tráfico KVM",
+    "label.label": "Etiqueta",
+    "label.lang.arabic": "Árabe",
+    "label.lang.brportugese": "Portugues de Brasil",
+    "label.lang.catalan": "Catalán",
+    "label.lang.chinese": "Chino (simplificado)",
+    "label.lang.dutch": "Holandes",
+    "label.lang.english": "Inglés",
+    "label.lang.french": "Frances",
+    "label.lang.german": "Aleman",
+    "label.lang.hungarian": "Hungaro",
+    "label.lang.italian": "Italiano",
+    "label.lang.japanese": "japonés",
+    "label.lang.korean": "Coreano",
+    "label.lang.norwegian": "Noruego",
+    "label.lang.polish": "Polaco",
+    "label.lang.russian": "Ruso",
+    "label.lang.spanish": "Español",
+    "label.last.disconnected": "Última Desconexión",
+    "label.last.name": "Apellido",
+    "label.lastname.lower": "apellido",
+    "label.latest.events": "Últimos eventos",
+    "label.launch": "Lanzar",
+    "label.launch.vm": "Lanzar MV",
+    "label.launch.zone": "Lanzar zona",
+    "label.lb.algorithm.leastconn": "Menor cantidad de conexiones",
+    "label.lb.algorithm.roundrobin": "Round-robin",
+    "label.lb.algorithm.source": "Origen",
+    "label.ldap.configuration": "Configuración de LDAP",
+    "label.ldap.group.name": "Grupo LDAP",
+    "label.ldap.link.type": "Tipo",
+    "label.ldap.port": "Puerto de LDAP",
+    "label.level": "Nivel",
+    "label.link.domain.to.ldap": "Enlazar Dominio a LDAP",
+    "label.linklocal.ip": "Dirección IP de Enlace Local",
+    "label.load.balancer": "Balanceador de carga",
+    "label.load.balancer.type": "Tipo de Balanceador de Carga",
+    "label.load.balancing": "Balanceo de Carga",
+    "label.load.balancing.policies": "Políticas de balanceo de carga",
+    "label.loading": "Cargando",
+    "label.local": "local",
+    "label.local.file": "Archivo local",
+    "label.local.storage": "Almacenamiento Local",
+    "label.local.storage.enabled": "Habilitar almacenamiento local para MVs de Usuarios",
+    "label.local.storage.enabled.system.vms": "Habilitar almacenamiento local para MVs de Sistema",
+    "label.login": "Login",
+    "label.logout": "Cerrar sesión",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "Etiqueta de tráfico LXC",
+    "label.make.project.owner": "Convertir la cuenta en propietaria del proyecto",
+    "label.make.redundant": "Hacer redundante",
+    "label.manage": "Administrar",
+    "label.manage.resources": "Administrar los Recursos",
+    "label.managed": "Gestionado",
+    "label.management": "Gestión",
+    "label.management.ips": "Dirección IP de Gestión",
+    "label.management.server": "Servidor de Gestión",
+    "label.max.cpus": "CPU cores Máx.",
+    "label.max.guest.limit": "Límite Máx. Invitados",
+    "label.max.instances": "Instancias Máx.",
+    "label.max.memory": "Memoria Máx. (MiB)",
+    "label.max.networks": "Redes Máx.",
+    "label.max.primary.storage": "Primario Máx. (GiB)",
+    "label.max.public.ips": "IPs públicas Máx.",
+    "label.max.secondary.storage": "Secundario Máx. (GiB)",
+    "label.max.snapshots": "Instantáneas Máx.",
+    "label.max.templates": "Plantillas Máx.",
+    "label.max.vms": "MVs de usuario Máx.",
+    "label.max.volumes": "Volúmenes Max.",
+    "label.max.vpcs": "VPCs Máx.",
+    "label.maximum": "Máximo",
+    "label.may.continue": "Ahora puede continuar.",
+    "label.md5.checksum": "suma de verificación MD5",
+    "label.memory": "Memoria",
+    "label.memory.allocated": "Memoria Asignada",
+    "label.memory.limits": "Límites Memoria (MiB)",
+    "label.memory.mb": "Memoria(MB)",
+    "label.memory.total": "Total de memoria",
+    "label.memory.used": "memoria usada",
+    "label.menu.accounts": "Cuentas",
+    "label.menu.alerts": "Alertas",
+    "label.menu.all.accounts": "Todas las cuentas",
+    "label.menu.all.instances": "todas las instancias",
+    "label.menu.community.isos": "SOs Comunidad ",
+    "label.menu.community.templates": "Plantillas Comunidad",
+    "label.menu.configuration": "Configuración",
+    "label.menu.dashboard": "Panel de Control",
+    "label.menu.destroyed.instances": "Instancias Destruidas",
+    "label.menu.disk.offerings": "Ofertas de Disco",
+    "label.menu.domains": "Dominios",
+    "label.menu.events": "Eventos",
+    "label.menu.featured.isos": "ISOs destacadas",
+    "label.menu.featured.templates": "Plantillas Destacadas",
+    "label.menu.global.settings": "Configuración global",
+    "label.menu.infrastructure": "Infraestructura",
+    "label.menu.instances": "Instancias",
+    "label.menu.ipaddresses": "Direcciones IP",
+    "label.menu.isos": "ISOs",
+    "label.menu.my.accounts": "Mis cuentas",
+    "label.menu.my.instances": "Mis instancias",
+    "label.menu.my.isos": "Mis ISOs",
+    "label.menu.my.templates": "Mis plantillas",
+    "label.menu.network": "Red",
+    "label.menu.network.offerings": "Ofertas de Red",
+    "label.menu.physical.resources": "Recursos Físicos",
+    "label.menu.regions": "Regiones",
+    "label.menu.running.instances": "Instancias en Ejecución",
+    "label.menu.security.groups": "Grupos de seguridad",
+    "label.menu.service.offerings": "Ofertas de Servicios",
+    "label.menu.snapshots": "instantáneas",
+    "label.menu.sshkeypair": "Par de Claves SSH",
+    "label.menu.stopped.instances": "Instancias Paradas",
+    "label.menu.storage": "Almacenamiento",
+    "label.menu.system": "Sistema",
+    "label.menu.system.service.offerings": "Ofertas de Servicio de VM de Sistema",
+    "label.menu.system.vms": "MVs de Sistema",
+    "label.menu.templates": "Plantillas",
+    "label.menu.virtual.appliances": "Appliances virtuales",
+    "label.menu.virtual.resources": "Recursos Virtuales",
+    "label.menu.volumes": "Volúmenes",
+    "label.menu.vpc.offerings": "Ofertas de VPC",
+    "label.metrics": "Métricas",
+    "label.metrics.allocated": "Asignados",
+    "label.metrics.clusters": "Clústeres",
+    "label.metrics.cpu.allocated": "Asignación de CPU",
+    "label.metrics.cpu.max.dev": "Desviación",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "Uso de CPU",
+    "label.metrics.cpu.used.avg": "Usado",
+    "label.metrics.disk": "Disco",
+    "label.metrics.disk.allocated": "Asignados",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Lectura",
+    "label.metrics.disk.size": "Tamaño",
+    "label.metrics.disk.storagetype": "Tipo",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Sin asignar",
+    "label.metrics.disk.usage": "Uso del Disco",
+    "label.metrics.disk.used": "Usado",
+    "label.metrics.disk.write": "Escritura",
+    "label.metrics.hosts": "Anfitriones",
+    "label.metrics.memory.allocated": "Asignación de Memoria",
+    "label.metrics.memory.max.dev": "Desviación",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Uso de Memoria",
+    "label.metrics.memory.used.avg": "Usado",
+    "label.metrics.name": "Nombre",
+    "label.metrics.network.read": "Lectura",
+    "label.metrics.network.usage": "Uso de Red",
+    "label.metrics.network.write": "Escritura",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Estado de la Alimentación",
+    "label.metrics.property": "Propiedad",
+    "label.metrics.scope": "Alcance",
+    "label.metrics.state": "Estado",
+    "label.metrics.storagepool": "Pool de Almacenamiento",
+    "label.metrics.vm.name": "Nombre de la MV",
+    "label.migrate.instance.to": "Migrar instancia a",
+    "label.migrate.instance.to.host": "Migrar instancia a otro anfitrión.",
+    "label.migrate.instance.to.ps": "Migrar instancia a otro almacenamiento primario",
+    "label.migrate.lb.vm": "Migrar MV LB",
+    "label.migrate.router.to": "Migrar Router a",
+    "label.migrate.systemvm.to": "Migrar MV de Sistema a",
+    "label.migrate.to.host": "Migrar a anfitrión",
+    "label.migrate.to.storage": "Migrar a almacenamiento",
+    "label.migrate.volume": "Migrar Volumen",
+    "label.migrate.volume.to.primary.storage": "Migrar volumen a otro almacenamiento primario",
+    "label.min.instances": "Instancias Mínimas",
+    "label.min.past.the.hr": "minuto(s) después de la hora",
+    "label.minimum": "Mínimo",
+    "label.minute.past.hour": "minuto(s) después de la hora",
+    "label.minutes.past.hour": "minuto(s) después de la hora",
+    "label.mode": "modo",
+    "label.monday": "lunes",
+    "label.monthly": "mensual",
+    "label.more.templates": "Más Plantillas",
+    "label.move.down.row": "Mover abajo una fila",
+    "label.move.to.bottom": "Mover al final",
+    "label.move.to.top": "Mover al principio",
+    "label.move.up.row": "Mover una fila arriba",
+    "label.my.account": "Mi Cuenta",
+    "label.my.network": "Mi red",
+    "label.my.templates": "Mis plantillas",
+    "label.na": "N/A",
+    "label.name": "Nombre",
+    "label.name.lower": "Nombre",
+    "label.name.optional": "Nombre (Opcional)",
+    "label.nat.port.range": "Rango puertos NAT",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "máscara de red",
+    "label.netscaler.details": "Detalles del NetScaler",
+    "label.network": "Red",
+    "label.network.ACL": "ACL de Red",
+    "label.network.ACL.total": "ACL Total de la Red",
+    "label.network.ACLs": "ACLs de Red",
+    "label.network.addVM": "Agregar red a MV",
+    "label.network.cidr": "CIDR de Red",
+    "label.network.desc": "Desc de Red",
+    "label.network.details": "Detalles de la Red",
+    "label.network.device": "Dispositivos de red",
+    "label.network.device.type": "Tipo de dispositivos de red",
+    "label.network.domain": "Dominio de Red",
+    "label.network.domain.text": "Dominio de Red",
+    "label.network.id": "ID de red",
+    "label.network.label.display.for.blank.value": "Usar puerta de enlace por defecto",
+    "label.network.limits": "Límites de la Red",
+    "label.network.name": "Nombre de red",
+    "label.network.offering": "Oferta de Red",
+    "label.network.offering.details": "Detalles de la oferta de red",
+    "label.network.offering.display.text": "Texto a Mostrar en Oferta de Red",
+    "label.network.offering.id": "ID Oferta de Red",
+    "label.network.offering.name": "Nombre Oferta de Red",
+    "label.network.rate": "Tasa de Red (Mb/s)",
+    "label.network.rate.megabytes": "Tráfico de Red (MB/s)",
+    "label.network.read": "Lectura Red",
+    "label.network.service.providers": "Proveedores de Servicios de Red",
+    "label.network.type": "Tipo de red",
+    "label.network.write": "Escritura Red",
+    "label.networking.and.security": "Redes y Seguridad",
+    "label.networks": "Redes",
+    "label.new": "Nuevo",
+    "label.new.password": "Nueva contraseña",
+    "label.new.project": "Nuevo Proyecto",
+    "label.new.ssh.key.pair": "Nuevo Par de Claves SSH",
+    "label.new.vm": "Nueva MV",
+    "label.next": "Siguiente",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "servidor NFS",
+    "label.nfs.storage": "Almacenamiento NFS",
+    "label.nic.adapter.type": "Tipo de adaptador NIC",
+    "label.nicira.controller.address": "Dirección de Controladora",
+    "label.nicira.l2gatewayserviceuuid": "UUID del Servicio Gateway L2",
+    "label.nicira.l3gatewayserviceuuid": "UUID del Servicio Gateway L3",
+    "label.nicira.nvp.details": "Detalles del NVP Nicira",
+    "label.nicira.transportzoneuuid": "UUID de la Zona de Transporte",
+    "label.nics": "NIC",
+    "label.no": "No",
+    "label.no.actions": "No hay acciones disponibles",
+    "label.no.alerts": "No hay alertas recientes",
+    "label.no.data": "No hay información que mostrar",
+    "label.no.errors": "No hay errores recientes",
+    "label.no.grouping": "(sin agrupar)",
+    "label.no.isos": "No hay ISOs disponibles",
+    "label.no.items": "No hay artículos disponibles",
+    "label.no.security.groups": "No hay grupos de seguridad disponibles",
+    "label.no.thanks": "No, gracias",
+    "label.none": "Ninguno",
+    "label.not.found": "No se ha encontrado",
+    "label.notifications": "Notificaciones",
+    "label.num.cpu.cores": "# cores de CPU",
+    "label.number.of.clusters": "Número de Clusters",
+    "label.number.of.cpu.sockets": "Número de Sockets de CPU",
+    "label.number.of.hosts": "Número de Anfitriones",
+    "label.number.of.pods": "Número de Pods",
+    "label.number.of.system.vms": "Número de MV's de Sistema",
+    "label.number.of.virtual.routers": "Número de Routers Virtuales",
+    "label.number.of.zones": "Número de Zonas",
+    "label.numretries": "Número de reintentos",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "del mes",
+    "label.offer.ha": "Oferta HA",
+    "label.ok": "Aceptar",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "Controlador OpenDaylight",
+    "label.opendaylight.controllerdetail": "Detalles del Controlador OpenDaylight",
+    "label.opendaylight.controllers": "Controlador OpenDaylight",
+    "label.operator": "Operador",
+    "label.optional": "Opcional",
+    "label.order": "Ordenar",
+    "label.os.preference": "Preferencia S.O. ",
+    "label.os.type": "Tipo de Sistema Operativo",
+    "label.other": "Otro",
+    "label.outofbandmanagement": "Gestión Fuera de Banda",
+    "label.outofbandmanagement.action": "Acción",
+    "label.outofbandmanagement.action.issue": "Enviar Acción de Gestión de Alimentacíon Fuera-de-Banda",
+    "label.outofbandmanagement.address": "Dirección",
+    "label.outofbandmanagement.changepassword": "Cambiar la contraseña de la gestión Fuera-de-Banda",
+    "label.outofbandmanagement.configure": "Configurar Gestión Fuera-de-Banda",
+    "label.outofbandmanagement.disable": "Deshabilitar gestión Fuera-de-Banda",
+    "label.outofbandmanagement.driver": "Controlador",
+    "label.outofbandmanagement.enable": "Habilitar gestión Fuera-de-Banda",
+    "label.outofbandmanagement.password": "Contraseña",
+    "label.outofbandmanagement.port": "Puerto",
+    "label.outofbandmanagement.reenterpassword": "Reintroducir contraseña",
+    "label.outofbandmanagement.username": "Nombre de usuario",
+    "label.override.guest.traffic": "Sobreescribir Tráfico Invitado",
+    "label.override.public.traffic": "Sobreescribir Tráfico Público",
+    "label.ovm.traffic.label": "Etiqueta de tráfico OVM",
+    "label.ovm3.cluster": "Clustering Nativo",
+    "label.ovm3.pool": "Pooling Nativo",
+    "label.ovm3.traffic.label": "Etiqueta de tráfico OVM3",
+    "label.ovm3.vip": "IP del VIP Master",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Direcciones IP Públicas Propias",
+    "label.owner.account": "Propietario de la cuenta",
+    "label.owner.domain": "Dueño del Dominio",
+    "label.palo.alto.details": "Detalles de Palo Alto",
+    "label.parent.domain": "Dominio Padre",
+    "label.passive": "Pasivo",
+    "label.password": "Contraseña",
+    "label.password.enabled": "Habilitado por Contraseña",
+    "label.password.lower": "contraseña",
+    "label.password.reset.confirm": "La Contraseña se ha cambiado a",
+    "label.path": "Ruta",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Autorización",
+    "label.persistent": "Persistente",
+    "label.physical.network": "Red Física",
+    "label.physical.network.ID": "ID de red física",
+    "label.physical.network.name": "Nombre de red física",
+    "label.ping.path": "Camino de Ping",
+    "label.planner.mode": "Modo planificación",
+    "label.please.complete.the.following.fields": "Por favor complete los siguientes campos",
+    "label.please.specify.netscaler.info": "Por favor especifique la información del Netscaler",
+    "label.please.wait": "Por favor espere",
+    "label.plugin.details": "Detalles del Plugin",
+    "label.plugins": "Plugins",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod Dedicado",
+    "label.pod.name": "Nombre del Pod",
+    "label.pods": "Pod",
+    "label.polling.interval.sec": "Intervalo de Polling (en seg)",
+    "label.port": "Puerto",
+    "label.port.forwarding": "Encaminamiento de puerto",
+    "label.port.forwarding.policies": "Políticas de encaminamiento de puerto",
+    "label.port.range": "rango de puertos",
+    "label.portable.ip": "IP Portátil",
+    "label.portable.ip.range.details": "Detalles del Rango de IP portátil",
+    "label.portable.ip.ranges": "Rangos de IP portátiles",
+    "label.portable.ips": "IPs Portátiles",
+    "label.powerstate": "Estado de la Alimentación",
+    "label.prev": "Anterior",
+    "label.previous": "Previo",
+    "label.primary.allocated": "Almacenamiento Primario Asignado",
+    "label.primary.network": "Red Primaria",
+    "label.primary.storage": "Almacenamiento Primario",
+    "label.primary.storage.count": "Pools de Almacenamiento Primario",
+    "label.primary.storage.limits": "Límite del Almacenamiento Primario (GiB)",
+    "label.primary.used": "Almacenamiento Primario Usado",
+    "label.private.Gateway": "Gateway Privado",
+    "label.private.interface": "Interfaz privada",
+    "label.private.ip": "dirección IP privada",
+    "label.private.ip.range": "Rango IP privado",
+    "label.private.ips": "direcciones IP privadas",
+    "label.private.key": "Clave Privada",
+    "label.private.network": "Red privada",
+    "label.private.port": "Puerto privado",
+    "label.private.zone": "Zona Privada",
+    "label.privatekey": "Clave privada PKCS#8",
+    "label.profile": "Perfil",
+    "label.project": "Proyecto",
+    "label.project.dashboard": "Tablero del Proyecto",
+    "label.project.id": "ID proyecto",
+    "label.project.invite": "Invitar al proyecto",
+    "label.project.name": "Nombre del Proyecto",
+    "label.project.view": "Vista de Proyecto",
+    "label.projects": "Proyectos",
+    "label.protocol": "Protocolo",
+    "label.protocol.number": "Número de Protocolo",
+    "label.provider": "Proveedor",
+    "label.providers": "Proveedores",
+    "label.public": "Pública",
+    "label.public.interface": "interfaz pública",
+    "label.public.ip": "dirección IP pública",
+    "label.public.ips": "direcciones IP públicas",
+    "label.public.key": "Clave Pública",
+    "label.public.lb": "LB Público",
+    "label.public.load.balancer.provider": "Proveedor de Balanceador de Carga Público",
+    "label.public.network": "Red Pública",
+    "label.public.port": "Puerto Público",
+    "label.public.traffic": "Tráfico público",
+    "label.public.traffic.vswitch.name": "Nombre de vSwitch para Tráfico Público",
+    "label.public.traffic.vswitch.type": "Tipo de vSwitch para Tráfico Público",
+    "label.public.zone": "Zona Pública",
+    "label.purpose": "Propósito",
+    "label.qos.type": "Tipo de QoS",
+    "label.quickview": "Vista Rápida",
+    "label.quiesce.vm": "Colocar en estado consistente a la MV",
+    "label.quiet.time.sec": "Tiempo en Silencio (en seg)",
+    "label.quota.add.credits": "Agregar Créditos",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Configuración de cuota",
+    "label.quota.configure": "Configurar cuota",
+    "label.quota.credit": "Crédito",
+    "label.quota.credits": "Créditos",
+    "label.quota.date": "Fecha",
+    "label.quota.dates": "Modificar Fechas",
+    "label.quota.description": "Descripción de cuota",
+    "label.quota.email.body": "Cuerpo",
+    "label.quota.email.lastupdated": "Última Modificación",
+    "label.quota.email.subject": "Tema",
+    "label.quota.email.template": "Plantilla de E-Mail",
+    "label.quota.enddate": "Fecha de Fín",
+    "label.quota.endquota": "Cuota Final",
+    "label.quota.enforcequota": "Forzar cuota",
+    "label.quota.fullsummary": "Todas las cuentas",
+    "label.quota.minbalance": "Balance Mínimo",
+    "label.quota.remove": "Eliminar Cuota",
+    "label.quota.startdate": "Fecha de Inicio",
+    "label.quota.startquota": "Cuota Inicial",
+    "label.quota.state": "Estado",
+    "label.quota.statement": "Declaración",
+    "label.quota.statement.balance": "Balance de Cuota",
+    "label.quota.statement.bydates": "Declaración",
+    "label.quota.statement.quota": "Uso de la Cuota",
+    "label.quota.statement.tariff": "Tarifa de la Cuota",
+    "label.quota.summary": "Resumen",
+    "label.quota.tariff": "Tarifa",
+    "label.quota.tariff.edit": "Editar Tarifa",
+    "label.quota.tariff.effectivedate": "Fecha Efectiva",
+    "label.quota.tariff.value": "Valor Tarifario",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Uso Total",
+    "label.quota.type.name": "Tipo de Uso",
+    "label.quota.type.unit": "Unidad de Uso",
+    "label.quota.usage": "Consumo de Cuota",
+    "label.quota.value": "Valor de Cuota",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Usuario Cephx",
+    "label.rbd.monitor": "Monitor CEPH",
+    "label.rbd.pool": "Pool CEPH",
+    "label.rbd.secret": "Secreto Cephx",
+    "label.reboot": "Reiniciar",
+    "label.recent.errors": "Errores Recientes",
+    "label.recover.vm": "Recuperar la MV",
+    "label.redundant.router": "Router Redundante",
+    "label.redundant.router.capability": "Capacidades del router redundante",
+    "label.redundant.state": "Estado redundante",
+    "label.redundant.vpc": "VPC redundante",
+    "label.refresh": "Actualizar",
+    "label.refresh.blades": "Refrescar Blade",
+    "label.region": "Región",
+    "label.region.details": "Detalles de la Región",
+    "label.regionlevelvpc": "VPC a Nivel de Región",
+    "label.reinstall.vm": "Reinstalar la MV",
+    "label.related": "relacionados",
+    "label.release.account": "Liberar de la Cuenta",
+    "label.release.account.lowercase": "Liberar de la cuenta",
+    "label.release.dedicated.cluster": "Liberar Cluster Dedicado",
+    "label.release.dedicated.host": "Liberar Anfitrión Dedicado",
+    "label.release.dedicated.pod": "Liberar Pod Dedicado",
+    "label.release.dedicated.vlan.range": "Liberar rango VLAN dedicado",
+    "label.release.dedicated.zone": "Liberar Zona Dedicada",
+    "label.remind.later": "Recordar mas tarde",
+    "label.remove.ACL": "Eliminar ACL",
+    "label.remove.egress.rule": "Eliminar regla de salida",
+    "label.remove.from.load.balancer": "Eliminar Instancia del Balanceador de Carga",
+    "label.remove.ingress.rule": "Eliminar regla de entrada",
+    "label.remove.ip.range": "Eliminar Rango IP",
+    "label.remove.ldap": "Quitar LDAP",
+    "label.remove.network.offering": "Quitar Oferta de Red",
+    "label.remove.pf": "Quitar Regla de Encaminamiento de Puerto",
+    "label.remove.project.account": "Quitar Cuenta del Proyecto",
+    "label.remove.region": "Quitar Región",
+    "label.remove.rule": "Quitar Regla",
+    "label.remove.ssh.key.pair": "Quitar Par de Claves SSH",
+    "label.remove.static.nat.rule": "Quitar Regla NAT estática",
+    "label.remove.static.route": "Quitar ruta estática",
+    "label.remove.this.physical.network": "Quitar esta red física",
+    "label.remove.tier": "Quitar tier",
+    "label.remove.vm.from.lb": "Quitar M de la regla del balanceador de carga",
+    "label.remove.vm.load.balancer": "Quitar MV del balanceador de carga",
+    "label.remove.vmware.datacenter": "Quitar Datacenter VMware",
+    "label.remove.vpc": "Quitar VPC",
+    "label.remove.vpc.offering": "Quitar Oferta VPC",
+    "label.removing": "Quitando..",
+    "label.removing.user": "Quitando usuario",
+    "label.reource.id": "ID del Recurso",
+    "label.replace.acl": "Reemplazar ACL",
+    "label.replace.acl.list": "Reemplazar Lista ACL",
+    "label.required": "Requerido",
+    "label.requires.upgrade": "Requiere Actualización",
+    "label.reserved.ip.range": "Rango IP Reservado",
+    "label.reserved.system.gateway": "Gateway de sistema reservado",
+    "label.reserved.system.ip": "IP de Sistema Reservada",
+    "label.reserved.system.netmask": "Máscara de sistema Reservada",
+    "label.reset.VPN.connection": "Resetear la conexión VPN",
+    "label.reset.ssh.key.pair": "Resetear el Par de Claves SSH",
+    "label.reset.ssh.key.pair.on.vm": "Resetear el Par de Claves SSH en la MV",
+    "label.resetVM": "Resetear MV",
+    "label.resize.new.offering.id": "Nueva Oferta",
+    "label.resize.new.size": "Nuevo Tamaño (GB)",
+    "label.resize.shrink.ok": "Reducción OK",
+    "label.resource": "Recursos",
+    "label.resource.limit.exceeded": "Límite de Recursos Excedido",
+    "label.resource.limits": "Límites de Recursos",
+    "label.resource.name": "Nombre del Recurso",
+    "label.resource.state": "Estado del recurso",
+    "label.resources": "Recursos",
+    "label.response.timeout.in.sec": "Timeout de Respuesta (en seg)",
+    "label.restart.network": "Reiniciar red",
+    "label.restart.required": "Reinicio requerido",
+    "label.restart.vpc": "Reiniciar VPC",
+    "label.restore": "Restaurar",
+    "label.retry.interval": "Intervalo de Repetición",
+    "label.review": "Revisar",
+    "label.revoke.project.invite": "Cancelar Invitación",
+    "label.role": "Rol",
+    "label.roles": "Roles",
+    "label.roletype": "Tipo de Rol",
+    "label.root.certificate": "Certificado Raíz",
+    "label.root.disk.controller": "Controladora de disco Root",
+    "label.root.disk.offering": "Oferta de Disco Root",
+    "label.root.disk.size": "Tamaño del disco Root (GB)",
+    "label.router.vm.scaled.up": "MV Router Escalada",
+    "label.routing": "Enrutamiento",
+    "label.routing.host": "Servidor de Routeo",
+    "label.rule": "Regla",
+    "label.rule.number": "Número de Regla",
+    "label.rules": "Reglas",
+    "label.running.vms": "MVs corriendo",
+    "label.s3.access_key": "Clave de Acceso",
+    "label.s3.bucket": "Bucket",
+    "label.s3.connection_timeout": "Timeout Conexión",
+    "label.s3.endpoint": "Endpoint",
+    "label.s3.max_error_retry": "Max Error Reintento ",
+    "label.s3.nfs.path": "Ruta NFS S3",
+    "label.s3.nfs.server": "Servidor NFS S3",
+    "label.s3.secret_key": "clave secreta",
+    "label.s3.socket_timeout": "Timeout Socket",
+    "label.s3.use_https": "Use HTTPS",
+    "label.saml.enable": "Autorizar SAML SSO",
+    "label.saml.entity": "Proveedor de Identidad",
+    "label.saturday": "sábado",
+    "label.save": "Guardar",
+    "label.save.and.continue": "Guardar y continuar",
+    "label.save.changes": "Grabar cambios",
+    "label.saving.processing": "Guardando ....",
+    "label.scale.up.policy": "POLITICA DE ESCALADO",
+    "label.scaledown.policy": "Política de Reducción",
+    "label.scaleup.policy": "Política de Escalado",
+    "label.scope": "Alcance",
+    "label.search": "Buscar",
+    "label.secondary.ips": "IPs secundarias",
+    "label.secondary.isolated.vlan.id": "ID de VLAN Aislada Secundaria",
+    "label.secondary.staging.store": "Almacenamiento Secundario Temporal",
+    "label.secondary.staging.store.details": "Detalles del Almacenamiento Secundario Temporal",
+    "label.secondary.storage": "Almacenamiento Secundario",
+    "label.secondary.storage.count": "Pools del Almacenamiento Secundario",
+    "label.secondary.storage.details": "Detalles del Almacenamiento Secundario",
+    "label.secondary.storage.limits": "Límite del Almacenamiento Secundario (GiB)",
+    "label.secondary.storage.vm": "MV de almacenamiento secundario",
+    "label.secondary.used": "Almacenamiento Secundario Utilizado",
+    "label.secret.key": "Clave Secreta",
+    "label.security.group": "Grupo de Seguridad",
+    "label.security.group.name": "Nombre de grupo de seguridad",
+    "label.security.groups": "Grupos de Seguridad",
+    "label.security.groups.enabled": "Grupos de Seguridad Habilitados",
+    "label.select": "Seleccione",
+    "label.select-view": "Seleccione vista",
+    "label.select.a.template": "Seleccione Plantilla",
+    "label.select.a.zone": "Seleccione una zona.",
+    "label.select.instance": "Seleccione instancia",
+    "label.select.instance.to.attach.volume.to": "Elija la instancia para conectar el volumen",
+    "label.select.iso.or.template": "Seleccione una ISO o plantilla",
+    "label.select.offering": "Elija Oferta",
+    "label.select.project": "Elegir Proyecto",
+    "label.select.region": "Elegir Región",
+    "label.select.template": "Elegir Plantilla",
+    "label.select.tier": "Elija Tier",
+    "label.select.vm.for.static.nat": "Seleccione MV para NAT estático",
+    "label.sent": "Enviados",
+    "label.server": "Servidor",
+    "label.service.capabilities": "Capacidades del Servicio",
+    "label.service.offering": "Oferta de Servicio",
+    "label.service.offering.details": "Detalles de la oferta de servicio",
+    "label.service.state": "Estado del servicio",
+    "label.services": "Servicios",
+    "label.session.expired": "Session Caducada",
+    "label.set.default.NIC": "Definir NIC por defecto",
+    "label.set.up.zone.type": "Definir tipo de zona",
+    "label.settings": "Configuración",
+    "label.setup": "Configuración",
+    "label.setup.network": "Configurar Red",
+    "label.setup.zone": "Configurar Zona",
+    "label.shared": "Compartidas",
+    "label.show.advanced.settings": "Mostrar configuración avanzada",
+    "label.show.ingress.rule": "Mostrar Regla Entrada",
+    "label.shutdown.provider": "Apagar proveedor",
+    "label.simplified.chinese.keyboard": "Teclado Chino Simplificado",
+    "label.site.to.site.VPN": "VPN Site-to-site",
+    "label.size": "Tamaño",
+    "label.skip.guide": "He utilizado CloudStack anteriormente, saltar esta guía",
+    "label.smb.domain": "Dominio SMB",
+    "label.smb.password": "Contraseña SMB",
+    "label.smb.username": "Nombre de usuario SMB",
+    "label.snapshot": "Instantánea",
+    "label.snapshot.limits": "Límites Instantánea",
+    "label.snapshot.name": "Nombre Instantánea",
+    "label.snapshot.s": "Instantáneas",
+    "label.snapshot.schedule": "Configurar Instantáneas Recurrentes",
+    "label.snapshots": "Instantáneas",
+    "label.sockets": "Sockets",
+    "label.source.ip.address": "Dirección IP Origen",
+    "label.source.nat": "NAT Orígen",
+    "label.source.nat.supported": "SourceNAT Soportado",
+    "label.source.port": "Puerto Origen",
+    "label.specify.IP.ranges": "Especificar rangos IP",
+    "label.specify.vlan": "Especifique VLAN",
+    "label.specify.vxlan": "Especifique VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "Detalles de SRX",
+    "label.ssh.key.pair": "Par de Claves SSH",
+    "label.ssh.key.pair.details": "Detalles del Par de Claves SSH",
+    "label.ssh.key.pairs": "Par de Claves SSH",
+    "label.standard.us.keyboard": "Teclado estándar (US)",
+    "label.start.IP": "IP inicial",
+    "label.start.lb.vm": "Arrancar MV LB",
+    "label.start.port": "Puerto inicial",
+    "label.start.reserved.system.IP": "IP inicial reservada para el sistema",
+    "label.start.vlan": "VLAN Inicial",
+    "label.start.vxlan": "VXLAN inicial",
+    "label.state": "Estado",
+    "label.static.nat": "NAT estática",
+    "label.static.nat.enabled": "NAT estática habilitada",
+    "label.static.nat.to": "NAT estático para",
+    "label.static.nat.vm.details": "Detalles del NAT estático de la MV",
+    "label.static.routes": "Rutas Estáticas",
+    "label.statistics": "Estadísticas",
+    "label.status": "Estado",
+    "label.step.1": "Paso 1",
+    "label.step.1.title": "Paso 1: <strong> Seleccione una plantilla </strong>",
+    "label.step.2": "Paso 2",
+    "label.step.2.title": "Paso 2: <strong> Oferta de Servicio </strong>",
+    "label.step.3": "Paso 3",
+    "label.step.3.title": "Paso 3: <strong id=\"step3_label\"> Seleccione una Oferta de Disco </strong>",
+    "label.step.4": "Paso 4",
+    "label.step.4.title": "Paso 4: <strong> Red </strong>",
+    "label.step.5": "Paso 5",
+    "label.step.5.title": "Paso 5: Revisión <strong> </strong>",
+    "label.stickiness": "Persistencia",
+    "label.stickiness.method": "Método de persistencia",
+    "label.sticky.cookie-name": "Nombre de Cookie",
+    "label.sticky.domain": "Dominio",
+    "label.sticky.expire": "Expira",
+    "label.sticky.holdtime": "Tiempo de Retención",
+    "label.sticky.indirect": "Indirecto",
+    "label.sticky.length": "Longitud",
+    "label.sticky.mode": "Modo",
+    "label.sticky.name": "Nombre Pegajoso",
+    "label.sticky.nocache": "No Cache",
+    "label.sticky.postonly": "Solo Post",
+    "label.sticky.prefix": "Prefijo",
+    "label.sticky.request-learn": "Solicitar aprendizaje",
+    "label.sticky.tablesize": "Tamaño de tabla",
+    "label.stop": "Detener",
+    "label.stop.lb.vm": "Parar LB MV",
+    "label.stopped.vms": "MVs detenidas",
+    "label.storage": "Almacenamiento",
+    "label.storage.pool": "Pool de Almacenamiento",
+    "label.storage.tags": "Etiquetas de almacenamiento",
+    "label.storage.traffic": "Tráfico de Almacenamiento",
+    "label.storage.type": "Tipo de almacenamiento",
+    "label.subdomain.access": "Acceso al Subdominio",
+    "label.submit": "Enviar",
+    "label.submitted.by": "[Enviado por: <span id=\"submitted_by\"> </span>]",
+    "label.succeeded": "Resultó con éxito",
+    "label.sunday": "Domingo",
+    "label.super.cidr.for.guest.networks": "Super CIDR para Redes Invitado",
+    "label.supported.services": "Servicios Soportados",
+    "label.supported.source.NAT.type": "Tipo de Source NAT soportado",
+    "label.supportsstrechedl2subnet": "Soporta Subred Streched L2",
+    "label.supportspublicaccess": "Soporta Acceso Público",
+    "label.suspend.project": "Suspender Proyecto",
+    "label.switch.type": "Cambiar el tipo",
+    "label.system.capacity": "Capacidad del Sistema",
+    "label.system.offering": "Oferta de Sistema",
+    "label.system.offering.for.router": "Oferta de Sistema para Router",
+    "label.system.service.offering": "Oferta de Servicio de Sistema",
+    "label.system.service.offering.details": "Detalles de la oferta de servicio del sistema",
+    "label.system.vm": "MV de Sistema",
+    "label.system.vm.details": "Detalles de MV de Sistema",
+    "label.system.vm.scaled.up": "MV de Sistema Escaladas",
+    "label.system.vm.type": "Tipo de MV de sistema",
+    "label.system.vms": "MVs de Sistema",
+    "label.system.wide.capacity": "Capacidad total del sistema",
+    "label.tag.key": "Clave de Etiqueta",
+    "label.tag.value": "Valor de Etiqueta",
+    "label.tagged": "Etiquetada",
+    "label.tags": "Etiquetas",
+    "label.target.iqn": "IQN Objetivo",
+    "label.task.completed": "Tarea finalizada",
+    "label.template": "Plantilla",
+    "label.template.limits": "Límites Plantilla",
+    "label.tftp.root.directory": "Directorio raíz de TFTP",
+    "label.theme.default": "Tema Por Defecto",
+    "label.theme.grey": "Personalizado - Gris",
+    "label.theme.lightblue": "Personalizado - Azul",
+    "label.threshold": "Umbral",
+    "label.thursday": "Jueves",
+    "label.tier": "Tier",
+    "label.tier.details": "Detalles del Tier",
+    "label.time": "Tiempo",
+    "label.time.colon": "Tiempo:",
+    "label.time.zone": "Zona horaria",
+    "label.timeout": "Tiempo de espera",
+    "label.timeout.in.second ": " Timeout (segundos)",
+    "label.timezone": "Zona horaria",
+    "label.timezone.colon": "Zona Horaria:",
+    "label.token": "Token",
+    "label.total.CPU": "Total CPU",
+    "label.total.cpu": "Total CPU",
+    "label.total.hosts": "Total de Hosts",
+    "label.total.memory": "Memoria Total",
+    "label.total.of.ip": "Direcciones IP totales",
+    "label.total.of.vm": "MVs totales",
+    "label.total.storage": "Almacenamiento Total",
+    "label.total.virtual.routers": "Virtual Routers Totales",
+    "label.total.virtual.routers.upgrade": "Virtual Routers totales que requieren actualización",
+    "label.total.vms": "Total MVs",
+    "label.traffic.label": "Etiqueta de trafico",
+    "label.traffic.type": "Tipo de Tráfico",
+    "label.traffic.types": "Tipos de Tráfico",
+    "label.tuesday": "Martes",
+    "label.type": "Tipo",
+    "label.type.id": "ID de Tipo",
+    "label.type.lower": "tipo",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "Teclado UK",
+    "label.unavailable": "No disponible",
+    "label.unhealthy.threshold": "Fuera del Umbral Saludable",
+    "label.unlimited": "Ilimitado",
+    "label.untagged": "Sin etiquetar",
+    "label.update.project.resources": "Actualizar recursos del proyecto",
+    "label.update.ssl": " Certificado SSL",
+    "label.update.ssl.cert": " Certificado SSL",
+    "label.updating": "Actualizando",
+    "label.upgrade.required": "Requerida Actualización",
+    "label.upgrade.router.newer.template": "Actualizar Router para usar una Plantilla más Nueva",
+    "label.upload": "Subir",
+    "label.upload.from.local": "Subir desde Local",
+    "label.upload.template.from.local": "Subir Plantilla desde Local",
+    "label.upload.volume": "Subir volumen",
+    "label.upload.volume.from.local": "Subir un Volumen desde Local",
+    "label.upload.volume.from.url": "Subir un Volumen desde URL",
+    "label.url": "URL",
+    "label.usage.interface": "Interfaz de uso",
+    "label.usage.sanity.result": "Resultado del Uso Sanitizado",
+    "label.usage.server": "Servidor de Uso",
+    "label.usage.type": "Tipo de Uso",
+    "label.usage.unit": "Unidad",
+    "label.use.vm.ip": "Usar IP MV:",
+    "label.use.vm.ips": "Usar las IP de la MV",
+    "label.used": "Usado",
+    "label.user": "Usuario",
+    "label.user.data": "Datos de Usuario",
+    "label.user.details": "Detalles del Usuario",
+    "label.user.vm": "MV de Usuario",
+    "label.username": "Nombre de usuario",
+    "label.username.lower": "nombre de usuario",
+    "label.users": "Usuarios",
+    "label.vSwitch.type": "Tipo de vSwitch",
+    "label.value": "Valor",
+    "label.vcdcname": "nombre DC vCenter",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "Clúster vCenter ",
+    "label.vcenter.datacenter": "Centros de datos vCenter ",
+    "label.vcenter.datastore": "Almacén de datos vCenter",
+    "label.vcenter.host": "Anfitrión vCenter",
+    "label.vcenter.password": "Contraseña vCenter",
+    "label.vcenter.username": "Nombre de usuario vCenter",
+    "label.vcipaddress": "Dirección IP de vCenter",
+    "label.version": "Versión",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Resolución Máx",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs por GPU",
+    "label.vgpu.remaining.capacity": "Capacidad remanente",
+    "label.vgpu.type": "Tipo de vGPU",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Ver",
+    "label.view.all": "Ver todo",
+    "label.view.console": "Ver consola",
+    "label.view.more": "Ver más",
+    "label.view.secondary.ips": "Ver las IP secundarias",
+    "label.viewing": "Mirando",
+    "label.virtual.appliance": "Appliance Virtual",
+    "label.virtual.appliance.details": "Detalles del appliance Virtual",
+    "label.virtual.appliances": "Appliances Virtuales",
+    "label.virtual.machine": "Máquina virtual",
+    "label.virtual.machines": "Maquinas virtuales",
+    "label.virtual.network": "Red Virtual",
+    "label.virtual.networking": "Red Virtual",
+    "label.virtual.router": "Router Virtual",
+    "label.virtual.routers": "Routers Virtuales",
+    "label.virtual.routers.group.account": "Routers Virtuales agrupados por cuenta",
+    "label.virtual.routers.group.cluster": "Routers Virtuales agrupados por clúster",
+    "label.virtual.routers.group.pod": "Routers Virtuales agrupados por pod",
+    "label.virtual.routers.group.zone": "Router Virtuales agrupados por zona",
+    "label.vlan": "VLAN",
+    "label.vlan.id": "ID de VLAN/VNI",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "Rango VLAN/VNI",
+    "label.vlan.range.details": "Detalle de  Rango VLAN",
+    "label.vlan.ranges": "Rango(s) de VLAN",
+    "label.vlan.vni.range": "Rango VLAN/VNI",
+    "label.vlan.vni.ranges": "Rango(s) VLAN/VNI",
+    "label.vm.add": "Añadir Instancia",
+    "label.vm.destroy": "Destroy",
+    "label.vm.display.name": "Nombra a mostrar de la MV",
+    "label.vm.id": "ID de MV",
+    "label.vm.ip": "Dirección IP de la MV",
+    "label.vm.name": "Nombre MV",
+    "label.vm.password": "La Contraseña de la MV es",
+    "label.vm.reboot": "Reiniciar",
+    "label.vm.start": "Inicio",
+    "label.vm.state": "Estado de la MV",
+    "label.vm.stop": "Detener",
+    "label.vmfs": "VMFS",
+    "label.vms": "MVs",
+    "label.vmsnapshot": "Instantáneas de MV",
+    "label.vmsnapshot.current": "esLaActual",
+    "label.vmsnapshot.memory": "Instantánea de la memoria",
+    "label.vmsnapshot.parentname": "Padre",
+    "label.vmsnapshot.type": "Tipo",
+    "label.vmware.datacenter.id": "ID datacenter VMware",
+    "label.vmware.datacenter.name": "Nombre del datacenter VMware",
+    "label.vmware.datacenter.vcenter": "vcenter del datacenter VMware",
+    "label.vmware.traffic.label": "Etiqueta de tráfico VMware",
+    "label.vnet": "VLAN",
+    "label.vnet.id": "ID de VLAN",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "Dispositivo VNMC",
+    "label.volatile": "Volátil",
+    "label.volgroup": "Group de Volúmen",
+    "label.volume": "Volúmen",
+    "label.volume.details": "Detalles del Volumen",
+    "label.volume.limits": "Límites Volúmen",
+    "label.volume.migrated": "Volumen migrado",
+    "label.volume.name": "Nombre de Volumen",
+    "label.volumes": "Volúmenes",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Router Distribuido VPC",
+    "label.vpc.id": "ID VPC",
+    "label.vpc.offering": "Oferta de VPC",
+    "label.vpc.offering.details": "Detalles de las ofertas de VPC",
+    "label.vpc.router.details": "Detalles del Router VPC",
+    "label.vpc.supportsregionlevelvpc": "Soporte de VPC a Nivel de Región",
+    "label.vpc.virtual.router": "Router Virtual VPC",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "Gateway VPN del Cliente",
+    "label.vpn.force.encapsulation": "Forzar la encapsulación UDP de los paquetes ESP",
+    "label.vsmctrlvlanid": "VLAN ID de Control",
+    "label.vsmpktvlanid": "Packet VLAN ID",
+    "label.vsmstoragevlanid": "VLAN ID del Almacenamiento",
+    "label.vsphere.managed": "vSphere Gestionado",
+    "label.vswitch.name": "Nombre del vSwitch",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "ID de VXLAN",
+    "label.vxlan.range": "Rango VXLAN",
+    "label.waiting": "Esperando",
+    "label.warn": "Advertir",
+    "label.warn.upper": "WARN",
+    "label.warning": "Advertencia",
+    "label.wednesday": "Miércoles",
+    "label.weekly": "Semanal",
+    "label.welcome": "Bienvenido",
+    "label.welcome.cloud.console": "Bienvenido a la consola de administración",
+    "label.what.is.cloudstack": "Que es CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Versión Original XS es 6.1+",
+    "label.xenserver.traffic.label": "Etiqueta de tráfico XenServer",
+    "label.yes": "Sí",
+    "label.zone": "Zona",
+    "label.zone.dedicated": "Zona Dedicada",
+    "label.zone.details": "Detalles de Zona",
+    "label.zone.id": "Zona de identificación",
+    "label.zone.lower": "Zona",
+    "label.zone.name": "Nombre de la Zona",
+    "label.zone.step.1.title": "Paso 1: <strong> Seleccione una red </strong>",
+    "label.zone.step.2.title": "Paso 2: <strong>Añadir una zona </strong>",
+    "label.zone.step.3.title": "Paso 3: <strong>Añadir un pod </strong>",
+    "label.zone.step.4.title": "Paso 4: <strong>Añadir un rango IP </strong>",
+    "label.zone.type": "Tipo de Zona",
+    "label.zone.wide": "Zona para todo el",
+    "label.zoneWizard.trafficType.guest": "Guest: Tráfico entre las máquinas virtuales de usuario final",
+    "label.zoneWizard.trafficType.management": "Management: Tráfico entre los recursos internos de CloudStack, incluyendo cualquier componente que se comunique con el Servidor de Gestión, tales como anfitriones y las MVs de Sistema del propio Cloudstack",
+    "label.zoneWizard.trafficType.public": "Public: Tráfico entre internet y las máquinas virtuales en el cloud.",
+    "label.zoneWizard.trafficType.storage": "Almacenamiento: Tráfico entre los servidores de almacenamiento primario y secundario, tales como plantillas de MV e instantáneas",
+    "label.zones": "Zona",
+    "managed.state": "Estado Gestionado",
+    "message.XSTools61plus.update.failed": "La actualización falló, la versión original de XS es 6.1+. Error:",
+    "message.Zone.creation.complete": "Creación de la zona completada",
+    "message.acquire.ip.nic": "Por favor confirme que desea adquirir una IP secundaria nueva para esta NIC.<br/>NOTA: Las direcciones IP secundarios adquiridas deben ser configuradas manualmente desde la máquina virtual.",
+    "message.acquire.new.ip": "Por favor confirme que usted quiere adquirir una nueva IP para esta red",
+    "message.acquire.new.ip.vpc": "Por favor confirme que usted desea adquirir una nueva IP para este VPC.",
+    "message.acquire.public.ip": "Por favor seleccione una zona de la que desea adquirir su nueva IP.",
+    "message.action.cancel.maintenance": "Se ha emitido la cancelación del mantenimiento del anfitrión de forma correcta. Este proceso puede llevar hasta varios minutos.",
+    "message.action.cancel.maintenance.mode": "Por favor, confirme que desea cancelar el mantenimiento",
+    "message.action.change.service.warning.for.instance": "Su instancia debe estar apagada antes de intentar el cambio de la oferta de servicio activa.",
+    "message.action.change.service.warning.for.router": "Su router debe estar apagado antes de intentar el cambio de la oferta de servicio activa.",
+    "message.action.delete.ISO": "Por favor, confirme que desea eliminar esta ISO",
+    "message.action.delete.ISO.for.all.zones": "La ISO es utilizado por todas las zonas. Por favor, confirme que desea eliminar de todas las zonas.",
+    "message.action.delete.cluster": "Por favor, confirme que desea eliminar del clúster",
+    "message.action.delete.disk.offering": "Por favor, confirme que desea eliminar esta Oferta de Disco",
+    "message.action.delete.domain": "Por favor, confirme que desea eliminar este dominio",
+    "message.action.delete.external.firewall": "Por favor, confirme que desea quitar este firewall externo. Advertencia: Si usted está planeando volver a agregar el mismo firewall externo mismo, debe restablecer los datos de uso en el dispositivo.",
+    "message.action.delete.external.load.balancer": "Por favor, confirme que desea eliminar este balanceador de carga externa. Advertencia: Si usted está planeando volver a agregar el mismo balanceador de carga externo, debe restablecer los datos de uso en el dispositivo.",
+    "message.action.delete.ingress.rule": "Por favor, confirme que desea eliminar la regla de Entrada",
+    "message.action.delete.network": "Por favor, confirme que desea eliminar esta red",
+    "message.action.delete.nexusVswitch": "Porfavor confirme que usted quiere eliminar este Nexus 1000v",
+    "message.action.delete.nic": "Por favor, confirme que desea quitar esta NIC, lo que hará que también se quite la red asociada de la MV.",
+    "message.action.delete.physical.network": "Por favor confirme que desea borrar esta red física",
+    "message.action.delete.pod": "Por favor, confirme que desea eliminar este pod.",
+    "message.action.delete.primary.storage": "Por favor, confirme que desea eliminar este almacenamiento primario",
+    "message.action.delete.secondary.storage": "Por favor, confirme que desea eliminar este almacenamiento secundario",
+    "message.action.delete.security.group": "Por favor, confirme que desea eliminar este grupo de seguridad",
+    "message.action.delete.service.offering": "Por favor, confirme que desea eliminar esta oferta de servicio",
+    "message.action.delete.snapshot": "Por favor, confirme que desea eliminar esta instantánea",
+    "message.action.delete.system.service.offering": "Por favor confirme que desea borrar esta oferta de servicio de sistema",
+    "message.action.delete.template": "Por favor, confirme que desea eliminar esta plantilla",
+    "message.action.delete.template.for.all.zones": "La plantilla es utilizada por todas las zonas. Por favor, confirme que desea eliminarla de todas las zonas.",
+    "message.action.delete.volume": "Por favor, confirme que desea eliminar este volumen",
+    "message.action.delete.zone": "Por favor, confirme que desea eliminar esta Zona. ",
+    "message.action.destroy.instance": "Por favor, confirme que desea destruir esta Instancia.",
+    "message.action.destroy.systemvm": "Por favor, confirme que desea destruir esta MV de Sistema.",
+    "message.action.disable.cluster": "Por favor, confirme que desea deshabilitar este clúster.",
+    "message.action.disable.nexusVswitch": "Por favor confirme que usted quiere deshabilitar este nexus 1000v",
+    "message.action.disable.physical.network": "Por favor confirmar que usted quiere deshabilitar esta red física",
+    "message.action.disable.pod": "Por favor, confirme que desea desactivar este Pod.",
+    "message.action.disable.static.NAT": "Por favor, confirme que desea desactivar el NAT estático.",
+    "message.action.disable.zone": "Por favor, confirme que desea desactivar esta zona.",
+    "message.action.download.iso": "Por favor confirme que usted quiere descargar esta ISO",
+    "message.action.download.template": "Por favor confirme que usted quiere descargar esta plantilla.",
+    "message.action.downloading.template": "Descargando plantilla.",
+    "message.action.enable.cluster": "Por favor, confirme que desea habilitar este clúster.",
+    "message.action.enable.maintenance": "Su anfitrión ha sido preparado para Mantenimiento correctamente. Este proceso puede llevar varios minutos o más dependiendo de cuantas MVs están corriendo actualmente en este anfitrión. ",
+    "message.action.enable.nexusVswitch": "por favor confirme que usted quiere habilitar este nexus 1000v",
+    "message.action.enable.physical.network": "Por favor confirmar que usted quiere habilitar esta red física",
+    "message.action.enable.pod": "Por favor, confirme que desea habilitar este Pod. ",
+    "message.action.enable.zone": "Por favor, confirme que desea habilitar esta zona.",
+    "message.action.expunge.instance": "Por favor confirme que desea purgar esta instancia.",
+    "message.action.force.reconnect": "Se ha iniciado correctamente la reconexión forzada de su anfitrión. Este proceso puede tardar hasta varios minutos.",
+    "message.action.host.enable.maintenance.mode": "Habilitar el modo mantenimiento causará la migración en vivo de todas las instancias en ejecución de este anfitrión a otro cualquiera disponible.",
+    "message.action.instance.reset.password": "Por favor, confirmar que desea cambiar la contraseña de ROOT para esta máquina virtual.",
+    "message.action.manage.cluster": "Por favor, confirme que desea administrar el Clúster.",
+    "message.action.primarystorage.enable.maintenance.mode": "Advertencia: colocar el almacenamiento principal en modo de mantenimiento hará que todas las MV que utilicen volúmenes de éste se paren. ¿Desea continuar? ",
+    "message.action.reboot.instance": "Por favor, confirme que desea reiniciar esta Instancia.",
+    "message.action.reboot.router": "Todos los servicios provistos por este router virtual serán interrumpidos. Por favor confirmar que desea reiniciarlo.",
+    "message.action.reboot.systemvm": "Por favor, confirme que desea reiniciar esta MV de Sistema.",
+    "message.action.release.ip": "Por favor, confirme que desea liberar esta IP ",
+    "message.action.remove.host": "Por favor confirme que desea borrar este anfitrión.",
+    "message.action.reset.password.off": "Su instancia no soporta esta característica actualmente.",
+    "message.action.reset.password.warning": "Su instancia debe ser detenida antes de intentar cambiar la contraseña actual.",
+    "message.action.restore.instance": "Por favor, confirme que desea restaurar esta Instancia.",
+    "message.action.revert.snapshot": "Por favor confirme que desea revertir el volumen elegido a esta instantánea.",
+    "message.action.start.instance": "Por favor, confirme que desea iniciar la instancia",
+    "message.action.start.router": "Por favor, confirme que desea iniciar este Router.",
+    "message.action.start.systemvm": "Por favor, confirme que desea iniciar esta MV de Sistema.",
+    "message.action.stop.instance": "Por favor, confirme que desea detener esta Instancia.",
+    "message.action.stop.router": "Todos los servicios provistos por este router virtual serán interrumpidos. Por favor confirmar que desea apagarlo.",
+    "message.action.stop.systemvm": "Por favor, confirme que desea detener esta MV de Sistema. ",
+    "message.action.take.snapshot": "Por favor, confirme que desea tomar una instantánea de este volúmen.",
+    "message.action.unmanage.cluster": "Por favor, confirme que desea dejar de gestionar el Clúster.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Por favor confirme que desea borrar esta instantánea de la MV.",
+    "message.action.vmsnapshot.revert": "Revertir instantánea de MV",
+    "message.activate.project": "Usted esta seguro que quiere activar este proyecto?",
+    "message.add.VPN.gateway": "Por favor confirme que usted quiere agregar un VPN Gateway",
+    "message.add.cluster": "Añadir un Clúster gestionado de hipervisor para la zona <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Añadir un Clúster gestionado de hipervisor para la zona <b> zona <span id=\"zone_name\"> </span> </b>",
+    "message.add.disk.offering": "Por favor, especifique los parámetros siguientes para agregar una nueva Oferta de Disco",
+    "message.add.domain": "por favor especifique el subdominio que usted quiere crear bajo este dominio",
+    "message.add.firewall": "Añadir un Firewall a la Zona",
+    "message.add.guest.network": "Por favor confirme que desea agregar una red de invitado",
+    "message.add.host": "Por favor, especifique los parámetros siguientes para agregar un nuevo Anfitrión.",
+    "message.add.ip.range": "Añadir un rango de IP a la red pública en la zona",
+    "message.add.ip.range.direct.network": "Añadir un rango IP a la red directa <b><span id=\"directnetwork_name\"></span></b> en Zona <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p> Añadir un rango IP al Pod: <b><span id=\"pod_name_label\"> </span> </b> </p> ",
+    "message.add.load.balancer": "Añadir un balanceador de carga a la zona ",
+    "message.add.load.balancer.under.ip": "La regla balanceo de carga ha sido agregada bajo la IP:",
+    "message.add.network": "Agregar una nueva red para la zona: <b><span id=\"zone_name\"> </span> </b>",
+    "message.add.new.gateway.to.vpc": "Por favor especifique la información necesaria para agregar un nuevo gateway a este VPC.",
+    "message.add.pod": "Añadir un nuevo Pod a la zona <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Cada zona debe contener uno o más pods, y agregaremos el primero ahora. Un pod contiene anfitriones y servidores de almacenamiento primario, los cuales se agregaran en un paso posterior. Primero, configure un rango de direcciones IP reservadas para el tráfico interno de gestión utilizado por CloudStack's. El rango de IP reservado debe ser único para cada zona en el cloud.",
+    "message.add.primary": "Por favor, especifique los parámetros siguientes para agregar un nuevo almacenamiento primario",
+    "message.add.primary.storage": "Añadir un nuevo Almacenamiento Primario a la zona <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Por favor especifique la información requerida para agregar una nueva región.",
+    "message.add.secondary.storage": "Añadir un nuevo almacenamiento de <b> zona <span id=\"zone_name\"> </span> </b>",
+    "message.add.service.offering": "Por favor, rellene los siguientes datos para agregar una nueva oferta de servicio.",
+    "message.add.system.service.offering": "Por favor complete los siguientes datos para agregar un nueva oferta de servicio de sistema.",
+    "message.add.template": "Por favor ingrese los siguientes datos para crear la nueva plantilla",
+    "message.add.volume": "Por favor, rellene los siguientes datos para agregar un nuevo volumen.",
+    "message.added.new.nuage.vsp.controller": "Nuevo Controlador Nuage Vsp agregado",
+    "message.added.vpc.offering": "Oferta VPC agregada",
+    "message.adding.Netscaler.device": "Agregando un dispositivo NetScaler",
+    "message.adding.Netscaler.provider": "Agregando un proveedor NetScaler",
+    "message.adding.host": "Agregando un anfitrión",
+    "message.additional.networks.desc": "Por favor seleccione red(es) adicional(es) a las cuales estará conectada la instancia virtual.",
+    "message.admin.guide.read": "Para MV basadas en VMware, lea por favor el capítulo de escalado dinámico en la guía de administración antes de escalar. ¿Desea continuar?",
+    "message.advanced.mode.desc": "Seleccione este modelo de red si desea habilitar soporte VLAN. Este modelo de red proporciona la máxima flexibilidad al permitir a los administradores proporcionar ofertas personalizadas de la red como el suministro de firewall, VPN, o balanceador de carga, así­ como red directa vs virtual. ",
+    "message.advanced.security.group": "Elija esta opción si desea utilizar grupos de seguridad para proporcionar aislamiento de MV invitada.",
+    "message.advanced.virtual": "Elija esta opción si desea utilizar VLAN de extensión de zona para proporcionar el aislamiento MV invitado.",
+    "message.after.enable.s3": "Almacenamiento Secundario sobre S3 configurado. Nota: Cuando salga de esta página, no podrá volver a reconfigurar S3 nuevamente.",
+    "message.after.enable.swift": "Swift configurado. Nota: Cuando salga de esta página, no podrá volver a reconfigurar Swift nuevamente.",
+    "message.alert.state.detected": "Estado de Alerta detectado",
+    "message.allow.vpn.access": "Por favor, introduzca un nombre de usuario y la contraseña del usuario al que desea permitir el acceso de VPN.",
+    "message.apply.snapshot.policy": "Ha actualizado su política de instantáneas actual.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Por favor, confirme que desea conectar el ISO a la instancia virtual",
+    "message.attach.volume": "Por favor, rellene los siguientes datos para conectar un nuevo volumen. Si está conectando un volumen de disco a una máquina virtual basada en Windows, deberá reiniciar la instancia para ver el disco conectado.",
+    "message.basic.mode.desc": "Seleccione este modelo de red si * <b> no <u> </u> * </b> desea habilitar cualquier soporte VLAN. Todas las instancias virtuales creados en virtud de este modelo de red se le asignará una dirección IP directamente desde la red y se utilizarán grupos de seguridad para proporcionar la seguridad y la segregación.",
+    "message.change.ipaddress": "Por favor confirme que desea cambiar la dirección IP de esta NIC en la MV.",
+    "message.change.offering.confirm": "Por favor, confirme que desea cambiar la oferta de servicio de la instancia virtual.",
+    "message.change.password": "Por favor cambie la contraseña.",
+    "message.cluster.dedicated": "Clúster Dedicado",
+    "message.cluster.dedication.released": "Eliminada la Dedicación del Clúster ",
+    "message.configure.all.traffic.types": "Tiene multiples redes físicas, por favor configure las etiquetas para cada tipo de tráfico haciendo click en el botón de Editar.",
+    "message.configure.firewall.rules.allow.traffic": "Configurar las reglas para permitir Tráfico",
+    "message.configure.firewall.rules.block.traffic": "Configurar las reglas para bloquear Tráfico",
+    "message.configure.ldap": "Por favor confirme que desea configurar LDAP.",
+    "message.configuring.guest.traffic": "Configurando el tráfico de Invitado",
+    "message.configuring.physical.networks": "Configurando las redes físicas",
+    "message.configuring.public.traffic": "Configurando el tráfico público",
+    "message.configuring.storage.traffic": "Configurando el tráfico de almacenamiento",
+    "message.confirm.action.force.reconnect": "Por favor confirme que desea forzar la reconexión de este servidor",
+    "message.confirm.add.vnmc.provider": "Por favor confirme que desea agregar el proveedor VNMC.",
+    "message.confirm.archive.alert": "Por favor confirme que desea archivar esta alerta.",
+    "message.confirm.archive.event": "Por favor confirme que desea archivar este evento.",
+    "message.confirm.archive.selected.alerts": "Por favor confirme que desea archivar las alertas seleccionadas",
+    "message.confirm.archive.selected.events": "Por favor confirme que desea archivar los eventos seleccionados",
+    "message.confirm.attach.disk": "¿ Está seguro que desea conectar el disco?",
+    "message.confirm.create.volume": "¿Está seguro que desea crear un volumen?",
+    "message.confirm.current.guest.CIDR.unchanged": "¿Desea mantener el CIDR de la red guest actual sin cambios?",
+    "message.confirm.dedicate.cluster.domain.account": "¿Realmente desea dedicar este cluster al dominio/cuenta?",
+    "message.confirm.dedicate.host.domain.account": "¿Desea dedicar este hosts a un dominio/cuenta?",
+    "message.confirm.dedicate.pod.domain.account": "¿Desea dedicar este por a un dominio/cuenta?",
+    "message.confirm.dedicate.zone": "¿Realmente quiere dedicar esta zona a un domino/cuenta?",
+    "message.confirm.delete.BigSwitchBcf": "Por favor confirme que desa borrar este Controlador BigSwitch BCF",
+    "message.confirm.delete.BrocadeVcs": "Por favor confirme que desa borrar este Switch Brocade Vcs",
+    "message.confirm.delete.F5": "Por  favor confirme que quiere eliminar el F5",
+    "message.confirm.delete.NetScaler": "Por favo confirme que desa borrar este NetScaler",
+    "message.confirm.delete.NuageVsp": "Por favo confirme que desa borrar este Nuage Virtualized Services Directory",
+    "message.confirm.delete.PA": "Por favor confirme que desa borrar este Palo Alto",
+    "message.confirm.delete.SRX": "Por favor confirme que desa borrar este SRX",
+    "message.confirm.delete.acl.list": "¿Esta seguro que desea borrar esta lista de ACL?",
+    "message.confirm.delete.alert": "¿Está seguro que desea borrar esta alerta?",
+    "message.confirm.delete.baremetal.rack.configuration": "Por favor confirme que desea borrar la configuración del Rack Baremetal.",
+    "message.confirm.delete.ciscoASA1000v": "Por favor confirme que desea borrar CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Por favor confirme que desea borrar el recurso CiscoVNMC",
+    "message.confirm.delete.internal.lb": "Por favor confirme que desea borrar este LB Interno",
+    "message.confirm.delete.secondary.staging.store": "Por favor confirme que desea borrar el Almacenamiento Secundario Temporal.",
+    "message.confirm.delete.ucs.manager": "Por favor confirme que desea borrar el UCS Manager",
+    "message.confirm.destroy.router": "Por favor confirme que desa borrar este router",
+    "message.confirm.disable.host": "Por favor confirme que desea deshabitar este servidor",
+    "message.confirm.disable.network.offering": "¿Esta seguro que desea deshabilitar esta oferta de red?",
+    "message.confirm.disable.provider": "Por favor confirme que desea deshabitar este proveedor",
+    "message.confirm.disable.vnmc.provider": "Por favor confirme que desea deshabitar el proveedor VNMC.",
+    "message.confirm.disable.vpc.offering": "¿Esta seguro que desea deshabitar esta oferta de VPC?",
+    "message.confirm.enable.host": "Por favor confirme que desea habilitar este servidor",
+    "message.confirm.enable.network.offering": "¿Esta seguro que desea habilitar esta oferta de red?",
+    "message.confirm.enable.provider": "Por favor confirme que desea habilitar este proveedor",
+    "message.confirm.enable.vnmc.provider": "Por favor confirme que desea habilitar el proveedor VNMC.",
+    "message.confirm.enable.vpc.offering": "¿Esta seguro que desea habilitar esta oferta de VPC?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "por favor confirme que usted desea unirse a este proyecto.",
+    "message.confirm.migrate.volume": "¿Quiere migrar este volumen?",
+    "message.confirm.refresh.blades": "Por favor confirme que desea refrescar los blades.",
+    "message.confirm.release.dedicate.vlan.range": "Por favor confirme que desea liberar este rango dedicado de VLAN",
+    "message.confirm.release.dedicated.cluster": "¿ Desea liberar este clúster dedicado?",
+    "message.confirm.release.dedicated.host": "¿Desea liberar este servidor dedicado?",
+    "message.confirm.release.dedicated.pod": "¿Desea liberar este pod dedicado?",
+    "message.confirm.release.dedicated.zone": "¿Desea liberar esta zona dedicada?",
+    "message.confirm.remove.IP.range": "Por favor confirme que desea quitar este rango IP.",
+    "message.confirm.remove.event": "¿Está seguro que desea quitar este evento?",
+    "message.confirm.remove.load.balancer": "Por favor confirme que desea quitar esta MV del balanceador de carga",
+    "message.confirm.remove.network.offering": "¿Esta seguro que desea quitar esta oferta de red?",
+    "message.confirm.remove.selected.alerts": "Por favor confirme que desea quitar las alertas seleccionadas",
+    "message.confirm.remove.selected.events": "Por favor confirme que desea quitar los eventos seleccionados",
+    "message.confirm.remove.vmware.datacenter": "Por favor confirme que desea quitar el datacenter VMware",
+    "message.confirm.remove.vpc.offering": "¿Esta seguro que desea quitar esta oferta de VPC?",
+    "message.confirm.replace.acl.new.one": "¿Desea reemplazar este ACL con uno nuevo?",
+    "message.confirm.scale.up.router.vm": "¿Desea escalar la MV utilizada como Router?",
+    "message.confirm.scale.up.system.vm": "¿Desea escalar esta MV de Sistema?",
+    "message.confirm.shutdown.provider": "Por favor confirme que desea apagar ester proveedor",
+    "message.confirm.start.lb.vm": "Por favor confirme que desea iniciar esta MV de LB",
+    "message.confirm.stop.lb.vm": "Por favor confirme que desea parar esta MV de LB",
+    "message.confirm.upgrade.router.newer.template": "Por favor confirme que desea actualizar el router con una plantilla nueva",
+    "message.confirm.upgrade.routers.account.newtemplate": "Por favor confirme que desea actualizar todos los routers de esta cuenta con una plantilla nueva",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Por favor confirme que desea actualizar todos los routers de este cluster con una plantilla nueva",
+    "message.confirm.upgrade.routers.newtemplate": "Por favor confirme que desea actualizar todos los routers de esta zona con una plantilla nueva",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Por favor confirme que desea actualizar todos los routers de este pod con una plantilla nueva",
+    "message.copy.iso.confirm": "Por favor, confirme que desea copiar el ISO a",
+    "message.copy.template": "Copia plantilla <b id=\"copy_template_name_text\"> XXX </b> de la zona <b id=\"copy_template_source_zone_text\"> </b>",
+    "message.copy.template.confirm": "¿Desea copiar esta plantilla?",
+    "message.create.template": "Esta seguro que quiere crear una plantilla?",
+    "message.create.template.vm": "Crear MV de la plantilla <b id=\"p_name\"> </b>",
+    "message.create.template.volume": "Por favor, especifique la siguiente información antes de crear una plantilla de su volumen de disco: <b> <span id=\"volume_name\"> </span> </b>. Creación de la plantilla puede oscilar entre varios minutos más, dependiendo del tamaño del volumen.",
+    "message.creating.cluster": "Creando cluster",
+    "message.creating.guest.network": "Creando red de invitado",
+    "message.creating.physical.networks": "Creando redes físicas",
+    "message.creating.pod": "Creando pod",
+    "message.creating.primary.storage": "Creando almacenamiento primario",
+    "message.creating.secondary.storage": "Creando almacenamiento secundario",
+    "message.creating.systemVM": "Creando MVs de sistema (esto puede llevar un rato)",
+    "message.creating.zone": "Creando zona",
+    "message.decline.invitation": "¿Está segura que desea rechazar esta invitación al proyecto?",
+    "message.dedicate.zone": "Dedicando zona",
+    "message.dedicated.zone.released": "Dedicación de zona liberada",
+    "message.delete.VPN.connection": "Por favor confirme que usted quiere eliminar la conexión VPN",
+    "message.delete.VPN.customer.gateway": "Por favor confirme que desea borrar esta VPN Customer Gateway",
+    "message.delete.VPN.gateway": "Por favor confirme que usted quiere eliminar este VPN Gateway",
+    "message.delete.account": "Por favor, confirme que desea eliminar esta cuenta.",
+    "message.delete.affinity.group": "Por favor confirme que desea remover este grupo de afinidad.",
+    "message.delete.gateway": "Por favor confirme que usted quiere eliminar este gateway",
+    "message.delete.project": "Esta seguro que quiere eliminar este proyecto?",
+    "message.delete.user": "Por favor confirme que usted quiere eliminar este usuario",
+    "message.desc.add.new.lb.sticky.rule": "Agregar nueva regla Sticky al LB",
+    "message.desc.advanced.zone": "Para topologia de redes más sofisticadas. Este modelo de red provee la mayor flexibilidad para definir redes de invitado y proveyendo ofertas de redes personalizadas tales como firewall, VPN, o soporte de balanceador de carga.",
+    "message.desc.basic.zone": "Provee una red única donde cada instancia de MV es asignada una IP directamente de la red. El aislamiento de Invitado puede proveerse por medio de mecanismos de capa 3 tales como los grupos de seguridad (filtrado de direcciones IP por origen).",
+    "message.desc.cluster": "Cada pod debe contener uno o más clusters; ahora agregaremos el primero. Un clúster proporciona una forma de agrupar anfitriones. Los anfitriones de un clúster deben tener idéntico hardware, ejecutar el mismo hipervisor, estar en la misma subred y utilizar el mismo almacenamiento compartido. Cada clúster consiste en uno o más anfitriones y uno o más servidores de almacenamiento primario.",
+    "message.desc.create.ssh.key.pair": "Por favor completar los siguientes datos para crear o registrar un par de claves ssh.<br/><br/>1. Si la clave pública esta definida, CloudStack la registrará. Uds puede usarla por medio de la clave privada.<br/><br/>2. Si la clave pública no esta definida, CloudStack creará un nuevo Par de Claves SSH. En este caso, por favor copie y grabé la clave privada. CloudStack no la almacenará.<br/>",
+    "message.desc.created.ssh.key.pair": "Par de Claves SSH creadas.",
+    "message.desc.host": "Cada clúster debe contener por lo menos un anfitrión (servidor) para que se ejecuten las MVs Invitado en éste; agregaremos el primer anfitrión ahora. Para que un anfitrión funcione en CloudStack, se debe instalar el software del hypervisor, asignarle una IP al host en la red de Gestión y asegurarse de que éste conecta correctamente con servidor de gestión de CloudStack.<br/><br/>Indicar el nombre DNS del anfitrión o su dirección IP, el nombre del usuario (usualmente root), su contraseña y las etiquetas necesarias para catalogar a los anfitriones.",
+    "message.desc.primary.storage": "Cada clúster debe contener uno o más servidores primarios de almacenamiento, y ahora se agregará el primero. El almacenamiento primario contiene los volúmenes de disco para todas las MVs en ejecución en los anfitriones del clúster. Utilice cualquier protocolo estándar que soporte el hipervisor.",
+    "message.desc.reset.ssh.key.pair": "Pro favor especifique el par de claves ssh que desea agregar a esta MV. Tenga en cuenta que la clave de root será cambiada al realizar esta operación si la opción de contraseña esta habilitada.",
+    "message.desc.secondary.storage": "Cada zona debe tener al menos un servidor de NFS secundario, y se agregará el primero ahora. El almacenamiento secundario guarda las plantillas de MV, las imágenes ISO, y las instantaneas de volumentes. Este server debe estar disponible a todos los hosts de la zona.<br/><br/>Complete con la dirección IP y el PATH exportado",
+    "message.desc.zone": "Una zona es la unidad organizacional más grande en CloudStack, y típicamente se corresponde con un datacenter en particular. Las Zonas proveen aislamiento físico y redundancia. Una zona consiste de uno o más pod (cada uno conteniendo servidores y almacenamiento primario), junto con el almacenamiento secundario que es compartido entre todos los pods en la zona",
+    "message.detach.disk": "¿ Está seguro que desea desconectar este disco?",
+    "message.detach.iso.confirm": "Por favor, confirme que desea quitar la ISO de la instancia virtual",
+    "message.disable.account": "Por favor confirmar que desea deshabitar esta cuenta. Al hacerlo, todos los usuarios pertenecientes a ella dejaran de tener acceso a los recursos de cloud. Todas las máquinas virtuales en ejecución serán apagadas de forma inmediata.",
+    "message.disable.snapshot.policy": "Ha desactivado su política de instantáneas actual.",
+    "message.disable.user": "Por favor confirme que quiere deshabilitar este usuario",
+    "message.disable.vpn": "Esta seguro que usted quiere deshabilitar la VPN?",
+    "message.disable.vpn.access": "Por favor, confirme que desea desactivar VPN de acceso.",
+    "message.disabling.network.offering": "Deshabilitar oferta de red",
+    "message.disabling.vpc.offering": "Deshabilitando oferta VPC",
+    "message.disallowed.characters": "Caracteres no permitidos: <,>",
+    "message.download.ISO": "Por favor haga click <a href=\"#\">00000</a>para descargar la ISO",
+    "message.download.template": "Por favor haga click <a href=\"#\">00000</a>para descargar la plantilla",
+    "message.download.volume": "Por favor, haga clic <a href=\"#\">00000</a> para bajar el volumen",
+    "message.download.volume.confirm": "Por favor confirme que desea descargar este volumen.",
+    "message.edit.account": "Editar (\"-1\" indica que no hay limite a la cantidad de recursos creados)",
+    "message.edit.confirm": "Por favor confirme sus cambios antes de pulsar en \"Grabar\".",
+    "message.edit.limits": "Por favor, especifique los límites de los recursos siguientes. A \"-1\" indica que no hay límite a la cantidad de los recursos de crear.",
+    "message.edit.traffic.type": "Por favor indique la etiqueta de tráfico que desea asociar con este tipo de tráfico.",
+    "message.enable.account": "Por favor, confirme que desea habilitar esta cuenta.",
+    "message.enable.user": "Por favor confirme que usted quiere habilitar este usuario",
+    "message.enable.vpn": "Por favor, confirme que desea habilitar el Acceso Remoto VPN para esta dirección IP.",
+    "message.enable.vpn.access": "VPN está desactivado actualmente para esta dirección IP. ¿Querría hablitar el acceso VPN?",
+    "message.enabled.vpn": "Su acceso a la VPN está habilitado y se puede acceder a través de la IP",
+    "message.enabled.vpn.ip.sec": "La clave pre-compartida IPSec es",
+    "message.enabling.network.offering": "Habilitar oferta de red",
+    "message.enabling.security.group.provider": "Habilitando el proveedor de Grupos de Seguridad",
+    "message.enabling.vpc.offering": "Habilitando oferta VPC",
+    "message.enabling.zone": "Habilitando zona",
+    "message.enabling.zone.dots": "Habilitando zona...",
+    "message.enter.seperated.list.multiple.cidrs": "Por favor ingrese una lista separada por comas de los CIDRs si son más de uno",
+    "message.enter.token": "Por favor ingrese el token que recibió en la invitación por e-mail.",
+    "message.generate.keys": "Por favor confirme que usted quiere generar nueva llave para este usuario.",
+    "message.gslb.delete.confirm": "Por favor confirme que desea borrar este GSLB",
+    "message.gslb.lb.remove.confirm": "Por favor confirme que desea quitar el balanceo de carga GSLB",
+    "message.guest.traffic.in.advanced.zone": "El tráfico de red invitado se refiere a la comunicación entre las máquinas virtuales del usuario final. Especifique un rango de VLAN IDs para transportar este tráfico para cada red física.",
+    "message.guest.traffic.in.basic.zone": "El tráfico de las redes invitado es el generado entre las máquina virtuales del usuario final. Especifique un rango de direcciones IP para que CloudStack pueda asignar a las MVs Invitado. Aseguresé que este rango no se solape con el rango IP reservado para el sistema.",
+    "message.host.dedicated": "Servidor Dedicado",
+    "message.host.dedication.released": "Dedicación de Servidor liberada",
+    "message.installWizard.click.retry": "Haz click en el botón para re-intentar el lanzamiento.",
+    "message.installWizard.copy.whatIsACluster": "Un cluster provee una forma de agrupar los servidores. Todos los servidores que componen el cluster tienen un hardware idéntico, ejecutan el mismo hipervisor, están en la misma subred y utilizan el mismo almacenamiento compartido. Las instancias de máquinas virtuales (MVs) pueden migrarse en caliente desde un servidor a otro dentro del mismo cluster, sin interrupción del servicio del usuario. Un cluster es la tercera forma organizacional en una instalación de CloudStack&#8482; . Los clústers están contenidos dentro de los pods, los pods estar contenidos en las zonas.<br/><br/>CloudStack&#8482;  permite múltiple clusters en una instalación de cloud, pero para realizar una instalación básica, solo necesitamos uno.",
+    "message.installWizard.copy.whatIsAHost": "Un servidor es una sola computadora. Los Servidores proveen los recursos de óomputo necesarios para ejecutar las máquinas virtuales. Cada servidor tiene un hipervisor instalado para gestionar las MVs invitado (excepto en los servidores baremetal, los cuales son un caso especial que se explica en la Guía de Administración Avanzada). Por ejemplo, un servidor Linux con KVM habilitado, un servidor con Citrix XenServer o un servidor con ESXi. En una instalación Basica, usaremos un solo servidor ejecutando XenServer o KVM. <br/><br/>El servidor es la mínima unidad organizacional de CloudStack&#8482; .Los servidores están contenidos dentro de los clústers, los clústers en los pods, y estos últimos en las zonas.",
+    "message.installWizard.copy.whatIsAPod": "Un pod representa generalmente un solo rock. Los servidores en el mismo pod estarán en la misma subred.<br/><br/>El pod es la segunda agrupación organizacional dentro de CloudStack&#8482; .Los Pod están contenidos dentro de la zona. Cada zona puede contener uno más pods. En la instalación Básica, solo se necesita tener un pod en la zona.",
+    "message.installWizard.copy.whatIsAZone": "Una zona es la unidad organizacional más grande dentro de una instalación de CloudStack&#8482;. Una zona tipicamente se corresponde a un solo centro de datos, sin embargo esta permitido contar con varias zonas dentro del mismo centro de datos. El beneficio de organizar la infraestructura en zonas es que provee aislamiento físico y redundancia. Por ejemplo, cada zona puede tener su propia fuente de alimentación y uplink de red, ademas de poder estar separadas geográficamente en grandes distancias (lo cual no es obligatorio).",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482 es una plataforma de software que aglutina recursos cómputo para construir Infraestructuras como Servicio (IaaS), tanto de cloud público como privado e híbrido.\nCloudStack&#8482 gestiona la red, el almacenamiento y los nodos de cómputo que conforma la infraestructura de cloud. Se puede usar CloudStack&#8482 para desplegar, gestionar y configurar entornos de computación en la nube.<br/><br/> Cloudstack&#8482 vamás allá del manejo individual de máquinas virtuales en hardware de propósito general, ya que proporciona una solución llave en mano para desplegar datacenters como servicio - proporcionando todos los componentes esenciales para construir, desplegar y gestionar aplicaciones cloud multi-tier y multi-tenant. Se ofrecen dos versiones, la open source y la Premium, brindando la primera características casi idénticas.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "La infraestrucutra cloud de CloudStack&#8482 hace uso de dos tipos de almacenamiento, el primario y el secundario. Ambos pueden ser iSCSI, NFS o discos locales. <br/><br/>El <strong>Almacenamiento Primario</strong> se asocia a un cluster, y almacena los volúmenes de discos de cada MV para todas las MVs en los servidores del clúster. El almacenamiento primario está típicamente alojado cerca de los servidores.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "El almacenamiento secundario está asociado a una zona, y almacena lo siguiente: <ul> <li> Plantillas - imágenes del sistema operativo que se pueden utilizar para arrancar MVs, pueden íncluir información de configuración adicional, como las aplicaciones instaladas </li><li>Imágenes ISO - imágenes del Sistema Operativo que pueden ser arrancables o no arrancables </li><li>Instantáneas de volúmenes de disco  - copias guardadas de datos de MV que se pueden utilizar para la recuperación de datos o para crear nuevas plantillas</ul>",
+    "message.installWizard.now.building": "Ahora construyendo su nube...",
+    "message.installWizard.tooltip.addCluster.name": "Nombre del  Cluster. Puedes ser texto a su elección y no es utilizado por Cloudstack.",
+    "message.installWizard.tooltip.addHost.hostname": "El nombre DNS o dirección IP del host",
+    "message.installWizard.tooltip.addHost.password": "Este es el password para el nombre de usuario mencionado anteriormente (Desde su Instalación XenServer)",
+    "message.installWizard.tooltip.addHost.username": "Generalmente root",
+    "message.installWizard.tooltip.addPod.name": "Nombre del POD",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Este es el rango de direcciones IP en la red privada que CloudStack utiliza para administrar las MVs del Almacenamiento Secundario y proxy de consolas. Estas direcciones IP se han tomado de la misma subred que los servidores informáticos.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "La puerta de enlace para los host en ese pod.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "La máscara en uso en la subred que utilizarán las VM invitado.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Este es el rango de direcciones IP en la red privada que CloudStack utiliza para administrar las MVs del Almacenamiento Secundario y proxy de consolas. Estas direcciones IP se han tomado de la misma subred que los servidores de cómputo.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": " Nombre para el dispositivo de almacenamiento.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(para NFS) En NFS este es el directorio exportado desde el servidor. Directorio (por SharedMountPoint). Con KVM este es el directorio de cada anfitrión en donde se monta el almacenamiento primario. Por ejemplo, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(para NFS, iSCSI, o PreSetup) La dirección IP o el nombre DNS del dispositivo de almacenamiento.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "Dirección IP del servidor NFS que contiene el almacenamiento secundario",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "El path exportado, ubicado en el servidor especificado anteriormente",
+    "message.installWizard.tooltip.addZone.dns1": "Estos son los servidores de DNS que utilizarán las MVs invitado en la zona. A estos servidores DNS se accede por la red pñublica que se añade a posteriori. Las direcciones IP públicas de la zona deben tener una ruta al servidor de nombres mencionado aquí. ",
+    "message.installWizard.tooltip.addZone.dns2": "Estos son los servidores de DNS que utilizarán las MVs invitado en la zona. A estos servidores DNS se accede por la red pñublica que se añade a posteriori. Las direcciones IP públicas de la zona deben tener una ruta al servidor de nombres mencionado aquí. ",
+    "message.installWizard.tooltip.addZone.internaldns1": "Estos son los servidores de DNS que utilizarán las MVs de Sistema en la zona. A estos servidores DNS se accede por la interfaz de red privada de las MV de Sistema. Las direcciones IP privadas que proporcione a los pods deben tener una ruta al servidor de nombres mencionado aquí. ",
+    "message.installWizard.tooltip.addZone.internaldns2": "Estos son los servidores de DNS que utilizarán las MVs de Sistema en la zona. A estos servidores DNS se accede por la interfaz de red privada de las MV de Sistema. Las direcciones IP privadas que proporcione a los pods deben tener una ruta al servidor de nombres mencionado aquí. ",
+    "message.installWizard.tooltip.addZone.name": "Un nombre para la zona.",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "Una descripción para su red.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "El rango de direcciones IP que estará disponible para asignar a las MV invitado en esta zona. Si se utiliza una sola NIC, estas IPs deben estar en el mismo CIDR que el CIDR del pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "La puerta de enlace que deben usar las MV invitado.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "La máscara de red en uso en la subred que los clientes deben utilizar",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "El rango de direcciones IP que estará disponible para asignar a las MV invitado en esta zona. Si se utiliza una sola NIC, estas IPs deben estar en el mismo CIDR que el CIDR del pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Nombre para su red",
+    "message.instance.scaled.up.confirm": "¿Realmente desea escalar la instancia?",
+    "message.instanceWizard.noTemplates": "No tienes plantillas disponibles, por favor agregue una plantilla compatible y reinicio el asistente de instancias.",
+    "message.ip.address.changed": "Su dirección IP pudo haber cambiado. ¿Le gustaría actualizar el listado? Tenga en cuenta que en este caso el panel de detalles se cerrará.",
+    "message.iso.desc": "Disco con imagen con datos o medios arrancables para el SO",
+    "message.join.project": "Ahora estas unido al proyecto. Por favor cambiar a la Vista de Proyecto para verlo.",
+    "message.launch.vm.on.private.network": "¿Desea lanzar su instancias en tu red privada dedicada?",
+    "message.launch.zone": "La Zona esta lista para ser lanzada, por favor prosiga al próximo paso.",
+    "message.ldap.group.import": "Todos los usuarios del nombre de grupo indicado serán importados",
+    "message.link.domain.to.ldap": "Habilitar autosync para este dominio en LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "Por favor, confirme que desea bloquear esta cuenta. Al bloquear la cuenta, todos los usuarios de esta cuenta ya no serán capaces de gestionar sus recursos cloud. Los recursos existentes podrán seguir siendo accedidos. ",
+    "message.migrate.instance.confirm": "Por favor, confirme a qué anfitrión desea migrar la instancia virtual.",
+    "message.migrate.instance.to.host": "Por favor, confirme que desea mover la instancia a otro anfitrión.",
+    "message.migrate.instance.to.ps": "Por favor, confirme que desea migrar la instancia a otro almacenamiento primario.",
+    "message.migrate.router.confirm": "Por favor, confirme a qué anfitrión que desea migrar el router:",
+    "message.migrate.systemvm.confirm": "Por favor, confirme a qué anfitrión desea migrar la MV de Sistema:",
+    "message.migrate.volume": "Por favor confirme que quiere migrar el volumen a otro almacenamiento primario",
+    "message.network.addVM.desc": "Por favor indique la red que desea agregar a esta MV. Una NIC nueva se agregará para esta red.",
+    "message.network.addVMNIC": "Por favor confirme que desea agregar una nueva NIC a la MV para esta red.",
+    "message.network.remote.access.vpn.configuration": "Se generó la configuración de acceso remoto por VPN, pero falló su aplicación. Por favor verifique la conectividad de todos los elementos de red y vuelva a intentarlo.",
+    "message.new.user": "Especifique lo siguiente para agregar un nuevo usuario a la cuenta",
+    "message.no.affinity.groups": "No hay ningún grupo de afinidad. Por favor continue con el paso siguiente.",
+    "message.no.host.available": "No anfitriones disponibles para la Migración",
+    "message.no.network.support": "El hipervisor seleccionado, vSphere, no tiene funciones de red adicionales. Por favor, continúe con el paso 5.",
+    "message.no.network.support.configuration.not.true": "Usted no tiene ninguna zona con grupo de seguridad habilitado. Por lo tanto, no hay funciones de red adicionales. Por favor, continúe con el paso 5.",
+    "message.no.projects": "No tienes ningún proyecto.<br/>Pro favor crear uno nuevo desde la sección de Proyectos.",
+    "message.no.projects.adminOnly": "No tienes ningún proyecto.<br/>Por favor dile a tu administrador que cree uno nuevo.",
+    "message.number.clusters": "<h2> <span> # de </span> Clústers </h2>",
+    "message.number.hosts": "<h2> <span> # de </span> Anfitriones </h2>",
+    "message.number.pods": "<h2> <span> # de </span> Pods</h2>",
+    "message.number.storage": "<h2> <span> # de </span> Almacenamiento primario </h2>",
+    "message.number.zones": "<h2> <span> # de </span> Zonas </h2>",
+    "message.outofbandmanagement.action.maintenance": "Atención, el anfitrión está en modo mantenimiento",
+    "message.outofbandmanagement.changepassword": "Cambiar contraseña de gestión Fuera-de-banda",
+    "message.outofbandmanagement.configure": "Configurar Gestión Fuera-de-banda",
+    "message.outofbandmanagement.disable": "Deshabilitar gestión Fuera-de-Banda",
+    "message.outofbandmanagement.enable": "Habilitar gestión Fuera-de-Banda",
+    "message.outofbandmanagement.issue": "Enviar Acción de Gestión de Alimentacíon Fuera-de-Banda",
+    "message.password.has.been.reset.to": "La Contraseña se ha cambiado a",
+    "message.password.of.the.vm.has.been.reset.to": "La Contraseña de la MV se ha cambiado a",
+    "message.pending.projects.1": "Tiene invitaciones a proyectos pendientes:",
+    "message.pending.projects.2": "Para visualizar, por favor acceda al sección de proyectos y seleccione la invitación desde la lista desplegable.",
+    "message.please.add.at.lease.one.traffic.range": "Por favor agregue al menos un rango de tráfico.",
+    "message.please.confirm.remove.ssh.key.pair": "Por favor confirme que usted quiere eliminar el Par de Claves SSH",
+    "message.please.proceed": "Por favor proceda al siguiente paso.",
+    "message.please.select.a.configuration.for.your.zone": "Por favor elija una configuración para su zona.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Por favor elija una red pública y de gestióin diferente antes de quitar",
+    "message.please.select.networks": "Por favor seleccione la red para su maquina virtual.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Por favor elija el par de claves ssh que desea usar en esta MV:",
+    "message.please.wait.while.zone.is.being.created": "Por favor espere un momento la zona esta siendo creada, puede llegar a demorar unos minutos...",
+    "message.pod.dedication.released": "Dedicación de Pod liberada",
+    "message.portable.ip.delete.confirm": "Por favor confirme que desea borrar el Rango IP Portátil",
+    "message.project.invite.sent": "Invitación enviada al usuario, se agregará al proyecto solo cuando acepte la invitación.",
+    "message.public.traffic.in.advanced.zone": "El tráfico público se genera cuando las MVs del Cloud acceden a recursos sobre Internet. Para ello se deben asignar direcciones IP públicas. Los usuarios pueden usar la interfaz de  CloudStack para adquirir estas IPs e implementar NAT entre su red de Invitados y su red pública.<br/><br/> Debe proveer por lo menos un rango de direcciones IP para el tráfico de Internet.",
+    "message.public.traffic.in.basic.zone": "El tráfico público se genera cuando las MVs en el cloud acceden a Internet o proveen servicios a clientes sobre Internet. Para este propósito deben asignarse direcciones IPs públicas. Cuando se crea una instancia, se asigna una IP de este conjunto de IPs Publicas ademas de la dirección IP en la red de invitado. Se configurará NAT estático 1-1 de forma automática entre la IP pública y la IP invitado. Los usuarios también pueden utilizar la interfaz de CLoudStack para adquirir IPs adicionales para implementar NAT estático entre las instancias y la IP pública.",
+    "message.question.are.you.sure.you.want.to.add": "Está seguro que quiere agregar",
+    "message.read.admin.guide.scaling.up": "Por favor lea la sección de escalado dinámico en la guía de administración antes de escalar.",
+    "message.recover.vm": "Confirme que quiere recuperar esta MV.",
+    "message.redirecting.region": "Redirigiendo a la región...",
+    "message.reinstall.vm": "NOTA: Proceda con precaución. Esta acción hará que la MV se vuelva a instalar usando la plantilla. Los datos en el disco raíz se perderán. Los volúmenes de datos adicionales no se modificarán.",
+    "message.remove.ldap": "¿Quiere borrar la configuración LDAP?",
+    "message.remove.region": "¿Esta seguro que desea quitar esta región del servidor de gestión?",
+    "message.remove.vpc": "Por favor confirme que usted quiere eliminar el VPC",
+    "message.remove.vpn.access": "Por favor, confirme que desea eliminar el acceso VPN del siguiente usuario",
+    "message.removed.ssh.key.pair": "Se quitó un Par de Claves SSH",
+    "message.reset.VPN.connection": "Por favor confirme que desea resetear la conexión de la VPN",
+    "message.reset.password.warning.notPasswordEnabled": "La plantilla de esta instancia fue creada sin contraseña habilitada",
+    "message.reset.password.warning.notStopped": "Su instancia debe ser detenida antes de intentar cambiar la contraseña actual.",
+    "message.restart.mgmt.server": "Por favor, reinicie el servidor de gestión (s) para que la nueva configuración surta efecto.",
+    "message.restart.mgmt.usage.server": "Por favor reinicie sus servidores de gestión y de uso, para que la nueva configuración se haga efectiva.",
+    "message.restart.network": "Todos los servicios provistos por esta red serán interrumpidos. Por favor confirme que desea reiniciar esta red.",
+    "message.restart.vpc": "Por favor confirme que usted quiere reiniciar el VPC",
+    "message.restart.vpc.remark": "Por favor confirme que desea reiniciar el VPC <p><small><i>Atención: creando un VPC sin redundancia forzara la limpieza. Todas las redes dejaran de estar disponibles por unos minutos</i>.</small></p>",
+    "message.restoreVM": "¿Desea recuperar la MV?",
+    "message.role.ordering.fail": "Reordenación de permisos de reglas abortada ya que la lista ha cambiado mientras realizaba los cambios. Por favor, intente de nuevo. ",
+    "message.security.group.usage": "(Use <strong> Ctrl-click </strong> para seleccionar todos los grupos de seguridad pertinentes)",
+    "message.select.a.zone": "Una zona normalmente se corresponde con un solo datacenter. Múltiples zonas pueden ayudar a aumentar la disponibilidad del cloud al proveer aislamiento físico y redundancia.",
+    "message.select.affinity.groups": "Por favor elija los grupos de afinidad a los que pertenece esta MV:",
+    "message.select.instance": "Por favor seleccione una instancia",
+    "message.select.iso": "Por favor seleccione un ISO para su nueva instancia virtual",
+    "message.select.item": "Por favor, seleccionar un item .",
+    "message.select.security.groups": "Por favor elija el/los grupo(s) de seguridad para su nueva MV",
+    "message.select.template": "Por favor seleccione una plantilla para su nueva instancia virtual",
+    "message.select.tier": "Por favo elija un Tier",
+    "message.set.default.NIC": "Por favor que desea que esta NIC sea la por defecto en esta MV.",
+    "message.set.default.NIC.manual": "Por favor actualice manualmente la NIC por defecto en la MV.",
+    "message.setup.physical.network.during.zone.creation": "Cuando se esta agregando una zona avanzada, se necesita setear una o más redes físicas. Cada red se corresponderá con una NIC del hipervisor. Cada red física puede transportar uno o más tipos de tráfico, con ciertas restricciones en como ellos se combinan.<br/><br/><strong>Arrastre y suelte uno o más tipos de tráfico</strong> sobre cada red física.",
+    "message.setup.physical.network.during.zone.creation.basic": "Cuando se esta agregando un zona básica, puedes configurar un red física que se corresponda a una NIC del hipervisor. La red transporta varios tipos de tráfico.<br/><br/>Puedes también <strong>arrastrar y soltar</strong> otro tipos de tráfico en la interfaz física.",
+    "message.setup.successful": "La configuración del cloud finalizo satisfactoriamente.",
+    "message.snapshot.schedule": "Puedes definir la planificación de instantáneas recurrentes seleccionando de entre las opciones inferiores disponibles y aplicando su política preferente",
+    "message.specifiy.tag.key.value": "Por favor especifique una etiqueta con clave y valor",
+    "message.specify.url": "Por favor especifique la URL",
+    "message.step.1.continue": "Por favor seleccione una plantilla o ISO para continuar",
+    "message.step.1.desc": "Por favor seleccione una plantilla para su nueva instancia virtual. También puede escoger  seleccionar una plantilla en blanco en la que instalar una imágen ISO.",
+    "message.step.2.continue": "Por favor seleccione una oferta de servicio para continuar",
+    "message.step.3.continue": "Por favor seleccione una oferta en disco para continuar",
+    "message.step.4.continue": "Por favor seleccione al menos una red para continuar",
+    "message.step.4.desc": "Por favor, seleccione la red primaria a la que estará conectada su instancia virtual",
+    "message.storage.traffic": "Tráfico entre los recursos internos de CloudStack, incluyendo cualquier componente que se comunique con el servidor de gestión, tales como anfitriones y las Mvs de sistema de CloudStack. Por favor, configure el tráfico del almacenamiento aquí.",
+    "message.suspend.project": "¿Está seguro que desea suspender este proyecto?",
+    "message.systems.vms.ready": "MV de Sistema lista.",
+    "message.template.copying": "La Plantilla esta siendo copiada.",
+    "message.template.desc": "La imagen de SO que puede usarse para iniciar una MV",
+    "message.tier.required": "El Tier es obligatorio.",
+    "message.tooltip.dns.1": "Nombre del servidor DNS que será usado por las MVs en la zona. Las direcciones IP públicas de la zona deberán tener una ruta a este servidor.",
+    "message.tooltip.dns.2": "El nombre del segundo servidor DNS para ser usado por las MVs en esta zona. Las direcciones IP públicas para esta zona deben tener una ruta a este servidor.",
+    "message.tooltip.internal.dns.1": "Nombre del servidor DNS que será usado por las MVs internas de sistema de CloudStack en la zona. Las direcciones IP privadas de los pods deben tener una ruta a este servidor.",
+    "message.tooltip.internal.dns.2": "Nombre del servidor DNS que será usado por las MVs internas de sistema de CloudStack en la zona. Las direcciones IP privadas de la zona deberán tener una ruta a este servidor.",
+    "message.tooltip.network.domain": "Un sufijo DNS que creará un nombre de dominio personalizado para la red que es accedida por las MV invitado.",
+    "message.tooltip.pod.name": "Un nombre para este pod.",
+    "message.tooltip.reserved.system.gateway": "La puerta de enlace para los anfitriones del pod.",
+    "message.tooltip.reserved.system.netmask": "El prefijo de red que define la subred del pod. Usa notación CIDR.",
+    "message.tooltip.zone.name": "Un nombre para la zona.",
+    "message.update.os.preference": "Por favor seleccione una preferencia de S.O. para este anfitrión. Todas las instancias virtuales con preferencias similares serán asignadas en primer lugar a este anfitrión antes que escoger otro.",
+    "message.update.resource.count": "Por favor confirme que usted quiere actualizar el conteo de recursos para esta cuenta",
+    "message.update.ssl": "Por favor, envíe una nueva cadena de certificados SSL compatible X.509  para ser actualizado en cada instancia virtual de proxy de consolas y almacenamiento secundario:",
+    "message.update.ssl.failed": "Fallo la actualización del Certficado SSL.",
+    "message.update.ssl.succeeded": "Actualización del Certificado SSL exitosa",
+    "message.validate.URL": "Por favor ingrese una URL válida.",
+    "message.validate.accept": "Por favor ingrese un valor con extensión válida.",
+    "message.validate.creditcard": "Por favor ingrese un número de tarjeta de crédito válido.",
+    "message.validate.date": "Por favor ingrese una fecha válida.",
+    "message.validate.date.ISO": "Por favor ingrese una fecha (ISO) válida.",
+    "message.validate.digits": "Por favor ingrese solo dígitos.",
+    "message.validate.email.address": "Por favor introduzca un email válido.",
+    "message.validate.equalto": "Por favor ingrese el mismo valor nuevamente.",
+    "message.validate.fieldrequired": "Este campo es obligatorio.",
+    "message.validate.fixfield": "Por favor corrija este campo.",
+    "message.validate.instance.name": "El nombre de la instancia no puede ser más largo de 63 caracteres. Solo se permiten letras ASCII tales como  a~z, A~Z, números 0~9, los guiones están permitidos. Deben empezar con una letra y finalizar con una letra o una cifra.",
+    "message.validate.invalid.characters": "Se han hallado caracteres no válidos. Por favor, corríjalos.",
+    "message.validate.max": "Por favor ingrese un valor menor o igual que  {0}.",
+    "message.validate.maxlength": "Por favor ingrese no más de {0} caracteres.",
+    "message.validate.minlength": "Por favor ingrese al menos  {0} caracteres.",
+    "message.validate.number": "Por favor ingrese un número válido.",
+    "message.validate.range": "Por favor ingrese un valor entre {0} y {1}.",
+    "message.validate.range.length": "Por favor ingrese un valor entre {0} y {1} caracteres de longitud.",
+    "message.virtual.network.desc": "Una red dedicada virtualizada para su cuenta. El dominio de difusión está contenido dentro de una VLAN y todos los accesos a la red pública se encaminan mediante un router virtual.",
+    "message.vm.create.template.confirm": "Crear plantilla reiniciará la máquina virtual automáticamente.",
+    "message.vm.review.launch": "Por favor revise la siguiente información y confirme que su instancia virtual es correcta antes de lanzarla.",
+    "message.vnmc.available.list": "VNMC no esta disponible en esta lista de proveedores.",
+    "message.vnmc.not.available.list": "VNMC no esta disponible en esta lista de proveedores.",
+    "message.volume.create.template.confirm": "Por favor, confirme que desea crear una plantilla para este volumen de disco. La creación de la plantilla puede oscilar de varios minutos a más, dependiendo del tamaño del volumen.",
+    "message.waiting.for.builtin.templates.to.load": "Esperando por las plantillas incorporadas para cargar...",
+    "message.you.must.have.at.least.one.physical.network": "Debes tener por lo menos una red física",
+    "message.your.cloudstack.is.ready": "Tu CloudStack esta listo!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Creción de la zona completada.¿Desea habilitarla?",
+    "message.zone.no.network.selection": "La zona elegida no tiene ninguna red para seleccionar.",
+    "message.zone.step.1.desc": "Por favor seleccione un modelo de red para su zona.",
+    "message.zone.step.2.desc": "Por favor ingrese la siguiente información para agregar una nueva zona",
+    "message.zone.step.3.desc": "Por favor ingrese la siguiente información para agregar un nuevo pod",
+    "message.zoneWizard.enable.local.storage": "PRECAUCIÓN: Si habilita el almacenamiento local para esta zona, debe hacer lo siguiente dependiendo de donde se quieran iniciar las MVs de sistema:<br/><br/>1. Si las MVs de sistema deben ser iniciadas sobre el almacenamiento primario compartido, este debe agregarse a la zona después de creada. También puedes iniciar la zona en estado dshabilitado.<br/><br/>2. Si la MV de sistema necesita ser iniciada en el almacenamiento primario local, el parámetro system.vm.use.local.storage debe ser puesto en true antes de habilitar la zona.<br/><br/><br/>¿Desea continuar?",
+    "messgae.validate.min": "Por favor ingrese un valor mayor o igual que {0}.",
+    "mode": "modo",
+    "network.rate": "Tasa de Red",
+    "notification.reboot.instance": "Reiniciar Instancia",
+    "notification.start.instance": "Iniciar Instancia",
+    "notification.stop.instance": "Detener Instancia",
+    "side.by.side": "Juntos",
+    "state.Accepted": "Aceptado",
+    "state.Active": "Activo",
+    "state.Allocated": "Asignados",
+    "state.Allocating": "Asignando",
+    "state.BackedUp": "Respaldado",
+    "state.BackingUp": "Realizando Backup",
+    "state.Completed": "Completado",
+    "state.Creating": "Creando",
+    "state.Declined": "Declinado",
+    "state.Destroyed": "Destruidas",
+    "state.Disabled": "Deshabilitados",
+    "state.Enabled": "Habilitado",
+    "state.Error": "Error",
+    "state.Expunging": "Purgando",
+    "state.Migrating": "Migrando",
+    "state.Pending": "Pendiente",
+    "state.Ready": "Listo",
+    "state.Running": "Ejecutando",
+    "state.Starting": "Iniciando",
+    "state.Stopped": "Detenidas",
+    "state.Stopping": "Parando",
+    "state.Suspended": "Suspendido",
+    "state.detached": "Desconectado",
+    "title.upload.volume": "Subir Volumen",
+    "ui.listView.filters.all": "Todas",
+    "ui.listView.filters.mine": "Mias"
+};
diff --git a/ui/l10n/fr_FR.js b/ui/l10n/fr_FR.js
new file mode 100644
index 0000000..18b5b43
--- /dev/null
+++ b/ui/l10n/fr_FR.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "Code ICMP",
+    "ICMP.type": "Type ICMP",
+    "changed.item.properties": "Propriétés de l'élément modifiées",
+    "confirm.enable.s3": "Remplir les informations suivantes pour activer le support de stockage secondaire S3",
+    "confirm.enable.swift": "Remplir les informations suivantes pour activer Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Erreur: impossible de changer votre mot de passe car le mode LDAP est activé.",
+    "error.could.not.enable.zone": "Impossible d'activer la zone",
+    "error.installWizard.message": "Une erreur s'est produite ; vous pouvez retourner en arrière et corriger les erreurs",
+    "error.invalid.username.password": "Identifiant ou mot de passe invalide",
+    "error.login": "Votre identifiant / mot de passe ne correspond pas à nos enregistrements.",
+    "error.menu.select": "Échec de l'action car il n'y a aucun élément sélectionné.",
+    "error.mgmt.server.inaccessible": "Le serveur de gestion est inaccessible. Veuillez essayer plus tard.",
+    "error.password.not.match": "Les champs mot de passe ne correspondent pas",
+    "error.please.specify.physical.network.tags": "L'offre de réseau ne sera pas disponible tant que des libellés n'auront pas été renseignés pour ce réseau physique.",
+    "error.session.expired": "Votre session a expirée.",
+    "error.something.went.wrong.please.correct.the.following": "Quelque chose s'est mal passée ; veuillez corriger le point suivant",
+    "error.unable.to.reach.management.server": "Impossible d'attendre le serveur de gestion",
+    "error.unresolved.internet.name": "Votre nom Internet ne peut pas être résolu.",
+    "force.delete": "Forcer la suppression",
+    "force.delete.domain.warning": "Attention : Choisir cette option entraînera la suppression de tous les domaines issus et l'ensemble des comptes associés, ainsi que de leur ressources",
+    "force.remove": "Suppression forcée",
+    "force.remove.host.warning": "Attention : Choisir cette option entraînera CloudStack à forcer l'arrêt de l'ensemble des machines virtuelles avant d'enlever cet hôte du cluster",
+    "force.stop": "Forcer l'arrêt",
+    "force.stop.instance.warning": "Attention : un arrêt forcé sur cette instance est la dernier option. Cela peut engendrer des pertes de données et/ou un comportement inconsistant de votre instance.",
+    "hint.no.host.tags": "Aucun libellé d'hôte trouvé",
+    "hint.no.storage.tags": "Aucune libellé de stockage trouvé",
+    "hint.type.part.host.tag": "Saisir le cadre d'un libellé d'hôte",
+    "hint.type.part.storage.tag": "Saisir le cadre d'un libellé de stockage",
+    "image.directory": "Répertoire d'images",
+    "inline": "Aligné",
+    "instances.actions.reboot.label": "Redémarrer l'instance",
+    "label.CIDR.list": "Liste CIDR",
+    "label.CIDR.of.destination.network": "CIDR du réseau de destination",
+    "label.CPU.cap": "Limitation CPU",
+    "label.DHCP.server.type": "Serveur DHCP",
+    "label.DNS.domain.for.guest.networks": "Domaine DNS pour les réseaux invités",
+    "label.ESP.encryption": "Chiffrement ESP",
+    "label.ESP.hash": "Empreinte ESP",
+    "label.ESP.lifetime": "Durée de vie ESP (secondes)",
+    "label.ESP.policy": "Mode ESP",
+    "label.IKE.DH": "DH IKE",
+    "label.IKE.encryption": "Chiffrement IKE",
+    "label.IKE.hash": "Empreinte IKE",
+    "label.IKE.lifetime": "Durée de vie IKE (secondes)",
+    "label.IKE.policy": "Mode IKE",
+    "label.IPsec.preshared.key": "Clé partagée IPsec",
+    "label.LB.isolation": "Répartition de charge isolée",
+    "label.LUN.number": "N° LUN",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Profil Journal Palo Alto",
+    "label.PA.threat.profile": "Profil menace Palo Alto",
+    "label.PING.CIFS.password": "Mot de passe CIFS PING",
+    "label.PING.CIFS.username": "Identifiant CIFS PING",
+    "label.PING.dir": "Répertoire PING",
+    "label.PING.storage.IP": "IP stockage PING",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "Serveur PXE",
+    "label.SNMP.community": "Communauté SNMP",
+    "label.SNMP.port": "Port SNMP",
+    "label.SR.name": "Nom du point de montage",
+    "label.SharedMountPoint": "Point de montage partagé",
+    "label.TFTP.dir": "Répertoire TFTP",
+    "label.VMFS.datastore": "Magasin de données VMFS",
+    "label.VMs.in.tier": "Machines virtuelles dans le tiers",
+    "label.VPC.limits": "Limites VPC",
+    "label.VPC.router.details": "Détails routeur VPC",
+    "label.VPN.connection": "Connexion VPN",
+    "label.VPN.customer.gateway": "Passerelle VPN client",
+    "label.VPN.gateway": "Passerelle VPN",
+    "label.Xenserver.Tools.Version61plus": "XenServer Tools Version 6.1+",
+    "label.about": "A propos de",
+    "label.about.app": "A propos de CloudStack",
+    "label.accept.project.invitation": "Accepter l'invitation au projet",
+    "label.account": "Compte",
+    "label.account.and.security.group": "Compte, groupe de sécurité",
+    "label.account.details": "Détails compte",
+    "label.account.id": "ID de compte",
+    "label.account.lower": "compte",
+    "label.account.name": "Nom de compte",
+    "label.account.specific": "Spécifique au compte",
+    "label.account.type": "Type Compte",
+    "label.accounts": "Comptes",
+    "label.acl": "ACL",
+    "label.acl.id": "ID ACL",
+    "label.acl.list.rules": "Liste règles ACL",
+    "label.acl.name": "Nom ACL",
+    "label.acl.replaced": "ACL remplacée",
+    "label.acquire.new.ip": "Acquérir nouvelle adr. IP",
+    "label.acquire.new.secondary.ip": "Acquérir nouvelle IP secondaire",
+    "label.action": "Action",
+    "label.action.attach.disk": "Rattacher disque",
+    "label.action.attach.disk.processing": "Rattachement du disque...",
+    "label.action.attach.iso": "Rattacher image ISO",
+    "label.action.attach.iso.processing": "Rattachement de l'image ISO...",
+    "label.action.cancel.maintenance.mode": "Annuler mode maintenance",
+    "label.action.cancel.maintenance.mode.processing": "Annulation du mode maintenance...",
+    "label.action.change.password": "Changer le mot de passe",
+    "label.action.change.service": "Changer Service",
+    "label.action.change.service.processing": "Changement service...",
+    "label.action.configure.samlauthorization": "Configurer Autorisation SAML SSO",
+    "label.action.copy.ISO": "Copier une image ISO",
+    "label.action.copy.ISO.processing": "Copie ISO...",
+    "label.action.copy.template": "Copier modèle",
+    "label.action.copy.template.processing": "Copie modèle...",
+    "label.action.create.template": "Créer un modèle",
+    "label.action.create.template.from.vm": "Créer un modèle depuis la VM",
+    "label.action.create.template.from.volume": "Créer un modèle depuis le volume",
+    "label.action.create.template.processing": "Création du Modèle...",
+    "label.action.create.vm": "Créer une VM",
+    "label.action.create.vm.processing": "Création de la VM...",
+    "label.action.create.volume": "Créer un Volume",
+    "label.action.create.volume.processing": "Création du Volume...",
+    "label.action.delete.IP.range": "Supprimer la plage IP",
+    "label.action.delete.IP.range.processing": "Suppression de la plage IP...",
+    "label.action.delete.ISO": "Supprimer l'image ISO",
+    "label.action.delete.ISO.processing": "Suppression de l'image ISO...",
+    "label.action.delete.account": "Supprimer un compte",
+    "label.action.delete.account.processing": "Suppression du compte...",
+    "label.action.delete.cluster": "Supprimer le Cluster",
+    "label.action.delete.cluster.processing": "Suppression du Cluster...",
+    "label.action.delete.disk.offering": "Supprimer Offre de Disque",
+    "label.action.delete.disk.offering.processing": "Suppression de l'offre de disque...",
+    "label.action.delete.domain": "Supprimer le domaine",
+    "label.action.delete.domain.processing": "Suppression du domaine...",
+    "label.action.delete.firewall": "Supprimer la règle de pare-feu",
+    "label.action.delete.firewall.processing": "Suppression du Pare-feu...",
+    "label.action.delete.ingress.rule": "Supprimer la règle d'entrée",
+    "label.action.delete.ingress.rule.processing": "Suppression de la règle d'entrée..",
+    "label.action.delete.load.balancer": "Supprimer la règle de répartition de charge",
+    "label.action.delete.load.balancer.processing": "Suppression du répartiteur de charge...",
+    "label.action.delete.network": "Supprimer le réseau",
+    "label.action.delete.network.processing": "Suppression du réseau...",
+    "label.action.delete.nexusVswitch": "Supprimer le Nexus 1000v",
+    "label.action.delete.nic": "Supprimer carte NIC",
+    "label.action.delete.physical.network": "Supprimer le réseau physique",
+    "label.action.delete.pod": "Supprimer le Pod",
+    "label.action.delete.pod.processing": "Suppression du pod...",
+    "label.action.delete.primary.storage": "Supprimer le stockage primaire",
+    "label.action.delete.primary.storage.processing": "Suppression du stockage primaire...",
+    "label.action.delete.secondary.storage": "Supprimer le stockage secondaire",
+    "label.action.delete.secondary.storage.processing": "Suppression du stockage secondaire...",
+    "label.action.delete.security.group": "Supprimer le groupe de sécurité",
+    "label.action.delete.security.group.processing": "Suppression du groupe de sécurité",
+    "label.action.delete.service.offering": "Supprimer Offre Service",
+    "label.action.delete.service.offering.processing": "Suppression de l'offre de service...",
+    "label.action.delete.snapshot": "Supprimer l'instantané",
+    "label.action.delete.snapshot.processing": "Suppression de l'instantané...",
+    "label.action.delete.system.service.offering": "Supprimer Offre de Service Système",
+    "label.action.delete.template": "Supprimer le modèle",
+    "label.action.delete.template.processing": "Suppression du modèle...",
+    "label.action.delete.user": "Supprimer l'utilisateur",
+    "label.action.delete.user.processing": "Suppression de l'utilisateur...",
+    "label.action.delete.volume": "Supprimer le volume",
+    "label.action.delete.volume.processing": "Suppression du volume...",
+    "label.action.delete.zone": "Supprimer la zone",
+    "label.action.delete.zone.processing": "Suppression de la zone...",
+    "label.action.destroy.instance": "Supprimer l'instance",
+    "label.action.destroy.instance.processing": "Suppression de l'instance...",
+    "label.action.destroy.systemvm": "Supprimer VM Système",
+    "label.action.destroy.systemvm.processing": "Suppression de la VM Système...",
+    "label.action.detach.disk": "Détacher le disque",
+    "label.action.detach.disk.processing": "Détachement du disque...",
+    "label.action.detach.iso": "Détacher l'image ISO",
+    "label.action.detach.iso.processing": "Détachement de l'image ISO...",
+    "label.action.disable.account": "Désactiver le compte",
+    "label.action.disable.account.processing": "Désactivation du compte...",
+    "label.action.disable.cluster": "Désactiver le cluster",
+    "label.action.disable.cluster.processing": "Désactivation du cluster...",
+    "label.action.disable.nexusVswitch": "Désactiver le Nexus 1000v",
+    "label.action.disable.physical.network": "Désactiver le réseau physique",
+    "label.action.disable.pod": "Désactiver le Pod",
+    "label.action.disable.pod.processing": "Désactivation du Pod...",
+    "label.action.disable.static.NAT": "Désactiver le NAT Statique",
+    "label.action.disable.static.NAT.processing": "Désactivation du NAT Statique...",
+    "label.action.disable.user": "Désactiver l'utilisateur",
+    "label.action.disable.user.processing": "Désactivation de l'utilisateur...",
+    "label.action.disable.zone": "Désactivation de la zone",
+    "label.action.disable.zone.processing": "Désactivation de la zone...",
+    "label.action.download.ISO": "Télécharger une image ISO",
+    "label.action.download.template": "Télécharger un modèle",
+    "label.action.download.volume": "Télécharger un volume",
+    "label.action.download.volume.processing": "Téléchargement du volume...",
+    "label.action.edit.ISO": "Modifier l'image ISO",
+    "label.action.edit.account": "Modifier le Compte",
+    "label.action.edit.disk.offering": "Modifier Offre Disque",
+    "label.action.edit.domain": "Modifier le domaine",
+    "label.action.edit.global.setting": "Modifier la configuration globale",
+    "label.action.edit.host": "Modifier l'hôte",
+    "label.action.edit.instance": "Modifier l'instance",
+    "label.action.edit.network": "Modifier le réseau",
+    "label.action.edit.network.offering": "Modifier Offre Réseau",
+    "label.action.edit.network.processing": "Modification du Réseau...",
+    "label.action.edit.pod": "Modifier le pod",
+    "label.action.edit.primary.storage": "Modifier le stockage primaire",
+    "label.action.edit.resource.limits": "Modifier les limites de ressources",
+    "label.action.edit.service.offering": "Modifier Offre Service",
+    "label.action.edit.template": "Modifier le modèle",
+    "label.action.edit.user": "Modifier l'utilisateur",
+    "label.action.edit.zone": "Modifier la zone",
+    "label.action.enable.account": "Activer le compte",
+    "label.action.enable.account.processing": "Activation du compte...",
+    "label.action.enable.cluster": "Activer le cluster",
+    "label.action.enable.cluster.processing": "Activation du cluster...",
+    "label.action.enable.maintenance.mode": "Activer le mode maintenance",
+    "label.action.enable.maintenance.mode.processing": "Activation du mode maintenance...",
+    "label.action.enable.nexusVswitch": "Activer le Nexus 1000v",
+    "label.action.enable.physical.network": "Activer le réseau physique",
+    "label.action.enable.pod": "Activer le Pod",
+    "label.action.enable.pod.processing": "Activation du Pod...",
+    "label.action.enable.static.NAT": "Activer le NAT Statique",
+    "label.action.enable.static.NAT.processing": "Activation du NAT Statique...",
+    "label.action.enable.user": "Activer l'utilisateur",
+    "label.action.enable.user.processing": "Activation de l'utilisateur...",
+    "label.action.enable.zone": "Activer la zone",
+    "label.action.enable.zone.processing": "Activation de la zone...",
+    "label.action.expunge.instance": "Purger Instance",
+    "label.action.expunge.instance.processing": "Purge de l'Instance...",
+    "label.action.force.reconnect": "Forcer la reconnexion",
+    "label.action.force.reconnect.processing": "Reconnexion en cours...",
+    "label.action.generate.keys": "Générer les clés",
+    "label.action.generate.keys.processing": "Génération des clés...",
+    "label.action.list.nexusVswitch": "Liste des Nexus 1000v",
+    "label.action.lock.account": "Verrouiller le compte",
+    "label.action.lock.account.processing": "Verrouillage du compte...",
+    "label.action.manage.cluster": "Gérer le Cluster",
+    "label.action.manage.cluster.processing": "Gestion du cluster...",
+    "label.action.migrate.instance": "Migrer l'instance",
+    "label.action.migrate.instance.processing": "Migration de l'instance...",
+    "label.action.migrate.router": "Migration routeur",
+    "label.action.migrate.router.processing": "Migration routeur en cours...",
+    "label.action.migrate.systemvm": "Migrer VM Système",
+    "label.action.migrate.systemvm.processing": "Migration VM système en cours ...",
+    "label.action.reboot.instance": "Redémarrer l'instance",
+    "label.action.reboot.instance.processing": "Redémarrage de l'instance...",
+    "label.action.reboot.router": "Redémarrer le routeur",
+    "label.action.reboot.router.processing": "Redémarrage du routeur...",
+    "label.action.reboot.systemvm": "Redémarrer VM Système",
+    "label.action.reboot.systemvm.processing": "Redémarrage de la VM Système...",
+    "label.action.recurring.snapshot": "Instantanés récurrents",
+    "label.action.register.iso": "Enregistrer ISO",
+    "label.action.register.template": "Enregistrer modèle depuis une URL",
+    "label.action.release.ip": "Libérer l'adresse IP",
+    "label.action.release.ip.processing": "Libération de l'adresse IP...",
+    "label.action.remove.host": "Supprimer l'hôte",
+    "label.action.remove.host.processing": "Suppression de l'hôte...",
+    "label.action.reset.password": "Ré-initialiser le mot de passe",
+    "label.action.reset.password.processing": "Ré-initialisation du mot de passe...",
+    "label.action.resize.volume": "Redimensionner Volume",
+    "label.action.resize.volume.processing": "Redimensionnement en cours...",
+    "label.action.resource.limits": "Limites de ressources",
+    "label.action.restore.instance": "Restaurer l'instance",
+    "label.action.restore.instance.processing": "Restauration de l'instance...",
+    "label.action.revert.snapshot": "Rétablir Instantané",
+    "label.action.revert.snapshot.processing": "Retour à l'instantané...",
+    "label.action.start.instance": "Démarrer l'instance",
+    "label.action.start.instance.processing": "Démarrage de l'instance...",
+    "label.action.start.router": "Démarrer le routeur",
+    "label.action.start.router.processing": "Démarrage du routeur...",
+    "label.action.start.systemvm": "Démarrer la VM système",
+    "label.action.start.systemvm.processing": "Démarrage de la VM système...",
+    "label.action.stop.instance": "Arrêter l'Instance",
+    "label.action.stop.instance.processing": "Arrêt de l'Instance...",
+    "label.action.stop.router": "Arrêter le routeur",
+    "label.action.stop.router.processing": "Arrêt du routeur...",
+    "label.action.stop.systemvm": "Arrêter VM Système",
+    "label.action.stop.systemvm.processing": "Arrêt de la VM système...",
+    "label.action.take.snapshot": "Prendre un instantané",
+    "label.action.take.snapshot.processing": "Prise de l'instantané...",
+    "label.action.unmanage.cluster": "Ne plus gérer le Cluster",
+    "label.action.unmanage.cluster.processing": "Arrêt de la gestion du Cluster",
+    "label.action.update.OS.preference": "Mettre à jour les préférences d'OS",
+    "label.action.update.OS.preference.processing": "Mise à jour des préférences d'OS...",
+    "label.action.update.resource.count": "Mettre à jour le compteur des ressources",
+    "label.action.update.resource.count.processing": "Mise à jour du compteur...",
+    "label.action.vmsnapshot.create": "Prendre un instantané VM",
+    "label.action.vmsnapshot.delete": "Supprimer l'instantané VM",
+    "label.action.vmsnapshot.revert": "Rétablir Instantané VM",
+    "label.actions": "Actions",
+    "label.activate.project": "Activer projet",
+    "label.active.sessions": "Sessions actives",
+    "label.add": "Ajouter",
+    "label.add.ACL": "Ajouter règle ACL",
+    "label.add.BigSwitchBcf.device": "Ajouter un contrôleur BigSwitch BCF",
+    "label.add.BrocadeVcs.device": "Ajouter Switch Brocade Vcs",
+    "label.add.F5.device": "Ajouter un F5",
+    "label.add.LDAP.account": "Ajouter Compte LDAP",
+    "label.add.NiciraNvp.device": "Ajouter un contrôleur Nvp",
+    "label.add.NuageVsp.device": "Ajouter Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Ajouter contrôleur OpenDaylight",
+    "label.add.PA.device": "Ajouter périphérique Palo Alto",
+    "label.add.SRX.device": "Ajouter un SRX",
+    "label.add.VM.to.tier": "Ajouter une machine virtuelle au tiers",
+    "label.add.VPN.gateway": "Ajouter une passerelle VPN",
+    "label.add.account": "Ajouter un compte",
+    "label.add.account.to.project": "Ajouter un compte au projet",
+    "label.add.accounts": "Ajouter des comptes",
+    "label.add.accounts.to": "Ajouter des comptes sur",
+    "label.add.acl.list": "Ajouter Liste ACL",
+    "label.add.affinity.group": "Ajouter nouveau groupe d'affinité",
+    "label.add.baremetal.dhcp.device": "Ajouter un DHCP Baremetal",
+    "label.add.baremetal.rack.configuration": "Ajouter Configuration Rack Baremetal",
+    "label.add.by": "Ajouté par",
+    "label.add.by.cidr": "Ajouter par CIDR",
+    "label.add.by.group": "Ajouter par groupe",
+    "label.add.ciscoASA1000v": "Ajouter ressource CiscoASA1000v",
+    "label.add.cluster": "Ajouter un cluster",
+    "label.add.compute.offering": "Ajouter Offre Calcul",
+    "label.add.direct.iprange": "Ajouter une plage d'adresse IP directe",
+    "label.add.disk.offering": "Ajouter Offre Disque",
+    "label.add.domain": "Ajouter un domaine",
+    "label.add.egress.rule": "Ajouter la règle sortante",
+    "label.add.firewall": "Ajouter une règle de pare-feu",
+    "label.add.globo.dns": "Ajouter GloboDNS",
+    "label.add.gslb": "Ajouter GSLB",
+    "label.add.guest.network": "Ajouter un réseau d'invité",
+    "label.add.host": "Ajouter un hôte",
+    "label.add.ingress.rule": "Ajouter une règle d'entrée",
+    "label.add.intermediate.certificate": "Ajouter certificat intermédiaire",
+    "label.add.internal.lb": "Ajouter LB interne",
+    "label.add.ip.range": "Ajouter une plage IP",
+    "label.add.isolated.guest.network": "Ajouter un réseau d'invité isolé",
+    "label.add.isolated.guest.network.with.sourcenat": "Ajouter un réseau d'invité isolé avec SourceNat",
+    "label.add.isolated.network": "Ajouter un réseau isolé",
+    "label.add.ldap.account": "Ajouter un compte LDAP",
+    "label.add.list.name": "Nom Liste ACL",
+    "label.add.load.balancer": "Ajouter un répartiteur de charge",
+    "label.add.more": "Ajouter plus",
+    "label.add.netScaler.device": "Ajouter un Netscaler",
+    "label.add.network": "Ajouter un réseau",
+    "label.add.network.ACL": "Ajouter une règle d'accès réseau ACL",
+    "label.add.network.acl.list": "Ajouter Liste ACL réseau",
+    "label.add.network.device": "Ajouter un équipement réseau",
+    "label.add.network.offering": "Ajouter Offre Réseau",
+    "label.add.new.F5": "Ajouter un F5",
+    "label.add.new.NetScaler": "Ajouter un Netscaler",
+    "label.add.new.PA": "Ajouter nouveau Palo Alto",
+    "label.add.new.SRX": "Ajouter un SRX",
+    "label.add.new.gateway": "Ajouter une nouvelle passerelle",
+    "label.add.new.tier": "Ajouter un nouveau tiers",
+    "label.add.nfs.secondary.staging.store": "Ajouter un Stockage Secondaire Intermédiaire NFS",
+    "label.add.physical.network": "Ajouter un réseau physique",
+    "label.add.pod": "Ajouter un pod",
+    "label.add.port.forwarding.rule": "Ajouter une règle de transfert de port",
+    "label.add.portable.ip.range": "Ajouter Plage IP portable",
+    "label.add.primary.storage": "Ajouter un stockage primaire",
+    "label.add.private.gateway": "Ajouter Passerelle Privée",
+    "label.add.region": "Ajouter Région",
+    "label.add.resources": "Ajouter ressources",
+    "label.add.role": "Ajouter Rôle",
+    "label.add.route": "Ajouter route",
+    "label.add.rule": "Ajouter règle",
+    "label.add.secondary.storage": "Ajouter un stockage secondaire",
+    "label.add.security.group": "Ajouter un groupe de sécurité",
+    "label.add.service.offering": "Ajouter Offre Service",
+    "label.add.static.nat.rule": "Ajouter une règle de NAT statique",
+    "label.add.static.route": "Ajouter une route statique",
+    "label.add.system.service.offering": "Ajouter Offre Service Système",
+    "label.add.template": "Ajouter un modèle",
+    "label.add.to.group": "Ajouter au groupe",
+    "label.add.ucs.manager": "Ajouter Gestionnaire UCS",
+    "label.add.user": "Ajouter un utilisateur",
+    "label.add.userdata": "Données Utilisateur",
+    "label.add.vlan": "Ajouter un VLAN",
+    "label.add.vm": "Ajouter VM",
+    "label.add.vms": "Ajouter VMs",
+    "label.add.vms.to.lb": "Ajouter une/des VM(s) à la règle de répartition de charge",
+    "label.add.vmware.datacenter": "Ajouter un datacenter VMware",
+    "label.add.vnmc.device": "Ajouter un VNMC",
+    "label.add.vnmc.provider": "Ajouter fournisseur VNMC",
+    "label.add.volume": "Ajouter un volume",
+    "label.add.vpc": "Ajouter un VPC",
+    "label.add.vpc.offering": "Ajouter Offre VPC",
+    "label.add.vpn.customer.gateway": "Ajouter une passerelle VPN cliente",
+    "label.add.vpn.user": "Ajouter un utilisateur VPN",
+    "label.add.vxlan": "Ajouter un VXLAN",
+    "label.add.zone": "Ajouter une zone",
+    "label.added.brocade.vcs.switch": "Ajout d'un nouveau switch Brocade Vcs",
+    "label.added.network.offering": "Offre de service ajoutée",
+    "label.added.new.bigswitch.bcf.controller": "Ajout du nouveau contrôleur BigSwitch BCF",
+    "label.added.nicira.nvp.controller": "Ajout d'un nouveau contrôleur Nicira NVP",
+    "label.addes.new.f5": "Ajout d'un nouveau F5",
+    "label.adding": "Ajout",
+    "label.adding.cluster": "Ajout du Cluster",
+    "label.adding.failed": "Échec de l'ajout",
+    "label.adding.pod": "Ajout du Pod",
+    "label.adding.processing": "Ajout...",
+    "label.adding.succeeded": "Ajout réussi",
+    "label.adding.user": "Ajout de l'utilisateur",
+    "label.adding.zone": "Ajout de la zone",
+    "label.additional.networks": "Réseaux additionnels",
+    "label.admin": "Administrateur",
+    "label.admin.accounts": "Comptes Administrateur",
+    "label.advanced": "Avancé",
+    "label.advanced.mode": "Mode avancé",
+    "label.advanced.search": "Recherche avancée",
+    "label.affinity": "Affinité",
+    "label.affinity.group": "Groupe d'Affinité",
+    "label.affinity.groups": "Groupes d'Affinité",
+    "label.agent.password": "Mot de passe Agent",
+    "label.agent.port": "Port Agent",
+    "label.agent.state": "Statut Agent",
+    "label.agent.username": "Identifiant Agent",
+    "label.agree": "Accepter",
+    "label.alert": "Alerte",
+    "label.alert.archived": "Alerte archivée",
+    "label.alert.deleted": "Alerte supprimée",
+    "label.alert.details": "Détails Alerte",
+    "label.algorithm": "Algorithme",
+    "label.allocated": "Alloué",
+    "label.allocation.state": "État",
+    "label.allow": "Autoriser",
+    "label.anti.affinity": "Anti-affinité",
+    "label.anti.affinity.group": "Groupe d'Anti-affinité",
+    "label.anti.affinity.groups": "Groupes d'Anti-affinité",
+    "label.api.key": "Clé d'API",
+    "label.api.version": "Version d'API",
+    "label.app.name": "CloudStack",
+    "label.apply": "Appliquer",
+    "label.archive": "Archiver",
+    "label.archive.alerts": "Archiver alertes",
+    "label.archive.events": "Archiver événements",
+    "label.assign": "Assigner",
+    "label.assign.instance.another": "Assigner l'instance à un autre compte",
+    "label.assign.to.load.balancer": "Assigner l'instance au répartiteur de charge",
+    "label.assign.vms": "Assigner VMs",
+    "label.assigned.vms": "VMs Assignées",
+    "label.associate.public.ip": "Associer IP Publique",
+    "label.associated.network": "Réseau associé",
+    "label.associated.network.id": "ID du réseau associé",
+    "label.associated.profile": "Profil associé",
+    "label.attached.iso": "Image ISO attachée",
+    "label.author.email": "Email auteur",
+    "label.author.name": "Nom auteur",
+    "label.autoscale": "AutoScale",
+    "label.autoscale.configuration.wizard": "Assistant de configuration AutoScale",
+    "label.availability": "Disponibilité",
+    "label.availability.zone": "Zone de disponibilité",
+    "label.availabilityZone": "availabilityZone",
+    "label.available": "Disponible",
+    "label.available.public.ips": "Adresses IP publiques disponibles",
+    "label.back": "Retour",
+    "label.bandwidth": "Bande passante",
+    "label.baremetal.dhcp.devices": "Équipements DHCP Baremetal",
+    "label.baremetal.dhcp.provider": "Fournisseur DHCP Baremetal",
+    "label.baremetal.pxe.device": "Ajouter un PXE Baremetal",
+    "label.baremetal.pxe.devices": "Équipements PXE Baremetal",
+    "label.baremetal.pxe.provider": "Fournisseur PXE Baremetal",
+    "label.baremetal.rack.configuration": "Configuration Rack Baremetal",
+    "label.basic": "Basique",
+    "label.basic.mode": "Mode basique",
+    "label.bigswitch.bcf.details": "Détails BigSwitch BCF",
+    "label.bigswitch.bcf.nat": "NAT activé BigSwitch BCF",
+    "label.bigswitch.controller.address": "Adresse du contrôleur BigSwitch Vns",
+    "label.blade.id": "ID Lame",
+    "label.blades": "Lames",
+    "label.bootable": "Amorçable",
+    "label.broadcast.domain.range": "Plage du domaine multi-diffusion",
+    "label.broadcast.domain.type": "Type de domaine de multi-diffusion",
+    "label.broadcast.uri": "URI multi-diffusion",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "URI multi-diffusion",
+    "label.brocade.vcs.address": "Adress Vcs Switch",
+    "label.brocade.vcs.details": "Détails Switch Brocade Vcs",
+    "label.by.account": "Par compte",
+    "label.by.alert.type": "Par type d'alerte",
+    "label.by.availability": "Par disponibilité",
+    "label.by.date.end": "Par date (fin)",
+    "label.by.date.start": "Par date (début)",
+    "label.by.domain": "Par domaine",
+    "label.by.end.date": "Par date de fin",
+    "label.by.event.type": "Par type d'événement",
+    "label.by.level": "Par niveau",
+    "label.by.pod": "Par Pod",
+    "label.by.role": "Par rôle",
+    "label.by.start.date": "Par date de début",
+    "label.by.state": "Par état",
+    "label.by.traffic.type": "Par type de trafic",
+    "label.by.type": "Par type",
+    "label.by.type.id": "Par type d'ID",
+    "label.by.zone": "Par zone",
+    "label.bytes.received": "Octets reçus",
+    "label.bytes.sent": "Octets envoyés",
+    "label.cache.mode": "Type Write-cache",
+    "label.cancel": "Annuler",
+    "label.capacity": "Capacité",
+    "label.capacity.bytes": "Capacité Octets",
+    "label.capacity.iops": "Capacité IOPS",
+    "label.certificate": "Certificat",
+    "label.change.affinity": "Changer Affinité",
+    "label.change.ipaddress": "Changer adresse IP pour NIC",
+    "label.change.service.offering": "Modifier Offre Service",
+    "label.change.value": "Modifier la valeur",
+    "label.character": "Caractère",
+    "label.chassis": "Châssis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR ou Compte/Groupe de sécurité",
+    "label.cidr.list": "CIDR Source",
+    "label.cisco.nexus1000v.ip.address": "Adresse IP Nexus 1000v",
+    "label.cisco.nexus1000v.password": "Mot de passe Nexus 1000v",
+    "label.cisco.nexus1000v.username": "Identifiant Nexus 1000v",
+    "label.ciscovnmc.resource.details": "Détails ressource CiscoVNMC",
+    "label.clean.up": "Nettoyage",
+    "label.clear.list": "Purger la liste",
+    "label.close": "Fermer",
+    "label.cloud.console": "Console d'Administration du Cloud",
+    "label.cloud.managed": "Géré par Cloud.com",
+    "label.cluster": "Cluster",
+    "label.cluster.name": "Nom du cluster",
+    "label.cluster.type": "Type de Cluster",
+    "label.clusters": "Clusters",
+    "label.clvm": "CLVM",
+    "label.code": "Code",
+    "label.community": "Communauté",
+    "label.compute": "Processeur",
+    "label.compute.and.storage": "Calcul et Stockage",
+    "label.compute.offering": "Offre de calcul",
+    "label.compute.offerings": "Offres de Calcul",
+    "label.configuration": "Configuration",
+    "label.configure": "Configurer",
+    "label.configure.ldap": "Configurer LDAP",
+    "label.configure.network.ACLs": "Configurer les règles d'accès réseau ACL",
+    "label.configure.sticky.policy": "Configurer Stratégie Sticky",
+    "label.configure.vpc": "Configurer le VPC",
+    "label.confirm.password": "Confirmer le mot de passe",
+    "label.confirmation": "Confirmation",
+    "label.congratulations": "Félicitations !",
+    "label.conserve.mode": "Conserver le mode",
+    "label.console.proxy": "Console proxy",
+    "label.console.proxy.vm": "VM Console Proxy",
+    "label.continue": "Continuer",
+    "label.continue.basic.install": "Continuer avec l'installation basique",
+    "label.copying.iso": "Copie ISO",
+    "label.corrections.saved": "Modifications enregistrées",
+    "label.counter": "Compteur",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU allouée",
+    "label.cpu.allocated.for.VMs": "CPU allouée aux VMs",
+    "label.cpu.limits": "Limites CPU",
+    "label.cpu.mhz": "CPU (en MHz)",
+    "label.cpu.utilized": "CPU utilisée",
+    "label.create.VPN.connection": "Créer une connexion VPN",
+    "label.create.nfs.secondary.staging.storage": "Créer le Stockage Secondaire Intermédiaire NFS",
+    "label.create.nfs.secondary.staging.store": "Créer le stockage secondaire intermédiaire NFS",
+    "label.create.project": "Créer un projet",
+    "label.create.ssh.key.pair": "Créer une bi-clé SSH",
+    "label.create.template": "Créer un modèle",
+    "label.created": "Créé",
+    "label.created.by.system": "Créé par le système",
+    "label.cross.zones": "Multi Zones",
+    "label.custom": "Personnalisé",
+    "label.custom.disk.iops": "IOPS personnalisé",
+    "label.custom.disk.offering": "Offre de disque personnalisée",
+    "label.custom.disk.size": "Personalisable",
+    "label.daily": "Quotidien",
+    "label.data.disk.offering": "Offre de disque de données",
+    "label.date": "Date",
+    "label.day": "Jour",
+    "label.day.of.month": "Jour du mois",
+    "label.day.of.week": "Jour de la semaine",
+    "label.dc.name": "Nom DC",
+    "label.dead.peer.detection": "Détection de pair mort",
+    "label.decline.invitation": "Refuser l'invitation",
+    "label.dedicate": "Dédier",
+    "label.dedicate.cluster": "Dédier Cluster",
+    "label.dedicate.host": "Dédier Hôte",
+    "label.dedicate.pod": "Dédier Pod",
+    "label.dedicate.vlan.vni.range": "Plage VLAN/VNI dédiée",
+    "label.dedicate.zone": "Dédier Zone",
+    "label.dedicated": "Dédié",
+    "label.dedicated.vlan.vni.ranges": "Plages VLAN/VNI dédiées",
+    "label.default": "Par défaut",
+    "label.default.egress.policy": "Politique Egress par défaut",
+    "label.default.use": "Utilisation par défaut",
+    "label.default.view": "Vue par défaut",
+    "label.delete": "Supprimer",
+    "label.delete.BigSwitchBcf": "Supprimer contrôleur BigSwitch BCF",
+    "label.delete.BrocadeVcs": "Supprimer Brocade Vcs Switch",
+    "label.delete.F5": "Supprimer F5",
+    "label.delete.NetScaler": "Supprimer Netscaler",
+    "label.delete.NiciraNvp": "Supprimer un contrôleur Nvp",
+    "label.delete.NuageVsp": "Supprimer Nuage VSD",
+    "label.delete.OpenDaylight.device": "Supprimer contrôleur OpenDaylight",
+    "label.delete.PA": "Supprimer Palo Alto",
+    "label.delete.SRX": "Supprimer SRX",
+    "label.delete.VPN.connection": "Supprimer la connexion VPN",
+    "label.delete.VPN.customer.gateway": "Supprimer la passerelle VPN client",
+    "label.delete.VPN.gateway": "Supprimer la passerelle VPN",
+    "label.delete.acl.list": "Supprimer Liste ACL",
+    "label.delete.affinity.group": "Supprimer le groupe d'affinité",
+    "label.delete.alerts": "Supprimer alertes",
+    "label.delete.baremetal.rack.configuration": "Supprimer Configuration Rack Baremetal",
+    "label.delete.ciscoASA1000v": "Supprimer CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Supprimer ressource CiscoVNMC",
+    "label.delete.events": "Supprimer événements",
+    "label.delete.gateway": "Supprimer la passerelle",
+    "label.delete.internal.lb": "Supprimer LB interne",
+    "label.delete.portable.ip.range": "Supprimer Plage IP portable",
+    "label.delete.profile": "Supprimer Profil",
+    "label.delete.project": "Supprimer projet",
+    "label.delete.role": "Supprimer Rôle",
+    "label.delete.secondary.staging.store": "Supprimer Stockage Secondaire Intermédiaire",
+    "label.delete.ucs.manager": "Supprimer Gestionnaire UCS",
+    "label.delete.vpn.user": "Supprimer l'utilisateur VPN",
+    "label.deleting.failed": "Suppression échouée",
+    "label.deleting.processing": "Suppression...",
+    "label.deny": "Interdire",
+    "label.deployment.planner": "Planning déploiement",
+    "label.description": "Description",
+    "label.destination.physical.network.id": "Identifiant du réseau physique de destination",
+    "label.destination.zone": "Zone de destination",
+    "label.destroy": "Détruire",
+    "label.destroy.router": "Supprimer le routeur",
+    "label.destroy.vm.graceperiod": "Détruire Période de grâce VM",
+    "label.detaching.disk": "Détacher le disque",
+    "label.details": "Détails",
+    "label.device.id": "ID du périphérique",
+    "label.devices": "Machines",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "IP publique attachée directement",
+    "label.direct.ips": "Adresses IP du réseau partagé",
+    "label.disable.autoscale": "Désactiver Autoscale",
+    "label.disable.host": "Désactiver Hôte",
+    "label.disable.network.offering": "Désactiver Offre de réseau",
+    "label.disable.provider": "Désactiver ce fournisseur",
+    "label.disable.vnmc.provider": "Désactiver fournisseur VNMC",
+    "label.disable.vpc.offering": "Désactiver offre VPC",
+    "label.disable.vpn": "Désactiver le VPN",
+    "label.disabled": "Désactivé",
+    "label.disabling.vpn.access": "Désactiver l'accès VPN",
+    "label.disassociate.profile.blade": "Dé-associer le Profil de la Lame",
+    "label.disbale.vnmc.device": "Désactiver VNMC",
+    "label.disk.allocated": "Disque Alloué",
+    "label.disk.bytes.read.rate": "Débit lecture disque (BPS)",
+    "label.disk.bytes.write.rate": "Débit écriture disque (BPS)",
+    "label.disk.iops.max": "IOPS maximum",
+    "label.disk.iops.min": "IOPS minimum",
+    "label.disk.iops.read.rate": "Débit lecture disque (IOPS)",
+    "label.disk.iops.total": "IOPS Total",
+    "label.disk.iops.write.rate": "Débit écriture disque (IOPS)",
+    "label.disk.offering": "Offre de Disque",
+    "label.disk.offering.details": "Détails offre de disque",
+    "label.disk.provisioningtype": "Type de provisionnement",
+    "label.disk.read.bytes": "Lecture Disque (Octets)",
+    "label.disk.read.io": "Lecture Disque (IO)",
+    "label.disk.size": "Capacité disque",
+    "label.disk.size.gb": "Capacité disque (Go)",
+    "label.disk.total": "Espace disque total",
+    "label.disk.volume": "Volume disque",
+    "label.disk.write.bytes": "Écriture Disque (Octets)",
+    "label.disk.write.io": "Écriture Disque (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Nom d'affichage",
+    "label.display.text": "Texte affiché",
+    "label.distributedrouter": "Routeur Distribué",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Domaine",
+    "label.domain.admin": "Administrateur du domaine",
+    "label.domain.details": "Détails domaine",
+    "label.domain.id": "ID du domaine",
+    "label.domain.lower": "domaine",
+    "label.domain.name": "Nom de domaine",
+    "label.domain.router": "Routeur du domaine",
+    "label.domain.suffix": "Suffixe de domaine DNS (i.e., xyz.com)",
+    "label.done": "Terminé",
+    "label.double.quotes.are.not.allowed": "Les guillemets ne sont pas autorisées",
+    "label.download.progress": "Progression du téléchargement",
+    "label.drag.new.position": "Déplacer sur une autre position",
+    "label.duration.in.sec": "Durée (en sec)",
+    "label.dynamically.scalable": "Dimensionnement dynamique",
+    "label.edit": "Modifier",
+    "label.edit.acl.rule": "Modifier règle ACL",
+    "label.edit.affinity.group": "Modifier le groupe d'affinité",
+    "label.edit.lb.rule": "Modifier la règle LB",
+    "label.edit.network.details": "Modifier les paramètres réseau",
+    "label.edit.project.details": "Modifier les détails du projet",
+    "label.edit.region": "Éditer Région",
+    "label.edit.role": "Éditer Rôle",
+    "label.edit.rule": "Modifier règle",
+    "label.edit.secondary.ips": "Éditer IPs secondaires",
+    "label.edit.tags": "Modifier les balises",
+    "label.edit.traffic.type": "Modifier le type de trafic",
+    "label.edit.vpc": "Modifier le VPC",
+    "label.egress.default.policy": "Politique par défaut Egress",
+    "label.egress.rule": "Règle sortante",
+    "label.egress.rules": "Règles de sortie",
+    "label.elastic": "Élastique",
+    "label.elastic.IP": "IP extensible",
+    "label.elastic.LB": "Répartition de charge extensible",
+    "label.email": "Email",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Activer Autoscale",
+    "label.enable.host": "Activer Hôte",
+    "label.enable.network.offering": "Activer Offre de réseau",
+    "label.enable.provider": "Activer le fournisseur",
+    "label.enable.s3": "Activer le stockage secondaire de type S3",
+    "label.enable.swift": "Activer Swift",
+    "label.enable.vnmc.device": "Activer VNMC",
+    "label.enable.vnmc.provider": "Activer fournisseur VNMC",
+    "label.enable.vpc.offering": "Activer offre VPC",
+    "label.enable.vpn": "Activer VPN",
+    "label.enabling.vpn": "Activation du VPN",
+    "label.enabling.vpn.access": "Activation de l'accès VPN",
+    "label.end.IP": "IP fin plage",
+    "label.end.port": "Port de fin",
+    "label.end.reserved.system.IP": "Adresse IP de fin réservée Système",
+    "label.end.vlan": "Fin VLAN",
+    "label.end.vxlan": "Fin VXLAN",
+    "label.endpoint": "Terminaison",
+    "label.endpoint.or.operation": "Terminaison ou Opération",
+    "label.enter.token": "Entrez le jeton unique",
+    "label.error": "Erreur",
+    "label.error.code": "Code d'erreur",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "Hôte ESX/ESXi",
+    "label.event": "Événement",
+    "label.event.archived": "Événement archivé",
+    "label.event.deleted": "Événement supprimé",
+    "label.every": "Tous",
+    "label.example": "Exemple",
+    "label.expunge": "Purger",
+    "label.external.link": "Lien externe",
+    "label.extractable": "Téléchargeable",
+    "label.extractable.lower": "Téléchargeable",
+    "label.f5": "F5",
+    "label.f5.details": "Détails F5",
+    "label.failed": "Échoué",
+    "label.featured": "Sponsorisé",
+    "label.fetch.latest": "Rafraîchir",
+    "label.filterBy": "Filtre",
+    "label.fingerprint": "Empreinte",
+    "label.firewall": "Pare-feu",
+    "label.first.name": "Prénom",
+    "label.firstname.lower": "prénom",
+    "label.format": "Format",
+    "label.format.lower": "format",
+    "label.friday": "Vendredi",
+    "label.full": "Complet",
+    "label.full.path": "Chemin complet",
+    "label.gateway": "Passerelle",
+    "label.general.alerts": "Alertes générales",
+    "label.generating.url": "Génération de l'URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "Configuration GloboDNS",
+    "label.gluster.volume": "Volume",
+    "label.go.step.2": "Aller à l'étape 2",
+    "label.go.step.3": "Aller à l'étape 3",
+    "label.go.step.4": "Aller à l'étape 4",
+    "label.go.step.5": "Aller à l'étape 5",
+    "label.gpu": "GPU",
+    "label.group": "Groupe",
+    "label.group.by.account": "Regrouper par compte",
+    "label.group.by.cluster": "Regrouper par cluster",
+    "label.group.by.pod": "Regrouper par pod",
+    "label.group.by.zone": "Regrouper par zone",
+    "label.group.optional": "Groupe (optionnel)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Répartition de charge assignée",
+    "label.gslb.assigned.lb.more": "Assigner plus de répartition de charge",
+    "label.gslb.delete": "Supprimer GSLB",
+    "label.gslb.details": "Détails GSLB",
+    "label.gslb.domain.name": "Nom de domaine GSLB",
+    "label.gslb.lb.details": "Détails répartition de charge",
+    "label.gslb.lb.remove": "Supprimer répartition de charge depuis ce GSLB",
+    "label.gslb.lb.rule": "Règle de répartition de charge",
+    "label.gslb.service": "Service GSLB",
+    "label.gslb.service.private.ip": "IP privée service GSLB",
+    "label.gslb.service.public.ip": "IP publique service GSLB",
+    "label.gslb.servicetype": "Type service",
+    "label.guest": "Invité",
+    "label.guest.cidr": "CIDR invité",
+    "label.guest.end.ip": "Adresse IP de fin pour les invités",
+    "label.guest.gateway": "Passerelle pour les invités",
+    "label.guest.ip": "Adresse IP des invités",
+    "label.guest.ip.range": "Plage d'adresses IP des invités",
+    "label.guest.netmask": "Masque de réseau des invités",
+    "label.guest.network.details": "Détails réseau invité",
+    "label.guest.networks": "Réseaux d'invité",
+    "label.guest.start.ip": "Adresse IP de début pour les invités",
+    "label.guest.traffic": "Trafic invité",
+    "label.guest.traffic.vswitch.name": "Nom Trafic Invité vSwitch",
+    "label.guest.traffic.vswitch.type": "Type Trafic Invité vSwitch",
+    "label.guest.type": "Type d'invité",
+    "label.ha.enabled": "Haute disponibilité activée",
+    "label.health.check": "Vérification statut",
+    "label.health.check.advanced.options": "Options avancées :",
+    "label.health.check.configurations.options": "Options de configuration :",
+    "label.health.check.interval.in.sec": "Fréquence de vérification d'état (sec)",
+    "label.health.check.message.desc": "Votre répartiteur de charge va automatiquement effectuer des vérifications d'état sur vos instances CloudStack et router seulement le trafic vers les instances ayant passées les vérifications avec succès",
+    "label.health.check.wizard": "Assistant Vérification Santé",
+    "label.healthy.threshold": "Seuil d'état",
+    "label.help": "Aide",
+    "label.hide.ingress.rule": "Cacher la règle d'entrée",
+    "label.hints": "Astuces",
+    "label.home": "Accueil",
+    "label.host": "Hôte",
+    "label.host.MAC": "Adresse MAC hôte",
+    "label.host.alerts": "Hôtes en état d'Alerte",
+    "label.host.name": "Nom d'hôte",
+    "label.host.tag": "Etiquette hôte",
+    "label.host.tags": "Étiquettes d'hôte",
+    "label.hosts": "Hôtes",
+    "label.hourly": "Chaque heure",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "Libellé trafic HyperV",
+    "label.hypervisor": "Hyperviseur",
+    "label.hypervisor.capabilities": "Fonctions hyperviseur",
+    "label.hypervisor.snapshot.reserve": "Réserve d'instantanée de l'Hyperviseur",
+    "label.hypervisor.type": "Type d'hyperviseur",
+    "label.hypervisor.version": "Version hyperviseur",
+    "label.hypervisors": "Hyperviseurs",
+    "label.id": "ID",
+    "label.info": "Information",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Règle d'entrée",
+    "label.initiated.by": "Initié par",
+    "label.inside.port.profile": "Profil Port entrant",
+    "label.installWizard.addClusterIntro.subtitle": "Qu'est ce qu'un cluster ?",
+    "label.installWizard.addClusterIntro.title": "Ajoutons un cluster",
+    "label.installWizard.addHostIntro.subtitle": "Qu'est ce qu'un hôte ?",
+    "label.installWizard.addHostIntro.title": "Ajoutons un hôte",
+    "label.installWizard.addPodIntro.subtitle": "Qu'est ce qu'un pod ?",
+    "label.installWizard.addPodIntro.title": "Ajoutons un pod",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Qu'est ce que le stockage primaire ?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Ajoutons du stockage primaire",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Qu'est ce que le stockage secondaire ?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Ajoutons du stockage secondaire",
+    "label.installWizard.addZone.title": "Ajouter une zone",
+    "label.installWizard.addZoneIntro.subtitle": "Qu'est ce qu'une zone ?",
+    "label.installWizard.addZoneIntro.title": "Ajoutons une zone",
+    "label.installWizard.click.launch": "Appuyer sur le bouton démarrer.",
+    "label.installWizard.subtitle": "Ce tutoriel vous aidera à configurer votre installation CloudStack&#8482;",
+    "label.installWizard.title": "Bonjour et bienvenue dans CloudStack&#8482;",
+    "label.instance": "Instance",
+    "label.instance.limits": "Limites des instances",
+    "label.instance.name": "Nom de l'instance",
+    "label.instance.port": "Port Instance",
+    "label.instance.scaled.up": "Instance agrandie",
+    "label.instances": "Instances",
+    "label.instanciate.template.associate.profile.blade": "Instancier Modèle et Profil associé à la Lame",
+    "label.intermediate.certificate": "Certificat intermédiaire {0}",
+    "label.internal.dns.1": "DNS interne 1",
+    "label.internal.dns.2": "DNS interne 2",
+    "label.internal.lb": "Répartiteur interne",
+    "label.internal.lb.details": "Détails du LB interne",
+    "label.internal.name": "Nom interne",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "Type d'intervalle",
+    "label.introduction.to.cloudstack": "Introduction à CloudStack&#8482;",
+    "label.invalid.integer": "Nombre entier invalide",
+    "label.invalid.number": "Nombre invalide",
+    "label.invitations": "Invitations",
+    "label.invite": "Inviter",
+    "label.invite.to": "Inviter sur",
+    "label.invited.accounts": "Comptes invités",
+    "label.ip": "IP",
+    "label.ip.address": "Adresse IP",
+    "label.ip.allocations": "Allocations de IPs",
+    "label.ip.limits": "Limite de IPs publiques",
+    "label.ip.or.fqdn": "IP ou FQDN",
+    "label.ip.range": "Plage IP",
+    "label.ip.ranges": "Plages IP",
+    "label.ipaddress": "Adresse IP",
+    "label.ips": "Adresse IP",
+    "label.ipv4.cidr": "CIDR IPv4",
+    "label.ipv4.dns1": "DNS1 IPv4",
+    "label.ipv4.dns2": "DNS2 IPv4",
+    "label.ipv4.end.ip": "IP fin IPv4",
+    "label.ipv4.gateway": "Passerelle IPv4",
+    "label.ipv4.netmask": "Masque de réseau IPv4",
+    "label.ipv4.start.ip": "IP début IPv4",
+    "label.ipv6.CIDR": "CIDR IPv6",
+    "label.ipv6.address": "Adresse IPv6",
+    "label.ipv6.dns1": "DNS1 IPv6",
+    "label.ipv6.dns2": "DNS2 IPv6",
+    "label.ipv6.end.ip": "IP fin IPv6",
+    "label.ipv6.gateway": "Passerelle IPv6",
+    "label.ipv6.start.ip": "IP début IPv6",
+    "label.is.default": "Est par défaut",
+    "label.is.redundant.router": "Redondant",
+    "label.is.shared": "Est partagé",
+    "label.is.system": "Est Système",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "Démarrage par ISO",
+    "label.isolated.networks": "Réseaux isolés",
+    "label.isolation.method": "Isolation",
+    "label.isolation.mode": "Mode d'isolation",
+    "label.isolation.uri": "URI d'isolation",
+    "label.item.listing": "Liste des éléments",
+    "label.japanese.keyboard": "Clavier japonais",
+    "label.keep": "Conserver",
+    "label.keep.colon": "Conserver :",
+    "label.key": "Clef",
+    "label.keyboard.language": "Langage clavier",
+    "label.keyboard.type": "Type de clavier",
+    "label.kvm.traffic.label": "Libellé trafic KVM",
+    "label.label": "Libellé",
+    "label.lang.arabic": "Arabe",
+    "label.lang.brportugese": "Portuguais Brésil",
+    "label.lang.catalan": "Catalan",
+    "label.lang.chinese": "Chinois (simplifié)",
+    "label.lang.dutch": "Néerlandais",
+    "label.lang.english": "Anglais",
+    "label.lang.french": "Français",
+    "label.lang.german": "Allemand",
+    "label.lang.hungarian": "Hongrois",
+    "label.lang.italian": "Italien",
+    "label.lang.japanese": "Japonais",
+    "label.lang.korean": "Coréen",
+    "label.lang.norwegian": "Norvégien",
+    "label.lang.polish": "Polonais",
+    "label.lang.russian": "Russe",
+    "label.lang.spanish": "Espagnol",
+    "label.last.disconnected": "Dernière Déconnexion",
+    "label.last.name": "Nom",
+    "label.lastname.lower": "nom",
+    "label.latest.events": "Derniers événements",
+    "label.launch": "Démarrer",
+    "label.launch.vm": "Démarrer VM",
+    "label.launch.zone": "Démarrer la zone",
+    "label.lb.algorithm.leastconn": "Le moins de connexions",
+    "label.lb.algorithm.roundrobin": "Cyclique",
+    "label.lb.algorithm.source": "Origine",
+    "label.ldap.configuration": "Configuration LDAP",
+    "label.ldap.group.name": "Groupe LDAP",
+    "label.ldap.link.type": "Type",
+    "label.ldap.port": "Port LDAP",
+    "label.level": "Niveau",
+    "label.link.domain.to.ldap": "Lien Domaine vers LDAP",
+    "label.linklocal.ip": "Adresse IP lien local",
+    "label.load.balancer": "Répartiteur de charge",
+    "label.load.balancer.type": "Type Répartiteur de charge",
+    "label.load.balancing": "Répartition de charge",
+    "label.load.balancing.policies": "Règles de répartition de charge",
+    "label.loading": "Chargement en cours",
+    "label.local": "Local",
+    "label.local.file": "Fichier local",
+    "label.local.storage": "Stockage local",
+    "label.local.storage.enabled": "Activer le stockage local pour les VMs Utilisateurs",
+    "label.local.storage.enabled.system.vms": "Activer le stockage local pour les VMs Systèmes",
+    "label.login": "Connexion",
+    "label.logout": "Déconnexion",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "Libellé trafic LXC",
+    "label.make.project.owner": "Devenir propriétaire du projet",
+    "label.make.redundant": "Rendre redondant",
+    "label.manage": "Géré",
+    "label.manage.resources": "Gérer les ressources",
+    "label.managed": "Géré",
+    "label.management": "Administration",
+    "label.management.ips": "Adresses IP de gestion",
+    "label.management.server": "Serveur de gestion",
+    "label.max.cpus": "Nombre coeurs CPU max.",
+    "label.max.guest.limit": "Nombre maximum d'invités",
+    "label.max.instances": "Instance Max.",
+    "label.max.memory": "Mémoire max. (Mo)",
+    "label.max.networks": "Réseaux Max.",
+    "label.max.primary.storage": "Principal max. (Go)",
+    "label.max.public.ips": "Max. IP publiques",
+    "label.max.secondary.storage": "Secondaire max. (Go)",
+    "label.max.snapshots": "Max instantanées",
+    "label.max.templates": "Max. modèles",
+    "label.max.vms": "Max. VMs utilisateur",
+    "label.max.volumes": "Max. volumes",
+    "label.max.vpcs": "Max. VPCs",
+    "label.maximum": "Maximum",
+    "label.may.continue": "Vous pouvez continuer.",
+    "label.md5.checksum": "Empreinte MD5",
+    "label.memory": "Mémoire (en Mo)",
+    "label.memory.allocated": "Mémoire allouée",
+    "label.memory.limits": "Limites mémoire (Mo)",
+    "label.memory.mb": "Mémoire (en MB)",
+    "label.memory.total": "Mémoire totale",
+    "label.memory.used": "Mémoire utilisée",
+    "label.menu.accounts": "Comptes",
+    "label.menu.alerts": "Alertes",
+    "label.menu.all.accounts": "Tous les comptes",
+    "label.menu.all.instances": "Toutes les instances",
+    "label.menu.community.isos": "ISO de la communauté",
+    "label.menu.community.templates": "Modèles de la communauté",
+    "label.menu.configuration": "Configuration",
+    "label.menu.dashboard": "Tableau de bord",
+    "label.menu.destroyed.instances": "Instances détruites",
+    "label.menu.disk.offerings": "Offres de Disque",
+    "label.menu.domains": "Domaines",
+    "label.menu.events": "Événements",
+    "label.menu.featured.isos": "ISOs Sponsorisées",
+    "label.menu.featured.templates": "Modèles sponsorisés",
+    "label.menu.global.settings": "Paramètres globaux",
+    "label.menu.infrastructure": "Infrastructure",
+    "label.menu.instances": "Instances",
+    "label.menu.ipaddresses": "Adresses IP",
+    "label.menu.isos": "ISOs",
+    "label.menu.my.accounts": "Mes comptes",
+    "label.menu.my.instances": "Mes instances",
+    "label.menu.my.isos": "Mes ISOs",
+    "label.menu.my.templates": "Mes modèles",
+    "label.menu.network": "Réseau",
+    "label.menu.network.offerings": "Offres de Réseau",
+    "label.menu.physical.resources": "Ressources physiques",
+    "label.menu.regions": "Régions",
+    "label.menu.running.instances": "Instances actives",
+    "label.menu.security.groups": "Groupes de sécurité",
+    "label.menu.service.offerings": "Offres de Service",
+    "label.menu.snapshots": "Instantanés",
+    "label.menu.sshkeypair": "Bi-clé SSH",
+    "label.menu.stopped.instances": "Instances Arrêtées",
+    "label.menu.storage": "Stockage",
+    "label.menu.system": "Système",
+    "label.menu.system.service.offerings": "Offres de Système",
+    "label.menu.system.vms": " VMs Systèmes",
+    "label.menu.templates": "Modèles",
+    "label.menu.virtual.appliances": "Appliances Virtuelles",
+    "label.menu.virtual.resources": "Ressources Virtuelles",
+    "label.menu.volumes": "Volumes",
+    "label.menu.vpc.offerings": "Offres de VPC",
+    "label.metrics": "Métriques",
+    "label.metrics.allocated": "Alloué",
+    "label.metrics.clusters": "Clusters",
+    "label.metrics.cpu.allocated": "Allocation CPU",
+    "label.metrics.cpu.max.dev": "Écart",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "Util. CPU",
+    "label.metrics.cpu.used.avg": "Utilisé",
+    "label.metrics.disk": "Disque",
+    "label.metrics.disk.allocated": "Alloué",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Lecture",
+    "label.metrics.disk.size": "Capacité",
+    "label.metrics.disk.storagetype": "Type",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Non alloué",
+    "label.metrics.disk.usage": "Util. Disque",
+    "label.metrics.disk.used": "Utilisé",
+    "label.metrics.disk.write": "Écriture",
+    "label.metrics.hosts": "Hôtes",
+    "label.metrics.memory.allocated": "Allocation Mém.",
+    "label.metrics.memory.max.dev": "Écart",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Util. Mém.",
+    "label.metrics.memory.used.avg": "Utilisé",
+    "label.metrics.name": "Nom",
+    "label.metrics.network.read": "Lecture",
+    "label.metrics.network.usage": "Util. Réseau",
+    "label.metrics.network.write": "Écriture",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Status Alimentation",
+    "label.metrics.property": "Propriété",
+    "label.metrics.scope": "Portée",
+    "label.metrics.state": "État",
+    "label.metrics.storagepool": "Pool de stockage",
+    "label.metrics.vm.name": "Nom VM",
+    "label.migrate.instance.to": "Migrer l'instance vers",
+    "label.migrate.instance.to.host": "Migration de l'instance sur un autre hôte",
+    "label.migrate.instance.to.ps": "Migration de l'instance sur un autre stockage primaire",
+    "label.migrate.lb.vm": "Migrer LB VM",
+    "label.migrate.router.to": "Migrer le routeur vers",
+    "label.migrate.systemvm.to": "Migrer la VM système vers",
+    "label.migrate.to.host": "Migrer vers un hôte",
+    "label.migrate.to.storage": "Migrer vers un stockage",
+    "label.migrate.volume": "Volume Migré",
+    "label.migrate.volume.to.primary.storage": "Migration du volume vers un autre stockage primaire",
+    "label.min.instances": "Instances Min.",
+    "label.min.past.the.hr": "min ap. l'heure",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "minute(s) après l'heure",
+    "label.minutes.past.hour": "minute(s) après l'heure",
+    "label.mode": "Mode",
+    "label.monday": "Lundi",
+    "label.monthly": "Mensuel",
+    "label.more.templates": "Plus de modèles",
+    "label.move.down.row": "Descendre d'un niveau",
+    "label.move.to.bottom": "Déplacer en bas",
+    "label.move.to.top": "Placer au dessus",
+    "label.move.up.row": "Monter d'un niveau",
+    "label.my.account": "Mon compte",
+    "label.my.network": "Mon réseau",
+    "label.my.templates": "Mes modèles",
+    "label.na": "N/A",
+    "label.name": "Nom",
+    "label.name.lower": "name",
+    "label.name.optional": "Nom (optionnel)",
+    "label.nat.port.range": "Plage de port NAT",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Masque de réseau",
+    "label.netscaler.details": "Détails NetScaler",
+    "label.network": "Réseau",
+    "label.network.ACL": "Règles d'accès réseau ACL",
+    "label.network.ACL.total": "Total Règles d'accès réseau",
+    "label.network.ACLs": "Règles d'accès réseau",
+    "label.network.addVM": "Ajouter réseau à la VM",
+    "label.network.cidr": "CIDR réseau",
+    "label.network.desc": "Description réseau",
+    "label.network.details": "Détails réseau",
+    "label.network.device": "Équipement Réseau",
+    "label.network.device.type": "Type d'équipement réseau",
+    "label.network.domain": "Nom de domaine",
+    "label.network.domain.text": "Domaine réseau",
+    "label.network.id": "ID réseau",
+    "label.network.label.display.for.blank.value": "Utiliser la passerelle par défaut",
+    "label.network.limits": "Limites réseau",
+    "label.network.name": "Nom du réseau",
+    "label.network.offering": "Offre de Réseau",
+    "label.network.offering.details": "Détails offre de réseau",
+    "label.network.offering.display.text": "Texte affiché Offre Réseau",
+    "label.network.offering.id": "ID Offre Réseau",
+    "label.network.offering.name": "Nom Offre Réseau",
+    "label.network.rate": "Débit Réseau",
+    "label.network.rate.megabytes": "Débit réseau (Mo/s)",
+    "label.network.read": "Lecture réseau",
+    "label.network.service.providers": "Fournisseurs de service réseau",
+    "label.network.type": "Type de réseau",
+    "label.network.write": "Écriture réseau",
+    "label.networking.and.security": "Réseau et sécurité",
+    "label.networks": "Réseaux",
+    "label.new": "Nouveau",
+    "label.new.password": "Nouveau mot de passe",
+    "label.new.project": "Nouveau projet",
+    "label.new.ssh.key.pair": "Nouvelle bi-clé SSH",
+    "label.new.vm": "Nouvelle VM",
+    "label.next": "Suivant",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "Serveur NFS",
+    "label.nfs.storage": "Stockage NFS",
+    "label.nic.adapter.type": "Type de carte réseau",
+    "label.nicira.controller.address": "Adresse du contrôleur",
+    "label.nicira.l2gatewayserviceuuid": "Uuid du service passerelle L2",
+    "label.nicira.l3gatewayserviceuuid": "Uuid du service passerelle L3",
+    "label.nicira.nvp.details": "Détails Nicira NVP",
+    "label.nicira.transportzoneuuid": "Uuid de la Zone Transport",
+    "label.nics": "Cartes NIC",
+    "label.no": "Non",
+    "label.no.actions": "Aucune action disponible",
+    "label.no.alerts": "Aucune alerte récente",
+    "label.no.data": "Aucune donnée",
+    "label.no.errors": "Aucune erreur récente",
+    "label.no.grouping": "(pas de groupement)",
+    "label.no.isos": "Aucun ISOs disponible",
+    "label.no.items": "Aucun élément disponible",
+    "label.no.security.groups": "Aucun groupe de sécurité disponible",
+    "label.no.thanks": "Non merci",
+    "label.none": "Aucun",
+    "label.not.found": "Introuvable",
+    "label.notifications": "Messages",
+    "label.num.cpu.cores": "Nombre de cœurs",
+    "label.number.of.clusters": "Nombre de clusters",
+    "label.number.of.cpu.sockets": "Le nombre de sockets CPU",
+    "label.number.of.hosts": "Nombre d'Hôtes",
+    "label.number.of.pods": "Nombre de Pods",
+    "label.number.of.system.vms": "Nombre de VM Système",
+    "label.number.of.virtual.routers": "Nombre de routeurs virtuels",
+    "label.number.of.zones": "Nombre de zones",
+    "label.numretries": "Nombre de tentatives",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "du mois",
+    "label.offer.ha": "Offrir la haute disponibilité",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "Contrôleur OpenDaylight",
+    "label.opendaylight.controllerdetail": "Détails Contrôleur OpenDaylight",
+    "label.opendaylight.controllers": "Contrôleurs OpenDaylight",
+    "label.operator": "Opérateur",
+    "label.optional": "Facultatif",
+    "label.order": "Ordre",
+    "label.os.preference": "Préférence OS",
+    "label.os.type": "Type du OS",
+    "label.other": "Autre",
+    "label.outofbandmanagement": "Gestion flux administration",
+    "label.outofbandmanagement.action": "Action",
+    "label.outofbandmanagement.action.issue": "Problème dans l'allumage via la gestion du flux administration",
+    "label.outofbandmanagement.address": "Adresse",
+    "label.outofbandmanagement.changepassword": "Modifier le mot de passe du flux d'administration",
+    "label.outofbandmanagement.configure": "Configurer la gestion du flux d'administration",
+    "label.outofbandmanagement.disable": "Désactiver la gestion du flux d'administration",
+    "label.outofbandmanagement.driver": "Pilote",
+    "label.outofbandmanagement.enable": "Activer la gestion du flux d'administration",
+    "label.outofbandmanagement.password": "Mot de passe",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Re-saisir Mot de passe",
+    "label.outofbandmanagement.username": "Identifiant",
+    "label.override.guest.traffic": "Remplacer Trafic-invité",
+    "label.override.public.traffic": "Remplacer Trafic-public",
+    "label.ovm.traffic.label": "Libellé trafic OVM",
+    "label.ovm3.cluster": "Cluster natif",
+    "label.ovm3.pool": "Pool natif",
+    "label.ovm3.traffic.label": "Libellé trafic OVM3",
+    "label.ovm3.vip": "IP Maître Vip",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Adresses IP Publiques détenues",
+    "label.owner.account": "Propriétaire",
+    "label.owner.domain": "Propriétaire",
+    "label.palo.alto.details": "Détails Palo Alto",
+    "label.parent.domain": "Parent du Domaine",
+    "label.passive": "Passif",
+    "label.password": "Mot de passe",
+    "label.password.enabled": "Mot de passe activé",
+    "label.password.lower": "mot de passe",
+    "label.password.reset.confirm": "Le mot de passe a été ré-initialiser en",
+    "label.path": "Chemin",
+    "label.perfect.forward.secrecy": "Confidentialité persistante",
+    "label.permission": "Autorisation",
+    "label.persistent": "Persistant",
+    "label.physical.network": "Réseau physique",
+    "label.physical.network.ID": "Identifiant du réseau physique",
+    "label.physical.network.name": "Nom réseau physique",
+    "label.ping.path": "Chemin Ping",
+    "label.planner.mode": "Mode planification",
+    "label.please.complete.the.following.fields": "Veuillez remplir les champs suivants",
+    "label.please.specify.netscaler.info": "Renseigner les informations sur le Netscaler",
+    "label.please.wait": "Patientez s'il vous plait",
+    "label.plugin.details": "Détails extension",
+    "label.plugins": "Extensions",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod Dédié",
+    "label.pod.name": "Nom du pod",
+    "label.pods": "Pods",
+    "label.polling.interval.sec": "Intervalle d'appel (en sec)",
+    "label.port": "Port",
+    "label.port.forwarding": "Redirection de port",
+    "label.port.forwarding.policies": "Règles de transfert de port",
+    "label.port.range": "Plage de ports",
+    "label.portable.ip": "IP Portable",
+    "label.portable.ip.range.details": "Détails Plages IP portables",
+    "label.portable.ip.ranges": "Plages IP portables",
+    "label.portable.ips": "IPs portables",
+    "label.powerstate": "Status Alimentation",
+    "label.prev": "Précédent",
+    "label.previous": "Retour",
+    "label.primary.allocated": "Stockage primaire alloué",
+    "label.primary.network": "Réseau principal",
+    "label.primary.storage": "Stockages primaires",
+    "label.primary.storage.count": "Groupes de stockage primaire",
+    "label.primary.storage.limits": "Limites stockage primaire (Go)",
+    "label.primary.used": "Stockage primaire utilisé",
+    "label.private.Gateway": "Passerelle privée",
+    "label.private.interface": "Interface privée",
+    "label.private.ip": "Adresse IP Privée",
+    "label.private.ip.range": "Plage d'adresses IP Privées",
+    "label.private.ips": "Adresses IP Privées",
+    "label.private.key": "Clé privée",
+    "label.private.network": "Réseau privé",
+    "label.private.port": "Port privé",
+    "label.private.zone": "Zone Privée",
+    "label.privatekey": "Clé privée PKCS#8",
+    "label.profile": "Profil",
+    "label.project": "Projet",
+    "label.project.dashboard": "Tableau de bord projet",
+    "label.project.id": "ID projet",
+    "label.project.invite": "Inviter sur le projet",
+    "label.project.name": "Nom du projet",
+    "label.project.view": "Vue projet",
+    "label.projects": "Projets",
+    "label.protocol": "Protocole",
+    "label.protocol.number": "Numéro Protocole",
+    "label.provider": "Fournisseur",
+    "label.providers": "Fournisseurs",
+    "label.public": "Publique",
+    "label.public.interface": "Interface publique",
+    "label.public.ip": "Adresse IP publique",
+    "label.public.ips": "Adresses IP publiques",
+    "label.public.key": "Clé publique",
+    "label.public.lb": "Répartiteur public",
+    "label.public.load.balancer.provider": "Fournisseur répartition de charge public",
+    "label.public.network": "Réseau public",
+    "label.public.port": "Port public",
+    "label.public.traffic": "Trafic public",
+    "label.public.traffic.vswitch.name": "Nom Trafic Public vSwitch",
+    "label.public.traffic.vswitch.type": "Type Trafic Public vSwitch",
+    "label.public.zone": "Zone publique",
+    "label.purpose": "Rôle",
+    "label.qos.type": "Type de QoS",
+    "label.quickview": "Aperçu",
+    "label.quiesce.vm": "Mettre en veille VM",
+    "label.quiet.time.sec": "Quiet Time (en sec)",
+    "label.quota.add.credits": "Ajouter Crédits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Configuration Quota",
+    "label.quota.configure": "Configurer Quota",
+    "label.quota.credit": "Crédit",
+    "label.quota.credits": "Crédits",
+    "label.quota.date": "Date",
+    "label.quota.dates": "Mettre à jour Dates",
+    "label.quota.description": "Description Quota",
+    "label.quota.email.body": "Corps de message",
+    "label.quota.email.lastupdated": "Dernière mise à jour",
+    "label.quota.email.subject": "Sujet",
+    "label.quota.email.template": "Modèle d'email",
+    "label.quota.enddate": "Date fin",
+    "label.quota.endquota": "Fin Quota",
+    "label.quota.enforcequota": "Forcer Quota",
+    "label.quota.fullsummary": "Tous les comptes",
+    "label.quota.minbalance": "Balance Min.",
+    "label.quota.remove": "Supprimer Quota",
+    "label.quota.startdate": "Date début",
+    "label.quota.startquota": "Début Quota",
+    "label.quota.state": "État",
+    "label.quota.statement": "Relevé",
+    "label.quota.statement.balance": "Balance Quota",
+    "label.quota.statement.bydates": "Relevé",
+    "label.quota.statement.quota": "Utilisation Quota",
+    "label.quota.statement.tariff": "Tarif Quota",
+    "label.quota.summary": "Récapitulatif",
+    "label.quota.tariff": "Tarif",
+    "label.quota.tariff.edit": "Modifier Tarif",
+    "label.quota.tariff.effectivedate": "Date d'effet",
+    "label.quota.tariff.value": "Valeur Tarif",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Usage Total",
+    "label.quota.type.name": "Type Usage",
+    "label.quota.type.unit": "Unité d'usage",
+    "label.quota.usage": "Consommation Quota",
+    "label.quota.value": "Valeur Quota",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Utilisateur Cephx",
+    "label.rbd.monitor": "Superviseur Ceph",
+    "label.rbd.pool": "Pool Ceph",
+    "label.rbd.secret": "Secret Cephx",
+    "label.reboot": "Redémarrer",
+    "label.recent.errors": "Erreurs récentes",
+    "label.recover.vm": "Restaurer VM",
+    "label.redundant.router": "Routeur redondant",
+    "label.redundant.router.capability": "Router redondant",
+    "label.redundant.state": "État de la redondance",
+    "label.redundant.vpc": "VPC Redondant",
+    "label.refresh": "Actualiser",
+    "label.refresh.blades": "Rafraîchir Lames",
+    "label.region": "Région",
+    "label.region.details": "Détails Région",
+    "label.regionlevelvpc": "VPC niveau région",
+    "label.reinstall.vm": "Ré-installer VM",
+    "label.related": "Connexes",
+    "label.release.account": "Libérer compte",
+    "label.release.account.lowercase": "libérer compte",
+    "label.release.dedicated.cluster": "Libération du cluster dédie",
+    "label.release.dedicated.host": "Libération de l'hôte dédié",
+    "label.release.dedicated.pod": "Libération du pod dédié",
+    "label.release.dedicated.vlan.range": "Libérer plage VLAN dédiée",
+    "label.release.dedicated.zone": "Libérer la zone dédiée",
+    "label.remind.later": "Rappeler moi plus tard",
+    "label.remove.ACL": "Supprimer une règle ACL",
+    "label.remove.egress.rule": "Supprimer la règle sortante",
+    "label.remove.from.load.balancer": "Supprimer l'instance du répartiteur de charge",
+    "label.remove.ingress.rule": "Supprimer la règle entrante",
+    "label.remove.ip.range": "Supprimer la plage IP",
+    "label.remove.ldap": "Supprimer LDAP",
+    "label.remove.network.offering": "Supprimer Offre de réseau",
+    "label.remove.pf": "Supprimer la règle de transfert de port",
+    "label.remove.project.account": "Supprimer le compte projet",
+    "label.remove.region": "Supprimer région",
+    "label.remove.rule": "Supprimer la règle",
+    "label.remove.ssh.key.pair": "Supprimer bi-clé SSH",
+    "label.remove.static.nat.rule": "Supprimer le NAT statique",
+    "label.remove.static.route": "Supprimer une route statique",
+    "label.remove.this.physical.network": "Supprimer ce réseau physique",
+    "label.remove.tier": "Supprimer le tiers",
+    "label.remove.vm.from.lb": "Supprimer la VM de la règle de répartition de charge",
+    "label.remove.vm.load.balancer": "Supprimer VM du répartiteur de charge",
+    "label.remove.vmware.datacenter": "Supprimer un datacenter VMware",
+    "label.remove.vpc": "Supprimer le VPC",
+    "label.remove.vpc.offering": "Supprimer offre VPC",
+    "label.removing": "Suppression",
+    "label.removing.user": "Retrait de l'utilisateur",
+    "label.reource.id": "ID Ressource",
+    "label.replace.acl": "Remplacer ACL",
+    "label.replace.acl.list": "Remplacer Liste ACL",
+    "label.required": "Requis",
+    "label.requires.upgrade": "Mise à jour nécessaire",
+    "label.reserved.ip.range": "Plage IP réservée",
+    "label.reserved.system.gateway": "Passerelle réservée Système",
+    "label.reserved.system.ip": "Adresse IP Système réservée",
+    "label.reserved.system.netmask": "Masque de sous-réseau réservé Système",
+    "label.reset.VPN.connection": "Ré-initialiser la connexion VPN",
+    "label.reset.ssh.key.pair": "Ré-initialiser bi-clé SSH",
+    "label.reset.ssh.key.pair.on.vm": "Ré-initialiser bi-clé sur la VM",
+    "label.resetVM": "Ré-initialiser VM",
+    "label.resize.new.offering.id": "Nouvelle Offre",
+    "label.resize.new.size": "Nouvelle Taille (Go)",
+    "label.resize.shrink.ok": "Réduction OK",
+    "label.resource": "Ressource",
+    "label.resource.limit.exceeded": "Limite ressource dépassée",
+    "label.resource.limits": "Limite des ressources",
+    "label.resource.name": "Nom Ressource",
+    "label.resource.state": "État des ressources",
+    "label.resources": "Ressources",
+    "label.response.timeout.in.sec": "Délai d'attente de réponse (sec)",
+    "label.restart.network": "Redémarrage du réseau",
+    "label.restart.required": "Redémarrage nécessaire",
+    "label.restart.vpc": "Redémarrer le VPC",
+    "label.restore": "Restaurer",
+    "label.retry.interval": "Interval du nouvel essai",
+    "label.review": "Revoir",
+    "label.revoke.project.invite": "Révoquer l'invitation",
+    "label.role": "Rôle",
+    "label.roles": "Rôles",
+    "label.roletype": "Type Rôle",
+    "label.root.certificate": "Certificat racine",
+    "label.root.disk.controller": "Contrôleur de disque racine",
+    "label.root.disk.offering": "Offre de disque racine",
+    "label.root.disk.size": "Taille du disque principal (en Go)",
+    "label.router.vm.scaled.up": "VM Routeur agrandi",
+    "label.routing": "Routage",
+    "label.routing.host": "Hôte de routage",
+    "label.rule": "Règle",
+    "label.rule.number": "Numéro règle",
+    "label.rules": "Règles",
+    "label.running.vms": "VMs actives",
+    "label.s3.access_key": "Clé d'Accès",
+    "label.s3.bucket": "Seau",
+    "label.s3.connection_timeout": "Délai d'expiration de connexion",
+    "label.s3.endpoint": "Terminaison",
+    "label.s3.max_error_retry": "Nombre d'essai en erreur max.",
+    "label.s3.nfs.path": "Chemin NFS S3",
+    "label.s3.nfs.server": "Serveur NFS S3",
+    "label.s3.secret_key": "Clé privée",
+    "label.s3.socket_timeout": "Délai d'expiration de la socket",
+    "label.s3.use_https": "Utiliser HTTPS",
+    "label.saml.enable": "Autoriser SAML SSO",
+    "label.saml.entity": "Fournisseur d'identité",
+    "label.saturday": "Samedi",
+    "label.save": "Sauvegarder",
+    "label.save.and.continue": "Enregistrer et continuer",
+    "label.save.changes": "Sauver changements",
+    "label.saving.processing": "Sauvegarde en cours...",
+    "label.scale.up.policy": "POLITIQUE D'AGRANDISSEMENT",
+    "label.scaledown.policy": "Stratégie ScaleDown",
+    "label.scaleup.policy": "Stratégie ScaleUp",
+    "label.scope": "Portée",
+    "label.search": "Rechercher",
+    "label.secondary.ips": "IPs secondaires",
+    "label.secondary.isolated.vlan.id": "VLAN ID isolé secondaire",
+    "label.secondary.staging.store": "Stockage Secondaire Intermédiaire",
+    "label.secondary.staging.store.details": "Détails Stockage Secondaire Intermédiaire",
+    "label.secondary.storage": "Stockages secondaires",
+    "label.secondary.storage.count": "Groupes de stockage secondaire",
+    "label.secondary.storage.details": "Détails Stockage Secondaire",
+    "label.secondary.storage.limits": "Limites stockage secondaire (Go)",
+    "label.secondary.storage.vm": "VM stockage secondaire",
+    "label.secondary.used": "Stockage secondaire utilisé",
+    "label.secret.key": "Clé privée",
+    "label.security.group": "Groupe de sécurité",
+    "label.security.group.name": "Nom du groupe de sécurité",
+    "label.security.groups": "Groupes de sécurité",
+    "label.security.groups.enabled": "Groupes de sécurité Activés",
+    "label.select": "Sélectionner",
+    "label.select-view": "Sélectionner la vue",
+    "label.select.a.template": "Sélectionner un modèle",
+    "label.select.a.zone": "Sélectionner une zone",
+    "label.select.instance": "Sélectionner une instance",
+    "label.select.instance.to.attach.volume.to": "Sélectionner l'instance à laquelle rattacher ce volume",
+    "label.select.iso.or.template": "Sélectionner un ISO ou un modèle",
+    "label.select.offering": "Sélectionner une offre",
+    "label.select.project": "Sélectionner un projet",
+    "label.select.region": "Sélectionner région",
+    "label.select.template": "Sélectionner Modèle",
+    "label.select.tier": "Sélectionner le tiers",
+    "label.select.vm.for.static.nat": "Sélectionner une VM pour le NAT statique",
+    "label.sent": "Envoyé",
+    "label.server": "Serveur",
+    "label.service.capabilities": "Fonctions disponibles",
+    "label.service.offering": "Offre de Service",
+    "label.service.offering.details": "Détails offre de service",
+    "label.service.state": "État du service",
+    "label.services": "Services",
+    "label.session.expired": "Session expirée",
+    "label.set.default.NIC": "Définir NIC par défaut",
+    "label.set.up.zone.type": "Configurer le type de zone",
+    "label.settings": "Paramètres",
+    "label.setup": "Configuration",
+    "label.setup.network": "Configurer Réseau",
+    "label.setup.zone": "Configurer Zone",
+    "label.shared": "En partage",
+    "label.show.advanced.settings": "Voir paramètres avancés",
+    "label.show.ingress.rule": "Montrer la règle d'entrée",
+    "label.shutdown.provider": "Éteindre ce fournisseur",
+    "label.simplified.chinese.keyboard": "Clavier chinois simplifié",
+    "label.site.to.site.VPN": "VPN Site-à-Site",
+    "label.size": "Capacité",
+    "label.skip.guide": "J'ai déjà utilisé CloudStack avant, passer ce tutoriel",
+    "label.smb.domain": "Domaine SMB",
+    "label.smb.password": "Mot de passe SMB",
+    "label.smb.username": "Identifiant SMB",
+    "label.snapshot": "Instantané",
+    "label.snapshot.limits": "Limites d'instantanés",
+    "label.snapshot.name": "Nom Instantané",
+    "label.snapshot.s": "Instantanés",
+    "label.snapshot.schedule": "Configurer un instantané récurrent",
+    "label.snapshots": "Instantanés",
+    "label.sockets": "Sockets CPU",
+    "label.source.ip.address": "Adresse IP source",
+    "label.source.nat": "NAT Source",
+    "label.source.nat.supported": "Source NAT supporté",
+    "label.source.port": "Port Source",
+    "label.specify.IP.ranges": "Spécifier des plages IP",
+    "label.specify.vlan": "Préciser le VLAN",
+    "label.specify.vxlan": "Préciser le VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "Détails SRX",
+    "label.ssh.key.pair": "Bi-clé SSH",
+    "label.ssh.key.pair.details": "Détails bi-clé SSH",
+    "label.ssh.key.pairs": "Bi-clés SSH",
+    "label.standard.us.keyboard": "Clavier standard (US)",
+    "label.start.IP": "IP début plage",
+    "label.start.lb.vm": "Démarrer LB VM",
+    "label.start.port": "Port de début",
+    "label.start.reserved.system.IP": "Adresse IP de début réservée Système",
+    "label.start.vlan": "Début VLAN",
+    "label.start.vxlan": "Début VXLAN",
+    "label.state": "État",
+    "label.static.nat": "NAT Statique",
+    "label.static.nat.enabled": "NAT statique activé",
+    "label.static.nat.to": "NAT Statique vers",
+    "label.static.nat.vm.details": "Détails des NAT statique VM",
+    "label.static.routes": "Routes statiques",
+    "label.statistics": "Statistiques",
+    "label.status": "Statut",
+    "label.step.1": "Étape 1",
+    "label.step.1.title": "Étape 1 : <strong>Sélectionnez un modèle</strong>",
+    "label.step.2": "Étape 2",
+    "label.step.2.title": "Étape 2 : <strong>Offre de Service</strong>",
+    "label.step.3": "Étape 3",
+    "label.step.3.title": "Étape 3 : <strong id=\"step3_label\">Sélectionnez une offre de service</strong>",
+    "label.step.4": "Étape 4",
+    "label.step.4.title": "Étape 4 : <strong>Réseau</strong>",
+    "label.step.5": "Étape 5",
+    "label.step.5.title": "Étape 5 : <strong>Vérification</strong>",
+    "label.stickiness": "Fidélité",
+    "label.stickiness.method": "Méthode de fidélité",
+    "label.sticky.cookie-name": "Nom du cookie",
+    "label.sticky.domain": "Domaine",
+    "label.sticky.expire": "Expiration",
+    "label.sticky.holdtime": "Temps de pause",
+    "label.sticky.indirect": "Indirect",
+    "label.sticky.length": "Longueur",
+    "label.sticky.mode": "Mode",
+    "label.sticky.name": "Nom de fidélité",
+    "label.sticky.nocache": "Pas de cache",
+    "label.sticky.postonly": "Après seulement",
+    "label.sticky.prefix": "Préfixe",
+    "label.sticky.request-learn": "Apprendre la requête",
+    "label.sticky.tablesize": "Dimension tableau",
+    "label.stop": "Arrêter",
+    "label.stop.lb.vm": "Arrêter LB VM",
+    "label.stopped.vms": "VMs arrêtées",
+    "label.storage": "Stockage",
+    "label.storage.pool": "Pool de stockage",
+    "label.storage.tags": "Étiquettes de stockage",
+    "label.storage.traffic": "Trafic stockage",
+    "label.storage.type": "Type de stockage",
+    "label.subdomain.access": "Accès sous-domaine",
+    "label.submit": "Envoyer",
+    "label.submitted.by": "[Soumis par : <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Réussi",
+    "label.sunday": "Dimanche",
+    "label.super.cidr.for.guest.networks": "Super CIDR pour les réseaux invités",
+    "label.supported.services": "Services supportés",
+    "label.supported.source.NAT.type": "Type de NAT supporté",
+    "label.supportsstrechedl2subnet": "Sous-réseau Streched L2 supporté",
+    "label.supportspublicaccess": "Accès publiques activés",
+    "label.suspend.project": "Suspendre projet",
+    "label.switch.type": "Type commutateur",
+    "label.system.capacity": "Capacité système",
+    "label.system.offering": "Offre de Système",
+    "label.system.offering.for.router": "Offre de Système pour Routeur",
+    "label.system.service.offering": "Offre de Service Système",
+    "label.system.service.offering.details": "Détails offre de service système",
+    "label.system.vm": "VM Système",
+    "label.system.vm.details": "Détails VM Système",
+    "label.system.vm.scaled.up": "VM Système agrandie",
+    "label.system.vm.type": "Type de VM système",
+    "label.system.vms": " VMs Systèmes",
+    "label.system.wide.capacity": "Capacité globale",
+    "label.tag.key": "Clé Tag",
+    "label.tag.value": "Valeur Tag",
+    "label.tagged": "Étiqueté",
+    "label.tags": "Étiquette",
+    "label.target.iqn": "Cible IQN",
+    "label.task.completed": "Tâche terminée",
+    "label.template": "Modèle",
+    "label.template.limits": "Limites de modèle",
+    "label.tftp.root.directory": "Répertoire racine TFTP",
+    "label.theme.default": "Thème par défaut",
+    "label.theme.grey": "Personnalisé - Gris",
+    "label.theme.lightblue": "Personnalisé - Bleu clair",
+    "label.threshold": "Seuil",
+    "label.thursday": "Jeudi",
+    "label.tier": "Tiers",
+    "label.tier.details": "Détails du tiers",
+    "label.time": "Temps",
+    "label.time.colon": "Heure :",
+    "label.time.zone": "Fuseau horaire",
+    "label.timeout": "Délai d'expiration",
+    "label.timeout.in.second ": " Timeout (secondes)",
+    "label.timezone": "Fuseau horaire",
+    "label.timezone.colon": "Fuseau horaire :",
+    "label.token": "Jeton unique",
+    "label.total.CPU": "Capacité totale en CPU",
+    "label.total.cpu": "Capacité totale en CPU",
+    "label.total.hosts": "Total Hôtes",
+    "label.total.memory": "Total mémoire",
+    "label.total.of.ip": "Total adresses IP",
+    "label.total.of.vm": "Total VMs",
+    "label.total.storage": "Total stockage",
+    "label.total.virtual.routers": "Total des Routeurs virtuels",
+    "label.total.virtual.routers.upgrade": "Total des routeurs virtuels avec mise à niveau nécessaire",
+    "label.total.vms": "Nombre total de VMs",
+    "label.traffic.label": "Libellé trafic",
+    "label.traffic.type": "Type Trafic",
+    "label.traffic.types": "Types de trafic",
+    "label.tuesday": "Mardi",
+    "label.type": "Type",
+    "label.type.id": "ID du Type",
+    "label.type.lower": "type",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "Clavier UK",
+    "label.unavailable": "Indisponible",
+    "label.unhealthy.threshold": "Seuil non toléré",
+    "label.unlimited": "Illimité",
+    "label.untagged": "Non Taggé",
+    "label.update.project.resources": "Mettre à jour les ressources du projet",
+    "label.update.ssl": " Certificat SSL",
+    "label.update.ssl.cert": " Certificat SSL",
+    "label.updating": "Mise à jour",
+    "label.upgrade.required": "Une mise à jour est nécessaire",
+    "label.upgrade.router.newer.template": "Mette à jour le routeur pour utiliser le modèle le plus récent",
+    "label.upload": "Téléverser",
+    "label.upload.from.local": "Téléverser depuis Local",
+    "label.upload.template.from.local": "Téléverser Modèle depuis Local",
+    "label.upload.volume": "Téléverser un volume",
+    "label.upload.volume.from.local": "Téléverser Volume depuis Local",
+    "label.upload.volume.from.url": "Téléverser volume depuis URL",
+    "label.url": "URL",
+    "label.usage.interface": "Interface Utilisation",
+    "label.usage.sanity.result": "Résultat de santé Usage",
+    "label.usage.server": "Serveur d'Usage",
+    "label.usage.type": "Type Usage",
+    "label.usage.unit": "Unité",
+    "label.use.vm.ip": "Utiliser IP VM :",
+    "label.use.vm.ips": "Utiliser IP VMs",
+    "label.used": "Utilisé",
+    "label.user": "Utilisateur",
+    "label.user.data": "Données utilisateur",
+    "label.user.details": "Détails utilisateur",
+    "label.user.vm": "Utilisateur VM",
+    "label.username": "Identifiant",
+    "label.username.lower": "identifiant",
+    "label.users": "Utilisateurs",
+    "label.vSwitch.type": "Type vSwitch",
+    "label.value": "Valeur",
+    "label.vcdcname": "Nom du DC vCenter",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "Cluster vCenter",
+    "label.vcenter.datacenter": "Datacenter vCenter",
+    "label.vcenter.datastore": "Datastore vCenter",
+    "label.vcenter.host": "Hôte vCenter",
+    "label.vcenter.password": "Mot de passe vCenter",
+    "label.vcenter.username": "Identifiant vCenter",
+    "label.vcipaddress": "Adresse IP vCenter",
+    "label.version": "Version",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Résolution Max.",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs par GPU",
+    "label.vgpu.remaining.capacity": "Capacité restante",
+    "label.vgpu.type": "vGPU type",
+    "label.vgpu.video.ram": "Mémoire Vidéo",
+    "label.view": "Voir",
+    "label.view.all": "Voir tout",
+    "label.view.console": "Voir la console",
+    "label.view.more": "Voir plus",
+    "label.view.secondary.ips": "Voir IPs secondaires",
+    "label.viewing": "Consultation en cours",
+    "label.virtual.appliance": "Appliance Virtuelle",
+    "label.virtual.appliance.details": "Détails Appliance Virtuelle",
+    "label.virtual.appliances": "Appliances Virtuelles",
+    "label.virtual.machine": "Machine Virtuelle",
+    "label.virtual.machines": "Machines virtuelles",
+    "label.virtual.network": "Réseau virtuel",
+    "label.virtual.networking": "Mise en réseau virtuelle",
+    "label.virtual.router": "Routeur Virtuel",
+    "label.virtual.routers": "Routeurs virtuels",
+    "label.virtual.routers.group.account": "Routeurs virtuels groupés par compte",
+    "label.virtual.routers.group.cluster": "Routeurs virtuels groupés par cluster",
+    "label.virtual.routers.group.pod": "Routeurs virtuels groupés par pod",
+    "label.virtual.routers.group.zone": "Routeurs virtuels groupés par zone",
+    "label.vlan": "VLAN/VNI",
+    "label.vlan.id": "ID VLAN/VNI",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "Plage du VLAN",
+    "label.vlan.range.details": "Détails plage VLAN",
+    "label.vlan.ranges": "Plage(s) VLAN",
+    "label.vlan.vni.range": "Plage du VLAN",
+    "label.vlan.vni.ranges": "Plage(s) VLAN/VNI",
+    "label.vm.add": "Ajouter une instance",
+    "label.vm.destroy": "Détruire",
+    "label.vm.display.name": "Nom commun VM",
+    "label.vm.id": "ID VM",
+    "label.vm.ip": "Adresse IP VM",
+    "label.vm.name": "Nom VM",
+    "label.vm.password": "Le mot de passe de cette VM est",
+    "label.vm.reboot": "Redémarrer",
+    "label.vm.start": "Démarrer",
+    "label.vm.state": "État VM",
+    "label.vm.stop": "Arrêter",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMs",
+    "label.vmsnapshot": "Instantanés VM",
+    "label.vmsnapshot.current": "estCourant",
+    "label.vmsnapshot.memory": "Mémore instantané",
+    "label.vmsnapshot.parentname": "Parent",
+    "label.vmsnapshot.type": "Type",
+    "label.vmware.datacenter.id": "ID datacenter VMware",
+    "label.vmware.datacenter.name": "Nom datacenter VMware",
+    "label.vmware.datacenter.vcenter": "vcenter datacenter VMware",
+    "label.vmware.traffic.label": "Libellé trafic VMware",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "ID VLAN/VNI",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "Équipement VNMC",
+    "label.volatile": "Volatile",
+    "label.volgroup": "Groupe de Volume",
+    "label.volume": "Volume",
+    "label.volume.details": "Détails du volume",
+    "label.volume.limits": "Limites des volumes",
+    "label.volume.migrated": "Volume migré",
+    "label.volume.name": "Nom du volume",
+    "label.volumes": "Volumes",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Routeur VPC Distribué",
+    "label.vpc.id": "ID VPC",
+    "label.vpc.offering": "Offre de VPC",
+    "label.vpc.offering.details": "Détails offre VPC",
+    "label.vpc.router.details": "Détails Routeur VPC",
+    "label.vpc.supportsregionlevelvpc": "VPC niveau Région supporté",
+    "label.vpc.virtual.router": "Routeur virtuel VPC",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "Passerelle VPN client",
+    "label.vpn.force.encapsulation": "Force l'encapsulation UDP des paquets ESP",
+    "label.vsmctrlvlanid": " ID VLAN Contrôle",
+    "label.vsmpktvlanid": "ID VLAN Paquet",
+    "label.vsmstoragevlanid": "VLAN ID Stockage",
+    "label.vsphere.managed": "Gérée par vSphere",
+    "label.vswitch.name": "Nom vSwitch",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "Plage du VXLAN",
+    "label.waiting": "En attente",
+    "label.warn": "Avertissement",
+    "label.warn.upper": "WARN",
+    "label.warning": "Avertissement",
+    "label.wednesday": "Mercredi",
+    "label.weekly": "Hebdomadaire",
+    "label.welcome": "Bienvenue",
+    "label.welcome.cloud.console": "Bienvenue dans la Console d'Administration",
+    "label.what.is.cloudstack": "Qu'est-ce-que CloudStack&#8482; ?",
+    "label.xenserver.tools.version.61.plus": "XenServer Tools Version 6.1+",
+    "label.xenserver.traffic.label": "Libellé trafic XenServer",
+    "label.yes": "Oui",
+    "label.zone": "Zone",
+    "label.zone.dedicated": "Zone dédiée",
+    "label.zone.details": "Détails de la zone",
+    "label.zone.id": "ID de la zone",
+    "label.zone.lower": "zone",
+    "label.zone.name": "Nom de la zone",
+    "label.zone.step.1.title": "Étape 1 : <strong>Sélectionnez un réseau</strong>",
+    "label.zone.step.2.title": "Étape 2 : <strong>Ajoutez une zone</strong>",
+    "label.zone.step.3.title": "Étape 3 : <strong>Ajoutez un Pod</strong>",
+    "label.zone.step.4.title": "Étape 4 : <strong>Ajoutez une plage d'adresses IP</strong>",
+    "label.zone.type": "Type de zone",
+    "label.zone.wide": "Transverse à la zone",
+    "label.zoneWizard.trafficType.guest": "Invité : Trafic entre les machines virtuelles utilisateurs",
+    "label.zoneWizard.trafficType.management": "Administration : Trafic entre les ressources internes de CloudStack, incluant tous les composants qui communiquent avec le serveur d'administration, tels que les hôtes et les machines virtuelles Systèmes CloudStack",
+    "label.zoneWizard.trafficType.public": "Public : Trafic entre Internet et les machines virtuelles dans le nuage",
+    "label.zoneWizard.trafficType.storage": "Stockage : Trafic entre les serveurs de stockages principaux et secondaires, tel que le transfert de machines virtuelles modèles et des instantanés de disques",
+    "label.zones": "Zones",
+    "managed.state": "État de la gestion",
+    "message.XSTools61plus.update.failed": "Échec de mise à jour champ XenServer Tools Version 6.1+. Erreur :",
+    "message.Zone.creation.complete": "Création de la zone terminée",
+    "message.acquire.ip.nic": "Confirmez que vous souhaitez acquérir une nouvelle IP secondaire pour cette carte NIC.<br/>N.B. Vous devez configurer manuellement la nouvelle IP secondaire dans la machine virtuelle.",
+    "message.acquire.new.ip": "Confirmer l'acquisition d'une nouvelle adresse IP pour ce réseau.",
+    "message.acquire.new.ip.vpc": "Veuillez confirmer que vous voulez une nouvelle adresse IP pour ce VPC",
+    "message.acquire.public.ip": "Sélectionnez la zone dans laquelle vous voulez acquérir votre nouvelle adresse IP.",
+    "message.action.cancel.maintenance": "Votre hôte a quitté la maintenance. Ce processus peut prendre jusqu'à plusieurs minutes.",
+    "message.action.cancel.maintenance.mode": "Confirmer l'annulation de cette maintenance.",
+    "message.action.change.service.warning.for.instance": "Votre instance doit être arrêtée avant d'essayer de changer son offre de service.",
+    "message.action.change.service.warning.for.router": "Votre routeur doit être arrêté avant d'essayer de changer son offre de service.",
+    "message.action.delete.ISO": "Supprimer cet ISO ?",
+    "message.action.delete.ISO.for.all.zones": "L'ISO est utilisé par toutes les zones. S'il vous plaît confirmer que vous voulez le supprimer de toutes les zones.",
+    "message.action.delete.cluster": "Êtes-vous sûr que vous voulez supprimer ce cluster.",
+    "message.action.delete.disk.offering": "Supprimer cette offre de disque ?",
+    "message.action.delete.domain": "Êtes-vous sûr que vous voulez supprimer ce domaine.",
+    "message.action.delete.external.firewall": "Supprimer ce pare-feu externe ? Attention : Si vous prévoyez de rajouter le même pare-feu externe de nouveau, vous devez ré-initialiser les données d'utilisation sur l'appareil.",
+    "message.action.delete.external.load.balancer": "Supprimer ce répartiteur de charge externe ? Attention : Si vous pensez ajouter le même répartiteur de charge plus tard, vous devez remettre à zéro les statistiques d'utilisation de cet équipement.",
+    "message.action.delete.ingress.rule": "Supprimer cette règle de flux entrant ?",
+    "message.action.delete.network": "Êtes-vous sûr que vous voulez supprimer ce réseau.",
+    "message.action.delete.nexusVswitch": "Confirmer la suppession de ce Nexus 1000v",
+    "message.action.delete.nic": "Veuillez confirmer que vous souhaitez supprimer cette carte NIC, ce qui supprimera également le réseau associé sur la machine virtuelle.",
+    "message.action.delete.physical.network": "Confirmer la suppression du réseau physique",
+    "message.action.delete.pod": "Supprimer ce pod ?",
+    "message.action.delete.primary.storage": "Êtes-vous sûr que vous voulez supprimer ce stockage primaire.",
+    "message.action.delete.secondary.storage": "Supprimer ce stockage secondaire ?",
+    "message.action.delete.security.group": "Supprimer ce groupe de sécurité ?",
+    "message.action.delete.service.offering": "Supprimer cette offre de service ?",
+    "message.action.delete.snapshot": "Supprimer cet instantané ?",
+    "message.action.delete.system.service.offering": "Êtes-vous sûr que vous voulez supprimer l'offre système.",
+    "message.action.delete.template": "Supprimer ce modèle ?",
+    "message.action.delete.template.for.all.zones": "Ce modèle est utilisé par toutes les zones. Supprimer de toutes les zones ?",
+    "message.action.delete.volume": "Supprimer ce volume ?",
+    "message.action.delete.zone": "Supprimer cette zone ?",
+    "message.action.destroy.instance": "Supprimer cette instance ?",
+    "message.action.destroy.systemvm": "Supprimer cette VM Système ?",
+    "message.action.disable.cluster": "Désactiver ce cluster ?",
+    "message.action.disable.nexusVswitch": "Confirmer la désactivation de ce Nexus 1000v",
+    "message.action.disable.physical.network": "Confirmer l'activation de ce réseau physique.",
+    "message.action.disable.pod": "Désactiver ce pod ?",
+    "message.action.disable.static.NAT": "Désactiver le NAT statique ?",
+    "message.action.disable.zone": "Désactiver cette zone ?",
+    "message.action.download.iso": "Confirmer le téléchargement de cet ISO",
+    "message.action.download.template": "Confirmer le téléchargement de ce modèle",
+    "message.action.downloading.template": "Téléchargement modèle.",
+    "message.action.enable.cluster": "Activer ce cluster ?",
+    "message.action.enable.maintenance": "Votre hôte a été mis en mode maintenance avec succès. Ce processus peut durer plusieurs minutes ou plus, suivant le nombre de VMs actives sur cet hôte.",
+    "message.action.enable.nexusVswitch": "Confirmer l'activation de ce Nexus 1000v",
+    "message.action.enable.physical.network": "Confirmer l'activation de ce réseau physique.",
+    "message.action.enable.pod": "Activer ce pod ?",
+    "message.action.enable.zone": "Activer cette zone ?",
+    "message.action.expunge.instance": "Confirmez que vous souhaitez effacer cette instance.",
+    "message.action.force.reconnect": "Votre hôte a été forcée à se reconnecter avec succès. Ce processus peut prendre jusqu'à plusieurs minutes.",
+    "message.action.host.enable.maintenance.mode": "Activer le mode maintenance va causer la migration à chaud de l'ensemble des instances de cet hôte sur les autres hôtes disponibles.",
+    "message.action.instance.reset.password": "Confirmer le changement du mot de passe ROOT pour cette machine virtuelle.",
+    "message.action.manage.cluster": "Gérer le cluster ?",
+    "message.action.primarystorage.enable.maintenance.mode": "Attention : placer ce stockage primaire en mode maintenance va provoquer l'arrêt de l'ensemble des VMs utilisant des volumes sur ce stockage. Souhaitez-vous continuer ?",
+    "message.action.reboot.instance": "Redémarrer cette instance ?",
+    "message.action.reboot.router": "Tous les services fournit par ce routeur virtuel vont être interrompus. Confirmer le ré-amorçage de ce routeur.",
+    "message.action.reboot.systemvm": "Redémarrer cette VM Système ?",
+    "message.action.release.ip": "Libérer cette adresse IP ?",
+    "message.action.remove.host": "Êtes-vous sûr que vous voulez supprimer cet hôte.",
+    "message.action.reset.password.off": "Votre instance ne supporte pas pour le moment cette fonctionnalité.",
+    "message.action.reset.password.warning": "Votre instance doit être arrêtée avant d'essayer de changer son mot de passe.",
+    "message.action.restore.instance": "Restaurer cette instance ?",
+    "message.action.revert.snapshot": "Confirmez que vous souhaitez rétablir ce volume pour cet instantané",
+    "message.action.start.instance": "Démarrer cette instance ?",
+    "message.action.start.router": "Démarrer ce routeur ?",
+    "message.action.start.systemvm": "Redémarrer cette VM système ?",
+    "message.action.stop.instance": "Arrêter cette instance ?",
+    "message.action.stop.router": "Tous les services fournit par ce routeur virtuel vont être interrompus. Confirmer l'arrêt de ce routeur.",
+    "message.action.stop.systemvm": "Arrêter cette VM ?",
+    "message.action.take.snapshot": "Confirmer la prise d'un instantané pour ce volume.",
+    "message.action.unmanage.cluster": "Confirmez que vous ne voulez plus gérer le cluster",
+    "message.action.vmsnapshot.create": "Veuillez confirmer que vous souhaitez prendre un instantané de cette instance. <br>Notez que l'instance sera mise en pause durant la prise de l'instantané puis remise en route une fois terminée, si elle fonctionne sur KVM.",
+    "message.action.vmsnapshot.delete": "Confirmez que vous souhaitez supprimer cet instantané VM.",
+    "message.action.vmsnapshot.revert": "Rétablir l'instantané VM",
+    "message.activate.project": "Voulez-vous activer ce projet ?",
+    "message.add.VPN.gateway": "Confirmer l'ajout d'une passerelle VPN",
+    "message.add.cluster": "Ajouter un cluster d'hyperviseurs géré pour cette zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Ajouter un cluster d'hyperviseurs géré pour cette zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Renseignez les paramètres suivants pour ajouter un offre de service de disques",
+    "message.add.domain": "Spécifier le sous domaine que vous souhaitez créer sous ce domaine",
+    "message.add.firewall": "Ajouter un pare-feu à cette zone",
+    "message.add.guest.network": "Confirmer l'ajout du réseau invité",
+    "message.add.host": "Renseignez les paramètres suivants pour ajouter une hôte",
+    "message.add.ip.range": "Ajouter une plage IP pour le réseau publique dans la zone",
+    "message.add.ip.range.direct.network": "Ajouter une plage IP au réseau direct <b><span id=\"directnetwork_name\"></span></b> dans la zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Ajouter une plage IP pour le pod: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Ajouter un répartiteur de charge à la zone",
+    "message.add.load.balancer.under.ip": "La règle de répartition de charge été ajoutée sous l'adresse IP :",
+    "message.add.network": "Ajouter un nouveau réseau à la zone: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Renseigner les informations suivantes pour ajouter une nouvelle passerelle pour ce VPC",
+    "message.add.pod": "Ajouter un nouveau pod à la zone <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Chaque zone doit contenir un ou plusieurs pods, et le premier pod sera ajouté maintenant. Une pod contient les hôtes et les serveurs de stockage primaire, qui seront ajoutés dans une étape ultérieure. Configurer une plage d'adresses IP réservées pour le trafic de gestion interne de CloudStack. La plage d'IP réservée doit être unique pour chaque zone dans le nuage.",
+    "message.add.primary": "Renseignez les paramètres suivants pour ajouter un stockage primaire",
+    "message.add.primary.storage": "Ajouter un nouveau stockage primaire à la zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Renseigner les informations suivantes pour ajouter une nouvelle région.",
+    "message.add.secondary.storage": "Ajouter un nouveau stockage pour la zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Renseigner les informations suivantes pour ajouter une nouvelle offre de service de calcul.",
+    "message.add.system.service.offering": "Ajouter les informations suivantes pour créer une nouvelle offre de système.",
+    "message.add.template": "Renseignez les informations suivantes pour créer votre nouveau modèle",
+    "message.add.volume": "Renseignez les informations suivantes pour ajouter un nouveau volume",
+    "message.added.new.nuage.vsp.controller": "Ajout d'un nouveau contrôleur Nuage Vsp",
+    "message.added.vpc.offering": "Offre de VPC ajoutée",
+    "message.adding.Netscaler.device": "Ajouter un Netscaler",
+    "message.adding.Netscaler.provider": "Ajouter un fournisseur Netscaler",
+    "message.adding.host": "Ajout un hôte",
+    "message.additional.networks.desc": "Sélectionnez le(s) réseau(x) additionnel(s) au(x)quel(s) sera connectée votre instance.",
+    "message.admin.guide.read": "Pour les VMs VMware, veuillez lire le paragraphe \"dynamic scaling\" dans le guide d'administration avant d'opérer un dimensionnement. Voulez-vous continuer ?,",
+    "message.advanced.mode.desc": "Choisissez ce modèle de réseau si vous souhaitez bénéficier du support des VLANs. Ce mode de réseau donne le plus de flexibilité aux administrateurs pour fournir des offres de service réseau personnalisées comme fournir des pare-feux, VPN, répartiteurs de charge ou également activer des réseaux virtuels ou directs.",
+    "message.advanced.security.group": "Choisissez ceci si vous souhaitez utiliser les groupes de sécurité pour fournir l'isolation des VMs invitées.",
+    "message.advanced.virtual": "Choisissez ceci si vous souhaitez utiliser des VLANs pour fournir l'isolation des VMs invitées.",
+    "message.after.enable.s3": "Le stockage secondaire S3 est configuré. Note : Quand vous quitterez cette page, vous ne pourrez plus re-configurer le support S3.",
+    "message.after.enable.swift": "Swift configuré. Remarque : une fois que vous quitterez cette page, il ne sera plus possible de re-configurer Swift à nouveau.",
+    "message.alert.state.detected": "État d'alerte détecté",
+    "message.allow.vpn.access": "Entrez un identifiant et un mot de passe pour l'utilisateur que vous souhaitez autoriser à utiliser l'accès VPN.",
+    "message.apply.snapshot.policy": "Vous avez mis à jour votre politique d'instantanés avec succès.",
+    "message.assign.instance.another": "Veuillez spécifier le type de compte, domaine, nom de compte et réseau (optionnel) pour le nouveau compte. <br> Si l'interface par défaut de la machine virtuelle est sur un réseau partagé, CloudStack va vérifier si le réseau peut être utilisé par le nouveau compte si vous n'avez pas spécifier de réseau. <br> Si l'interface par défaut de la machine virtuelle est sur un réseau isolé, et que le nouveau compte a plus d'un réseau isolé, vous devez en spécifier un.",
+    "message.attach.iso.confirm": "Attacher l'image ISO à cette instance ?",
+    "message.attach.volume": "Renseignez les données suivantes pour attacher un nouveau volume. Si vous attachez un volume disque à une machine virtuelle sous Windows, vous aurez besoin de redémarrer l'instance pour voir le nouveau disque.",
+    "message.basic.mode.desc": "Choisissez ce modèle de réseau si vous  <b>*<u>ne voulez pas</u>*</b> activer le support des VLANs. Toutes les instances créées avec ce modèle de réseau se verront assigner une adresse IP et les groupes de sécurité seront utilisés pour fournir l'isolation entre les VMs.",
+    "message.change.ipaddress": "Confirmer que vous souhaitez changer l'adresse IP pour cette NIC sur la VM.",
+    "message.change.offering.confirm": "Changer l'offre de service de cette instance ?",
+    "message.change.password": "Merci de modifier votre mot de passe.",
+    "message.cluster.dedicated": "Cluster dédiée",
+    "message.cluster.dedication.released": "Libération de cluster dédié",
+    "message.configure.all.traffic.types": "Vous avez de multiples réseaux physiques ; veuillez configurer les libellés pour chaque type de trafic en cliquant sur le bouton Modifier.",
+    "message.configure.firewall.rules.allow.traffic": "Configurer les règles autorisant le trafic",
+    "message.configure.firewall.rules.block.traffic": "Configurer les règles bloquant le trafic",
+    "message.configure.ldap": "Confirmer la configuration LDAP",
+    "message.configuring.guest.traffic": "Configuration du réseau VM",
+    "message.configuring.physical.networks": "Configuration des réseaux physiques",
+    "message.configuring.public.traffic": "Configuration du réseau public",
+    "message.configuring.storage.traffic": "Configuration du réseau de stockage",
+    "message.confirm.action.force.reconnect": "Confirmer la re-connexion forcée de cet hôte.",
+    "message.confirm.add.vnmc.provider": "Confirmer l'ajout du fournisseur VNMC.",
+    "message.confirm.archive.alert": "Confirmer la suppression de cette alerte.",
+    "message.confirm.archive.event": "Confirmer l'archivage de cet événement.",
+    "message.confirm.archive.selected.alerts": "Confirmer l'archivage des alertes sélectionnées",
+    "message.confirm.archive.selected.events": "Confirmez l'archivage des événements sélectionnés",
+    "message.confirm.attach.disk": "Confirmer le rattachement de ce disque ?",
+    "message.confirm.create.volume": "Confirmer la création de ce volume ?",
+    "message.confirm.current.guest.CIDR.unchanged": "Voulez-vous garder l'actuel réseau d'invité CIDR inchangé ?",
+    "message.confirm.dedicate.cluster.domain.account": "Dédier ce cluster à un domaine/compte ?",
+    "message.confirm.dedicate.host.domain.account": "Dédier cet hôte à un domaine/compte ?",
+    "message.confirm.dedicate.pod.domain.account": "Dédier ce pod à un domaine/compte ?",
+    "message.confirm.dedicate.zone": "Êtes-vous sûr de dédier cette zone à un domaine/compte ?",
+    "message.confirm.delete.BigSwitchBcf": "Confirmer que vous voulez supprimer ce contrôleur BigSwitch BCF",
+    "message.confirm.delete.BrocadeVcs": "Confirmer la suppression du switch Brocade Vcs",
+    "message.confirm.delete.F5": "Confirmer la suppression du F5",
+    "message.confirm.delete.NetScaler": "Confirmer la suppression du Netscaler",
+    "message.confirm.delete.NuageVsp": "Confirmer la suppression du Nuage Virtualized Services Directory",
+    "message.confirm.delete.PA": "Confirmer la suppression du Palo Alto",
+    "message.confirm.delete.SRX": "Confirmer la suppression du SRX",
+    "message.confirm.delete.acl.list": "Confirmer la suppression de cette liste ACL ?",
+    "message.confirm.delete.alert": "Confirmer la suppression de cette alerte ?",
+    "message.confirm.delete.baremetal.rack.configuration": "Confirmer que vous voulez supprimer cette configuration Rack Baremetal",
+    "message.confirm.delete.ciscoASA1000v": "Confirmez la suppression du CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Confirmer la suppression de la ressource CiscoVNMC",
+    "message.confirm.delete.internal.lb": "Confirmer la suppression de ce LB interne.",
+    "message.confirm.delete.secondary.staging.store": "Confirmer que vous voulez supprimer le Stockage Secondaire Intermédiaire.",
+    "message.confirm.delete.ucs.manager": "Confirmez que vous voulez supprimer le gestionnaire UCS",
+    "message.confirm.destroy.router": "Êtes-vous sûr que vous voulez supprimer ce routeur",
+    "message.confirm.disable.host": "Confirmer la dés-activation de cet hôte.",
+    "message.confirm.disable.network.offering": "Voulez-vous désactiver cette offre réseau ?",
+    "message.confirm.disable.provider": "Confirmer la désactivation de ce fournisseur",
+    "message.confirm.disable.vnmc.provider": "Confirmer la désactivation du fournisseur VNMC.",
+    "message.confirm.disable.vpc.offering": "Voulez-vous désactiver cette offre VPC ?",
+    "message.confirm.enable.host": "Confirmer l'activation de cet hôte.",
+    "message.confirm.enable.network.offering": "Voulez-vous activer cette offre réseau ?",
+    "message.confirm.enable.provider": "Confirmer l'activation de ce fournisseur",
+    "message.confirm.enable.vnmc.provider": "Confirmer l'activation du fournisseur VNMC.",
+    "message.confirm.enable.vpc.offering": "Voulez-vous activer cette offre VPC ?",
+    "message.confirm.force.update": "Voulez-vous forcer la mise à jour ?",
+    "message.confirm.join.project": "Rejoindre ce projet ?",
+    "message.confirm.migrate.volume": "Confirmer la migration de ce volume ?",
+    "message.confirm.refresh.blades": "Confirmer que vous voulez rafraîchr les lames.",
+    "message.confirm.release.dedicate.vlan.range": "Confirmez que vous souhaitez libérer cette plage VLAN dédiée.",
+    "message.confirm.release.dedicated.cluster": "Libérer ce cluster dédié ?",
+    "message.confirm.release.dedicated.host": "Libérer cet hôte dédiée ?",
+    "message.confirm.release.dedicated.pod": "Libérer ce pod dédié ?",
+    "message.confirm.release.dedicated.zone": "Libérer cette zone dédiée ?",
+    "message.confirm.remove.IP.range": "Êtes-vous sûr que vous voulez supprimer cette plage d'adresses IP",
+    "message.confirm.remove.event": "Voulez-vous supprimer cet événement ?",
+    "message.confirm.remove.load.balancer": "Confirmer la suppression de cette VM du répartiteur de charge ?",
+    "message.confirm.remove.network.offering": "Voulez-vous supprimer cette offre réseau ?",
+    "message.confirm.remove.selected.alerts": "Confirmer la suppression des alertes sélectionnées",
+    "message.confirm.remove.selected.events": "Confirmez la suppression des événements sélectionnés",
+    "message.confirm.remove.vmware.datacenter": "Veuillez confirmer que vous voulez supprimer le datacenter VMware",
+    "message.confirm.remove.vpc.offering": "Voulez-vous supprimer cette offre VPC ?",
+    "message.confirm.replace.acl.new.one": "Voulez-vous remplacer l'ACL par cette nouvelle ?",
+    "message.confirm.scale.up.router.vm": "Agrandir la VM Routeur ?",
+    "message.confirm.scale.up.system.vm": "Agrandir la VM Système ?",
+    "message.confirm.shutdown.provider": "Confirmer l'arrêt de ce fournisseur",
+    "message.confirm.start.lb.vm": "Confirmez que vous souhaitez démarrer ce LB VM.",
+    "message.confirm.stop.lb.vm": "Confirmez que vous souhaitez arrêter ce LB VM.",
+    "message.confirm.upgrade.router.newer.template": "Confirmez que vous souhaitez mettre à jour le routeur avec un modèle plus récent.",
+    "message.confirm.upgrade.routers.account.newtemplate": "Confirmez que vous souhaitez mettre à jour tous les routeurs dans ce compte avec un modèle plus récent.",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Confirmez que vous souhaitez mettre à jour tous les routeurs dans ce cluster avec un modèle plus récent.",
+    "message.confirm.upgrade.routers.newtemplate": "Confirmez que vous souhaitez mettre à jour tous les routeurs dans cette zone avec un modèle plus récent.",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Confirmez que vous souhaitez mettre à jour tous les routeurs dans ce pod avec un modèle plus récent.",
+    "message.copy.iso.confirm": "Copier votre image ISO vers",
+    "message.copy.template": "Copier le modèle <b id=\"copy_template_name_text\">XXX</b> de la zone <b id=\"copy_template_source_zone_text\"></b> vers",
+    "message.copy.template.confirm": "Voulez-vous copier le modèle ?",
+    "message.create.template": "Voulez-vous créer un modèle ?",
+    "message.create.template.vm": "Créer la VM depuis le modèle <b id=\"p_name\"></b>",
+    "message.create.template.volume": "Renseignez les informations suivantes avec de créer un modèle à partir de votre volume de disque:<b><span id=\"volume_name\"></span></b>. La création du modèle peut prendre plusieurs minutes suivant la taille du volume.",
+    "message.creating.cluster": "Création du cluster",
+    "message.creating.guest.network": "Création du réseau pour les invités",
+    "message.creating.physical.networks": "Création des réseaux physiques",
+    "message.creating.pod": "Création d'un pod",
+    "message.creating.primary.storage": "Création du stockage primaire",
+    "message.creating.secondary.storage": "Création du stockage secondaire",
+    "message.creating.systemVM": "Création des VMs Systèmes (peut prendre du temps)...",
+    "message.creating.zone": "Création de la zone",
+    "message.decline.invitation": "Voulez-vous refuser cette invitation au projet ?",
+    "message.dedicate.zone": "Zone dédiée",
+    "message.dedicated.zone.released": "Libération de zone dédiée",
+    "message.delete.VPN.connection": "Êtes-vous sûr que vous voulez supprimer la connexion VPN",
+    "message.delete.VPN.customer.gateway": "Êtes-vous sûr que vous voulez supprimer cette passerelle VPN client",
+    "message.delete.VPN.gateway": "Êtes-vous sûr que vous voulez supprimer cette passerelle VPN",
+    "message.delete.account": "Supprimer ce compte ?",
+    "message.delete.affinity.group": "Confirmer la supression de ce groupe d'affinité.",
+    "message.delete.gateway": "Êtes-vous sûr que vous voulez supprimer cette passerelle",
+    "message.delete.project": "Voulez-vous supprimer ce projet ?",
+    "message.delete.user": "Êtes-vous sûr que vous voulez supprimer cet utilisateur.",
+    "message.desc.add.new.lb.sticky.rule": "Ajouter nouvelle règle LB sticky",
+    "message.desc.advanced.zone": "Pour des topologies de réseau plus sophistiquées. Ce modèle de réseau permet plus de flexibilité dans la définition des réseaux d'invités et propose des offres personnalisées telles que le support de pare-feu, VPN ou d'équilibrage de charge.",
+    "message.desc.basic.zone": "Fournit un réseau unique où chaque instance de machine virtuelle se voit attribuer une adresse IP directement depuis le réseau. L'isolation des invités peut être assuré au niveau de la couche réseau-3 tels que les groupes de sécurité (filtrage d'adresse IP source).",
+    "message.desc.cluster": "Chaque pod doit contenir un ou plusieurs clusters, et le premier cluster sera ajouté tout de suite. Un cluster est un regroupement pour hôtes. Les hôtes d'un cluster ont tous un matériel identique, exécutent le même hyperviseur, sont dans le même sous-réseau, et accèdent au même stockage partagé. Chaque cluster comprend une ou plusieurs hôtes et un ou plusieurs serveurs de stockage primaire.",
+    "message.desc.create.ssh.key.pair": "Veuillez remplir les champs suivants pour créer ou enregistrer une bi-clé SSH.<br><br>(1) Si la clé publique est définie, CloudStack va enregistrer cette clé. Vous pouvez ensuite l'utiliser avec sa clé privée.<br><br>(2) Si la clé publique n'est pas définie, CloudStack va créer une nouvelle bi-clé SSH. Dans ce cas, veuillez copier et sauvegarder la clé privée. CloudStack ne va pas la conserver.<br>",
+    "message.desc.created.ssh.key.pair": "Bi-clé SSH créée",
+    "message.desc.host": "Chaque cluster doit contenir au moins un hôte (machine) pour exéctuer des machines virtuelles invitées, et le premier hôte sera ajoutée maintenant. Pour un hôte fonctionnant dans CloudStack, vous devez installer un logiciel hyperviseur sur l'hôte, attribuer une adresse IP à l'hôte, et s'assurer que l'hôte est connecté au serveur d'administration CloudStack.<br/><br/>Indiquer le nom de l'hôte ou son adresse IP, l'identifiant de connexion (généralement root) et le mot de passe ainsi que toutes les étiquettes permettant de classer les hôtes.",
+    "message.desc.primary.storage": "Chaque cluster doit contenir un ou plusieurs serveurs de stockage primaire, et le premier sera ajouté tout de suite. Le stockage principal contient les volumes de disque pour les machines virtuelles s'exécutant sur les hôtes dans le cluster. Utiliser les protocoles standards pris en charge par l'hyperviseur sous-jacent.",
+    "message.desc.reset.ssh.key.pair": "Veuillez spécifier une bi-clé SSH que vous souhaitez ajouter à cette VM. Noter que le mot de passe root sera changé durant cette opération si l'option mot de passe est activée.",
+    "message.desc.secondary.storage": "Chaque zone doit avoir au moins un serveur NFS ou un serveur de stockage secondaire, et sera ajouté en premier tout de suite. Le stockage secondaire entrepose les modèles de machines virtuelles, les images ISO et les images disques des volumes des machines virtuelles. Ce serveur doit être accessible pour toutes les machines hôtes dans la zone.<br/><br/>Saisir l'adresse IP et le chemin d'export.",
+    "message.desc.zone": "Une zone est la plus grande unité organisationnelle dans CloudStack, et correspond typiquement à un centre de données. Les zones fournissent un isolement physique et de la redondance. Une zone est constituée d'un ou plusieurs pods (dont chacun contient les hôtes et les serveurs de stockage primaire) et un serveur de stockage secondaire qui est partagée par tous les pods dans la zone.",
+    "message.detach.disk": "Voulez-vous détacher ce disque ?",
+    "message.detach.iso.confirm": "Détacher l'image ISO de cette instance ?",
+    "message.disable.account": "Veuillez confirmer que vous voulez désactiver ce compte. En désactivant le compte, tous les utilisateurs pour ce compte n'auront plus accès à leurs ressources sur le cloud. Toutes les machines virtuelles vont être arrêtées immédiatement.",
+    "message.disable.snapshot.policy": "Vous avez désactivé votre politique d'instantané avec succès.",
+    "message.disable.user": "Confirmer la désactivation de cet utilisateur.",
+    "message.disable.vpn": "Voulez-vous désactiver le VPN ?",
+    "message.disable.vpn.access": "Désactiver l'accès VPN ?",
+    "message.disabling.network.offering": "Désactivation de l'offre réseau",
+    "message.disabling.vpc.offering": "Désactivation de l'offre VPC",
+    "message.disallowed.characters": "Caractères non autorisés : <,>",
+    "message.download.ISO": "Cliquer <a href=\"#\">00000</a> pour télécharger une image ISO",
+    "message.download.template": "Cliquer sur <a href=\"#\">00000</a> pour télécharger le modèle",
+    "message.download.volume": "Cliquer sur <a href=\"#\">00000</a> pour télécharger le volume",
+    "message.download.volume.confirm": "Veuillez confirmer que vous voulez télécharger ce volume.",
+    "message.edit.account": "Modifier (\"-1\" signifie pas de limite de ressources)",
+    "message.edit.confirm": "Vérifier vos changements avant de cliquer sur \"Enregistrer\".",
+    "message.edit.limits": "Renseignez les limites pour les ressources suivantes. \"-1\" indique qu'il n'y a pas de limites pour la création de ressources.",
+    "message.edit.traffic.type": "Spécifier le libellé de trafic associé avec ce type de trafic.",
+    "message.enable.account": "Activer ce compte ?",
+    "message.enable.user": "Confirmer l'activation de cet utilisateur.",
+    "message.enable.vpn": "Confirmer l'activation de l'accès VPN pour cette adresse IP.",
+    "message.enable.vpn.access": "Le VPN est désactivé pour cette adresse IP. Voulez vous activer l'accès VPN ?",
+    "message.enabled.vpn": "Votre accès VPN est activé et peut être accédé par l'IP",
+    "message.enabled.vpn.ip.sec": "Votre clé partagée IPSec est",
+    "message.enabling.network.offering": "Activation de l'offre réseau",
+    "message.enabling.security.group.provider": "Activation du fournisseur de groupe de sécurité",
+    "message.enabling.vpc.offering": "Activation de l'offre VPC",
+    "message.enabling.zone": "Activation de la zone",
+    "message.enabling.zone.dots": "Activation de la zone...",
+    "message.enter.seperated.list.multiple.cidrs": "Veuillez entrer une liste de CIDRs séparés par des virgules si plusieurs",
+    "message.enter.token": "Entrer le jeton unique reçu dans le message d'invitation.",
+    "message.generate.keys": "Confirmer la génération de nouvelles clefs pour cet utilisateur.",
+    "message.gslb.delete.confirm": "Confirmer la suppression de ce GSLB",
+    "message.gslb.lb.remove.confirm": "Enlever la répartition de charge du GSLB ?",
+    "message.guest.traffic.in.advanced.zone": "Le trafic réseau d'invité est la communication entre les machines virtuelles utilisateur. Spécifier une plage d'identifiant VLAN pour le trafic des invités pour chaque réseau physique.",
+    "message.guest.traffic.in.basic.zone": "Le trafic réseau d'invité est la communication entre les machines virtuelles utilisateur. Spécifier une plage d'adresses IP que CloudStack peut assigner aux machines virtuelles Invité. S'assurer que cette plage n'empiète pas sur la plage réservée aux adresses IP Système.",
+    "message.host.dedicated": "Hôte dédiée",
+    "message.host.dedication.released": "Libération de l'hôte dédié",
+    "message.installWizard.click.retry": "Appuyer sur le bouton pour essayer à nouveau le démarrage.",
+    "message.installWizard.copy.whatIsACluster": "Un cluster permet de grouper les hôtes. Les hôtes d'un cluster ont un matériel identique, exécutent le même hyperviseur, sont sur le même sous-réseau, et accèdent au même stockage partagé. Les instances de machines virtuelles (VM) peuvent être migrées à chaud d'un hôte à un autre au sein du même groupe, sans interrompre les services utilisateur. Un cluster est la trois ème plus large unité organisationnelle dans un déploiement CloudStack&#8482;. Les clusters sont contenus dans les pods et les pods sont contenus dans les zones.<br/><br/>CloudStack&#8482; permet d'avoir plusieurs clusters dans un déploiement en nuage, mais pour une installation basique, il n'y a qu'un seul cluster.",
+    "message.installWizard.copy.whatIsAHost": "Un hôte est une machine. Les hôtes fournissent les ressources informatiques qui exécutent les machines virtuelles invitées. Chaque hôte a un logiciel hyperviseur installé pour gérer les machines virtuelles invitées (sauf pour les hôtes de type 'bare-metal', qui sont un cas particulier détaillé dans le Guide d'installation avancée). Par exemple, un serveur Linux avec KVM, un serveur Citrix XenServer, et un serveur ESXi sont des hôtes. Dans une installation basique, un seul hôte exécutant XenServer ou KVM est utilisé.<br/><br/>L'hôte est la plus petite unité organisation au sein d'un déploiement CloudStack&#8482;. Les hôtes sont contenus dans les clusters, les clusters sont contenus dans les pods et les pods sont contenus dans les zones.",
+    "message.installWizard.copy.whatIsAPod": "Un pod représente souvent un seul rack. Les hôtes dans le même pod sont dans le même sous-réseau.<br/>Un pod est la deuxième plus grande unité organisationnelle au sein d'un déploiement CloudStack&#8482;. Les pods sont contenus dans les zones. Chaque zone peut contenir un ou plusieurs pods ; dans l'Installation Basique, vous aurez juste un pod dans votre zone.",
+    "message.installWizard.copy.whatIsAZone": "Une zone est la plus grande unité organisationnelle au sein d'un déploiement CloudStack&#8482;. Une zone correspond typiquement à un centre de données, mais il est permis d'avoir plusieurs zones dans un centre de données. L'avantage d'organiser une infrastructure en zones est de fournir une isolation physique et de la redondance. Par exemple, chaque zone peut avoir sa propre alimentation et de liaison avec le réseau, et les zones peuvent être très éloignées géographiquement (même si ce n'est pas une obligation).",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482; est une plate-forme logicielle de pools de ressources informatiques pour construire des infrastructures publiques, privées et hybrides en tant que services (IaaS) dans les nuages. CloudStack&#8482; gère le réseau, le stockage et les noeuds de calcul qui composent une infrastructure dans les nuages. Utilisez CloudStack&#8482; pour déployer, gérer et configurer les environnements d'informatiques dans les nuages.<br/><br/>S'étendant au-delà des machines virtuelles individuelles fonctionnant sur du matériel standard, CloudStack&#8482; offre une solution d'informatique en nuage clé en main pour fournir des centres de données virtuels comme service - fournissant tous les composants essentiels pour construire, déployer et gérer des applications 'cloud' multi-niveaux et multi-locataire. Les versions libre et Premium sont disponibles, la version Libre offrant des caractéristiques presque identiques.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "Une infrastructure CloudStack&#8482; utilise deux types de stockage : stockage primaire et stockage secondaire. Les deux peuvent être des serveurs iSCSI ou NFS, ou sur disque local.<br/><br/><strong>Le stockage principal</strong> est associé à un cluster, et stocke les volumes disques de chaque machine virtuelle pour toutes les VMs s'exécutant sur les hôtes dans le cluster. Le serveur de stockage primaire est typiquement proche des hôtes.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "Le stockage secondaire est associé à une zone, et il stocke les éléments suivants:<ul><li>Modèles - images de systèmes d'exploitation qui peuvent être utilisées pour démarrer les machines virtuelles et peuvent inclure des informations de configuration supplémentaires, telles que les applications pré-installées</li><li>Images ISO - images de système d'exploitation ou d'installation d'OS qui peuvent être amorçable ou non-amorçable</li><li>Images de volume disque - capture des données de machines virtuelles qui peuvent être utilisées pour la récupération des données ou créer des modèles</ul>",
+    "message.installWizard.now.building": "Construction de votre Cloud en cours",
+    "message.installWizard.tooltip.addCluster.name": "Un nom pour le cluster. Ce choix est libre et n'est pas utilisé par CloudStack.",
+    "message.installWizard.tooltip.addHost.hostname": "Le nom DNS ou adresse IP du serveur.",
+    "message.installWizard.tooltip.addHost.password": "Le mot de passe pour l'utilisateur indiqué précédemment (issu de l'installation XenServer).",
+    "message.installWizard.tooltip.addHost.username": "Habituellement root.",
+    "message.installWizard.tooltip.addPod.name": "Nom pour le pod",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Ceci est la plage d'adresses IP dans le réseau privé que CloudStack utilise la gestion des VMs du stockage secondaire et les VMs Console Proxy. Ces adresses IP sont prises dans le même sous-réseau que les serveurs hôtes.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "Passerelle pour les serveurs dans ce pod",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "Le masque réseau que les instances utiliseront sur le réseau",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Ceci est la plage d'adresses IP dans le réseau privé que CloudStack utilise la gestion des VMs du stockage secondaire et les VMs Console Proxy. Ces adresses IP sont prises dans le même sous-réseau que les serveurs hôtes.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "Nom pour ce stockage",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(pour NFS) Dans NFS, c'est le chemin d'export depuis le serveur. Le chemin (pour SharedMountPoint). Avec KVM, c'est le chemin sur chaque hôte où ce stockage primaire est monté. Par exemple, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(pour NFS, iSCSI ou PreSetup) Adresse IP ou nom DNS du stockage",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "Adresse IP du serveur NFS supportant le stockage secondaire",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "Le chemin exporté, situé sur le serveur spécifié précédemment",
+    "message.installWizard.tooltip.addZone.dns1": "Ces serveurs DNS sont utilisés par les machines virtuelles Invitées dans la zone. Ces serveurs DNS seront accessibles par le réseau public, ce dernier sera ajouté plus tard. Les adresses IP publiques pour la zone doivent avoir une route vers les serveurs DNS indiqués ici.",
+    "message.installWizard.tooltip.addZone.dns2": "Ces serveurs DNS sont utilisés par les machines virtuelles Invitées dans la zone. Ces serveurs DNS seront accessibles par le réseau public, ce dernier sera ajouté plus tard. Les adresses IP publiques pour la zone doivent avoir une route vers les serveurs DNS indiqués ici.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Ces serveurs DNS sont utilisés par les machines virtuelles Invitées dans la zone. Ces serveurs DNS seront accessibles par le réseau public, ce dernier sera ajouté plus tard. Les adresses IP publiques pour la zone doivent avoir une route vers les serveurs DNS indiqués ici.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Ces serveurs DNS sont utilisés par les machines virtuelles Invitées dans la zone. Ces serveurs DNS seront accessibles par le réseau public, ce dernier sera ajouté plus tard. Les adresses IP publiques pour la zone doivent avoir une route vers les serveurs DNS indiqués ici.",
+    "message.installWizard.tooltip.addZone.name": "Nom pour la zone",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "Description pour ce réseau",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "La plage d'adresses IP qui sera disponible en allocation pour les machines invitées dans cette zone. Si une carte réseau est utilisée, ces adresses IP peuvent être dans le même CIDR que le CIDR du pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "La passerelle que les instances invitées doivent utiliser",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "Le masque réseau que les instances devrait utiliser sur le réseau",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "La plage d'adresses IP qui sera disponible en allocation pour les machines invitées dans cette zone. Si une carte réseau est utilisée, ces adresses IP peuvent être dans le même CIDR que le CIDR du pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Nom pour ce réseau",
+    "message.instance.scaled.up.confirm": "Êtes-vous sûr de vouloir agrandir votre instance ?",
+    "message.instanceWizard.noTemplates": "Vous n'avez pas de image disponible ; Ajouter un modèle compatible puis relancer l'assistant de création d'instance.",
+    "message.ip.address.changed": "Vos adresses IP ont peut être changées ; Voulez vous rafraîchir la liste ? Dans ce cas, le panneau de détail se fermera.",
+    "message.iso.desc": "Image disque contenant des données ou un support amorçable pour OS",
+    "message.join.project": "Vous avez rejoint un projet. Sélectionnez la vue Projet pour le voir.",
+    "message.launch.vm.on.private.network": "Souhaitez vous démarrer cette instance sur votre propre réseau privé ?",
+    "message.launch.zone": "La zone est prête à démarrer ; passer à l'étape suivante.",
+    "message.ldap.group.import": "Tous les utilisateurs du groupe indiqué seront importés",
+    "message.link.domain.to.ldap": "Activer autosync pour ce domaine dans le LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-clic)",
+    "message.lock.account": "Verrouiller ce compte ? En le verrouillant, les utilisateurs de ce compte ne seront plus capables de gérer leurs ressources. Les ressources existantes resteront toutefois accessibles.",
+    "message.migrate.instance.confirm": "Confirmez l'hôte vers lequel vous souhaitez migrer cette instance",
+    "message.migrate.instance.to.host": "Confirmer la migration de l'instance vers un autre hôte",
+    "message.migrate.instance.to.ps": "Confirmer la migration de l'instance vers un autre stockage primaire",
+    "message.migrate.router.confirm": "Confirmer la migration du routeur vers :",
+    "message.migrate.systemvm.confirm": "Confirmer la migration de la VM système vers :",
+    "message.migrate.volume": "Confirmer la migration du volume vers un autre stockage primaire.",
+    "message.network.addVM.desc": "Veuillez spécifier le réseau que vous souhaitez ajouter à cette VM. Une nouvelle interface NIC sera ajoutée pour ce réseau.",
+    "message.network.addVMNIC": "Confirmer l'ajout d'une nouvelle NIC VM pour ce réseau.",
+    "message.network.remote.access.vpn.configuration": "La configuration VPN Accés Distant a été générée mais elle n'a pas pu être appliquée. Veuillez vérifier la connectivité des éléments réseau, et ré-essayez.",
+    "message.new.user": "Renseigner les informations suivantes pour ajouter un nouveau compte utilisateur",
+    "message.no.affinity.groups": "Vous n'avez pas de groupes d'affinité. Continuer vers la prochaine étape.",
+    "message.no.host.available": "Aucun hôte n'est disponible pour la migration",
+    "message.no.network.support": "Sélectionnez l'hyperviseur. vSphere, n'a pas de fonctionnalités supplémentaires pour le réseau. Continuez à l'étape 5.",
+    "message.no.network.support.configuration.not.true": "Il n'y a pas de zone avec la fonction groupe de sécurité active. Dès lors, pas de fonction réseau supplémentaires disponibles. Continuer à l'étape 5.",
+    "message.no.projects": "Vous n'avez pas de projet.<br/>Vous pouvez en créer un depuis la section projets.",
+    "message.no.projects.adminOnly": "Vous n'avez pas de projet.<br/>Contacter votre administrateur pour ajouter un projet.",
+    "message.number.clusters": "<h2><span> # de </span> Clusters</h2>",
+    "message.number.hosts": "<h2><span> # d' </span> Hôtes</h2>",
+    "message.number.pods": "<h2><span> # de </span> Pods</h2>",
+    "message.number.storage": "<h2><span> # de </span> Volumes de Stockage Primaire</h2>",
+    "message.number.zones": "<h2><span> # de </span> Zones</h2>",
+    "message.outofbandmanagement.action.maintenance": "L'hôte en avertissement est en mode maintenance",
+    "message.outofbandmanagement.changepassword": "Modifier le mot de passe du flux d'administration",
+    "message.outofbandmanagement.configure": "Configurer la gestion du flux d'administration",
+    "message.outofbandmanagement.disable": "Désactiver la gestion du flux d'administration",
+    "message.outofbandmanagement.enable": "Activer la gestion du flux d'administration",
+    "message.outofbandmanagement.issue": "Problème dans l'allumage via la gestion du flux administration.",
+    "message.password.has.been.reset.to": "Le mot de passe a été ré-initialiser en",
+    "message.password.of.the.vm.has.been.reset.to": "Le mot de passe de la VM a été ré-initialisé en",
+    "message.pending.projects.1": "Vous avez des invitations projet en attente :",
+    "message.pending.projects.2": "Pour les visualiser, aller dans la section projets, puis sélectionner invitation dans la liste déroulante.",
+    "message.please.add.at.lease.one.traffic.range": "Ajouter au moins une plage réseau",
+    "message.please.confirm.remove.ssh.key.pair": "Confirmer la suppression de cette bi-clé SSH",
+    "message.please.proceed": "Continuer vers la prochaine étape.",
+    "message.please.select.a.configuration.for.your.zone": "Sélectionner une configuration pour la zone.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Sélectionner un réseau public et d'administration différent avant de supprimer",
+    "message.please.select.networks": "Sélectionner les réseaux pour votre machine virtuelle.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Veuillez sélectionner la bi-clé SSH que vous souhaitez utiliser avec cette VM :",
+    "message.please.wait.while.zone.is.being.created": "Patienter pendant la création de la zone, cela peut prendre du temps...",
+    "message.pod.dedication.released": "Libération du pod dédié",
+    "message.portable.ip.delete.confirm": "Supprimer la plage IP portable ?",
+    "message.project.invite.sent": "Invitation envoyée ; les utilisateurs seront ajoutés après acceptation de l'invitation",
+    "message.public.traffic.in.advanced.zone": "Le trafic public est généré lorsque les machines virtuelles dans le nuage accèdent à Internet. Des adresses IP publiquement accessibles doivent être prévues à cet effet. Les utilisateurs peuvent utiliser l'interface d'administration de CloudStack pour acquérir ces adresses IP qui implémenteront une translation d'adresse NAT entre le réseau d'invité et le réseau public.<br/><br/>Fournir au moins une plage d'adresses IP pour le trafic Internet.",
+    "message.public.traffic.in.basic.zone": "Le trafic public est généré lorsque les machines virtuelles dans le nuage accèdent à Internet ou fournissent des services à des utilisateurs sur Internet. Des adresses IP publiquement accessibles doivent être prévus à cet effet. Quand une instance est créée, une adresse IP publique depuis un ensemble d'adresses IP publiques sera allouée à l'instance, en plus de l'adresse IP de l'invité. La translation d'adresses statique NAT 1-1 sera mises en place automatiquement entre l'adresse IP publique et l'adresse IP de l'invité. Les utilisateurs peuvent également utiliser l'interface d'administration CloudStack pour acquérir des adresses IP supplémentaires pour ajouter une translation d'adresse statique NAT entre leurs instances et le réseau d'adresses IP publiques.",
+    "message.question.are.you.sure.you.want.to.add": "Êtes-vous certain de vouloir ajouter",
+    "message.read.admin.guide.scaling.up": "Veuillez lire le paragraphe \"dynamic scaling\" dans le guide d'administration avant d'opérer un dimensionnement dynamique.",
+    "message.recover.vm": "Confirmer la restauration de cette VM.",
+    "message.redirecting.region": "Redirection vers région...",
+    "message.reinstall.vm": "NOTE: Procédez avec prudence. Cela entraînera la ré-installation de la VM à partir du modèle; les données sur le disque ROOT seront perdues. Les volumes de données supplémentaires, le cas échéant, ne seront pas touchés.",
+    "message.remove.ldap": "Voulez-vous supprimer la configuration LDAP ?",
+    "message.remove.region": "Voulez-vous supprimer cette région depuis ce serveur d'administration ?",
+    "message.remove.vpc": "Confirmer la suppression du VPC",
+    "message.remove.vpn.access": "Supprimer l'accès VPN de cet utilisateur ?",
+    "message.removed.ssh.key.pair": "Bi-clé SSH supprimée",
+    "message.reset.VPN.connection": "Confirmer le ré-initialisation de la connexion VPN",
+    "message.reset.password.warning.notPasswordEnabled": "Le modèle de cette instance a été créé sans la gestion de mot de passe",
+    "message.reset.password.warning.notStopped": "Votre instance doit être arrêtée avant de changer son mot de passe",
+    "message.restart.mgmt.server": "Redémarrez votre(vos) serveur(s) de management pour appliquer les nouveaux paramètres.",
+    "message.restart.mgmt.usage.server": "Redémarrer le ou les serveur(s) de gestion et le ou les serveur(s) de consommation pour que les nouveaux paramètres soient pris en compte.",
+    "message.restart.network": "Tous les services fournit par ce routeur virtuel vont être interrompus. Confirmer le redémarrage de ce routeur.",
+    "message.restart.vpc": "Confirmer le redémarrage du VPC",
+    "message.restart.vpc.remark": "Veuillez confirmer que vous voulez redémarrer le VPC <p><small><i>Note : transformer un VPC non-redondant en VPC redondant va forcer un nettoyage du routeur. Le réseau associé ne sera pas disponible durant quelques minutes</i>.</small></p>",
+    "message.restoreVM": "Voulez-vous restaurer la VM ?",
+    "message.role.ordering.fail": "La réorganisation des règles d'autorisations a été abandonnée car la liste a changé pendant que vous apportez des modifications. Veuillez réessayer.",
+    "message.security.group.usage": "(Utilisez <strong>Ctrl-clic</strong> pour sélectionner les groupes de sécurité visés)",
+    "message.select.a.zone": "Une zone correspond typiquement à un seul centre de données. Des zones multiples peuvent permettre de rendre votre cloud plus fiable en apportant une isolation physique et de la redondance.",
+    "message.select.affinity.groups": "Sélectionner les groupes d'affinité qui appartiendront à cette machine virtuelle :",
+    "message.select.instance": "Sélectionner une instance.",
+    "message.select.iso": "Sélectionner un ISO pour votre nouvelle instance virtuelle.",
+    "message.select.item": "Merci de sélectionner un élément.",
+    "message.select.security.groups": "Merci de sélectionner un(des) groupe(s) de sécurité pour la nouvelle VM",
+    "message.select.template": "Sélectionner un modèle pour votre nouvelle instance virtuelle.",
+    "message.select.tier": "Veuillez selectionner un tiers",
+    "message.set.default.NIC": "Confirmer la mise par défaut de cette NIC pour cette VM.",
+    "message.set.default.NIC.manual": "Veuillez mettre à jour manuellement la NIC par défaut sur la VM maintenant.",
+    "message.setup.physical.network.during.zone.creation": "Lorsque vous ajoutez une zone avancée, vous avez besoin de définir un ou plusieurs réseaux physiques. Chaque réseau correspond à une carte réseau sur l'hyperviseur. Chaque réseau physique peut supporter un ou plusieurs types de trafic, avec certaines restrictions sur la façon dont ils peuvent être combinés.<br/><br/><strong>Glisser et déposer un ou plusieurs types de trafic</strong> sur chaque réseau physique.",
+    "message.setup.physical.network.during.zone.creation.basic": "Quand vous ajoutez une zone basique, vous pouvez paramétrer un seul réseau physique, correspondant à une carte réseau sur l'hyperviseur. Ce réseau comportera plusieurs types de trafic.<br/><br/>Vous pouvez également <strong>glisser et déposer</strong> d'autres types de trafic sur le réseau physique.",
+    "message.setup.successful": "Installation du Cloud réussie !",
+    "message.snapshot.schedule": "Vous pouvez configurer des plannings d'instantanés récurrents en sélectionnant les options disponibles ci-dessous et en appliquant votre politique préférée.",
+    "message.specifiy.tag.key.value": "Spécifier une clé et valeur de tag",
+    "message.specify.url": "Renseigner l'URL",
+    "message.step.1.continue": "Sélectionnez un modèle ou une image ISO pour continuer",
+    "message.step.1.desc": "Sélectionnez un modèle pour votre nouvelle instance virtuelle. Vous pouvez également choisir un modèle vierge sur lequel une image ISO pourra être installée.",
+    "message.step.2.continue": "Sélectionnez une offre de service pour continuer",
+    "message.step.3.continue": "Sélectionnez un offre de service de disque pour continuer",
+    "message.step.4.continue": "Sélectionnez au moins un réseau pour continuer",
+    "message.step.4.desc": "Sélectionnez le réseau principal auquel votre instance va être connecté.",
+    "message.storage.traffic": "Trafic entre les ressources internes de CloudStack, incluant tous les composants qui communiquent avec le serveur d'administration, tels que les hôtes et les machines virtuelles Systèmes CloudStack. Veuillez configurer le trafic de stockage ici.",
+    "message.suspend.project": "Voulez-vous suspendre ce projet ?",
+    "message.systems.vms.ready": "VMs Systèmes prêts.",
+    "message.template.copying": "Le modèle est copié.",
+    "message.template.desc": "Image OS pouvant être utilisée pour démarrer une VM",
+    "message.tier.required": "Le tiers est obligatoire",
+    "message.tooltip.dns.1": "Nom d'un serveur DNS utilisé par les VM de la zone. Les adresses IP publiques de cette zone doivent avoir une route vers ce serveur.",
+    "message.tooltip.dns.2": "Nom d'un serveur DNS secondaire utilisé par les VM de la zone. Les adresses IP publiques de cette zone doivent avoir une route vers ce serveur.",
+    "message.tooltip.internal.dns.1": "Nom d'un serveur DNS que CloudStack peut utiliser pour les VM système dans cette zone. Les adresses IP privées des pods doivent avoir une route vers ce serveur.",
+    "message.tooltip.internal.dns.2": "Nom d'un serveur DNS que CloudStack peut utiliser pour les VM système dans cette zone. Les adresses IP privées des pods doivent avoir une route vers ce serveur.",
+    "message.tooltip.network.domain": "Suffixe DNS qui créera un nom de domaine personnalisé pour les réseau accessible par les VM invitées.",
+    "message.tooltip.pod.name": "Nom pour ce pod.",
+    "message.tooltip.reserved.system.gateway": "La passerelle pour les hôtes du pod.",
+    "message.tooltip.reserved.system.netmask": "Le préfixe réseau utilisé par le sous-réseau du pod. Au format CIDR.",
+    "message.tooltip.zone.name": "Nom pour cette zone.",
+    "message.update.os.preference": "Choisissez votre OS préféré pour cet hôte. Toutes les instances avec des préférences similaires seront d'abord allouées à cet hôte avant d'en choisir un autre.",
+    "message.update.resource.count": "Confirmer la mise à jour des ressources pour ce compte.",
+    "message.update.ssl": "Soumettez un nouveau certificat SSL compatible X.509 qui sera mis à jour sur chaque VM console proxy et VM sockage secondaire :",
+    "message.update.ssl.failed": "Échec dans la mise à jour du certificat SSL",
+    "message.update.ssl.succeeded": "Mise à jour réussie des certificats SSL",
+    "message.validate.URL": "Veuillez entrer une URL valide.",
+    "message.validate.accept": "Veuillez entrer une valeur avec une extension valide.",
+    "message.validate.creditcard": "Veuillez entrer un numéro de carte de crédit valide.",
+    "message.validate.date": "Veuillez entrer une date valide.",
+    "message.validate.date.ISO": "Veuillez entrer une date (ISO) valide.",
+    "message.validate.digits": "Veuillez entrer uniquement des chiffres.",
+    "message.validate.email.address": "Veuillez entrer une adresse email valide.",
+    "message.validate.equalto": "Veuillez entrer de nouveau la même valeur.",
+    "message.validate.fieldrequired": "Ce champ est obligatoire.",
+    "message.validate.fixfield": "Veuillez corriger ce champ.",
+    "message.validate.instance.name": "Le nom de l'instance ne peut dépasser 63 caractères. Seuls les lettres de a à z, les chiffres de 0 à 9 et les tirets sont acceptés. Le nom doit commencer par une lettre et se terminer par une lettre ou un chiffre.",
+    "message.validate.invalid.characters": "Caractères invalides trouvés ; veuillez corriger.",
+    "message.validate.max": "Veuillez entrer une valeur inférieure ou égale à {0}.",
+    "message.validate.maxlength": "Veuillez entrer uniquement {0} caractères.",
+    "message.validate.minlength": "Veuillez entrer au moins {0} caractères.",
+    "message.validate.number": "Veuillez entrer un nombre valide.",
+    "message.validate.range": "Veuillez entrer une valeur de {0} à {1}.",
+    "message.validate.range.length": "Veuillez entrer une valeur de {0} à {1} caractères.",
+    "message.virtual.network.desc": "Un réseau virtuel dédié pour votre compte. Ce domaine de multi-diffusion est contenu dans un VLAN et l'ensemble des réseaux d'accès publique sont routés par un routeur virtuel.",
+    "message.vm.create.template.confirm": "Créer un modèle va redémarrer la VM automatiquement",
+    "message.vm.review.launch": "Merci de vérifier les informations suivantes et de confirmer que votre instance virtuelle est correcte avant de la démarrer.",
+    "message.vnmc.available.list": "VNMC n'est pas disponible dans la liste des fournisseurs.",
+    "message.vnmc.not.available.list": "VNMC n'est pas disponible dans la liste des fournisseurs.",
+    "message.volume.create.template.confirm": "Créer un modèle pour ce disque ? La création peut prendre plusieurs minutes, voir plus, selon la taille du volume.",
+    "message.waiting.for.builtin.templates.to.load": "Attendre le chargement des modèles pré-construit...",
+    "message.you.must.have.at.least.one.physical.network": "Vous devez avoir au moins un réseau physique",
+    "message.your.cloudstack.is.ready": "Votre CloudStack est prêt !",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Création de la zone terminée. Voulez-vous l'activer ?",
+    "message.zone.no.network.selection": "La zone sélectionnée ne propose pas le réseau choisi",
+    "message.zone.step.1.desc": "Sélectionnez un modèle de réseau pour votre zone.",
+    "message.zone.step.2.desc": "Renseigner les informations suivantes pour ajouter une nouvelle zone",
+    "message.zone.step.3.desc": "Renseigner les informations suivantes pour ajouter un nouveau pod",
+    "message.zoneWizard.enable.local.storage": "ATTENTION : si vous activez le stockage local pour cette zone, vous devez effectuer les opérations suivantes, selon l'endroit où vous souhaitez lancer vos machines virtuelles Systèmes :<br/><br/>1. Si les machines virtuelles Systèmes doivent être lancées depuis le stockage primaire, ce dernier doit être ajouté à la zone après la création. Vous devez également démarrer la zone dans un état désactivé.<br/><br/>2. Si les machines virtuelles Systèmes doivent être lancées depuis le stockage local, le paramètre system.vm.use.local.storage doit être défini à 'true' avant d'activer la zone.<br/><br/><br/>Voulez-vous continuer ?",
+    "messgae.validate.min": "Veuillez entrer une valeur supérieure ou égale à {0}.",
+    "mode": "Mode",
+    "network.rate": "Débit Réseau",
+    "notification.reboot.instance": "Redémarrer l'instance",
+    "notification.start.instance": "Démarrer l'instance",
+    "notification.stop.instance": "Stopper l'instance",
+    "side.by.side": "Côte à côte",
+    "state.Accepted": "Accepté",
+    "state.Active": "Actif",
+    "state.Allocated": "Alloué",
+    "state.Allocating": "Allocation en cours",
+    "state.BackedUp": "Sauvegardé",
+    "state.BackingUp": "Sauvegarde en cours",
+    "state.Completed": "Terminé",
+    "state.Creating": "Création en cours",
+    "state.Declined": "Refusé",
+    "state.Destroyed": "Supprimée",
+    "state.Disabled": "Désactivé",
+    "state.Enabled": "Actifs",
+    "state.Error": "Erreur",
+    "state.Expunging": "Purge en cours",
+    "state.Migrating": "Migration en cours",
+    "state.Pending": "En attente",
+    "state.Ready": "Prêt",
+    "state.Running": "Démarrée",
+    "state.Starting": "Démarrage en cours",
+    "state.Stopped": "Arrêtée",
+    "state.Stopping": "Arrêt en cours",
+    "state.Suspended": "Suspendu",
+    "state.detached": "Détaché",
+    "title.upload.volume": "Téléverser Volume",
+    "ui.listView.filters.all": "Tous",
+    "ui.listView.filters.mine": "Les miennes"
+};
diff --git a/ui/l10n/hu.js b/ui/l10n/hu.js
new file mode 100644
index 0000000..d884fc2
--- /dev/null
+++ b/ui/l10n/hu.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP kód",
+    "ICMP.type": "ICMP típus",
+    "changed.item.properties": "Az elem tulajdonságai megváltoztak",
+    "confirm.enable.s3": "Töltsd ki a következő információkat az S3 másodlagos tár bekapcsolásához!",
+    "confirm.enable.swift": "Töltsd ki a következő információkat a Swift támogatás bekapcsolásához!",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Nem sikerült megváltoztatni a jelszavadat, mert az LDAP be van kapcsolva.",
+    "error.could.not.enable.zone": "A zóna engedélyezése sikertelen",
+    "error.installWizard.message": "Valami nem sikerült, visszamehetsz kijavítani a hibákat.",
+    "error.invalid.username.password": "Érvénytelen felhasználónév vagy jelszó",
+    "error.login": "A felhasználónév/jelszó pár nem érvényes.",
+    "error.menu.select": "A művelet nem hajtható végre, mert nincsenek kiválasztott elemek.",
+    "error.mgmt.server.inaccessible": "A vezérlő szerver nem érhető el. Próbáld újra később!",
+    "error.password.not.match": "A jelszavak nem egyeznek.",
+    "error.please.specify.physical.network.tags": "A hálózati ajánlatok nem érhetőek el addig, amíg meg nem adsz címkéket a fizikai hálótathoz.",
+    "error.session.expired": "A munkamenet lejárt.",
+    "error.something.went.wrong.please.correct.the.following": "Valami nem jó! Javítsd a következőket:",
+    "error.unable.to.reach.management.server": "A vezérlő szerver nem elérhető",
+    "error.unresolved.internet.name": "Az internet neved nem oldható fel.",
+    "force.delete": "Törlés kikényszerítése",
+    "force.delete.domain.warning": "Figyelmeztetés: Ha ezt választod, törlődni fog minden alárendelt domén és minden kapcsolódó számla és a hozzájuk tartozó erőforrások.",
+    "force.remove": "Eltávolítás kikényszerítése",
+    "force.remove.host.warning": "Figyelmeztetés: Ha ezt az opciót választod, a CloudStack minden virtuális gépet leállít mielőtt eltávolítja a kiszolgálót a fürtből.",
+    "force.stop": "Leállás kikényszerítése",
+    "force.stop.instance.warning": "Figyelmeztetés: A példány erőszakos leállítása az utolsó lehetőség. Ez adatvesztéshez és a virtuális gép inkonzisztens viselkedéséhez vezethet.",
+    "hint.no.host.tags": "Nincsenek kiszolgáló címkék",
+    "hint.no.storage.tags": "Nincsenek tár címkék",
+    "hint.type.part.host.tag": "Írd be egy kiszolgáló címke részét",
+    "hint.type.part.storage.tag": "Írd be egy tár címke részét",
+    "image.directory": "Image Könyvtár",
+    "inline": "Inline",
+    "instances.actions.reboot.label": "Példány újraindítása",
+    "label.CIDR.list": "CIDR lista",
+    "label.CIDR.of.destination.network": "A cél hálózat CIDR",
+    "label.CPU.cap": "CPU Cap",
+    "label.DHCP.server.type": "DHCP kiszolgáló típus",
+    "label.DNS.domain.for.guest.networks": "Vendég hálózatok DNS tartománya",
+    "label.ESP.encryption": "ESP titkosítás",
+    "label.ESP.hash": "ESP Hash",
+    "label.ESP.lifetime": "ESP élettartam (mp)",
+    "label.ESP.policy": "ESP szabályzat",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE titkosítás",
+    "label.IKE.hash": "IKE Hash",
+    "label.IKE.lifetime": "IKE élettartam (mp)",
+    "label.IKE.policy": "IKE szabályzat",
+    "label.IPsec.preshared.key": "IPsec Preshared-Key",
+    "label.LB.isolation": "Terheléselosztó izoláció",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto log profil",
+    "label.PA.threat.profile": "Palo Alto fenyegetés profil",
+    "label.PING.CIFS.password": "PING CIFS jelszó",
+    "label.PING.CIFS.username": "PING CIFS felhasználó",
+    "label.PING.dir": "PING Directory",
+    "label.PING.storage.IP": "PING tár IP",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "Pxe szerver típus",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNMP Port",
+    "label.SR.name": "SR Name-Label",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP könyvtár",
+    "label.VMFS.datastore": "VMFS adattár",
+    "label.VMs.in.tier": "Réteg VM-ei",
+    "label.VPC.limits": "VPC korlátok",
+    "label.VPC.router.details": "VPC router részletek",
+    "label.VPN.connection": "VPN kapcsolat",
+    "label.VPN.customer.gateway": "VPN ügyfélkapu",
+    "label.VPN.gateway": "VPN átjáró",
+    "label.Xenserver.Tools.Version61plus": "Original XS Version is 6.1+",
+    "label.about": "Névjegy",
+    "label.about.app": "A CloudStack-ről",
+    "label.accept.project.invitation": "Project-meghívó elfogadása",
+    "label.account": "Számla",
+    "label.account.and.security.group": "Számla, biztonsági csoport",
+    "label.account.details": "Számla részletei",
+    "label.account.id": "Számla azonosító",
+    "label.account.lower": "számla",
+    "label.account.name": "Számla név",
+    "label.account.specific": "Számla-specifikus",
+    "label.account.type": "Számla típus",
+    "label.accounts": "Számlák",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL List Rules",
+    "label.acl.name": "ACL név",
+    "label.acl.replaced": "ACL lehelyettesítve",
+    "label.acquire.new.ip": "Új IP cím beszerzése",
+    "label.acquire.new.secondary.ip": "Új másodlagos IP cím beszerzése",
+    "label.action": "Művelet",
+    "label.action.attach.disk": "Merevlemez csatlakoztatása",
+    "label.action.attach.disk.processing": "Merevlemez csatlakoztatása...",
+    "label.action.attach.iso": "ISO csatlakoztatása",
+    "label.action.attach.iso.processing": "ISO csatlakoztatása...",
+    "label.action.cancel.maintenance.mode": "Karbantartási mód megszakítása",
+    "label.action.cancel.maintenance.mode.processing": "Karbantartási mód megszakítása...",
+    "label.action.change.password": "Jelszó csere",
+    "label.action.change.service": "Szolgáltatás változtatása",
+    "label.action.change.service.processing": "Szolgáltatás változtatása...",
+    "label.action.configure.samlauthorization": "Configure SAML SSO Authorization",
+    "label.action.copy.ISO": "ISO másolása",
+    "label.action.copy.ISO.processing": "ISO másolása...",
+    "label.action.copy.template": "Sablon másolása",
+    "label.action.copy.template.processing": "Sablon másolása...",
+    "label.action.create.template": "Sablon létrehozása",
+    "label.action.create.template.from.vm": "Sablon létrehozása VM-ből",
+    "label.action.create.template.from.volume": "Sablon létrehozása kötetből",
+    "label.action.create.template.processing": "Sablon létrehozása...",
+    "label.action.create.vm": "VM létrehozása",
+    "label.action.create.vm.processing": "VM létrehozása...",
+    "label.action.create.volume": "Kötet létrehozása",
+    "label.action.create.volume.processing": "Kötet létrehozása....",
+    "label.action.delete.IP.range": "IP címtartomány törlése",
+    "label.action.delete.IP.range.processing": "IP címtartomány törlése...",
+    "label.action.delete.ISO": "ISO törlése",
+    "label.action.delete.ISO.processing": "ISO törlése...",
+    "label.action.delete.account": "Számla törlése",
+    "label.action.delete.account.processing": "Számla törlése...",
+    "label.action.delete.cluster": "Fürt törlése",
+    "label.action.delete.cluster.processing": "Fürt törlése...",
+    "label.action.delete.disk.offering": "Tár ajánlat törlése",
+    "label.action.delete.disk.offering.processing": "Tár ajánlat törlése...",
+    "label.action.delete.domain": "Domén törlése",
+    "label.action.delete.domain.processing": "Domén törlése...",
+    "label.action.delete.firewall": "Tűzfal szabály törlése",
+    "label.action.delete.firewall.processing": "Tűzfal törlése...",
+    "label.action.delete.ingress.rule": "Ingress szabály törlése",
+    "label.action.delete.ingress.rule.processing": "Ingress szabály törlése...",
+    "label.action.delete.load.balancer": "Terheléselosztó szabály törlése",
+    "label.action.delete.load.balancer.processing": "Terheléselosztó törlése...",
+    "label.action.delete.network": "Hálózat törlése",
+    "label.action.delete.network.processing": "Hálózat törlése...",
+    "label.action.delete.nexusVswitch": "Nexus 1000v törlése",
+    "label.action.delete.nic": "NIC eltávolítása",
+    "label.action.delete.physical.network": "Fizikai hálózat törlése",
+    "label.action.delete.pod": "Pod törlése",
+    "label.action.delete.pod.processing": "Pod törlése...",
+    "label.action.delete.primary.storage": "Elsődleges tár törlése",
+    "label.action.delete.primary.storage.processing": "Elsődleges tár törlése...",
+    "label.action.delete.secondary.storage": "Másodlagos tár törlése",
+    "label.action.delete.secondary.storage.processing": "Másodlagos tár törlése...",
+    "label.action.delete.security.group": "Biztonsági csoport törlése",
+    "label.action.delete.security.group.processing": "Biztonsági csoport törlése...",
+    "label.action.delete.service.offering": "Szolgáltatás ajánlat törlése",
+    "label.action.delete.service.offering.processing": "Szolgáltatás ajánlat törlése...",
+    "label.action.delete.snapshot": "Pillanatfelvétel törlése",
+    "label.action.delete.snapshot.processing": "Pillanatfelvétel törlése...",
+    "label.action.delete.system.service.offering": "Rendszer szolgáltatás ajánlat törlése",
+    "label.action.delete.template": "Sablon törlése",
+    "label.action.delete.template.processing": "Sablon törlése...",
+    "label.action.delete.user": "Felhasználó törlése",
+    "label.action.delete.user.processing": "Felhasználó törlése...",
+    "label.action.delete.volume": "Kötet törlése",
+    "label.action.delete.volume.processing": "Kötet törlése...",
+    "label.action.delete.zone": "Zóna törlése",
+    "label.action.delete.zone.processing": "Zóna törlése...",
+    "label.action.destroy.instance": "Példány elpusztítása",
+    "label.action.destroy.instance.processing": "Példány elpusztítása...",
+    "label.action.destroy.systemvm": "Rendszer VM elpusztítása",
+    "label.action.destroy.systemvm.processing": "Rendszer VM elpusztítása...",
+    "label.action.detach.disk": "Merevlemez leválasztása",
+    "label.action.detach.disk.processing": "Merevlemez leválasztása...",
+    "label.action.detach.iso": "ISO leválasztása",
+    "label.action.detach.iso.processing": "ISO leválasztása...",
+    "label.action.disable.account": "Számla kikapcsolása",
+    "label.action.disable.account.processing": "Számla kikapcsolása...",
+    "label.action.disable.cluster": "Fürt kikapcsolása",
+    "label.action.disable.cluster.processing": "Fürt kikapcsolása...",
+    "label.action.disable.nexusVswitch": "Nexus 1000v kikapcsolása",
+    "label.action.disable.physical.network": "Fizikikai hálózat kikapcsolása",
+    "label.action.disable.pod": "Pod kikapcsolása",
+    "label.action.disable.pod.processing": "Pod kikapcsolása...",
+    "label.action.disable.static.NAT": "Statikus NAT kikapcsolása",
+    "label.action.disable.static.NAT.processing": "Statikus NAT kikapcsolása...",
+    "label.action.disable.user": "Felhasználó kikapcsolása",
+    "label.action.disable.user.processing": "Felhasználó kikapcsolása...",
+    "label.action.disable.zone": "Zóna kikapcsolása",
+    "label.action.disable.zone.processing": "Zóna kikapcsolása...",
+    "label.action.download.ISO": "ISO letöltése",
+    "label.action.download.template": "Sablon letöltése",
+    "label.action.download.volume": "Kötet letöltése",
+    "label.action.download.volume.processing": "Kötet letöltése...",
+    "label.action.edit.ISO": "ISO szerkesztése",
+    "label.action.edit.account": "Számla engedélyezése",
+    "label.action.edit.disk.offering": "Merevlemez ajánlat szerkesztése",
+    "label.action.edit.domain": "Domén szerkesztése",
+    "label.action.edit.global.setting": "Globális beállítás szerkesztése",
+    "label.action.edit.host": "Kiszolgáló szerkesztése",
+    "label.action.edit.instance": "Példány szerkesztése",
+    "label.action.edit.network": "Hálózat szerkesztése",
+    "label.action.edit.network.offering": "Hálózat ajánlat szerkesztése",
+    "label.action.edit.network.processing": "Hálózat szerkesztése...",
+    "label.action.edit.pod": "Pod szerkesztése",
+    "label.action.edit.primary.storage": "Elsődleges tár szerkesztése",
+    "label.action.edit.resource.limits": "Erőforrás korlátok szerkesztése",
+    "label.action.edit.service.offering": "Szolgáltatás ajánlat szerkesztése",
+    "label.action.edit.template": "Sablon szerkesztése",
+    "label.action.edit.user": "Felhasználó szerkesztése",
+    "label.action.edit.zone": "Zóna szerkesztése",
+    "label.action.enable.account": "Számla engedélyezése",
+    "label.action.enable.account.processing": "Számla szerkesztése...",
+    "label.action.enable.cluster": "Fürt engedélyezése",
+    "label.action.enable.cluster.processing": "Fürt engedélyezése...",
+    "label.action.enable.maintenance.mode": "Karbantartási üzemmód engedélyezése",
+    "label.action.enable.maintenance.mode.processing": "Karbantartási üzemmód engedélyezése...",
+    "label.action.enable.nexusVswitch": "Nexus 1000v bekapcsolása",
+    "label.action.enable.physical.network": "Fizikai hálózat bekapcsolása",
+    "label.action.enable.pod": "Pod bekapcsolása",
+    "label.action.enable.pod.processing": "Pod bekapcsolása...",
+    "label.action.enable.static.NAT": "Statikus NAT bekapcsolása",
+    "label.action.enable.static.NAT.processing": "Statikus NAT bekapcsolása...",
+    "label.action.enable.user": "Felhasználó bekapcsolása",
+    "label.action.enable.user.processing": "Felhasználó bekapcsolása...",
+    "label.action.enable.zone": "Zóna bekapcsolása",
+    "label.action.enable.zone.processing": "Zóna bekapcsolása....",
+    "label.action.expunge.instance": "Példány törlése",
+    "label.action.expunge.instance.processing": "Példány törlése...",
+    "label.action.force.reconnect": "Újracsatlakozás kikényszerítése",
+    "label.action.force.reconnect.processing": "Újrakapcsolódás...",
+    "label.action.generate.keys": "Kulcsgenerálás",
+    "label.action.generate.keys.processing": "Kulcsgenerálás....",
+    "label.action.list.nexusVswitch": "Nexus 1000v lista",
+    "label.action.lock.account": "Számla zárása",
+    "label.action.lock.account.processing": "Számla zárása...",
+    "label.action.manage.cluster": "Fürt vezérlése",
+    "label.action.manage.cluster.processing": "Fürt vezérlése...",
+    "label.action.migrate.instance": "Példány költöztetése",
+    "label.action.migrate.instance.processing": "Példány mozgatása...",
+    "label.action.migrate.router": "Router költöztetése",
+    "label.action.migrate.router.processing": "Router mozgatása...",
+    "label.action.migrate.systemvm": "Rendszer VM költöztetése",
+    "label.action.migrate.systemvm.processing": "Rendszer VM mozgatása...",
+    "label.action.reboot.instance": "Példány újraindítása",
+    "label.action.reboot.instance.processing": "Példány újraindítása",
+    "label.action.reboot.router": "Router újraindítása",
+    "label.action.reboot.router.processing": "Router újraindítása...",
+    "label.action.reboot.systemvm": "Rendszer VM újraindítása",
+    "label.action.reboot.systemvm.processing": "Rendszer VM újraindítása",
+    "label.action.recurring.snapshot": "Ismétlődő pillanatfelvételek",
+    "label.action.register.iso": "ISO regisztrációja",
+    "label.action.register.template": "Sablon regisztrációja URL-ről",
+    "label.action.release.ip": "IP cím elengedése",
+    "label.action.release.ip.processing": "IP cím elengedése",
+    "label.action.remove.host": "Kiszolgáló eltávolítása",
+    "label.action.remove.host.processing": "Kiszolgáló eltávolítása...",
+    "label.action.reset.password": "Jelszó újrabeállítása",
+    "label.action.reset.password.processing": "Jelszó újrabeállítása...",
+    "label.action.resize.volume": "Kötet átméretezése",
+    "label.action.resize.volume.processing": "Kötet átméretezése",
+    "label.action.resource.limits": "Erőforrás korlátok",
+    "label.action.restore.instance": "Példány helyreállítása",
+    "label.action.restore.instance.processing": "Példány helyreállítása...",
+    "label.action.revert.snapshot": "Visszaállás pillanatfelvételre",
+    "label.action.revert.snapshot.processing": "Visszaállás pillanatfelvételre...",
+    "label.action.start.instance": "Példány indítása",
+    "label.action.start.instance.processing": "Példány indítása...",
+    "label.action.start.router": "Router indítása",
+    "label.action.start.router.processing": "Router leállítása...",
+    "label.action.start.systemvm": "Rendszer VM indítása",
+    "label.action.start.systemvm.processing": "Rendszer VM indítása",
+    "label.action.stop.instance": "Példány leállítása",
+    "label.action.stop.instance.processing": "Példány leállítása...",
+    "label.action.stop.router": "Router leállítása",
+    "label.action.stop.router.processing": "Router leállítása...",
+    "label.action.stop.systemvm": "Rendszer VM leállítása",
+    "label.action.stop.systemvm.processing": "Rendszer VM leállítása...",
+    "label.action.take.snapshot": "Pillanatfelvétel készítése",
+    "label.action.take.snapshot.processing": "Pillanatfelvétel készítése...",
+    "label.action.unmanage.cluster": "Fürt vezérlés leállítása",
+    "label.action.unmanage.cluster.processing": "Fürt vezérlés leállítása...",
+    "label.action.update.OS.preference": "OS preferencia módosítása",
+    "label.action.update.OS.preference.processing": "OS preferencia módosítása...",
+    "label.action.update.resource.count": "Erőforrás szám módosítása",
+    "label.action.update.resource.count.processing": "Erőforrás szám módosítása...",
+    "label.action.vmsnapshot.create": "VM pillanatfelvétel készítése",
+    "label.action.vmsnapshot.delete": "VM pillanatfelvétel készítése",
+    "label.action.vmsnapshot.revert": "Visszaállás VM pillanatfelvételre",
+    "label.actions": "Műveletek",
+    "label.activate.project": "Projekt aktiválása",
+    "label.active.sessions": "Aktív munkamenetek",
+    "label.add": "Felvétel",
+    "label.add.ACL": "ACL felvétele",
+    "label.add.BigSwitchBcf.device": "BigSwitch BCF vezérlő felvétele",
+    "label.add.BrocadeVcs.device": "Brocade Vcs Switch felvétele",
+    "label.add.F5.device": "F5 eszköz felvétele",
+    "label.add.LDAP.account": "LDAP számla felvétele",
+    "label.add.NiciraNvp.device": "Nvp Controller felvétele",
+    "label.add.NuageVsp.device": "Nuage Virtualized Services Directory (VSD) felvétele",
+    "label.add.OpenDaylight.device": "OpenDaylight Controller hozzáadása",
+    "label.add.PA.device": "Palo Alto eszköz felvétele",
+    "label.add.SRX.device": "SRX szköz felvétele",
+    "label.add.VM.to.tier": "VM felvétele rétegbe",
+    "label.add.VPN.gateway": "VPN átjáró felvétele",
+    "label.add.account": "Számla felvétele",
+    "label.add.account.to.project": "Számla felvétele a projekthez",
+    "label.add.accounts": "Számlák felvétele",
+    "label.add.accounts.to": "Számla felvétele:",
+    "label.add.acl.list": "ACL lista felvétele",
+    "label.add.affinity.group": "Új affinítási csoport felvétele",
+    "label.add.baremetal.dhcp.device": "Baremetal DHCP eszköz felvétele",
+    "label.add.baremetal.rack.configuration": "Baremetal rack konfiguráció felvétele",
+    "label.add.by": "Add by",
+    "label.add.by.cidr": "Add By CIDR",
+    "label.add.by.group": "Add By Group",
+    "label.add.ciscoASA1000v": "CiscoASA1000v erőforrás felvétele",
+    "label.add.cluster": "Fürt felvétele",
+    "label.add.compute.offering": "CPU ajánlat felvétele",
+    "label.add.direct.iprange": "IP tartomány felvétele",
+    "label.add.disk.offering": "Merevlemez ajánlat felvétele",
+    "label.add.domain": "Domén felvétele",
+    "label.add.egress.rule": "Kimenő szabály felvétele",
+    "label.add.firewall": "Tűzfal szabály felvétele",
+    "label.add.globo.dns": "GloboDNS felvétele",
+    "label.add.gslb": "GSLB felvétele",
+    "label.add.guest.network": "Vendég hálózat felvétele",
+    "label.add.host": "Kiszolgáló felvétele",
+    "label.add.ingress.rule": "Ingress szabály felvétele",
+    "label.add.intermediate.certificate": "Közbülső tanúsítvány felvétele",
+    "label.add.internal.lb": "Belső LB felvétele",
+    "label.add.ip.range": "IP címtartomány felvétele",
+    "label.add.isolated.guest.network": "Izolált vendég hálózat felvétele",
+    "label.add.isolated.guest.network.with.sourcenat": "Add Isolated Guest Network with SourceNat",
+    "label.add.isolated.network": "Izolált hálózat felvétele",
+    "label.add.ldap.account": "LDAP hozzáférés felvétele",
+    "label.add.list.name": "ACL lista név",
+    "label.add.load.balancer": "Terheléselosztó felvétele",
+    "label.add.more": "További felvétele",
+    "label.add.netScaler.device": "Netscaler eszköz felvétele",
+    "label.add.network": "Hálózat felvétele",
+    "label.add.network.ACL": "Hálózati ACL felvétele",
+    "label.add.network.acl.list": "Hálózati ACL lista felvétele",
+    "label.add.network.device": "Add Network Device",
+    "label.add.network.offering": "Hálózati ajánlat felvétele",
+    "label.add.new.F5": "Új F5 felvétele",
+    "label.add.new.NetScaler": "Új NetScaler felvétele",
+    "label.add.new.PA": "Új Palo Alto felvétele",
+    "label.add.new.SRX": "Új SRX felvétele",
+    "label.add.new.gateway": "Új átjáró felvétele",
+    "label.add.new.tier": "Új réteg felvétele",
+    "label.add.nfs.secondary.staging.store": "Add NFS Secondary Staging Store",
+    "label.add.physical.network": "Fizikai hálózat felvétele",
+    "label.add.pod": "Pod felvétele",
+    "label.add.port.forwarding.rule": "Port továbbító szabály felvétele",
+    "label.add.portable.ip.range": "Portolható IP tartomány felvétele",
+    "label.add.primary.storage": "Elsődleges tár felvétele",
+    "label.add.private.gateway": "Privát átjáró felvétele",
+    "label.add.region": "Régió felvétele",
+    "label.add.resources": "Erőforrások felvétele",
+    "label.add.role": "Add Role",
+    "label.add.route": "Útvonal felvétele",
+    "label.add.rule": "Szabály felvétele",
+    "label.add.secondary.storage": "Másodlagos tár felvétele",
+    "label.add.security.group": "Biztonsági csoport felvétele",
+    "label.add.service.offering": "Szolgáltatás ajánlat felvétele",
+    "label.add.static.nat.rule": "Statikus NAT szabály felvétele",
+    "label.add.static.route": "Statikus útvonal felvétele",
+    "label.add.system.service.offering": "Add System Service Offering",
+    "label.add.template": "Sablon felvétele",
+    "label.add.to.group": "Felvétel a csoportba",
+    "label.add.ucs.manager": "UCS Manager felvétele",
+    "label.add.user": "Felhasználó felvétele",
+    "label.add.userdata": "Felhasználó adat",
+    "label.add.vlan": "VLAN felvétele",
+    "label.add.vm": "VM felvétele",
+    "label.add.vms": "VM-ek felvétele",
+    "label.add.vms.to.lb": "VM(ek) felvétele a terheléselosztó szabályba",
+    "label.add.vmware.datacenter": "VMware adatközpont felvétele",
+    "label.add.vnmc.device": "VNMC eszköz felvétele",
+    "label.add.vnmc.provider": "VNMC szolgáltató felvétele",
+    "label.add.volume": "Kötet felvétele",
+    "label.add.vpc": "VPC felvétele",
+    "label.add.vpc.offering": "VPC ajánlat felvétele",
+    "label.add.vpn.customer.gateway": "VPN ügyfélkapu felvétele",
+    "label.add.vpn.user": "VPN felhasználó felvétele",
+    "label.add.vxlan": "VXLAN felvétele",
+    "label.add.zone": "Zóna felvétele",
+    "label.added.brocade.vcs.switch": "Added new Brocade Vcs Switch",
+    "label.added.network.offering": "Hálózat ajánlat felvéve",
+    "label.added.new.bigswitch.bcf.controller": "BigSwitch BCF vezérlő felvéve",
+    "label.added.nicira.nvp.controller": "Added new Nicira NVP Controller",
+    "label.addes.new.f5": "Új F5 felvétele",
+    "label.adding": "Felvétel",
+    "label.adding.cluster": "Fürt felvétele",
+    "label.adding.failed": "Hiba a felvétel során",
+    "label.adding.pod": "Pod felvétele",
+    "label.adding.processing": "Felvétel...",
+    "label.adding.succeeded": "Sikeres felvétel",
+    "label.adding.user": "Felhasználó felvétele",
+    "label.adding.zone": "Zóna felvétele",
+    "label.additional.networks": "További hálózatok",
+    "label.admin": "Adminisztrátor",
+    "label.admin.accounts": "Adminisztrátor hozzáférések",
+    "label.advanced": "Haladó",
+    "label.advanced.mode": "Haladó mód",
+    "label.advanced.search": "Haladó keresés",
+    "label.affinity": "Affinítás",
+    "label.affinity.group": "Affinítási csoport",
+    "label.affinity.groups": "Affinítási csoportok",
+    "label.agent.password": "Ügynök jelszó",
+    "label.agent.port": "Ügynök port",
+    "label.agent.state": "Ügynök állapot",
+    "label.agent.username": "Ügynök felhasználónév",
+    "label.agree": "Elfogadom",
+    "label.alert": "Riasztás",
+    "label.alert.archived": "Riasztás archiválva",
+    "label.alert.deleted": "Riasztás törölve",
+    "label.alert.details": "Riasztás részletei",
+    "label.algorithm": "Algoritmus",
+    "label.allocated": "Lekötöve",
+    "label.allocation.state": "Lefoglalás állapota",
+    "label.allow": "Engedélyez",
+    "label.anti.affinity": "Anti-affinítás",
+    "label.anti.affinity.group": "Anti-affinítás csoport",
+    "label.anti.affinity.groups": "Anti-affinítás csoportok",
+    "label.api.key": "API kulcs",
+    "label.api.version": "API verzió",
+    "label.app.name": "CloudStack",
+    "label.apply": "Alkalmaz",
+    "label.archive": "Archive",
+    "label.archive.alerts": "Riasztások archiválása",
+    "label.archive.events": "Események archiválása",
+    "label.assign": "Hozzárendelés",
+    "label.assign.instance.another": "Példány hozzárendelése másik számlához",
+    "label.assign.to.load.balancer": "Példány hozzárendelése terheléselosztóhoz",
+    "label.assign.vms": "VM-ek hozzárendelése",
+    "label.assigned.vms": "Hozzárendelt VM-ek",
+    "label.associate.public.ip": "Publikus IP cím hozzárendelése",
+    "label.associated.network": "Kapcsolt hálózat",
+    "label.associated.network.id": "Kapcsolt hálózat ID",
+    "label.associated.profile": "Kapacsolt profil",
+    "label.attached.iso": "Kapcsolt ISO",
+    "label.author.email": "Szerző e-mail",
+    "label.author.name": "Szerző név",
+    "label.autoscale": "AutoScale",
+    "label.autoscale.configuration.wizard": "AutoScale konfiguráció varázsló",
+    "label.availability": "Elérhetőség",
+    "label.availability.zone": "Elérhetőségi zóna",
+    "label.availabilityZone": "Elérhetőségi zóna",
+    "label.available": "Elérhető",
+    "label.available.public.ips": "Elérhető publikus PI címek",
+    "label.back": "Vissza",
+    "label.bandwidth": "Sávszélesség",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP eszközök",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP szolgáltató",
+    "label.baremetal.pxe.device": "Baremetal PXE eszköz felvétele",
+    "label.baremetal.pxe.devices": "Baremetal PXE eszközök",
+    "label.baremetal.pxe.provider": "Baremetal PXE szolgáltató",
+    "label.baremetal.rack.configuration": "Baremetal rack konfiguráció",
+    "label.basic": "Alap",
+    "label.basic.mode": "Alap mód",
+    "label.bigswitch.bcf.details": "BigSwitch BCF részletek",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT bekapcsolva",
+    "label.bigswitch.controller.address": "BigSwitch BCF vezérlő cím",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blade-k",
+    "label.bootable": "Indítható",
+    "label.broadcast.domain.range": "Broadcast domain range",
+    "label.broadcast.domain.type": "Broadcast Domain Type",
+    "label.broadcast.uri": "Broadcast URI",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "Broadcast URI",
+    "label.brocade.vcs.address": "Vcs Switch cím",
+    "label.brocade.vcs.details": "Brocade Vcs Switch részletek",
+    "label.by.account": "By Account",
+    "label.by.alert.type": "Riasztás típus szerint",
+    "label.by.availability": "By Availability",
+    "label.by.date.end": "Dátum szerint (vég)",
+    "label.by.date.start": "Dátum szerint (kezdő)",
+    "label.by.domain": "By Domain",
+    "label.by.end.date": "By End Date",
+    "label.by.event.type": "Esemény típus szerint",
+    "label.by.level": "By Level",
+    "label.by.pod": "By Pod",
+    "label.by.role": "By Role",
+    "label.by.start.date": "By Start Date",
+    "label.by.state": "By State",
+    "label.by.traffic.type": "By Traffic Type",
+    "label.by.type": "By Type",
+    "label.by.type.id": "By Type ID",
+    "label.by.zone": "By Zone",
+    "label.bytes.received": "Fogadott byte-ok",
+    "label.bytes.sent": "Küldött byte-ok",
+    "label.cache.mode": "Write-cache Type",
+    "label.cancel": "Megszakítás",
+    "label.capacity": "Kapacítás",
+    "label.capacity.bytes": "Byte kapacítás",
+    "label.capacity.iops": "IOPS kapacítás",
+    "label.certificate": "Server certificate",
+    "label.change.affinity": "Affinítás változtatása",
+    "label.change.ipaddress": "Change IP address for NIC",
+    "label.change.service.offering": "Change service offering",
+    "label.change.value": "Érték változtatása",
+    "label.character": "Karakter",
+    "label.chassis": "Ház",
+    "label.checksum": "ellenörző összeg",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR vagy számla/biztonsági csoport",
+    "label.cidr.list": "Forrás CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP cím",
+    "label.cisco.nexus1000v.password": "Nexus 1000v jelszó",
+    "label.cisco.nexus1000v.username": "Nexus 1000v felhasználónév",
+    "label.ciscovnmc.resource.details": "CiscoVNMC erőforrás részletek",
+    "label.clean.up": "Takarítás",
+    "label.clear.list": "Lista törlése",
+    "label.close": "Bezárás",
+    "label.cloud.console": "Cloud Management Console",
+    "label.cloud.managed": "Cloud.com Managed",
+    "label.cluster": "Fürt",
+    "label.cluster.name": "Fürt név",
+    "label.cluster.type": "Fürt típus",
+    "label.clusters": "Fürt",
+    "label.clvm": "CLVM",
+    "label.code": "Kód",
+    "label.community": "Közösség",
+    "label.compute": "Számítás",
+    "label.compute.and.storage": "Számítás és tár",
+    "label.compute.offering": "CPU ajánlat",
+    "label.compute.offerings": "Számítási ajánlatok",
+    "label.configuration": "Konfiguráció",
+    "label.configure": "Konfiguráció",
+    "label.configure.ldap": "LDAP konfigurációja",
+    "label.configure.network.ACLs": "Hálózati ACL-ek konfigurációja",
+    "label.configure.sticky.policy": "Configure Sticky Policy",
+    "label.configure.vpc": "VPC konfigurációja",
+    "label.confirm.password": "Jelszó megerősítés",
+    "label.confirmation": "Megerősítés",
+    "label.congratulations": "Gratuláció!",
+    "label.conserve.mode": "Conserve mode",
+    "label.console.proxy": "Konzol proxy",
+    "label.console.proxy.vm": "Konzol Proxy VM",
+    "label.continue": "Tovább",
+    "label.continue.basic.install": "Folytatás alaptelepítéssel",
+    "label.copying.iso": "ISO másolása",
+    "label.corrections.saved": "Javítások mentve",
+    "label.counter": "Számláló",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU allokálva",
+    "label.cpu.allocated.for.VMs": "CPU lefoglalva a VM-ek részére",
+    "label.cpu.limits": "CPU korlátok",
+    "label.cpu.mhz": "CPU (MHz)",
+    "label.cpu.utilized": "CPU használat",
+    "label.create.VPN.connection": "VPN kapcsolat létrehozása",
+    "label.create.nfs.secondary.staging.storage": "Create NFS Secondary Staging Store",
+    "label.create.nfs.secondary.staging.store": "NFS másodlagos tár létrehozása",
+    "label.create.project": "Projekt létrehozása",
+    "label.create.ssh.key.pair": "SSH kulcspár létrehozása",
+    "label.create.template": "Sablon létrehozása",
+    "label.created": "Létrehozás dátuma",
+    "label.created.by.system": "Created by system",
+    "label.cross.zones": "Cross Zones",
+    "label.custom": "Egyedi",
+    "label.custom.disk.iops": "Egyedi IOPS",
+    "label.custom.disk.offering": "Egyedi tár ajánlat",
+    "label.custom.disk.size": "Egyedi merevlemez méret",
+    "label.daily": "Napi",
+    "label.data.disk.offering": "Adat merevlemez ajánlat",
+    "label.date": "Dátum",
+    "label.day": "Nap",
+    "label.day.of.month": "Hónap napja",
+    "label.day.of.week": "Hét napja",
+    "label.dc.name": "DC név",
+    "label.dead.peer.detection": "Dead Peer Detection",
+    "label.decline.invitation": "Meghívó elutasítása",
+    "label.dedicate": "Dedikálás",
+    "label.dedicate.cluster": "Fürt dedikálása",
+    "label.dedicate.host": "Kiszolgáló dedikálása",
+    "label.dedicate.pod": "Pod dedikálása",
+    "label.dedicate.vlan.vni.range": "Dedikált VLAN/VNI tartomány",
+    "label.dedicate.zone": "Dedikált zóna",
+    "label.dedicated": "Dedikált",
+    "label.dedicated.vlan.vni.ranges": "Dedikált VLAN/VNI tartományok",
+    "label.default": "Alapértelmezett",
+    "label.default.egress.policy": "Default egress policy",
+    "label.default.use": "Alapértelmezett használat",
+    "label.default.view": "Alapértelmezett nézet",
+    "label.delete": "Törlés",
+    "label.delete.BigSwitchBcf": "BigSwitch BCF vezérlő eltávolítása",
+    "label.delete.BrocadeVcs": "Brocade Vcs Switch törlése",
+    "label.delete.F5": "F5 törlése",
+    "label.delete.NetScaler": "NetScaler törlése",
+    "label.delete.NiciraNvp": "Nvp vezérlő törlése",
+    "label.delete.NuageVsp": "Nuage VSD törlése",
+    "label.delete.OpenDaylight.device": "OpenDaylight Controller törlése",
+    "label.delete.PA": "Palo Alto törlése",
+    "label.delete.SRX": "SRX törlése",
+    "label.delete.VPN.connection": "VPN kapcsolat törlése",
+    "label.delete.VPN.customer.gateway": "VPN ügyfél kapu törlése",
+    "label.delete.VPN.gateway": "VPN kapu törlése",
+    "label.delete.acl.list": "ACL lista törlése",
+    "label.delete.affinity.group": "Affinítási csoport törlése",
+    "label.delete.alerts": "Törlés riasztások",
+    "label.delete.baremetal.rack.configuration": "Baremetal rack konfiguráció törlése",
+    "label.delete.ciscoASA1000v": "CiscoASA1000v törlése",
+    "label.delete.ciscovnmc.resource": "CiscoVNMC erőforrás törlése",
+    "label.delete.events": "Törlés események",
+    "label.delete.gateway": "Átjáró törlése",
+    "label.delete.internal.lb": "Belső LB törlése",
+    "label.delete.portable.ip.range": "Hordozható IP tartomány törlése",
+    "label.delete.profile": "Profil törlése",
+    "label.delete.project": "Projekt törlése",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Delete Secondary Staging Store",
+    "label.delete.ucs.manager": "UCS Manager törlése",
+    "label.delete.vpn.user": "VPN felhasználó törlése",
+    "label.deleting.failed": "Törlés sikertelen",
+    "label.deleting.processing": "Törlés...",
+    "label.deny": "Megtilt",
+    "label.deployment.planner": "Felhasználás tervező",
+    "label.description": "Leírás",
+    "label.destination.physical.network.id": "Cél fizikai hálózat ID",
+    "label.destination.zone": "Cél zóna",
+    "label.destroy": "Elpusztít",
+    "label.destroy.router": "Router elpusztítása",
+    "label.destroy.vm.graceperiod": "VM elpusztítás türelmi idő",
+    "label.detaching.disk": "Merevlemez leválasztása",
+    "label.details": "Részletek",
+    "label.device.id": "Eszköz ID",
+    "label.devices": "Eszközök",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Direct Attached Public IP",
+    "label.direct.ips": "Osztott hálózati IP címek",
+    "label.disable.autoscale": "Automatikus skálázás kikapcsolása",
+    "label.disable.host": "Kiszolgáló kikapcsolása",
+    "label.disable.network.offering": "Hálózati ajánlat kikapcsolása",
+    "label.disable.provider": "Szolgáltató kikapcsolása",
+    "label.disable.vnmc.provider": "VNMC szolgáltató kikapcsolása",
+    "label.disable.vpc.offering": "VPC ajánlat kikapcsolása",
+    "label.disable.vpn": "Távoli VPN hozzáférés kikapcsolása",
+    "label.disabled": "Kikapcsolt",
+    "label.disabling.vpn.access": "VPN hozzáférés kikapcsolása",
+    "label.disassociate.profile.blade": "Profil elválasztása a blade-től",
+    "label.disbale.vnmc.device": "VNMC eszkösz kikapcsolása",
+    "label.disk.allocated": "Merevlemez lefoglalva",
+    "label.disk.bytes.read.rate": "Olvasási ráta (BPS)",
+    "label.disk.bytes.write.rate": "Írási ráta (BPS)",
+    "label.disk.iops.max": "IOPS maximum",
+    "label.disk.iops.min": "IOPS minimum",
+    "label.disk.iops.read.rate": "Olvasási ráta (IOPS)",
+    "label.disk.iops.total": "IOPS összesen",
+    "label.disk.iops.write.rate": "Írási ráta (IOPS)",
+    "label.disk.offering": "Merevlemez ajánlat",
+    "label.disk.offering.details": "Merevlemez ajánlat részletei",
+    "label.disk.provisioningtype": "Létrehozás típusa",
+    "label.disk.read.bytes": "Merevlemez olvasás (Byte)",
+    "label.disk.read.io": "Merevlemez írás (IO)",
+    "label.disk.size": "Merevlemez méret",
+    "label.disk.size.gb": "Merevlemez méret (GB)",
+    "label.disk.total": "Merevlemez összes",
+    "label.disk.volume": "Merevlemez kötet",
+    "label.disk.write.bytes": "Merevlemez írás (byte)",
+    "label.disk.write.io": "Merevlemez írás (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Megjelenítendő név",
+    "label.display.text": "Megjelenítendő szöveg",
+    "label.distributedrouter": "Elosztott router",
+    "label.dns": "DNS",
+    "label.dns.1": "1. DNS",
+    "label.dns.2": "2. DNS",
+    "label.domain": "Domén",
+    "label.domain.admin": "Tartomány adminisztrátor",
+    "label.domain.details": "Domain details",
+    "label.domain.id": "Tartomány ID",
+    "label.domain.lower": "domain",
+    "label.domain.name": "Tartomány név",
+    "label.domain.router": "Domain router",
+    "label.domain.suffix": "DNS domén végződés (pl. xyz.com)",
+    "label.done": "Kész",
+    "label.double.quotes.are.not.allowed": "A kettős idézőjel nem engedélyezett",
+    "label.download.progress": "Letöltés folyamat",
+    "label.drag.new.position": "Új helyre húzás",
+    "label.duration.in.sec": "Időtartam (mp)",
+    "label.dynamically.scalable": "Dinakikusan skálázható",
+    "label.edit": "Szerkesztés",
+    "label.edit.acl.rule": "ACL szabály szerkesztése",
+    "label.edit.affinity.group": "Affinítási csoport szerkesztése",
+    "label.edit.lb.rule": "LB szabály módosítása",
+    "label.edit.network.details": "Hálózat részleteinek szerkesztése",
+    "label.edit.project.details": "Projekt részletek szerkesztése",
+    "label.edit.region": "Régió szerkesztése",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Szabály módosítása",
+    "label.edit.secondary.ips": "Másodlagos IP címek módosítása",
+    "label.edit.tags": "Cimkék szerkesztése",
+    "label.edit.traffic.type": "Forgalom típus szerkesztése",
+    "label.edit.vpc": "VPC szerkesztése",
+    "label.egress.default.policy": "Alapértelmezett egress szabályzat",
+    "label.egress.rule": "Egress szabály",
+    "label.egress.rules": "Egress szabályok",
+    "label.elastic": "Elasztikus",
+    "label.elastic.IP": "Elasztikus IP",
+    "label.elastic.LB": "Elasztikus LB",
+    "label.email": "Email",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Automatikus skálázás bekapcsolása",
+    "label.enable.host": "Kiszolgáló bekapcsolása",
+    "label.enable.network.offering": "Hálózati ajánlat bekapcsolása",
+    "label.enable.provider": "Szolgáltató bekapcsolása",
+    "label.enable.s3": "S3-alapú másodlagos tár bekapcsolása",
+    "label.enable.swift": "Swift engedélyezése",
+    "label.enable.vnmc.device": "VNMC eszköz bekapcsolása",
+    "label.enable.vnmc.provider": "VNMC szolgáltató bekapcsolása",
+    "label.enable.vpc.offering": "VPC ajánlat bekapcsolása",
+    "label.enable.vpn": "Enable Remote Access VPN",
+    "label.enabling.vpn": "VPN engedélyezése",
+    "label.enabling.vpn.access": "VPN hozzáférés engedélyezése",
+    "label.end.IP": "Utolsó IP",
+    "label.end.port": "Utolsó Port",
+    "label.end.reserved.system.IP": "Utolsó elkülönített rendszer IP",
+    "label.end.vlan": "Utolsó VLAN",
+    "label.end.vxlan": "Utolsó VXLAN",
+    "label.endpoint": "Végpont",
+    "label.endpoint.or.operation": "Végpont vagy művelet",
+    "label.enter.token": "Add meg a token-t!",
+    "label.error": "Hiba",
+    "label.error.code": "Hibakód",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "ESX/ESXi kiszolgáló",
+    "label.event": "Esemény",
+    "label.event.archived": "Esemény archiválva",
+    "label.event.deleted": "Esemény törölve",
+    "label.every": "Minden",
+    "label.example": "Példa",
+    "label.expunge": "Törlés",
+    "label.external.link": "Külső hivatkozás",
+    "label.extractable": "Kicsomagolható",
+    "label.extractable.lower": "kicsomagolható",
+    "label.f5": "F5",
+    "label.f5.details": "F5 részletek",
+    "label.failed": "Hiba",
+    "label.featured": "Kiemelt",
+    "label.fetch.latest": "Legfrissebb letöltése",
+    "label.filterBy": "Szűrés",
+    "label.fingerprint": "Újlenyomat",
+    "label.firewall": "Tűzfal",
+    "label.first.name": "Keresztnév",
+    "label.firstname.lower": "keresztnév",
+    "label.format": "Formátum",
+    "label.format.lower": "formátum",
+    "label.friday": "Péntek",
+    "label.full": "Teljes",
+    "label.full.path": "Teljes elérési útvonal",
+    "label.gateway": "Átjáró",
+    "label.general.alerts": "Általános riasztások",
+    "label.generating.url": "URL generálása",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS konfiguráció",
+    "label.gluster.volume": "Kötet",
+    "label.go.step.2": "2. lépésre",
+    "label.go.step.3": "3. lépésre",
+    "label.go.step.4": "4. lépésre",
+    "label.go.step.5": "5. lépsre",
+    "label.gpu": "GPU",
+    "label.group": "Csoport",
+    "label.group.by.account": "Számlánként csoportosítva",
+    "label.group.by.cluster": "Fürtönként csoportosítva",
+    "label.group.by.pod": "Pod-onként csoportosítva",
+    "label.group.by.zone": "Zónánként csoportosítva",
+    "label.group.optional": "Csoport (opcionális)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Hozzárendelt terheléselosztás",
+    "label.gslb.assigned.lb.more": "Több terheléselosztás hozzárendelése",
+    "label.gslb.delete": "GSLB törlése",
+    "label.gslb.details": "GSLB részletek",
+    "label.gslb.domain.name": "GSLB domén név",
+    "label.gslb.lb.details": "Terheléselosztó részletek",
+    "label.gslb.lb.remove": "Terheléselosztás törlése ebből a GSLB-ből",
+    "label.gslb.lb.rule": "Terheléselosztó szabály",
+    "label.gslb.service": "GSLB szolgáltatás",
+    "label.gslb.service.private.ip": "GSLB szolgáltatás privát IP",
+    "label.gslb.service.public.ip": "GSLB szolgáltatás publikus IP",
+    "label.gslb.servicetype": "Szolgáltatás típus",
+    "label.guest": "Vendég",
+    "label.guest.cidr": "Vendég CIDR",
+    "label.guest.end.ip": "Utolsó vengég IP",
+    "label.guest.gateway": "Vendég átjáró",
+    "label.guest.ip": "Vendég IP cím",
+    "label.guest.ip.range": "Vendég IP tartomány",
+    "label.guest.netmask": "Vendég hálózati maszk",
+    "label.guest.network.details": "Vendég hálózat részletek",
+    "label.guest.networks": "Vendég hálózatok",
+    "label.guest.start.ip": "Kezdő vendég IP",
+    "label.guest.traffic": "Vendég forgalom",
+    "label.guest.traffic.vswitch.name": "Vendég forgalom vSwitch név",
+    "label.guest.traffic.vswitch.type": "Vendég forgalom vSwitch típus",
+    "label.guest.type": "Vendég típus",
+    "label.ha.enabled": "HA bekapcsolva",
+    "label.health.check": "Ellenőrzés",
+    "label.health.check.advanced.options": "Haladó beállítások:",
+    "label.health.check.configurations.options": "Beallítások:",
+    "label.health.check.interval.in.sec": "Ellenőrzés időköz (mp)",
+    "label.health.check.message.desc": "A terheléselosztód autómatikusan fog elenőrzéseket végrehajtani a cloudstack példányokon és a forgalmat a működő példányokhoz írányítja",
+    "label.health.check.wizard": "Health Check Wizard",
+    "label.healthy.threshold": "Egészséges küszöb",
+    "label.help": "Segítség",
+    "label.hide.ingress.rule": "Ingress szabály rejtése",
+    "label.hints": "Tippek",
+    "label.home": "Kezdőlap",
+    "label.host": "Kiszolgáló",
+    "label.host.MAC": "Kiszolgáló MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Kiszolgáló név",
+    "label.host.tag": "Kiszolgáló címke",
+    "label.host.tags": "Kiszolgáló címkék",
+    "label.hosts": "Kiszolgálók",
+    "label.hourly": "Óránként",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Traffic Label",
+    "label.hypervisor": "Hipervizor",
+    "label.hypervisor.capabilities": "Hipervizor képességek",
+    "label.hypervisor.snapshot.reserve": "Hipervizor Snapshot Reserve",
+    "label.hypervisor.type": "Hipervizor típus",
+    "label.hypervisor.version": "Hipervizor verzió",
+    "label.hypervisors": "Hipervizorok",
+    "label.id": "ID",
+    "label.info": "Infó",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Ingress szabály",
+    "label.initiated.by": "Kezdeményező",
+    "label.inside.port.profile": "Inside Port Profile",
+    "label.installWizard.addClusterIntro.subtitle": "Mi a fürt?",
+    "label.installWizard.addClusterIntro.title": "Csináljunk egy fürtöt!",
+    "label.installWizard.addHostIntro.subtitle": "Mi a kiszolgáló?",
+    "label.installWizard.addHostIntro.title": "Regisztráljunk egy kiszolgálót!",
+    "label.installWizard.addPodIntro.subtitle": "Mi a pod?",
+    "label.installWizard.addPodIntro.title": "Csináljunk egy pod-ot!",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Mi az elsődleges tár?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Hozzuk létre az elsődleges tárolót!",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Mi a másodlagos tár?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Hozzuk létre a másodlagos tárolót!",
+    "label.installWizard.addZone.title": "Zóna létrozása",
+    "label.installWizard.addZoneIntro.subtitle": "Mi a zóna?",
+    "label.installWizard.addZoneIntro.title": "Hozzunk létre egy zónát!",
+    "label.installWizard.click.launch": "Kattints az indítás gombra!",
+    "label.installWizard.subtitle": "Ez a párbeszédablak segít konfigurálni a CloudStack&#8482 rendszered",
+    "label.installWizard.title": "Üdvözöl a CloudStack&#8482",
+    "label.instance": "Példány",
+    "label.instance.limits": "Példány korlátok",
+    "label.instance.name": "Példány név",
+    "label.instance.port": "Példány port",
+    "label.instance.scaled.up": "Példány átméretezve a kért ajánlathoz",
+    "label.instances": "Példányok",
+    "label.instanciate.template.associate.profile.blade": "Instanciate Template and Associate Profile to Blade",
+    "label.intermediate.certificate": "Közbülső tanúsítvány {0}",
+    "label.internal.dns.1": "1. belső DNS",
+    "label.internal.dns.2": "2. belső DNS",
+    "label.internal.lb": "Belső LB",
+    "label.internal.lb.details": "Belső LB részletek",
+    "label.internal.name": "Belső név",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "Időköz típus",
+    "label.introduction.to.cloudstack": "Bemutatkozik a CloudStack&#8482",
+    "label.invalid.integer": "Érvénytelen egész szám",
+    "label.invalid.number": "Érvénytelen szám",
+    "label.invitations": "Meghívók",
+    "label.invite": "Meghivás",
+    "label.invite.to": "Meghívás:",
+    "label.invited.accounts": "Meghívottak",
+    "label.ip": "IP",
+    "label.ip.address": "IP cím",
+    "label.ip.allocations": "IP címfoglalások",
+    "label.ip.limits": "Publikus IP korlátok",
+    "label.ip.or.fqdn": "IP vagy FQDN",
+    "label.ip.range": "IP tartomány",
+    "label.ip.ranges": "IP tartományok",
+    "label.ipaddress": "IP cím",
+    "label.ips": "IP címek",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 1. DNS",
+    "label.ipv4.dns2": "IPv4 2. DNS",
+    "label.ipv4.end.ip": "IPv4 utolsó IP",
+    "label.ipv4.gateway": "IPv4 átjáró",
+    "label.ipv4.netmask": "IPv4 hálózati maszk",
+    "label.ipv4.start.ip": "IPv4 kezdő IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP cím",
+    "label.ipv6.dns1": "IPv6 1. DNS",
+    "label.ipv6.dns2": "IPv6 2. DNS",
+    "label.ipv6.end.ip": "IPv6 utolsó IP",
+    "label.ipv6.gateway": "IPv6 átjáró",
+    "label.ipv6.start.ip": "IPv6 kezdő IP",
+    "label.is.default": "Alapértelmezett",
+    "label.is.redundant.router": "Redundáns",
+    "label.is.shared": "Osztott",
+    "label.is.system": "Rendszer",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO Boot",
+    "label.isolated.networks": "Izolált hálózatok",
+    "label.isolation.method": "Izoláció módszer",
+    "label.isolation.mode": "Izoláció mód",
+    "label.isolation.uri": "Izoláció URI",
+    "label.item.listing": "Lista",
+    "label.japanese.keyboard": "Japán billentyűzet",
+    "label.keep": "Megtartás",
+    "label.keep.colon": "Megtart:",
+    "label.key": "Kulcs",
+    "label.keyboard.language": "Billentyűzet kiosztás",
+    "label.keyboard.type": "Billentyűzet típus",
+    "label.kvm.traffic.label": "KVM traffic label",
+    "label.label": "Címke",
+    "label.lang.arabic": "Arab",
+    "label.lang.brportugese": "Brazil-portugál",
+    "label.lang.catalan": "Katalán",
+    "label.lang.chinese": "Kínai (egyszerűsített)",
+    "label.lang.dutch": "Holland (Hollandia)",
+    "label.lang.english": "Angol",
+    "label.lang.french": "Francia",
+    "label.lang.german": "Német",
+    "label.lang.hungarian": "Magyar",
+    "label.lang.italian": "Olasz",
+    "label.lang.japanese": "Japán",
+    "label.lang.korean": "Kóreai",
+    "label.lang.norwegian": "Norvég",
+    "label.lang.polish": "Lengyel",
+    "label.lang.russian": "Orosz",
+    "label.lang.spanish": "Spanyol",
+    "label.last.disconnected": "Utoljára lecsatlakozott",
+    "label.last.name": "Családnév",
+    "label.lastname.lower": "családnév",
+    "label.latest.events": "Utolsó események",
+    "label.launch": "Indítás",
+    "label.launch.vm": "VM indítása",
+    "label.launch.zone": "Zóna indítása",
+    "label.lb.algorithm.leastconn": "Legkevesebb kapcsolat",
+    "label.lb.algorithm.roundrobin": "Körbe forgó",
+    "label.lb.algorithm.source": "Forrás",
+    "label.ldap.configuration": "LDAP konfiguráció",
+    "label.ldap.group.name": "LDAP csoport",
+    "label.ldap.link.type": "Típus",
+    "label.ldap.port": "LDAP port",
+    "label.level": "Szint",
+    "label.link.domain.to.ldap": "Link Domain to LDAP",
+    "label.linklocal.ip": "Link Local IP Address",
+    "label.load.balancer": "Terheléselosztó",
+    "label.load.balancer.type": "Terheléselosztó típus",
+    "label.load.balancing": "Terheléselosztás",
+    "label.load.balancing.policies": "Terheléselosztó szabályok",
+    "label.loading": "Betöltés",
+    "label.local": "Helyi",
+    "label.local.file": "Helyi file",
+    "label.local.storage": "Helyi tár",
+    "label.local.storage.enabled": "Helyi tár bekapcsolása felhasználói VM-ek részére",
+    "label.local.storage.enabled.system.vms": "Helyi tár bekapcsolása a rendszer VM számára",
+    "label.login": "Bejelentkezés",
+    "label.logout": "Kijelentkezés",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC Traffic Label",
+    "label.make.project.owner": "Számla projekt-tulajdonossá tétele",
+    "label.make.redundant": "Redundánssá tétel",
+    "label.manage": "Vezérlés",
+    "label.manage.resources": "Erőforrások vezérlése",
+    "label.managed": "Vezérelt",
+    "label.management": "Vezérlés",
+    "label.management.ips": "Vezérlő IP cím",
+    "label.management.server": "Vezérlő szerver",
+    "label.max.cpus": "CPU magok max.",
+    "label.max.guest.limit": "Max guest limit",
+    "label.max.instances": "Példányok maximális száma",
+    "label.max.memory": "Max. memória (MB)",
+    "label.max.networks": "Max. hálózatok",
+    "label.max.primary.storage": "Max. elsődleges (GiB)",
+    "label.max.public.ips": "Publikus IP címek max.",
+    "label.max.secondary.storage": "Max. másodlagos (GiB)",
+    "label.max.snapshots": "Pillanatfelvételek max.",
+    "label.max.templates": "Sablonok max.",
+    "label.max.vms": "Felhasználói VMek max.",
+    "label.max.volumes": "Kötetek max.",
+    "label.max.vpcs": "VPC-k max.",
+    "label.maximum": "Maximum",
+    "label.may.continue": "Most folytathatod",
+    "label.md5.checksum": "MD5 ellenörzőösszeg",
+    "label.memory": "Memória",
+    "label.memory.allocated": "Allokált memória",
+    "label.memory.limits": "Memória korlátok (MiB)",
+    "label.memory.mb": "Memória (MB)",
+    "label.memory.total": "Tejes memória",
+    "label.memory.used": "Használt memória",
+    "label.menu.accounts": "Számlák",
+    "label.menu.alerts": "Riasztások",
+    "label.menu.all.accounts": "Minden számla",
+    "label.menu.all.instances": "Minden példány",
+    "label.menu.community.isos": "Közösségi ISO-k",
+    "label.menu.community.templates": "Közösségi sablonok",
+    "label.menu.configuration": "Konfiguráció",
+    "label.menu.dashboard": "Műszertábla",
+    "label.menu.destroyed.instances": "Elpusztított példányok",
+    "label.menu.disk.offerings": "Merevlemez ajánlatok",
+    "label.menu.domains": "Domének",
+    "label.menu.events": "Események",
+    "label.menu.featured.isos": "Kiemelt ISO-k",
+    "label.menu.featured.templates": "Kiemelt sablonok",
+    "label.menu.global.settings": "Globális beállítások",
+    "label.menu.infrastructure": "Infrastruktúra",
+    "label.menu.instances": "Példányok",
+    "label.menu.ipaddresses": "IP cím",
+    "label.menu.isos": "ISO-k",
+    "label.menu.my.accounts": "Saját számlák",
+    "label.menu.my.instances": "Saját példányok",
+    "label.menu.my.isos": "Saját ISO-k",
+    "label.menu.my.templates": "Saját sablonok",
+    "label.menu.network": "Hálózatok",
+    "label.menu.network.offerings": "Hálózati ajánlatok",
+    "label.menu.physical.resources": "Fizikai erőforrások",
+    "label.menu.regions": "Régiók",
+    "label.menu.running.instances": "Futó példányok",
+    "label.menu.security.groups": "Biztonsági csoportok",
+    "label.menu.service.offerings": "Szolgáltatás ajánlatok",
+    "label.menu.snapshots": "Pillanatfelvételek",
+    "label.menu.sshkeypair": "SSH kulcspár",
+    "label.menu.stopped.instances": "Leállított példányok",
+    "label.menu.storage": "Tár",
+    "label.menu.system": "Rendszer",
+    "label.menu.system.service.offerings": "Rendszer ajánlatok",
+    "label.menu.system.vms": "Rendszer VM-ek",
+    "label.menu.templates": "Sablonok",
+    "label.menu.virtual.appliances": "Virtuális készülékek",
+    "label.menu.virtual.resources": "Virtuális erőforrások",
+    "label.menu.volumes": "Kötetek",
+    "label.menu.vpc.offerings": "VPC ajánlatok",
+    "label.metrics": "Metrics",
+    "label.metrics.allocated": "Lekötöve",
+    "label.metrics.clusters": "Fürt",
+    "label.metrics.cpu.allocated": "CPU foglalás",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Összes",
+    "label.metrics.cpu.usage": "CPU használat",
+    "label.metrics.cpu.used.avg": "Használt",
+    "label.metrics.disk": "Merevlemez",
+    "label.metrics.disk.allocated": "Lekötöve",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Olvasás",
+    "label.metrics.disk.size": "Méret",
+    "label.metrics.disk.storagetype": "Típus",
+    "label.metrics.disk.total": "Összes",
+    "label.metrics.disk.unallocated": "Lefoglalatlan",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "Használt",
+    "label.metrics.disk.write": "Írás",
+    "label.metrics.hosts": "Kiszolgálók",
+    "label.metrics.memory.allocated": "Memória foglalás",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Összes",
+    "label.metrics.memory.usage": "Memória használat",
+    "label.metrics.memory.used.avg": "Használt",
+    "label.metrics.name": "Név",
+    "label.metrics.network.read": "Olvasás",
+    "label.metrics.network.usage": "Hálózat használat",
+    "label.metrics.network.write": "Írás",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "Hatály",
+    "label.metrics.state": "Állapot",
+    "label.metrics.storagepool": "Storage Pool",
+    "label.metrics.vm.name": "VM név",
+    "label.migrate.instance.to": "Példány mozgatása:",
+    "label.migrate.instance.to.host": "Példány mozgatása másik kiszolgálóra",
+    "label.migrate.instance.to.ps": "Példány mozgatása másik elsődleges tárra",
+    "label.migrate.lb.vm": "Terheléselosztó VM mozgatása",
+    "label.migrate.router.to": "Router mozgatása:",
+    "label.migrate.systemvm.to": "Rendszer Vm mozgatása:",
+    "label.migrate.to.host": "Mozgatás kiszolgálóra",
+    "label.migrate.to.storage": "Mozgatás tárra",
+    "label.migrate.volume": "Kötet mozgatása",
+    "label.migrate.volume.to.primary.storage": "Kötet mozgatása másik elsődleges tárra",
+    "label.min.instances": "Példányok minimális száma",
+    "label.min.past.the.hr": "percben",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "Perc",
+    "label.minutes.past.hour": "percben az egész óra után",
+    "label.mode": "Mód",
+    "label.monday": "Hétfő",
+    "label.monthly": "Havi",
+    "label.more.templates": "További sablonok",
+    "label.move.down.row": "Egy sorral lejjebb",
+    "label.move.to.bottom": "Aljára",
+    "label.move.to.top": "Tetejére",
+    "label.move.up.row": "Egy sorral feljebb",
+    "label.my.account": "Saját számlám",
+    "label.my.network": "Saját hálózat",
+    "label.my.templates": "Saját sablonok",
+    "label.na": "Nem értelmezett",
+    "label.name": "Név",
+    "label.name.lower": "Név",
+    "label.name.optional": "Név (opcionális)",
+    "label.nat.port.range": "NAT port tartomány",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Hálózati maszk",
+    "label.netscaler.details": "NetScaler részletek",
+    "label.network": "Hálózatok",
+    "label.network.ACL": "Hálózati ACL",
+    "label.network.ACL.total": "Hálózati ACL összesen",
+    "label.network.ACLs": "Hálózati ACL-ek",
+    "label.network.addVM": "Hálózat felvétele a VM-hez",
+    "label.network.cidr": "Hálózat CIDR",
+    "label.network.desc": "Hálózat leírás",
+    "label.network.details": "Hálózat részletei",
+    "label.network.device": "Hálózati eszköz",
+    "label.network.device.type": "Hálózati eszköz típus",
+    "label.network.domain": "Network Domain",
+    "label.network.domain.text": "Network domain",
+    "label.network.id": "Hálózat ID",
+    "label.network.label.display.for.blank.value": "Alapértelmezett átjáró használata",
+    "label.network.limits": "Hálózat korlátok",
+    "label.network.name": "Hálózat név",
+    "label.network.offering": "Hálózat ajánlat",
+    "label.network.offering.details": "Hálózat ajánlat részletei",
+    "label.network.offering.display.text": "Hálózat ajánlat megjelenítendő szöveg",
+    "label.network.offering.id": "Hálózat ajánlat ID",
+    "label.network.offering.name": "Hálózat ajánlat neve",
+    "label.network.rate": "Hálózati ráta (Mb/mp)",
+    "label.network.rate.megabytes": "Hálózati ráta (MB/mp)",
+    "label.network.read": "Hálózat olvasás",
+    "label.network.service.providers": "Hálózat szolgáltatók",
+    "label.network.type": "Hálózat típus",
+    "label.network.write": "Hálózat írás",
+    "label.networking.and.security": "Hálózat és biztonság",
+    "label.networks": "Hálózatok",
+    "label.new": "Új",
+    "label.new.password": "Új jelszó",
+    "label.new.project": "Új projekt",
+    "label.new.ssh.key.pair": "Új SSH kulcspár",
+    "label.new.vm": "Új VM",
+    "label.next": "Következő",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS kiszolgáló",
+    "label.nfs.storage": "NFS tár",
+    "label.nic.adapter.type": "NIC adapter típus",
+    "label.nicira.controller.address": "Vezérlő cím",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP részletek",
+    "label.nicira.transportzoneuuid": "Transport Zone Uuid",
+    "label.nics": "NIC-ek",
+    "label.no": "Nem",
+    "label.no.actions": "Nincs elérhető művelet",
+    "label.no.alerts": "Nem voltak riasztások a közelmúltban",
+    "label.no.data": "Nincs megjelenítendő adat",
+    "label.no.errors": "Nem voltak hibák a közelmúltban",
+    "label.no.grouping": "(nincs csoportosítás)",
+    "label.no.isos": "Nincsenek elérhető ISO-k",
+    "label.no.items": "Nincsenek elérhető elemek",
+    "label.no.security.groups": "Nincs elérhető biztonsági csoport",
+    "label.no.thanks": "Nem, köszi!",
+    "label.none": "Nincs",
+    "label.not.found": "Nem található",
+    "label.notifications": "Értesítések",
+    "label.num.cpu.cores": "CPU magok száma",
+    "label.number.of.clusters": "Fürtök száma",
+    "label.number.of.cpu.sockets": "CPU-aljzatok száma",
+    "label.number.of.hosts": "Kiszolgálók száma",
+    "label.number.of.pods": "Pod-ok száma:",
+    "label.number.of.system.vms": "Rendszer VM-ek száma",
+    "label.number.of.virtual.routers": "Virtuális routerek száma",
+    "label.number.of.zones": "Zónák száma",
+    "label.numretries": "Újrapróbálkozások száma",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "hónap",
+    "label.offer.ha": "Offer HA",
+    "label.ok": "Rendben",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight vezérlő",
+    "label.opendaylight.controllerdetail": "OpenDaylight vezérlő részletek",
+    "label.opendaylight.controllers": "OpenDaylight vezérlők",
+    "label.operator": "Operátor",
+    "label.optional": "Opcionális",
+    "label.order": "Sorrend",
+    "label.os.preference": "OS preferencia",
+    "label.os.type": "OS típus",
+    "label.other": "Más",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Művelet",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Jelszó",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Felhasználónév",
+    "label.override.guest.traffic": "Vendég forgalom felülbírálása",
+    "label.override.public.traffic": "Publikus forgalom felülbírálása",
+    "label.ovm.traffic.label": "OVM traffic label",
+    "label.ovm3.cluster": "Natív fürtözés",
+    "label.ovm3.pool": "Native Pooling",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "Master Vip IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Birtokolt publikus IP címek",
+    "label.owner.account": "Tulajdonos számla",
+    "label.owner.domain": "Owner Domain",
+    "label.palo.alto.details": "Palo Alto részletek",
+    "label.parent.domain": "Szülő domén",
+    "label.passive": "Passzív",
+    "label.password": "Jelszó",
+    "label.password.enabled": "Jelszó bekapcsolva",
+    "label.password.lower": "jelszó",
+    "label.password.reset.confirm": "A jelszó újrabeállítva:",
+    "label.path": "Útvonal",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "Perzisztens",
+    "label.physical.network": "Fizikai hálózat",
+    "label.physical.network.ID": "Fizikai hálózat ID",
+    "label.physical.network.name": "A fizikai hálózat neve",
+    "label.ping.path": "Ping útvonal",
+    "label.planner.mode": "Tervező mód",
+    "label.please.complete.the.following.fields": "Kérlek töltsd ki ki a következő mezőket",
+    "label.please.specify.netscaler.info": "Please specify Netscaler info",
+    "label.please.wait": "Kérlek várj!",
+    "label.plugin.details": "Plugin részletek",
+    "label.plugins": "Plugin-ek",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod dedikálva",
+    "label.pod.name": "Pod név",
+    "label.pods": "Pod-ok",
+    "label.polling.interval.sec": "Lekérdezés időköze (mp)",
+    "label.port": "Port",
+    "label.port.forwarding": "Port továbbítás",
+    "label.port.forwarding.policies": "Port forwarding policies",
+    "label.port.range": "Port tartomány",
+    "label.portable.ip": "Mozgatható IP",
+    "label.portable.ip.range.details": "Hordozható IP tartomány részletek",
+    "label.portable.ip.ranges": "Hordozható IP tartományok",
+    "label.portable.ips": "Hordozható IP címek",
+    "label.powerstate": "Power State",
+    "label.prev": "Előző",
+    "label.previous": "Előző",
+    "label.primary.allocated": "Elsődleges tár elkülönítve",
+    "label.primary.network": "Elsődleges hálózat",
+    "label.primary.storage": "Elsődleges tár",
+    "label.primary.storage.count": "Primary Storage Pools",
+    "label.primary.storage.limits": "Elsődleges tár korlátok (GiB)",
+    "label.primary.used": "Használt elsődleges tár",
+    "label.private.Gateway": "Privát átjáró",
+    "label.private.interface": "Private Interface",
+    "label.private.ip": "Privát IP cím",
+    "label.private.ip.range": "Privát IP tartomány",
+    "label.private.ips": "Privát IP címek",
+    "label.private.key": "Privát kulcs",
+    "label.private.network": "Privát hálózat",
+    "label.private.port": "Privát port",
+    "label.private.zone": "Privát zóna",
+    "label.privatekey": "PKCS#8 privát kulcs",
+    "label.profile": "Profil",
+    "label.project": "Projekt",
+    "label.project.dashboard": "Projekt műszerfal",
+    "label.project.id": "Projekt ID",
+    "label.project.invite": "Meghívás a projektbe",
+    "label.project.name": "Projekt név",
+    "label.project.view": "Projekt nézet",
+    "label.projects": "Projektek",
+    "label.protocol": "Protokol",
+    "label.protocol.number": "Protokoll szám",
+    "label.provider": "Szolgáltató",
+    "label.providers": "Szolgáltatók",
+    "label.public": "Publikus",
+    "label.public.interface": "Public Interface",
+    "label.public.ip": "Publikus IP cím",
+    "label.public.ips": "Publikus IP címek",
+    "label.public.key": "Publikus kulcs",
+    "label.public.lb": "Publikus LB",
+    "label.public.load.balancer.provider": "Publikus terheléselosztó szolgáltató",
+    "label.public.network": "Publikus hálózat",
+    "label.public.port": "Publikus port",
+    "label.public.traffic": "Publikus forgalom",
+    "label.public.traffic.vswitch.name": "Publikus forgalom vSwitch név",
+    "label.public.traffic.vswitch.type": "Publikus forgalom vSwitch típus",
+    "label.public.zone": "Publikus zóna",
+    "label.purpose": "Rendeltetés",
+    "label.qos.type": "QoS típus",
+    "label.quickview": "Gyorsnézet",
+    "label.quiesce.vm": "VM felfüggesztése",
+    "label.quiet.time.sec": "Várakozás (mp)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "Dátum",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "Vég dátum",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "Minden számla",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Kezdő dátum",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "Állapot",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Összes",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx felhasználó",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "Újraindítás",
+    "label.recent.errors": "Legutóbbi hibák",
+    "label.recover.vm": "VM helyreállítása",
+    "label.redundant.router": "Redundáns router",
+    "label.redundant.router.capability": "Redundáns router képesség",
+    "label.redundant.state": "Redundáns állapot",
+    "label.redundant.vpc": "Redundáns VPC",
+    "label.refresh": "Frissités",
+    "label.refresh.blades": "Blade-k frissítése",
+    "label.region": "Régió",
+    "label.region.details": "Régió részletek",
+    "label.regionlevelvpc": "Régió szintű VPC",
+    "label.reinstall.vm": "VM újratelepítése",
+    "label.related": "Kapcsolódó",
+    "label.release.account": "Release from Account",
+    "label.release.account.lowercase": "Release from account",
+    "label.release.dedicated.cluster": "Dedikált fürt elengedése",
+    "label.release.dedicated.host": "Dedikált kiszolgáló elengedése",
+    "label.release.dedicated.pod": "Dedikált pod elengedése",
+    "label.release.dedicated.vlan.range": "Dedikált VLAN tartomány elengedése",
+    "label.release.dedicated.zone": "Dedikált zóna elengedése",
+    "label.remind.later": "Emlékeztess később!",
+    "label.remove.ACL": "ACL eltávolítása",
+    "label.remove.egress.rule": "Egress szabály törlése",
+    "label.remove.from.load.balancer": "Példány eltávolítása terheléselosztóból",
+    "label.remove.ingress.rule": "Ingress szabály törlése",
+    "label.remove.ip.range": "IP tartomány eltávolítása",
+    "label.remove.ldap": "LDAP eltávolítása",
+    "label.remove.network.offering": "Hálózati ajánlat eltávolítása",
+    "label.remove.pf": "Port továbbító szabály eltávolítása",
+    "label.remove.project.account": "Számla eltávolítása a projektből",
+    "label.remove.region": "Régió eltávolítása",
+    "label.remove.rule": "Szabály eltávolítása",
+    "label.remove.ssh.key.pair": "SSH kulcspár eltávolítása",
+    "label.remove.static.nat.rule": "Statikus NAT szabály eltávolítása",
+    "label.remove.static.route": "Remove static route",
+    "label.remove.this.physical.network": "A fizikai hálózat eltávolítása",
+    "label.remove.tier": "Réteg eltávolítása",
+    "label.remove.vm.from.lb": "VM eltávolítása terheléselosztó szabályból",
+    "label.remove.vm.load.balancer": "VM eltávolítása a terheléselosztóból",
+    "label.remove.vmware.datacenter": "VMware adatközpont eltávolítása",
+    "label.remove.vpc": "VPC eltávolítása",
+    "label.remove.vpc.offering": "VPC ajánlat törlése",
+    "label.removing": "Törlés",
+    "label.removing.user": "Felhasználó eltávolítása",
+    "label.reource.id": "Erőforrás ID",
+    "label.replace.acl": "ACL csere",
+    "label.replace.acl.list": "ACL lista cseréje",
+    "label.required": "Szükséges",
+    "label.requires.upgrade": "Frissítést igényel",
+    "label.reserved.ip.range": "Elkülönített IP címtartomány",
+    "label.reserved.system.gateway": "Reserved system gateway",
+    "label.reserved.system.ip": "Elkülönített rendszer IP",
+    "label.reserved.system.netmask": "Elkülönített rendszer hálózati maszk",
+    "label.reset.VPN.connection": "VPN kapcsolat újraindítása",
+    "label.reset.ssh.key.pair": "SSH kulcspár újrabeállítása",
+    "label.reset.ssh.key.pair.on.vm": "SSH kulcspár újrabeállítása a VM-en",
+    "label.resetVM": "VM újraindítása",
+    "label.resize.new.offering.id": "Új ajánlat",
+    "label.resize.new.size": "Új méret (GB)",
+    "label.resize.shrink.ok": "Csökkentés OK",
+    "label.resource": "Erőforrás",
+    "label.resource.limit.exceeded": "Erőforrás-korlát túllépés",
+    "label.resource.limits": "Erőforrás korlátok",
+    "label.resource.name": "Erőforrás név",
+    "label.resource.state": "Erőforrás állapot",
+    "label.resources": "Erőforrások",
+    "label.response.timeout.in.sec": "Válasz időtúllépés (mp)",
+    "label.restart.network": "Hálózat újraindítása",
+    "label.restart.required": "Újraindítás szükséges",
+    "label.restart.vpc": "VPC újraindítása",
+    "label.restore": "Helyreállítás",
+    "label.retry.interval": "Újraprobálkozás időköz",
+    "label.review": "Ellenőrzés",
+    "label.revoke.project.invite": "Meghívó visszavonása",
+    "label.role": "Szerep",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Főtanúsítvány",
+    "label.root.disk.controller": "Root disk controller",
+    "label.root.disk.offering": "Root Disk Offering",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "Router VM Scaled Up",
+    "label.routing": "Útvonalválasztás",
+    "label.routing.host": "Routing kiszolgáló",
+    "label.rule": "Rule",
+    "label.rule.number": "Szabály szám",
+    "label.rules": "Szabályok",
+    "label.running.vms": "Futó VM-ek",
+    "label.s3.access_key": "Hozzáférési kulcs",
+    "label.s3.bucket": "Kosár",
+    "label.s3.connection_timeout": "Kapcsolódási időtúllépés",
+    "label.s3.endpoint": "Végpont",
+    "label.s3.max_error_retry": "Újrapróbálkozás max.",
+    "label.s3.nfs.path": "S3 NFS útvonal",
+    "label.s3.nfs.server": "S3 NFS kiszolgáló",
+    "label.s3.secret_key": "Titkos kulcs",
+    "label.s3.socket_timeout": "Kapcsolat időtúllépés",
+    "label.s3.use_https": "HTTPS használata",
+    "label.saml.enable": "Authorize SAML SSO",
+    "label.saml.entity": "Identity Provider",
+    "label.saturday": "Szombat",
+    "label.save": "Mentés",
+    "label.save.and.continue": "Mentés és folytatás",
+    "label.save.changes": "Változások mentése",
+    "label.saving.processing": "Mentés...",
+    "label.scale.up.policy": "SCALE UP POLICY",
+    "label.scaledown.policy": "ScaleDown szabályzat",
+    "label.scaleup.policy": "ScaleUp szabályzat",
+    "label.scope": "Hatály",
+    "label.search": "Keresés",
+    "label.secondary.ips": "Másodlagos IP címek",
+    "label.secondary.isolated.vlan.id": "Másodlagos izolált VLAN ID",
+    "label.secondary.staging.store": "Secondary Staging Store",
+    "label.secondary.staging.store.details": "Secondary Staging Store details",
+    "label.secondary.storage": "Másodlagos tár",
+    "label.secondary.storage.count": "Secondary Storage Pools",
+    "label.secondary.storage.details": "Másodlagos tár részletek",
+    "label.secondary.storage.limits": "Secondary Storage limits (GiB)",
+    "label.secondary.storage.vm": "Secondary storage VM",
+    "label.secondary.used": "Használt másodlagos tár",
+    "label.secret.key": "Titkos kulcs",
+    "label.security.group": "Biztonsági csoport",
+    "label.security.group.name": "Biztonsági csoport név",
+    "label.security.groups": "Biztonsági csoportok",
+    "label.security.groups.enabled": "Biztonsági csoportok bekapcsolva",
+    "label.select": "Kiválasztás",
+    "label.select-view": "Nézet",
+    "label.select.a.template": "Válassz egy sablont!",
+    "label.select.a.zone": "Válassz egy zónát!",
+    "label.select.instance": "Válaszd ki a pédányt!",
+    "label.select.instance.to.attach.volume.to": "Válaszd ki a példányt, amelyikhez a kötetet csatlakoztatni szeretnéd!",
+    "label.select.iso.or.template": "Válassz ISO-t vagy sablont!",
+    "label.select.offering": "Válassz ajánlatot!",
+    "label.select.project": "Válassz projektet!",
+    "label.select.region": "Régió kiválasztása",
+    "label.select.template": "Sablon kiválasztása",
+    "label.select.tier": "Válassz réteget!",
+    "label.select.vm.for.static.nat": "Válassz VM-et a statikus NAT-hoz",
+    "label.sent": "Elküldött",
+    "label.server": "Szerver",
+    "label.service.capabilities": "Szolgáltatás képességek",
+    "label.service.offering": "Szolgáltatás ajánlat",
+    "label.service.offering.details": "Szolgáltatás ajánlat részletei",
+    "label.service.state": "Szolgáltatás állapot",
+    "label.services": "Szolgáltatások",
+    "label.session.expired": "A munkamenet lejárt",
+    "label.set.default.NIC": "Alapértelmezett NIC beállítása",
+    "label.set.up.zone.type": "Zóna-típus beállítása",
+    "label.settings": "Beállítások",
+    "label.setup": "Beállítások",
+    "label.setup.network": "Hálózat beállítása",
+    "label.setup.zone": "Zóna beállítása",
+    "label.shared": "Osztott",
+    "label.show.advanced.settings": "Haladó szintű beállítások",
+    "label.show.ingress.rule": "Ingress szabály megjelenítése",
+    "label.shutdown.provider": "Szolgáltató leállítása",
+    "label.simplified.chinese.keyboard": "Egyszerűsített kínai billentyűzet",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Méret",
+    "label.skip.guide": "Használtam már a CloudStack-et, kihagyom ezt az útmutatót",
+    "label.smb.domain": "SMB domén",
+    "label.smb.password": "SMB jelszó",
+    "label.smb.username": "SMB felhasználónév",
+    "label.snapshot": "Pillanatfelvétel",
+    "label.snapshot.limits": "Pillanatfelvétel korlátok",
+    "label.snapshot.name": "Pillanatfelvétel név",
+    "label.snapshot.s": "Pillanatfelvételek",
+    "label.snapshot.schedule": "Ismétlődő pillanatfelvétel beállítása",
+    "label.snapshots": "Pillanatfelvételek",
+    "label.sockets": "CPU aljzatok",
+    "label.source.ip.address": "Forrás IP cím",
+    "label.source.nat": "Forrás NAT",
+    "label.source.nat.supported": "SourceNAT Supported",
+    "label.source.port": "Forrás port",
+    "label.specify.IP.ranges": "Add meg az IP tartományokat!",
+    "label.specify.vlan": "VLAN megadása",
+    "label.specify.vxlan": "VXLAN megadása",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX részletek",
+    "label.ssh.key.pair": "SSH kulcspár",
+    "label.ssh.key.pair.details": "SSH kucspár részletei",
+    "label.ssh.key.pairs": "SSH kulcspárok",
+    "label.standard.us.keyboard": "Amerikai (USA) szabványos billentyűzet",
+    "label.start.IP": "Kezdő IP",
+    "label.start.lb.vm": "Terheléselosztó VM indítása",
+    "label.start.port": "Kezdő port",
+    "label.start.reserved.system.IP": "Kezdő elkülönített rendszer IP",
+    "label.start.vlan": "Első VLAN",
+    "label.start.vxlan": "Első VXLAN",
+    "label.state": "Állapot",
+    "label.static.nat": "Statikus NAT",
+    "label.static.nat.enabled": "Statikus NAT bekapcsolva",
+    "label.static.nat.to": "Statikus NAT célpont",
+    "label.static.nat.vm.details": "Static NAT VM Details",
+    "label.static.routes": "Statikus útvonalak",
+    "label.statistics": "Statisztika",
+    "label.status": "Állapot",
+    "label.step.1": "1. lépés",
+    "label.step.1.title": "1. lépés: <strong>Sablon kiválasztása</strong>",
+    "label.step.2": "2. lépés",
+    "label.step.2.title": "2. lépés: <strong>Szolgáltatás ajánlat</strong>",
+    "label.step.3": "3. lépés",
+    "label.step.3.title": "3. lépés: <strong id=\"step3_label\">Merevlemez ajánlat választása</strong>",
+    "label.step.4": "4. lépés",
+    "label.step.4.title": "4. lépés: <strong>Hálózat</strong>",
+    "label.step.5": "5. lépés",
+    "label.step.5.title": "5. lépés: <strong>Ellenőrzés</strong>",
+    "label.stickiness": "Stickiness",
+    "label.stickiness.method": "Stickiness method",
+    "label.sticky.cookie-name": "Cookie név",
+    "label.sticky.domain": "Domén",
+    "label.sticky.expire": "Lejárat",
+    "label.sticky.holdtime": "Hold time",
+    "label.sticky.indirect": "Indirekt",
+    "label.sticky.length": "Hossz",
+    "label.sticky.mode": "Mód",
+    "label.sticky.name": "Sticky Name",
+    "label.sticky.nocache": "Nincs gyorsítótár",
+    "label.sticky.postonly": "Post only",
+    "label.sticky.prefix": "Előtag",
+    "label.sticky.request-learn": "Request learn",
+    "label.sticky.tablesize": "Tábla méret",
+    "label.stop": "Álj",
+    "label.stop.lb.vm": "Terheléselosztó VM leállítása",
+    "label.stopped.vms": "Leállított VM-ek",
+    "label.storage": "Tár",
+    "label.storage.pool": "Storage Pool",
+    "label.storage.tags": "Tár címkék",
+    "label.storage.traffic": "Tár forgalom",
+    "label.storage.type": "Tár típus",
+    "label.subdomain.access": "Subdomain Access",
+    "label.submit": "Elküldés",
+    "label.submitted.by": "[Beküldő: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Sikerült",
+    "label.sunday": "Vasárnap",
+    "label.super.cidr.for.guest.networks": "Super CIDR for Guest Networks",
+    "label.supported.services": "Támogatott szolgáltatások",
+    "label.supported.source.NAT.type": "Támogatott forrás NAT típus",
+    "label.supportsstrechedl2subnet": "Supports Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "Projekt felfüggesztése",
+    "label.switch.type": "Switch típus",
+    "label.system.capacity": "Rendszer kapacítás",
+    "label.system.offering": "Rendszer ajánlat",
+    "label.system.offering.for.router": "Rendszer ajánlat router-re",
+    "label.system.service.offering": "Rendszer szolgáltatás ajánlat",
+    "label.system.service.offering.details": "Rendszer szolgáltatás ajánlat részletei",
+    "label.system.vm": "Rendszer VM",
+    "label.system.vm.details": "Rendszer VM részletek",
+    "label.system.vm.scaled.up": "Rendszer VM felméretezve",
+    "label.system.vm.type": "Rendszer VM típus",
+    "label.system.vms": "Rendszer VM-ek",
+    "label.system.wide.capacity": "Rendszer-szintű kapacítás",
+    "label.tag.key": "Címke kulcs",
+    "label.tag.value": "Címke érték",
+    "label.tagged": "Cimkézve",
+    "label.tags": "Cimkék",
+    "label.target.iqn": "Cél IQN",
+    "label.task.completed": "Feladat végrehajtva",
+    "label.template": "Sablon",
+    "label.template.limits": "Sablon korlátok",
+    "label.tftp.root.directory": "Tftp root directory",
+    "label.theme.default": "Alapértelmezett téma",
+    "label.theme.grey": "Egyedi - szürke",
+    "label.theme.lightblue": "Egyedi - világoskék",
+    "label.threshold": "Küszöbérték",
+    "label.thursday": "Csütörtök",
+    "label.tier": "Réteg",
+    "label.tier.details": "Réteg részletei",
+    "label.time": "Idő",
+    "label.time.colon": "Idő:",
+    "label.time.zone": "Időzóna",
+    "label.timeout": "Időtúllépés",
+    "label.timeout.in.second ": " Időtúllépés (mp)",
+    "label.timezone": "Időzóna",
+    "label.timezone.colon": "Időzóna",
+    "label.token": "Token",
+    "label.total.CPU": "Összes CPU",
+    "label.total.cpu": "Összes CPU",
+    "label.total.hosts": "Összes kiszolgáló",
+    "label.total.memory": "Memória összesen",
+    "label.total.of.ip": "IP címek összesen",
+    "label.total.of.vm": "Összes VM",
+    "label.total.storage": "Összes tár",
+    "label.total.virtual.routers": "Total of Virtual Routers",
+    "label.total.virtual.routers.upgrade": "Total of Virtual Routers that require upgrade",
+    "label.total.vms": "Összes VM",
+    "label.traffic.label": "Forgalom címke",
+    "label.traffic.type": "Forgalom típus",
+    "label.traffic.types": "Forgalom típusok",
+    "label.tuesday": "Kedd",
+    "label.type": "Típus",
+    "label.type.id": "Típus ID",
+    "label.type.lower": "típus",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK billentyűzet",
+    "label.unavailable": "Nem elérhető",
+    "label.unhealthy.threshold": "Nem egészséges küszöb",
+    "label.unlimited": "Korlátlan",
+    "label.untagged": "Cimkézetlen",
+    "label.update.project.resources": "Update project resources",
+    "label.update.ssl": " SSL tanústvány",
+    "label.update.ssl.cert": " SSL tanústvány",
+    "label.updating": "Updating",
+    "label.upgrade.required": "Frissitésre van szükség",
+    "label.upgrade.router.newer.template": "Upgrade Router to Use Newer Template",
+    "label.upload": "Feltöltés",
+    "label.upload.from.local": "Feltöltés",
+    "label.upload.template.from.local": "Sablon feltöltése",
+    "label.upload.volume": "Kötet feltöltése",
+    "label.upload.volume.from.local": "Kötet feltöltése",
+    "label.upload.volume.from.url": "Kötet feltöltése URL-ről",
+    "label.url": "URL",
+    "label.usage.interface": "Usage Interface",
+    "label.usage.sanity.result": "Usage Sanity Result",
+    "label.usage.server": "Usage Server",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "VM IP cím használata:",
+    "label.use.vm.ips": "VM IP címek használata",
+    "label.used": "Használt",
+    "label.user": "Felhasználó",
+    "label.user.data": "Felhasználói adat",
+    "label.user.details": "Felhasználó adatai",
+    "label.user.vm": "Felhasználói VM",
+    "label.username": "Felhasználónév",
+    "label.username.lower": "felhasználónév",
+    "label.users": "Felhasználók",
+    "label.vSwitch.type": "vSwitch típus",
+    "label.value": "Érték",
+    "label.vcdcname": "vCenter DC név",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter fürt",
+    "label.vcenter.datacenter": "vCenter adatközpont",
+    "label.vcenter.datastore": "vCenter tár",
+    "label.vcenter.host": "vCenter kiszolgálók",
+    "label.vcenter.password": "vCenter jelszó",
+    "label.vcenter.username": "vCenter felhasználónév",
+    "label.vcipaddress": "vCenter IP cím",
+    "label.version": "Verzió",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Max képméret",
+    "label.vgpu.max.vgpu.per.gpu": "vGPU-k GPU-nként",
+    "label.vgpu.remaining.capacity": "Megmaradó kapacítás",
+    "label.vgpu.type": "vGPU típus",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Nézet",
+    "label.view.all": "Összes megtekintése",
+    "label.view.console": "Konzol megtekintése",
+    "label.view.more": "Továbbiak megtekintése",
+    "label.view.secondary.ips": "Másodlagos IP címek megtekintése",
+    "label.viewing": "Megtekintés",
+    "label.virtual.appliance": "Virtuális készülék",
+    "label.virtual.appliance.details": "Virtuális készülék részletei",
+    "label.virtual.appliances": "Virtuális készülékek",
+    "label.virtual.machine": "Virtuális gép",
+    "label.virtual.machines": "Virtuális gépek",
+    "label.virtual.network": "Virtuális hálózat",
+    "label.virtual.networking": "Virtuális hálózat",
+    "label.virtual.router": "Virtuális router",
+    "label.virtual.routers": "Virtuális routerek",
+    "label.virtual.routers.group.account": "Virtuális routerek számlánként",
+    "label.virtual.routers.group.cluster": "Virtual Routers group by cluster",
+    "label.virtual.routers.group.pod": "Virtual Routers group by pod",
+    "label.virtual.routers.group.zone": "Virtuális routerek zónánként csoportosítva",
+    "label.vlan": "VLAN/VNI",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI tartomány",
+    "label.vlan.range.details": "VLAN tartomány részletei",
+    "label.vlan.ranges": "VLAN tartomány(ok)",
+    "label.vlan.vni.range": "VLAN/VNI tartomány",
+    "label.vlan.vni.ranges": "VLAN/VNI tartomány(ok)",
+    "label.vm.add": "Példány felvétele",
+    "label.vm.destroy": "Elpusztít",
+    "label.vm.display.name": "VM megjelenítendő név",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP cím",
+    "label.vm.name": "VM név",
+    "label.vm.password": "A VM jelszava",
+    "label.vm.reboot": "Újraindítás",
+    "label.vm.start": "Indítás",
+    "label.vm.state": "VM állapot",
+    "label.vm.stop": "Álj",
+    "label.vmfs": "VMFS",
+    "label.vms": "VM-ek",
+    "label.vmsnapshot": "VM pillanatfelvételek",
+    "label.vmsnapshot.current": "Jelnlegi",
+    "label.vmsnapshot.memory": "Pillanatfelvétel memória",
+    "label.vmsnapshot.parentname": "Szülő",
+    "label.vmsnapshot.type": "Típus",
+    "label.vmware.datacenter.id": "VMware adatközpont ID",
+    "label.vmware.datacenter.name": "VMware adatközpont név",
+    "label.vmware.datacenter.vcenter": "VMware datacenter vcenter",
+    "label.vmware.traffic.label": "VMware traffic label",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC eszközök",
+    "label.volatile": "Illékony",
+    "label.volgroup": "Kötet csoport",
+    "label.volume": "Kötet",
+    "label.volume.details": "Kötet részletek",
+    "label.volume.limits": "Köteg korlátok",
+    "label.volume.migrated": "Kötet átköltöztetve",
+    "label.volume.name": "Kötet név",
+    "label.volumes": "Kötetek",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Elosztott VPC Router",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "VPC ajánlat",
+    "label.vpc.offering.details": "VPC ajánlat részletei",
+    "label.vpc.router.details": "VPC Router Details",
+    "label.vpc.supportsregionlevelvpc": "Régió-szintű VPC-t támogat",
+    "label.vpc.virtual.router": "VPC virtuális router",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN ügyfélkapu",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "Vezérlő VLAN ID",
+    "label.vsmpktvlanid": "Csomag VLAN ID",
+    "label.vsmstoragevlanid": "Tár VLAN ID",
+    "label.vsphere.managed": "vSphere Managed",
+    "label.vswitch.name": "vSwitch név",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN tartomány",
+    "label.waiting": "Várakozás",
+    "label.warn": "Figyelmeztetés",
+    "label.warn.upper": "WARN",
+    "label.warning": "Figyelmeztetés",
+    "label.wednesday": "Szerda",
+    "label.weekly": "Heti",
+    "label.welcome": "Üdvözöllek!",
+    "label.welcome.cloud.console": "Üdvözöl a vezérlőkonzol!",
+    "label.what.is.cloudstack": "Mi a CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Original XS Version is 6.1+",
+    "label.xenserver.traffic.label": "XenServer traffic label",
+    "label.yes": "Igen",
+    "label.zone": "Zóna",
+    "label.zone.dedicated": "A zóna dedikálva",
+    "label.zone.details": "Zóna részletei",
+    "label.zone.id": "Zóna ID",
+    "label.zone.lower": "zóna",
+    "label.zone.name": "Zóna név",
+    "label.zone.step.1.title": "1. lépés: <strong>Hálózat kiválasztása</strong>",
+    "label.zone.step.2.title": "2. lépés: <strong>Zóna felvétele</strong>",
+    "label.zone.step.3.title": "3. lépés: <strong>Pod felvétele</strong>",
+    "label.zone.step.4.title": "4. lépés: <strong>IP címtartomány felvétele</strong>",
+    "label.zone.type": "Zóna típus",
+    "label.zone.wide": "Egész zónára kiterjedő",
+    "label.zoneWizard.trafficType.guest": "Vendég: forgalom végfelhasználói virtuális gépek között",
+    "label.zoneWizard.trafficType.management": "Vezérlés: forgalom a CloudStack felhő erőforrásai között, beleértve azokat a komponenseket, amelyek a vezérlő szerverrel kommunikálnak, mint a kiszolgálók és a rendszer VM-ek",
+    "label.zoneWizard.trafficType.public": "Publikus: forgalom az internet és a felhő virtuális gépei között",
+    "label.zoneWizard.trafficType.storage": "Tár: forgalom az elsődleges és másodlagos tár szerverek között, például VM sablonok és pillanatfelvételek",
+    "label.zones": "Zónák",
+    "managed.state": "Managed State",
+    "message.XSTools61plus.update.failed": "Failed to update Original XS Version is 6.1+ field. Error:",
+    "message.Zone.creation.complete": "A zóna létrehozása befejeződött",
+    "message.acquire.ip.nic": "Erősítsd meg, hogy új másodlagos IP címet kérsz ehhez a NIC-hez!<br/>Megjegyzés: manuálisan kell beállítanod a frissen beszerzett másodlagos IP címet a virtuális gépben.",
+    "message.acquire.new.ip": "Erősítsd meg, hogy új IP címet kérsz ennek a hálózatnak!",
+    "message.acquire.new.ip.vpc": "Erősítsd meg, hogy új IP címet kérsz ennek a VPC-nek!",
+    "message.acquire.public.ip": "Válassz ki egy zónát, amelyikből az új IP címet kérni akarod!",
+    "message.action.cancel.maintenance": "A kiszolgáló karbantartását sikeresen megszakítottad. Ez a folyamat több percet vehet igénybe.",
+    "message.action.cancel.maintenance.mode": "Erősítsd meg, hogy meg akarod szakítani ezt a karbantartást!",
+    "message.action.change.service.warning.for.instance": "A példányt le kell állítani, mielőtt a jelenlegi szolgáltatási ajánlatait megpróbálod megváltoztatni.",
+    "message.action.change.service.warning.for.router": "A routert le kell állítani mielött a jelenlegi szolgáltatási ajánlatait megpróbálod megváltoztatni.",
+    "message.action.delete.ISO": "Erősítsd meg, hogy törölni akarod ezt az ISO-t!",
+    "message.action.delete.ISO.for.all.zones": "Az ISO-t minden zóna használja. Erősítsd meg, hogy minden zónából törölni akarod!",
+    "message.action.delete.cluster": "Erősítsd meg, hogy törölni akarod a fürtöt!",
+    "message.action.delete.disk.offering": "Erősítsd meg, hogy törölni akarod a merevlemez ajánlatot!",
+    "message.action.delete.domain": "Erősítsd meg, hogy törölni akarod ezt a domént!",
+    "message.action.delete.external.firewall": "Erősítsd meg, hogy törölni akarod ezt a külső tűzfalat! Figyelmeztetés: Ha azt tervezed, hogy ugyanazt a külső tűzfalat regisztrálod újra, az eszközön törölnöd kell a használati adatokat.",
+    "message.action.delete.external.load.balancer": "Erősítsd meg, hogy törölni akarod ezt a külső terheléselosztót! Figyelmeztetés: Ha azt tervezed, hogy ugyanazt a külső terheléselosztót regisztrálod újra, az eszközön törölnöd kell a használati adatokat.",
+    "message.action.delete.ingress.rule": "Erősítsd meg, hogy törölni akarod ezt az ingress szabályt!",
+    "message.action.delete.network": "Erősítsd meg, hogy le akarod törölni ezt a hálózatot!",
+    "message.action.delete.nexusVswitch": "Erősítsd meg, hogy törölni akarod ezt a nexus 1000v-t!",
+    "message.action.delete.nic": "Erősítsd meg, hogy el akarod távolítani a NIC-t! A hozzá kapcsolt hálózat is törlődik a VM-ből.",
+    "message.action.delete.physical.network": "Erősítsd meg, hogy törölni akarod ezt a fizikai hálózatot!",
+    "message.action.delete.pod": "Erősítsd meg, hogy törölni akarod ezt a pod-ot!",
+    "message.action.delete.primary.storage": "Erősítsd meg, hogy törölni akarod ezt az elsődleges tárat!",
+    "message.action.delete.secondary.storage": "Erősítsd meg, hogy törölni akarod ezt a másodlagos tárat!",
+    "message.action.delete.security.group": "Kérlek erősítsd meg, hogy törölni akarod ezt a biztonsági csoportot!",
+    "message.action.delete.service.offering": "Erősítsd meg, hogy törölni akarod ezt a szolgáltatás ajánlatot!",
+    "message.action.delete.snapshot": "Erősítsd meg, hogy törölni akarod ezt a pillanatfelvételt!",
+    "message.action.delete.system.service.offering": "Erősítsd meg, hogy törölni akarod ezt a rendszer szolgáltatás ajánlatot!",
+    "message.action.delete.template": "Erősítsd meg, hogy törölni akarod ezt a sablont!",
+    "message.action.delete.template.for.all.zones": "Ezt a sablont minden zóna használja. Erősítsd meg, hogy minden zónából törölni szeretnéd!",
+    "message.action.delete.volume": "Erősítsd meg, hogy törölni akarod ezt a kötetet!",
+    "message.action.delete.zone": "Erősítsd meg, hogy törölni akarod ezt a zónát!",
+    "message.action.destroy.instance": "Erősítsd meg, hogy el akarod pusztítani ezt a példányt!",
+    "message.action.destroy.systemvm": "Erősítsd meg, hogy el akarod pusztítani ezt a rendszer VM-et!",
+    "message.action.disable.cluster": "Erősítsd meg, hogy ki akarod kapcsolni ezt a fürtöt!",
+    "message.action.disable.nexusVswitch": "Erősítsd meg, hogy ki akarod kapcsolni ezt a nexus 1000v-t!",
+    "message.action.disable.physical.network": "Erősítsd meg, hogy ki akarod kapcsolni ezt a fizikai hálózatot!",
+    "message.action.disable.pod": "Erősítsd meg, hogy ki akarod kapcsolni ezt a pod-ot!",
+    "message.action.disable.static.NAT": "Erősítsd meg, hogy ki akarod kapcsolni a statikus NAT-ot!",
+    "message.action.disable.zone": "Erősítsd meg, hogy ki akarod kapcsolni ezt a zónát!",
+    "message.action.download.iso": "Erősítsd meg, hogy le akarod tölteni ezt az ISO-t!",
+    "message.action.download.template": "Erősítsd meg, hogy le akarod tölteni ezt a sablont!",
+    "message.action.downloading.template": "Sablon letöltése",
+    "message.action.enable.cluster": "Erősítsd meg, hogy be akarod kapcsolni ezt a fürtöt!",
+    "message.action.enable.maintenance": "A kiszolgáló sikeresen felkészült a karbantartásra. Ez a művelet több percet is igénybe vehet attól függően, mennyi VM fut rajta jelenleg.",
+    "message.action.enable.nexusVswitch": "Erősítsd meg, hogy be akarod kapcsolni ezt a nexus 1000v-t!",
+    "message.action.enable.physical.network": "Erősítsd meg, hogy be akarod kapcsolni ezt a fizikai hálózatot.",
+    "message.action.enable.pod": "Erősítsd meg, hogy be akarod kapcsolni ezt a pod-ot!",
+    "message.action.enable.zone": "Erősítsd meg, hogy be akarod kapcsolni ezt a zónát!",
+    "message.action.expunge.instance": "Erősítsd meg, hogy törölni akarod ezt a példányt!",
+    "message.action.force.reconnect": "A kiszolgáló újrakapcsolódását sikerült kikényszeríteni. Ez a folyamat több percet veet igénybe.",
+    "message.action.host.enable.maintenance.mode": "A karbantartás elindítása az összes a kiszolgálón futó példány más kiszolgálóra költöztetését indítja el.",
+    "message.action.instance.reset.password": "Erősítsd meg, hogy meg akarod változtatni a virtuális gép ROOT jelszavát!",
+    "message.action.manage.cluster": "Erősítsd meg, hogy vezérelni akarod ezt a fürtöt!",
+    "message.action.primarystorage.enable.maintenance.mode": "Figyelmeztetés: az elsődleges tár karbantartási módba helyezése minden azt használó VM-et leállít. Akarod folytatni?",
+    "message.action.reboot.instance": "Erősítsd meg, hogy újra akarod indítani ezt a példányt!",
+    "message.action.reboot.router": "Minden a router által nyújtott szolgáltatás megszakad. Erősítsd meg, hogy újra akarod indítani a routert!",
+    "message.action.reboot.systemvm": "Erősítsd meg, hogy újra akarod indítani ezt a rendszer VM-et!",
+    "message.action.release.ip": "Erősítsd meg, hogy el akarod engedni ezt az IP címet!",
+    "message.action.remove.host": "Erősítsd meg, hogy törölni akarod ezt a kiszolgálót!",
+    "message.action.reset.password.off": "A példány nem támogatja ezt a lehetőséget.",
+    "message.action.reset.password.warning": "A példányt le kell állítanod, mielött megpróbálnád lecserélni a jelszavát.",
+    "message.action.restore.instance": "Erősítsd meg, hogy helyre akarod állítani ezt a példányt!",
+    "message.action.revert.snapshot": "Erősítsd meg, hogy vissza akarod állítani a kötetet erre a pillanatfelvétlere!",
+    "message.action.start.instance": "Erősítsd meg, hogy el akarod indítani ezt a példányt!",
+    "message.action.start.router": "Erősítsd meg, hogy el akarod indítani ezt a routert!",
+    "message.action.start.systemvm": "Erősítsd meg, hogy el akarod indítani ezt a rendszer VM-et!",
+    "message.action.stop.instance": "Erősítsd meg, hogy le akarod állítani ezt a példányt!",
+    "message.action.stop.router": "Minden ezzel a routerrel kapcsolatos szolgáltatás megszakad. Erősítsd meg, hogy le akarod állítani ezt a routert!",
+    "message.action.stop.systemvm": "Erősítsd meg, hogy le akarod állítani ezt a rendszer VM-et!",
+    "message.action.take.snapshot": "Erősítsd meg, hogy pillanatfelvételt kérsz erről a kötetről!",
+    "message.action.unmanage.cluster": "Erősítsd meg, hogy megszakítod a fürt vezérlését!",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Erősítsd meg, hogy törölni akarod ezt a VM pillanatfelvételt!",
+    "message.action.vmsnapshot.revert": "Revert VM snapshot",
+    "message.activate.project": "Biztosan aktiválni szeretnéd ezt a projektet?",
+    "message.add.VPN.gateway": "Erősítsd meg, hogy új VPN átjárót akarsz felvenni!",
+    "message.add.cluster": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Add meg a következő paramétereket az új merevlemez ajánlat felvételéhez",
+    "message.add.domain": "Please specify the subdomain you want to create under this domain",
+    "message.add.firewall": "Tűzfal felvétele a zónába",
+    "message.add.guest.network": "Erősítsd meg, hogy vendég hálózatot szeretnél felvenni!",
+    "message.add.host": "Add meg a következő adatokat az új kiszolgáló felvételéhez",
+    "message.add.ip.range": "IP tartomány felvétele a zóna publikus hálózatához",
+    "message.add.ip.range.direct.network": "Add an IP range to direct network <b><span id=\"directnetwork_name\"></span></b> in zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>IP tartomány felvétele a <b><span id=\"pod_name_label\"></span></b> pod-hoz</p>",
+    "message.add.load.balancer": "Terheléselosztó felvétele a zónába",
+    "message.add.load.balancer.under.ip": "The load balancer rule has been added under IP:",
+    "message.add.network": "Hálózat felvétele a <b><span id=\"zone_name\"></span></b> zónában",
+    "message.add.new.gateway.to.vpc": "Please specify the information to add a new gateway to this VPC.",
+    "message.add.pod": "Új pod felvétele a <b><span id=\"add_pod_zone_name\"></span></b> zónában",
+    "message.add.pod.during.zone.creation": "Minden zónának egy vagy több pod-ot kell tartalmaznia. Vegyük fel az első pod-ot! A pod tartalmaz kiszolgálókat és elsődleges tár szervereket, amelyeket a következő lépésekben veszünk majd fel. Először állíts be egy elkülönített IP címtartományt a CloudStack belső forgalmának. A címtartománynak egyedinek kell lennie a felhőben.",
+    "message.add.primary": "Please specify the following parameters to add a new primary storage",
+    "message.add.primary.storage": "Új elsődleges tár felvétele a <b><span id=\"zone_name\"></span></b> zónában a <b><span id=\"pod_name\"></span> pod-hoz</b>",
+    "message.add.region": "Add meg az információkat az új régió felvételéhez!",
+    "message.add.secondary.storage": "Új tár felvétele a <b><span id=\"zone_name\"></span> zónához</b>",
+    "message.add.service.offering": "Töltsd ki a következő adatokat új számítási ajánlat felvételéhez",
+    "message.add.system.service.offering": "Töltsd ki a következő adatokat új rendszer szolgáltatás ajánlat felvételéhez",
+    "message.add.template": "Add meg a következő adatokat új sablon létrehozásához",
+    "message.add.volume": "Töltsd ki a következő adatokat új kötet létrehozásához",
+    "message.added.new.nuage.vsp.controller": "Új Nicira Vsp vezérlő felvéve",
+    "message.added.vpc.offering": "VPC ajánlat felvéve",
+    "message.adding.Netscaler.device": "Netscaler eszköz felvétele",
+    "message.adding.Netscaler.provider": "Netscaler szolgáltató felvétele",
+    "message.adding.host": "Kiszolgáló felvétele",
+    "message.additional.networks.desc": "Válaszd ki a további hálózatokat, amelyhez a példány csatlakozni fog!",
+    "message.admin.guide.read": "VMware-alapú VM-ek esetében kérlek olvasd el a dinakikus skálázásról szóló fejezetet! Szeretnéd folytatni?,",
+    "message.advanced.mode.desc": "Akkor válaszd ezt a hálózat modellt, ha szeretnéd használni a VLAN támogatást. Ez a hálózat modell biztosítja a legnagyobb rugalmasságot és lehetővé teszi, hogy a rendszergazdák olyan ajánlatokat biztosítsanak, mint a tűzfalak, VPN vagy terheléselosztók valamint a direkt és virtuális hálózatok.",
+    "message.advanced.security.group": "Válaszd ezt, ha biztonsági csoportokat akarsz használni a vendég VM izolációhoz!",
+    "message.advanced.virtual": "Válaszd ezt, ha zóna-szintű VLAN-okat szeretnél használni a vendég VM-ek izolációjára!",
+    "message.after.enable.s3": "Az S3-alapú másodlagos tár konfigurációja kész. Megjegyzés: miután elhagytad ezt az oldalt, nem tudod majd az S3-at ismét konfigurálni.",
+    "message.after.enable.swift": "A Swift konfigurációja kész. Megjegyzés: miután elhagytad ezt az oldalt, nem tudod majd újrakonfigurálni a Swift-et!",
+    "message.alert.state.detected": "Alert state detected",
+    "message.allow.vpn.access": "Add meg a VPN felhasználó nevét és jelszavát",
+    "message.apply.snapshot.policy": "Sikeresen módosítottad a jelenlegi pillanatfelvétel szabályzatodat!",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Erősítsd meg, hogy az ISO-t ehhez a virtuális géphez akarod csatolni!",
+    "message.attach.volume": "Töltsd ki a következő adatokat a kötet csatlakoztatásához! Ha Windows-alapú virtuális géphez csatlakoztatsz merevlemezt, akkor újra kell indítanod a példányt ahhoz, hogy lásd a merevlemezt.",
+    "message.basic.mode.desc": "Akkor válaszd ezt a hálózati modellt, ha <b>*<u>nem</u>*</b> akarsz VLAN támogatást bekapcsolni.  Ezen a hálózaton minden példány közvetlenül a hálózattól kap IP címet és a biztonsági csoportok szolgáltatnak biztonságot és szegregációt.",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "Please confirm that you wish to change the service offering of this virtual instance.",
+    "message.change.password": "Változtass jelszót!",
+    "message.cluster.dedicated": "Fürt dedikálva",
+    "message.cluster.dedication.released": "Fürt dedikálás elengedve",
+    "message.configure.all.traffic.types": "Több fizikai hálózatod van. Kattints a 'Szerkesztés' gombra és állíts be címkéket minden egyes forgalom típushoz!",
+    "message.configure.firewall.rules.allow.traffic": "Határozz meg szabályokat forgalom engedélyezéséhez",
+    "message.configure.firewall.rules.block.traffic": "Határozz meg szabályokat forgalom szűréséhez",
+    "message.configure.ldap": "Erősítsd meg, hogy szeretnél LDAP-t konfigurálni!",
+    "message.configuring.guest.traffic": "Vendég forgalom konfigurálása",
+    "message.configuring.physical.networks": "Fizikai hálózatok konfigurálása",
+    "message.configuring.public.traffic": "Publikus forgalom konfigurálása",
+    "message.configuring.storage.traffic": "Tár forgalom konfigurálása",
+    "message.confirm.action.force.reconnect": "Erősítsd meg, hogy újrakapcsolódni akarsz a kiszolgálóhoz!",
+    "message.confirm.add.vnmc.provider": "Erősítsd meg, hogy fel szeretnéd venni a VNMC szolgáltatót.",
+    "message.confirm.archive.alert": "Erősítsd meg, hogy archiválni akarod ezt a riasztást!",
+    "message.confirm.archive.event": "Erősítsd meg, hogy archiválni szeretnéd az eseményt!",
+    "message.confirm.archive.selected.alerts": "Erősítsd meg, hogy le akarod archiválni a kiválasztott riasztásokat!",
+    "message.confirm.archive.selected.events": "Erősítsd meg, hogy archiválni szeretnéd a kiválasztott eseményeket!",
+    "message.confirm.attach.disk": "Biztosan csatolni szeretnéd a merevlemezt?",
+    "message.confirm.create.volume": "Biztosan szeretnél kötetet létrehozni?",
+    "message.confirm.current.guest.CIDR.unchanged": "Változatlanul akarod hagyni a vendég hálózat CIDR-jét?",
+    "message.confirm.dedicate.cluster.domain.account": "Tényleg dedikálni akarod  ezt a fürtöt egy doménnek/számlának?",
+    "message.confirm.dedicate.host.domain.account": "Tényleg dedikálni akarod ezt a kiszolgálót egy doménnek vagy számlának?",
+    "message.confirm.dedicate.pod.domain.account": "Tényleg dedikálni szeretnéd ezt a pod-ot egy doménnek/számlának?",
+    "message.confirm.dedicate.zone": "Biztosan dedikálni akarod ezt a zónát egy doménhoz/számlához?",
+    "message.confirm.delete.BigSwitchBcf": "Erősítsd meg, hogy törölni szeretnéd ezt a BigSwitch BCF vezérlőt!",
+    "message.confirm.delete.BrocadeVcs": "Erősítsd meg, hogy törölni szeretnéd a Brocade Vcs Switch-et",
+    "message.confirm.delete.F5": "Erősítsd meg, hogy törölni szeretnéd az F5-öt",
+    "message.confirm.delete.NetScaler": "Erősítsd meg, hogy törölni szeretnéd a NetScaler-t",
+    "message.confirm.delete.NuageVsp": "Erősítsd meg, hogy törölni szeretnéd a Muage Virtualized Services Directory-t",
+    "message.confirm.delete.PA": "Erősítsd meg, hogy törölni szeretnéd a Palo Alto-t",
+    "message.confirm.delete.SRX": "Erősítsd meg, hogy törölni szeretnéd a SRX-et",
+    "message.confirm.delete.acl.list": "Biztosan törölni akarod ezt a ACL listát?",
+    "message.confirm.delete.alert": "Biztosan törölni akarod ezt a riasztást?",
+    "message.confirm.delete.baremetal.rack.configuration": "Erősítsd meg, hogy törölni akarod a Baremetal rack konfigurációt!",
+    "message.confirm.delete.ciscoASA1000v": "Erősítsd meg, hogy törölni akarod a CiscoASA1000v-t",
+    "message.confirm.delete.ciscovnmc.resource": "Erősítsd meg, hogy törölni akarod a CiscoVNMC erőforrást!",
+    "message.confirm.delete.internal.lb": "Erősítsd meg, hogy törölni akarod ezt a belső LB-t!",
+    "message.confirm.delete.secondary.staging.store": "Erősítsd meg, hogy törölni akarod a másodlagos tárat!",
+    "message.confirm.delete.ucs.manager": "Please confirm that you want to delete UCS Manager",
+    "message.confirm.destroy.router": "Erősítsd meg, hogy el akarod pusztítani ezt a routert",
+    "message.confirm.disable.host": "Erősítsd meg, hogy ki akarod kapcsolni a kiszolgálót",
+    "message.confirm.disable.network.offering": "Biztos vagy abban, hogy ki akarod kapcsolni ezt a hálózat ajánlatot?",
+    "message.confirm.disable.provider": "Erősítsd meg, hogy ki akarod kapcsolni ezt a szolgáltatót",
+    "message.confirm.disable.vnmc.provider": "Erősítsd meg, hogy ki szeretnéd kapcsolni a VNMC szolgáltatót!",
+    "message.confirm.disable.vpc.offering": "Biztos vagy abban, hogy ki akarod kapcsolni ezt a VPC ajánlatot?",
+    "message.confirm.enable.host": "Erősítsd meg, hogy be akarod kapcsolni a kiszolgálót",
+    "message.confirm.enable.network.offering": "Biztos vagy abban, hogy be akarod kapcsolni ezt a hálózati ajánlatot?",
+    "message.confirm.enable.provider": "Erősítsd meg, hogy be szeretnéd kapcsolni ezt a szolgáltatót",
+    "message.confirm.enable.vnmc.provider": "Erősítsd meg, hogy be szeretnéd kapcsolni a VNMC szolgáltatót!",
+    "message.confirm.enable.vpc.offering": "Biztos vagy abban, hogy be akarod kapcsolni ezt a VPC ajánlatot?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Erősítsd meg, hogy csatlakozni szeretnél a projekthez",
+    "message.confirm.migrate.volume": "El akarod költöztetni ezt a kötetet?",
+    "message.confirm.refresh.blades": "Please confirm that you want to refresh blades.",
+    "message.confirm.release.dedicate.vlan.range": "Erősítsd meg, hogy elengeded a dedikált VLAN tartományt!",
+    "message.confirm.release.dedicated.cluster": "El akarod engedni ezt a dedikált fürtöt?",
+    "message.confirm.release.dedicated.host": "El akarod engedni ezt a dedikált kiszolgálót?",
+    "message.confirm.release.dedicated.pod": "El akarod engedni ezt a dedikált pod-ot?",
+    "message.confirm.release.dedicated.zone": "El akarod engedni ezt a dedikált zónát?",
+    "message.confirm.remove.IP.range": "Erősítsd meg, hogy el akarod távolítani ezt az IP tartományt",
+    "message.confirm.remove.event": "Biztosan törölni szeretnéd ezt az eseményt?",
+    "message.confirm.remove.load.balancer": "Erősítsd meg, hogy el akarod távolítani a VM-et a terheléselosztóról!",
+    "message.confirm.remove.network.offering": "Biztos vagy abban, hogy törölni akarod ezt a hálózati ajánlatot?",
+    "message.confirm.remove.selected.alerts": "Erősítsd meg, hogy el akarod távolítani a kiválasztott riasztásokat!",
+    "message.confirm.remove.selected.events": "Erősítsd meg, hogy törölni szeretnéd a kiválasztott eseményeket",
+    "message.confirm.remove.vmware.datacenter": "Erősítsd meg, hogy el akarod távolítani a VMware adatközpontot!",
+    "message.confirm.remove.vpc.offering": "Biztos vagy abban, hogy törölni akarod ezt a VPC ajánlatot?",
+    "message.confirm.replace.acl.new.one": "Le akarod cserélni ez ACL listát egy újjal?",
+    "message.confirm.scale.up.router.vm": "Biztosan fel akarod méretezni a router VM-et?",
+    "message.confirm.scale.up.system.vm": "Biztosan fel akarod méretezni a rendszer VM-et?",
+    "message.confirm.shutdown.provider": "Erősítsd meg, hogy le akarod állítani ezt a szolgáltatót",
+    "message.confirm.start.lb.vm": "Erősítsd meg, hogy el akarod indítani az LB VM-et!",
+    "message.confirm.stop.lb.vm": "Erősítsd meg, hogy le akarod állítani az LB VM-et!",
+    "message.confirm.upgrade.router.newer.template": "Erősítsd meg, hogy a routert új sablonnal akarod frissíteni!",
+    "message.confirm.upgrade.routers.account.newtemplate": "Erősítsd meg, hogy minden a számla minden routerét frissíteni akarod az új sablonnal!",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Erősítsd meg, hogy minden a fürt minden routerét frissíteni akarod az új sablonnal!",
+    "message.confirm.upgrade.routers.newtemplate": "Erősítsd meg, hogy a zóna minden routerét frissíteni akarod új sablonnal!",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Erősítsd meg, hogy a pod minden routerét frissíteni akarod új sablonnal!",
+    "message.copy.iso.confirm": "Erősítsd meg, hogy az ISO-t másolni akarod:",
+    "message.copy.template": "A <b id=\"copy_template_name_text\">XXX</b> sablon másolása a <b id=\"copy_template_source_zone_text\"></b> zónából a",
+    "message.copy.template.confirm": "Biztos vagy benne, hogy le akarod másolni a sablont?",
+    "message.create.template": "Biztosan szeretnél sablont létrehozni?",
+    "message.create.template.vm": "VM lérehozása <b id=\"p_name\"></b> sablonból",
+    "message.create.template.volume": "Please specify the following information before creating a template of your disk volume: <b><span id=\"volume_name\"></span></b>. Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.creating.cluster": "Fürt létrehozása",
+    "message.creating.guest.network": "Vendég hálózat létrehozása",
+    "message.creating.physical.networks": "Fizikai hálózat létrehozása",
+    "message.creating.pod": "Pod létrehozása",
+    "message.creating.primary.storage": "Elsődleges tár létrehozása",
+    "message.creating.secondary.storage": "Másodlagos tár létrehozása",
+    "message.creating.systemVM": "A rendszer VM-ek létrehozása folyamatban (ez eltarthat egy darabig)",
+    "message.creating.zone": "Zóna létrehozása",
+    "message.decline.invitation": "Biztosan el akarod utasítani ezt a projekt meghívást?",
+    "message.dedicate.zone": "Zóna dedikálása",
+    "message.dedicated.zone.released": "Zóna elengedve",
+    "message.delete.VPN.connection": "Erősítsd meg, hogy törölni akarod a VPN kapcsolatot",
+    "message.delete.VPN.customer.gateway": "Erősítsd meg, hogy törölni akarod ezt a VPN ügyfélkaput!",
+    "message.delete.VPN.gateway": "Erősítsd meg, hogy törölni akarod ezt a VPN átjárót!",
+    "message.delete.account": "Erősítsd meg, hogy törölni szeretnéd ezt a számlát!",
+    "message.delete.affinity.group": "Erősítsd meg, hogy törölni szeretnéd ezt az affinítás csoportot",
+    "message.delete.gateway": "Erősítsd meg, hogy törölni akarod ezt az átjárót",
+    "message.delete.project": "Biztosan törölni akarod ezt a projektet?",
+    "message.delete.user": "Erősítsd meg, hogy törölni szeretnéd ezt a felhasználót!",
+    "message.desc.add.new.lb.sticky.rule": "Add new LB sticky rule",
+    "message.desc.advanced.zone": "Összetettebb hálózati topológiákhoz. Ez a hálózat modell biztosítja a legnagyobb rugalmasságot a vendég hálózatok felépítésében és olyan hálózati ajánlatokat tesz lehetővé, mint a tűzfalak, VPN vagy terheléselosztók.",
+    "message.desc.basic.zone": "Adj meg egy hálózatot, amelyen minden egyes VM példány közvetlenül a hálózattól kap IP címet. A vendég rendszerek izolációját 3. réteg-béli megoldásokkal, mint például biztonsági csoportokkal (IP cím filterezés) oldható meg.",
+    "message.desc.cluster": "Minden pod-nak tartalmaznia kell egy vagy több fürtöt és most létrehozzuk az első fürtöt. A fürt csoportosítja a kiszolgálókat. Egy fürtben található kiszolgálók ugyanolyan hardverrel rendelkeznek, ugyanolyan hipervizort futtatnak és ugyanahhoz az elsődleges tárolóhoz férnek hozzá. Minden fürt egy vagy több kiszolgálót és elsődleges tár szervert tartalmaz.",
+    "message.desc.create.ssh.key.pair": "Add meg a következő adatokat az ssh kulcs bejegyzéséhez!<br><br> (1) Ha publikus kulcsot adsz meg, a CloudStack eltárolja és a privát kulcsoddal használhatod. <br><br> (2) Ha nem adsz meg publikus kulcsot, a CloudStack készít neked egyet. Másold le és mentsd el a privát kulcsot, a CloudStack nem tartja meg.<br>",
+    "message.desc.created.ssh.key.pair": "Az SSH kulcspár létrejött.",
+    "message.desc.host": "Minden fürtnek legalább egy kiszolgálót kell tartalmaznia, amelyen a VM-ek futhatnak. Most vegyük fel az első kiszolgálót! Hogy a kiszolgáló működhessen, hipervizor szoftvert kell rá telepíteni, IP címet rendelni hozzá és biztosítani a kapcsolatot a CloudStack vezérlő szerverrel. <br/><br/> Add meg a kiszolgáló DNS vagy IP címét, a felhasználó nevét (általában root) és jelszavát, valamint a kiszolgáló kategorizálására szolgáló címkéket.",
+    "message.desc.primary.storage": "Minden fürt tartalmaz egy vagy több elsődleges tár szervert  és most létrehozzuk az elsőt. Az elsődleges tár tartalmazza a fürt kiszolgálóin futó összes VM virtuális merevlemezeit.",
+    "message.desc.reset.ssh.key.pair": "Adj meg egy ssh kulcspárt, amelyet fel szeretnél venni ehhez a VM-hez! A root jelszó megváltozik, ha a jelszó engedélyezett.",
+    "message.desc.secondary.storage": "Minden zónának rendelkeznie kell legalább egy NFS vagy másodlagos tár szervert és most létrehozzuk az elsőt. A másodlagos tár tárolja a VM sablonok, ISO fájlok és pillanatfelvételek adatait. Ennek a szervernek minden kiszolgáló számára hozzáférhetőnek kell lennie.<br/><br/> Add meg az IP címet és az útvonalat!",
+    "message.desc.zone": "A zóna a CloudStack legnagyobb egysége és általában egy adatközpontnak felel meg. A zónák fizikai izolációt adnak. Egy zóna egy vagy több pod-ból áll (amelyek kiszolgálókat és elsődleges tárolókat tartalmaznak) és egy másodlagos tárból, amelyet az összes pod használ.",
+    "message.detach.disk": "Biztosan la akarod választani a merevlemezt?",
+    "message.detach.iso.confirm": "Erősítsd meg, hogy le akarod választani az ISO-t a virtuális gépről!",
+    "message.disable.account": "Erősítsd meg, hogy ki szeretnéd kapcsolni ezt a számlát. A számla kikapcsolásával a számla felhasználóinak hozzáférése az erőforrásokhoz megszünik. Minden futó virtuális gép azonnal le lesz állítva.",
+    "message.disable.snapshot.policy": "Sikeresen kikapcsoltad a jelenlegi pillanatfelvétel szabályt.",
+    "message.disable.user": "Erősítsd meg, hogy ki akarod kapcsolni a felhasználót!",
+    "message.disable.vpn": "Biztosan ki akarod kapcsolni a VPN-t?",
+    "message.disable.vpn.access": "Erősítsd meg, hogy ki akarod kapcsolni a távoli VPN hozzáférést!",
+    "message.disabling.network.offering": "Hálózat ajánlat kikapcsolása",
+    "message.disabling.vpc.offering": "VPC ajánlat kikapcsolása",
+    "message.disallowed.characters": "Nem engedélyezett karakterek: <,>",
+    "message.download.ISO": "Az ISO letöltéséhez kattints <a href=\"#\">00000</a>",
+    "message.download.template": "A sablon letöltéséhez kattints <a href=\"#\">00000</a>",
+    "message.download.volume": "A kötet letöltéséhez kattints href=\"#\">00000</a>",
+    "message.download.volume.confirm": "Erősítsd meg, hogy le akarod tölteni ezt a kötetet!",
+    "message.edit.account": "Szerkesztés (\"-1\" jelzi az erőforrás használatának korlátlanságát)",
+    "message.edit.confirm": "Kérlek erősítsd meg a változtatásokat mielött elmented!",
+    "message.edit.limits": "Határozz meg korlátokat a következő erőforrásokhoz! A \"-1\" jelzi a korlátlanan felhasználást.",
+    "message.edit.traffic.type": "Please specify the traffic label you want associated with this traffic type.",
+    "message.enable.account": "Erősítsd meg, hogy be akarod kapcsolni ezt a számlát!",
+    "message.enable.user": "Erősítsd meg, hogy be akarod kapcsolni ezt a felhasználót!",
+    "message.enable.vpn": "Erősítsd meg, hogy be szeretnéd kapcsolni a távoli hozzáférésű VPN-t ehhez az IP címhez!",
+    "message.enable.vpn.access": "A VPN jelenleg ki van kapcsolva erre az IP címre. Szeretnéd bekapcsolni a VPN hozzáférést?",
+    "message.enabled.vpn": "A távoli hozzáférésű VPN jelenleg be van kapcsolva és hozzáférhető az IP címmel",
+    "message.enabled.vpn.ip.sec": "Your IPSec pre-shared key is",
+    "message.enabling.network.offering": "Hálózat ajánlat bekapcsolása",
+    "message.enabling.security.group.provider": "Biztonsági csoport szolgáltató bekapcsolása",
+    "message.enabling.vpc.offering": "VPC ajánlat bekapcsolása",
+    "message.enabling.zone": "Zóna bekapcsolása",
+    "message.enabling.zone.dots": "Zóna engedélyezése...",
+    "message.enter.seperated.list.multiple.cidrs": "Add meg a CIDR listát vesszőkkel elválaszva, ha egynél töb van!",
+    "message.enter.token": "Add meg a token-t, amit a meghívóban kaptál!",
+    "message.generate.keys": "Erősítsd meg, hogy új kulcsokat szeretnél generálni a felhasználónak!",
+    "message.gslb.delete.confirm": "Erősítsd meg, hogy törölni akarod a GSLB-t!",
+    "message.gslb.lb.remove.confirm": "Please confirm you want to remove load balancing from GSLB",
+    "message.guest.traffic.in.advanced.zone": "A vendég hálózat forgalom kommunikáció végfelhasználói virtuális gépek között. Határozz meg egy VLAN ID tartományt a vendég hálózatok forgalmának minden fizikai hálózathoz!",
+    "message.guest.traffic.in.basic.zone": "A vendég hálózat forgalma kommunikóció végfelhasználói virtuális gépek között. Határozz meg egy IP címtartományt, amelyből a CloudStack a virtuális gépekhez rendelhet címet. Győződj meg róla, hogy ez a tartomány nincs átfedésben az elkülönített rendszer IP tartománnyal!",
+    "message.host.dedicated": "Dedikált kiszolgáló",
+    "message.host.dedication.released": "Kiszolgáló elengedve",
+    "message.installWizard.click.retry": "Kattints az indítás gombra az ismétléshez.",
+    "message.installWizard.copy.whatIsACluster": "A fürt kiszolgálók csoportja. A fürt kiszolgálói egyforma hardverrel rendelkeznek, ugyanazt a hiőervízort használják, ugyanazon az alhálózaton találhatóak és hozzáférnek ugyanahhoz az osztott tárhoz. A virtuális gépek egy fürtön belül átköltöztethető másik kiszolgálóra annélkül, hogy annak működését megszakítanánk. A fürt a CloudStack&#8482; harmadik legnagyobb egysége. A fürtök pod-okba, a pod-ok zónákba rendeződnek. <br/><br/>A CloudStack&#8482; lehetővé teszi, hogy több fürtöt használj, de egy alap telepítésben csak egy fürtre van szükség.",
+    "message.installWizard.copy.whatIsAHost": "A kiszolgáló egy számítógép. A kiszolgálók biztosítják a számítási erőforrásokat, amelyeket a virtuális gépek felhasználnak. Minden kiszolgáló rendelkezik hipervizor szoftverrel, amely a vendég VM-eket futtatja (kivétel a bare-metal kiszolgálók). Például egy Linux KVM szerver, Citrix XenServer vagy egy ESXi szerver. Az alaptelepítésben csak egy KVM-et vagy XenServer-t futtató kiszolgálót használunk.<br/><br/>A kiszolgáló a CloudStack&#8482; telepítés legkissebb egysége. A kiszolgálók fürtökbe, a fürtök pod-okba, a pod-ok zónákba rendeződnek.",
+    "message.installWizard.copy.whatIsAPod": "A pod-ra gyakran egy rack-szekrényt jelent. Az egy pod-ban található kiszolgálók egy alhálózaton vannak.<br/><br/>A pod a CloudStack&#8482; telepítés második legnagyobb egysége. A pod-ok zónákat alkotnak. Minden zóna tartalmazhat egy vagy több pod-ot. Az alaptelepítésben csak egy pod-ra van szükségünk.",
+    "message.installWizard.copy.whatIsAZone": "A zóna a CloudStack&#8482; telepítés legnagyobb egysége. Egy zóna általában egy adatközpontnak felel meg, bár megengedhető egy adatközponton belül több zóna létrehozása. Az erőforrások zónákra való osztásának célja a redundancia és a fizikai izoláció. Például minden zónának lehet saját áramellátása és hálózati kapcsolata, valamint a zónák földrajzilag egymástól távol helyezkedhetnek el (bár ez nem feltétlenül szükséges).",
+    "message.installWizard.copy.whatIsCloudStack": "A CloudStack&#8482 egy szoftver, amely számítási erőforrásokat felügyel és alkalmas publikus, privát, vagy hibrid infrastruktúra szolgáltatás (IaaS) felhők építésére. A CloudStack&#8482 irányítja a hálózatokat, az adattárolókat és kiszolgálókat, amelyek a felhő infrastruktúrát alkotják.<br/><br/> A különálló virtuális gépeken túl a CloudStack&#8482 teljes felhő insfrastruktúrát szolgáltat. Nyílt forráskódú és prémium verziók egyaránt elérhetőek, a nyílt forráskódú verziók közel azonos képességekkel rendelkeznek.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "A CloudStack&#8482; infrastruktúra két féle afattárolót használ: elsődleges és másodlagos tárat. Mindkettő lehet ezek közül iSCIS, NFS vagy helyi merevlemez.<br/><br/>Az <strong>elsődleges tár</strong> egy fürthöz kapcsolódik és a fürtön futó virtuális gépek virtuális merevlemezeit tárolja. Az elsődleges tár tipikusan a kiszolgálókhoz közel található.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "A másodlagos tár egyzónához tartozik és a következőket tartalmazza:<ul><li>Sablonok - Telepített operációs rendszerek, amelyek a VM-ek létrehozására használható és tartalmazhat egyéb konfigurációs információkat, mint pl telepített alkalmazások.</li><li>ISO fájlok - OS images that can be bootable or non-bootable</li><li>Disk volume snapshots - saved copies of VM data which can be used for data recovery or to create new templates</ul>",
+    "message.installWizard.now.building": "A felhőd most épül...",
+    "message.installWizard.tooltip.addCluster.name": "A fürt neve. Ez tetszőleges általad választott szöveg lehet.",
+    "message.installWizard.tooltip.addHost.hostname": "A kiszolgáló IP címe vagy DNS neve.",
+    "message.installWizard.tooltip.addHost.password": "A fenti felhasználó jelszava.",
+    "message.installWizard.tooltip.addHost.username": "Általában root.",
+    "message.installWizard.tooltip.addPod.name": "A pod neve",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "Átjáró a pod kiszolgálóinak.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "A hálózati maszk, amit a vendég operációs rendszerek használnak majd.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "A tár eszköz neve.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(NFS esetében) In NFS this is the exported path from the server. Path (for SharedMountPoint).  With KVM this is the path on each host that is where this primary storage is mounted.  For example, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(NFS, iSCSI vagy PreSetup esetében) A táreszköz IP vagy DNS címe.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "A másodlagos tárat kiszolgáló NFS szerver IP címe",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "A fenti szerveren kiexportált útvonal",
+    "message.installWizard.tooltip.addZone.dns1": "Ezeket a DNS szervereket a zóna vendég VM-ei használják. A DNS szervereket publikus hálózaton fogják elérni, amelyet később veszel fel. A zóna publikus IP címeinek hozzá kell tudni férnie az itt megnevezett DNS szerverhez.",
+    "message.installWizard.tooltip.addZone.dns2": "Ezeket a DNS szervereket a zóna vendég VM-ei használják. A DNS szervereket publikus hálózaton fogják elérni, amelyet később veszel fel. A zóna publikus IP címeinek hozzá kell tudni férnie az itt megnevezett DNS szerverhez.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Ezeket a DNS szervereket a zóna rendszer VM-ei használják. A DNS szervereket privát hálózaton fogják elérni. A zóna privát IP címeinek hozzá kell tudni férnie az itt megnevezett DNS szerverhez.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Ezeket a DNS szervereket a zóna rendszer VM-ei használják. A DNS szervereket privát hálózaton fogják elérni. A zóna privát IP címeinek hozzá kell tudni férnie az itt megnevezett DNS szerverhez.",
+    "message.installWizard.tooltip.addZone.name": "A zóna neve",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "A hálózat leírása",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "A hálózati átjáró, amelyet a vendég rendszerek használhatnak",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "A vengég rendszerek hálózatának maszkja",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "A hálózat neve",
+    "message.instance.scaled.up.confirm": "Tényleg nagyobbra akarod méretezni a példányt?",
+    "message.instanceWizard.noTemplates": "You do not have any templates available; please add a compatible template, and re-launch the instance wizard.",
+    "message.ip.address.changed": "Az IP címid megváltzhattak, szeretnéd frissíteni a listát? Ebben az esetben a részletek fül be fog zárulni.",
+    "message.iso.desc": "A merevlemez kép, amely az indítható operációs rendszert tartalmazza",
+    "message.join.project": "Csatlakoztál egy projekthez. Válts a projekt nézetre!",
+    "message.launch.vm.on.private.network": "Szeretnéd a saját dedikált hálózatodon indítani a példányt?",
+    "message.launch.zone": "A zóna készen áll az indításra, folytasd a következő lépéssel",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "Enable autosync for this domain in LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-kattintás)",
+    "message.lock.account": "Erősítsd meg, hogy zárolni akarod ezt a számlát. A számla zárolásával a számla felhasználói nem lesznek képesek a felhő erőforrásaikat vezérelni. A létező erőforrások továbbra is hozzáférhetőek lesznek.",
+    "message.migrate.instance.confirm": "Erősítsd meg a kiszolgáló választást, ahova a virtuális gépet mozgatnád!",
+    "message.migrate.instance.to.host": "Erősítsd meg, hogy másik kiszolgálóra akarod mozgatni a példányt!",
+    "message.migrate.instance.to.ps": "Erősítsd meg, hogy a példányt másik elsődleges tárra szeretnéd mozgatni!",
+    "message.migrate.router.confirm": "Erősítsd meg, hogy a routert mozgatni szeretnéd a következő célpontra:",
+    "message.migrate.systemvm.confirm": "Erősítsd meg, hogy a rendszer VM-et a következő célpontra szeretnéd mozgatni:",
+    "message.migrate.volume": "Erősítsd meg, hogy másik elsődleges tárra akarod mozgatni a kötetet",
+    "message.network.addVM.desc": "Please specify the network that you would like to add this VM to. A new NIC will be added for this network.",
+    "message.network.addVMNIC": "Erősítsd meg, hogy szeretnél egy új VM NIC-et ehhez a hálózathoz!",
+    "message.network.remote.access.vpn.configuration": "Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.",
+    "message.new.user": "A következőket adja meg új számla létrehozásához",
+    "message.no.affinity.groups": "Nincsenek affinítási csoportaid. Kérlek folytasd a következő lépéssel!",
+    "message.no.host.available": "Nincs elérhető kiszolgáló az átköltöztetéshez",
+    "message.no.network.support": "A kiválasztott hipervizor, a vSphere nem támogat semmilyen további hálózat beállítást.  Folytasd az 5. lépéssel!",
+    "message.no.network.support.configuration.not.true": "Nincs olyan zónád, amelyben a biztonsági csoportok be lenne kapcsolva, így a további hálózati lehetőségek nem érhetőek el. Folytasd az 5. lépéssel!",
+    "message.no.projects": "Nincsenek projekteid.<br/>A Projektek szekcióban tudsz újat csinálni.",
+    "message.no.projects.adminOnly": "Nincsenek projekteid.<br/>Kérd meg az adminisztrátort, hogy hozzon létre neked egyet!",
+    "message.number.clusters": "<h2>Fürtök <span>száma</span></h2>",
+    "message.number.hosts": "<h2>Kiszolgálók <span>száma</span></h2>",
+    "message.number.pods": "<h2>Pods-ok <span>száma</span></h2>",
+    "message.number.storage": "<h2>Elsődleges tár kötetek<span>száma</span></h2>",
+    "message.number.zones": "<h2>Zónák <span>száma</span></h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "A jelszó újrabeállítva:",
+    "message.password.of.the.vm.has.been.reset.to": "A VM jelszava újrabeállítva:",
+    "message.pending.projects.1": "Projekt meghívók várnak rád:",
+    "message.pending.projects.2": "A megtekintéshez menj a projektek szekcióhoz és válaszd a meghívókat a legördülő menüből!",
+    "message.please.add.at.lease.one.traffic.range": "Adj meg legalább egy forgalom tartományt!",
+    "message.please.confirm.remove.ssh.key.pair": "Erősítsd meg, hogy törölni akarod ezt az SSH kulcspárt!",
+    "message.please.proceed": "Menj tovább a következő lépéshez!",
+    "message.please.select.a.configuration.for.your.zone": "Válassz konfigurációt a zónádnak!",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Please select a different public and management network before removing",
+    "message.please.select.networks": "Válassz hálózatokat a virtuális gépedhez!",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Válassz ki egy SSH kulcspárt, amelyet ezzel a VM-mel használni szeretnél!",
+    "message.please.wait.while.zone.is.being.created": "Kérlek várj, amíg a zónád létrejön. Ez eltarthat egy ideig...",
+    "message.pod.dedication.released": "Pod dedikáció elengedve",
+    "message.portable.ip.delete.confirm": "Erősítsd meg, hogy törölni akarod a hordozható IP tartományt!",
+    "message.project.invite.sent": "Meghívó elküldve a felhasználónak. A felhasználó akkor kerül a projektbe, amikor elfogadja a meghívót.",
+    "message.public.traffic.in.advanced.zone": "Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.",
+    "message.public.traffic.in.basic.zone": "A publikus forgalom akkor keletkezik, amikor a felhő virtuális gépei hozzáférnek az internethez vagy az interneten szolgáltatásokat biztosítanak. Publikusan elérhető IP címeket kell erre a célra elkülöníteni. Amikor létrejön egy példány, ezekből a publikus IP címekből kap egyet a példány a vendég IP címen kívül. Statikus 1-1 NAT lesz beállŧva a publikus és a vendég IP címek között. Végfelhasználók használhatják a CloudStack felületet is új IP címek beszerzéséhez és statikus NAT beállításához.",
+    "message.question.are.you.sure.you.want.to.add": "Are you sure you want to add",
+    "message.read.admin.guide.scaling.up": "Olvasd el az adminisztrátorok útmutatójában a dinamikus méretezésre vonatkozó részt mielőtt folytatod!",
+    "message.recover.vm": "Erősítsd meg, hogy helyre akarod állítani a VM-et.",
+    "message.redirecting.region": "Átirányítás régióba...",
+    "message.reinstall.vm": "Figyelmeztetés: Óvatosan! Ha folytatod, a VM újra lesz telepítve a sablon alapján, a fő lemezén található adat elveszik. Amennyiben vannak további merevlemezek, azok érintetlenek maradnak.",
+    "message.remove.ldap": "Biztosan törölni akarod az LDAP konfigurációt?",
+    "message.remove.region": "Biztosan törölni akarod ezt a régiót erről a vezérlő szerverről?",
+    "message.remove.vpc": "Erősítsd meg, hoy el akarod távolítani ezt a VPC-t!",
+    "message.remove.vpn.access": "Erősítsd meg, hogy törölni akarod a következő felhasználó VPN hozzáférését!",
+    "message.removed.ssh.key.pair": "SSH kulcspár eltávolítva",
+    "message.reset.VPN.connection": "Erősítsd meg, hogy alaphelyzetbe akarod állítani a VPN kapcsolatot!",
+    "message.reset.password.warning.notPasswordEnabled": "A példány sablonja jelszó bekapcsolása nélkül lett létrehozva",
+    "message.reset.password.warning.notStopped": "A példányt le kell állítanod, mielőtt megpróbálnál jelszót beállítani.",
+    "message.restart.mgmt.server": "Indítsd újra a vezérlő szervert (szervereket) ahhoz, hogy az új beállítás hatályba lépjen!",
+    "message.restart.mgmt.usage.server": "Please restart your management server(s) and usage server(s) for your new settings to take effect.",
+    "message.restart.network": "Megszakad minden szolgáltatás, amit a hálózat biztosít. Erősítsd meg, hogy újra akarod indítani a hálózatot!",
+    "message.restart.vpc": "Erősítsd meg, hogy újra akarod indítani a VPC-t!",
+    "message.restart.vpc.remark": "Erősítsd meg, hogy újra akarod indítani a VPC-t! <p><small><i>Megjegyzés: egy nem redundáns VPC redundánssá tétele takarítást tesz szükségessé. A hálózatok nem lesznek elérhetőek egy pár percig.</i>.</small></p>",
+    "message.restoreVM": "Helyre akarod állítani a VM-et?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(A <strong>Ctrl-kattintás</strong> használatával tudod az összes alkalmazható biztonsági csoportot kiválasztani)",
+    "message.select.a.zone": "Egy zóna tipikusan egy adatközpontnak felel meg. Több zóna segíthet a felhőt megbízhatóbbá tenni fizikai izolációval és redundanciával.",
+    "message.select.affinity.groups": "Válasszd ki azokat az affinitási csoportokat, amelyekhez a VM tartozzon:",
+    "message.select.instance": "Válassz egy példányt!",
+    "message.select.iso": "Válassz egy ISO-t az új virtuális példánynak!",
+    "message.select.item": "Válassz egy elemet!",
+    "message.select.security.groups": "Válassz biztonsági csoportokat az új VM-hez!",
+    "message.select.template": "Válassz egy sablont az új virtuális példánynak!",
+    "message.select.tier": "Válassz egy réteget!",
+    "message.set.default.NIC": "Erősítsd meg, hogy alapértelmezetté szeretnéd tenni ezt a NIC-et a VM-ben!",
+    "message.set.default.NIC.manual": "Most manuálisan módosítsd apalértelmezett NIC-et a VM-ben!",
+    "message.setup.physical.network.during.zone.creation": "Haladó zóna létrehozásakor egy vagy több fizikai hálózatot kell konfigurálnod. Minden hálózat egy hálózati kártyának felel meg a hipervízoron. Minden fizikai hálózat egy vagy több típusú forgalmat bonyolíthat, bizonyos megkötésekkel arra, hogy azokat hogyan lehet kombinálni. <br/><br/><strong>Húzz egy vagy több forgalom típust</strong> minden fizikai hálózatra.",
+    "message.setup.physical.network.during.zone.creation.basic": "Alap zóna létrehozásakor egy fizikai hálózatot hozhatsz létre amely hipervízor hálózati kártyájának felel meg.<br/><br/>Más forgalom-típusokat is <strong>ráhúzhatsz</strong> a fizikai hálózatra.",
+    "message.setup.successful": "A felhő beállítása sikeres!",
+    "message.snapshot.schedule": "You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference",
+    "message.specifiy.tag.key.value": "Please specify a tag key and value",
+    "message.specify.url": "Kérlek adj meg egy URL-t!",
+    "message.step.1.continue": "Válassz egy sablont vagy ISO-t a folytatáshoz",
+    "message.step.1.desc": "Please select a template for your new virtual instance. You can also choose to select a blank template from which an ISO image can be installed onto.",
+    "message.step.2.continue": "Válassz egy ajánlatot a folytatáshoz!",
+    "message.step.3.continue": "Válassz egy merevlemez ajánlatot a folytatáshoz!",
+    "message.step.4.continue": "Válassz legalább egy hálózatot a folytatáshoz!",
+    "message.step.4.desc": "Please select the primary network that your virtual instance will be connected to.",
+    "message.storage.traffic": "Forgalom a CloudStack felhő erőforrásai között, beleértve azokat a komponenseket, amelyek a vezérlő szerverrel kommunikálnak, mint a kiszolgálók és a rendszer VM-ek. Állítsd be a tár forgalmat itt!",
+    "message.suspend.project": "Biztosan fel akarod függeszteni ezt a projektet?",
+    "message.systems.vms.ready": "A rendszer VM-ek elkészültek.",
+    "message.template.copying": "A sablon másolás alatt áll.",
+    "message.template.desc": "Operációs rendszer kép, amelyet a virtuális gépek el tudnak indítani",
+    "message.tier.required": "A réteg kötelező.",
+    "message.tooltip.dns.1": "Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+    "message.tooltip.dns.2": "A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+    "message.tooltip.internal.dns.1": "Egy DNS szerver neve, a zóna belső rendszer VM-einek kiszolgálására. A pod-ok privát IP címeinek szüksége van egy útvonalhoz ehhez a címhez.",
+    "message.tooltip.internal.dns.2": "Egy DNS szerver neve, a zóna belső rendszer VM-einek kiszolgálására. A pod-ok privát IP címeinek szüksége van egy útvonalhoz ehhez a címhez.",
+    "message.tooltip.network.domain": "A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.",
+    "message.tooltip.pod.name": "Név a pod-nak",
+    "message.tooltip.reserved.system.gateway": "Az átjáró a pod kiszolgálói számára",
+    "message.tooltip.reserved.system.netmask": "The network prefix that defines the pod subnet. Uses CIDR notation.",
+    "message.tooltip.zone.name": "Név a zónának.",
+    "message.update.os.preference": "Határozz meg egy OS preferenciát a kiszolgálóhoz. Minden példány, aminek hasonló preferenciái vannak először ezen a kiszolgálón indul el.",
+    "message.update.resource.count": "Erősítsd meg, hogy módosítani akarod a számla erőforrásainak számát!",
+    "message.update.ssl": "Please submit a new X.509 compliant SSL certificate chain to be updated to each console proxy and secondary storage virtual instance:",
+    "message.update.ssl.failed": "Nem sikerült az SSL tanúsítványt módosítani",
+    "message.update.ssl.succeeded": "Az SSL tanúsítványok módosítása sikeres",
+    "message.validate.URL": "Adj meg egy érvényes URL-t!",
+    "message.validate.accept": "Please enter a value with a valid extension.",
+    "message.validate.creditcard": "Adj meg egy érvényes bankkártyaszámot!",
+    "message.validate.date": "Adj meg egy érvényes dátumot!",
+    "message.validate.date.ISO": "Adj meg egy érvényes (ISO) dátumot!",
+    "message.validate.digits": "Csak számjegyeket írj!",
+    "message.validate.email.address": "Adj meg egy érvényes e-mail címet!",
+    "message.validate.equalto": "Írd be ugyanazt az értéket újra!",
+    "message.validate.fieldrequired": "Ez a mező kötelező.",
+    "message.validate.fixfield": "Javítsd ki ez a mezőt!",
+    "message.validate.instance.name": "A példány neve nem lehet hosszabb 63 karakternél. Csak ASCII karakterek a-z és A-Z, számok 0-9 és kötőjelek engedélyezettek. Betűvel kell kezdődnie és betűvel vagy számmal kell végződnie[",
+    "message.validate.invalid.characters": "Érvénytelen karakter; kérlek javítsd!",
+    "message.validate.max": "Adj meg egy értéket, ami legfeljebb {0}!",
+    "message.validate.maxlength": "Legfeljebb {0} karaktert adj meg!",
+    "message.validate.minlength": "Legalább {0} karaktert adj meg!",
+    "message.validate.number": "Adj meg egy érvényes számot!",
+    "message.validate.range": "Adj meg egy értéket {0} és {1} között!",
+    "message.validate.range.length": "Adj meg egy {0} és {1} közötti hosszúságú értéket!",
+    "message.virtual.network.desc": "A dedicated virtualized network for your account.  The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.",
+    "message.vm.create.template.confirm": "Sablon létrehozása automatikusan újraindítja a VM-et!",
+    "message.vm.review.launch": "Please review the following information and confirm that your virtual instance is correct before launch.",
+    "message.vnmc.available.list": "VNMC nem elérhető a szolgáltató listáról.",
+    "message.vnmc.not.available.list": "VNMC nem elérhető a szolgáltató listáról.",
+    "message.volume.create.template.confirm": "Please confirm that you wish to create a template for this disk volume.  Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.waiting.for.builtin.templates.to.load": "Várakozás a beépített sablonk betöltésére...",
+    "message.you.must.have.at.least.one.physical.network": "Szükséged van legalább egy fizikai hálózatra.",
+    "message.your.cloudstack.is.ready": "A CloudStack készen áll!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "A zóna létrehozása befejeződött. Szeretnéd bekapcsolni a zónát?",
+    "message.zone.no.network.selection": "A kiválasztott zónában nem választható ki hálózat.",
+    "message.zone.step.1.desc": "Válassz hálózat modellt a zónádnak!",
+    "message.zone.step.2.desc": "Add meg a következő információkat az új zónához",
+    "message.zone.step.3.desc": "Add meg a következő információkat az új pod-hoz",
+    "message.zoneWizard.enable.local.storage": "Figyelmeztetés: Ha bekapcsolod a helyi tárat ebben a zónában, akkor a következőt kell tenned attól függően, hogy hol szeretnéd elindítani a rendszer VM-eket: <br/><br/>1. Ha a rendszer VM-eknek osztott elsődleges táron kell futnia, akkor egy elosztott tárat kell létrehoznod a zóna létrejötte után. A zónát kikapcsolt állapotban kell elindítanod.<br/><br/>2. Ha a rendszer VM-eknek helyi elsődleges táron kell futni, akkor a system.vm.use.local.storage értékét true-ra kell állítani mielött a zónát bekapcsolod.<br/><br/><br/>Szeretnéd folytatni?",
+    "messgae.validate.min": "Adj meg egy értéket, ami legalább {0}!",
+    "mode": "Mód",
+    "network.rate": "Hálózati ráta",
+    "notification.reboot.instance": "Példány újraindítása",
+    "notification.start.instance": "Példány indítása",
+    "notification.stop.instance": "Példány leállítása",
+    "side.by.side": "Egymás mellett",
+    "state.Accepted": "Elfogadva",
+    "state.Active": "Aktív",
+    "state.Allocated": "Lekötöve",
+    "state.Allocating": "Lekötés folyamatban",
+    "state.BackedUp": "Lementve",
+    "state.BackingUp": "Mentés folyamatban",
+    "state.Completed": "Kész",
+    "state.Creating": "Készül",
+    "state.Declined": "Elromlott",
+    "state.Destroyed": "Törölt",
+    "state.Disabled": "Kikapcsolt",
+    "state.Enabled": "Engedélyezett",
+    "state.Error": "Hiba",
+    "state.Expunging": "Törlés alatt",
+    "state.Migrating": "Áthelyezés alatt",
+    "state.Pending": "Függ",
+    "state.Ready": "Készen áll",
+    "state.Running": "Fut",
+    "state.Starting": "Indul",
+    "state.Stopped": "Leállítva",
+    "state.Stopping": "Leállás folyamatban",
+    "state.Suspended": "Felfüggesztett",
+    "state.detached": "Lecsatolt",
+    "title.upload.volume": "Kötet feltöltése",
+    "ui.listView.filters.all": "Mind",
+    "ui.listView.filters.mine": "Saját"
+};
diff --git a/ui/l10n/it_IT.js b/ui/l10n/it_IT.js
new file mode 100644
index 0000000..3ce6caf
--- /dev/null
+++ b/ui/l10n/it_IT.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "Codice ICMP",
+    "ICMP.type": "Tipo ICMP",
+    "changed.item.properties": "Elementi delle proprietà modificati",
+    "confirm.enable.s3": "Si prega di inserire i valori richiesti per abilitare il supporto per il Secondary Storage di tipo S3",
+    "confirm.enable.swift": "Si prega di inserire i valori richiesti per abilitare il supporto per Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Errore non è possibile cambiare la tua password perchè LDAP è abilitato.",
+    "error.could.not.enable.zone": "Impossibile abilitare la zona",
+    "error.installWizard.message": "E' stato rilevato un errore: tornare agli step precedenti e correggere gli errori",
+    "error.invalid.username.password": "Username o Password non valida",
+    "error.login": "Le credenziali fornite per username/password non corrispondono a quelle nei nostri sistemi.",
+    "error.menu.select": "Impossibile effettuare operazioni senza aver selezionato alcun elemento.",
+    "error.mgmt.server.inaccessible": "Impossibile accedere al Management Server. Si prega di riprovare più tardi.",
+    "error.password.not.match": "I campi password non corrispondono",
+    "error.please.specify.physical.network.tags": "Le offerte di rete non sono disponibili se non si specificano tag per questa rete fisica.",
+    "error.session.expired": "La sessione è scaduta.",
+    "error.something.went.wrong.please.correct.the.following": "E' stato rilevato un errore; si prega di correggere quanto indicato di seguito",
+    "error.unable.to.reach.management.server": "Impossibile raggiungere il Management Server",
+    "error.unresolved.internet.name": "Il tuo nome internet non può essere risolto.",
+    "force.delete": "Forza la Cancellazione",
+    "force.delete.domain.warning": "Attenzione: La scelta di questa opzione provocherà la rimozione di tutti i sotto domini e agli account associati e alle loro risorse.",
+    "force.remove": "Forza la Rimozione",
+    "force.remove.host.warning": "Attenzione: La scelta di questa opzione provocherà l'arresto forzato di tutte le virtual machine da parte di CloudStack prima di rimuovere questo host dal cluster.",
+    "force.stop": "Forza l'Arresto",
+    "force.stop.instance.warning": "Attenzione: Forzare un arresto su questa instanza dovrebbe essere l'ultima opzione. C'è il rischio di perdita di dati e di un comportamento inconsistente dello stato della virtual machine.",
+    "hint.no.host.tags": "No host tags found",
+    "hint.no.storage.tags": "No storage tags found",
+    "hint.type.part.host.tag": "Type in part of a host tag",
+    "hint.type.part.storage.tag": "Type in part of a storage tag",
+    "image.directory": "Directory Immagine",
+    "inline": "Inline",
+    "instances.actions.reboot.label": "Riavviare una instanza",
+    "label.CIDR.list": "Lista CIDR",
+    "label.CIDR.of.destination.network": "Valore CIDR della rete di destinazione",
+    "label.CPU.cap": "Limite CPU",
+    "label.DHCP.server.type": "Tipo di DHCP Server",
+    "label.DNS.domain.for.guest.networks": "Dominio DNS per Reti Guest",
+    "label.ESP.encryption": "Encryption di ESP",
+    "label.ESP.hash": "Hash di ESP",
+    "label.ESP.lifetime": "ESP Lifetime (second)",
+    "label.ESP.policy": "Policy di ESP",
+    "label.IKE.DH": "DH di IKE",
+    "label.IKE.encryption": "Encryption di IKE",
+    "label.IKE.hash": "Hash di IKE",
+    "label.IKE.lifetime": "IKE lifetime (second)",
+    "label.IKE.policy": "Policy di IKE",
+    "label.IPsec.preshared.key": "Preshared-Key di IPsec",
+    "label.LB.isolation": "Isolamento di LB",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto Log Profile",
+    "label.PA.threat.profile": "Palo Alto Threat Profile",
+    "label.PING.CIFS.password": "PING CIFS password",
+    "label.PING.CIFS.username": "PING CIFS username",
+    "label.PING.dir": "PING Directory",
+    "label.PING.storage.IP": "PING storage IP",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "Pxe Server Type",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNMP Port",
+    "label.SR.name": "SR Name-Label",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP Directory",
+    "label.VMFS.datastore": "VMFS datastore",
+    "label.VMs.in.tier": "VM nei livelli",
+    "label.VPC.limits": "VPC limits",
+    "label.VPC.router.details": "Dettagli del router VPC",
+    "label.VPN.connection": "Connessione VPN",
+    "label.VPN.customer.gateway": "Gateway VPN del Cliente",
+    "label.VPN.gateway": "Gateway VPN",
+    "label.Xenserver.Tools.Version61plus": "Original XS Version is 6.1+",
+    "label.about": "About",
+    "label.about.app": "About CloudStack",
+    "label.accept.project.invitation": "Accettare un invito ad un progetto",
+    "label.account": "Account",
+    "label.account.and.security.group": "Account, Security group",
+    "label.account.details": "Account details",
+    "label.account.id": "ID dell'Account",
+    "label.account.lower": "account",
+    "label.account.name": "Nome Account",
+    "label.account.specific": "Specifico dell'Account",
+    "label.account.type": "Account Type",
+    "label.accounts": "Utenti",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL List Rules",
+    "label.acl.name": "ACL Name",
+    "label.acl.replaced": "ACL replaced",
+    "label.acquire.new.ip": "Acquisizione nuovo indirizzo IP",
+    "label.acquire.new.secondary.ip": "Acquisizione nuovo IP secondario",
+    "label.action": "Action",
+    "label.action.attach.disk": "Collegamento di un Disco",
+    "label.action.attach.disk.processing": "Collegamento Disco in corso...",
+    "label.action.attach.iso": "Collegamento di una immagine ISO",
+    "label.action.attach.iso.processing": "Collegamento immagine ISO in corso...",
+    "label.action.cancel.maintenance.mode": "Annullamento dello stato di Maintenance Mode",
+    "label.action.cancel.maintenance.mode.processing": "Cancellazione dello stato Maintenance Mode in corso...",
+    "label.action.change.password": "Modifica della Password",
+    "label.action.change.service": "Modificare Servizio",
+    "label.action.change.service.processing": "Modifica del Servizio in corso...",
+    "label.action.configure.samlauthorization": "Configure SAML SSO Authorization",
+    "label.action.copy.ISO": "Copia della immagine ISO",
+    "label.action.copy.ISO.processing": "Copia immagine ISO in corso...",
+    "label.action.copy.template": "Copia di un Template",
+    "label.action.copy.template.processing": "Copia di un Template in corso...",
+    "label.action.create.template": "Creazione Template",
+    "label.action.create.template.from.vm": "Creazione Template da una VM",
+    "label.action.create.template.from.volume": "Creazione Template da un Volume",
+    "label.action.create.template.processing": "Creazione Template in corso...",
+    "label.action.create.vm": "Creazione VM",
+    "label.action.create.vm.processing": "Creazione VM in corso...",
+    "label.action.create.volume": "Creazione Volume",
+    "label.action.create.volume.processing": "Creazione Volume in corso...",
+    "label.action.delete.IP.range": "Cancellazione intervallo indirizzi IP",
+    "label.action.delete.IP.range.processing": "Cancellazione intervallo indirizzi IP in corso....",
+    "label.action.delete.ISO": "Cancellazione immagine ISO",
+    "label.action.delete.ISO.processing": "Cancellazione immagine ISO in corso....",
+    "label.action.delete.account": "Cancellazione account",
+    "label.action.delete.account.processing": "Cancellazione account in corso....",
+    "label.action.delete.cluster": "Cancellazione Cluster",
+    "label.action.delete.cluster.processing": "Cancellazione Cluster in corso....",
+    "label.action.delete.disk.offering": "Cancellazione Offerta Disco",
+    "label.action.delete.disk.offering.processing": "Cancellazione Offerta Disco in corso....",
+    "label.action.delete.domain": "Cancellazione Dominio",
+    "label.action.delete.domain.processing": "Cancellazione Dominio in corso....",
+    "label.action.delete.firewall": "Cancellazione regola firewall",
+    "label.action.delete.firewall.processing": "Cancellazione Firewall in corso....",
+    "label.action.delete.ingress.rule": "Cancella Regola in Ingresso",
+    "label.action.delete.ingress.rule.processing": "Cancellazione della Regola in Ingresso in corso...",
+    "label.action.delete.load.balancer": "Cancellazione regola load balancer",
+    "label.action.delete.load.balancer.processing": "Cancellazione Load Balancer in corso....",
+    "label.action.delete.network": "Cancellazione Rete",
+    "label.action.delete.network.processing": "Cancellazione Rete in corso....",
+    "label.action.delete.nexusVswitch": "Cancellare Nexus 1000v",
+    "label.action.delete.nic": "Rimuovi NIC",
+    "label.action.delete.physical.network": "Cancellazione di una rete fisica",
+    "label.action.delete.pod": "Cancellazione Pod",
+    "label.action.delete.pod.processing": "Cancellazione Pod in corso....",
+    "label.action.delete.primary.storage": "Cancellazione Storage Primario",
+    "label.action.delete.primary.storage.processing": "Cancellazione Storage Primario in corso....",
+    "label.action.delete.secondary.storage": "Cancellazione Storage Secondario",
+    "label.action.delete.secondary.storage.processing": "Cancellazione Storage Secondario in corso....",
+    "label.action.delete.security.group": "Cancellazione Security Group",
+    "label.action.delete.security.group.processing": "Cancellazione Security Group in corso....",
+    "label.action.delete.service.offering": "Cancellazione Offerta di Servizio",
+    "label.action.delete.service.offering.processing": "Cancellazione Offerta di Servizio in corso....",
+    "label.action.delete.snapshot": "Cancellazione Snapshot",
+    "label.action.delete.snapshot.processing": "Cancellazione Snapshot in corso....",
+    "label.action.delete.system.service.offering": "Cancellare Offerta di Servizio di Sistema",
+    "label.action.delete.template": "Cancellazione Template",
+    "label.action.delete.template.processing": "Cancellazione Template in corso....",
+    "label.action.delete.user": "Cancellazione Utente",
+    "label.action.delete.user.processing": "Cancellazione Utente in corso....",
+    "label.action.delete.volume": "Cancellazione Volume",
+    "label.action.delete.volume.processing": "Cancellazione Volume in corso....",
+    "label.action.delete.zone": "Cancellazione Zona",
+    "label.action.delete.zone.processing": "Cancellazione Zona in corso....",
+    "label.action.destroy.instance": "Rimozione instanza",
+    "label.action.destroy.instance.processing": "Rimozione Instanza in corso....",
+    "label.action.destroy.systemvm": "Rimozione VM di sistema",
+    "label.action.destroy.systemvm.processing": "Rimozione VM di Sistema in corso....",
+    "label.action.detach.disk": "Scollegamento di un Disco",
+    "label.action.detach.disk.processing": "Scollegamento Disco in corso....",
+    "label.action.detach.iso": "Scollegamento immagine ISO",
+    "label.action.detach.iso.processing": "Scollegamento immagine ISO in corso....",
+    "label.action.disable.account": "Disabilitazione account",
+    "label.action.disable.account.processing": "Disabilitazione account in corso....",
+    "label.action.disable.cluster": "Disabilitazione Cluster",
+    "label.action.disable.cluster.processing": "Disabilitazione Cluster in corso....",
+    "label.action.disable.nexusVswitch": "Disabilitare Nexus 1000v",
+    "label.action.disable.physical.network": "Disabilitare la rete fisica",
+    "label.action.disable.pod": "Disabilitazione Pod",
+    "label.action.disable.pod.processing": "Disabilitazione Pod in corso....",
+    "label.action.disable.static.NAT": "Disabilitazione NAT Statico",
+    "label.action.disable.static.NAT.processing": "Disabilitazione NAT Statico in corso....",
+    "label.action.disable.user": "Disabilitazione Utente",
+    "label.action.disable.user.processing": "Disabilitazione Utente in corso....",
+    "label.action.disable.zone": "Disabilitazione Zona",
+    "label.action.disable.zone.processing": "Disabilitazione Zona in corso....",
+    "label.action.download.ISO": "Download immagine ISO",
+    "label.action.download.template": "Download Template",
+    "label.action.download.volume": "Download Volume",
+    "label.action.download.volume.processing": "Download Volume in corso....",
+    "label.action.edit.ISO": "Modifica immagine ISO",
+    "label.action.edit.account": "Modifica account",
+    "label.action.edit.disk.offering": "Modifica Offerta Disco",
+    "label.action.edit.domain": "Modifica Dominio",
+    "label.action.edit.global.setting": "Modifica Impostazioni Globali",
+    "label.action.edit.host": "Modifica Host",
+    "label.action.edit.instance": "Modifica Instanza",
+    "label.action.edit.network": "Modifica Rete",
+    "label.action.edit.network.offering": "Modifica Offerta di Rete",
+    "label.action.edit.network.processing": "Modifica Rete in corso....",
+    "label.action.edit.pod": "Modifica Pod",
+    "label.action.edit.primary.storage": "Modifica Storage Primario",
+    "label.action.edit.resource.limits": "Modifica Limiti delle Risorse",
+    "label.action.edit.service.offering": "Modifica Offerta di Servizio",
+    "label.action.edit.template": "Modifica Template",
+    "label.action.edit.user": "Modifica Utente",
+    "label.action.edit.zone": "Modifica Zona",
+    "label.action.enable.account": "Abilitazione account",
+    "label.action.enable.account.processing": "Abilitazione account in corso....",
+    "label.action.enable.cluster": "Abilitazione Cluster",
+    "label.action.enable.cluster.processing": "Abilitazione Cluster in corso....",
+    "label.action.enable.maintenance.mode": "Abilitazione dello stato Maintenance Mode",
+    "label.action.enable.maintenance.mode.processing": "Abilitazione dello stato Maintenance Mode in corso....",
+    "label.action.enable.nexusVswitch": "Abilitare Nexus 1000v",
+    "label.action.enable.physical.network": "Abilitare la rete fisica",
+    "label.action.enable.pod": "Abilitazione Pod",
+    "label.action.enable.pod.processing": "Abilitazione Pod in corso....",
+    "label.action.enable.static.NAT": "Abilitazione NAT Statico",
+    "label.action.enable.static.NAT.processing": "Abilitazione NAT Statico in corso....",
+    "label.action.enable.user": "Abilitazione Utente",
+    "label.action.enable.user.processing": "Abilitazione Utente in corso....",
+    "label.action.enable.zone": "Abilitazione Zona",
+    "label.action.enable.zone.processing": "Abilitazione Zona in corso....",
+    "label.action.expunge.instance": "Cancellare l'Istanza",
+    "label.action.expunge.instance.processing": "Cancellazione dell'Istanza in corso...",
+    "label.action.force.reconnect": "Forza la Riconnessione",
+    "label.action.force.reconnect.processing": "Riconnessione in corso....",
+    "label.action.generate.keys": "Generazione Chiavi",
+    "label.action.generate.keys.processing": "Generazione Chiavi in corso....",
+    "label.action.list.nexusVswitch": "Elencare Nexus 1000v",
+    "label.action.lock.account": "Blocco di un account",
+    "label.action.lock.account.processing": "Blocco account in corso....",
+    "label.action.manage.cluster": "Gestione Cluster",
+    "label.action.manage.cluster.processing": "Gestione Cluster in corso....",
+    "label.action.migrate.instance": "Migrazione Instanza",
+    "label.action.migrate.instance.processing": "Migrazione Instanza in corso....",
+    "label.action.migrate.router": "Migrazione Router",
+    "label.action.migrate.router.processing": "Migrazione Router...",
+    "label.action.migrate.systemvm": "Migrazione VM di Systema",
+    "label.action.migrate.systemvm.processing": "Migrazione VM di Sistema in corso....",
+    "label.action.reboot.instance": "Riavvio Instanza",
+    "label.action.reboot.instance.processing": "Riavvio Instanza in corso....",
+    "label.action.reboot.router": "Riavvio Router",
+    "label.action.reboot.router.processing": "Riavvio Router in corso....",
+    "label.action.reboot.systemvm": "Riavvio VM di Sistema",
+    "label.action.reboot.systemvm.processing": "Riavvio VM di Sistema in corso....",
+    "label.action.recurring.snapshot": "Snapshot Ricorrenti",
+    "label.action.register.iso": "Registrare una ISO",
+    "label.action.register.template": "Registra un Template da URL",
+    "label.action.release.ip": "Rilascio indirizzo IP",
+    "label.action.release.ip.processing": "Rilascio indirizzo IP in corso....",
+    "label.action.remove.host": "Rimozione Host",
+    "label.action.remove.host.processing": "Rimozione Host in corso....",
+    "label.action.reset.password": "Reset Password",
+    "label.action.reset.password.processing": "Reset della Password in corso....",
+    "label.action.resize.volume": "Ridimensionamento Volume",
+    "label.action.resize.volume.processing": "Ridimensionamento Volume in corso....",
+    "label.action.resource.limits": "Limiti delle Risorse",
+    "label.action.restore.instance": "Restore Instanza",
+    "label.action.restore.instance.processing": "Restore dell'Instanza in corso....",
+    "label.action.revert.snapshot": "Ripristinare lo Snapshot",
+    "label.action.revert.snapshot.processing": "Ripristino dello Snapshot in corso...",
+    "label.action.start.instance": "Avvio Instanza",
+    "label.action.start.instance.processing": "Avvio Instanza in corso....",
+    "label.action.start.router": "Avvio Router",
+    "label.action.start.router.processing": "Avvio Router in corso....",
+    "label.action.start.systemvm": "Avvio VM di Sistema",
+    "label.action.start.systemvm.processing": "Avvio VM di Sistema in corso....",
+    "label.action.stop.instance": "Arresto Instanza",
+    "label.action.stop.instance.processing": "Arresto Instanza in corso....",
+    "label.action.stop.router": "Arresto Router",
+    "label.action.stop.router.processing": "Arresto Router in corso....",
+    "label.action.stop.systemvm": "Arresto VM di Sistema",
+    "label.action.stop.systemvm.processing": "Arresto VM di Sistema in corso....",
+    "label.action.take.snapshot": "Cattura uno Snapshot",
+    "label.action.take.snapshot.processing": "Esecuzione di Snapshot in corso....",
+    "label.action.unmanage.cluster": "Unmanage Cluster",
+    "label.action.unmanage.cluster.processing": "Unmanaging Cluster....",
+    "label.action.update.OS.preference": "Aggiornamento Preferenze OS",
+    "label.action.update.OS.preference.processing": "Aggiornamento preferenze OS in corso....",
+    "label.action.update.resource.count": "Aggiornare il conteggio delle Risorse",
+    "label.action.update.resource.count.processing": "Aggiornamento del conteggio delle Risorse in corso...",
+    "label.action.vmsnapshot.create": "Cattura uno Snapshot della VM",
+    "label.action.vmsnapshot.delete": "Cancella lo Snapshot della VM",
+    "label.action.vmsnapshot.revert": "Ripristinare lo snapshot della VM",
+    "label.actions": "Azioni",
+    "label.activate.project": "Attivare il Progetto",
+    "label.active.sessions": "Sessioni Attive",
+    "label.add": "Add",
+    "label.add.ACL": "Aggiungere ACL",
+    "label.add.BigSwitchBcf.device": "Aggiungere Controller BigSwitch BCF",
+    "label.add.BrocadeVcs.device": "Aggiungere Switch Brocade Vcs",
+    "label.add.F5.device": "Aggiungere device F5",
+    "label.add.LDAP.account": "Add LDAP Account",
+    "label.add.NiciraNvp.device": "Aggiungere Controller Nvp",
+    "label.add.NuageVsp.device": "Add Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Add OpenDaylight Controller",
+    "label.add.PA.device": "Aggiungere un device Palo Alto",
+    "label.add.SRX.device": "Aggiungere device SRX",
+    "label.add.VM.to.tier": "Aggiungere una VM al livello",
+    "label.add.VPN.gateway": "Aggiungere un Gateway VPN",
+    "label.add.account": "Aggiungi un Account",
+    "label.add.account.to.project": "Aggiungere account al progetto",
+    "label.add.accounts": "Aggiungere utenti",
+    "label.add.accounts.to": "Aggiungere utenti a",
+    "label.add.acl.list": "Add ACL List",
+    "label.add.affinity.group": "Aggiungere un nuovo gruppo di affinità",
+    "label.add.baremetal.dhcp.device": "Add Baremetal DHCP Device",
+    "label.add.baremetal.rack.configuration": "Add Baremetal Rack Configuration",
+    "label.add.by": "Add by",
+    "label.add.by.cidr": "Aggiungere da CIDR",
+    "label.add.by.group": "Add By Group",
+    "label.add.ciscoASA1000v": "Add CiscoASA1000v Resource",
+    "label.add.cluster": "Aggiunta Cluster",
+    "label.add.compute.offering": "Aggiungere una offerta computazionale",
+    "label.add.direct.iprange": "Add Direct Ip Range",
+    "label.add.disk.offering": "Aggiungere Offerta Disco",
+    "label.add.domain": "Aggiunta Dominio",
+    "label.add.egress.rule": "Aggiungere una regola d'uscita",
+    "label.add.firewall": "Aggiunta regola firewall",
+    "label.add.globo.dns": "Add GloboDNS",
+    "label.add.gslb": "Add GSLB",
+    "label.add.guest.network": "Aggiungere una rete guest",
+    "label.add.host": "Aggiunta Host",
+    "label.add.ingress.rule": "Add Ingress Rule",
+    "label.add.intermediate.certificate": "Aggiungere un certificato intermedio",
+    "label.add.internal.lb": "Add Internal LB",
+    "label.add.ip.range": "Aggiungere un IP Range",
+    "label.add.isolated.guest.network": "Add Isolated Guest Network",
+    "label.add.isolated.guest.network.with.sourcenat": "Add Isolated Guest Network with SourceNat",
+    "label.add.isolated.network": "Add Isolated Network",
+    "label.add.ldap.account": "Aggiungi un account LDAP",
+    "label.add.list.name": "ACL List Name",
+    "label.add.load.balancer": "Aggiungere un Load Balancer",
+    "label.add.more": "Add More",
+    "label.add.netScaler.device": "Aggiungere device Netscaler",
+    "label.add.network": "Aggiungere una Rete",
+    "label.add.network.ACL": "Aggiungere le ACL di rete",
+    "label.add.network.acl.list": "Add Network ACL List",
+    "label.add.network.device": "Aggiungere un Dispositivo di Rete",
+    "label.add.network.offering": "Aggiungere offerta di rete",
+    "label.add.new.F5": "Aggiungere nuovo F5",
+    "label.add.new.NetScaler": "Aggiungere nuovo NetScaler",
+    "label.add.new.PA": "Aggiungere un nuovo Palo Alto",
+    "label.add.new.SRX": "Aggiungere nuovo SRX",
+    "label.add.new.gateway": "Aggiungere un nuovo gateway",
+    "label.add.new.tier": "Aggiungere un nuovo livello",
+    "label.add.nfs.secondary.staging.store": "Add NFS Secondary Staging Store",
+    "label.add.physical.network": "Aggiungere rete fisica",
+    "label.add.pod": "Aggiungere un Pod",
+    "label.add.port.forwarding.rule": "Aggiungere una regola di port forwarding",
+    "label.add.portable.ip.range": "Add Portable IP Range",
+    "label.add.primary.storage": "Aggiungere uno Storage Primario",
+    "label.add.private.gateway": "Add Private Gateway",
+    "label.add.region": "Aggiungere una Regione",
+    "label.add.resources": "Aggiungere Risorse",
+    "label.add.role": "Add Role",
+    "label.add.route": "Aggiungere una rotta",
+    "label.add.rule": "Aggiungere regola",
+    "label.add.secondary.storage": "Aggiungere uno Storage Secondario",
+    "label.add.security.group": "Aggiungere un Gruppo di Sicurezza",
+    "label.add.service.offering": "Aggiungere un'Offerta di Servizio",
+    "label.add.static.nat.rule": "Aggiungere regola di NAT statico",
+    "label.add.static.route": "Aggiungere una rotta statica",
+    "label.add.system.service.offering": "Aggiungere Offerte di Servizio di Sistema",
+    "label.add.template": "Aggiungere un Template",
+    "label.add.to.group": "Aggiungere al gruppo",
+    "label.add.ucs.manager": "Add UCS Manager",
+    "label.add.user": "Aggiungere un Utente",
+    "label.add.userdata": "Userdata",
+    "label.add.vlan": "Aggiungere una VLAN",
+    "label.add.vm": "Aggiungere VM",
+    "label.add.vms": "Aggiunvere VM",
+    "label.add.vms.to.lb": "Aggiungere VM a regola di bilanciamento di carico",
+    "label.add.vmware.datacenter": "Add VMware datacenter",
+    "label.add.vnmc.device": "Add VNMC device",
+    "label.add.vnmc.provider": "Add VNMC provider",
+    "label.add.volume": "Aggiungere un Volume",
+    "label.add.vpc": "Aggiungere VPC",
+    "label.add.vpc.offering": "Add VPC Offering",
+    "label.add.vpn.customer.gateway": "Aggiungere Gateway VPN del Cliente",
+    "label.add.vpn.user": "Aggiungere utente VPN",
+    "label.add.vxlan": "Aggiungere una VXLAN",
+    "label.add.zone": "Aggiungere una Zona",
+    "label.added.brocade.vcs.switch": "Added new Brocade Vcs Switch",
+    "label.added.network.offering": "Added network offering",
+    "label.added.new.bigswitch.bcf.controller": "Added new BigSwitch BCF Controller",
+    "label.added.nicira.nvp.controller": "Added new Nicira NVP Controller",
+    "label.addes.new.f5": "Added new F5",
+    "label.adding": "Aggiunta",
+    "label.adding.cluster": "Aggiunta del Cluster",
+    "label.adding.failed": "Aggiunta Fallita",
+    "label.adding.pod": "Aggiuta del Pod",
+    "label.adding.processing": "Aggiunta in corso...",
+    "label.adding.succeeded": "Aggiunta avvenuta",
+    "label.adding.user": "Aggiunta dell'Utente",
+    "label.adding.zone": "Aggiunta della Zona",
+    "label.additional.networks": "Network Aggiuntivi",
+    "label.admin": "Amministratore",
+    "label.admin.accounts": "Account Amministrativi",
+    "label.advanced": "Avanzato",
+    "label.advanced.mode": "Modalità Avanzata",
+    "label.advanced.search": "Ricerca Avanzata",
+    "label.affinity": "Affinità",
+    "label.affinity.group": "Gruppo di Affinità",
+    "label.affinity.groups": "Gruppi di Affinità",
+    "label.agent.password": "Password per l'Agent",
+    "label.agent.port": "Agent Port",
+    "label.agent.state": "Agent State",
+    "label.agent.username": "Username per l'Agent",
+    "label.agree": "Agree",
+    "label.alert": "Allarme",
+    "label.alert.archived": "Alert Archived",
+    "label.alert.deleted": "Alert Deleted",
+    "label.alert.details": "Alert details",
+    "label.algorithm": "Algoritmo",
+    "label.allocated": "Allocato",
+    "label.allocation.state": "Allocation State",
+    "label.allow": "Allow",
+    "label.anti.affinity": "Anti-affinità",
+    "label.anti.affinity.group": "Anti-affinity Group",
+    "label.anti.affinity.groups": "Anti-affinity Groups",
+    "label.api.key": "Chiave API",
+    "label.api.version": "Versione API",
+    "label.app.name": "CloudStack",
+    "label.apply": "Applicare",
+    "label.archive": "Archive",
+    "label.archive.alerts": "Archivia allarmi",
+    "label.archive.events": "Archivia eventi",
+    "label.assign": "Assign",
+    "label.assign.instance.another": "Assign Instance to Another Account",
+    "label.assign.to.load.balancer": "Assigning instance to load balancer",
+    "label.assign.vms": "Assign VMs",
+    "label.assigned.vms": "Assigned VMs",
+    "label.associate.public.ip": "Associate Public IP",
+    "label.associated.network": "Rete Associata",
+    "label.associated.network.id": "Associated Network ID",
+    "label.associated.profile": "Associated Profile",
+    "label.attached.iso": "ISO Collegata",
+    "label.author.email": "Author e-mail",
+    "label.author.name": "Author name",
+    "label.autoscale": "AutoScale",
+    "label.autoscale.configuration.wizard": "AutoScale Configuration Wizard",
+    "label.availability": "Availability",
+    "label.availability.zone": "Availability Zone",
+    "label.availabilityZone": "availabilityZone",
+    "label.available": "Disponibile",
+    "label.available.public.ips": "Indirizzi IP Pubblici Disponibili",
+    "label.back": "Indietro",
+    "label.bandwidth": "Capacità della banda (Bandwidth)",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP Devices",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP Provider",
+    "label.baremetal.pxe.device": "Add Baremetal PXE Device",
+    "label.baremetal.pxe.devices": "Baremetal PXE Devices",
+    "label.baremetal.pxe.provider": "Baremetal PXE Provider",
+    "label.baremetal.rack.configuration": "Baremetal Rack Configuration",
+    "label.basic": "Basic",
+    "label.basic.mode": "Modalità Base",
+    "label.bigswitch.bcf.details": "BigSwitch BCF details",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT Enabled",
+    "label.bigswitch.controller.address": "Indirizzo Controller BigSwitch BCF",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blades",
+    "label.bootable": "Avviabile",
+    "label.broadcast.domain.range": "Broadcast domain range",
+    "label.broadcast.domain.type": "Broadcast Domain Type",
+    "label.broadcast.uri": "URI di Broadcast",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "URI di Broadcast",
+    "label.brocade.vcs.address": "Vcs Switch Address",
+    "label.brocade.vcs.details": "Brocade Vcs Switch details",
+    "label.by.account": "By Account",
+    "label.by.alert.type": "Per tipo di allarme",
+    "label.by.availability": "By Availability",
+    "label.by.date.end": "Per data (fino a)",
+    "label.by.date.start": "Per data (da)",
+    "label.by.domain": "By Domain",
+    "label.by.end.date": "By End Date",
+    "label.by.event.type": "Per tipo di evento",
+    "label.by.level": "By Level",
+    "label.by.pod": "By Pod",
+    "label.by.role": "By Role",
+    "label.by.start.date": "By Start Date",
+    "label.by.state": "By State",
+    "label.by.traffic.type": "By Traffic Type",
+    "label.by.type": "By Type",
+    "label.by.type.id": "By Type ID",
+    "label.by.zone": "By Zone",
+    "label.bytes.received": "Byte Ricevuti",
+    "label.bytes.sent": "Byte Inviati",
+    "label.cache.mode": "Write-cache Type",
+    "label.cancel": "Annulla",
+    "label.capacity": "Capacità",
+    "label.capacity.bytes": "Capacità Byte",
+    "label.capacity.iops": "Capacità IOPS",
+    "label.certificate": "Certificato",
+    "label.change.affinity": "Change Affinity",
+    "label.change.ipaddress": "Change IP address for NIC",
+    "label.change.service.offering": "Modificare offerta di servizio",
+    "label.change.value": "Modifica il valore",
+    "label.character": "Carattere",
+    "label.chassis": "Chassis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR or Account/Security Group",
+    "label.cidr.list": "Source CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP Address",
+    "label.cisco.nexus1000v.password": "Nexus 1000v Password",
+    "label.cisco.nexus1000v.username": "Nexus 1000v Username",
+    "label.ciscovnmc.resource.details": "CiscoVNMC resource details",
+    "label.clean.up": "Clean up",
+    "label.clear.list": "Pulizia dell'elenco",
+    "label.close": "Chiudi",
+    "label.cloud.console": "Console di Gestione Cloud",
+    "label.cloud.managed": "Cloud.com Managed",
+    "label.cluster": "Cluster",
+    "label.cluster.name": "Nome del Cluster",
+    "label.cluster.type": "Tipo di Cluster",
+    "label.clusters": "Cluster",
+    "label.clvm": "CLVM",
+    "label.code": "Codice",
+    "label.community": "Community",
+    "label.compute": "Computazionale",
+    "label.compute.and.storage": "Computazione e Storage",
+    "label.compute.offering": "Offerta computazionale",
+    "label.compute.offerings": "Compute Offerings",
+    "label.configuration": "Configurazione",
+    "label.configure": "Configurare",
+    "label.configure.ldap": "Configura LDAP",
+    "label.configure.network.ACLs": "Configurare le ACL di rete",
+    "label.configure.sticky.policy": "Configure Sticky Policy",
+    "label.configure.vpc": "Configurare VPC",
+    "label.confirm.password": "Confermare la password",
+    "label.confirmation": "Conferma",
+    "label.congratulations": "Congratulazioni!",
+    "label.conserve.mode": "Conserve mode",
+    "label.console.proxy": "Proxy di Console",
+    "label.console.proxy.vm": "Console Proxy VM",
+    "label.continue": "Continuare",
+    "label.continue.basic.install": "Proseguire con l'installazione di base",
+    "label.copying.iso": "Copying ISO",
+    "label.corrections.saved": "Salvataggio correzioni effettuato",
+    "label.counter": "Counter",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU Allocate",
+    "label.cpu.allocated.for.VMs": "CPU Allocate per VM",
+    "label.cpu.limits": "Limiti CPU",
+    "label.cpu.mhz": "CPU (in MHz)",
+    "label.cpu.utilized": "CPU Utilizzata",
+    "label.create.VPN.connection": "Creare una Connessione VPN",
+    "label.create.nfs.secondary.staging.storage": "Create NFS Secondary Staging Store",
+    "label.create.nfs.secondary.staging.store": "Create NFS secondary staging store",
+    "label.create.project": "Creare un progetto",
+    "label.create.ssh.key.pair": "Create a SSH Key Pair",
+    "label.create.template": "Creare un template",
+    "label.created": "Creato",
+    "label.created.by.system": "Creato dal sistema",
+    "label.cross.zones": "Cross Zones",
+    "label.custom": "Custom",
+    "label.custom.disk.iops": "Custom IOPS",
+    "label.custom.disk.offering": "Custom Disk Offering",
+    "label.custom.disk.size": "Dimensione Disco Personalizzata",
+    "label.daily": "Quotidiano",
+    "label.data.disk.offering": "Data Disk Offering",
+    "label.date": "Data",
+    "label.day": "Day",
+    "label.day.of.month": "Giorno del Mese",
+    "label.day.of.week": "Giorno della Settimana",
+    "label.dc.name": "DC Name",
+    "label.dead.peer.detection": "Dead Peer Detection",
+    "label.decline.invitation": "Declinare un invito",
+    "label.dedicate": "Dedicate",
+    "label.dedicate.cluster": "Dedicate Cluster",
+    "label.dedicate.host": "Dedicate Host",
+    "label.dedicate.pod": "Dedicate Pod",
+    "label.dedicate.vlan.vni.range": "Dedicate VLAN/VNI Range",
+    "label.dedicate.zone": "Dedicate Zone",
+    "label.dedicated": "Dedicato",
+    "label.dedicated.vlan.vni.ranges": "Dedicated VLAN/VNI Ranges",
+    "label.default": "Default",
+    "label.default.egress.policy": "Default egress policy",
+    "label.default.use": "Default Use",
+    "label.default.view": "Vista di default",
+    "label.delete": "Cancellare",
+    "label.delete.BigSwitchBcf": "Rimuovere Controller BigSwitch BCF",
+    "label.delete.BrocadeVcs": "Remove Brocade Vcs Switch",
+    "label.delete.F5": "Rimozione F5",
+    "label.delete.NetScaler": "Rimozione NetScaler",
+    "label.delete.NiciraNvp": "Rimuovere Controller Nvp",
+    "label.delete.NuageVsp": "Remove Nuage VSD",
+    "label.delete.OpenDaylight.device": "Delete OpenDaylight Controller",
+    "label.delete.PA": "Cancellare Palo Alto",
+    "label.delete.SRX": "Rimozione SRX",
+    "label.delete.VPN.connection": "cancellare la connessione VPN",
+    "label.delete.VPN.customer.gateway": "cancellare il Gateway VPN del Cliente",
+    "label.delete.VPN.gateway": "cancellare un Gateway VPN",
+    "label.delete.acl.list": "Delete ACL List",
+    "label.delete.affinity.group": "Cancellare Gruppo di Affinità",
+    "label.delete.alerts": "Cancella allarmi",
+    "label.delete.baremetal.rack.configuration": "Delete Baremetal Rack Configuration",
+    "label.delete.ciscoASA1000v": "Delete CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Delete CiscoVNMC resource",
+    "label.delete.events": "Cancella eventi",
+    "label.delete.gateway": "Rimuovere il gateway",
+    "label.delete.internal.lb": "Delete Internal LB",
+    "label.delete.portable.ip.range": "Delete Portable IP Range",
+    "label.delete.profile": "Delete Profile",
+    "label.delete.project": "Cancellare progetto",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Delete Secondary Staging Store",
+    "label.delete.ucs.manager": "Delete UCS Manager",
+    "label.delete.vpn.user": "Cancellare utente VPN",
+    "label.deleting.failed": "Cancellazione Fallita",
+    "label.deleting.processing": "Cancellazione in corso...",
+    "label.deny": "Deny",
+    "label.deployment.planner": "Deployment planner",
+    "label.description": "Descrizione",
+    "label.destination.physical.network.id": "ID della rete fisica di destinazione",
+    "label.destination.zone": "Zona di destinazione",
+    "label.destroy": "Distruggere",
+    "label.destroy.router": "Distruggere il router",
+    "label.destroy.vm.graceperiod": "Destroy VM Grace Period",
+    "label.detaching.disk": "Scollegamento Disco",
+    "label.details": "Dettagli",
+    "label.device.id": "ID Dispositivo",
+    "label.devices": "Device",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Direct Attached Public IP",
+    "label.direct.ips": "Indirizzi IP di Rete condivisi",
+    "label.disable.autoscale": "Disable Autoscale",
+    "label.disable.host": "Disable Host",
+    "label.disable.network.offering": "Disable network offering",
+    "label.disable.provider": "Disabilitare il provider",
+    "label.disable.vnmc.provider": "Disable VNMC provider",
+    "label.disable.vpc.offering": "Disable VPC offering",
+    "label.disable.vpn": "Disabilitare VPN",
+    "label.disabled": "Disabilitato",
+    "label.disabling.vpn.access": "Disabilitare VPN",
+    "label.disassociate.profile.blade": "Disassociate Profile from Blade",
+    "label.disbale.vnmc.device": "Disable VNMC device",
+    "label.disk.allocated": "Disk Allocated",
+    "label.disk.bytes.read.rate": "Disk Read Rate (BPS)",
+    "label.disk.bytes.write.rate": "Disk Write Rate (BPS)",
+    "label.disk.iops.max": "Max IOPS",
+    "label.disk.iops.min": "Min IOPS",
+    "label.disk.iops.read.rate": "Disk Read Rate (IOPS)",
+    "label.disk.iops.total": "IOPS Totali",
+    "label.disk.iops.write.rate": "Disk Write Rate (IOPS)",
+    "label.disk.offering": "Offerta Disco",
+    "label.disk.offering.details": "Disk offering details",
+    "label.disk.provisioningtype": "Tipo di Provisioning",
+    "label.disk.read.bytes": "Disk Read (Bytes)",
+    "label.disk.read.io": "Disk Read (IO)",
+    "label.disk.size": "Disk Size",
+    "label.disk.size.gb": "Disk Size (in GB)",
+    "label.disk.total": "Disk Total",
+    "label.disk.volume": "Disk Volume",
+    "label.disk.write.bytes": "Disk Write (Bytes)",
+    "label.disk.write.io": "Disk Write (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Display Name",
+    "label.display.text": "Display Text",
+    "label.distributedrouter": "Distributed Router",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Dominio",
+    "label.domain.admin": "Amministratore di Dominio",
+    "label.domain.details": "Domain details",
+    "label.domain.id": "ID del Dominio",
+    "label.domain.lower": "domain",
+    "label.domain.name": "Nome del Dominio",
+    "label.domain.router": "Router di Dominio",
+    "label.domain.suffix": "Suffisso DNS (es. xyz.com)",
+    "label.done": "Fatto",
+    "label.double.quotes.are.not.allowed": "Doppi apici non consentiti",
+    "label.download.progress": "Avanzamento del Download",
+    "label.drag.new.position": "Trascina nella nuova posizione",
+    "label.duration.in.sec": "Duration (in sec)",
+    "label.dynamically.scalable": "Dynamically Scalable",
+    "label.edit": "Modifica",
+    "label.edit.acl.rule": "Edit ACL rule",
+    "label.edit.affinity.group": "Edit Affinity Group",
+    "label.edit.lb.rule": "Modifica regola LB",
+    "label.edit.network.details": "Modificare le impostazioni di rete",
+    "label.edit.project.details": "Modificare i dettagli del progetto",
+    "label.edit.region": "Edit Region",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Edit rule",
+    "label.edit.secondary.ips": "Modifica IP Secondari",
+    "label.edit.tags": "Modifica dei tag",
+    "label.edit.traffic.type": "Modifica del tipo di traffico",
+    "label.edit.vpc": "Modificare VPC",
+    "label.egress.default.policy": "Egress Default Policy",
+    "label.egress.rule": "Regola d'uscita",
+    "label.egress.rules": "Regole d'uscita",
+    "label.elastic": "Elastic",
+    "label.elastic.IP": "Elastic IP",
+    "label.elastic.LB": "Elastic LB",
+    "label.email": "Email",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Enable Autoscale",
+    "label.enable.host": "Enable Host",
+    "label.enable.network.offering": "Enable network offering",
+    "label.enable.provider": "Abilitare il provider",
+    "label.enable.s3": "Abilitare il Secondary Storage di tipo S3",
+    "label.enable.swift": "Abilitare Swift",
+    "label.enable.vnmc.device": "Enable VNMC device",
+    "label.enable.vnmc.provider": "Enable VNMC provider",
+    "label.enable.vpc.offering": "Enable VPC offering",
+    "label.enable.vpn": "Abilitare VPN",
+    "label.enabling.vpn": "Abilitazione della VPN",
+    "label.enabling.vpn.access": "Abilitazione dell'Accesso VPN",
+    "label.end.IP": "Indirizzo IP finale",
+    "label.end.port": "End Port",
+    "label.end.reserved.system.IP": "Indirizzo IP finale riservato di sistema",
+    "label.end.vlan": "End VLAN",
+    "label.end.vxlan": "End VXLAN",
+    "label.endpoint": "Dispositivo",
+    "label.endpoint.or.operation": "Endpoint or Operation",
+    "label.enter.token": "Inserire il token",
+    "label.error": "Errore",
+    "label.error.code": "Error Code",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "ESX/ESXi Host",
+    "label.event": "Event",
+    "label.event.archived": "Event Archived",
+    "label.event.deleted": "Event Deleted",
+    "label.every": "Every",
+    "label.example": "Esempio",
+    "label.expunge": "Expunge",
+    "label.external.link": "Link Esterno",
+    "label.extractable": "Estraibile",
+    "label.extractable.lower": "extractable",
+    "label.f5": "F5",
+    "label.f5.details": "F5 details",
+    "label.failed": "Errore",
+    "label.featured": "Featured",
+    "label.fetch.latest": "Fetch latest",
+    "label.filterBy": "Filter by",
+    "label.fingerprint": "FingerPrint",
+    "label.firewall": "Firewall",
+    "label.first.name": "Nome",
+    "label.firstname.lower": "firstname",
+    "label.format": "Formato",
+    "label.format.lower": "format",
+    "label.friday": "Venerdì",
+    "label.full": "Completo",
+    "label.full.path": "Path completo",
+    "label.gateway": "Gateway",
+    "label.general.alerts": "General Alerts",
+    "label.generating.url": "Generating URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS Configuration",
+    "label.gluster.volume": "Volume",
+    "label.go.step.2": "Go to Step 2",
+    "label.go.step.3": "Go to Step 3",
+    "label.go.step.4": "Go to Step 4",
+    "label.go.step.5": "Go to Step 5",
+    "label.gpu": "GPU",
+    "label.group": "Group",
+    "label.group.by.account": "Group by account",
+    "label.group.by.cluster": "Group by cluster",
+    "label.group.by.pod": "Group by pod",
+    "label.group.by.zone": "Group by zone",
+    "label.group.optional": "Group (Optional)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Assigned load balancing",
+    "label.gslb.assigned.lb.more": "Assign more load balancing",
+    "label.gslb.delete": "Delete GSLB",
+    "label.gslb.details": "GSLB details",
+    "label.gslb.domain.name": "GSLB Domain Name",
+    "label.gslb.lb.details": "Load balancing details",
+    "label.gslb.lb.remove": "Remove load balancing from this GSLB",
+    "label.gslb.lb.rule": "Load balancing rule",
+    "label.gslb.service": "GSLB service",
+    "label.gslb.service.private.ip": "GSLB service Private IP",
+    "label.gslb.service.public.ip": "GSLB service Public IP",
+    "label.gslb.servicetype": "Service Type",
+    "label.guest": "Guest",
+    "label.guest.cidr": "Guest CIDR",
+    "label.guest.end.ip": "Indirizzo IP guest finale",
+    "label.guest.gateway": "Guest Gateway",
+    "label.guest.ip": "Guest IP Address",
+    "label.guest.ip.range": "Guest IP Range",
+    "label.guest.netmask": "Guest Netmask",
+    "label.guest.network.details": "Guest network details",
+    "label.guest.networks": "Reti guest",
+    "label.guest.start.ip": "Indirizzo IP guest iniziale",
+    "label.guest.traffic": "Traffico della rete Guest",
+    "label.guest.traffic.vswitch.name": "Guest Traffic vSwitch Name",
+    "label.guest.traffic.vswitch.type": "Guest Traffic vSwitch Type",
+    "label.guest.type": "Tipo di Guest",
+    "label.ha.enabled": "HA Enabled",
+    "label.health.check": "Health Check",
+    "label.health.check.advanced.options": "Advanced Options:",
+    "label.health.check.configurations.options": "Configuration Options:",
+    "label.health.check.interval.in.sec": "Health Check Interval (in sec)",
+    "label.health.check.message.desc": "Your load balancer will automatically perform health checks on your cloudstack instances and only route traffic to instances that pass the health check",
+    "label.health.check.wizard": "Health Check Wizard",
+    "label.healthy.threshold": "Healthy Threshold",
+    "label.help": "Help",
+    "label.hide.ingress.rule": "Hide Ingress Rule",
+    "label.hints": "Suggerimenti",
+    "label.home": "Home",
+    "label.host": "Host",
+    "label.host.MAC": "MAC del sistema host",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Host Name",
+    "label.host.tag": "Host Tag",
+    "label.host.tags": "Host Tags",
+    "label.hosts": "Hosts",
+    "label.hourly": "Hourly",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Traffic Label",
+    "label.hypervisor": "Hypervisor",
+    "label.hypervisor.capabilities": "Funzionalità del Hypervisor",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Snapshot Reserve",
+    "label.hypervisor.type": "Hypervisor Type",
+    "label.hypervisor.version": "Versione hypervisor",
+    "label.hypervisors": "Hypervisor",
+    "label.id": "ID",
+    "label.info": "Info",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Ingress Rule",
+    "label.initiated.by": "Initiated By",
+    "label.inside.port.profile": "Inside Port Profile",
+    "label.installWizard.addClusterIntro.subtitle": "Che cosa è un cluster?",
+    "label.installWizard.addClusterIntro.title": "Let&rsquo;s aggiungere un cluster",
+    "label.installWizard.addHostIntro.subtitle": "Che cosa è un host?",
+    "label.installWizard.addHostIntro.title": "Let&rsquo;s aggiungere un host",
+    "label.installWizard.addPodIntro.subtitle": "Che cosa è un pod?",
+    "label.installWizard.addPodIntro.title": "Let&rsquo;s aggiungere un pod",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Che cosa è un primary storage?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Let&rsquo;s aggiungere primary storage",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Che cosa è un secondary storage?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Let&rsquo;s aggiungere secondary storage",
+    "label.installWizard.addZone.title": "Aggiungere una zona",
+    "label.installWizard.addZoneIntro.subtitle": "Che cosa è una zona?",
+    "label.installWizard.addZoneIntro.title": "Let&rsquo;s aggiungere una zone",
+    "label.installWizard.click.launch": "Fare click sul pulsante di avvio.",
+    "label.installWizard.subtitle": "Questa guida fornisce supporto nelle attività di configurazione di una installazione CloudStack&#8482",
+    "label.installWizard.title": "Ciao e Benvenuti nel mondo di CloudStack&#8482",
+    "label.instance": "Istanza",
+    "label.instance.limits": "Limiti dell'Istanza",
+    "label.instance.name": "Nome dell'Istanza",
+    "label.instance.port": "Instance Port",
+    "label.instance.scaled.up": "Instance scaled to the requested offering",
+    "label.instances": "Istanze",
+    "label.instanciate.template.associate.profile.blade": "Instanciate Template and Associate Profile to Blade",
+    "label.intermediate.certificate": "Intermediate certificate {0}",
+    "label.internal.dns.1": "DNS 1 Interno",
+    "label.internal.dns.2": "DNS2 Interno",
+    "label.internal.lb": "Internal LB",
+    "label.internal.lb.details": "Internal LB details",
+    "label.internal.name": "Nome Interno",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "Interval Type",
+    "label.introduction.to.cloudstack": "Introduzione a CloudStack&#8482",
+    "label.invalid.integer": "Invalid Integer",
+    "label.invalid.number": "Invalid Number",
+    "label.invitations": "Inviti",
+    "label.invite": "Invito",
+    "label.invite.to": "Invito a",
+    "label.invited.accounts": "Utenti invitati",
+    "label.ip": "Indirizzo IP",
+    "label.ip.address": "Indirizzo IP",
+    "label.ip.allocations": "IP Allocations",
+    "label.ip.limits": "Public IP Limits",
+    "label.ip.or.fqdn": "IP o FQDN",
+    "label.ip.range": "IP Range",
+    "label.ip.ranges": "Intervalli di indirizzi IP",
+    "label.ipaddress": "Indirizzo IP",
+    "label.ips": "Indirizzi IP",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 End IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4 Netmask",
+    "label.ipv4.start.ip": "IPv4 Start IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP Address",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 End IP",
+    "label.ipv6.gateway": "IPv6 Gateway",
+    "label.ipv6.start.ip": "IPv6 Start IP",
+    "label.is.default": "E' Default",
+    "label.is.redundant.router": "Redundant",
+    "label.is.shared": "E' Condiviso",
+    "label.is.system": "Is System",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO Boot",
+    "label.isolated.networks": "Reti isolate",
+    "label.isolation.method": "Metodo di isolamento",
+    "label.isolation.mode": "Modalità di Isolamento",
+    "label.isolation.uri": "URI di isolamento",
+    "label.item.listing": "Item listing",
+    "label.japanese.keyboard": "Japanese keyboard",
+    "label.keep": "Keep",
+    "label.keep.colon": "Keep:",
+    "label.key": "Key",
+    "label.keyboard.language": "Keyboard language",
+    "label.keyboard.type": "Tipo di tastiera",
+    "label.kvm.traffic.label": "Etichetta del traffico via KVM",
+    "label.label": "Label",
+    "label.lang.arabic": "Arabo",
+    "label.lang.brportugese": "Brazilian Portugese",
+    "label.lang.catalan": "Catalan",
+    "label.lang.chinese": "Chinese (Simplified)",
+    "label.lang.dutch": "Dutch (Netherlands)",
+    "label.lang.english": "Inglese",
+    "label.lang.french": "French",
+    "label.lang.german": "German",
+    "label.lang.hungarian": "Hungarian",
+    "label.lang.italian": "Italian",
+    "label.lang.japanese": "Japanese",
+    "label.lang.korean": "Korean",
+    "label.lang.norwegian": "Norwegian",
+    "label.lang.polish": "Polish",
+    "label.lang.russian": "Russian",
+    "label.lang.spanish": "Spanish",
+    "label.last.disconnected": "Last Disconnected",
+    "label.last.name": "Last Name",
+    "label.lastname.lower": "lastname",
+    "label.latest.events": "Ultimi eventi",
+    "label.launch": "Avvio",
+    "label.launch.vm": "Avviare una VM",
+    "label.launch.zone": "Launch zone",
+    "label.lb.algorithm.leastconn": "Least connections",
+    "label.lb.algorithm.roundrobin": "Round-robin",
+    "label.lb.algorithm.source": "Sorgente",
+    "label.ldap.configuration": "Configurazione LDAP",
+    "label.ldap.group.name": "LDAP Group",
+    "label.ldap.link.type": "Type",
+    "label.ldap.port": "Porta LDAP",
+    "label.level": "Livello",
+    "label.link.domain.to.ldap": "Link Domain to LDAP",
+    "label.linklocal.ip": "Link Local IP Address",
+    "label.load.balancer": "Load Balancer",
+    "label.load.balancer.type": "Load Balancer Type",
+    "label.load.balancing": "Bilanciamento di Carico",
+    "label.load.balancing.policies": "Politiche di Bilanciamento di Carico",
+    "label.loading": "Loading",
+    "label.local": "Local",
+    "label.local.file": "Local file",
+    "label.local.storage": "Storage locale",
+    "label.local.storage.enabled": "Enable local storage for User VMs",
+    "label.local.storage.enabled.system.vms": "Enable local storage for System VMs",
+    "label.login": "Login",
+    "label.logout": "Logout",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC Traffic Label",
+    "label.make.project.owner": "Make account project owner",
+    "label.make.redundant": "Rendi ridondante",
+    "label.manage": "Manage",
+    "label.manage.resources": "Gestione Risorse",
+    "label.managed": "Managed",
+    "label.management": "Gestione",
+    "label.management.ips": "Indirizzo IP di Management",
+    "label.management.server": "Management Server",
+    "label.max.cpus": "Max. CPU cores",
+    "label.max.guest.limit": "Limite max di guest",
+    "label.max.instances": "Max Instances",
+    "label.max.memory": "Max. memory (MiB)",
+    "label.max.networks": "Numero Max di reti",
+    "label.max.primary.storage": "Max. primary (GiB)",
+    "label.max.public.ips": "Numero max di indirizzi IP pubblici",
+    "label.max.secondary.storage": "Max. secondary (GiB)",
+    "label.max.snapshots": "Numero max di snapshot",
+    "label.max.templates": "Numero max di template",
+    "label.max.vms": "Numero max di VM utente",
+    "label.max.volumes": "Numero max di volumi",
+    "label.max.vpcs": "Numero max di VPC",
+    "label.maximum": "Maximum",
+    "label.may.continue": "E' ora possibile continuare.",
+    "label.md5.checksum": "Checksum MD5",
+    "label.memory": "Memory",
+    "label.memory.allocated": "Memory Allocated",
+    "label.memory.limits": "Memory limits (MiB)",
+    "label.memory.mb": "Memoria (in MB)",
+    "label.memory.total": "Memory Total",
+    "label.memory.used": "Memory Used",
+    "label.menu.accounts": "Utenti",
+    "label.menu.alerts": "Alerts",
+    "label.menu.all.accounts": "All Accounts",
+    "label.menu.all.instances": "All Instances",
+    "label.menu.community.isos": "Community ISOs",
+    "label.menu.community.templates": "Community Templates",
+    "label.menu.configuration": "Configurazione",
+    "label.menu.dashboard": "Dashboard",
+    "label.menu.destroyed.instances": "Destroyed Instances",
+    "label.menu.disk.offerings": "Disk Offerings",
+    "label.menu.domains": "Domains",
+    "label.menu.events": "Events",
+    "label.menu.featured.isos": "Featured ISOs",
+    "label.menu.featured.templates": "Featured Templates",
+    "label.menu.global.settings": "Global Settings",
+    "label.menu.infrastructure": "Infrastruttura",
+    "label.menu.instances": "Istanze",
+    "label.menu.ipaddresses": "IP Addresses",
+    "label.menu.isos": "ISOs",
+    "label.menu.my.accounts": "My Accounts",
+    "label.menu.my.instances": "My Instances",
+    "label.menu.my.isos": "My ISOs",
+    "label.menu.my.templates": "My Templates",
+    "label.menu.network": "Network",
+    "label.menu.network.offerings": "Network Offerings",
+    "label.menu.physical.resources": "Physical Resources",
+    "label.menu.regions": "Regions",
+    "label.menu.running.instances": "Running Instances",
+    "label.menu.security.groups": "Security Groups",
+    "label.menu.service.offerings": "Service Offerings",
+    "label.menu.snapshots": "Snapshots",
+    "label.menu.sshkeypair": "SSH KeyPair",
+    "label.menu.stopped.instances": "Stopped Instances",
+    "label.menu.storage": "Storage",
+    "label.menu.system": "System",
+    "label.menu.system.service.offerings": "Offerte di Sistema",
+    "label.menu.system.vms": "System VMs",
+    "label.menu.templates": "Template",
+    "label.menu.virtual.appliances": "Virtual Appliances",
+    "label.menu.virtual.resources": "Virtual Resources",
+    "label.menu.volumes": "Volumes",
+    "label.menu.vpc.offerings": "VPC Offerings",
+    "label.metrics": "Metrics",
+    "label.metrics.allocated": "Allocato",
+    "label.metrics.clusters": "Cluster",
+    "label.metrics.cpu.allocated": "CPU Allocation",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "CPU Usage",
+    "label.metrics.cpu.used.avg": "Used",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "Allocato",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Read",
+    "label.metrics.disk.size": "Size",
+    "label.metrics.disk.storagetype": "Type",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Unallocated",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "Used",
+    "label.metrics.disk.write": "Write",
+    "label.metrics.hosts": "Hosts",
+    "label.metrics.memory.allocated": "Mem Allocation",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Mem Usage",
+    "label.metrics.memory.used.avg": "Used",
+    "label.metrics.name": "Name",
+    "label.metrics.network.read": "Read",
+    "label.metrics.network.usage": "Network Usage",
+    "label.metrics.network.write": "Write",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "Scope",
+    "label.metrics.state": "State",
+    "label.metrics.storagepool": "Storage Pool",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "Migrate instance to",
+    "label.migrate.instance.to.host": "Migrare instance verso un altro host",
+    "label.migrate.instance.to.ps": "Migrare instance verso un altro primary storage",
+    "label.migrate.lb.vm": "Migrate LB VM",
+    "label.migrate.router.to": "Migrate Router to",
+    "label.migrate.systemvm.to": "Migrate System VM to",
+    "label.migrate.to.host": "Migrare verso un host",
+    "label.migrate.to.storage": "Migrare verso uno storage",
+    "label.migrate.volume": "Migrate Volume",
+    "label.migrate.volume.to.primary.storage": "Migrare un volume verso un altro primary storage",
+    "label.min.instances": "Min Instances",
+    "label.min.past.the.hr": "min past the hr",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "minute(s) past the hour",
+    "label.minutes.past.hour": "minutes(s) past the hour",
+    "label.mode": "Modalità",
+    "label.monday": "Monday",
+    "label.monthly": "Monthly",
+    "label.more.templates": "More Templates",
+    "label.move.down.row": "Sposta giù di una riga",
+    "label.move.to.bottom": "Sposta giù alla fine",
+    "label.move.to.top": "Sposta in su all'inizio",
+    "label.move.up.row": "Sposta su di una riga",
+    "label.my.account": "My Account",
+    "label.my.network": "La mia rete",
+    "label.my.templates": "I miei template",
+    "label.na": "N/A",
+    "label.name": "Name",
+    "label.name.lower": "name",
+    "label.name.optional": "Name (Optional)",
+    "label.nat.port.range": "Intervallo di porte NAT",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Netmask",
+    "label.netscaler.details": "NetScaler details",
+    "label.network": "Network",
+    "label.network.ACL": "ACL di rete",
+    "label.network.ACL.total": "Totale ACL di rete",
+    "label.network.ACLs": "ACL di rete",
+    "label.network.addVM": "Add network to VM",
+    "label.network.cidr": "Network CIDR",
+    "label.network.desc": "Network Desc",
+    "label.network.details": "Network Details",
+    "label.network.device": "Network Device",
+    "label.network.device.type": "Network Device Type",
+    "label.network.domain": "Network Domain",
+    "label.network.domain.text": "Dominio di Rete",
+    "label.network.id": "Network ID",
+    "label.network.label.display.for.blank.value": "Utilizzare il default gateway",
+    "label.network.limits": "Network limits",
+    "label.network.name": "Network Name",
+    "label.network.offering": "Network Offering",
+    "label.network.offering.details": "Network offering details",
+    "label.network.offering.display.text": "Network Offering Display Text",
+    "label.network.offering.id": "Network Offering ID",
+    "label.network.offering.name": "Network Offering Name",
+    "label.network.rate": "Network Rate (Mb/s)",
+    "label.network.rate.megabytes": "Network Rate (MB/s)",
+    "label.network.read": "Network Read",
+    "label.network.service.providers": "Service Provider di Rete",
+    "label.network.type": "Network Type",
+    "label.network.write": "Network Write",
+    "label.networking.and.security": "Networking e sicurezza",
+    "label.networks": "Reti",
+    "label.new": "Nuovo",
+    "label.new.password": "New Password",
+    "label.new.project": "Nuovo Progetto",
+    "label.new.ssh.key.pair": "New SSH Key Pair",
+    "label.new.vm": "Nuova VM",
+    "label.next": "Next",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS Server",
+    "label.nfs.storage": "NFS Storage",
+    "label.nic.adapter.type": "Tipo di scheda NIC",
+    "label.nicira.controller.address": "Controller Address",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP details",
+    "label.nicira.transportzoneuuid": "Transport Zone Uuid",
+    "label.nics": "NICs",
+    "label.no": "No",
+    "label.no.actions": "No Available Actions",
+    "label.no.alerts": "No Recent Alerts",
+    "label.no.data": "Nessun dato da mostrare",
+    "label.no.errors": "No Recent Errors",
+    "label.no.grouping": "(no grouping)",
+    "label.no.isos": "No available ISOs",
+    "label.no.items": "No Available Items",
+    "label.no.security.groups": "No Available Security Groups",
+    "label.no.thanks": "No grazie",
+    "label.none": "None",
+    "label.not.found": "Not Found",
+    "label.notifications": "Notifiche",
+    "label.num.cpu.cores": "# of CPU Cores",
+    "label.number.of.clusters": "Numero di Cluster",
+    "label.number.of.cpu.sockets": "The Number of CPU Sockets",
+    "label.number.of.hosts": "Numero di Host",
+    "label.number.of.pods": "Numero di Pod",
+    "label.number.of.system.vms": "Numero delle VM di Sistema",
+    "label.number.of.virtual.routers": "Numero dei Router Virtuali",
+    "label.number.of.zones": "Numero di Zone",
+    "label.numretries": "Number of Retries",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "of month",
+    "label.offer.ha": "Offer HA",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight Controller",
+    "label.opendaylight.controllerdetail": "OpenDaylight Controller Details",
+    "label.opendaylight.controllers": "OpenDaylight Controllers",
+    "label.operator": "Operator",
+    "label.optional": "Optional",
+    "label.order": "Ordine",
+    "label.os.preference": "OS Preference",
+    "label.os.type": "OS Type",
+    "label.other": "Other",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Action",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Password",
+    "label.outofbandmanagement.port": "Porta",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Username",
+    "label.override.guest.traffic": "Override Guest-Traffic",
+    "label.override.public.traffic": "Override Public-Traffic",
+    "label.ovm.traffic.label": "OVM traffic label",
+    "label.ovm3.cluster": "Native Clustering",
+    "label.ovm3.pool": "Native Pooling",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "Master Vip IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Owned Public IP Addresses",
+    "label.owner.account": "Owner Account",
+    "label.owner.domain": "Owner Domain",
+    "label.palo.alto.details": "Palo Alto details",
+    "label.parent.domain": "Parent Domain",
+    "label.passive": "Passive",
+    "label.password": "Password",
+    "label.password.enabled": "Password Enabled",
+    "label.password.lower": "password",
+    "label.password.reset.confirm": "Password has been reset to ",
+    "label.path": "Path",
+    "label.perfect.forward.secrecy": "Segretezza di Forward perfetta",
+    "label.permission": "Permission",
+    "label.persistent": "Persistent ",
+    "label.physical.network": "Physical Network",
+    "label.physical.network.ID": "ID della rete fisica",
+    "label.physical.network.name": "Physical network name",
+    "label.ping.path": "Ping Path",
+    "label.planner.mode": "Planner mode",
+    "label.please.complete.the.following.fields": "Please complete the following fields",
+    "label.please.specify.netscaler.info": "Si prega di specificare le informazioni per Netscaler",
+    "label.please.wait": "Please Wait",
+    "label.plugin.details": "Plugin details",
+    "label.plugins": "Plugins",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod Dedicated",
+    "label.pod.name": "Nome del Pod",
+    "label.pods": "Pod",
+    "label.polling.interval.sec": "Polling Interval (in sec)",
+    "label.port": "Porta",
+    "label.port.forwarding": "Port Forwarding",
+    "label.port.forwarding.policies": "Politiche di Port Forwarding",
+    "label.port.range": "Port Range",
+    "label.portable.ip": "Portable IP",
+    "label.portable.ip.range.details": "Portable IP Range details",
+    "label.portable.ip.ranges": "Portable IP Ranges",
+    "label.portable.ips": "Portable IPs",
+    "label.powerstate": "Power State",
+    "label.prev": "Prev",
+    "label.previous": "Precedente",
+    "label.primary.allocated": "Primary Storage Allocated",
+    "label.primary.network": "Primary Network",
+    "label.primary.storage": "Storage Primario",
+    "label.primary.storage.count": "Pool del Primary Storage",
+    "label.primary.storage.limits": "Primary Storage limits (GiB)",
+    "label.primary.used": "Primary Storage Used",
+    "label.private.Gateway": "Gateway Privato",
+    "label.private.interface": "Private Interface",
+    "label.private.ip": "Private IP Address",
+    "label.private.ip.range": "Private IP Range",
+    "label.private.ips": "Private IP Addresses",
+    "label.private.key": "Private Key",
+    "label.private.network": "Rete privata",
+    "label.private.port": "Private Port",
+    "label.private.zone": "Private Zone",
+    "label.privatekey": "PKCS#8 Private Key",
+    "label.profile": "Profile",
+    "label.project": "Project",
+    "label.project.dashboard": "Dashboard di progetto",
+    "label.project.id": "Project ID",
+    "label.project.invite": "Invitare ad un progetto",
+    "label.project.name": "Nome del progetto",
+    "label.project.view": "Vista Progetto",
+    "label.projects": "Progetti",
+    "label.protocol": "Protocol",
+    "label.protocol.number": "Protocol Number",
+    "label.provider": "Provider",
+    "label.providers": "Fornitori",
+    "label.public": "Public",
+    "label.public.interface": "Public Interface",
+    "label.public.ip": "Public IP Address",
+    "label.public.ips": "Public IP Addresses",
+    "label.public.key": "Public Key",
+    "label.public.lb": "Public LB",
+    "label.public.load.balancer.provider": "Public Load Balancer Provider",
+    "label.public.network": "Rete pubblica",
+    "label.public.port": "Public Port",
+    "label.public.traffic": "Public traffic",
+    "label.public.traffic.vswitch.name": "Public Traffic vSwitch Name",
+    "label.public.traffic.vswitch.type": "Public Traffic vSwitch Type",
+    "label.public.zone": "Public Zone",
+    "label.purpose": "Scopo",
+    "label.qos.type": "QoS Type",
+    "label.quickview": "Panoramica rapida",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Quiet Time (in sec)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "Data",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "End Date",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "All Accounts",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Start Date",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "State",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx user",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "Reboot",
+    "label.recent.errors": "Recent Errors",
+    "label.recover.vm": "Recupera la VM",
+    "label.redundant.router": "Redundant Router",
+    "label.redundant.router.capability": "Capacità di ridondanza del router",
+    "label.redundant.state": "Redundant state",
+    "label.redundant.vpc": "Redundant VPC",
+    "label.refresh": "Refresh",
+    "label.refresh.blades": "Refresh Blades",
+    "label.region": "Region",
+    "label.region.details": "Region details",
+    "label.regionlevelvpc": "Region Level VPC",
+    "label.reinstall.vm": "Reinstalla la VM",
+    "label.related": "Related",
+    "label.release.account": "Release from Account",
+    "label.release.account.lowercase": "Release from account",
+    "label.release.dedicated.cluster": "Release Dedicated Cluster",
+    "label.release.dedicated.host": "Release Dedicated Host",
+    "label.release.dedicated.pod": "Release Dedicated Pod",
+    "label.release.dedicated.vlan.range": "Release dedicated VLAN range",
+    "label.release.dedicated.zone": "Release Dedicated Zone",
+    "label.remind.later": "Ricordami in seguito",
+    "label.remove.ACL": "Rimuovere ACL",
+    "label.remove.egress.rule": "Rimuovere una regola d'uscita",
+    "label.remove.from.load.balancer": "Removing instance from load balancer",
+    "label.remove.ingress.rule": "Remove ingress rule",
+    "label.remove.ip.range": "Rimuovere intervallo di indirizzi IP",
+    "label.remove.ldap": "Rimuovi LDAP",
+    "label.remove.network.offering": "Remove network offering",
+    "label.remove.pf": "Rimuovere regola di port forwarding",
+    "label.remove.project.account": "Remove account from project",
+    "label.remove.region": "Remove Region",
+    "label.remove.rule": "Rimuovere regola",
+    "label.remove.ssh.key.pair": "Remove SSH Key Pair",
+    "label.remove.static.nat.rule": "Rimuovere regola di NAT statico",
+    "label.remove.static.route": "Rimuovere una rotta statica",
+    "label.remove.this.physical.network": "Remove this physical network",
+    "label.remove.tier": "Rimuovere un livello",
+    "label.remove.vm.from.lb": "Rimuovere una VM da regola di bilanciamento di carico",
+    "label.remove.vm.load.balancer": "Remove VM from load balancer",
+    "label.remove.vmware.datacenter": "Remove VMware datacenter",
+    "label.remove.vpc": "Rimuovere VPC",
+    "label.remove.vpc.offering": "Remove VPC offering",
+    "label.removing": "Rimozione",
+    "label.removing.user": "Removing User",
+    "label.reource.id": "Resource ID",
+    "label.replace.acl": "Replace ACL",
+    "label.replace.acl.list": "Replace ACL List",
+    "label.required": "Required",
+    "label.requires.upgrade": "Requires Upgrade",
+    "label.reserved.ip.range": "Reserved IP Range",
+    "label.reserved.system.gateway": "Gateway di sistema riservato",
+    "label.reserved.system.ip": "Reserved System IP",
+    "label.reserved.system.netmask": "Netmask di sistema riservata",
+    "label.reset.VPN.connection": "Reset della connessione VPN",
+    "label.reset.ssh.key.pair": "Reset SSH Key Pair",
+    "label.reset.ssh.key.pair.on.vm": "Reset SSH Key Pair on VM",
+    "label.resetVM": "Reset VM",
+    "label.resize.new.offering.id": "New Offering",
+    "label.resize.new.size": "New Size (GB)",
+    "label.resize.shrink.ok": "Shrink OK",
+    "label.resource": "Resource",
+    "label.resource.limit.exceeded": "Resource Limit Exceeded",
+    "label.resource.limits": "Resource Limits",
+    "label.resource.name": "Resource Name",
+    "label.resource.state": "Stato della risorsa",
+    "label.resources": "Resources",
+    "label.response.timeout.in.sec": "Response Timeout (in sec)",
+    "label.restart.network": "Riavviare il servizio di rete",
+    "label.restart.required": "E' necessario un riavvio",
+    "label.restart.vpc": "Riavviare VPC",
+    "label.restore": "Restore",
+    "label.retry.interval": "Retry Interval",
+    "label.review": "Riesaminare",
+    "label.revoke.project.invite": "Revocare un invit",
+    "label.role": "Role",
+    "label.roles": "Ruoli",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Root certificate",
+    "label.root.disk.controller": "Controller del disco root",
+    "label.root.disk.offering": "Root Disk Offering",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "Router VM Scaled Up",
+    "label.routing": "Routing",
+    "label.routing.host": "Routing Host",
+    "label.rule": "Rule",
+    "label.rule.number": "Rule Number",
+    "label.rules": "Regole",
+    "label.running.vms": "Running VMs",
+    "label.s3.access_key": "Access Key",
+    "label.s3.bucket": "Bucket",
+    "label.s3.connection_timeout": "Tempo di scadenza connessione",
+    "label.s3.endpoint": "Dispositivo",
+    "label.s3.max_error_retry": "Numero massimo di tentativi a seguito di errore",
+    "label.s3.nfs.path": "Percorso S3 NFS",
+    "label.s3.nfs.server": "S3 NFS Server",
+    "label.s3.secret_key": "Secret Key",
+    "label.s3.socket_timeout": "Tempo di scadenza del Socket",
+    "label.s3.use_https": "Utilizzare HTTPS",
+    "label.saml.enable": "Authorize SAML SSO",
+    "label.saml.entity": "Identity Provider",
+    "label.saturday": "Saturday",
+    "label.save": "Save",
+    "label.save.and.continue": "Salvare e proseguire",
+    "label.save.changes": "Save changes",
+    "label.saving.processing": "Saving....",
+    "label.scale.up.policy": "SCALE UP POLICY",
+    "label.scaledown.policy": "ScaleDown Policy",
+    "label.scaleup.policy": "ScaleUp Policy",
+    "label.scope": "Scope",
+    "label.search": "Search",
+    "label.secondary.ips": "IP Secondari",
+    "label.secondary.isolated.vlan.id": "Secondary Isolated VLAN ID",
+    "label.secondary.staging.store": "Secondary Staging Store",
+    "label.secondary.staging.store.details": "Secondary Staging Store details",
+    "label.secondary.storage": "Storage Secondario",
+    "label.secondary.storage.count": "Pool del Secondary Storage",
+    "label.secondary.storage.details": "Secondary storage details",
+    "label.secondary.storage.limits": "Secondary Storage limits (GiB)",
+    "label.secondary.storage.vm": "VM di Secondary Storage",
+    "label.secondary.used": "Secondary Storage Used",
+    "label.secret.key": "Secret Key",
+    "label.security.group": "Security Group",
+    "label.security.group.name": "Security Group Name",
+    "label.security.groups": "Security Groups",
+    "label.security.groups.enabled": "Security Groups Enabled",
+    "label.select": "Selezionare",
+    "label.select-view": "Selezionare la vista",
+    "label.select.a.template": "Selezionare un template",
+    "label.select.a.zone": "Selezionare una zone",
+    "label.select.instance": "Selezionare una instanza",
+    "label.select.instance.to.attach.volume.to": "Selezionare l'instanza da collegare al volume",
+    "label.select.iso.or.template": "Selezionare immagine ISO o template",
+    "label.select.offering": "Seleziona l'offerta",
+    "label.select.project": "Selezionare un Progetto",
+    "label.select.region": "Select region",
+    "label.select.template": "Select Template",
+    "label.select.tier": "Selezionare il Livello",
+    "label.select.vm.for.static.nat": "Selezionare una VM per il NAT statico",
+    "label.sent": "Sent",
+    "label.server": "Server",
+    "label.service.capabilities": "Capacità di Servizio",
+    "label.service.offering": "Service Offering",
+    "label.service.offering.details": "Service offering details",
+    "label.service.state": "Stato del Servizio",
+    "label.services": "Services",
+    "label.session.expired": "Session Expired",
+    "label.set.default.NIC": "Set default NIC",
+    "label.set.up.zone.type": "Configurazione del tipo di Zona",
+    "label.settings": "Settings",
+    "label.setup": "Installazione",
+    "label.setup.network": "Set up Network",
+    "label.setup.zone": "Set up Zone",
+    "label.shared": "Shared",
+    "label.show.advanced.settings": "Show advanced settings",
+    "label.show.ingress.rule": "Show Ingress Rule",
+    "label.shutdown.provider": "Arresto del provider",
+    "label.simplified.chinese.keyboard": "Simplified Chinese keyboard",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Size",
+    "label.skip.guide": "Se si ha familiarità con CloudStack per utilizzi precedenti, si può saltare questa guida",
+    "label.smb.domain": "Dominio SMB",
+    "label.smb.password": "Password SMB",
+    "label.smb.username": "Username SMB",
+    "label.snapshot": "Snapshot",
+    "label.snapshot.limits": "Snapshot Limits",
+    "label.snapshot.name": "Snapshot Name",
+    "label.snapshot.s": "Snapshots",
+    "label.snapshot.schedule": "Set up Recurring Snapshot",
+    "label.snapshots": "Snapshots",
+    "label.sockets": "CPU Socket",
+    "label.source.ip.address": "Source IP Address",
+    "label.source.nat": "Source NAT",
+    "label.source.nat.supported": "SourceNAT Supported",
+    "label.source.port": "Source Port",
+    "label.specify.IP.ranges": "Specificare intervallo di indirizzi IP",
+    "label.specify.vlan": "Specify VLAN",
+    "label.specify.vxlan": "Specify VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX details",
+    "label.ssh.key.pair": "SSH Key Pair",
+    "label.ssh.key.pair.details": "SSH Key Pair Details",
+    "label.ssh.key.pairs": "SSH Key Pairs",
+    "label.standard.us.keyboard": "Standard (US) keyboard",
+    "label.start.IP": "Indirizzo IP iniziale",
+    "label.start.lb.vm": "Start LB VM",
+    "label.start.port": "Start Port",
+    "label.start.reserved.system.IP": "Indirizzo IP iniziale riservato di sistema",
+    "label.start.vlan": "Start VLAN",
+    "label.start.vxlan": "Start VXLAN",
+    "label.state": "State",
+    "label.static.nat": "Static NAT",
+    "label.static.nat.enabled": "NAT Statico Abilitato",
+    "label.static.nat.to": "Static NAT to",
+    "label.static.nat.vm.details": "Dettagli di NAT Statico della VM",
+    "label.static.routes": "Static Routes",
+    "label.statistics": "Statistics",
+    "label.status": "Status",
+    "label.step.1": "Step 1",
+    "label.step.1.title": "Step 1: <strong>Select a Template</strong>",
+    "label.step.2": "Step 2",
+    "label.step.2.title": "Step 2: <strong>Service Offering</strong>",
+    "label.step.3": "Step 3",
+    "label.step.3.title": "Step 3: <strong id=\"step3_label\">Select a Disk Offering</strong>",
+    "label.step.4": "Step 4",
+    "label.step.4.title": "Step 4: <strong>Network</strong>",
+    "label.step.5": "Step 5",
+    "label.step.5.title": "Step 5: <strong>Review</strong>",
+    "label.stickiness": "Stickiness",
+    "label.stickiness.method": "Stickiness method",
+    "label.sticky.cookie-name": "Nome del cookie",
+    "label.sticky.domain": "Dominio",
+    "label.sticky.expire": "Scadenza",
+    "label.sticky.holdtime": "Hold time",
+    "label.sticky.indirect": "Indirect",
+    "label.sticky.length": "Lunghezza",
+    "label.sticky.mode": "Modalità",
+    "label.sticky.name": "Sticky Name",
+    "label.sticky.nocache": "Senza cache",
+    "label.sticky.postonly": "Post only",
+    "label.sticky.prefix": "Prefisso",
+    "label.sticky.request-learn": "Request learn",
+    "label.sticky.tablesize": "Dimensione della tabella",
+    "label.stop": "Stop",
+    "label.stop.lb.vm": "Stop LB VM",
+    "label.stopped.vms": "Stopped VMs",
+    "label.storage": "Storage",
+    "label.storage.pool": "Storage Pool",
+    "label.storage.tags": "Storage Tags",
+    "label.storage.traffic": "Traffico della rete Storage",
+    "label.storage.type": "Storage Type",
+    "label.subdomain.access": "Subdomain Access",
+    "label.submit": "Submit",
+    "label.submitted.by": "[Submitted by: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Succeeded",
+    "label.sunday": "Sunday",
+    "label.super.cidr.for.guest.networks": "Super CIDR per Reti Guest",
+    "label.supported.services": "Servizi Supportati",
+    "label.supported.source.NAT.type": "Tipo di Source NAT supportato",
+    "label.supportsstrechedl2subnet": "Supports Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "Sospendere il Progett",
+    "label.switch.type": "Switch Type",
+    "label.system.capacity": "System Capacity",
+    "label.system.offering": "Offerta del sistema",
+    "label.system.offering.for.router": "System Offering for Router",
+    "label.system.service.offering": "System Service Offering",
+    "label.system.service.offering.details": "System service offering details",
+    "label.system.vm": "System VM",
+    "label.system.vm.details": "System VM details",
+    "label.system.vm.scaled.up": "System VM Scaled Up",
+    "label.system.vm.type": "System VM Type",
+    "label.system.vms": "System VMs",
+    "label.system.wide.capacity": "Capacità del Sistema",
+    "label.tag.key": "Tag Key",
+    "label.tag.value": "Tag Value",
+    "label.tagged": "Tagged",
+    "label.tags": "Tags",
+    "label.target.iqn": "Target IQN",
+    "label.task.completed": "Attività completata",
+    "label.template": "Template",
+    "label.template.limits": "Template Limits",
+    "label.tftp.root.directory": "Tftp root directory",
+    "label.theme.default": "Default Theme",
+    "label.theme.grey": "Custom - Grey",
+    "label.theme.lightblue": "Custom - Light Blue",
+    "label.threshold": "Threshold",
+    "label.thursday": "Thursday",
+    "label.tier": "Livello",
+    "label.tier.details": "Dettagli del livello",
+    "label.time": "Time",
+    "label.time.colon": "Time:",
+    "label.time.zone": "Timezone",
+    "label.timeout": "Timeout",
+    "label.timeout.in.second ": " Timeout (seconds)",
+    "label.timezone": "Timezone",
+    "label.timezone.colon": "Timezone:",
+    "label.token": "Token",
+    "label.total.CPU": "CPU Totali",
+    "label.total.cpu": "CPU Totali",
+    "label.total.hosts": "Host Totali",
+    "label.total.memory": "Memoria Totale",
+    "label.total.of.ip": "Total of IP Addresses",
+    "label.total.of.vm": "Total of VMs",
+    "label.total.storage": "Storage Totale",
+    "label.total.virtual.routers": "Total of Virtual Routers",
+    "label.total.virtual.routers.upgrade": "Total of Virtual Routers that require upgrade",
+    "label.total.vms": "Total VMs",
+    "label.traffic.label": "Etichetta del traffico",
+    "label.traffic.type": "Traffic Type",
+    "label.traffic.types": "Tipi di Traffico",
+    "label.tuesday": "Tuesday",
+    "label.type": "Type",
+    "label.type.id": "Type ID",
+    "label.type.lower": "type",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK keyboard",
+    "label.unavailable": "Unavailable",
+    "label.unhealthy.threshold": "Unhealthy Threshold",
+    "label.unlimited": "Unlimited",
+    "label.untagged": "Untagged",
+    "label.update.project.resources": "Aggiornare le risorse di progetto",
+    "label.update.ssl": " SSL Certificate",
+    "label.update.ssl.cert": " SSL Certificate",
+    "label.updating": "Updating",
+    "label.upgrade.required": "Upgrade is required",
+    "label.upgrade.router.newer.template": "Upgrade Router to Use Newer Template",
+    "label.upload": "Upload",
+    "label.upload.from.local": "Upload from Local",
+    "label.upload.template.from.local": "Upload Template from Local",
+    "label.upload.volume": "Volume di upload",
+    "label.upload.volume.from.local": "Upload Volume from Local",
+    "label.upload.volume.from.url": "Upload volume from URL",
+    "label.url": "URL",
+    "label.usage.interface": "Usage Interface",
+    "label.usage.sanity.result": "Usage Sanity Result",
+    "label.usage.server": "Usage Server",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "Use VM IP:",
+    "label.use.vm.ips": "Usa Indirizzo IP della VM",
+    "label.used": "Used",
+    "label.user": "User",
+    "label.user.data": "User Data",
+    "label.user.details": "User details",
+    "label.user.vm": "User VM",
+    "label.username": "Username",
+    "label.username.lower": "username",
+    "label.users": "Users",
+    "label.vSwitch.type": "vSwitch Type",
+    "label.value": "Value",
+    "label.vcdcname": "Nome DC del vCenter",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter Cluster",
+    "label.vcenter.datacenter": "vCenter Datacenter",
+    "label.vcenter.datastore": "vCenter Datastore",
+    "label.vcenter.host": "vCenter Host",
+    "label.vcenter.password": "vCenter Password",
+    "label.vcenter.username": "vCenter Username",
+    "label.vcipaddress": "Indirizzo IP del vCenter",
+    "label.version": "Version",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Max resolution",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs per GPU",
+    "label.vgpu.remaining.capacity": "Remaining capacity",
+    "label.vgpu.type": "vGPU type",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Vista",
+    "label.view.all": "View all",
+    "label.view.console": "View console",
+    "label.view.more": "View more",
+    "label.view.secondary.ips": "Vedi IP Secondari",
+    "label.viewing": "Visualizzazione",
+    "label.virtual.appliance": "Virtual Appliance",
+    "label.virtual.appliance.details": "Virtual applicance details",
+    "label.virtual.appliances": "Virtual Appliances",
+    "label.virtual.machine": "Virtual Machine",
+    "label.virtual.machines": "Virtual Machines",
+    "label.virtual.network": "Virtual Network",
+    "label.virtual.networking": "Virtual Networking",
+    "label.virtual.router": "Virtual Router",
+    "label.virtual.routers": "Router Virtuali",
+    "label.virtual.routers.group.account": "Virtual Routers group by account",
+    "label.virtual.routers.group.cluster": "Virtual Routers group by cluster",
+    "label.virtual.routers.group.pod": "Virtual Routers group by pod",
+    "label.virtual.routers.group.zone": "Virtual Routers group by zone",
+    "label.vlan": "VLAN",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI Range",
+    "label.vlan.range.details": "VLAN Range details",
+    "label.vlan.ranges": "VLAN Range(s)",
+    "label.vlan.vni.range": "VLAN/VNI Range",
+    "label.vlan.vni.ranges": "VLAN/VNI Range(s)",
+    "label.vm.add": "Add Instance",
+    "label.vm.destroy": "Destroy",
+    "label.vm.display.name": "Nome visualizzato della VM",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "Indirizzo IP della VM",
+    "label.vm.name": "Nome VM",
+    "label.vm.password": "Password of the VM is",
+    "label.vm.reboot": "Reboot",
+    "label.vm.start": "Start",
+    "label.vm.state": "Stato VM",
+    "label.vm.stop": "Stop",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMs",
+    "label.vmsnapshot": "VM Snapshots",
+    "label.vmsnapshot.current": "isCurrent",
+    "label.vmsnapshot.memory": "Snapshot memory",
+    "label.vmsnapshot.parentname": "Parent",
+    "label.vmsnapshot.type": "Type",
+    "label.vmware.datacenter.id": "VMware datacenter ID",
+    "label.vmware.datacenter.name": "VMware datacenter Name",
+    "label.vmware.datacenter.vcenter": "VMware datacenter vcenter",
+    "label.vmware.traffic.label": "Etichetta del traffico via VMware",
+    "label.vnet": "VLAN",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC Devices",
+    "label.volatile": "Volatile",
+    "label.volgroup": "Volume Group",
+    "label.volume": "Volume",
+    "label.volume.details": "Volume details",
+    "label.volume.limits": "Volume Limits",
+    "label.volume.migrated": "Volume migrated",
+    "label.volume.name": "Volume Name",
+    "label.volumes": "Volumes",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Distributed VPC Router",
+    "label.vpc.id": "ID del VPC",
+    "label.vpc.offering": "VPC Offering",
+    "label.vpc.offering.details": "VPC offering details",
+    "label.vpc.router.details": "VPC Router Details",
+    "label.vpc.supportsregionlevelvpc": "Supports Region Level VPC",
+    "label.vpc.virtual.router": "VPC Virtual Router",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "Gateway VPN del Cliente",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "VLAN ID di Controllo",
+    "label.vsmpktvlanid": "VLAN ID del Pacchetto",
+    "label.vsmstoragevlanid": "VLAN ID di Storage",
+    "label.vsphere.managed": "vSphere Managed",
+    "label.vswitch.name": "vSwitch Name",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN Range",
+    "label.waiting": "Waiting",
+    "label.warn": "Warn",
+    "label.warn.upper": "WARN",
+    "label.warning": "Warning",
+    "label.wednesday": "Wednesday",
+    "label.weekly": "Weekly",
+    "label.welcome": "Welcome",
+    "label.welcome.cloud.console": "Welcome to Management Console",
+    "label.what.is.cloudstack": "Che cosa è CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Original XS Version is 6.1+",
+    "label.xenserver.traffic.label": "Etichetta del traffico via XenServer",
+    "label.yes": "Sì",
+    "label.zone": "Zone",
+    "label.zone.dedicated": "Zone Dedicated",
+    "label.zone.details": "Dettagli della Zona",
+    "label.zone.id": "Zone ID",
+    "label.zone.lower": "zone",
+    "label.zone.name": "Zone Name",
+    "label.zone.step.1.title": "Step 1: <strong>Select a Network</strong>",
+    "label.zone.step.2.title": "Step 2: <strong>Add a Zone</strong>",
+    "label.zone.step.3.title": "Step 3: <strong>Add a Pod</strong>",
+    "label.zone.step.4.title": "Step 4: <strong>Add an IP range</strong>",
+    "label.zone.type": "Tipo di Zona",
+    "label.zone.wide": "Zone-Wide",
+    "label.zoneWizard.trafficType.guest": "Guest: Traffico di rete tra le virtual machine dell'utente finale",
+    "label.zoneWizard.trafficType.management": "Management: Traffico di rete tra le risorse interne di CloudStack, incluso qualsiasi componente che comunichi con il Management Server, come ad esempio gli host e le VM di Sistema di CloudStack",
+    "label.zoneWizard.trafficType.public": "Public: Traffico di rete tra la rete internet e le virtual machine nell'infrastruttura cloud.",
+    "label.zoneWizard.trafficType.storage": "Storage: Traffico di rete tra i server di primary e secondary storage, come ad esempio i template delle VM e le operazioni di snapshot",
+    "label.zones": "Zone",
+    "managed.state": "Managed State",
+    "message.XSTools61plus.update.failed": "Failed to update Original XS Version is 6.1+ field. Error:",
+    "message.Zone.creation.complete": "Creazione zona completata",
+    "message.acquire.ip.nic": "Prego confermare che si vuole acquisire un nuovo IP secondario per questa NIC.<br/>NOTA: Deve essere configurato manualmente il nuovo IP secondario acquisito all'interno della virtual machine.",
+    "message.acquire.new.ip": "Si prega di confermare di voler acquisire un nuovo indirizzo IP per questa rete.",
+    "message.acquire.new.ip.vpc": "Si prega di confermare di voler acquisire un nuovo indirizzo IP per questo VPC.",
+    "message.acquire.public.ip": "Please select a zone from which you want to acquire your new IP from.",
+    "message.action.cancel.maintenance": "Your host has been successfully canceled for maintenance. This process can take up to several minutes.",
+    "message.action.cancel.maintenance.mode": "Please confirm that you want to cancel this maintenance.",
+    "message.action.change.service.warning.for.instance": "Your instance must be stopped before attempting to change its current service offering.",
+    "message.action.change.service.warning.for.router": "Your router must be stopped before attempting to change its current service offering.",
+    "message.action.delete.ISO": "Please confirm that you want to delete this ISO.",
+    "message.action.delete.ISO.for.all.zones": "The ISO is used by all zones. Please confirm that you want to delete it from all zones.",
+    "message.action.delete.cluster": "Please confirm that you want to delete this cluster.",
+    "message.action.delete.disk.offering": "Please confirm that you want to delete this disk offering.",
+    "message.action.delete.domain": "Please confirm that you want to delete this domain.",
+    "message.action.delete.external.firewall": "Please confirm that you would like to remove this external firewall. Warning: If you are planning to add back the same external firewall, you must reset usage data on the device.",
+    "message.action.delete.external.load.balancer": "Please confirm that you would like to remove this external load balancer. Warning: If you are planning to add back the same external load balancer, you must reset usage data on the device.",
+    "message.action.delete.ingress.rule": "Please confirm that you want to delete this ingress rule.",
+    "message.action.delete.network": "Please confirm that you want to delete this network.",
+    "message.action.delete.nexusVswitch": "Si prega di confermare di voler cancellare questo nexus 1000v",
+    "message.action.delete.nic": "Prego conferma che si vuole rimuovere questa NIC, questo rimuoverà anche le reti associate dalla VM.",
+    "message.action.delete.physical.network": "Si prega di confermare di voler cancellare questa rete fisica",
+    "message.action.delete.pod": "Please confirm that you want to delete this pod.",
+    "message.action.delete.primary.storage": "Please confirm that you want to delete this primary storage.",
+    "message.action.delete.secondary.storage": "Please confirm that you want to delete this secondary storage.",
+    "message.action.delete.security.group": "Please confirm that you want to delete this security group.",
+    "message.action.delete.service.offering": "Please confirm that you want to delete this service offering.",
+    "message.action.delete.snapshot": "Please confirm that you want to delete this snapshot.",
+    "message.action.delete.system.service.offering": "Si prega di confermare di voler cancellare questa offerta di servizio di sistema.",
+    "message.action.delete.template": "Please confirm that you want to delete this template.",
+    "message.action.delete.template.for.all.zones": "The template is used by all zones. Please confirm that you want to delete it from all zones.",
+    "message.action.delete.volume": "Please confirm that you want to delete this volume.",
+    "message.action.delete.zone": "Please confirm that you want to delete this zone.",
+    "message.action.destroy.instance": "Please confirm that you want to destroy this instance.",
+    "message.action.destroy.systemvm": "Please confirm that you want to destroy this System VM.",
+    "message.action.disable.cluster": "Please confirm that you want to disable this cluster.",
+    "message.action.disable.nexusVswitch": "Si prega di confermare di voler disabilitare questo nexus 1000v",
+    "message.action.disable.physical.network": "Si prega di confermare di voler disabilitare questa rete fisica.",
+    "message.action.disable.pod": "Please confirm that you want to disable this pod.",
+    "message.action.disable.static.NAT": "Please confirm that you want to disable static NAT.",
+    "message.action.disable.zone": "Please confirm that you want to disable this zone.",
+    "message.action.download.iso": "Si prega di confermare di voler scaricare questa immagine ISO.",
+    "message.action.download.template": "Si prega di confermare di voler scaricare questo template.",
+    "message.action.downloading.template": "Downloading template.",
+    "message.action.enable.cluster": "Please confirm that you want to enable this cluster.",
+    "message.action.enable.maintenance": "Your host has been successfully prepared for maintenance.  This process can take up to several minutes or longer depending on how many VMs are currently on this host.",
+    "message.action.enable.nexusVswitch": "Si prega di confermare di voler abilitare questo nexus 1000v",
+    "message.action.enable.physical.network": "Si prega di confermare l'intenzione di abilitare questa rete fisica.",
+    "message.action.enable.pod": "Please confirm that you want to enable this pod.",
+    "message.action.enable.zone": "Please confirm that you want to enable this zone.",
+    "message.action.expunge.instance": "Please confirm that you want to expunge this instance.",
+    "message.action.force.reconnect": "Your host has been successfully forced to reconnect.  This process can take up to several minutes.",
+    "message.action.host.enable.maintenance.mode": "Enabling maintenance mode will cause a live migration of all running instances on this host to any available host.",
+    "message.action.instance.reset.password": "Please confirm that you want to change the ROOT password for this virtual machine.",
+    "message.action.manage.cluster": "Please confirm that you want to manage the cluster.",
+    "message.action.primarystorage.enable.maintenance.mode": "Warning: placing the primary storage into maintenance mode will cause all VMs using volumes from it to be stopped.  Do you want to continue?",
+    "message.action.reboot.instance": "Please confirm that you want to reboot this instance.",
+    "message.action.reboot.router": "Tutti i servizi forniti da questo router virtuale saranno interrotti. Si prega di confermare di voler riavviare questo router.",
+    "message.action.reboot.systemvm": "Please confirm that you want to reboot this system VM.",
+    "message.action.release.ip": "Please confirm that you want to release this IP.",
+    "message.action.remove.host": "Si prega di confermare di voler rimuovere questo host.",
+    "message.action.reset.password.off": "Your instance currently does not support this feature.",
+    "message.action.reset.password.warning": "Your instance must be stopped before attempting to change its current password.",
+    "message.action.restore.instance": "Please confirm that you want to restore this instance.",
+    "message.action.revert.snapshot": "Please confirm that you want to revert the owning volume to this snapshot.",
+    "message.action.start.instance": "Please confirm that you want to start this instance.",
+    "message.action.start.router": "Please confirm that you want to start this router.",
+    "message.action.start.systemvm": "Please confirm that you want to start this system VM.",
+    "message.action.stop.instance": "Please confirm that you want to stop this instance.",
+    "message.action.stop.router": "Tutti i servizi forniti da questo router virtuale saranno interrotti. Si prega di confermare di voler arrestare questo router.",
+    "message.action.stop.systemvm": "Please confirm that you want to stop this system VM.",
+    "message.action.take.snapshot": "Please confirm that you want to take a snapshot of this volume.",
+    "message.action.unmanage.cluster": "Please confirm that you want to unmanage the cluster.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Please confirm that you want to delete this VM snapshot.",
+    "message.action.vmsnapshot.revert": "Revert VM snapshot",
+    "message.activate.project": "Si è sicuri di voler attivare questo progetto?",
+    "message.add.VPN.gateway": "Si prega di confermare di voler aggiungere un Gateway VPN",
+    "message.add.cluster": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Please specify the following parameters to add a new disk offering",
+    "message.add.domain": "Si prega di specificare il sottodominio che si vuole creare in questo dominio",
+    "message.add.firewall": "Add a firewall to zone",
+    "message.add.guest.network": "Si prega di confermare di voler aggiungere una rete guest",
+    "message.add.host": "Please specify the following parameters to add a new host",
+    "message.add.ip.range": "Add an IP range to public network in zone",
+    "message.add.ip.range.direct.network": "Add an IP range to direct network <b><span id=\"directnetwork_name\"></span></b> in zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Add an IP range to pod: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Add a load balancer to zone",
+    "message.add.load.balancer.under.ip": "La regola di bilanciamento di carico è stata aggiunta all'indirizzo IP:",
+    "message.add.network": "Add a new network for zone: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Si prega di specificare le informazioni per aggiungere un nuovo gateway a questo VPC.",
+    "message.add.pod": "Add a new pod for zone <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.",
+    "message.add.primary": "Please specify the following parameters to add a new primary storage",
+    "message.add.primary.storage": "Add a new Primary Storage for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Please specify the required information to add a new region.",
+    "message.add.secondary.storage": "Add a new storage for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Please fill in the following data to add a new compute offering.",
+    "message.add.system.service.offering": "Si prega di inserire le seguenti informazioni per aggiungere una nuova offerta di servizio di sistema.",
+    "message.add.template": "Please enter the following data to create your new template",
+    "message.add.volume": "Please fill in the following data to add a new volume.",
+    "message.added.new.nuage.vsp.controller": "Added new Nuage Vsp Controller",
+    "message.added.vpc.offering": "Added VPC offering",
+    "message.adding.Netscaler.device": "Aggiunta di dispositivo Netscaler",
+    "message.adding.Netscaler.provider": "Aggiunta di un provider Netscaler",
+    "message.adding.host": "Aggiunta host",
+    "message.additional.networks.desc": "Please select additional network(s) that your virtual instance will be connected to.",
+    "message.admin.guide.read": "For VMware-based VMs, please read the dynamic scaling section in the admin guide before scaling. Would you like to continue?,",
+    "message.advanced.mode.desc": "Choose this network model if you wish to enable VLAN support.  This network model provides the most flexibility in allowing administrators to provide custom network offerings such as providing firewall, vpn, or load balancer support as well as enabling direct vs virtual networking.",
+    "message.advanced.security.group": "Choose this if you wish to use security groups to provide guest VM isolation.",
+    "message.advanced.virtual": "Choose this if you wish to use zone-wide VLANs to provide guest VM isolation.",
+    "message.after.enable.s3": "Il Secondary Storage S3 è configurato. NOTA: Una volta chiusa questa pagina, non sarà più possibile ri-configurare S3.",
+    "message.after.enable.swift": "Configurazione Swift completata. NOTA: Una volta che questa pagina viene chiusa, non sarà possibile ri-configurare nuovamente Swift.",
+    "message.alert.state.detected": "Rilevato uno stato di Alert",
+    "message.allow.vpn.access": "Please enter a username and password of the user that you want to allow VPN access.",
+    "message.apply.snapshot.policy": "You have successfully updated your current snapshot policy.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Please confirm that you want to attach the ISO to this virtual instance.",
+    "message.attach.volume": "Please fill in the following data to attach a new volume. If you are attaching a disk volume to a Windows based virtual machine, you will need to reboot the instance to see the attached disk.",
+    "message.basic.mode.desc": "Choose this network model if you do <b>*<u>not</u>*</b> want to enable any VLAN support.  All virtual instances created under this network model will be assigned an IP directly from the network and security groups are used to provide security and segregation.",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "Please confirm that you wish to change the service offering of this virtual instance.",
+    "message.change.password": "Si prega di modificare la propria password.",
+    "message.cluster.dedicated": "Cluster Dedicated",
+    "message.cluster.dedication.released": "Cluster dedication released",
+    "message.configure.all.traffic.types": "Si dispone di più reti fisiche; si prega di configurare le label per ogni tipo di traffico facendo click sul tasto 'Edit'.",
+    "message.configure.firewall.rules.allow.traffic": "Configure the rules to allow Traffic",
+    "message.configure.firewall.rules.block.traffic": "Configure the rules to block Traffic",
+    "message.configure.ldap": "Please confirm you would like to configure LDAP.",
+    "message.configuring.guest.traffic": "Configurazione del traffico guest",
+    "message.configuring.physical.networks": "Configurazione di reti fisiche",
+    "message.configuring.public.traffic": "Configurazione del traffico pubblico",
+    "message.configuring.storage.traffic": "Configurazione del traffico storage",
+    "message.confirm.action.force.reconnect": "Si prega di confermare di voler forzare la riconnessione a questo host.",
+    "message.confirm.add.vnmc.provider": "Please confirm you would like to add the VNMC provider.",
+    "message.confirm.archive.alert": "Please confirm that you want to archive this alert.",
+    "message.confirm.archive.event": "Please confirm that you want to archive this event.",
+    "message.confirm.archive.selected.alerts": "Please confirm you would like to archive the selected alerts",
+    "message.confirm.archive.selected.events": "Please confirm you would like to archive the selected events",
+    "message.confirm.attach.disk": "Are you sure you want to attach disk?",
+    "message.confirm.create.volume": "Are you sure you want to create volume?",
+    "message.confirm.current.guest.CIDR.unchanged": "Do you want to keep the current guest network CIDR unchanged?",
+    "message.confirm.dedicate.cluster.domain.account": "Do you really want to dedicate this cluster to a domain/account? ",
+    "message.confirm.dedicate.host.domain.account": "Do you really want to dedicate this host to a domain/account? ",
+    "message.confirm.dedicate.pod.domain.account": "Do you really want to dedicate this pod to a domain/account? ",
+    "message.confirm.dedicate.zone": "Do you really want to dedicate this zone to a domain/account?",
+    "message.confirm.delete.BigSwitchBcf": "Please confirm that you would like to delete this BigSwitch BCF Controller",
+    "message.confirm.delete.BrocadeVcs": "Please confirm that you would like to delete Brocade Vcs Switch",
+    "message.confirm.delete.F5": "Si prega di confermare di voler rimuovere F5",
+    "message.confirm.delete.NetScaler": "Si prega di confermare di voler rimuovere NetScaler",
+    "message.confirm.delete.NuageVsp": "Please confirm that you would like to delete Nuage Virtualized Services Directory",
+    "message.confirm.delete.PA": "Please confirm that you would like to delete Palo Alto",
+    "message.confirm.delete.SRX": "Si prega di confermare di voler rimuovere SRX",
+    "message.confirm.delete.acl.list": "Are you sure you want to delete this ACL list?",
+    "message.confirm.delete.alert": "Are you sure you want to delete this alert ?",
+    "message.confirm.delete.baremetal.rack.configuration": "Please confirm that you want to delete Baremetal Rack Configuration.",
+    "message.confirm.delete.ciscoASA1000v": "Please confirm you want to delete CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Please confirm you want to delete CiscoVNMC resource",
+    "message.confirm.delete.internal.lb": "Please confirm you want to delete Internal LB",
+    "message.confirm.delete.secondary.staging.store": "Please confirm you want to delete Secondary Staging Store.",
+    "message.confirm.delete.ucs.manager": "Please confirm that you want to delete UCS Manager",
+    "message.confirm.destroy.router": "Si prega di confermare di voler rimuovere questo router",
+    "message.confirm.disable.host": "Please confirm that you want to disable the host",
+    "message.confirm.disable.network.offering": "Are you sure you want to disable this network offering?",
+    "message.confirm.disable.provider": "Si prega di confermare di voler disabilitare questo provider",
+    "message.confirm.disable.vnmc.provider": "Please confirm you would like to disable the VNMC provider.",
+    "message.confirm.disable.vpc.offering": "Are you sure you want to disable this VPC offering?",
+    "message.confirm.enable.host": "Please confirm that you want to enable the host",
+    "message.confirm.enable.network.offering": "Are you sure you want to enable this network offering?",
+    "message.confirm.enable.provider": "Si prega di confermare di voler abilitare questo provider",
+    "message.confirm.enable.vnmc.provider": "Please confirm you would like to enable the VNMC provider.",
+    "message.confirm.enable.vpc.offering": "Are you sure you want to enable this VPC offering?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Si prega di confermare di volersi unire a questo progetto.",
+    "message.confirm.migrate.volume": "Do you want to migrate this volume?",
+    "message.confirm.refresh.blades": "Please confirm that you want to refresh blades.",
+    "message.confirm.release.dedicate.vlan.range": "Please confirm you want to release dedicated VLAN range",
+    "message.confirm.release.dedicated.cluster": "Do you want to release this dedicated cluster ?",
+    "message.confirm.release.dedicated.host": "Do you want to release this dedicated host ?",
+    "message.confirm.release.dedicated.pod": "Do you want to release this dedicated pod ?",
+    "message.confirm.release.dedicated.zone": "Do you want to release this dedicated zone ? ",
+    "message.confirm.remove.IP.range": "Si prega di confermare di voler rimuovere questo intervallo di indirizzi IP.",
+    "message.confirm.remove.event": "Are you sure you want to remove this event?",
+    "message.confirm.remove.load.balancer": "Please confirm you want to remove VM from load balancer",
+    "message.confirm.remove.network.offering": "Are you sure you want to remove this network offering?",
+    "message.confirm.remove.selected.alerts": "Please confirm you would like to remove the selected alerts",
+    "message.confirm.remove.selected.events": "Please confirm you would like to remove the selected events",
+    "message.confirm.remove.vmware.datacenter": "Please confirm you want to remove VMware datacenter",
+    "message.confirm.remove.vpc.offering": "Are you sure you want to remove this VPC offering?",
+    "message.confirm.replace.acl.new.one": "Do you want to replace the ACL with a new one?",
+    "message.confirm.scale.up.router.vm": "Do you really want to scale up the Router VM ?",
+    "message.confirm.scale.up.system.vm": "Do you really want to scale up the system VM ?",
+    "message.confirm.shutdown.provider": "Si prega di confermare di voler arrestare questo provider",
+    "message.confirm.start.lb.vm": "Please confirm you want to start LB VM",
+    "message.confirm.stop.lb.vm": "Please confirm you want to stop LB VM",
+    "message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template",
+    "message.confirm.upgrade.routers.account.newtemplate": "Please confirm that you want to upgrade all routers in this account to use newer template",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Please confirm that you want to upgrade all routers in this cluster to use newer template",
+    "message.confirm.upgrade.routers.newtemplate": "Please confirm that you want to upgrade all routers in this zone to use newer template",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Please confirm that you want to upgrade all routers in this pod to use newer template",
+    "message.copy.iso.confirm": "Please confirm that you wish to copy your ISO to",
+    "message.copy.template": "Copy template <b id=\"copy_template_name_text\">XXX</b> from zone <b id=\"copy_template_source_zone_text\"></b> to",
+    "message.copy.template.confirm": "Are you sure you want to copy template?",
+    "message.create.template": "Si è sicuri di voler creare il template?",
+    "message.create.template.vm": "Create VM from template <b id=\"p_name\"></b>",
+    "message.create.template.volume": "Please specify the following information before creating a template of your disk volume: <b><span id=\"volume_name\"></span></b>. Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.creating.cluster": "Creazione cluster",
+    "message.creating.guest.network": "Creazione di una rete guest",
+    "message.creating.physical.networks": "Creazione di reti fisiche",
+    "message.creating.pod": "Creazione pod",
+    "message.creating.primary.storage": "Creazione storage primario",
+    "message.creating.secondary.storage": "Creazione storage secondario",
+    "message.creating.systemVM": "Creating system VMs (this may take a while)",
+    "message.creating.zone": "Creazione della zona in corso",
+    "message.decline.invitation": "Si è sicuri di voler declinare l'invito a questo progetto?",
+    "message.dedicate.zone": "Dedicating zone",
+    "message.dedicated.zone.released": "Zone dedication released",
+    "message.delete.VPN.connection": "Si prega di confermare di voler cancellare la connessione VPN",
+    "message.delete.VPN.customer.gateway": "Si prega di confermare di voler cancellare questo Gateway VPN del Cliente",
+    "message.delete.VPN.gateway": "Si prega di confermare di voler cancellare questo Gateway VPN",
+    "message.delete.account": "Please confirm that you want to delete this account.",
+    "message.delete.affinity.group": "Please confirm that you would like to remove this affinity group.",
+    "message.delete.gateway": "Si prega di confermare di voler cancellare il gateway",
+    "message.delete.project": "Si è sicuri di voler cancellare questo progetto?",
+    "message.delete.user": "Si prega di confermare di voler cancellare questo utente.",
+    "message.desc.add.new.lb.sticky.rule": "Add new LB sticky rule",
+    "message.desc.advanced.zone": "Per topologie di rete più sofisticate. Queto modello di rete fornisce la maggior flessibilità nel definire reti guest e offrendo funzionalità di rete personalizzate come per esempio firewall, VPN, o supporto per bilanciamento di carico.",
+    "message.desc.basic.zone": "Indicare una rete singola in cui ogni instanza VM riceverà un indirizzo IP assegnato. L'isolamento di istanze guest viene effettuato attraverso funzioni di tipo layer-3 come ad esempio i security group (filtraggio dell'indirizzo IP sorgente).",
+    "message.desc.cluster": "Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.",
+    "message.desc.create.ssh.key.pair": "Please fill in the following data to create or register a ssh key pair.<br><br>(1) If public key is set, CloudStack will register the public key. You can use it through your private key.<br><br>(2) If public key is not set, CloudStack will create a new SSH Key pair. In this case, please copy and save the private key. CloudStack will not keep it.<br>",
+    "message.desc.created.ssh.key.pair": "Created a SSH Key Pair.",
+    "message.desc.host": "Each cluster must contain at least one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.",
+    "message.desc.primary.storage": "Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.",
+    "message.desc.reset.ssh.key.pair": "Please specify a ssh key pair that you would like to add to this VM. Please note the root password will be changed by this operation if password is enabled.",
+    "message.desc.secondary.storage": "Each zone must have at least one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.",
+    "message.desc.zone": "Una zona è l'unità organizzativa più grandi in CloudStack, e corrisponde tipicamente ad un datacenter singolo. Le zono offrono isolamento fisico e ridondanza. Una zona è costituita da uno o più pod (ognuno dei quali contiene più host e server di storage primario) ed un server di storage secondario condiviso da tutti i pod appartenenti alla zona.",
+    "message.detach.disk": "Si è sicuri di voler sganciare questo disco?",
+    "message.detach.iso.confirm": "Please confirm that you want to detach the ISO from this virtual instance.",
+    "message.disable.account": "Please confirm that you want to disable this account.  By disabling the account, all users for this account will no longer have access to their cloud resources.  All running virtual machines will be immediately shut down.",
+    "message.disable.snapshot.policy": "You have successfully disabled your current snapshot policy.",
+    "message.disable.user": "Si prega di confermare di voler disabilitare questo utente.",
+    "message.disable.vpn": "Si è sicuri di voler disabilitare la VPN?",
+    "message.disable.vpn.access": "Please confirm that you want to disable Remote Access VPN.",
+    "message.disabling.network.offering": "Disabling network offering",
+    "message.disabling.vpc.offering": "Disabling VPC offering",
+    "message.disallowed.characters": "Disallowed characters: <,>",
+    "message.download.ISO": "Please click <a href=\"#\">00000</a> to download ISO",
+    "message.download.template": "Please click <a href=\"#\">00000</a> to download template",
+    "message.download.volume": "Please click <a href=\"#\">00000</a> to download volume",
+    "message.download.volume.confirm": "Please confirm that you want to download this volume.",
+    "message.edit.account": "Edit (\"-1\" indicates no limit to the amount of resources create)",
+    "message.edit.confirm": "Please confirm your changes before clicking \"Save\".",
+    "message.edit.limits": "Please specify limits to the following resources.  A \"-1\" indicates no limit to the amount of resources create.",
+    "message.edit.traffic.type": "Si prega si specificare la label del traffico che si vuole associare a questo tipo di traffico.",
+    "message.enable.account": "Please confirm that you want to enable this account.",
+    "message.enable.user": "Si prega di confermare di voler abilitare questo utente.",
+    "message.enable.vpn": "Si prega di confermare di voler abilitare l'accesso VPN per questo indirizzo IP.",
+    "message.enable.vpn.access": "VPN is currently disabled for this IP Address.  Would you like to enable VPN access?",
+    "message.enabled.vpn": "Your Remote Access VPN is currently enabled and can be accessed via the IP",
+    "message.enabled.vpn.ip.sec": "Your IPSec pre-shared key is",
+    "message.enabling.network.offering": "Enabling network offering",
+    "message.enabling.security.group.provider": "Abilitazione di un provider di Security Group",
+    "message.enabling.vpc.offering": "Enabling VPC offering",
+    "message.enabling.zone": "Abilitazione zona",
+    "message.enabling.zone.dots": "Enabling zone...",
+    "message.enter.seperated.list.multiple.cidrs": "Please enter a comma separated list of CIDRs if more than one",
+    "message.enter.token": "Si prega di inserire il token ricevuto nella e-mail di invito.",
+    "message.generate.keys": "Si prega di confermare di voler generare nuove chiavi per questo utente.",
+    "message.gslb.delete.confirm": "Please confirm you want to delete this GSLB",
+    "message.gslb.lb.remove.confirm": "Please confirm you want to remove load balancing from GSLB",
+    "message.guest.traffic.in.advanced.zone": "Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.",
+    "message.guest.traffic.in.basic.zone": "Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.",
+    "message.host.dedicated": "Host Dedicated",
+    "message.host.dedication.released": "Host dedication released",
+    "message.installWizard.click.retry": "Fare click sul pulsante per riprovare l'avvio.",
+    "message.installWizard.copy.whatIsACluster": "A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack&#8482; deployment. Clusters are contained within pods, and pods are contained within zones.<br/><br/>CloudStack&#8482; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster.",
+    "message.installWizard.copy.whatIsAHost": "A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer or KVM.<br/><br/>The host is the smallest organizational unit within a CloudStack&#8482; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones.",
+    "message.installWizard.copy.whatIsAPod": "Un pod può essere utilizzato ad esempio per identificare un singolo rack. Gli host appartenenti al pod sono nella stessa subnet.<br/><br/>Un pod è il secondo componente organizzativo più grande in una installazione CloudStack&#8482;. I pod sono contenuti in zone. Ogni zona può contenere uno o più pod; in una Installazione di Base, si configura un solo pod nella zona.",
+    "message.installWizard.copy.whatIsAZone": "Una zona è il componente organizzativo più grande in una installazione CloudStack&#8482;. Una zona corrisponde solitamente ad un singolo datacenter, sebbene sia consentito avere più zone in un datacenter. Il beneficio di organizzare l'infrastruttura in zone deriva dalla possibilità di creare isolamento e ridondanza. Per esempio, ogni zona può avere la propria configurazione di alimentazione elettrica e collegamenti di rete, e le zone possono essere anche separate geograficamente (anche se non è un requisito).",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482 is a software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. CloudStack&#8482 manages the network, storage, and compute nodes that make up a cloud infrastructure. Use CloudStack&#8482 to deploy, manage, and configure cloud computing environments.<br/><br/>Extending beyond individual virtual machine images running on commodity hardware, CloudStack&#8482 provides a turnkey cloud infrastructure software stack for delivering virtual datacenters as a service - delivering all of the essential components to build, deploy, and manage multi-tier and multi-tenant cloud applications. Both open-source and Premium versions are available, with the open-source version offering nearly identical features.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "A CloudStack&#8482; cloud infrastructure makes use of two types of storage: primary storage and secondary storage. Both of these can be iSCSI or NFS servers, or localdisk.<br/><br/><strong>Primary storage</strong> is associated with a cluster, and it stores the disk volumes of each guest VM for all the VMs running on hosts in that cluster. The primary storage server is typically located close to the hosts.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "Un Secondary storage è associato ad una zona, ed è utilizzato per la memorizzazione di:<ul><li>Template - Immagini SO che possono essere usate per eseguire il boot delle VM e che possono includere informazioni di configurazioni aggiuntive, come ad esempio applicazioni installate</li><li>Immagini ISO - Immagini OS utilizzabili che possono anche essere non-bootable</li><li>Snapshot di volumi disco - copie salvate di dati delle VM utilizzabili per il recupero di dati o per la creazione di nuovi template</ul>",
+    "message.installWizard.now.building": "Now building your cloud...",
+    "message.installWizard.tooltip.addCluster.name": "Un nome per il cluster. Questo può essere assegnato utilizzando testo a scelta e non è utilizzato da CloudStack.",
+    "message.installWizard.tooltip.addHost.hostname": "Il nome DNS o l'indirizzo IP del sistema host.",
+    "message.installWizard.tooltip.addHost.password": "Questa è la password per l'utente identificato precedentemente (dall'installazione XenServer).",
+    "message.installWizard.tooltip.addHost.username": "Tipicamente root.",
+    "message.installWizard.tooltip.addPod.name": "Un nome per il pod",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Questo è l'intervallo di indirizzi IP nella rete privata che CloudStack utilizza per la gestione delle VM del Secondary Storage e le VM della Console Proxy. Questi indirizzi IP sono ricavati dalla stessa subnet dei server computazionali.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "Il gateway per gli host appartenenti al pod.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "La netmask in uso nella subnet utilizzata dalle VM guest.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Questo è l'intervallo di indirizzi IP nella rete privata che CloudStack utilizza per la gestione delle VM del Secondary Storage e le VM della Console Proxy. Questi indirizzi IP sono ricavati dalla stessa subnet dei server computazionali.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "Il nome del dispositivo storage.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(per NFS) In NFS questo corrisponde al path condiviso dal server. Path (per SharedMountPoint). Con KVM questo è il path su ogni host su cui viene effettuato il mount di questo primary storage. Per esempio, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(per NFS, iSCSI, o PreSetup) L'indirizzo IP o il nome DNS del dispositivo di storage.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "L'indirizzo IP del server NFS su cui è condiviso il secondary storage",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "Il percorso esportato, posizionato sul server precedentemente specificato",
+    "message.installWizard.tooltip.addZone.dns1": "Questi sono i server DNS da usare per le VM guest nella zona. Questi server DNS saranno raggiunti attraverso la rete pubblica che si configurerà nel seguito. Gli indirizzi IP pubblici per la zona devono disporre di una rotta per raggiungere i server DNS indicati qui.",
+    "message.installWizard.tooltip.addZone.dns2": "Questi sono i server DNS da usare per le VM guest nella zona. Questi server DNS saranno raggiunti attraverso la rete pubblica che si configurerà nel seguito. Gli indirizzi IP pubblici per la zona devono disporre di una rotta per raggiungere i server DNS indicati qui.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Questi sono i server DNS da utilizzare per le VM di sistema nella zona. Questi server DNS saranno raggiunti attraverso l'interfaccia di rete configurata nella rete privata delle VM di Sistema. L'indirizzo IP privato fornito ai pod devono disporre di una rotta per raggiungere il server DNS indicato qui.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Questi sono i server DNS da utilizzare per le VM di sistema nella zona. Questi server DNS saranno raggiunti attraverso l'interfaccia di rete configurata nella rete privata delle VM di Sistema. L'indirizzo IP privato fornito ai pod devono disporre di una rotta per raggiungere il server DNS indicato qui.",
+    "message.installWizard.tooltip.addZone.name": "Un nome per la zona",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "Una descrizione per identificare la rete",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "L'intervallo degli indirizzi IP che saranno disponibili per l'allocazione alle VM guest in questa zona. Se viene usata una NIC, questi indirizzi IP dovrebbero appartenere allo stesso CIDR a cui appartiene il pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "Il gateway da assegnare alle VM guest",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "La netmask in uso nella subnet utilizzata dalle VM guest",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "L'intervallo degli indirizzi IP che saranno disponibili per l'allocazione alle VM guest in questa zona. Se viene usata una NIC, questi indirizzi IP dovrebbero appartenere allo stesso CIDR a cui appartiene il pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Un nome da assegnare alla rete",
+    "message.instance.scaled.up.confirm": "Do you really want to scale Up your instance ?",
+    "message.instanceWizard.noTemplates": "Non ci sono template disponibili: si prega di aggiungere un template compatibile, e ri-avviare il wizard per la instanza.",
+    "message.ip.address.changed": "Il tuo indirizzo IP potrebbe essere cambiato; si desidera aggiornare l'elenco? Notare che in tal caso verrà chiusa la finestra dettagli.",
+    "message.iso.desc": "Immagine disco contenente dati o supporto avviabile di boot per il SO",
+    "message.join.project": "Ora appartieni al progetto. Si prega di passare alla vista Progetto per accedere.",
+    "message.launch.vm.on.private.network": "Do you wish to launch your instance on your own private dedicated network?",
+    "message.launch.zone": "La Zona è pronta per l'avvio; si prega di procedere al passo successivo.",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "Enable autosync for this domain in LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "Please confirm that you want to lock this account.  By locking the account, all users for this account will no longer be able to manage their cloud resources.  Existing resources can still be accessed.",
+    "message.migrate.instance.confirm": "Please confirm the host you wish to migrate the virtual instance to.",
+    "message.migrate.instance.to.host": "Si prega di confermare di voler migrare instance verso un altro host.",
+    "message.migrate.instance.to.ps": "Si prega di confermare di voler migrare instance verso un altro primary storage.",
+    "message.migrate.router.confirm": "Si prega di confermare l'host a cui si intende migrare il router:",
+    "message.migrate.systemvm.confirm": "Please confirm the host you wish to migrate the system VM to:",
+    "message.migrate.volume": "Si prega di confermare di voler migrare il volume verso un altro primary storage.",
+    "message.network.addVM.desc": "Please specify the network that you would like to add this VM to. A new NIC will be added for this network.",
+    "message.network.addVMNIC": "Please confirm that you would like to add a new VM NIC for this network.",
+    "message.network.remote.access.vpn.configuration": "Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.",
+    "message.new.user": "Specify the following to add a new user to the account",
+    "message.no.affinity.groups": "Non è presente alcun gruppo di affinità. Prego proseguire al prossimo passaggio.",
+    "message.no.host.available": "No Hosts are available for Migration",
+    "message.no.network.support": "Your selected hypervisor, vSphere, does not have any additional network features.  Please continue to step 5.",
+    "message.no.network.support.configuration.not.true": "You do not have any zone that has security group enabled. Thus, no additional network features.  Please continue to step 5.",
+    "message.no.projects": "Non si possiedono progetti.<br/>Si prega di creare un nuovo progetto dalla sezione progetti.",
+    "message.no.projects.adminOnly": "Non si dispone di alcun progetto.<br/>Si prega di chiedere la creazione di un nuovo progetto al proprio amministratore.",
+    "message.number.clusters": "<h2><span> # of </span> Clusters</h2>",
+    "message.number.hosts": "<h2><span> # of </span> Hosts</h2>",
+    "message.number.pods": "<h2><span> # of </span> Pods</h2>",
+    "message.number.storage": "<h2><span> # of </span> Primary Storage Volumes</h2>",
+    "message.number.zones": "<h2><span> # of </span> Zones</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "Password has been reset to",
+    "message.password.of.the.vm.has.been.reset.to": "Password of the VM has been reset to",
+    "message.pending.projects.1": "Ci sono inviti a progetti in attesa di risposta:",
+    "message.pending.projects.2": "To view, please go to the projects section, then select invitations from the drop-down.",
+    "message.please.add.at.lease.one.traffic.range": "Si prega di aggiungere almeno un intervallo relativo al traffico.",
+    "message.please.confirm.remove.ssh.key.pair": "Please confirm that you want to remove this SSH Key Pair",
+    "message.please.proceed": "Si prega di procedere al passo successivo.",
+    "message.please.select.a.configuration.for.your.zone": "Si prega di selezionare una configurazione per la zona.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Si prega di selezionare una diversa rete pubblica e di management prima della rimozione",
+    "message.please.select.networks": "Si prega di selezionare le reti per la virtual machine.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Please select a ssh key pair you want this VM to use:",
+    "message.please.wait.while.zone.is.being.created": "Si prega di attendere la creazione della zona; può richiedere tempo...",
+    "message.pod.dedication.released": "Pod dedication released",
+    "message.portable.ip.delete.confirm": "Please confirm you want to delete Portable IP Range",
+    "message.project.invite.sent": "L'invito è stato spedito all'utente; l'utente sarà aggiunto al progetto solo dopo aver accettato l'invito",
+    "message.public.traffic.in.advanced.zone": "Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.",
+    "message.public.traffic.in.basic.zone": "Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.",
+    "message.question.are.you.sure.you.want.to.add": "Are you sure you want to add",
+    "message.read.admin.guide.scaling.up": "Please read the dynamic scaling section in the admin guide before scaling up.",
+    "message.recover.vm": "Prego confermare che si vuole recuperare questa VM.",
+    "message.redirecting.region": "Redirecting to region...",
+    "message.reinstall.vm": "NOTA: Attenzione. Questo causerà la reinstallazione della VM partendo dal template; i dati nel disco principale verranno persi. I dati nei volumi aggiuntivi, se esistenti, non verranno toccati.",
+    "message.remove.ldap": "Are you sure you want to delete the LDAP configuration?",
+    "message.remove.region": "Are you sure you want to remove this region from this management server?",
+    "message.remove.vpc": "Si prega di confermare di voler rimuovere VPC",
+    "message.remove.vpn.access": "Please confirm that you want to remove VPN access from the following user.",
+    "message.removed.ssh.key.pair": "Removed a SSH Key Pair",
+    "message.reset.VPN.connection": "Si prega di confermare di voler effettuare il reset della connessione VPN",
+    "message.reset.password.warning.notPasswordEnabled": "L'immagine template di questa instanza è stata creata senza l'abilitazione della password",
+    "message.reset.password.warning.notStopped": "L'instanza deve essere arrestata prima di poter modificare la password",
+    "message.restart.mgmt.server": "Please restart your management server(s) for your new settings to take effect.",
+    "message.restart.mgmt.usage.server": "Please restart your management server(s) and usage server(s) for your new settings to take effect.",
+    "message.restart.network": "Tutti i servizi forniti da questa rete saranno interrotti. Si prega di confermare di voler riavviare questa rete.",
+    "message.restart.vpc": "Si prega di confermare di voler riavviare VPC",
+    "message.restart.vpc.remark": "Please confirm that you want to restart the VPC <p><small><i>Remark: making a non-redundant VPC redundant will force a clean up. The networks will not be available for a couple of minutes</i>.</small></p>",
+    "message.restoreVM": "Do you want to restore the VM ?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(Use <strong>Ctrl-click</strong> to select all applicable security groups)",
+    "message.select.a.zone": "Una zona corrisponde tipicamente ad un singolo datacenter. Zone multiple consentono di aumentare l'affidabilità creando isolamento fisico e ridondanza.",
+    "message.select.affinity.groups": "Prego selezionare un gruppo di affinità a cui si vuole far appartenere questa VM:",
+    "message.select.instance": "Si prega di selezionare una instanza.",
+    "message.select.iso": "Si prega di selezionare una immagine ISO per la nuova instanza virtuale.",
+    "message.select.item": "Si prega di selezionare un elemento.",
+    "message.select.security.groups": "Si prega di selezionare i security group per la nuova VM",
+    "message.select.template": "Si prega di selezionare un template per la nuova instanza virtuale.",
+    "message.select.tier": "Please select a tier",
+    "message.set.default.NIC": "Please confirm that you would like to make this NIC the default for this VM.",
+    "message.set.default.NIC.manual": "Please manually update the default NIC on the VM now.",
+    "message.setup.physical.network.during.zone.creation": "When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the hypervisor. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.",
+    "message.setup.physical.network.during.zone.creation.basic": "Quando si aggiunge una zona di base, si può configurare una rete fisica, che corrisponde ad una NIC sul sistema host di virtualizzazione. La rete consente il trasporto di vari tipi di traffico di comunicazione.<br/><br/>E' possibile anche spostare altri tipi di traffico sulla rete fisica in modalità <strong>drag and drop</strong>.",
+    "message.setup.successful": "L'installazione del cloud è completata con successo!",
+    "message.snapshot.schedule": "You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference",
+    "message.specifiy.tag.key.value": "Please specify a tag key and value",
+    "message.specify.url": "Si prega di specificare la URL",
+    "message.step.1.continue": "Please select a template or ISO to continue",
+    "message.step.1.desc": "Please select a template for your new virtual instance. You can also choose to select a blank template from which an ISO image can be installed onto.",
+    "message.step.2.continue": "Please select a service offering to continue",
+    "message.step.3.continue": "Please select a disk offering to continue",
+    "message.step.4.continue": "Please select at least one network to continue",
+    "message.step.4.desc": "Please select the primary network that your virtual instance will be connected to.",
+    "message.storage.traffic": "Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.",
+    "message.suspend.project": "Si è sicuri di voler sospendere questo progetto?",
+    "message.systems.vms.ready": "System VMs ready.",
+    "message.template.copying": "Template is being copied.",
+    "message.template.desc": "Immagine SO utilizzabile per eseguire il boot delle VM",
+    "message.tier.required": "Tier is required",
+    "message.tooltip.dns.1": "Nome di un server DNS per l'uso da parte delle VM in questa zona. Gli indirizzi IP pubblici per la zona devono avere un percorso di instradamento verso questo server.",
+    "message.tooltip.dns.2": "Un nome di un server DNS aggiuntivo per l'uso da parte delle VM in questa zona. Gli indirizzi IP pubblici per la zona devono avere un percorso di instradamento verso questo server.",
+    "message.tooltip.internal.dns.1": "Nome di un server DNS per l'uso da parte delle VM interne di CloudStack di sistema nella zona. Gli indirizzi IP privati per i pod devono avere un percorso di instradamento verso questo server.",
+    "message.tooltip.internal.dns.2": "Nome di un server DNS per l'uso da parte delle VM interne di CloudStack di sistema nella zona. Gli indirizzi IP privati per i pod devono avere un percorso di instradamento verso questo server.",
+    "message.tooltip.network.domain": "Un suffisso DNS che consentirà la creazione di un nome di dominio personalizzato per la rete a cui accedono le VM ospiti.",
+    "message.tooltip.pod.name": "Un nome per questo pod",
+    "message.tooltip.reserved.system.gateway": "Il gateway per gli host appartenenti al pod.",
+    "message.tooltip.reserved.system.netmask": "Il prefisso di rete che definisce la subnet del pod. Utilizza la notazione CIDR.",
+    "message.tooltip.zone.name": "Un nome per la zona.",
+    "message.update.os.preference": "Please choose a OS preference for this host.  All virtual instances with similar preferences will be first allocated to this host before choosing another.",
+    "message.update.resource.count": "Si prega di confermare di voler aggiornare il valore delle risorse per questo account.",
+    "message.update.ssl": "Please submit a new X.509 compliant SSL certificate chain to be updated to each console proxy and secondary storage virtual instance:",
+    "message.update.ssl.failed": "Failed to update SSL Certificate.",
+    "message.update.ssl.succeeded": "Update SSL Certificates succeeded",
+    "message.validate.URL": "Please enter a valid URL.",
+    "message.validate.accept": "Please enter a value with a valid extension.",
+    "message.validate.creditcard": "Please enter a valid credit card number.",
+    "message.validate.date": "Please enter a valid date.",
+    "message.validate.date.ISO": "Please enter a valid date (ISO).",
+    "message.validate.digits": "Please enter only digits.",
+    "message.validate.email.address": "Please enter a valid email address.",
+    "message.validate.equalto": "Please enter the same value again.",
+    "message.validate.fieldrequired": "This field is required.",
+    "message.validate.fixfield": "Please fix this field.",
+    "message.validate.instance.name": "Il nome dell'instanza non può avere lunghezza superiore a 63 caratteri. Sono consentite solo lettere ASCII a-z, A-Z, numeri 0-9, segni '-'. Il primo carattere deve essere una lettera, e l'ultimo una lettera o un numero.",
+    "message.validate.invalid.characters": "Rilevati caratteri non validi; prego correggere.",
+    "message.validate.max": "Please enter a value less than or equal to {0}.",
+    "message.validate.maxlength": "Please enter no more than {0} characters.",
+    "message.validate.minlength": "Please enter at least {0} characters.",
+    "message.validate.number": "Please enter a valid number.",
+    "message.validate.range": "Please enter a value between {0} and {1}.",
+    "message.validate.range.length": "Please enter a value between {0} and {1} characters long.",
+    "message.virtual.network.desc": "A dedicated virtualized network for your account.  The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.",
+    "message.vm.create.template.confirm": "Create Template will reboot the VM automatically.",
+    "message.vm.review.launch": "Si prega di riesaminare le informazioni e confermare l'instance virtuale scelta sia corretta prima di avviarla.",
+    "message.vnmc.available.list": "VNMC is not available from provider list.",
+    "message.vnmc.not.available.list": "VNMC is not available from provider list.",
+    "message.volume.create.template.confirm": "Please confirm that you wish to create a template for this disk volume.  Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.waiting.for.builtin.templates.to.load": "Waiting for builtin templates to load...",
+    "message.you.must.have.at.least.one.physical.network": "E' necessario disporre di almeno una rete fisica",
+    "message.your.cloudstack.is.ready": "Your CloudStack is ready!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Creazione zona completata. Si desidera abilitare questa zona?",
+    "message.zone.no.network.selection": "La zona selezionata non contiene opzioni per la selezione della rete.",
+    "message.zone.step.1.desc": "Please select a network model for your zone.",
+    "message.zone.step.2.desc": "Please enter the following info to add a new zone",
+    "message.zone.step.3.desc": "Please enter the following info to add a new pod",
+    "message.zoneWizard.enable.local.storage": "WARNING: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch:<br/><br/>1. If system VMs need to be launched in shared primary storage, shared primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local primary storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?",
+    "messgae.validate.min": "Please enter a value greater than or equal to {0}.",
+    "mode": "Modalità",
+    "network.rate": "Network Rate",
+    "notification.reboot.instance": "Riavviare una instanza",
+    "notification.start.instance": "Avviare una instanza",
+    "notification.stop.instance": "Arrestare una instanza",
+    "side.by.side": "Side by Side",
+    "state.Accepted": "Accettato",
+    "state.Active": "Attivo",
+    "state.Allocated": "Allocato",
+    "state.Allocating": "Allocazione in corso",
+    "state.BackedUp": "Salvataggio eseguito",
+    "state.BackingUp": "Salvataggio in esecuzione",
+    "state.Completed": "Completato",
+    "state.Creating": "Creazione in corso",
+    "state.Declined": "Declinato",
+    "state.Destroyed": "Destroyed",
+    "state.Disabled": "Disabilitato",
+    "state.Enabled": "Abilitato",
+    "state.Error": "Errore",
+    "state.Expunging": "Expunging",
+    "state.Migrating": "Migrazione in corso",
+    "state.Pending": "Pending",
+    "state.Ready": "Pronto",
+    "state.Running": "In esecuzione",
+    "state.Starting": "Avvio in corso",
+    "state.Stopped": "Arrestato",
+    "state.Stopping": "Arresto in corso",
+    "state.Suspended": "Sospeso",
+    "state.detached": "Detached",
+    "title.upload.volume": "Upload Volume",
+    "ui.listView.filters.all": "All",
+    "ui.listView.filters.mine": "Mine"
+};
diff --git a/ui/l10n/ja_JP.js b/ui/l10n/ja_JP.js
new file mode 100644
index 0000000..797b351
--- /dev/null
+++ b/ui/l10n/ja_JP.js
@@ -0,0 +1,2293 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP コード",
+    "ICMP.type": "ICMP の種類",
+    "changed.item.properties": "項目のプロパティの変更",
+    "confirm.enable.s3": "S3 ベースのセカンダリ ストレージのサポートを有効にするには、次の情報を入力してください。",
+    "confirm.enable.swift": "Swift のサポートを有効にするには、次の情報を入力してください。",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "エラー。LDAP が有効なためパスワードを変更できません。",
+    "error.could.not.enable.zone": "ゾーンを有効にできませんでした",
+    "error.installWizard.message": "問題が発生しました。戻ってエラーを修正できます。",
+    "error.invalid.username.password": "無効なユーザー名またはパスワードです。",
+    "error.login": "ユーザー名/パスワードが記録と一致しません。",
+    "error.menu.select": "項目が選択されていないため操作を実行できません。",
+    "error.mgmt.server.inaccessible": "管理サーバーにアクセスできません。後で再実行してください。",
+    "error.password.not.match": "パスワードが一致しません",
+    "error.please.specify.physical.network.tags": "この物理ネットワークのタグを指定しなければ、ネットワーク オファリングは使用できません。",
+    "error.session.expired": "セッションの有効期限が切れました。",
+    "error.something.went.wrong.please.correct.the.following": "問題が発生しました。次の内容を修正してください",
+    "error.unable.to.reach.management.server": "管理サーバーと通信できません",
+    "error.unresolved.internet.name": "インターネット名を解決できません。",
+    "force.delete": "強制的に削除する",
+    "force.delete.domain.warning": "警告: このオプションを選択すると、すべての子ドメインおよび関連するすべてのアカウントとそのリソースが削除されます。",
+    "force.remove": "強制的に解除する",
+    "force.remove.host.warning": "警告: このオプションを選択すると、実行中のすべての仮想マシンが強制的に停止され、クラスターからこのホストが強制的に解除されます。",
+    "force.stop": "強制的に停止する",
+    "force.stop.instance.warning": "警告: インスタンスの強制停止は、最終手段にしてください。データを損失するだけでなく、仮想マシンの動作が一貫しなくなる可能性があります。",
+    "hint.no.host.tags": "ホストタグが見つかりません",
+    "hint.no.storage.tags": "ストレージタグが見つかりません",
+    "hint.type.part.host.tag": "ホストタグの種類",
+    "hint.type.part.storage.tag": "ストレージタグの種類",
+    "image.directory": "画像ディレクトリ",
+    "inline": "直列",
+    "instances.actions.reboot.label": "インスタンスの再起動",
+    "label.CIDR.list": "CIDR 一覧",
+    "label.CIDR.of.destination.network": "宛先ネットワークの CIDR",
+    "label.CPU.cap": "CPU キャップ",
+    "label.DHCP.server.type": "DHCP サーバーの種類",
+    "label.DNS.domain.for.guest.networks": "ゲスト ネットワークの DNS ドメイン",
+    "label.ESP.encryption": "ESP 暗号化",
+    "label.ESP.hash": "ESP ハッシュ",
+    "label.ESP.lifetime": "ESP 有効期間 (秒)",
+    "label.ESP.policy": "ESP ポリシー",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE 暗号化",
+    "label.IKE.hash": "IKE ハッシュ",
+    "label.IKE.lifetime": "IKE 有効期間 (秒)",
+    "label.IKE.policy": "IKE ポリシー",
+    "label.IPsec.preshared.key": "IPsec 事前共有キー",
+    "label.LB.isolation": "LB 分離",
+    "label.LUN.number": "LUN 番号",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto ログ プロファイル",
+    "label.PA.threat.profile": "Palo Alto 脅威プロファイル",
+    "label.PING.CIFS.password": "PING CIFS パスワード",
+    "label.PING.CIFS.username": "PING CIFS ユーザー名",
+    "label.PING.dir": "PING ディレクトリ",
+    "label.PING.storage.IP": "PING 対象のストレージ IP アドレス",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "PXE サーバーの種類",
+    "label.SNMP.community": "SNMP コミュニティ",
+    "label.SNMP.port": "SNMP ポート",
+    "label.SR.name": "SR 名ラベル",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP ディレクトリ",
+    "label.VMFS.datastore": "VMFS データストア",
+    "label.VMs.in.tier": "階層内の VM",
+    "label.VPC.limits": "VPC 制限",
+    "label.VPC.router.details": "VPC ルーターの詳細",
+    "label.VPN.connection": "VPN 接続",
+    "label.VPN.customer.gateway": "VPN カスタマー ゲートウェイ",
+    "label.VPN.gateway": "VPN ゲートウェイ",
+    "label.Xenserver.Tools.Version61plus": "元の XS バージョンは 6.1 以降",
+    "label.about": "バージョン情報",
+    "label.about.app": "CloudStack について",
+    "label.accept.project.invitation": "プロジェクトへの招待の承諾",
+    "label.account": "アカウント",
+    "label.account.and.security.group": "アカウント、セキュリティ グループ",
+    "label.account.details": "アカウントの詳細",
+    "label.account.id": "アカウント ID",
+    "label.account.lower": "アカウント",
+    "label.account.name": "アカウント名",
+    "label.account.specific": "アカウント固有",
+    "label.account.type": "アカウントタイプ",
+    "label.accounts": "アカウント",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL ルールのリスト",
+    "label.acl.name": "ACL 名",
+    "label.acl.replaced": "ACL が置き換えられました",
+    "label.acquire.new.ip": "新しい IP アドレスの取得",
+    "label.acquire.new.secondary.ip": "セカンダリ IP アドレスの取得",
+    "label.action": "操作",
+    "label.action.attach.disk": "ディスクのアタッチ",
+    "label.action.attach.disk.processing": "ディスクをアタッチしています...",
+    "label.action.attach.iso": "ISO のアタッチ",
+    "label.action.attach.iso.processing": "ISO をアタッチしています...",
+    "label.action.cancel.maintenance.mode": "保守モードのキャンセル",
+    "label.action.cancel.maintenance.mode.processing": "保守モードをキャンセルしています...",
+    "label.action.change.password": "パスワードの変更",
+    "label.action.change.service": "サービスの変更",
+    "label.action.change.service.processing": "サービスを変更しています...",
+    "label.action.configure.samlauthorization": "SAML SSO 認証を設定する",
+    "label.action.copy.ISO": "ISO のコピー",
+    "label.action.copy.ISO.processing": "ISO をコピーしています....",
+    "label.action.copy.template": "テンプレートのコピー",
+    "label.action.copy.template.processing": "テンプレートをコピーしています....",
+    "label.action.create.template": "テンプレートの作成",
+    "label.action.create.template.from.vm": "VM からのテンプレート作成",
+    "label.action.create.template.from.volume": "ボリュームからのテンプレート作成",
+    "label.action.create.template.processing": "テンプレートを作成しています...",
+    "label.action.create.vm": "VM の作成",
+    "label.action.create.vm.processing": "VM を作成しています...",
+    "label.action.create.volume": "ボリュームの作成",
+    "label.action.create.volume.processing": "ボリュームを作成しています...",
+    "label.action.delete.IP.range": "IP アドレスの範囲の削除",
+    "label.action.delete.IP.range.processing": "IP アドレスの範囲を削除しています...",
+    "label.action.delete.ISO": "ISO の削除",
+    "label.action.delete.ISO.processing": "ISO を削除しています...",
+    "label.action.delete.account": "アカウントの削除",
+    "label.action.delete.account.processing": "アカウントを削除しています...",
+    "label.action.delete.cluster": "クラスターの削除",
+    "label.action.delete.cluster.processing": "クラスターを削除しています...",
+    "label.action.delete.disk.offering": "ディスク オファリングの削除",
+    "label.action.delete.disk.offering.processing": "ディスク オファリングを削除しています...",
+    "label.action.delete.domain": "ドメインの削除",
+    "label.action.delete.domain.processing": "ドメインを削除しています...",
+    "label.action.delete.firewall": "ファイアウォール規則の削除",
+    "label.action.delete.firewall.processing": "ファイアウォールを削除しています...",
+    "label.action.delete.ingress.rule": "受信規則の削除",
+    "label.action.delete.ingress.rule.processing": "受信規則を削除しています...",
+    "label.action.delete.load.balancer": "ロード バランサー規則の削除",
+    "label.action.delete.load.balancer.processing": "ロード バランサーを削除しています...",
+    "label.action.delete.network": "ネットワークの削除",
+    "label.action.delete.network.processing": "ネットワークを削除しています...",
+    "label.action.delete.nexusVswitch": "Nexus 1000V の削除",
+    "label.action.delete.nic": "NIC の削除",
+    "label.action.delete.physical.network": "物理ネットワークの削除",
+    "label.action.delete.pod": "ポッドの削除",
+    "label.action.delete.pod.processing": "ポッドを削除しています...",
+    "label.action.delete.primary.storage": "プライマリ ストレージの削除",
+    "label.action.delete.primary.storage.processing": "プライマリ ストレージを削除しています...",
+    "label.action.delete.secondary.storage": "セカンダリ ストレージの削除",
+    "label.action.delete.secondary.storage.processing": "セカンダリ ストレージを削除しています...",
+    "label.action.delete.security.group": "セキュリティ グループの削除",
+    "label.action.delete.security.group.processing": "セキュリティ グループを削除しています...",
+    "label.action.delete.service.offering": "サービス オファリングの削除",
+    "label.action.delete.service.offering.processing": "サービス オファリングを削除しています...",
+    "label.action.delete.snapshot": "スナップショットの削除",
+    "label.action.delete.snapshot.processing": "スナップショットを削除しています...",
+    "label.action.delete.system.service.offering": "システム サービス オファリングの削除",
+    "label.action.delete.template": "テンプレートの削除",
+    "label.action.delete.template.processing": "テンプレートを削除しています...",
+    "label.action.delete.user": "ユーザーの削除",
+    "label.action.delete.user.processing": "ユーザーを削除しています...",
+    "label.action.delete.volume": "ボリュームの削除",
+    "label.action.delete.volume.processing": "ボリュームを削除しています...",
+    "label.action.delete.zone": "ゾーンの削除",
+    "label.action.delete.zone.processing": "ゾーンを削除しています...",
+    "label.action.destroy.instance": "インスタンスの破棄",
+    "label.action.destroy.instance.processing": "インスタンスを破棄しています...",
+    "label.action.destroy.systemvm": "システム VM の破棄",
+    "label.action.destroy.systemvm.processing": "システム VM を破棄しています...",
+    "label.action.detach.disk": "ディスクのデタッチ",
+    "label.action.detach.disk.processing": "ディスクをデタッチしています...",
+    "label.action.detach.iso": "ISO のデタッチ",
+    "label.action.detach.iso.processing": "ISO をデタッチしています...",
+    "label.action.disable.account": "アカウントの無効化",
+    "label.action.disable.account.processing": "アカウントを無効にしています...",
+    "label.action.disable.cluster": "クラスターの無効化",
+    "label.action.disable.cluster.processing": "クラスターを無効にしています...",
+    "label.action.disable.nexusVswitch": "Nexus 1000V の無効化",
+    "label.action.disable.physical.network": "物理ネットワークの無効化",
+    "label.action.disable.pod": "ポッドの無効化",
+    "label.action.disable.pod.processing": "ポッドを無効にしています...",
+    "label.action.disable.static.NAT": "静的 NAT の無効化",
+    "label.action.disable.static.NAT.processing": "静的 NAT を無効にしています...",
+    "label.action.disable.user": "ユーザーの無効化",
+    "label.action.disable.user.processing": "ユーザーを無効にしています...",
+    "label.action.disable.zone": "ゾーンの無効化",
+    "label.action.disable.zone.processing": "ゾーンを無効にしています...",
+    "label.action.download.ISO": "ISO のダウンロード",
+    "label.action.download.template": "テンプレートのダウンロード",
+    "label.action.download.volume": "ボリュームのダウンロード",
+    "label.action.download.volume.processing": "ボリュームをダウンロードしています...",
+    "label.action.edit.ISO": "ISO の編集",
+    "label.action.edit.account": "アカウントの編集",
+    "label.action.edit.disk.offering": "ディスク オファリングの編集",
+    "label.action.edit.domain": "ドメインの編集",
+    "label.action.edit.global.setting": "グローバル設定の編集",
+    "label.action.edit.host": "ホストの編集",
+    "label.action.edit.instance": "インスタンスの編集",
+    "label.action.edit.network": "ネットワークの編集",
+    "label.action.edit.network.offering": "ネットワーク オファリングの編集",
+    "label.action.edit.network.processing": "ネットワークを編集しています...",
+    "label.action.edit.pod": "ポッドの編集",
+    "label.action.edit.primary.storage": "プライマリ ストレージの編集",
+    "label.action.edit.resource.limits": "リソース制限の編集",
+    "label.action.edit.service.offering": "サービス オファリングの編集",
+    "label.action.edit.template": "テンプレートの編集",
+    "label.action.edit.user": "ユーザーの編集",
+    "label.action.edit.zone": "ゾーンの編集",
+    "label.action.enable.account": "アカウントの有効化",
+    "label.action.enable.account.processing": "アカウントを有効にしています...",
+    "label.action.enable.cluster": "クラスターの有効化",
+    "label.action.enable.cluster.processing": "クラスターを有効にしています...",
+    "label.action.enable.maintenance.mode": "保守モードの有効化",
+    "label.action.enable.maintenance.mode.processing": "保守モードを有効にしています...",
+    "label.action.enable.nexusVswitch": "Nexus 1000V の有効化",
+    "label.action.enable.physical.network": "物理ネットワークの有効化",
+    "label.action.enable.pod": "ポッドの有効化",
+    "label.action.enable.pod.processing": "ポッドを有効にしています...",
+    "label.action.enable.static.NAT": "静的 NAT の有効化",
+    "label.action.enable.static.NAT.processing": "静的 NAT を有効にしています...",
+    "label.action.enable.user": "ユーザーの有効化",
+    "label.action.enable.user.processing": "ユーザーを有効にしています...",
+    "label.action.enable.zone": "ゾーンの有効化",
+    "label.action.enable.zone.processing": "ゾーンを有効にしています...",
+    "label.action.expunge.instance": "インスタンスの抹消",
+    "label.action.expunge.instance.processing": "インスタンスを抹消しています...",
+    "label.action.force.reconnect": "強制再接続",
+    "label.action.force.reconnect.processing": "再接続しています...",
+    "label.action.generate.keys": "キーの生成",
+    "label.action.generate.keys.processing": "キーを生成しています...",
+    "label.action.list.nexusVswitch": "Nexus 1000V の一覧表示",
+    "label.action.lock.account": "アカウントのロック",
+    "label.action.lock.account.processing": "アカウントをロックしています...",
+    "label.action.manage.cluster": "クラスターの管理対象化",
+    "label.action.manage.cluster.processing": "クラスターを管理対象にしています...",
+    "label.action.migrate.instance": "インスタンスの移行",
+    "label.action.migrate.instance.processing": "インスタンスを移行しています...",
+    "label.action.migrate.router": "ルーターの移行",
+    "label.action.migrate.router.processing": "ルーターを移行しています...",
+    "label.action.migrate.systemvm": "システム VM の移行",
+    "label.action.migrate.systemvm.processing": "システム VM を移行しています...",
+    "label.action.reboot.instance": "インスタンスの再起動",
+    "label.action.reboot.instance.processing": "インスタンスを再起動しています...",
+    "label.action.reboot.router": "ルーターの再起動",
+    "label.action.reboot.router.processing": "ルーターを再起動しています...",
+    "label.action.reboot.systemvm": "システム VM の再起動",
+    "label.action.reboot.systemvm.processing": "システム VM を再起動しています...",
+    "label.action.recurring.snapshot": "定期スナップショット",
+    "label.action.register.iso": "ISO の登録",
+    "label.action.register.template": "URL からのテンプレートの登録",
+    "label.action.release.ip": "IP アドレスの解放",
+    "label.action.release.ip.processing": "IP アドレスを解放しています...",
+    "label.action.remove.host": "ホストの削除",
+    "label.action.remove.host.processing": "ホストを削除しています...",
+    "label.action.reset.password": "パスワードのリセット",
+    "label.action.reset.password.processing": "パスワードをリセットしています...",
+    "label.action.resize.volume": "ボリューム サイズの変更",
+    "label.action.resize.volume.processing": "ボリュームのサイズを変更しています...",
+    "label.action.resource.limits": "リソース制限",
+    "label.action.restore.instance": "インスタンスの復元",
+    "label.action.restore.instance.processing": "インスタンスを復元しています...",
+    "label.action.revert.snapshot": "スナップショットに戻す",
+    "label.action.revert.snapshot.processing": "スナップショットに戻しています...",
+    "label.action.start.instance": "インスタンスの起動",
+    "label.action.start.instance.processing": "インスタンスを起動しています...",
+    "label.action.start.router": "ルーターの起動",
+    "label.action.start.router.processing": "ルーターを起動しています...",
+    "label.action.start.systemvm": "システム VM の起動",
+    "label.action.start.systemvm.processing": "システム VM を起動しています...",
+    "label.action.stop.instance": "インスタンスの停止",
+    "label.action.stop.instance.processing": "インスタンスを停止しています...",
+    "label.action.stop.router": "ルーターの停止",
+    "label.action.stop.router.processing": "ルーターを停止しています...",
+    "label.action.stop.systemvm": "システム VM の停止",
+    "label.action.stop.systemvm.processing": "システム VM を停止しています...",
+    "label.action.take.snapshot": "スナップショットの作成",
+    "label.action.take.snapshot.processing": "スナップショットを作成しています....",
+    "label.action.unmanage.cluster": "クラスターの非管理対象化",
+    "label.action.unmanage.cluster.processing": "クラスターを非管理対象にしています...",
+    "label.action.update.OS.preference": "OS 基本設定の更新",
+    "label.action.update.OS.preference.processing": "OS 基本設定を更新しています...",
+    "label.action.update.resource.count": "リソース数の更新",
+    "label.action.update.resource.count.processing": "リソース数を更新しています...",
+    "label.action.vmsnapshot.create": "VM スナップショットの作成",
+    "label.action.vmsnapshot.delete": "VM スナップショットの削除",
+    "label.action.vmsnapshot.revert": "VM スナップショットに戻す",
+    "label.actions": "操作",
+    "label.activate.project": "プロジェクトのアクティブ化",
+    "label.active.sessions": "アクティブなセッション",
+    "label.add": "追加",
+    "label.add.ACL": "ACL の追加",
+    "label.add.BigSwitchBcf.device": "BigSwitch BCF コントローラの追加",
+    "label.add.BrocadeVcs.device": "Brocade VCS スイッチの追加",
+    "label.add.F5.device": "F5 デバイスの追加",
+    "label.add.LDAP.account": "LDAP アカウントの追加",
+    "label.add.NiciraNvp.device": "NVP Controller の追加",
+    "label.add.NuageVsp.device": "Nuage Virtualized Services Directory (VSD) の追加",
+    "label.add.OpenDaylight.device": "OpenDaylight コントローラーの追加",
+    "label.add.PA.device": "Palo Alto デバイスの追加",
+    "label.add.SRX.device": "SRX デバイスの追加",
+    "label.add.VM.to.tier": "階層への VM の追加",
+    "label.add.VPN.gateway": "VPN ゲートウェイの追加",
+    "label.add.account": "アカウントの追加",
+    "label.add.account.to.project": "プロジェクトへのアカウントの追加",
+    "label.add.accounts": "アカウントの追加",
+    "label.add.accounts.to": "アカウントの追加先:",
+    "label.add.acl.list": "ACL 一覧の追加",
+    "label.add.affinity.group": "新しいアフィニティ グループの追加",
+    "label.add.baremetal.dhcp.device": "ベアメタル DHCP デバイスの追加",
+    "label.add.baremetal.rack.configuration": "ベアメタルラック設定の追加",
+    "label.add.by": "追加単位",
+    "label.add.by.cidr": "CIDR で追加",
+    "label.add.by.group": "グループで追加",
+    "label.add.ciscoASA1000v": "Cisco ASA 1000V リソースの追加",
+    "label.add.cluster": "クラスターの追加",
+    "label.add.compute.offering": "コンピューティング オファリングの追加",
+    "label.add.direct.iprange": "直接 IP アドレスの範囲の追加",
+    "label.add.disk.offering": "ディスク オファリングの追加",
+    "label.add.domain": "ドメインの追加",
+    "label.add.egress.rule": "送信規則の追加",
+    "label.add.firewall": "ファイアウォール規則の追加",
+    "label.add.globo.dns": "GloboDNS の追加",
+    "label.add.gslb": "GSLB の追加",
+    "label.add.guest.network": "ゲスト ネットワークの追加",
+    "label.add.host": "ホストの追加",
+    "label.add.ingress.rule": "受信規則の追加",
+    "label.add.intermediate.certificate": "中間証明書の追加",
+    "label.add.internal.lb": "内部 LB の追加",
+    "label.add.ip.range": "IP アドレスの範囲の追加",
+    "label.add.isolated.guest.network": "分離ゲストネットワークの追加",
+    "label.add.isolated.guest.network.with.sourcenat": "分離ゲストネットワーク(送信元NAT)の追加",
+    "label.add.isolated.network": "分離されたネットワークの追加",
+    "label.add.ldap.account": "LDAP アカウントの追加",
+    "label.add.list.name": "ACL 一覧名",
+    "label.add.load.balancer": "ロード バランサーの追加",
+    "label.add.more": "そのほかの項目の追加",
+    "label.add.netScaler.device": "NetScaler デバイスの追加",
+    "label.add.network": "ネットワークの追加",
+    "label.add.network.ACL": "ネットワーク ACL の追加",
+    "label.add.network.acl.list": "ネットワーク ACL 一覧の追加",
+    "label.add.network.device": "ネットワーク デバイスの追加",
+    "label.add.network.offering": "ネットワーク オファリングの追加",
+    "label.add.new.F5": "新しい F5 の追加",
+    "label.add.new.NetScaler": "新しい NetScaler の追加",
+    "label.add.new.PA": "新しい Palo Alto の追加",
+    "label.add.new.SRX": "新しい SRX の追加",
+    "label.add.new.gateway": "新しいゲートウェイの追加",
+    "label.add.new.tier": "新しい階層の追加",
+    "label.add.nfs.secondary.staging.store": "NFS セカンダリ ステージング ストアの追加",
+    "label.add.physical.network": "物理ネットワークの追加",
+    "label.add.pod": "ポッドの追加",
+    "label.add.port.forwarding.rule": "ポート転送規則の追加",
+    "label.add.portable.ip.range": "ポータブル IP アドレスの範囲の追加",
+    "label.add.primary.storage": "プライマリ ストレージの追加",
+    "label.add.private.gateway": "プライベートゲートウェイの追加",
+    "label.add.region": "リージョンの追加",
+    "label.add.resources": "リソースの追加",
+    "label.add.role": "Add Role",
+    "label.add.route": "ルートの追加",
+    "label.add.rule": "規則の追加",
+    "label.add.secondary.storage": "セカンダリ ストレージの追加",
+    "label.add.security.group": "セキュリティ グループの追加",
+    "label.add.service.offering": "サービス オファリングの追加",
+    "label.add.static.nat.rule": "静的 NAT 規則の追加",
+    "label.add.static.route": "静的ルートの追加",
+    "label.add.system.service.offering": "システム サービス オファリングの追加",
+    "label.add.template": "テンプレートの追加",
+    "label.add.to.group": "追加先グループ",
+    "label.add.ucs.manager": "UCS Manager の追加",
+    "label.add.user": "ユーザーの追加",
+    "label.add.userdata": "ユーザーデータ",
+    "label.add.vlan": "VLAN の追加",
+    "label.add.vm": "VM の追加",
+    "label.add.vms": "VM の追加",
+    "label.add.vms.to.lb": "ロード バランサー規則への VM の追加",
+    "label.add.vmware.datacenter": "VMware データセンターの追加",
+    "label.add.vnmc.device": "VNMC デバイスの追加",
+    "label.add.vnmc.provider": "VNMC プロバイダーの追加",
+    "label.add.volume": "ボリュームの追加",
+    "label.add.vpc": "VPC の追加",
+    "label.add.vpc.offering": "VPC オファリングの追加",
+    "label.add.vpn.customer.gateway": "VPN カスタマー ゲートウェイの追加",
+    "label.add.vpn.user": "VPN ユーザーの追加",
+    "label.add.vxlan": "VXLAN の追加",
+    "label.add.zone": "ゾーンの追加",
+    "label.added.brocade.vcs.switch": "新しい Brocade VCS スイッチを追加しました",
+    "label.added.network.offering": "ネットワーク オファリングを追加しました",
+    "label.added.new.bigswitch.bcf.controller": "新しい BigSwitch BCF コントローラを追加しました",
+    "label.added.nicira.nvp.controller": "新しい Nicira NVP Controller を追加しました",
+    "label.addes.new.f5": "新しい F5 を追加しました",
+    "label.adding": "追加しています",
+    "label.adding.cluster": "クラスターを追加しています",
+    "label.adding.failed": "追加できませんでした",
+    "label.adding.pod": "ポッドを追加しています",
+    "label.adding.processing": "追加しています...",
+    "label.adding.succeeded": "追加しました",
+    "label.adding.user": "ユーザーを追加しています",
+    "label.adding.zone": "ゾーンを追加しています",
+    "label.additional.networks": "追加のネットワーク",
+    "label.admin": "管理者",
+    "label.admin.accounts": "管理者アカウント",
+    "label.advanced": "拡張",
+    "label.advanced.mode": "拡張モード",
+    "label.advanced.search": "高度な検索",
+    "label.affinity": "アフィニティ",
+    "label.affinity.group": "アフィニティ グループ",
+    "label.affinity.groups": "アフィニティ グループ",
+    "label.agent.password": "エージェント パスワード",
+    "label.agent.port": "エージェントポート",
+    "label.agent.state": "エージェントの状態",
+    "label.agent.username": "エージェント ユーザー名",
+    "label.agree": "同意する",
+    "label.alert": "アラート",
+    "label.alert.archived": "アラートがアーカイブされました",
+    "label.alert.deleted": "アラートが削除されました",
+    "label.alert.details": "アラートの詳細",
+    "label.algorithm": "アルゴリズム",
+    "label.allocated": "割り当て済み",
+    "label.allocation.state": "割り当て状態",
+    "label.allow": "許可",
+    "label.anti.affinity": "アンチアフィニティ",
+    "label.anti.affinity.group": "アンチアフィニティ グループ",
+    "label.anti.affinity.groups": "アンチアフィニティ グループ",
+    "label.api.key": "API キー",
+    "label.api.version": "API バージョン",
+    "label.app.name": "CloudStack",
+    "label.apply": "適用",
+    "label.archive": "アーカイブ",
+    "label.archive.alerts": "アラートのアーカイブ",
+    "label.archive.events": "イベントのアーカイブ",
+    "label.assign": "割り当て",
+    "label.assign.instance.another": "ほかのアカウントへのインスタンスの割り当て",
+    "label.assign.to.load.balancer": "ロード バランサーにインスタンスを割り当てています",
+    "label.assign.vms": "仮想マシンの割り当て",
+    "label.assigned.vms": "割り当て済み VM",
+    "label.associate.public.ip": "パブリック IP アドレスの関連付け",
+    "label.associated.network": "関連付けられたネットワーク",
+    "label.associated.network.id": "関連付けられたネットワーク ID",
+    "label.associated.profile": "関連付けられたプロファイル",
+    "label.attached.iso": "アタッチされた ISO",
+    "label.author.email": "作成者の電子メール",
+    "label.author.name": "作成者の名前",
+    "label.autoscale": "自動サイズ設定",
+    "label.autoscale.configuration.wizard": "オートスケール設定ウィザード",
+    "label.availability": "可用性",
+    "label.availability.zone": "アベイラビリティ ゾーン",
+    "label.availabilityZone": "アベイラビリティゾーン",
+    "label.available": "使用可能",
+    "label.available.public.ips": "使用できるパブリック IP アドレス",
+    "label.back": "戻る",
+    "label.bandwidth": "帯域幅",
+    "label.baremetal.dhcp.devices": "ベアメタル DHCP デバイス",
+    "label.baremetal.dhcp.provider": "ベアメタル DHCP プロバイダー",
+    "label.baremetal.pxe.device": "ベアメタル PXE デバイスの追加",
+    "label.baremetal.pxe.devices": "ベアメタル PXE デバイス",
+    "label.baremetal.pxe.provider": "ベアメタル PXE プロバイダー",
+    "label.baremetal.rack.configuration": "ベアメタルラック設定",
+    "label.basic": "基本",
+    "label.basic.mode": "基本モード",
+    "label.bigswitch.bcf.details": "BigSwitch BCF の詳細",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF の NAT を有効化しました",
+    "label.bigswitch.controller.address": "BigSwitch BCF コントローラのアドレス",
+    "label.blade.id": "ブレード ID",
+    "label.blades": "ブレード",
+    "label.bootable": "起動可能",
+    "label.broadcast.domain.range": "ブロードキャスト ドメインの範囲",
+    "label.broadcast.domain.type": "ブロードキャスト ドメインの種類",
+    "label.broadcast.uri": "ブロードキャスト URI",
+    "label.broadcasturi": "ブロードキャスト URI",
+    "label.broadcat.uri": "ブロードキャスト URI",
+    "label.brocade.vcs.address": "VCS スイッチ アドレス",
+    "label.brocade.vcs.details": "Brocade VCS スイッチの詳細",
+    "label.by.account": "アカウント",
+    "label.by.alert.type": "アラートの種類",
+    "label.by.availability": "可用性",
+    "label.by.date.end": "日付 (終了)",
+    "label.by.date.start": "日付 (開始)",
+    "label.by.domain": "ドメイン",
+    "label.by.end.date": "終了日",
+    "label.by.event.type": "イベントの種類",
+    "label.by.level": "レベル",
+    "label.by.pod": "ポッド",
+    "label.by.role": "役割",
+    "label.by.start.date": "開始日",
+    "label.by.state": "状態",
+    "label.by.traffic.type": "トラフィックの種類",
+    "label.by.type": "種類",
+    "label.by.type.id": "種類 ID",
+    "label.by.zone": "ゾーン",
+    "label.bytes.received": "受信バイト",
+    "label.bytes.sent": "送信バイト",
+    "label.cache.mode": "書き込みキャッシュの種類",
+    "label.cancel": "キャンセル",
+    "label.capacity": "処理能力",
+    "label.capacity.bytes": "処理能力 (バイト)",
+    "label.capacity.iops": "処理能力 (IOPS)",
+    "label.certificate": "サーバー証明書",
+    "label.change.affinity": "アフィニティの変更",
+    "label.change.ipaddress": "NIC の IP アドレスを変更",
+    "label.change.service.offering": "サービス オファリングの変更",
+    "label.change.value": "値の変更",
+    "label.character": "文字",
+    "label.chassis": "シャーシ",
+    "label.checksum": "チェックサム",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR またはアカウント/セキュリティ グループ",
+    "label.cidr.list": "送信元 CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000V の IP アドレス",
+    "label.cisco.nexus1000v.password": "Nexus 1000V のパスワード",
+    "label.cisco.nexus1000v.username": "Nexus 1000V のユーザー名",
+    "label.ciscovnmc.resource.details": "Cisco VNMC リソースの詳細",
+    "label.clean.up": "クリーン アップする",
+    "label.clear.list": "一覧の消去",
+    "label.close": "閉じる",
+    "label.cloud.console": "クラウド管理コンソール",
+    "label.cloud.managed": "Cloud.com による管理",
+    "label.cluster": "クラスター",
+    "label.cluster.name": "クラスター名",
+    "label.cluster.type": "クラスターの種類",
+    "label.clusters": "クラスター",
+    "label.clvm": "CLVM",
+    "label.code": "コード",
+    "label.community": "コミュニティ",
+    "label.compute": "コンピューティング",
+    "label.compute.and.storage": "コンピューティングとストレージ",
+    "label.compute.offering": "コンピューティング オファリング",
+    "label.compute.offerings": "コンピューティング オファリング",
+    "label.configuration": "構成",
+    "label.configure": "構成",
+    "label.configure.ldap": "LDAP の構成",
+    "label.configure.network.ACLs": "ネットワーク ACL の構成",
+    "label.configure.sticky.policy": "スティッキーポリシーの設定",
+    "label.configure.vpc": "VPC の構成",
+    "label.confirm.password": "パスワードの確認入力",
+    "label.confirmation": "確認",
+    "label.congratulations": "セットアップはこれで完了です。",
+    "label.conserve.mode": "節約モード",
+    "label.console.proxy": "コンソール プロキシ",
+    "label.console.proxy.vm": "コンソール プロキシ VM",
+    "label.continue": "続行",
+    "label.continue.basic.install": "基本インストールを続行する",
+    "label.copying.iso": "ISO をコピーしています",
+    "label.corrections.saved": "接続が保存されました",
+    "label.counter": "カウンター",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "割り当て済みの CPU",
+    "label.cpu.allocated.for.VMs": "VM に割り当て済みの CPU",
+    "label.cpu.limits": "CPU 制限",
+    "label.cpu.mhz": "CPU (MHz)",
+    "label.cpu.utilized": "CPU 使用率",
+    "label.create.VPN.connection": "VPN 接続の作成",
+    "label.create.nfs.secondary.staging.storage": "NFS セカンダリ ステージング ストアを作成する",
+    "label.create.nfs.secondary.staging.store": "NFS セカンダリ ステージング ストアを作成する",
+    "label.create.project": "プロジェクトの作成",
+    "label.create.ssh.key.pair": "SSH のキーペアを作成",
+    "label.create.template": "テンプレートの作成",
+    "label.created": "作成日時",
+    "label.created.by.system": "システム作成",
+    "label.cross.zones": "クロス ゾーン",
+    "label.custom": "カスタム",
+    "label.custom.disk.iops": "カスタム IOPS",
+    "label.custom.disk.offering": "カスタムディスクオファリング",
+    "label.custom.disk.size": "カスタム ディスク サイズ",
+    "label.daily": "毎日",
+    "label.data.disk.offering": "データ ディスク オファリング",
+    "label.date": "日時",
+    "label.day": "日",
+    "label.day.of.month": "毎月指定日",
+    "label.day.of.week": "毎週指定日",
+    "label.dc.name": "DC 名",
+    "label.dead.peer.detection": "停止ピアを検出する",
+    "label.decline.invitation": "招待の辞退",
+    "label.dedicate": "専用に設定",
+    "label.dedicate.cluster": "クラスターを専用に設定",
+    "label.dedicate.host": "ホストを専用に設定",
+    "label.dedicate.pod": "ポッドを専用に設定",
+    "label.dedicate.vlan.vni.range": "VLAN/VNI の範囲を専用に設定",
+    "label.dedicate.zone": "ゾーンを専用に設定",
+    "label.dedicated": "専用",
+    "label.dedicated.vlan.vni.ranges": "専用 VLAN/VNI の範囲",
+    "label.default": "デフォルト",
+    "label.default.egress.policy": "デフォルトの送信ポリシー",
+    "label.default.use": "デフォルト使用",
+    "label.default.view": "デフォルト ビュー",
+    "label.delete": "削除",
+    "label.delete.BigSwitchBcf": "BigSwitch BCF コントローラの削除",
+    "label.delete.BrocadeVcs": "Brocade VCS スイッチの削除",
+    "label.delete.F5": "F5 の削除",
+    "label.delete.NetScaler": "NetScaler の削除",
+    "label.delete.NiciraNvp": "NVP Controller の削除",
+    "label.delete.NuageVsp": "Nuage VSD の削除",
+    "label.delete.OpenDaylight.device": "OpenDaylight コントローラーの削除",
+    "label.delete.PA": "Palo Alto の削除",
+    "label.delete.SRX": "SRX の削除",
+    "label.delete.VPN.connection": "VPN 接続の削除",
+    "label.delete.VPN.customer.gateway": "VPN カスタマー ゲートウェイの削除",
+    "label.delete.VPN.gateway": "VPN ゲートウェイの削除",
+    "label.delete.acl.list": "ACL 一覧の削除",
+    "label.delete.affinity.group": "アフィニティ グループの削除",
+    "label.delete.alerts": "アラートの削除",
+    "label.delete.baremetal.rack.configuration": "ベアメタルラック設定の削除",
+    "label.delete.ciscoASA1000v": "Cisco ASA 1000V リソースの削除",
+    "label.delete.ciscovnmc.resource": "Cisco VNMC リソースの削除",
+    "label.delete.events": "イベントの削除",
+    "label.delete.gateway": "ゲートウェイの削除",
+    "label.delete.internal.lb": "内部 LB の削除",
+    "label.delete.portable.ip.range": "ポータブル IP アドレスの範囲の削除",
+    "label.delete.profile": "プロファイルの削除",
+    "label.delete.project": "プロジェクトの削除",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "セカンダリ ステージング ストアの削除",
+    "label.delete.ucs.manager": "UCS Manager の削除",
+    "label.delete.vpn.user": "VPN ユーザーの削除",
+    "label.deleting.failed": "削除できませんでした",
+    "label.deleting.processing": "削除しています...",
+    "label.deny": "拒否",
+    "label.deployment.planner": "展開プランナー",
+    "label.description": "説明",
+    "label.destination.physical.network.id": "ブリッジ先物理ネットワーク ID",
+    "label.destination.zone": "コピー先ゾーン",
+    "label.destroy": "破棄",
+    "label.destroy.router": "ルーターの破棄",
+    "label.destroy.vm.graceperiod": "VM 破棄の猶予期間",
+    "label.detaching.disk": "ディスクをデタッチしています",
+    "label.details": "詳細",
+    "label.device.id": "デバイス ID",
+    "label.devices": "デバイス",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "直接アタッチされているパブリック IP アドレス",
+    "label.direct.ips": "共有ネットワークの IP アドレス",
+    "label.disable.autoscale": "自動サイズ設定の無効化",
+    "label.disable.host": "ホストの無効化",
+    "label.disable.network.offering": "ネットワーク オファリングの無効化",
+    "label.disable.provider": "プロバイダーの無効化",
+    "label.disable.vnmc.provider": "VNMC プロバイダーの無効化",
+    "label.disable.vpc.offering": "VPC オファリングの無効化",
+    "label.disable.vpn": "リモート アクセス VPN の無効化",
+    "label.disabled": "無効",
+    "label.disabling.vpn.access": "VPN アクセスを無効にしています",
+    "label.disassociate.profile.blade": "プロファイルとブレードの関連付けの解除",
+    "label.disbale.vnmc.device": "VNMC デバイスの無効化",
+    "label.disk.allocated": "割り当て済みのディスク",
+    "label.disk.bytes.read.rate": "ディスク読み取り速度 (BPS)",
+    "label.disk.bytes.write.rate": "ディスク書き込み速度 (BPS)",
+    "label.disk.iops.max": "最大 IOPS",
+    "label.disk.iops.min": "最小 IOPS",
+    "label.disk.iops.read.rate": "ディスク読み取り速度 (IOPS)",
+    "label.disk.iops.total": "IOPS 合計",
+    "label.disk.iops.write.rate": "ディスク書き込み速度 (IOPS)",
+    "label.disk.offering": "ディスク オファリング",
+    "label.disk.offering.details": "ディスクオファリングの詳細",
+    "label.disk.provisioningtype": "プロビジョニングの種類",
+    "label.disk.read.bytes": "ディスク読み取り (バイト)",
+    "label.disk.read.io": "ディスク読み取り (IO)",
+    "label.disk.size": "ディスク サイズ",
+    "label.disk.size.gb": "ディスク サイズ (GB)",
+    "label.disk.total": "ディスク合計",
+    "label.disk.volume": "ディスク ボリューム",
+    "label.disk.write.bytes": "ディスク書き込み (バイト)",
+    "label.disk.write.io": "ディスク書き込み (IO)",
+    "label.diskoffering": "ディスクオファリング",
+    "label.display.name": "表示名",
+    "label.display.text": "表示テキスト",
+    "label.distributedrouter": "分散ルーター",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "ドメイン",
+    "label.domain.admin": "ドメイン管理者",
+    "label.domain.details": "ドメインの詳細",
+    "label.domain.id": "ドメイン ID",
+    "label.domain.lower": "ドメイン",
+    "label.domain.name": "ドメイン名",
+    "label.domain.router": "ドメイン ルーター",
+    "label.domain.suffix": "DNS ドメイン サフィックス (例: xyz.com)",
+    "label.done": "完了",
+    "label.double.quotes.are.not.allowed": "二重引用符は使用できません",
+    "label.download.progress": "ダウンロードの進捗状況",
+    "label.drag.new.position": "新しい位置にドラッグ",
+    "label.duration.in.sec": "持続時間(秒)",
+    "label.dynamically.scalable": "動的にサイズ設定する",
+    "label.edit": "編集",
+    "label.edit.acl.rule": "ACL 規則の編集",
+    "label.edit.affinity.group": "アフィニティ グループの編集",
+    "label.edit.lb.rule": "LB 規則の編集",
+    "label.edit.network.details": "ネットワークの詳細の編集",
+    "label.edit.project.details": "プロジェクトの詳細の編集",
+    "label.edit.region": "リージョンの編集",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "ルールの編集",
+    "label.edit.secondary.ips": "セカンダリ IP の編集",
+    "label.edit.tags": "タグの編集",
+    "label.edit.traffic.type": "トラフィックの種類の編集",
+    "label.edit.vpc": "VPC の編集",
+    "label.egress.default.policy": "送信のデフォルト ポリシー",
+    "label.egress.rule": "送信規則",
+    "label.egress.rules": "送信規則",
+    "label.elastic": "エラスティック",
+    "label.elastic.IP": "エラスティック IP アドレス",
+    "label.elastic.LB": "エラスティック LB",
+    "label.email": "電子メール",
+    "label.email.lower": "電子メール",
+    "label.enable.autoscale": "自動サイズ設定の有効化",
+    "label.enable.host": "ホストの有効化",
+    "label.enable.network.offering": "ネットワーク オファリングの有効化",
+    "label.enable.provider": "プロバイダーの有効化",
+    "label.enable.s3": "S3 ベースのセカンダリ ストレージの有効化",
+    "label.enable.swift": "Swift の有効化",
+    "label.enable.vnmc.device": "VNMC デバイスの有効化",
+    "label.enable.vnmc.provider": "VNMC プロバイダーの有効化",
+    "label.enable.vpc.offering": "VPC オファリングの有効化",
+    "label.enable.vpn": "リモート アクセス VPN の有効化",
+    "label.enabling.vpn": "VPN を有効にしています",
+    "label.enabling.vpn.access": "VPN アクセスを有効にしています",
+    "label.end.IP": "終了 IP アドレス",
+    "label.end.port": "終了ポート",
+    "label.end.reserved.system.IP": "予約済み終了システム IP アドレス",
+    "label.end.vlan": "終了 VLAN",
+    "label.end.vxlan": "終了 VXLAN",
+    "label.endpoint": "エンドポイント",
+    "label.endpoint.or.operation": "エンドポイントまたは操作",
+    "label.enter.token": "トークンの入力",
+    "label.error": "エラー",
+    "label.error.code": "エラー コード",
+    "label.error.upper": "エラー",
+    "label.esx.host": "ESX/ESXi ホスト",
+    "label.event": "イベント",
+    "label.event.archived": "イベントがアーカイブされました",
+    "label.event.deleted": "イベントが削除されました",
+    "label.every": "毎",
+    "label.example": "例",
+    "label.expunge": "抹消",
+    "label.external.link": "外部リンク",
+    "label.extractable": "抽出可能",
+    "label.extractable.lower": "展開",
+    "label.f5": "F5",
+    "label.f5.details": "F5 の詳細",
+    "label.failed": "失敗",
+    "label.featured": "おすすめ",
+    "label.fetch.latest": "最新情報の取得",
+    "label.filterBy": "フィルター",
+    "label.fingerprint": "フィンガープリント",
+    "label.firewall": "ファイアウォール",
+    "label.first.name": "名",
+    "label.firstname.lower": "名",
+    "label.format": "形式",
+    "label.format.lower": "フォーマット",
+    "label.friday": "金曜日",
+    "label.full": "完全",
+    "label.full.path": "フル パス",
+    "label.gateway": "ゲートウェイ",
+    "label.general.alerts": "一般アラート",
+    "label.generating.url": "URL を生成しています",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS の設定",
+    "label.gluster.volume": "ボリューム",
+    "label.go.step.2": "手順 2 に進む",
+    "label.go.step.3": "手順 3 に進む",
+    "label.go.step.4": "手順 4 に進む",
+    "label.go.step.5": "手順 5 に進む",
+    "label.gpu": "GPU",
+    "label.group": "グループ",
+    "label.group.by.account": "アカウント別グループ",
+    "label.group.by.cluster": "クラスター別グループ",
+    "label.group.by.pod": "ポッド別グループ",
+    "label.group.by.zone": "ゾーン別グループ",
+    "label.group.optional": "グループ (オプション)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "割り当て済み負荷分散",
+    "label.gslb.assigned.lb.more": "負荷分散の追加割り当て",
+    "label.gslb.delete": "GSLB の削除",
+    "label.gslb.details": "GSLB の詳細",
+    "label.gslb.domain.name": "GSLB ドメイン名",
+    "label.gslb.lb.details": "負荷分散の詳細",
+    "label.gslb.lb.remove": "この GSLB から負荷分散を削除",
+    "label.gslb.lb.rule": "負荷分散規則",
+    "label.gslb.service": "GSLB サービス",
+    "label.gslb.service.private.ip": "GSLB サービスのプライベート IP アドレス",
+    "label.gslb.service.public.ip": "GSLB サービスのパブリック IP アドレス",
+    "label.gslb.servicetype": "サービスの種類",
+    "label.guest": "ゲスト",
+    "label.guest.cidr": "ゲスト CIDR",
+    "label.guest.end.ip": "ゲストの終了 IP アドレス",
+    "label.guest.gateway": "ゲスト ゲートウェイ",
+    "label.guest.ip": "ゲスト IP アドレス",
+    "label.guest.ip.range": "ゲスト IP アドレスの範囲",
+    "label.guest.netmask": "ゲスト ネットマスク",
+    "label.guest.network.details": "ゲスト ネットワークの詳細",
+    "label.guest.networks": "ゲスト ネットワーク",
+    "label.guest.start.ip": "ゲストの開始 IP アドレス",
+    "label.guest.traffic": "ゲスト トラフィック",
+    "label.guest.traffic.vswitch.name": "ゲスト トラフィックの vSwitch 名",
+    "label.guest.traffic.vswitch.type": "ゲスト トラフィックの vSwitch の種類",
+    "label.guest.type": "ゲストの種類",
+    "label.ha.enabled": "高可用性有効",
+    "label.health.check": "ヘルス チェック",
+    "label.health.check.advanced.options": "拡張オプション:",
+    "label.health.check.configurations.options": "設定オプション:",
+    "label.health.check.interval.in.sec": "ヘルス チェック間隔 (秒)",
+    "label.health.check.message.desc": "ロードバランサーは自動的にインスタンスのヘルスチェックを行い、インスタンスへのトラフィックはヘルスチェックがされません",
+    "label.health.check.wizard": "ヘルスチェック ウィザード",
+    "label.healthy.threshold": "正常しきい値",
+    "label.help": "ヘルプ",
+    "label.hide.ingress.rule": "受信規則を隠す",
+    "label.hints": "ヒント",
+    "label.home": "ホーム",
+    "label.host": "ホスト",
+    "label.host.MAC": "ホストの MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "ホスト名",
+    "label.host.tag": "ホストタグ",
+    "label.host.tags": "ホスト タグ",
+    "label.hosts": "ホスト",
+    "label.hourly": "毎時",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "Hyper-V のトラフィック ラベル",
+    "label.hypervisor": "ハイパーバイザー",
+    "label.hypervisor.capabilities": "ハイパーバイザーの機能",
+    "label.hypervisor.snapshot.reserve": "ハイパーバイザー スナップショット予約",
+    "label.hypervisor.type": "ハイパーバイザーの種類",
+    "label.hypervisor.version": "ハイパーバイザーのバージョン",
+    "label.hypervisors": "ハイパーバイザー",
+    "label.id": "ID",
+    "label.info": "情報",
+    "label.info.upper": "情報",
+    "label.ingress.rule": "受信規則",
+    "label.initiated.by": "開始ユーザー",
+    "label.inside.port.profile": "内部ポート プロファイル",
+    "label.installWizard.addClusterIntro.subtitle": "クラスターについて",
+    "label.installWizard.addClusterIntro.title": "クラスターを追加しましょう",
+    "label.installWizard.addHostIntro.subtitle": "ホストについて",
+    "label.installWizard.addHostIntro.title": "ホストを追加しましょう",
+    "label.installWizard.addPodIntro.subtitle": "ポッドについて",
+    "label.installWizard.addPodIntro.title": "ポッドを追加しましょう",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "プライマリ ストレージについて",
+    "label.installWizard.addPrimaryStorageIntro.title": "プライマリ ストレージを追加しましょう",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "セカンダリ ストレージについて",
+    "label.installWizard.addSecondaryStorageIntro.title": "セカンダリ ストレージを追加しましょう",
+    "label.installWizard.addZone.title": "ゾーンの追加",
+    "label.installWizard.addZoneIntro.subtitle": "ゾーンについて",
+    "label.installWizard.addZoneIntro.title": "ゾーンを追加しましょう",
+    "label.installWizard.click.launch": "[起動] をクリックしてください。",
+    "label.installWizard.subtitle": "このガイド ツアーは CloudStack&#8482; 環境のセットアップに役立ちます",
+    "label.installWizard.title": "CloudStack&#8482; へようこそ",
+    "label.instance": "インスタンス",
+    "label.instance.limits": "インスタンス制限",
+    "label.instance.name": "インスタンス名",
+    "label.instance.port": "インスタンス ポート",
+    "label.instance.scaled.up": "インスタンスを選択したオファリングにスケールする",
+    "label.instances": "インスタンス",
+    "label.instanciate.template.associate.profile.blade": "テンプレートのインスタンス作成およびプロファイルとブレードの関連付け",
+    "label.intermediate.certificate": "中間証明書 {0}",
+    "label.internal.dns.1": "内部 DNS 1",
+    "label.internal.dns.2": "内部 DNS 2",
+    "label.internal.lb": "内部 LB",
+    "label.internal.lb.details": "内部 LB の詳細",
+    "label.internal.name": "内部名",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "間隔の種類",
+    "label.introduction.to.cloudstack": "CloudStack&#8482; の紹介",
+    "label.invalid.integer": "無効な整数",
+    "label.invalid.number": "無効な数",
+    "label.invitations": "招待状",
+    "label.invite": "招待",
+    "label.invite.to": "招待するプロジェクト:",
+    "label.invited.accounts": "招待済みアカウント",
+    "label.ip": "IP",
+    "label.ip.address": "IP アドレス",
+    "label.ip.allocations": "IP アドレスの割り当て",
+    "label.ip.limits": "パブリック IP アドレスの制限",
+    "label.ip.or.fqdn": "IP アドレスまたは FQDN",
+    "label.ip.range": "IP アドレスの範囲",
+    "label.ip.ranges": "IP アドレスの範囲",
+    "label.ipaddress": "IP アドレス",
+    "label.ips": "IP アドレス",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 終了 IP アドレス",
+    "label.ipv4.gateway": "IPv4 ゲートウェイ",
+    "label.ipv4.netmask": "IPv4 ネットマスク",
+    "label.ipv4.start.ip": "IPv4 開始 IP アドレス",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP アドレス",
+    "label.ipv6.dns1": "IPv6 DNS 1",
+    "label.ipv6.dns2": "IPv6 DNS 2",
+    "label.ipv6.end.ip": "IPv6 終了 IP アドレス",
+    "label.ipv6.gateway": "IPv6 ゲートウェイ",
+    "label.ipv6.start.ip": "IPv6 開始 IP アドレス",
+    "label.is.default": "デフォルト",
+    "label.is.redundant.router": "冗長",
+    "label.is.shared": "共有",
+    "label.is.system": "システム",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO 起動",
+    "label.isolated.networks": "分離されたネットワーク",
+    "label.isolation.method": "分離方法",
+    "label.isolation.mode": "分離モード",
+    "label.isolation.uri": "分離 URI",
+    "label.item.listing": "項目一覧",
+    "label.japanese.keyboard": "日本語キーボード",
+    "label.keep": "保持",
+    "label.keep.colon": "保持:",
+    "label.key": "キー",
+    "label.keyboard.language": "キーボードの言語",
+    "label.keyboard.type": "キーボードの種類",
+    "label.kvm.traffic.label": "KVM のトラフィック ラベル",
+    "label.label": "ラベル",
+    "label.lang.arabic": "アラビア語",
+    "label.lang.brportugese": "ポルトガル語 (ブラジル)",
+    "label.lang.catalan": "カタルニア語",
+    "label.lang.chinese": "簡体字中国語",
+    "label.lang.dutch": "オランダ語 (オランダ)",
+    "label.lang.english": "英語",
+    "label.lang.french": "フランス語",
+    "label.lang.german": "ドイツ語",
+    "label.lang.hungarian": "ハンガリー語",
+    "label.lang.italian": "イタリア語",
+    "label.lang.japanese": "日本語",
+    "label.lang.korean": "韓国語",
+    "label.lang.norwegian": "ノルウェー語",
+    "label.lang.polish": "ポーランド語",
+    "label.lang.russian": "ロシア語",
+    "label.lang.spanish": "スペイン語",
+    "label.last.disconnected": "最終切断日時",
+    "label.last.name": "姓",
+    "label.lastname.lower": "姓",
+    "label.latest.events": "最新イベント",
+    "label.launch": "起動",
+    "label.launch.vm": "VM の起動",
+    "label.launch.zone": "ゾーンの起動",
+    "label.lb.algorithm.leastconn": "最小接続",
+    "label.lb.algorithm.roundrobin": "ラウンドロビン",
+    "label.lb.algorithm.source": "送信元",
+    "label.ldap.configuration": "LDAP 構成",
+    "label.ldap.group.name": "LDAP グループ",
+    "label.ldap.link.type": "種類",
+    "label.ldap.port": "LDAP ポート",
+    "label.level": "レベル",
+    "label.link.domain.to.ldap": "ドメインを LDAP にリンクする",
+    "label.linklocal.ip": "リンク ローカル IP アドレス",
+    "label.load.balancer": "ロード バランサー",
+    "label.load.balancer.type": "ロード バランサーの種類",
+    "label.load.balancing": "負荷分散",
+    "label.load.balancing.policies": "負荷分散ポリシー",
+    "label.loading": "ロードしています",
+    "label.local": "ローカル",
+    "label.local.file": "ローカルファイル",
+    "label.local.storage": "ローカル ストレージ",
+    "label.local.storage.enabled": "ユーザー VM に対しローカルストレージを有効化する",
+    "label.local.storage.enabled.system.vms": "システム VM に対しローカルストレージを有効化する",
+    "label.login": "ログオン",
+    "label.logout": "ログオフ",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC のトラフィック ラベル",
+    "label.make.project.owner": "アカウントのプロジェクト所有者化",
+    "label.make.redundant": "冗長化構成をとる",
+    "label.manage": "管理",
+    "label.manage.resources": "リソースの管理",
+    "label.managed": "管理対象",
+    "label.management": "管理",
+    "label.management.ips": "管理 IP アドレス",
+    "label.management.server": "管理サーバー",
+    "label.max.cpus": "最大 CPU コア数",
+    "label.max.guest.limit": "最大ゲスト制限",
+    "label.max.instances": "最大インスタンス数",
+    "label.max.memory": "最大メモリ (MiB)",
+    "label.max.networks": "最大ネットワーク数",
+    "label.max.primary.storage": "最大プライマリ (GiB)",
+    "label.max.public.ips": "最大パブリック IP アドレス数",
+    "label.max.secondary.storage": "最大セカンダリ (GiB)",
+    "label.max.snapshots": "最大スナップショット数",
+    "label.max.templates": "最大テンプレート数",
+    "label.max.vms": "最大ユーザー VM 数",
+    "label.max.volumes": "最大ボリューム数",
+    "label.max.vpcs": "最大 VPC 数",
+    "label.maximum": "最大",
+    "label.may.continue": "続行できます。",
+    "label.md5.checksum": "MD5 チェックサム",
+    "label.memory": "メモリ",
+    "label.memory.allocated": "割り当て済みのメモリ",
+    "label.memory.limits": "メモリ制限 (MiB)",
+    "label.memory.mb": "メモリ (MB)",
+    "label.memory.total": "メモリ合計",
+    "label.memory.used": "メモリ使用量",
+    "label.menu.accounts": "アカウント",
+    "label.menu.alerts": "アラート",
+    "label.menu.all.accounts": "すべてのアカウント",
+    "label.menu.all.instances": "すべてのインスタンス",
+    "label.menu.community.isos": "コミュニティ ISO",
+    "label.menu.community.templates": "コミュニティ テンプレート",
+    "label.menu.configuration": "構成",
+    "label.menu.dashboard": "ダッシュボード",
+    "label.menu.destroyed.instances": "破棄されたインスタンス",
+    "label.menu.disk.offerings": "ディスク オファリング",
+    "label.menu.domains": "ドメイン",
+    "label.menu.events": "イベント",
+    "label.menu.featured.isos": "おすすめの ISO",
+    "label.menu.featured.templates": "おすすめのテンプレート",
+    "label.menu.global.settings": "グローバル設定",
+    "label.menu.infrastructure": "インフラストラクチャ",
+    "label.menu.instances": "インスタンス",
+    "label.menu.ipaddresses": "IP アドレス",
+    "label.menu.isos": "ISO",
+    "label.menu.my.accounts": "マイ アカウント",
+    "label.menu.my.instances": "マイ インスタンス",
+    "label.menu.my.isos": "マイ ISO",
+    "label.menu.my.templates": "マイ テンプレート",
+    "label.menu.network": "ネットワーク",
+    "label.menu.network.offerings": "ネットワーク オファリング",
+    "label.menu.physical.resources": "物理リソース",
+    "label.menu.regions": "リージョン",
+    "label.menu.running.instances": "実行中のインスタンス",
+    "label.menu.security.groups": "セキュリティ グループ",
+    "label.menu.service.offerings": "サービス オファリング",
+    "label.menu.snapshots": "スナップショット",
+    "label.menu.sshkeypair": "SSH キーペア",
+    "label.menu.stopped.instances": "停止されたインスタンス",
+    "label.menu.storage": "ストレージ",
+    "label.menu.system": "システム",
+    "label.menu.system.service.offerings": "システム オファリング",
+    "label.menu.system.vms": "システム VM",
+    "label.menu.templates": "テンプレート",
+    "label.menu.virtual.appliances": "仮想アプライアンス",
+    "label.menu.virtual.resources": "仮想リソース",
+    "label.menu.volumes": "ボリューム",
+    "label.menu.vpc.offerings": "VPC オファリング",
+    "label.metrics": "メトリックス",
+    "label.metrics.allocated": "割り当て済み",
+    "label.metrics.clusters": "クラスター",
+    "label.metrics.cpu.allocated": "CPU Allocation",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "CPU Usage",
+    "label.metrics.cpu.used.avg": "使用中",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "割り当て済み",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Read",
+    "label.metrics.disk.size": "サイズ",
+    "label.metrics.disk.storagetype": "種類",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Unallocated",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "使用中",
+    "label.metrics.disk.write": "Write",
+    "label.metrics.hosts": "ホスト",
+    "label.metrics.memory.allocated": "Mem Allocation",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Mem Usage",
+    "label.metrics.memory.used.avg": "使用中",
+    "label.metrics.name": "名前",
+    "label.metrics.network.read": "Read",
+    "label.metrics.network.usage": "Network Usage",
+    "label.metrics.network.write": "Write",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "スコープ",
+    "label.metrics.state": "状態",
+    "label.metrics.storagepool": "ストレージ プール",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "インスタンスの移行先:",
+    "label.migrate.instance.to.host": "別のホストへのインスタンスの移行",
+    "label.migrate.instance.to.ps": "別のプライマリ ストレージへのインスタンスの移行",
+    "label.migrate.lb.vm": "LB VM の移行",
+    "label.migrate.router.to": "ルーターの移行先:",
+    "label.migrate.systemvm.to": "システム VM の移行先:",
+    "label.migrate.to.host": "ホストへ移行",
+    "label.migrate.to.storage": "ストレージへ移行",
+    "label.migrate.volume": "ボリュームの移行",
+    "label.migrate.volume.to.primary.storage": "別のプライマリ ストレージへのボリュームの移行",
+    "label.min.instances": "最小インスタンス数",
+    "label.min.past.the.hr": "分(毎時)",
+    "label.minimum": "最小",
+    "label.minute.past.hour": "分(毎時)",
+    "label.minutes.past.hour": "分(毎時)",
+    "label.mode": "モード",
+    "label.monday": "月曜日",
+    "label.monthly": "毎月",
+    "label.more.templates": "そのほかのテンプレート",
+    "label.move.down.row": "1 行下に移動",
+    "label.move.to.bottom": "最下位に移動",
+    "label.move.to.top": "最上位に移動",
+    "label.move.up.row": "1 行上に移動",
+    "label.my.account": "マイ アカウント",
+    "label.my.network": "マイ ネットワーク",
+    "label.my.templates": "マイ テンプレート",
+    "label.na": "利用不可",
+    "label.name": "名前",
+    "label.name.lower": "名前",
+    "label.name.optional": "名前 (オプション)",
+    "label.nat.port.range": "NAT ポートの範囲",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "ネットマスク",
+    "label.netscaler.details": "NetScaler の詳細",
+    "label.network": "ネットワーク",
+    "label.network.ACL": "ネットワーク ACL",
+    "label.network.ACL.total": "ネットワーク ACL 合計",
+    "label.network.ACLs": "ネットワーク ACL",
+    "label.network.addVM": "VM へのネットワークの追加",
+    "label.network.cidr": "ネットワーク CIDR",
+    "label.network.desc": "ネットワークの説明",
+    "label.network.details": "ネットワークの詳細",
+    "label.network.device": "ネットワーク デバイス",
+    "label.network.device.type": "ネットワーク デバイスの種類",
+    "label.network.domain": "ネットワーク ドメイン",
+    "label.network.domain.text": "ネットワーク ドメイン",
+    "label.network.id": "ネットワーク ID",
+    "label.network.label.display.for.blank.value": "デフォルト ゲートウェイを使用",
+    "label.network.limits": "ネットワーク制限",
+    "label.network.name": "ネットワーク名",
+    "label.network.offering": "ネットワーク オファリング",
+    "label.network.offering.details": "ネットワークオファリングの詳細",
+    "label.network.offering.display.text": "ネットワーク オファリング表示テキスト",
+    "label.network.offering.id": "ネットワーク オファリング ID",
+    "label.network.offering.name": "ネットワーク オファリング名",
+    "label.network.rate": "ネットワーク速度 (MB/秒)",
+    "label.network.rate.megabytes": "ネットワーク速度 (MB/秒)",
+    "label.network.read": "ネットワーク読み取り",
+    "label.network.service.providers": "ネットワーク サービス プロバイダー",
+    "label.network.type": "ネットワークの種類",
+    "label.network.write": "ネットワーク書き込み",
+    "label.networking.and.security": "ネットワークとセキュリティ",
+    "label.networks": "ネットワーク",
+    "label.new": "新規",
+    "label.new.password": "新しいパスワード",
+    "label.new.project": "新しいプロジェクト",
+    "label.new.ssh.key.pair": "新しい SSH キーペア",
+    "label.new.vm": "新しい VM",
+    "label.next": "次へ",
+    "label.nexusVswitch": "Nexus 1000V",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS サーバー",
+    "label.nfs.storage": "NFS ストレージ",
+    "label.nic.adapter.type": "NIC アダプターの種類",
+    "label.nicira.controller.address": "コントローラー アドレス",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 ゲートウェイ サービスの UUID",
+    "label.nicira.nvp.details": "Nicira NVP の詳細",
+    "label.nicira.transportzoneuuid": "トランスポート ゾーンの UUID",
+    "label.nics": "NIC",
+    "label.no": "いいえ",
+    "label.no.actions": "実行できる操作はありません",
+    "label.no.alerts": "最近のアラートはありません",
+    "label.no.data": "表示するデータがありません",
+    "label.no.errors": "最近のエラーはありません",
+    "label.no.grouping": "(グループなし)",
+    "label.no.isos": "使用できる ISO はありません",
+    "label.no.items": "使用できる項目はありません",
+    "label.no.security.groups": "使用できるセキュリティ グループはありません",
+    "label.no.thanks": "設定しない",
+    "label.none": "なし",
+    "label.not.found": "見つかりません",
+    "label.notifications": "通知",
+    "label.num.cpu.cores": "CPU コア数",
+    "label.number.of.clusters": "クラスター数",
+    "label.number.of.cpu.sockets": "CPU ソケット数",
+    "label.number.of.hosts": "ホスト数",
+    "label.number.of.pods": "ポッド数",
+    "label.number.of.system.vms": "システム VM 数",
+    "label.number.of.virtual.routers": "仮想ルーター数",
+    "label.number.of.zones": "ゾーン数",
+    "label.numretries": "再試行回数",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "月毎",
+    "label.offer.ha": "高可用性を提供する",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight コントローラー",
+    "label.opendaylight.controllerdetail": "OpenDaylight コントローラーの詳細",
+    "label.opendaylight.controllers": "OpenDaylight コントローラー",
+    "label.operator": "演算子",
+    "label.optional": "オプション",
+    "label.order": "順序",
+    "label.os.preference": "OS 基本設定",
+    "label.os.type": "OS の種類",
+    "label.other": "そのほか",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "操作",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "パスワード",
+    "label.outofbandmanagement.port": "ポート",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "ユーザー名",
+    "label.override.guest.traffic": "ゲスト トラフィックをオーバーライドする",
+    "label.override.public.traffic": "パブリック トラフィックをオーバーライドする",
+    "label.ovm.traffic.label": "OVM のトラフィック ラベル",
+    "label.ovm3.cluster": "ネイティブクラスター",
+    "label.ovm3.pool": "ネイティブプール",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "マスター VIP IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "所有するパブリック IP アドレス",
+    "label.owner.account": "所有者アカウント",
+    "label.owner.domain": "所有者ドメイン",
+    "label.palo.alto.details": "Palo Alto の詳細",
+    "label.parent.domain": "親ドメイン",
+    "label.passive": "パッシブ",
+    "label.password": "パスワード",
+    "label.password.enabled": "パスワード管理有効",
+    "label.password.lower": "パスワード",
+    "label.password.reset.confirm": "次のパスワードにリセットされました:",
+    "label.path": "パス",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "永続",
+    "label.physical.network": "物理ネットワーク",
+    "label.physical.network.ID": "物理ネットワーク ID",
+    "label.physical.network.name": "物理ネットワーク名",
+    "label.ping.path": "Ping パス",
+    "label.planner.mode": "プランナー モード",
+    "label.please.complete.the.following.fields": "下記項目を入力してください",
+    "label.please.specify.netscaler.info": "NetScaler 情報を指定してください",
+    "label.please.wait": "お待ちください",
+    "label.plugin.details": "プラグインの詳細",
+    "label.plugins": "プラグイン",
+    "label.pod": "ポッド",
+    "label.pod.dedicated": "ポッドを専用に設定しました",
+    "label.pod.name": "ポッド名",
+    "label.pods": "ポッド",
+    "label.polling.interval.sec": "ポーリング間隔 (秒)",
+    "label.port": "ポート",
+    "label.port.forwarding": "ポート転送",
+    "label.port.forwarding.policies": "ポート転送ポリシー",
+    "label.port.range": "ポートの範囲",
+    "label.portable.ip": "ポータブル IP アドレス",
+    "label.portable.ip.range.details": "ポータブル IP アドレスの範囲の詳細",
+    "label.portable.ip.ranges": "ポータブル IP アドレスの範囲",
+    "label.portable.ips": "ポータブル IP アドレス",
+    "label.powerstate": "Power State",
+    "label.prev": "戻る",
+    "label.previous": "戻る",
+    "label.primary.allocated": "割り当て済みのプライマリ ストレージ",
+    "label.primary.network": "プライマリ ネットワーク",
+    "label.primary.storage": "プライマリ ストレージ",
+    "label.primary.storage.count": "プライマリ ストレージ プール",
+    "label.primary.storage.limits": "プライマリ ストレージ制限 (GiB)",
+    "label.primary.used": "プライマリ ストレージ使用量",
+    "label.private.Gateway": "プライベート ゲートウェイ",
+    "label.private.interface": "プライベート インターフェイス",
+    "label.private.ip": "プライベート IP アドレス",
+    "label.private.ip.range": "プライベート IP アドレスの範囲",
+    "label.private.ips": "プライベート IP アドレス",
+    "label.private.key": "プライベートキー",
+    "label.private.network": "プライベート ネットワーク",
+    "label.private.port": "プライベート ポート",
+    "label.private.zone": "プライベート ゾーン",
+    "label.privatekey": "PKCS#8 秘密キー",
+    "label.profile": "プロファイル",
+    "label.project": "プロジェクト",
+    "label.project.dashboard": "プロジェクト ダッシュボード",
+    "label.project.id": "プロジェクト ID",
+    "label.project.invite": "プロジェクトへの招待",
+    "label.project.name": "プロジェクト名",
+    "label.project.view": "プロジェクト ビュー",
+    "label.projects": "プロジェクト",
+    "label.protocol": "プロトコル",
+    "label.protocol.number": "プロトコル番号",
+    "label.provider": "プロバイダー",
+    "label.providers": "プロバイダー",
+    "label.public": "パブリック",
+    "label.public.interface": "パブリック インターフェイス",
+    "label.public.ip": "パブリック IP アドレス",
+    "label.public.ips": "パブリック IP アドレス",
+    "label.public.key": "公開鍵",
+    "label.public.lb": "パブリック LB",
+    "label.public.load.balancer.provider": "パブリック ロード バランサー プロバイダー",
+    "label.public.network": "パブリック ネットワーク",
+    "label.public.port": "パブリック ポート",
+    "label.public.traffic": "パブリック トラフィック",
+    "label.public.traffic.vswitch.name": "パブリック トラフィックの vSwitch 名",
+    "label.public.traffic.vswitch.type": "パブリック トラフィックの vSwitch の種類",
+    "label.public.zone": "パブリック ゾーン",
+    "label.purpose": "目的",
+    "label.qos.type": "QoS の種類",
+    "label.quickview": "クイックビュー",
+    "label.quiesce.vm": "VM を休止する",
+    "label.quiet.time.sec": "待ち時間 (秒)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "日時",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "End Date",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "すべてのアカウント",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Start Date",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "状態",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx ユーザー",
+    "label.rbd.monitor": "Ceph モニター",
+    "label.rbd.pool": "Ceph プール",
+    "label.rbd.secret": "Cephx シークレット",
+    "label.reboot": "再起動",
+    "label.recent.errors": "最近のエラー",
+    "label.recover.vm": "VM の復元",
+    "label.redundant.router": "冗長ルーター",
+    "label.redundant.router.capability": "冗長ルーター機能",
+    "label.redundant.state": "冗長状態",
+    "label.redundant.vpc": "冗長 VPC",
+    "label.refresh": "更新",
+    "label.refresh.blades": "ブレードの更新",
+    "label.region": "リージョン",
+    "label.region.details": "リージョンの詳細",
+    "label.regionlevelvpc": "リージョンレベルの VPC",
+    "label.reinstall.vm": "VM の再インストール",
+    "label.related": "関連",
+    "label.release.account": "アカウントから解放",
+    "label.release.account.lowercase": "アカウントから解放",
+    "label.release.dedicated.cluster": "専用クラスターの解放",
+    "label.release.dedicated.host": "専用ホストの解放",
+    "label.release.dedicated.pod": "専用ポッドの解放",
+    "label.release.dedicated.vlan.range": "専用 VLAN の範囲の解放",
+    "label.release.dedicated.zone": "専用ゾーンの解放",
+    "label.remind.later": "アラームを表示する",
+    "label.remove.ACL": "ACL の削除",
+    "label.remove.egress.rule": "送信規則の削除",
+    "label.remove.from.load.balancer": "ロード バランサーからインスタンスを削除しています",
+    "label.remove.ingress.rule": "受信規則の削除",
+    "label.remove.ip.range": "IP アドレスの範囲の削除",
+    "label.remove.ldap": "LDAP の削除",
+    "label.remove.network.offering": "ネットワーク オファリングの削除",
+    "label.remove.pf": "ポート転送規則の削除",
+    "label.remove.project.account": "プロジェクトからのアカウントの削除",
+    "label.remove.region": "リージョンの削除",
+    "label.remove.rule": "規則の削除",
+    "label.remove.ssh.key.pair": "SSH キーペアの削除",
+    "label.remove.static.nat.rule": "静的 NAT 規則の削除",
+    "label.remove.static.route": "静的ルートの削除",
+    "label.remove.this.physical.network": "この物理ネットワークを削除する",
+    "label.remove.tier": "階層の削除",
+    "label.remove.vm.from.lb": "ロード バランサー規則からの VM の削除",
+    "label.remove.vm.load.balancer": "ロード バランサーからの VM の削除",
+    "label.remove.vmware.datacenter": "VMware データセンターの削除",
+    "label.remove.vpc": "VPC の削除",
+    "label.remove.vpc.offering": "VPC オファリングの削除",
+    "label.removing": "削除しています",
+    "label.removing.user": "ユーザーを削除しています",
+    "label.reource.id": "リソース ID",
+    "label.replace.acl": "ACL の置き換え",
+    "label.replace.acl.list": "ACL 一覧の置き換え",
+    "label.required": "必須です",
+    "label.requires.upgrade": "アップグレードが必要",
+    "label.reserved.ip.range": "予約済み IP アドレスの範囲",
+    "label.reserved.system.gateway": "予約済みシステム ゲートウェイ",
+    "label.reserved.system.ip": "予約済みシステム IP アドレス",
+    "label.reserved.system.netmask": "予約済みシステム ネットマスク",
+    "label.reset.VPN.connection": "VPN 接続のリセット",
+    "label.reset.ssh.key.pair": "SSH キーペアのリセット",
+    "label.reset.ssh.key.pair.on.vm": "VM 上の SSH キーペアをリセット",
+    "label.resetVM": "VM のリセット",
+    "label.resize.new.offering.id": "新しいオファリング",
+    "label.resize.new.size": "新しいサイズ(GB)",
+    "label.resize.shrink.ok": "縮小可能にする",
+    "label.resource": "リソース",
+    "label.resource.limit.exceeded": "リソース制限を超過しました",
+    "label.resource.limits": "リソース制限",
+    "label.resource.name": "リソース名",
+    "label.resource.state": "リソースの状態",
+    "label.resources": "リソース",
+    "label.response.timeout.in.sec": "応答タイムアウト (秒)",
+    "label.restart.network": "ネットワークの再起動",
+    "label.restart.required": "再起動が必要",
+    "label.restart.vpc": "VPC の再起動",
+    "label.restore": "復元",
+    "label.retry.interval": "再試行間隔",
+    "label.review": "確認",
+    "label.revoke.project.invite": "招待の取り消し",
+    "label.role": "役割",
+    "label.roles": "ロール",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "ルート証明書",
+    "label.root.disk.controller": "ルート ディスク コントローラー",
+    "label.root.disk.offering": "ルート ディスク オファリング",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "ルーター VM のサイズが拡大されました",
+    "label.routing": "ルーティング",
+    "label.routing.host": "ルーティング ホスト",
+    "label.rule": "Rule",
+    "label.rule.number": "規則番号",
+    "label.rules": "規則",
+    "label.running.vms": "実行中の VM",
+    "label.s3.access_key": "アクセス キー",
+    "label.s3.bucket": "バケット",
+    "label.s3.connection_timeout": "接続タイムアウト",
+    "label.s3.endpoint": "エンドポイント",
+    "label.s3.max_error_retry": "最大エラー再試行数",
+    "label.s3.nfs.path": "S3 NFS パス",
+    "label.s3.nfs.server": "S3 NFS サーバー",
+    "label.s3.secret_key": "秘密キー",
+    "label.s3.socket_timeout": "ソケット タイムアウト",
+    "label.s3.use_https": "HTTPS を使用する",
+    "label.saml.enable": "SAML SSO 認証",
+    "label.saml.entity": "認証プロバイダー",
+    "label.saturday": "土曜日",
+    "label.save": "保存",
+    "label.save.and.continue": "保存して続行",
+    "label.save.changes": "変更を保存する",
+    "label.saving.processing": "保存しています...",
+    "label.scale.up.policy": "サイズ拡大ポリシー",
+    "label.scaledown.policy": "スケールダウン ポリシー",
+    "label.scaleup.policy": "スケールアップ ポリシー",
+    "label.scope": "スコープ",
+    "label.search": "検索",
+    "label.secondary.ips": "セカンダリ IP",
+    "label.secondary.isolated.vlan.id": "分離されたセカンダリ VLAN ID",
+    "label.secondary.staging.store": "セカンダリ ステージング ストア",
+    "label.secondary.staging.store.details": "セカンダリ ステージング ストアの詳細",
+    "label.secondary.storage": "セカンダリ ストレージ",
+    "label.secondary.storage.count": "セカンダリ ストレージ プール",
+    "label.secondary.storage.details": "セカンダリ ストレージの詳細",
+    "label.secondary.storage.limits": "セカンダリ ストレージ制限 (GiB)",
+    "label.secondary.storage.vm": "セカンダリ ストレージ VM",
+    "label.secondary.used": "セカンダリ ストレージ使用量",
+    "label.secret.key": "秘密キー",
+    "label.security.group": "セキュリティ グループ",
+    "label.security.group.name": "セキュリティ グループ名",
+    "label.security.groups": "セキュリティ グループ",
+    "label.security.groups.enabled": "セキュリティ グループ有効",
+    "label.select": "選択",
+    "label.select-view": "ビューの選択",
+    "label.select.a.template": "テンプレートの選択",
+    "label.select.a.zone": "ゾーンの選択",
+    "label.select.instance": "インスタンスの選択",
+    "label.select.instance.to.attach.volume.to": "ボリュームをアタッチするインスタンスを選択してください",
+    "label.select.host":"ホストの選択",
+    "label.select.iso.or.template": "ISO またはテンプレートの選択",
+    "label.select.offering": "オファリングの選択",
+    "label.select.project": "プロジェクトの選択",
+    "label.select.region": "リージョンの選択",
+    "label.select.template": "テンプレートの選択",
+    "label.select.tier": "階層の選択",
+    "label.select.vm.for.static.nat": "静的 NAT 用 VM の選択",
+    "label.sent": "送信済み",
+    "label.server": "サーバー",
+    "label.service.capabilities": "サービスの機能",
+    "label.service.offering": "サービス オファリング",
+    "label.service.offering.details": "サービスオファリングの詳細",
+    "label.service.state": "サービスの状態",
+    "label.services": "サービス",
+    "label.session.expired": "セッションの有効期限が切れました",
+    "label.set.default.NIC": "デフォルト NIC の設定",
+    "label.set.up.zone.type": "ゾーンの種類のセットアップ",
+    "label.settings": "設定",
+    "label.setup": "セットアップ",
+    "label.setup.network": "ネットワークを設定する",
+    "label.setup.zone": "ゾーンを設定する",
+    "label.shared": "共有",
+    "label.show.advanced.settings": "詳細設定の表示",
+    "label.show.ingress.rule": "受信規則の表示",
+    "label.shutdown.provider": "プロバイダーのシャットダウン",
+    "label.simplified.chinese.keyboard": "簡易中国語キーボード",
+    "label.site.to.site.VPN": "サイト間 VPN",
+    "label.size": "サイズ",
+    "label.skip.guide": "CloudStack を使用したことがあるので、このガイドをスキップする",
+    "label.smb.domain": "SMB ドメイン",
+    "label.smb.password": "SMB パスワード",
+    "label.smb.username": "SMB ユーザー名",
+    "label.snapshot": "スナップショット",
+    "label.snapshot.limits": "スナップショット制限",
+    "label.snapshot.name": "スナップショット名",
+    "label.snapshot.s": "スナップショット",
+    "label.snapshot.schedule": "連続したスナップショットを設定する",
+    "label.snapshots": "スナップショット",
+    "label.sockets": "CPU ソケット",
+    "label.source.ip.address": "送信元 IP アドレス",
+    "label.source.nat": "送信元 NAT",
+    "label.source.nat.supported": "サポートされる送信元 NAT",
+    "label.source.port": "送信元ポート",
+    "label.specify.IP.ranges": "IP アドレスの範囲の指定",
+    "label.specify.vlan": "VLAN を指定する",
+    "label.specify.vxlan": "VXLAN を指定する",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX の詳細",
+    "label.ssh.key.pair": "SSH キーペア",
+    "label.ssh.key.pair.details": "SSH キーペアの詳細",
+    "label.ssh.key.pairs": "SSH キーペア",
+    "label.standard.us.keyboard": "標準(US) キーボード",
+    "label.start.IP": "開始 IP アドレス",
+    "label.start.lb.vm": "LB VM の起動",
+    "label.start.port": "開始ポート",
+    "label.start.reserved.system.IP": "予約済み開始システム IP アドレス",
+    "label.start.vlan": "開始 VLAN",
+    "label.start.vxlan": "開始 VXLAN",
+    "label.state": "状態",
+    "label.suitability": "適合",
+    "label.static.nat": "静的 NAT",
+    "label.static.nat.enabled": "静的 NAT 有効",
+    "label.static.nat.to": "静的 NAT の設定先:",
+    "label.static.nat.vm.details": "静的 NAT VM の詳細",
+    "label.static.routes": "静的ルート",
+    "label.statistics": "統計",
+    "label.status": "状況",
+    "label.step.1": "手順 1",
+    "label.step.1.title": "手順 1: <strong>テンプレートの選択</strong>",
+    "label.step.2": "手順 2",
+    "label.step.2.title": "手順 2: <strong>サービス オファリング</strong>",
+    "label.step.3": "手順 3",
+    "label.step.3.title": "手順 3: <strong id=\"step3_label\">ディスク オファリングの選択</strong>",
+    "label.step.4": "手順 4",
+    "label.step.4.title": "手順 4: <strong>ネットワーク</strong>",
+    "label.step.5": "手順 5",
+    "label.step.5.title": "手順 5: <strong>確認</strong>",
+    "label.stickiness": "持続性",
+    "label.stickiness.method": "持続性方法",
+    "label.sticky.cookie-name": "Cookie 名",
+    "label.sticky.domain": "ドメイン",
+    "label.sticky.expire": "失効",
+    "label.sticky.holdtime": "保持時間",
+    "label.sticky.indirect": "間接",
+    "label.sticky.length": "長さ",
+    "label.sticky.mode": "モード",
+    "label.sticky.name": "スティッキー名",
+    "label.sticky.nocache": "キャッシュなし",
+    "label.sticky.postonly": "ポストのみ",
+    "label.sticky.prefix": "プレフィックス",
+    "label.sticky.request-learn": "ラーニングの要求",
+    "label.sticky.tablesize": "テーブル サイズ",
+    "label.stop": "停止",
+    "label.stop.lb.vm": "LB VM の停止",
+    "label.stopped.vms": "停止中の VM",
+    "label.storage": "ストレージ",
+    "label.storage.pool": "ストレージ プール",
+    "label.storage.tags": "ストレージ タグ",
+    "label.storage.traffic": "ストレージ トラフィック",
+    "label.storage.type": "ストレージの種類",
+    "label.subdomain.access": "サブドメイン アクセス",
+    "label.submit": "送信",
+    "label.submitted.by": "[送信ユーザー: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "成功",
+    "label.sunday": "日曜日",
+    "label.super.cidr.for.guest.networks": "ゲスト ネットワークのスーパー CIDR",
+    "label.supported.services": "サポートされるサービス",
+    "label.supported.source.NAT.type": "サポートされる送信元 NAT の種類",
+    "label.supportsstrechedl2subnet": "ストレッチ L2 サブネットをサポートする",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "プロジェクトの一時停止",
+    "label.switch.type": "スイッチの種類",
+    "label.system.capacity": "システムの処理能力",
+    "label.system.offering": "システム オファリング",
+    "label.system.offering.for.router": "ルーター用システム オファリング",
+    "label.system.service.offering": "システム サービス オファリング",
+    "label.system.service.offering.details": "システムサービスオファリングの詳細",
+    "label.system.vm": "システム VM",
+    "label.system.vm.details": "システム VM の詳細",
+    "label.system.vm.scaled.up": "システム VM のサイズが拡大されました",
+    "label.system.vm.type": "システム VM の種類",
+    "label.system.vms": "システム VM",
+    "label.system.wide.capacity": "システム全体の処理能力",
+    "label.tag.key": "タグ キー",
+    "label.tag.value": "タグ値",
+    "label.tagged": "タグあり",
+    "label.tags": "タグ",
+    "label.target.iqn": "ターゲット IQN",
+    "label.task.completed": "タスクが完了しました",
+    "label.template": "テンプレート",
+    "label.template.limits": "テンプレート制限",
+    "label.tftp.root.directory": "TFTP ルート ディレクトリ",
+    "label.theme.default": "デフォルト テーマ",
+    "label.theme.grey": "カスタム - グレー",
+    "label.theme.lightblue": "カスタム - ライト ブルー",
+    "label.threshold": "しきい値",
+    "label.thursday": "木曜日",
+    "label.tier": "階層",
+    "label.tier.details": "階層の詳細",
+    "label.time": "時間",
+    "label.time.colon": "時間:",
+    "label.time.zone": "タイムゾーン",
+    "label.timeout": "タイムアウト",
+    "label.timeout.in.second ": " タイムアウト値(秒)",
+    "label.timezone": "タイムゾーン",
+    "label.timezone.colon": "タイムゾーン:",
+    "label.token": "トークン",
+    "label.total.CPU": "CPU 合計",
+    "label.total.cpu": "CPU 合計",
+    "label.total.hosts": "ホスト合計",
+    "label.total.memory": "メモリ合計",
+    "label.total.of.ip": "全 IP アドレス数",
+    "label.total.of.vm": "VM 合計",
+    "label.total.storage": "ストレージ合計",
+    "label.total.virtual.routers": "仮想ルーター合計",
+    "label.total.virtual.routers.upgrade": "アップグレードが必要な仮想ルーター合計",
+    "label.total.vms": "VM 合計",
+    "label.traffic.label": "トラフィック ラベル",
+    "label.traffic.type": "トラフィックの種類",
+    "label.traffic.types": "トラフィックの種類",
+    "label.tuesday": "火曜日",
+    "label.type": "種類",
+    "label.type.id": "種類 ID",
+    "label.type.lower": "種類",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK キーボード",
+    "label.unavailable": "使用不能",
+    "label.unhealthy.threshold": "異常しきい値",
+    "label.unlimited": "無制限",
+    "label.untagged": "タグなし",
+    "label.update.project.resources": "プロジェクト リソースの更新",
+    "label.update.ssl": " SSL 証明書",
+    "label.update.ssl.cert": " SSL 証明書",
+    "label.updating": "更新しています",
+    "label.upgrade.required": "アップグレードが必要です",
+    "label.upgrade.router.newer.template": "ルーターをアップグレードして新しいテンプレートを使用する",
+    "label.upload": "アップロード",
+    "label.upload.from.local": "ローカルからのアップロード",
+    "label.upload.template.from.local": "ローカルからのテンプレートのアップロード",
+    "label.upload.volume": "ボリュームのアップロード",
+    "label.upload.volume.from.local": "ローカルからのボリュームのアップロード",
+    "label.upload.volume.from.url": "URL からのボリュームのアップロード",
+    "label.url": "URL",
+    "label.usage.interface": "使用状況測定インターフェイス",
+    "label.usage.sanity.result": "使用状況サニティ結果",
+    "label.usage.server": "使用状況測定サーバー",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "次の VM IP アドレスを使用:",
+    "label.use.vm.ips": "次の VM IP アドレスを使用",
+    "label.used": "使用中",
+    "label.user": "ユーザー",
+    "label.user.data": "ユーザー データ",
+    "label.user.details": "ユーザーの詳細",
+    "label.user.vm": "ユーザー VM",
+    "label.username": "ユーザー名",
+    "label.username.lower": "ユーザー名",
+    "label.users": "ユーザー",
+    "label.vSwitch.type": "vSwitch の種類",
+    "label.value": "値",
+    "label.vcdcname": "vCenter DC 名",
+    "label.vcenter": "vCenter",
+    "label.vcenter.cluster": "vCenter クラスター",
+    "label.vcenter.datacenter": "vCenter データセンター",
+    "label.vcenter.datastore": "vCenter データストア",
+    "label.vcenter.host": "vCenter ホスト",
+    "label.vcenter.password": "vCenter パスワード",
+    "label.vcenter.username": "vCenter ユーザー名",
+    "label.vcipaddress": "vCenter IP アドレス",
+    "label.version": "バージョン",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "最大解像度",
+    "label.vgpu.max.vgpu.per.gpu": "GPU あたりの vGPU 数",
+    "label.vgpu.remaining.capacity": "残存処理能力",
+    "label.vgpu.type": "vGPU の種類",
+    "label.vgpu.video.ram": "ビデオ RAM",
+    "label.view": "表示 -",
+    "label.view.all": "すべて表示",
+    "label.view.console": "コンソールの表示",
+    "label.view.more": "詳細表示",
+    "label.view.secondary.ips": "セカンダリ IP アドレスの表示",
+    "label.viewing": "表示項目:",
+    "label.virtual.appliance": "仮想アプライアンス",
+    "label.virtual.appliance.details": "仮想アプライアンスの詳細",
+    "label.virtual.appliances": "仮想アプライアンス",
+    "label.virtual.machine": "仮想マシン",
+    "label.virtual.machines": "仮想マシン",
+    "label.virtual.network": "仮想ネットワーク",
+    "label.virtual.networking": "仮想ネットワーク",
+    "label.virtual.router": "仮想ルーター",
+    "label.virtual.routers": "仮想ルーター",
+    "label.virtual.routers.group.account": "アカウント別の仮想ルーター グループ",
+    "label.virtual.routers.group.cluster": "クラスター別の仮想ルーター グループ",
+    "label.virtual.routers.group.pod": "ポッド別の仮想ルーター グループ",
+    "label.virtual.routers.group.zone": "ゾーン別の仮想ルーター グループ",
+    "label.vlan": "VLAN",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI の範囲",
+    "label.vlan.range.details": "VLAN の範囲の詳細",
+    "label.vlan.ranges": "VLAN の範囲",
+    "label.vlan.vni.range": "VLAN/VNI の範囲",
+    "label.vlan.vni.ranges": "VLAN/VNI の範囲",
+    "label.vm.add": "インスタンスの追加",
+    "label.vm.destroy": "破棄",
+    "label.vm.display.name": "VM 表示名",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP アドレス",
+    "label.vm.name": "VM 名",
+    "label.vm.password": "VM のパスワード:",
+    "label.vm.reboot": "再起動",
+    "label.vm.start": "起動",
+    "label.vm.state": "VM の状態",
+    "label.vm.stop": "停止",
+    "label.vmfs": "VMFS",
+    "label.vms": "VM",
+    "label.vmsnapshot": "VM スナップショット",
+    "label.vmsnapshot.current": "使用中",
+    "label.vmsnapshot.memory": "メモリも含める",
+    "label.vmsnapshot.parentname": "親",
+    "label.vmsnapshot.type": "種類",
+    "label.vmware.datacenter.id": "VMware データセンター ID",
+    "label.vmware.datacenter.name": "VMware データセンター名",
+    "label.vmware.datacenter.vcenter": "VMware データセンターの vCenter",
+    "label.vmware.traffic.label": "VMware のトラフィック ラベル",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC デバイス",
+    "label.volatile": "揮発性",
+    "label.volgroup": "ボリューム グループ",
+    "label.volume": "ボリューム",
+    "label.volume.details": "ボリュームの詳細",
+    "label.volume.limits": "ボリューム制限",
+    "label.volume.migrated": "ボリュームが移行されました",
+    "label.volume.name": "ボリューム名",
+    "label.volumes": "ボリューム",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "分散 VPC ルーター",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "VPC オファリング",
+    "label.vpc.offering.details": "VPC オファリングの詳細",
+    "label.vpc.router.details": "VPC ルーターの詳細",
+    "label.vpc.supportsregionlevelvpc": "リージョンレベルの VPC をサポートする",
+    "label.vpc.virtual.router": "VPC 仮想ルーター",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN カスタマー ゲートウェイ",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "コントロール VLAN ID",
+    "label.vsmpktvlanid": "パケット VLAN ID",
+    "label.vsmstoragevlanid": "ストレージ VLAN ID",
+    "label.vsphere.managed": "vSphere による管理",
+    "label.vswitch.name": "vSwitch 名",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN の範囲",
+    "label.waiting": "待機しています",
+    "label.warn": "警告",
+    "label.warn.upper": "警告",
+    "label.warning": "注意",
+    "label.wednesday": "水曜日",
+    "label.weekly": "毎週",
+    "label.welcome": "ようこそ",
+    "label.welcome.cloud.console": "管理コンソールへようこそ",
+    "label.what.is.cloudstack": "CloudStack&#8482; について",
+    "label.xenserver.tools.version.61.plus": "元の XS バージョンは 6.1 以降",
+    "label.xenserver.traffic.label": "XenServer のトラフィック ラベル",
+    "label.yes": "はい",
+    "label.zone": "ゾーン",
+    "label.zone.dedicated": "専用ゾーン",
+    "label.zone.details": "ゾーンの詳細",
+    "label.zone.id": "ゾーン ID",
+    "label.zone.lower": "ゾーン",
+    "label.zone.name": "ゾーン名",
+    "label.zone.step.1.title": "手順 1: <strong>ネットワークの選択</strong>",
+    "label.zone.step.2.title": "手順 2: <strong>ゾーンの追加</strong>",
+    "label.zone.step.3.title": "手順 3: <strong>ポッドの追加</strong>",
+    "label.zone.step.4.title": "手順 4: <strong>IP アドレス範囲の追加</strong>",
+    "label.zone.type": "ゾーンの種類",
+    "label.zone.wide": "ゾーン全体",
+    "label.zoneWizard.trafficType.guest": "ゲスト: エンド ユーザーの仮想マシンの間のトラフィックです。",
+    "label.zoneWizard.trafficType.management": "管理: ホストや CloudStack システム VM  など、管理サーバーと通信する CloudStack の内部リソース間のトラフィックです。",
+    "label.zoneWizard.trafficType.public": "パブリック: インターネットとクラウド内の仮想マシンの間のトラフィックです。",
+    "label.zoneWizard.trafficType.storage": "ストレージ: VM テンプレートやスナップショットなど、プライマリおよびセカンダリ ストレージ サーバー間のトラフィックです。",
+    "label.zones": "ゾーン",
+    "managed.state": "管理対象状態",
+    "message.XSTools61plus.update.failed": "[元の XS バージョンは 6.1 以降] フィールドを更新できませんでした。エラー:",
+    "message.Zone.creation.complete": "ゾーンが作成されました",
+    "message.acquire.ip.nic": "この NIC のために新しいセカンダリ IP アドレスを取得してもよろしいですか?<br/>注: 新しく取得したセカンダリ IP アドレスは仮想マシン内で手動で構成する必要があります。",
+    "message.acquire.new.ip": "このネットワークの新しい IP アドレスを取得してもよろしいですか?",
+    "message.acquire.new.ip.vpc": "この VPC の新しい IP アドレスを取得してもよろしいですか?",
+    "message.acquire.public.ip": "新しい IP アドレスを取得するゾーンを選択してください。",
+    "message.action.cancel.maintenance": "ホストの保守は正常にキャンセルされました。この処理には数分かかる可能性があります。",
+    "message.action.cancel.maintenance.mode": "この保守をキャンセルしてもよろしいですか?",
+    "message.action.change.service.warning.for.instance": "現在のサービス オファリングを変更する前にインスタンスを停止する必要があります。",
+    "message.action.change.service.warning.for.router": "現在のサービス オファリングを変更する前にルーターを停止する必要があります。",
+    "message.action.delete.ISO": "この ISO を削除してもよろしいですか?",
+    "message.action.delete.ISO.for.all.zones": "その ISO はすべてのゾーンで使用されています。すべてのゾーンから削除してもよろしいですか?",
+    "message.action.delete.cluster": "このクラスターを削除してもよろしいですか?",
+    "message.action.delete.disk.offering": "このディスク オファリングを削除してもよろしいですか?",
+    "message.action.delete.domain": "このドメインを削除してもよろしいですか?",
+    "message.action.delete.external.firewall": "この外部ファイアウォールを削除してもよろしいですか? 警告: 同じ外部ファイアウォールを再度追加する予定である場合は、デバイスの使用状況データをリセットする必要があります。",
+    "message.action.delete.external.load.balancer": "この外部ロード バランサーを削除してもよろしいですか? 警告: 同じ外部ロード バランサーを再度追加する予定である場合は、デバイスの使用状況データをリセットする必要があります。",
+    "message.action.delete.ingress.rule": "この受信規則を削除してもよろしいですか?",
+    "message.action.delete.network": "このネットワークを削除してもよろしいですか?",
+    "message.action.delete.nexusVswitch": "この Nexus 1000V を削除してもよろしいですか?",
+    "message.action.delete.nic": "この NIC を削除してもよろしいですか? 関連付けられたネットワークも VM から削除されます。",
+    "message.action.delete.physical.network": "この物理ネットワークを削除してもよろしいですか?",
+    "message.action.delete.pod": "このポッドを削除してもよろしいですか?",
+    "message.action.delete.primary.storage": "このプライマリ ストレージを削除してもよろしいですか?",
+    "message.action.delete.secondary.storage": "このセカンダリ ストレージを削除してもよろしいですか?",
+    "message.action.delete.security.group": "このセキュリティ グループを削除してもよろしいですか?",
+    "message.action.delete.service.offering": "このサービス オファリングを削除してもよろしいですか?",
+    "message.action.delete.snapshot": "このスナップショットを削除してもよろしいですか?",
+    "message.action.delete.system.service.offering": "このシステム サービス オファリングを削除してもよろしいですか?",
+    "message.action.delete.template": "このテンプレートを削除してもよろしいですか?",
+    "message.action.delete.template.for.all.zones": "そのテンプレートはすべてのゾーンで使用されています。すべてのゾーンから削除してもよろしいですか?",
+    "message.action.delete.volume": "このボリュームを削除してもよろしいですか?",
+    "message.action.delete.zone": "このゾーンを削除してもよろしいですか?",
+    "message.action.destroy.instance": "このインスタンスを破棄してもよろしいですか?",
+    "message.action.destroy.systemvm": "このシステム VM を破棄してもよろしいですか?",
+    "message.action.disable.cluster": "このクラスターを無効にしてもよろしいですか?",
+    "message.action.disable.nexusVswitch": "この Nexus 1000V を無効にしてもよろしいですか?",
+    "message.action.disable.physical.network": "この物理ネットワークを無効にしてもよろしいですか?",
+    "message.action.disable.pod": "このポッドを無効にしてもよろしいですか?",
+    "message.action.disable.static.NAT": "静的 NAT を無効にしてもよろしいですか?",
+    "message.action.disable.zone": "このゾーンを無効にしてもよろしいですか?",
+    "message.action.download.iso": "この ISO をダウンロードしてもよろしいですか?",
+    "message.action.download.template": "このテンプレートをダウンロードしてもよろしいですか?",
+    "message.action.downloading.template": "テンプレートをダウンロードしています。",
+    "message.action.enable.cluster": "このクラスターを有効にしてもよろしいですか?",
+    "message.action.enable.maintenance": "ホストを保守する準備ができました。このホスト上の VM 数によっては、この処理には数分以上かかる可能性があります。",
+    "message.action.enable.nexusVswitch": "この Nexus 1000V を有効にしてもよろしいですか?",
+    "message.action.enable.physical.network": "この物理ネットワークを有効にしてもよろしいですか?",
+    "message.action.enable.pod": "このポッドを有効にしてもよろしいですか?",
+    "message.action.enable.zone": "このゾーンを有効にしてもよろしいですか?",
+    "message.action.expunge.instance": "このインスタンスを抹消してもよろしいですか?",
+    "message.action.force.reconnect": "ホストは強制的に再接続しました。この処理には数分かかる可能性があります。",
+    "message.action.host.enable.maintenance.mode": "保守モードを有効にすると、このホストで実行中のすべてのインスタンスがほかの使用できるホストにライブ マイグレーションされます。",
+    "message.action.instance.reset.password": "この仮想マシンのルート パスワードを変更してもよろしいですか?",
+    "message.action.manage.cluster": "クラスターを管理対象にしてもよろしいですか?",
+    "message.action.primarystorage.enable.maintenance.mode": "警告: プライマリ ストレージを保守モードにすると、そのストレージ上のボリュームを使用するすべての VM が停止します。続行してもよろしいですか?",
+    "message.action.reboot.instance": "このインスタンスを再起動してもよろしいですか?",
+    "message.action.reboot.router": "この仮想ルーターで提供するすべてのサービスが中断されます。このルーターを再起動してもよろしいですか?",
+    "message.action.reboot.systemvm": "このシステム VM を再起動してもよろしいですか?",
+    "message.action.release.ip": "この IP アドレスを解放してもよろしいですか?",
+    "message.action.remove.host": "このホストを削除してもよろしいですか?",
+    "message.action.reset.password.off": "インスタンスは現在この機能をサポートしていません。",
+    "message.action.reset.password.warning": "現在のパスワードを変更する前にインスタンスを停止する必要があります。",
+    "message.action.restore.instance": "このインスタンスを復元してもよろしいですか?",
+    "message.action.revert.snapshot": "所有ボリュームをこのスナップショットに戻してもよろしいですか?",
+    "message.action.start.instance": "このインスタンスを起動してもよろしいですか?",
+    "message.action.start.router": "このルーターを起動してもよろしいですか?",
+    "message.action.start.systemvm": "このシステム VM を起動してもよろしいですか?",
+    "message.action.stop.instance": "このインスタンスを停止してもよろしいですか?",
+    "message.action.stop.router": "この仮想ルーターで提供するすべてのサービスが中断されます。このルーターを停止してもよろしいですか?",
+    "message.action.stop.systemvm": "このシステム VM を停止してもよろしいですか?",
+    "message.action.take.snapshot": "このボリュームのスナップショットを作成してもよろしいですか?",
+    "message.action.unmanage.cluster": "クラスターを非管理対象にしてもよろしいですか?",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "この VM スナップショットを削除してもよろしいですか?",
+    "message.action.vmsnapshot.revert": "VM スナップショットを元に戻す",
+    "message.activate.project": "このプロジェクトをアクティブにしてもよろしいですか?",
+    "message.add.VPN.gateway": "VPN ゲートウェイを追加してもよろしいですか?",
+    "message.add.cluster": "ゾーン <b><span id=\"zone_name\"></span></b> のポッド <b><span id=\"pod_name\"></span></b> にハイパーバイザーで管理されるクラスターを追加します",
+    "message.add.cluster.zone": "ゾーン <b><span id=\"zone_name\"></span></b> にハイパーバイザーで管理されるクラスターを追加します",
+    "message.add.disk.offering": "新しいディスク オファリングを追加するために、次のパラメーターを指定してください。",
+    "message.add.domain": "このドメインに作成するサブドメインを指定してください。",
+    "message.add.firewall": "ゾーンにファイアウォールを追加します",
+    "message.add.guest.network": "ゲスト ネットワークを追加してもよろしいですか?",
+    "message.add.host": "新しいホストを追加するために、次のパラメーターを指定してください。",
+    "message.add.ip.range": "ゾーンのパブリック ネットワークに IP アドレスの範囲を追加します",
+    "message.add.ip.range.direct.network": "ゾーン <b><span id=\"zone_name\"></span></b> の直接ネットワーク <b><span id=\"directnetwork_name\"></span></b> に IP アドレスの範囲を追加します",
+    "message.add.ip.range.to.pod": "<p>ポッド <b><span id=\"pod_name_label\"></span></b> に IP アドレスの範囲を追加します</p>",
+    "message.add.load.balancer": "ゾーンにロード バランサーを追加します",
+    "message.add.load.balancer.under.ip": "ロード バランサー規則が次の IP アドレスに対して追加されました:",
+    "message.add.network": "ゾーン <b><span id=\"zone_name\"></span></b> に新しいネットワークを追加します",
+    "message.add.new.gateway.to.vpc": "この VPC に新しいゲートウェイを追加するための情報を指定してください。",
+    "message.add.pod": "ゾーン <b><span id=\"add_pod_zone_name\"></span></b> に新しいポッドを追加します",
+    "message.add.pod.during.zone.creation": "各ゾーンには 1 つ以上のポッドが必要です。今ここで最初のポッドを追加します。ポッドはホストとプライマリ ストレージ サーバーから構成されますが、これらは後の手順で追加します。最初に、CloudStack の内部管理トラフィックのために IP アドレスの範囲を予約します。IP アドレスの範囲は、クラウド内の各ゾーンで重複しないように予約する必要があります。",
+    "message.add.primary": "新しいプライマリ ストレージを追加するために、次のパラメーターを指定してください。",
+    "message.add.primary.storage": "ゾーン <b><span id=\"zone_name\"></span></b> のポッド <b><span id=\"pod_name\"></span></b> に新しいプライマリ ストレージを追加します",
+    "message.add.region": "新しいリージョンを追加するために必要な情報を指定してください。",
+    "message.add.secondary.storage": "ゾーン <b><span id=\"zone_name\"></span></b> に新しいストレージを追加します",
+    "message.add.service.offering": "新しいコンピューティング オファリングを追加するために、次のデータを入力してください。",
+    "message.add.system.service.offering": "新しいシステム サービス オファリングを追加するために、次のデータを入力してください。",
+    "message.add.template": "新しいテンプレートを作成するために、次のデータを入力してください。",
+    "message.add.volume": "新しいボリュームを追加するために、次のデータを入力してください。",
+    "message.added.new.nuage.vsp.controller": "新しい Nuage VSP コントローラーを追加しました",
+    "message.added.vpc.offering": "VPC オファリングを追加しました",
+    "message.adding.Netscaler.device": "NetScaler デバイスを追加しています",
+    "message.adding.Netscaler.provider": "NetScaler プロバイダーを追加しています",
+    "message.adding.host": "ホストを追加しています",
+    "message.additional.networks.desc": "仮想インスタンスが接続する追加のネットワークを選択してください。",
+    "message.admin.guide.read": "VMware ベースの VM については、サイズ変更の前に管理者ガイドの動的なサイズ変更のセクションをお読みください。続行してもよろしいですか?,",
+    "message.advanced.mode.desc": "VLAN サポートを有効にする場合は、このネットワーク モデルを選択してください。このモデルでは最も柔軟にカスタム ネットワーク オファリングを提供でき、ファイアウォール、VPN、ロード バランサーのサポートのほかに、直接ネットワークと仮想ネットワークも有効にすることができます。",
+    "message.advanced.security.group": "ゲスト VM を分離するためにセキュリティ グループを使用する場合は、このオプションを選択してください。",
+    "message.advanced.virtual": "ゲスト VM を分離するためにゾーン全体の VLAN を使用する場合は、このオプションを選択してください。",
+    "message.after.enable.s3": "S3 ベースのセカンダリ ストレージが構成されました。注: このページを閉じると、S3 を再構成することはできません。",
+    "message.after.enable.swift": "Swift が構成されました。注: このページを閉じると、Swift を再構成することはできません。",
+    "message.alert.state.detected": "アラート状態が検出されました",
+    "message.allow.vpn.access": "VPN アクセスを許可するユーザーのユーザー名とパスワードを入力してください。",
+    "message.apply.snapshot.policy": "現在のスナップショット ポリシーを更新しました。",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "この仮想インスタンスに ISO ファイルをアタッチしてもよろしいですか?",
+    "message.attach.volume": "新しいボリュームをアタッチするために、次のデータを入力してください。Windows ベースの仮想マシンにディスク ボリュームをアタッチする場合は、アタッチしたディスクを認識するためにインスタンスを再起動する必要があります。",
+    "message.basic.mode.desc": "VLAN サポートが<b><u>不要である</u></b>場合は、このネットワーク モデルを選択してください。このネットワーク モデルで作成されるすべての仮想インスタンスにネットワークから直接 IP アドレスが割り当てられ、セキュリティ グループを使用してセキュリティと分離が提供されます。",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "この仮想インスタンスのサービス オファリングを変更してもよろしいですか?",
+    "message.change.password": "パスワードを変更してください。",
+    "message.cluster.dedicated": "クラスターを専用に設定しました",
+    "message.cluster.dedication.released": "専用クラスターが解放されました",
+    "message.configure.all.traffic.types": "複数の物理ネットワークがあります。[編集] をクリックしてトラフィックの種類ごとにラベルを構成してください。",
+    "message.configure.firewall.rules.allow.traffic": "トラフィックを許可するようルールを設定する",
+    "message.configure.firewall.rules.block.traffic": "トラフィックをブロックするようルールを設定する",
+    "message.configure.ldap": "LDAP を構成してもよろしいですか?",
+    "message.configuring.guest.traffic": "ゲスト トラフィックを構成しています",
+    "message.configuring.physical.networks": "物理ネットワークを構成しています",
+    "message.configuring.public.traffic": "パブリック トラフィックを構成しています",
+    "message.configuring.storage.traffic": "ストレージ トラフィックを構成しています",
+    "message.confirm.action.force.reconnect": "このホストを強制再接続してもよろしいですか?",
+    "message.confirm.add.vnmc.provider": "VNMC プロバイダーを追加してもよろしいですか?",
+    "message.confirm.archive.alert": "このアラートをアーカイブしてもよろしいですか?",
+    "message.confirm.archive.event": "このイベントをアーカイブしてもよろしいですか?",
+    "message.confirm.archive.selected.alerts": "選択したアラートをアーカイブしてもよろしいですか?",
+    "message.confirm.archive.selected.events": "選択したイベントをアーカイブしてもよろしいですか?",
+    "message.confirm.attach.disk": "ディスクをアタッチしてもよろしいですか?",
+    "message.confirm.create.volume": "ボリュームを作成してもよろしいですか?",
+    "message.confirm.current.guest.CIDR.unchanged": "現在のゲスト ネットワークの CIDR を変更せずに維持してもよろしいですか?",
+    "message.confirm.dedicate.cluster.domain.account": "このクラスターをドメイン/アカウント専用に設定してもよろしいですか?",
+    "message.confirm.dedicate.host.domain.account": "このホストをドメイン/アカウント専用に設定してもよろしいですか?",
+    "message.confirm.dedicate.pod.domain.account": "このポッドをドメイン/アカウント専用に設定してもよろしいですか?",
+    "message.confirm.dedicate.zone": "このゾーンをドメイン/アカウント専用に設定してもよろしいですか?",
+    "message.confirm.delete.BigSwitchBcf": "この BigSwitch BCF コントローラーを削除してもよろしいですか?",
+    "message.confirm.delete.BrocadeVcs": "Brocade VCS スイッチを削除してもよろしいですか?",
+    "message.confirm.delete.F5": "F5 を削除してもよろしいですか?",
+    "message.confirm.delete.NetScaler": "NetScaler を削除してもよろしいですか?",
+    "message.confirm.delete.NuageVsp": "Nuage Virtualized Services Directory を削除してもよろしいですか?",
+    "message.confirm.delete.PA": "Palo Alto を削除してもよろしいですか?",
+    "message.confirm.delete.SRX": "SRX を削除してもよろしいですか?",
+    "message.confirm.delete.acl.list": "この ACL 一覧を削除してもよろしいですか?",
+    "message.confirm.delete.alert": "このアラートを削除してもよろしいですか?",
+    "message.confirm.delete.baremetal.rack.configuration": "ベアメタルラック設定を削除してもよろしいですか?",
+    "message.confirm.delete.ciscoASA1000v": "Cisco ASA 1000V を削除してもよろしいですか?",
+    "message.confirm.delete.ciscovnmc.resource": "Cisco VNMC リソースを削除してもよろしいですか?",
+    "message.confirm.delete.internal.lb": "内部 LB を削除してもよろしいですか?",
+    "message.confirm.delete.secondary.staging.store": "セカンダリ ステージング ストアを削除してもよろしいですか?",
+    "message.confirm.delete.ucs.manager": "UCS Manager を削除してもよろしいですか?",
+    "message.confirm.destroy.router": "このルーターを破棄してもよろしいですか?",
+    "message.confirm.disable.host": "ホストを無効にしてもよろしいですか?",
+    "message.confirm.disable.network.offering": "このネットワーク オファリングを無効にしてもよろしいですか?",
+    "message.confirm.disable.provider": "このプロバイダーを無効にしてもよろしいですか?",
+    "message.confirm.disable.vnmc.provider": "VNMC プロバイダーを無効にしてもよろしいですか?",
+    "message.confirm.disable.vpc.offering": "この VPC オファリングを無効にしてもよろしいですか?",
+    "message.confirm.enable.host": "ホストを有効にしてもよろしいですか?",
+    "message.confirm.enable.network.offering": "このネットワーク オファリングを有効にしてもよろしいですか?",
+    "message.confirm.enable.provider": "このプロバイダーを有効にしてもよろしいですか?",
+    "message.confirm.enable.vnmc.provider": "VNMC プロバイダーを有効にしてもよろしいですか?",
+    "message.confirm.enable.vpc.offering": "この VPC オファリングを有効にしてもよろしいですか?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "このプロジェクトに参加してもよろしいですか?",
+    "message.confirm.migrate.volume": "このボリュームを移行してもよろしいですか?",
+    "message.confirm.refresh.blades": "ブレードを更新してもよろしいですか?",
+    "message.confirm.release.dedicate.vlan.range": "専用 VLAN の範囲を解放してもよろしいですか?",
+    "message.confirm.release.dedicated.cluster": "この専用クラスターを解放してもよろしいですか?",
+    "message.confirm.release.dedicated.host": "この専用ホストを解放してもよろしいですか?",
+    "message.confirm.release.dedicated.pod": "この専用ポッドを解放してもよろしいですか?",
+    "message.confirm.release.dedicated.zone": "この専用ゾーンを解放してもよろしいですか?",
+    "message.confirm.remove.IP.range": "この IP アドレスの範囲を削除してもよろしいですか?",
+    "message.confirm.remove.event": "このイベントを削除してもよろしいですか?",
+    "message.confirm.remove.load.balancer": "ロード バランサーから VM を削除してもよろしいですか?",
+    "message.confirm.remove.network.offering": "このネットワーク オファリングを削除してもよろしいですか?",
+    "message.confirm.remove.selected.alerts": "選択したアラートを削除してもよろしいですか?",
+    "message.confirm.remove.selected.events": "選択したイベントを削除してもよろしいですか?",
+    "message.confirm.remove.vmware.datacenter": "VMware データセンターを削除してもよろしいですか?",
+    "message.confirm.remove.vpc.offering": "この VPC オファリングを削除してもよろしいですか?",
+    "message.confirm.replace.acl.new.one": "ACL を新しいものと置き換えてもよろしいですか?",
+    "message.confirm.scale.up.router.vm": "ルーター VM のサイズを拡大してもよろしいですか?",
+    "message.confirm.scale.up.system.vm": "システム VM のサイズを拡大してもよろしいですか?",
+    "message.confirm.shutdown.provider": "このプロバイダーをシャットダウンしてもよろしいですか?",
+    "message.confirm.start.lb.vm": "LB VM を起動してもよろしいですか?",
+    "message.confirm.stop.lb.vm": "LB VM を停止してもよろしいですか?",
+    "message.confirm.upgrade.router.newer.template": "ルーターをアップグレードして新しいテンプレートを使用してもよろしいですか?",
+    "message.confirm.upgrade.routers.account.newtemplate": "このアカウントのすべてのルーターをアップグレードして新しいテンプレートを使用してもよろしいですか?",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "このクラスターのすべてのルーターをアップグレードして新しいテンプレートを使用してもよろしいですか?",
+    "message.confirm.upgrade.routers.newtemplate": "このゾーンのすべてのルーターをアップグレードして新しいテンプレートを使用してもよろしいですか?",
+    "message.confirm.upgrade.routers.pod.newtemplate": "このポッドのすべてのルーターをアップグレードして新しいテンプレートを使用してもよろしいですか?",
+    "message.copy.iso.confirm": "ISO を次の場所にコピーしてもよろしいですか?",
+    "message.copy.template": "ゾーン <b id=\"copy_template_source_zone_text\"></b> からテンプレート <b id=\"copy_template_name_text\">XXX</b> を次の場所にコピーします:",
+    "message.copy.template.confirm": "テンプレートをコピーしてもよろしいですか?",
+    "message.create.template": "テンプレートを作成してもよろしいですか?",
+    "message.create.template.vm": "テンプレート <b id=\"p_name\"></b> から VM を作成します",
+    "message.create.template.volume": "ディスク ボリューム <b><span id=\"volume_name\"></span></b> のテンプレートを作成する前に、次の情報を指定してください。ボリューム サイズによっては、テンプレートの作成には数分以上かかる可能性があります。",
+    "message.creating.cluster": "クラスターを作成しています",
+    "message.creating.guest.network": "ゲスト ネットワークを作成しています",
+    "message.creating.physical.networks": "物理ネットワークを作成しています",
+    "message.creating.pod": "ポッドを作成しています",
+    "message.creating.primary.storage": "プライマリ ストレージを作成しています",
+    "message.creating.secondary.storage": "セカンダリ ストレージを作成しています",
+    "message.creating.systemVM": "システム VM を作成しています (しばらくお待ちください)",
+    "message.creating.zone": "ゾーンを作成しています",
+    "message.decline.invitation": "このプロジェクトへの招待を辞退してもよろしいですか?",
+    "message.dedicate.zone": "ゾーンを専用に設定しています",
+    "message.dedicated.zone.released": "専用ゾーンが解放されました",
+    "message.delete.VPN.connection": "VPN 接続を削除してもよろしいですか?",
+    "message.delete.VPN.customer.gateway": "この VPN カスタマー ゲートウェイを削除してもよろしいですか?",
+    "message.delete.VPN.gateway": "この VPN ゲートウェイを削除してもよろしいですか?",
+    "message.delete.account": "このアカウントを削除してもよろしいですか?",
+    "message.delete.affinity.group": "このアフィニティ グループを削除してもよろしいですか?",
+    "message.delete.gateway": "このゲートウェイを削除してもよろしいですか?",
+    "message.delete.project": "このプロジェクトを削除してもよろしいですか?",
+    "message.delete.user": "このユーザーを削除してもよろしいですか?",
+    "message.desc.add.new.lb.sticky.rule": "新しい LB スティッキールールを追加",
+    "message.desc.advanced.zone": "より洗練されたネットワーク技術をサポートします。このネットワーク モデルを選択すると、より柔軟にゲストのネットワークを定義し、ファイアウォール、VPN、ロード バランサーのサポートのようなカスタマイズしたネットワーク オファリングを提供できます。",
+    "message.desc.basic.zone": "各 VM インスタンスに IP アドレスがネットワークから直接割り当てられる、単一のネットワークを提供します。セキュリティ グループ (送信元 IP アドレスのフィルター) のようなレイヤー 3 レベルの方法でゲストを分離できます。",
+    "message.desc.cluster": "各ポッドには 1 つ以上のクラスターが必要です。今ここで最初のクラスターを追加します。クラスターはホストをグループ化する方法です。1 つのクラスター内のホストはすべて同一のハードウェアから構成され、同じハイパーバイザーを実行し、同じサブネット上にあり、同じ共有ストレージにアクセスします。各クラスターは 1 つ以上のホストと 1 つ以上のプライマリ ストレージ サーバーから構成されます。",
+    "message.desc.create.ssh.key.pair": "SSH キーペアの生成および登録のために以下のデータを入力してください<br><br>(1) 公開鍵が設定されている場合、CloudStack ではその公開鍵を登録し、対応するプライベートキーを使ってアクセスします<br><br>(2) 公開鍵が設定されていない場合、CloudStack では新しい SSH キーペア を生成します、その時 CloudStack では秘密鍵を保持しないためユーザーでコピーおよび保存してください<br>",
+    "message.desc.created.ssh.key.pair": "作成された SSH キーペア",
+    "message.desc.host": "各クラスターには少なくとも 1 つ、ゲスト VM を実行するためのホスト (コンピューター) が必要です。今ここで最初のホストを追加します。CloudStack でホストを機能させるには、ホストにハイパーバイザーをインストールして IP アドレスを割り当て、ホストが CloudStack 管理サーバーに接続していることを確認します。<br/><br/>ホストの DNS 名または IP アドレス、ユーザー名 (通常は root) とパスワード、およびホストの分類に使用するラベルを入力してください。",
+    "message.desc.primary.storage": "各クラスターには少なくとも 1 つ、プライマリ ストレージ サーバーが必要です。今ここで最初のサーバーを追加します。プライマリ ストレージは、クラスター内のホスト上で動作するすべての VM のディスク ボリュームを格納します。基礎となるハイパーバイザーでサポートされる、標準に準拠したプロトコルを使用してください。",
+    "message.desc.reset.ssh.key.pair": "この VM に追加する SSH キーペアを指定してください、パスワードが有効になっている場合 root のパスワードは変更される点に注意してください",
+    "message.desc.secondary.storage": "各ゾーンには少なくとも 1 つ、NFS つまりセカンダリ ストレージ サーバーが必要です。今ここで最初のサーバーを追加します。セカンダリ ストレージは VM テンプレート、ISO イメージ、およびVM ディスク ボリュームのスナップショットを格納します。このサーバーはゾーン内のすべてのホストで使用できる必要があります。<br/><br/>IP アドレスとエクスポートされたパスを入力してください。",
+    "message.desc.zone": "ゾーンは CloudStack 環境内の最大の組織単位で、通常、単一のデータセンターに相当します。ゾーンによって物理的な分離と冗長性が提供されます。ゾーンは 1 つ以上のポッド (各ポッドはホストとプライマリ ストレージ サーバーから構成されます) と、ゾーン内のすべてのポッドで共有されるセカンダリ ストレージ サーバーから構成されます。",
+    "message.detach.disk": "このディスクをデタッチしてもよろしいですか?",
+    "message.detach.iso.confirm": "この仮想インスタンスから ISO ファイルをデタッチしてもよろしいですか?",
+    "message.disable.account": "このアカウントを無効にしてもよろしいですか? このアカウントのすべてのユーザーがクラウド リソースにアクセスできなくなります。実行中のすべての仮想マシンが今すぐにシャットダウンされます。",
+    "message.disable.snapshot.policy": "現在のスナップショット ポリシーを無効にしました。",
+    "message.disable.user": "このユーザーを無効にしてもよろしいですか?",
+    "message.disable.vpn": "VPN を無効にしてもよろしいですか?",
+    "message.disable.vpn.access": "リモート アクセス VPN を無効にしてもよろしいですか?",
+    "message.disabling.network.offering": "ネットワーク オファリングを無効にしています",
+    "message.disabling.vpc.offering": "VPC オファリングを無効にしています",
+    "message.disallowed.characters": "許可されない文字: <,>",
+    "message.download.ISO": "ISO をダウンロードするには <a href=\"#\">00000</a> をクリックします",
+    "message.download.template": "テンプレートをダウンロードするには <a href=\"#\">00000</a> をクリックします",
+    "message.download.volume": "ボリュームをダウンロードするには <a href=\"#\">00000</a> をクリックします",
+    "message.download.volume.confirm": "このボリュームをダウンロードしてもよろしいですか?",
+    "message.edit.account": "編集 (「-1」は、リソース作成の量に制限がないことを示します)",
+    "message.edit.confirm": "保存する前に変更内容を確認してください",
+    "message.edit.limits": "次のリソースに制限を指定してください。「-1」は、リソース作成に制限がないことを示します。",
+    "message.edit.traffic.type": "このトラフィックの種類に関連付けるトラフィック ラベルを指定してください。",
+    "message.enable.account": "このアカウントを有効にしてもよろしいですか?",
+    "message.enable.user": "このユーザーを有効にしてもよろしいですか?",
+    "message.enable.vpn": "この IP アドレスに対するリモート アクセス VPN を有効にしてもよろしいですか?",
+    "message.enable.vpn.access": "現在この IP アドレスに対する VPN は無効です。VPN アクセスを有効にしてもよろしいですか?",
+    "message.enabled.vpn": "現在、リモート アクセス VPN が有効になっています。次の IP アドレス経由でアクセスできます。",
+    "message.enabled.vpn.ip.sec": "IPSec 事前共有キー:",
+    "message.enabling.network.offering": "ネットワーク オファリングを有効にしています",
+    "message.enabling.security.group.provider": "セキュリティ グループ プロバイダーを有効にしています",
+    "message.enabling.vpc.offering": "VPC オファリングを有効にしています",
+    "message.enabling.zone": "ゾーンを有効にしています",
+    "message.enabling.zone.dots": "ゾーンを有効にしています...",
+    "message.enter.seperated.list.multiple.cidrs": "CIDR が複数ある場合は、コンマ区切りの一覧を入力してください",
+    "message.enter.token": "電子メールの招待状に記載されているトークンを入力してください。",
+    "message.generate.keys": "このユーザーに新しいキーを生成してもよろしいですか?",
+    "message.gslb.delete.confirm": "この GSLB を削除してもよろしいですか?",
+    "message.gslb.lb.remove.confirm": "GSLB から負荷分散を削除してもよろしいですか?",
+    "message.guest.traffic.in.advanced.zone": "ゲスト ネットワーク トラフィックは、エンド ユーザーの仮想マシン間の通信です。各物理ネットワークのゲスト トラフィックを通信するための VLAN ID の範囲を指定してください。",
+    "message.guest.traffic.in.basic.zone": "ゲスト ネットワーク トラフィックは、エンド ユーザーの仮想マシン間の通信です。CloudStack でゲスト VM に割り当てられる IP アドレスの範囲を指定してください。この範囲が予約済みのシステム IP アドレスの範囲と重複しないように注意してください。",
+    "message.host.dedicated": "ホストを専用に設定しました",
+    "message.host.dedication.released": "専用ホストが解放されました",
+    "message.installWizard.click.retry": "起動を再試行するにはボタンをクリックしてください。",
+    "message.installWizard.copy.whatIsACluster": "クラスターはホストをグループ化する方法です。1 つのクラスター内のホストはすべて同一のハードウェアから構成され、同じハイパーバイザーを実行し、同じサブネット上にあり、同じ共有ストレージにアクセスします。同じクラスター内のホスト間では、ユーザーへのサービスを中断せずに、仮想マシン インスタンスをライブ マイグレーションすることができます。クラスターは CloudStack&#8482; 環境内の 3 番目に大きな組織単位です。クラスターはポッドに含まれ、ポッドはゾーンに含まれます。 <br/><br/>CloudStack&#8482; では 1 つのクラウド環境に複数のクラスターを設定できますが、基本インストールではクラスターは 1 つです。",
+    "message.installWizard.copy.whatIsAHost": "ホストは単一のコンピューターで、ゲスト仮想マシンを実行するコンピューティング リソースを提供します。ベア メタル ホストを除いて、各ホストにはゲスト仮想マシンを管理するためのハイパーバイザー ソフトウェアをインストールします。ベア メタル ホストについては、『インストールガイド上級編』で特殊例として説明します。たとえば、KVM が有効な Linux サーバー、Citrix XenServer が動作するサーバー、および ESXi サーバーがホストです。基本インストールでは、XenServer または KVM を実行する単一のホストを使用します。<br/><br/>ホストは CloudStack&#8482; 環境内の最小の組織単位です。ホストはクラスターに含まれ、クラスターはポッドに含まれ、ポッドはゾーンに含まれます。",
+    "message.installWizard.copy.whatIsAPod": "通常、1 つのポッドは単一のラックを表します。同じポッド内のホストは同じサブネットに含まれます。 <br/><br/>ポッドは CloudStack&#8482; 環境内の 2 番目に大きな組織単位です。ポッドはゾーンに含まれます。各ゾーンは 1 つ以上のポッドを含むことができます。基本インストールでは、ゾーン内のポッドは 1 つです。",
+    "message.installWizard.copy.whatIsAZone": "ゾーンは CloudStack&#8482; 環境内の最大の組織単位です。1 つのデータセンター内に複数のゾーンを設定できますが、通常、ゾーンは単一のデータセンターに相当します。インフラストラクチャをゾーンに組織化すると、ゾーンを物理的に分離して冗長化することができます。たとえば、各ゾーンに電源とネットワーク アップリンクを配備します。必須ではありませんが、ゾーンは遠隔地に分散することができます。",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482; はコンピューティング リソースをプールするソフトウェア プラットフォームで、パブリック、プライベート、およびハイブリッドの Infrastructure as a Service (IaaS) クラウドを構築することができます。CloudStack&#8482; を使用して、クラウド インフラストラクチャを構成するネットワーク、ストレージ、およびコンピューティング ノードを管理し、クラウド コンピューティング環境を展開、管理、および構成します。<br/><br/>CloudStack&#8482; はコモディティ化したハードウェア上で動作する個別の仮想マシン イメージを超えて拡張することができ、簡単な設定で動作するクラウド インフラストラクチャのソフトウェア スタックによって、仮想データセンターつまり多層型のマルチテナント クラウド アプリケーションをサービスとして構築し、展開し、管理するために不可欠なコンポーネントがすべて提供されます。オープン ソース バージョンとプレミアム バージョンの両方が提供されますが、オープン ソース バージョンでもほとんどの機能を使用できます。",
+    "message.installWizard.copy.whatIsPrimaryStorage": "CloudStack&#8482; のクラウド インフラストラクチャでは、プライマリ ストレージとセカンダリ ストレージの 2 種類のストレージを使用します。どちらのストレージにも、iSCSI、NFS サーバー、またはローカル ディスクを使用できます。<br/><br/><strong>プライマリ ストレージ</strong>はクラスターに関連付けられ、そのクラスター内のホストで動作するすべての VM の各ゲスト VM のディスク ボリュームを格納します。通常、プライマリ ストレージ サーバーはホストの近くに設置します。",
+    "message.installWizard.copy.whatIsSecondaryStorage": "セカンダリ ストレージはゾーンと関連付けられ、次の項目を格納します。<ul><li>テンプレート - VM の起動に使用できる OS イメージで、アプリケーションのインストールなど追加の構成を含めることができます。</li><li>ISO イメージ - 起動可能または起動不可の OS イメージです。</li><li>ディスク ボリュームのスナップショット - VM データの保存コピーです。データの復元または新しいテンプレートの作成に使用できます。</ul>",
+    "message.installWizard.now.building": "クラウドを構築しています...",
+    "message.installWizard.tooltip.addCluster.name": "クラスターの名前です。CloudStack で使用されていない、任意のテキストを指定できます。",
+    "message.installWizard.tooltip.addHost.hostname": "ホストの DNS 名または IP アドレスです。",
+    "message.installWizard.tooltip.addHost.password": "XenServer 側で指定した、上のユーザー名に対するパスワードです。",
+    "message.installWizard.tooltip.addHost.username": "通常は root です。",
+    "message.installWizard.tooltip.addPod.name": "ポッドの名前です。",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "これは、セカンダリ ストレージ VM およびコンソール プロキシ VM を管理するために CloudStack で使用する、プライベート ネットワーク内の IP アドレスの範囲です。これらの IP アドレスはコンピューティング サーバーと同じサブネットから割り当てます。",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "このポッド内のホストのゲートウェイです。",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "ゲストの使用するサブネット上で使用されるネットマスクです。",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "これは、セカンダリ ストレージ VM およびコンソール プロキシ VM を管理するために CloudStack で使用する、プライベート ネットワーク内の IP アドレスの範囲です。これらの IP アドレスはコンピューティング サーバーと同じサブネットから割り当てます。",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "ストレージ デバイスの名前です。",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(NFS の場合) サーバーからエクスポートされたパスです。(SharedMountPoint の場合) パスです。KVM ではこのプライマリ ストレージがマウントされる各ホスト上のパスです。たとえば、/mnt/primary です。",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(NFS、iSCSI、または PreSetup の場合) ストレージ デバイスの IP アドレスまたは DNS 名です。",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "セカンダリ ストレージをホストする NFS サーバーの IP アドレスです。",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "上に指定したサーバーに存在する、エクスポートされたパスです。",
+    "message.installWizard.tooltip.addZone.dns1": "ゾーン内のゲスト VM で使用する DNS サーバーです。これらの DNS サーバーには、後で追加するパブリック ネットワーク経由でアクセスします。ゾーンのパブリック IP アドレスから、ここで指定するパブリック DNS サーバーに通信できる必要があります。",
+    "message.installWizard.tooltip.addZone.dns2": "ゾーン内のゲスト VM で使用する DNS サーバーです。これらの DNS サーバーには、後で追加するパブリック ネットワーク経由でアクセスします。ゾーンのパブリック IP アドレスから、ここで指定するパブリック DNS サーバーに通信できる必要があります。",
+    "message.installWizard.tooltip.addZone.internaldns1": "ゾーン内のシステム VM で使用する DNS サーバーです。これらの DNS サーバーは、システム VM のプライベート ネットワーク インターフェイスを介してアクセスされます。ポッドのプライベート IP アドレスから、ここで指定する DNS サーバーに通信できる必要があります。",
+    "message.installWizard.tooltip.addZone.internaldns2": "ゾーン内のシステム VM で使用する DNS サーバーです。これらの DNS サーバーは、システム VM のプライベート ネットワーク インターフェイスを介してアクセスされます。ポッドのプライベート IP アドレスから、ここで指定する DNS サーバーに通信できる必要があります。",
+    "message.installWizard.tooltip.addZone.name": "ゾーンの名前です。",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "ネットワークの説明です。",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "このゾーンのゲストに割り当てることができる IP アドレスの範囲です。使用する NIC が 1 つの場合は、これらの IP アドレスはポッドの CIDR と同じ CIDR に含まれている必要があります。",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "ゲストの使用するゲートウェイです。",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "ゲストの使用するサブネット上で使用されるネットマスクです。",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "このゾーンのゲストに割り当てることができる IP アドレスの範囲です。使用する NIC が 1 つの場合は、これらの IP アドレスはポッドの CIDR と同じ CIDR に含まれている必要があります。",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "ネットワークの名前です。",
+    "message.instance.scaled.up.confirm": "インスタンスのサイズを拡大してもよろしいですか?",
+    "message.instanceWizard.noTemplates": "使用可能なテンプレートがありません。互換性のあるテンプレートを追加して、インスタンス ウィザードを再起動してください。",
+    "message.ip.address.changed": "お使いの IP アドレスが変更されている可能性があります。一覧を更新しますか? その場合は、詳細ペインが閉じることに注意してください。",
+    "message.iso.desc": "データまたは OS 起動可能メディアを含むディスク イメージ",
+    "message.join.project": "これで、プロジェクトに参加しました。プロジェクトを参照するにはプロジェクト ビューに切り替えてください。",
+    "message.launch.vm.on.private.network": "プライベートな専用ネットワークでインスタンスを起動しますか?",
+    "message.launch.zone": "ゾーンを起動する準備ができました。次の手順に進んでください。",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "このドメインと LDAP の自動同期を有効化する",
+    "message.listView.subselect.multi": "(Ctrl/Cmd キーを押しながらクリック)",
+    "message.lock.account": "このアカウントをロックしてもよろしいですか? このアカウントのすべてのユーザーがクラウド リソースを管理できなくなります。その後も既存のリソースにはアクセスできます。",
+    "message.migrate.instance.confirm": "仮想インスタンスの移行先は次のホストでよろしいですか?",
+    "message.migrate.instance.to.host": "別のホストにインスタンスを移行してもよろしいですか?",
+    "message.migrate.instance.select.host": "マイグレーション行うホストを選択。",
+    "message.migrate.instance.to.ps": "別のプライマリ ストレージにインスタンスを移行してもよろしいですか?",
+    "message.migrate.router.confirm": "ルーターの移行先は次のホストでよろしいですか?",
+    "message.migrate.systemvm.confirm": "システム VM の移行先は次のホストでよろしいですか?",
+    "message.migrate.volume": "別のプライマリ ストレージにボリュームを移行してもよろしいですか?",
+    "message.network.addVM.desc": "この VM を追加するネットワークを指定してください。このネットワークのための新しい NIC が追加されます。",
+    "message.network.addVMNIC": "このネットワークの新しい VM NIC を追加してもよろしいですか?",
+    "message.network.remote.access.vpn.configuration": "リモートアクセス VPN の設定は生成されましたが適用に失敗しました、ネットワークの接続性を確認しもう一度試してください",
+    "message.new.user": "アカウントに新しいユーザーを追加するために、次の情報を指定してください。",
+    "message.no.affinity.groups": "アフィニティ グループがありません。次の手順に進んでください。",
+    "message.no.host.available": "移行に使用できるホストはありません",
+    "message.no.more.hosts.available": "マイグレーション可能なホストがありません。",
+    "message.no.network.support": "ハイパーバイザーとして vSphere を選択しましたが、このハイパーバイザーに追加のネットワーク機能はありません。手順 5. に進んでください。",
+    "message.no.network.support.configuration.not.true": "セキュリティ グループが有効なゾーンが無いため、追加のネットワーク機能はありません。手順 5. に進んでください。",
+    "message.no.projects": "プロジェクトがありません。<br/>プロジェクト セクションから新しいプロジェクトを作成してください。",
+    "message.no.projects.adminOnly": "プロジェクトがありません。<br/>管理者に新しいプロジェクトの作成を依頼してください。",
+    "message.number.clusters": "<h2>クラスター<span>数</span></h2>",
+    "message.number.hosts": "<h2>ホスト<span>数</span></h2>",
+    "message.number.pods": "<h2>ポッド<span>数</span></h2>",
+    "message.number.storage": "<h2>プライマリ ストレージ ボリューム<span>数</span></h2>",
+    "message.number.zones": "<h2>ゾーン<span>数</span></h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "次のパスワードにリセットされました:",
+    "message.password.of.the.vm.has.been.reset.to": "VM のパスワードは次のようにリセットされました:",
+    "message.pending.projects.1": "保留中のプロジェクト招待状があります。",
+    "message.pending.projects.2": "表示するにはプロジェクト セクションに移動して、一覧から招待状を選択します。",
+    "message.please.add.at.lease.one.traffic.range": "少なくとも 1 つトラフィックの範囲を追加してください。",
+    "message.please.confirm.remove.ssh.key.pair": "この SSH キーペアを削除してもよろしいですか?",
+    "message.please.proceed": "次の手順に進んでください。",
+    "message.please.select.a.configuration.for.your.zone": "ゾーンの構成を選択してください。",
+    "message.please.select.a.different.public.and.management.network.before.removing": "削除の前に異なるパブリックおよび管理ネットワークを選択してください。",
+    "message.please.select.networks": "仮想マシンのネットワークを選択してください。",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "この VM に使用する SSH キーペアを選択してください",
+    "message.please.wait.while.zone.is.being.created": "ゾーンが作成されるまでしばらくお待ちください...",
+    "message.pod.dedication.released": "専用ポッドが解放されました",
+    "message.portable.ip.delete.confirm": "このポータブル IP アドレスの範囲を削除してもよろしいですか?",
+    "message.project.invite.sent": "ユーザーに招待状が送信されました。ユーザーが招待を承諾すると、プロジェクトに追加されます。",
+    "message.public.traffic.in.advanced.zone": "クラウド内の VM がインターネットにアクセスすると、パブリック トラフィックが生成されます。このために、一般にアクセス可能な IP アドレスを割り当てる必要があります。エンド ユーザーは CloudStack のユーザー インターフェイスを使用してこれらの IP アドレスを取得し、ゲスト ネットワークとパブリック ネットワークの間に NAT を実装することができます。<br/><br/>インターネット トラフィックのために、少なくとも 1 つ IP アドレスの範囲を入力してください。",
+    "message.public.traffic.in.basic.zone": "クラウド内の VM がインターネットにアクセスするかインターネット経由でクライアントにサービスを提供すると、パブリック トラフィックが生成されます。このために、一般にアクセス可能な IP アドレスを割り当てる必要があります。インスタンスを作成すると、ゲスト IP アドレスのほかにこのパブリック IP アドレスの範囲からアドレスが 1 つインスタンスに割り当てられます。パブリック IP アドレスとゲスト IP アドレスの間に、静的な 1 対 1 の NAT が自動的にセットアップされます。エンド ユーザーは CloudStack のユーザー インターフェイスを使用して追加の IP アドレスを取得し、インスタンスとパブリック IP アドレスの間に静的 NAT を実装することもできます。",
+    "message.question.are.you.sure.you.want.to.add": "追加してもよろしいですか?",
+    "message.read.admin.guide.scaling.up": "サイズを拡大する前に管理者ガイドの動的なサイズ変更のセクションをお読みください。",
+    "message.recover.vm": "この VM を復元してもよろしいですか?",
+    "message.redirecting.region": "リージョンにリダイレクトしています...",
+    "message.reinstall.vm": "注: 注意して続行してください。これにより VM がテンプレートから再インストールされます。ルート ディスク上のデータは失われます。追加のデータ ボリュームがある場合は、そのボリュームに影響はありません。",
+    "message.remove.ldap": "LDAP 構成を削除してもよろしいですか?",
+    "message.remove.region": "この管理サーバーからこのリージョンを削除してもよろしいですか?",
+    "message.remove.vpc": "VPC を削除してもよろしいですか?",
+    "message.remove.vpn.access": "次のユーザーから VPN アクセスを削除してもよろしいですか?",
+    "message.removed.ssh.key.pair": "削除された SSH キーペア",
+    "message.reset.VPN.connection": "VPN 接続をリセットしてもよろしいですか?",
+    "message.reset.password.warning.notPasswordEnabled": "このインスタンスのテンプレートは、パスワード管理を有効にせずに作成されました。",
+    "message.reset.password.warning.notStopped": "現在のパスワードを変更する前にインスタンスを停止する必要があります。",
+    "message.restart.mgmt.server": "新しい設定を有効にするために、管理サーバーを再起動してください。",
+    "message.restart.mgmt.usage.server": "新しい設定を有効にするために、管理サーバーと使用状況測定サーバーを再起動してください。",
+    "message.restart.network": "このネットワークで提供するすべてのサービスが中断されます。このネットワークを再起動してもよろしいですか?",
+    "message.restart.vpc": "VPC を再起動してもよろしいですか?",
+    "message.restart.vpc.remark": "VPC を再起動してもよろしいですか? <p><small><i>注意: 非冗長 VPC の冗長化は強制的にクリーンアップされます.  また、ネットワークは数分間利用出来なくなります</i>.</small></p>",
+    "message.restoreVM": "VM を復元してもよろしいですか?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(該当するセキュリティ グループをすべて選択するには、<strong>Ctrl キーを押しながらクリック</strong>してください)",
+    "message.select.a.zone": "ゾーンは通常、単一のデータセンターに相当します。複数のゾーンを設定し、物理的に分離して冗長性を持たせることにより、クラウドの信頼性を高めます。",
+    "message.select.affinity.groups": "この VM を追加するアフィニティ グループを選択してください。",
+    "message.select.instance": "インスタンスを選択してください。",
+    "message.select.iso": "新しい仮想インスタンスの ISO を選択してください。",
+    "message.select.item": "項目を選択してください。",
+    "message.select.security.groups": "新しい仮想マシンのセキュリティ グループを選択してください。",
+    "message.select.template": "新しい仮想インスタンスのテンプレートを選択してください。",
+    "message.select.tier": "階層を選択してください。",
+    "message.set.default.NIC": "この NIC をこの VM のデフォルトに設定してもよろしいですか?",
+    "message.set.default.NIC.manual": "今すぐにこの VM のデフォルト NIC を手動で更新してください。",
+    "message.setup.physical.network.during.zone.creation": "拡張ゾーンを追加するときは、1 つ以上の物理ネットワークをセットアップする必要があります。各ネットワークはハイパーバイザー上の 1 つの NIC に対応します。各物理ネットワークでは、組み合わせに制限がありますが、1 つ以上の種類のトラフィックを通信できます。<br/><br/>各物理ネットワークに対して<strong>トラフィックの種類をドラッグ アンド ドロップ</strong>してください。",
+    "message.setup.physical.network.during.zone.creation.basic": "基本ゾーンを追加するときは、ハイパーバイザー上の NIC に対応する 1 つの物理ネットワークをセットアップできます。ネットワークはいくつかの種類のトラフィックを伝送します。<br/><br/>物理ネットワークにほかのトラフィックの種類を<strong>ドラッグ アンド ドロップ</strong>することもできます。",
+    "message.setup.successful": "クラウドがセットアップされました。",
+    "message.snapshot.schedule": "以下の利用可能なオプションを選択しポリシー参照を適用することでスケジューリングによる連続したスナップショットを設定できます",
+    "message.specifiy.tag.key.value": "タグ キーおよび値を指定してください",
+    "message.specify.url": "URL を指定してください",
+    "message.step.1.continue": "続行するにはテンプレートまたは ISO を選択してください",
+    "message.step.1.desc": "新しい仮想インスタンス用のテンプレートを選択してください。ISO をインストールできる空白のテンプレートを選択することもできます。",
+    "message.step.2.continue": "続行するにはサービス オファリングを選択してください",
+    "message.step.3.continue": "続行するにはディスク オファリングを選択してください",
+    "message.step.4.continue": "続行するには少なくとも 1 つネットワークを選択してください",
+    "message.step.4.desc": "仮想インスタンスが接続するプライマリ ネットワークを選択してください。",
+    "message.storage.traffic": "ホストや CloudStack システム VM  など、管理サーバーと通信する CloudStack の内部リソース間のトラフィックです。ここでストレージ トラフィックを構成してください。",
+    "message.suspend.project": "このプロジェクトを一時停止してもよろしいですか?",
+    "message.systems.vms.ready": "システム VM の準備ができました。",
+    "message.template.copying": "テンプレートをコピーしています。",
+    "message.template.desc": "VM の起動に使用できる OS イメージ",
+    "message.tier.required": "階層は必須です",
+    "message.tooltip.dns.1": "ゾーン内の VM で使用する DNS サーバーの名前です。ゾーンのパブリック IP アドレスから、このサーバーに通信できる必要があります。",
+    "message.tooltip.dns.2": "ゾーン内の VM で使用する 2 番目の DNS サーバーの名前です。ゾーンのパブリック IP アドレスから、このサーバーに通信できる必要があります。",
+    "message.tooltip.internal.dns.1": "ゾーン内の CloudStack 内部システム VM で使用する DNS サーバーの名前です。ポッドのプライベート IP アドレスから、このサーバーに通信できる必要があります。",
+    "message.tooltip.internal.dns.2": "ゾーン内の CloudStack 内部システム VM で使用する DNS サーバーの名前です。ポッドのプライベート IP アドレスから、このサーバーに通信できる必要があります。",
+    "message.tooltip.network.domain": "DNS サフィックスです。このサフィックスからゲスト VM でアクセスするネットワークのカスタム ドメイン名が作成されます。",
+    "message.tooltip.pod.name": "このポッドの名前です。",
+    "message.tooltip.reserved.system.gateway": "ポッド内のホストのゲートウェイです。",
+    "message.tooltip.reserved.system.netmask": "ポッドのサブネットを定義するネットワーク プレフィックスです。CIDR 表記を使用します。",
+    "message.tooltip.zone.name": "ゾーンの名前です。",
+    "message.update.os.preference": "このホストの OS 基本設定を選択してください。同様の基本設定を持つすべての仮想インスタンスは、別のホストを選択する前にまずこのホストに割り当てられます。",
+    "message.update.resource.count": "このアカウントのリソース数を更新してもよろしいですか?",
+    "message.update.ssl": "各コンソール プロキシおよびセカンダリ ストレージの仮想インスタンスで更新する、X.509 準拠の新しい SSL 証明書を送信してください:",
+    "message.update.ssl.failed": "SSL 証明書の更新に失敗しました。",
+    "message.update.ssl.succeeded": "SSL 証明書の更新に成功しました",
+    "message.validate.URL": "URL を正しく入力してください。",
+    "message.validate.accept": "有効な拡張子を持つ値を入力してください。",
+    "message.validate.creditcard": "クレジット カード番号を正しく入力してください。",
+    "message.validate.date": "日付を正しく入力してください。",
+    "message.validate.date.ISO": "日付を正しく入力してください (ISO)。",
+    "message.validate.digits": "数字のみを入力してください。",
+    "message.validate.email.address": "メール アドレスを正しく入力してください。",
+    "message.validate.equalto": "同じ値を再入力してください。",
+    "message.validate.fieldrequired": "これは必須のフィールドです。",
+    "message.validate.fixfield": "このフィールドを修正してください。",
+    "message.validate.instance.name": "インスタンス名は 63 文字以内で指定してください。ASCII 文字の a~z、A~Z、数字の 0~9、およびハイフンのみを使用できます。文字で始まり、文字または数字で終わる必要があります。",
+    "message.validate.invalid.characters": "無効な文字が見つかりました。修整してください。",
+    "message.validate.max": "{0} 以下の値を入力してください。",
+    "message.validate.maxlength": "{0} 文字以下で入力してください。",
+    "message.validate.minlength": "{0} 文字以上で入力してください。",
+    "message.validate.number": "数値を正しく入力してください。",
+    "message.validate.range": "{0} ~ {1} の値を入力してください。",
+    "message.validate.range.length": "{0} ~ {1} 文字で入力してください。",
+    "message.virtual.network.desc": "アカウントの専用仮想ネットワークです。ブロードキャスト ドメインは VLAN 内に配置され、パブリック ネットワークへのアクセスはすべて仮想ルーターによってルーティングされます。",
+    "message.vm.create.template.confirm": "テンプレートを作成すると VM が自動的に再起動されます。",
+    "message.vm.review.launch": "次の情報を参照して、仮想インスタンスを正しく設定したことを確認してから起動してください。",
+    "message.vnmc.available.list": "プロバイダー一覧で VNMC を利用できません。",
+    "message.vnmc.not.available.list": "プロバイダー一覧で VNMC を利用できません。",
+    "message.volume.create.template.confirm": "このディスク ボリュームのテンプレートを作成してもよろしいですか? ボリューム サイズによっては、テンプレートの作成には数分以上かかる可能性があります。",
+    "message.waiting.for.builtin.templates.to.load": "組み込みテンプレートのロードを待機しています...",
+    "message.you.must.have.at.least.one.physical.network": "少なくとも 1 つ物理ネットワークが必要です",
+    "message.your.cloudstack.is.ready": "CloudStack の準備ができました!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "ゾーンが作成されました。このゾーンを有効にしてもよろしいですか?",
+    "message.zone.no.network.selection": "選択したゾーンでは、ネットワークを選択できません。",
+    "message.zone.step.1.desc": "ゾーンのネットワーク モデルを選択してください。",
+    "message.zone.step.2.desc": "新しいゾーンを追加するために、次の情報を入力してください。",
+    "message.zone.step.3.desc": "新しいポッドを追加するために、次の情報を入力してください。",
+    "message.zoneWizard.enable.local.storage": "警告: このゾーンのローカル ストレージを有効にする場合は、システム VM の起動場所に応じて次の操作が必要です。<br/><br/>1. システム VM を共有プライマリ ストレージで起動する必要がある場合は、共有プライマリ ストレージを作成した後でゾーンに追加する必要があります。ゾーンを無効状態から開始する必要もあります。<br/><br/>2. システム VM をローカル プライマリ ストレージで起動する必要がある場合は、ゾーンを有効にする前に system.vm.use.local.storage を true に設定する必要があります。<br/><br/><br/>続行してもよろしいですか?",
+    "messgae.validate.min": "{0} 以上の値を入力してください。",
+    "mode": "モード",
+    "network.rate": "ネットワーク速度",
+    "notification.reboot.instance": "インスタンスの再起動",
+    "notification.start.instance": "インスタンスの起動",
+    "notification.stop.instance": "インスタンスの停止",
+    "side.by.side": "並列",
+    "state.Accepted": "承諾済み",
+    "state.Active": "アクティブ",
+    "state.Allocated": "割り当て済み",
+    "state.Allocating": "割り当て中",
+    "state.BackedUp": "バックアップ済み",
+    "state.BackingUp": "バックアップ中",
+    "state.Completed": "完了",
+    "state.Creating": "作成中",
+    "state.Declined": "辞退",
+    "state.Destroyed": "破棄済み",
+    "state.Disabled": "無効",
+    "state.Enabled": "有効",
+    "state.Error": "エラー",
+    "state.Expunging": "抹消中",
+    "state.Migrating": "移行中",
+    "state.Pending": "保留",
+    "state.Ready": "準備完了",
+    "state.Running": "実行中",
+    "state.Starting": "開始中",
+    "state.Stopped": "停止済み",
+    "state.Stopping": "停止しています",
+    "state.Suspended": "一時停止",
+    "state.detached": "デタッチ済み",
+    "title.upload.volume": "ボリュームのアップロード",
+    "ui.listView.filters.all": "すべて",
+    "ui.listView.filters.mine": "自分のもの"
+};
diff --git a/ui/l10n/ko_KR.js b/ui/l10n/ko_KR.js
new file mode 100644
index 0000000..5cd6d12
--- /dev/null
+++ b/ui/l10n/ko_KR.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP 코드",
+    "ICMP.type": "ICMP 종류",
+    "changed.item.properties": "항목 속성 변경",
+    "confirm.enable.s3": "S3 기반 2차 저장소 지원을 하려면 아래 정보를 입력해 주십시오.",
+    "confirm.enable.swift": "Swift 기술 지원를 사용 하려면 다음 정보를 입력해 주십시오.",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "LDAP 기능이 활성화 되어 있기 때문에 패스워드 변경을 실패하였습니다.",
+    "error.could.not.enable.zone": "Zone을 사용 할 수 없습니다.",
+    "error.installWizard.message": "문제가 발생했습니다. 다시 오류를 수정할 수 있습니다.",
+    "error.invalid.username.password": "유효하지 않은 사용자명 또는 암호",
+    "error.login": "사용자명/암호가 기록과 일치하지 않습니다.",
+    "error.menu.select": "항목이 선택되어 있지 않기 때문에 작업을 실행할 수 없습니다.",
+    "error.mgmt.server.inaccessible": "관리 서버에 접근 할 수 없습니다. 다음에 재실행해 주십시오.",
+    "error.password.not.match": "암호가 일치하지 않음",
+    "error.please.specify.physical.network.tags": "현재 물리 네트워크 태그를 지정하지 않으면, 네트워크 제공은 사용할 수 없습니다.",
+    "error.session.expired": "세션 유효기간이 끊어졌습니다.",
+    "error.something.went.wrong.please.correct.the.following": "문제가 발생했습니다. 다음 내용을 수정해 주십시오",
+    "error.unable.to.reach.management.server": "관리 서버와 통신할 수 없습니다.",
+    "error.unresolved.internet.name": "인터넷 주소를 알수 없습니다.",
+    "force.delete": "강제 삭제",
+    "force.delete.domain.warning": "경고:이 옵션을 선택하면, 모든 내부 도메인 및 관련하는 모든 계정 정보와 그 자원이 삭제됩니다.",
+    "force.remove": "강제 해제",
+    "force.remove.host.warning": "경고:이 옵션을 선택하면, 실행중 모든 가상 머신이 강제적으로 정지되어 클러스터에서 호스트가 강제적으로 해제됩니다.",
+    "force.stop": "강제 정지",
+    "force.stop.instance.warning": "경고: 인스턴스 강제 정지는 최종 수단으로 해 주십시오. 데이터가 손실될 뿐만 아니라 가상 머신 동작이 일관하지 않게 될 가능성이 있습니다.",
+    "hint.no.host.tags": "No host tags found",
+    "hint.no.storage.tags": "No storage tags found",
+    "hint.type.part.host.tag": "Type in part of a host tag",
+    "hint.type.part.storage.tag": "Type in part of a storage tag",
+    "image.directory": "이미지 디렉토리",
+    "inline": "직렬",
+    "instances.actions.reboot.label": "인스턴스 재시작",
+    "label.CIDR.list": "CIDR 목록",
+    "label.CIDR.of.destination.network": "대상 네트워크 CIDR",
+    "label.CPU.cap": "CPU 제한",
+    "label.DHCP.server.type": "DHCP 서버 종류",
+    "label.DNS.domain.for.guest.networks": "손님 네트워크 DNS 도메인",
+    "label.ESP.encryption": "ESP 암호화",
+    "label.ESP.hash": "ESP 해시",
+    "label.ESP.lifetime": "ESP 유효기간(초)",
+    "label.ESP.policy": "ESP 정책",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE 암호화",
+    "label.IKE.hash": "IKE 해시",
+    "label.IKE.lifetime": "IKE 유효기간(초)",
+    "label.IKE.policy": "IKE 정책",
+    "label.IPsec.preshared.key": "IPsec 사전 공유 키",
+    "label.LB.isolation": "네트워크 로드 공유 분리",
+    "label.LUN.number": "LUN 번호",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto Log Profile",
+    "label.PA.threat.profile": "Palo Alto Threat Profile",
+    "label.PING.CIFS.password": "PING CIFS 암호",
+    "label.PING.CIFS.username": "PING CIFS 사용자명",
+    "label.PING.dir": "PING 디렉토리",
+    "label.PING.storage.IP": "PING 대상 스토리지 IP 주소",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "PXE 서버 종류",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNMP Port",
+    "label.SR.name": "SR 명 라벨",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP 디렉토리",
+    "label.VMFS.datastore": "VMFS 데이터 스토어",
+    "label.VMs.in.tier": "계층 내부 가상머신",
+    "label.VPC.limits": "VPC limits",
+    "label.VPC.router.details": "VPC 라우터 상세",
+    "label.VPN.connection": "VPN 접속",
+    "label.VPN.customer.gateway": "VPN 고객 게이트웨이",
+    "label.VPN.gateway": "VPN 게이트웨이",
+    "label.Xenserver.Tools.Version61plus": "Original XS Version is 6.1+",
+    "label.about": "소개",
+    "label.about.app": "CloudStack 소개",
+    "label.accept.project.invitation": "프로젝트 초대 승인",
+    "label.account": "계정 정보",
+    "label.account.and.security.group": "계정 정보, 보안 그룹",
+    "label.account.details": "Account details",
+    "label.account.id": "계정 정보 ID",
+    "label.account.lower": "account",
+    "label.account.name": "계정 정보명",
+    "label.account.specific": "계정 정보 고유",
+    "label.account.type": "Account Type",
+    "label.accounts": "계정 정보",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL List Rules",
+    "label.acl.name": "ACL Name",
+    "label.acl.replaced": "ACL replaced",
+    "label.acquire.new.ip": "새로운 IP 주소 취득",
+    "label.acquire.new.secondary.ip": "새로운 두번째 IP 주소 취득",
+    "label.action": "Action",
+    "label.action.attach.disk": "디스크 연결",
+    "label.action.attach.disk.processing": "디스크를 연결하는 중...",
+    "label.action.attach.iso": "ISO 연결",
+    "label.action.attach.iso.processing": "ISO를 연결하는 중...",
+    "label.action.cancel.maintenance.mode": "유지 보수 모드 취소",
+    "label.action.cancel.maintenance.mode.processing": "유지 보수 모드를 취소하는 중...",
+    "label.action.change.password": "암호 변경",
+    "label.action.change.service": "서비스 변경",
+    "label.action.change.service.processing": "서비스를 변경하는 중...",
+    "label.action.configure.samlauthorization": "Configure SAML SSO Authorization",
+    "label.action.copy.ISO": "ISO 복사",
+    "label.action.copy.ISO.processing": "Copying ISO....",
+    "label.action.copy.template": "템플릿 복사",
+    "label.action.copy.template.processing": "Copying Template....",
+    "label.action.create.template": "템플릿 만들기",
+    "label.action.create.template.from.vm": "VM에서 템플릿 만들기",
+    "label.action.create.template.from.volume": "볼륨에서 템플릿 만들기",
+    "label.action.create.template.processing": "템플릿을 만드는 중...",
+    "label.action.create.vm": "VM 만들기",
+    "label.action.create.vm.processing": "VM를 만드는 중...",
+    "label.action.create.volume": "볼륨 만들기",
+    "label.action.create.volume.processing": "볼륨을 만드는 중...",
+    "label.action.delete.IP.range": "IP 주소 범위 삭제",
+    "label.action.delete.IP.range.processing": "IP 주소 범위를 삭제하는 중...",
+    "label.action.delete.ISO": "ISO 삭제",
+    "label.action.delete.ISO.processing": "ISO를 삭제하는 중...",
+    "label.action.delete.account": "계정 정보 삭제",
+    "label.action.delete.account.processing": "계정 정보를 삭제하는 중...",
+    "label.action.delete.cluster": "클러스터 삭제",
+    "label.action.delete.cluster.processing": "클러스터를 삭제하는 중...",
+    "label.action.delete.disk.offering": "디스크 제공 삭제",
+    "label.action.delete.disk.offering.processing": "디스크 제공을 삭제하는 중...",
+    "label.action.delete.domain": "도메인 삭제",
+    "label.action.delete.domain.processing": "도메인을 삭제하는 중...",
+    "label.action.delete.firewall": "방화벽(fire wall) 규칙 삭제",
+    "label.action.delete.firewall.processing": "방화벽(fire wall)를 삭제하는 중...",
+    "label.action.delete.ingress.rule": "수신 규칙 삭제",
+    "label.action.delete.ingress.rule.processing": "수신 규칙을 삭제하는 중...",
+    "label.action.delete.load.balancer": "네트워크 로드 공유 규칙 삭제",
+    "label.action.delete.load.balancer.processing": "네트워크 로드 공유 장치를 삭제하는 중...",
+    "label.action.delete.network": "네트워크 삭제",
+    "label.action.delete.network.processing": "네트워크를 삭제하는 중...",
+    "label.action.delete.nexusVswitch": "Nexus 1000V 삭제",
+    "label.action.delete.nic": "Remove NIC",
+    "label.action.delete.physical.network": "물리 네트워크 삭제",
+    "label.action.delete.pod": "Pod 삭제",
+    "label.action.delete.pod.processing": "Pod를 삭제하는 중...",
+    "label.action.delete.primary.storage": "기본 스토리지 삭제",
+    "label.action.delete.primary.storage.processing": "기본 스토리지를 삭제하는 중...",
+    "label.action.delete.secondary.storage": "2차 스토리지 삭제",
+    "label.action.delete.secondary.storage.processing": "2차 스토리지를 삭제하는 중...",
+    "label.action.delete.security.group": "보안 그룹 삭제",
+    "label.action.delete.security.group.processing": "보안 그룹을 삭제하는 중...",
+    "label.action.delete.service.offering": "서비스제공 삭제",
+    "label.action.delete.service.offering.processing": "서비스제공을 삭제하는 중...",
+    "label.action.delete.snapshot": "스냅샷 삭제",
+    "label.action.delete.snapshot.processing": "스냅샷을 삭제하는 중...",
+    "label.action.delete.system.service.offering": "시스템 서비스 제공 삭제",
+    "label.action.delete.template": "템플릿 삭제",
+    "label.action.delete.template.processing": "템플릿을 삭제하는 중...",
+    "label.action.delete.user": "사용자 삭제",
+    "label.action.delete.user.processing": "사용자를 삭제하는 중...",
+    "label.action.delete.volume": "볼륨 삭제",
+    "label.action.delete.volume.processing": "볼륨을 삭제하는 중...",
+    "label.action.delete.zone": "Zone 삭제",
+    "label.action.delete.zone.processing": "Zone을 삭제하는 중...",
+    "label.action.destroy.instance": "인스턴스 파기",
+    "label.action.destroy.instance.processing": "인스턴스를 파기하는 중...",
+    "label.action.destroy.systemvm": "시스템 VM 파기",
+    "label.action.destroy.systemvm.processing": "시스템 VM를 파기하는 중...",
+    "label.action.detach.disk": "디스크 분리",
+    "label.action.detach.disk.processing": "디스크를 분리 하는 중...",
+    "label.action.detach.iso": "ISO 분리",
+    "label.action.detach.iso.processing": "ISO를 분리 하는 중...",
+    "label.action.disable.account": "계정 정보 중지",
+    "label.action.disable.account.processing": "계정 정보를 중지하는 중...",
+    "label.action.disable.cluster": "클러스터 사용 안 함",
+    "label.action.disable.cluster.processing": "클러스터를 사용 안 함으로 설정 중...",
+    "label.action.disable.nexusVswitch": "Nexus 1000V 사용 안 함",
+    "label.action.disable.physical.network": "물리 네트워크 사용 안 함",
+    "label.action.disable.pod": "Pod 사용 안 함",
+    "label.action.disable.pod.processing": "Pod를 사용 안 함으로 설정 중...",
+    "label.action.disable.static.NAT": "정적 NAT 사용 안 함",
+    "label.action.disable.static.NAT.processing": "정적 NAT를 중지하는 중...",
+    "label.action.disable.user": "사용자 중지",
+    "label.action.disable.user.processing": "사용자를 중지하는 중...",
+    "label.action.disable.zone": "Zone 사용 안 함",
+    "label.action.disable.zone.processing": "Zone을 사용 안 함으로 설정 중...",
+    "label.action.download.ISO": "ISO 다운로드",
+    "label.action.download.template": "템플릿 다운로드",
+    "label.action.download.volume": "볼륨 다운로드",
+    "label.action.download.volume.processing": "볼륨을 다운로드하는 중...",
+    "label.action.edit.ISO": "ISO 편집",
+    "label.action.edit.account": "계정 정보 편집",
+    "label.action.edit.disk.offering": "디스크 제공 편집",
+    "label.action.edit.domain": "도메인 편집",
+    "label.action.edit.global.setting": "글로벌 설정 편집",
+    "label.action.edit.host": "호스트 편집",
+    "label.action.edit.instance": "인스턴스 편집",
+    "label.action.edit.network": "네트워크 편집",
+    "label.action.edit.network.offering": "네트워크 제공 편집",
+    "label.action.edit.network.processing": "네트워크를 편집하는 중...",
+    "label.action.edit.pod": "Pod 편집",
+    "label.action.edit.primary.storage": "기본 스토리지 편집",
+    "label.action.edit.resource.limits": "자원 제한 편집",
+    "label.action.edit.service.offering": "서비스 제공 편집",
+    "label.action.edit.template": "템플릿 편집",
+    "label.action.edit.user": "사용자 편집",
+    "label.action.edit.zone": "Zone 편집",
+    "label.action.enable.account": "계정 정보 사용함",
+    "label.action.enable.account.processing": "계정 정보를 사용 설정 중...",
+    "label.action.enable.cluster": "클러스터 사용함",
+    "label.action.enable.cluster.processing": "클러스터를 사용 설정 중...",
+    "label.action.enable.maintenance.mode": "유지 보수 모드 사용함",
+    "label.action.enable.maintenance.mode.processing": "유지 보수 모드를 사용 설정 중...",
+    "label.action.enable.nexusVswitch": "Nexus 1000V 사용함",
+    "label.action.enable.physical.network": "물리 네트워크 사용함",
+    "label.action.enable.pod": "Pod 사용함",
+    "label.action.enable.pod.processing": "Pod를 사용 설정 중...",
+    "label.action.enable.static.NAT": "정적 NAT 사용함",
+    "label.action.enable.static.NAT.processing": "정적 NAT를 사용 설정 중...",
+    "label.action.enable.user": "사용자 사용함",
+    "label.action.enable.user.processing": "사용자를 사용 설정 중...",
+    "label.action.enable.zone": "Zone 사용함",
+    "label.action.enable.zone.processing": "Zone을 사용 설정 중...",
+    "label.action.expunge.instance": "Expunge Instance",
+    "label.action.expunge.instance.processing": "Expunging Instance....",
+    "label.action.force.reconnect": "강제재접속",
+    "label.action.force.reconnect.processing": "재접속하는 중...",
+    "label.action.generate.keys": "키 생성",
+    "label.action.generate.keys.processing": "키를 생성하는 중...",
+    "label.action.list.nexusVswitch": "Nexus 1000V 목록 표시",
+    "label.action.lock.account": "계정 정보 잠금",
+    "label.action.lock.account.processing": "계정 정보를 잠그는 중...",
+    "label.action.manage.cluster": "클러스터 관리 동작",
+    "label.action.manage.cluster.processing": "클러스터를 관리 대상으로 하는 중...",
+    "label.action.migrate.instance": "인스턴스 이전",
+    "label.action.migrate.instance.processing": "인스턴스를 이전하는 중...",
+    "label.action.migrate.router": "라우터 이전",
+    "label.action.migrate.router.processing": "라우터를 이전하는 중...",
+    "label.action.migrate.systemvm": "시스템 VM 이전",
+    "label.action.migrate.systemvm.processing": "시스템 VM를 이전하는 중",
+    "label.action.reboot.instance": "인스턴스 재시작",
+    "label.action.reboot.instance.processing": "인스턴스를 재시작하는 중...",
+    "label.action.reboot.router": "라우터 재시작",
+    "label.action.reboot.router.processing": "라우터를 재시작하는 중...",
+    "label.action.reboot.systemvm": "시스템 VM 재시작",
+    "label.action.reboot.systemvm.processing": "시스템 VM를 재시작하는 중...",
+    "label.action.recurring.snapshot": "정기 스냅샷",
+    "label.action.register.iso": "ISO 등록",
+    "label.action.register.template": "Register Template from URL",
+    "label.action.release.ip": "IP 주소 해제",
+    "label.action.release.ip.processing": "IP 주소를 해제하는 중...",
+    "label.action.remove.host": "호스트 삭제",
+    "label.action.remove.host.processing": "호스트를 삭제하는 중...",
+    "label.action.reset.password": "암호 재설정",
+    "label.action.reset.password.processing": "암호를 재설정 하는 중...",
+    "label.action.resize.volume": "볼륨 크기 변경",
+    "label.action.resize.volume.processing": "볼륨 크기 변경 중...",
+    "label.action.resource.limits": "자원 제한",
+    "label.action.restore.instance": "인스턴스 복원",
+    "label.action.restore.instance.processing": "인스턴스를 복원하는 중...",
+    "label.action.revert.snapshot": "Revert to Snapshot",
+    "label.action.revert.snapshot.processing": "Reverting to Snapshot...",
+    "label.action.start.instance": "인스턴스 시작",
+    "label.action.start.instance.processing": "인스턴스를 시작하는 중...",
+    "label.action.start.router": "라우터 시작",
+    "label.action.start.router.processing": "라우터를 시작하는 중...",
+    "label.action.start.systemvm": "시스템 VM 시작",
+    "label.action.start.systemvm.processing": "시스템 VM를 시작하는 중...",
+    "label.action.stop.instance": "인스턴스 정지",
+    "label.action.stop.instance.processing": "인스턴스를 정지하는 중...",
+    "label.action.stop.router": "라우터 정지",
+    "label.action.stop.router.processing": "라우터를 정지하는 중...",
+    "label.action.stop.systemvm": "시스템 VM 정지",
+    "label.action.stop.systemvm.processing": "시스템 VM를 정지하는 중...",
+    "label.action.take.snapshot": "스냅샷 만들기",
+    "label.action.take.snapshot.processing": "스냅샷을 만드는 중....",
+    "label.action.unmanage.cluster": "클러스터 비관리 동작",
+    "label.action.unmanage.cluster.processing": "클러스터를 비관리 대상으로 하는 중...",
+    "label.action.update.OS.preference": "OS 기본 설정 업데이트",
+    "label.action.update.OS.preference.processing": "OS 기본 설정을 업데이트하는 중...",
+    "label.action.update.resource.count": "자원 수 업데이트",
+    "label.action.update.resource.count.processing": "자원 수를 업데이트하는 중...",
+    "label.action.vmsnapshot.create": "VM 스",
+    "label.action.vmsnapshot.delete": "VM",
+    "label.action.vmsnapshot.revert": "VM 스냅샷",
+    "label.actions": "작업",
+    "label.activate.project": "프로젝트 활성화",
+    "label.active.sessions": "활성 세션",
+    "label.add": "추가",
+    "label.add.ACL": "권한 관리(ACL) 추가",
+    "label.add.BigSwitchBcf.device": "Add BigSwitch BCF Controller",
+    "label.add.BrocadeVcs.device": "Add Brocade Vcs Switch",
+    "label.add.F5.device": "F5 기기 추가",
+    "label.add.LDAP.account": "Add LDAP Account",
+    "label.add.NiciraNvp.device": "Nvp 콘트롤러",
+    "label.add.NuageVsp.device": "Add Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Add OpenDaylight Controller",
+    "label.add.PA.device": "Add Palo Alto device",
+    "label.add.SRX.device": "SRX 기기 추가",
+    "label.add.VM.to.tier": "계층에 VM 추가",
+    "label.add.VPN.gateway": "VPN 게이트웨이 추가",
+    "label.add.account": "계정 정보 추가",
+    "label.add.account.to.project": "계정 정보 프로젝트에 추가",
+    "label.add.accounts": "계정 정보 추가",
+    "label.add.accounts.to": "계정 정보 추가:",
+    "label.add.acl.list": "Add ACL List",
+    "label.add.affinity.group": "Add new affinity group",
+    "label.add.baremetal.dhcp.device": "Add Baremetal DHCP Device",
+    "label.add.baremetal.rack.configuration": "Add Baremetal Rack Configuration",
+    "label.add.by": "추가 단위",
+    "label.add.by.cidr": "CIDR 로 추가",
+    "label.add.by.group": "그룹에서 추가",
+    "label.add.ciscoASA1000v": "Add CiscoASA1000v Resource",
+    "label.add.cluster": "클러스터 추가",
+    "label.add.compute.offering": "컴퓨팅 자원 추가",
+    "label.add.direct.iprange": "직접 IP 주소 범위 추가",
+    "label.add.disk.offering": "디스크 제공 추가",
+    "label.add.domain": "도메인 추가",
+    "label.add.egress.rule": "전송 규칙 추가",
+    "label.add.firewall": "방화벽(fire wall) 규칙 추가",
+    "label.add.globo.dns": "Add GloboDNS",
+    "label.add.gslb": "Add GSLB",
+    "label.add.guest.network": "손님 네트워크 추가",
+    "label.add.host": "호스트 추가",
+    "label.add.ingress.rule": "수신 규칙 추가",
+    "label.add.intermediate.certificate": "Add intermediate certificate",
+    "label.add.internal.lb": "Add Internal LB",
+    "label.add.ip.range": "IP 주소 범위 추가",
+    "label.add.isolated.guest.network": "Add Isolated Guest Network",
+    "label.add.isolated.guest.network.with.sourcenat": "Add Isolated Guest Network with SourceNat",
+    "label.add.isolated.network": "Add Isolated Network",
+    "label.add.ldap.account": "Add LDAP account",
+    "label.add.list.name": "ACL List Name",
+    "label.add.load.balancer": "네트워크 로드 공유 장치 추가",
+    "label.add.more": "다른 항목 추가",
+    "label.add.netScaler.device": "Netscaler 기기 추가",
+    "label.add.network": "네트워크 추가",
+    "label.add.network.ACL": "네트워크 권한 관리(ACL) 추가",
+    "label.add.network.acl.list": "Add Network ACL List",
+    "label.add.network.device": "네트워크 기기 추가",
+    "label.add.network.offering": "네트워크 제공 추가",
+    "label.add.new.F5": "새로운 F5 추가",
+    "label.add.new.NetScaler": "새로운 NetScaler 추가",
+    "label.add.new.PA": "Add new Palo Alto",
+    "label.add.new.SRX": "새로운 SRX 추가",
+    "label.add.new.gateway": "새 게이트웨이 추가하기",
+    "label.add.new.tier": "새 계층 추가",
+    "label.add.nfs.secondary.staging.store": "Add NFS Secondary Staging Store",
+    "label.add.physical.network": "물리 네트워크 추가",
+    "label.add.pod": "Pod 추가",
+    "label.add.port.forwarding.rule": "포토 전송 규칙의 추가",
+    "label.add.portable.ip.range": "Add Portable IP Range",
+    "label.add.primary.storage": "기본 스토리지 추가",
+    "label.add.private.gateway": "Add Private Gateway",
+    "label.add.region": "지역",
+    "label.add.resources": "자원 추가",
+    "label.add.role": "Add Role",
+    "label.add.route": "라우트 추가",
+    "label.add.rule": "규칙 추가",
+    "label.add.secondary.storage": "2차 스토리지 추가",
+    "label.add.security.group": "보안 그룹 추가",
+    "label.add.service.offering": "서비스제공 추가",
+    "label.add.static.nat.rule": "정적 NAT 규칙 추가",
+    "label.add.static.route": "정적 라우트 추가",
+    "label.add.system.service.offering": "시스템 서비스 제공 추가",
+    "label.add.template": "템플릿 추가",
+    "label.add.to.group": "그룹에 추가",
+    "label.add.ucs.manager": "Add UCS Manager",
+    "label.add.user": "사용자 추가",
+    "label.add.userdata": "Userdata",
+    "label.add.vlan": "VLAN 추가",
+    "label.add.vm": "VM 추가",
+    "label.add.vms": "VM 추가",
+    "label.add.vms.to.lb": "네트워크 로드 공유 규칙에 VM 추가",
+    "label.add.vmware.datacenter": "Add VMware datacenter",
+    "label.add.vnmc.device": "Add VNMC device",
+    "label.add.vnmc.provider": "Add VNMC provider",
+    "label.add.volume": "볼륨 추가",
+    "label.add.vpc": "VPC 추가",
+    "label.add.vpc.offering": "Add VPC Offering",
+    "label.add.vpn.customer.gateway": "VPN 고객 게이트웨이 추가",
+    "label.add.vpn.user": "VPN 사용자 추가",
+    "label.add.vxlan": "VXLAN 추가",
+    "label.add.zone": "Zone 추가",
+    "label.added.brocade.vcs.switch": "Added new Brocade Vcs Switch",
+    "label.added.network.offering": "Added network offering",
+    "label.added.new.bigswitch.bcf.controller": "Added new BigSwitch BCF Controller",
+    "label.added.nicira.nvp.controller": "Added new Nicira NVP Controller",
+    "label.addes.new.f5": "Added new F5",
+    "label.adding": "정보 추가",
+    "label.adding.cluster": "클러스터를 추가중...",
+    "label.adding.failed": "추가할 수 없음",
+    "label.adding.pod": "Pod를 추가 가능",
+    "label.adding.processing": "추가하는 중...",
+    "label.adding.succeeded": "추가 완료",
+    "label.adding.user": "사용자 추가",
+    "label.adding.zone": "Zone 추가",
+    "label.additional.networks": "추가 네트워크",
+    "label.admin": "관리자",
+    "label.admin.accounts": "관리자 계정 정보",
+    "label.advanced": "확장",
+    "label.advanced.mode": "확장 모드",
+    "label.advanced.search": "고도 검색",
+    "label.affinity": "Affinity",
+    "label.affinity.group": "Affinity Group",
+    "label.affinity.groups": "Affinity Groups",
+    "label.agent.password": "에이전트 암호",
+    "label.agent.port": "Agent Port",
+    "label.agent.state": "Agent State",
+    "label.agent.username": "에이전트 사용자명",
+    "label.agree": "동의",
+    "label.alert": "알림 체제",
+    "label.alert.archived": "Alert Archived",
+    "label.alert.deleted": "Alert Deleted",
+    "label.alert.details": "Alert details",
+    "label.algorithm": "알고리즘",
+    "label.allocated": "할당 완료 상태",
+    "label.allocation.state": "할당 상태",
+    "label.allow": "Allow",
+    "label.anti.affinity": "Anti-affinity",
+    "label.anti.affinity.group": "Anti-affinity Group",
+    "label.anti.affinity.groups": "Anti-affinity Groups",
+    "label.api.key": "API 키",
+    "label.api.version": "API Version",
+    "label.app.name": "CloudStack",
+    "label.apply": "적용",
+    "label.archive": "Archive",
+    "label.archive.alerts": "알림",
+    "label.archive.events": "이벤트",
+    "label.assign": "할당",
+    "label.assign.instance.another": "Assign Instance to Another Account",
+    "label.assign.to.load.balancer": "네트워크 로드 공유 장치에 인스턴스를 할당",
+    "label.assign.vms": "Assign VMs",
+    "label.assigned.vms": "Assigned VMs",
+    "label.associate.public.ip": "Associate Public IP",
+    "label.associated.network": "관련 네트워크",
+    "label.associated.network.id": "관련 네트워크 ID",
+    "label.associated.profile": "Associated Profile",
+    "label.attached.iso": "연결 ISO",
+    "label.author.email": "제작자",
+    "label.author.name": "Author name",
+    "label.autoscale": "AutoScale",
+    "label.autoscale.configuration.wizard": "AutoScale Configuration Wizard",
+    "label.availability": "가용성",
+    "label.availability.zone": "이용 가능 Zone",
+    "label.availabilityZone": "availabilityZone",
+    "label.available": "사용 가능",
+    "label.available.public.ips": "사용 가능 공개 IP 주소",
+    "label.back": "뒤로",
+    "label.bandwidth": "대역폭",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP Devices",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP Provider",
+    "label.baremetal.pxe.device": "Add Baremetal PXE Device",
+    "label.baremetal.pxe.devices": "Baremetal PXE Devices",
+    "label.baremetal.pxe.provider": "Baremetal PXE Provider",
+    "label.baremetal.rack.configuration": "Baremetal Rack Configuration",
+    "label.basic": "기본",
+    "label.basic.mode": "기본 모드",
+    "label.bigswitch.bcf.details": "BigSwitch BCF details",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT Enabled",
+    "label.bigswitch.controller.address": "BigSwitch BCF Controller Address",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blades",
+    "label.bootable": "부팅 가능",
+    "label.broadcast.domain.range": "브로드캐스트 도메인 범위",
+    "label.broadcast.domain.type": "브로드캐스트 도메인 종류",
+    "label.broadcast.uri": "Broadcast URI",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "Broadcast URI",
+    "label.brocade.vcs.address": "Vcs Switch Address",
+    "label.brocade.vcs.details": "Brocade Vcs Switch details",
+    "label.by.account": "계정 정보",
+    "label.by.alert.type": "알림",
+    "label.by.availability": "가용성",
+    "label.by.date.end": "날짜(종료일)",
+    "label.by.date.start": "날짜(시작일)",
+    "label.by.domain": "도메인",
+    "label.by.end.date": "종료일",
+    "label.by.event.type": "이벤트",
+    "label.by.level": "레벨",
+    "label.by.pod": "Pod",
+    "label.by.role": "역할",
+    "label.by.start.date": "시작일",
+    "label.by.state": "상태",
+    "label.by.traffic.type": "트래픽 종류",
+    "label.by.type": "종류",
+    "label.by.type.id": "종류 ID",
+    "label.by.zone": "Zone",
+    "label.bytes.received": "수신 바이트",
+    "label.bytes.sent": "전송 바이트",
+    "label.cache.mode": "Write-cache Type",
+    "label.cancel": "취소",
+    "label.capacity": "처리 능력",
+    "label.capacity.bytes": "Capacity Bytes",
+    "label.capacity.iops": "Capacity IOPS",
+    "label.certificate": "인증서",
+    "label.change.affinity": "Change Affinity",
+    "label.change.ipaddress": "Change IP address for NIC",
+    "label.change.service.offering": "서비스 제공 변경",
+    "label.change.value": "값 변경",
+    "label.character": "문자",
+    "label.chassis": "Chassis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR 또는 계정 정보/보안 그룹",
+    "label.cidr.list": "전송원 CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP Address",
+    "label.cisco.nexus1000v.password": "Nexus 1000v Password",
+    "label.cisco.nexus1000v.username": "Nexus 1000v Username",
+    "label.ciscovnmc.resource.details": "CiscoVNMC resource details",
+    "label.clean.up": "삭제하기",
+    "label.clear.list": "목록 삭제",
+    "label.close": "닫기",
+    "label.cloud.console": "클라우드 관리 콘솔",
+    "label.cloud.managed": "Cloud.com 관리",
+    "label.cluster": "클러스터",
+    "label.cluster.name": "클러스터명",
+    "label.cluster.type": "클러스터 종류",
+    "label.clusters": "클러스터",
+    "label.clvm": "CLVM",
+    "label.code": "코드",
+    "label.community": "커뮤니티",
+    "label.compute": "컴퓨팅",
+    "label.compute.and.storage": "컴퓨팅과 스토리지",
+    "label.compute.offering": "컴퓨팅 자원 제공",
+    "label.compute.offerings": "Compute Offerings",
+    "label.configuration": "구성",
+    "label.configure": "구성",
+    "label.configure.ldap": "Configure LDAP",
+    "label.configure.network.ACLs": "네트워크 권한 관리(ACL) 구성",
+    "label.configure.sticky.policy": "Configure Sticky Policy",
+    "label.configure.vpc": "VPC 구성",
+    "label.confirm.password": "암호 확인 입력",
+    "label.confirmation": "확인",
+    "label.congratulations": "설정이 곧 완료입니다.",
+    "label.conserve.mode": "절약 모드",
+    "label.console.proxy": "콘솔 프록시",
+    "label.console.proxy.vm": "Console Proxy VM",
+    "label.continue": "실행",
+    "label.continue.basic.install": "기본 설치 실행",
+    "label.copying.iso": "Copying ISO",
+    "label.corrections.saved": "접속 정보 저장",
+    "label.counter": "Counter",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "할당 완료 CPU",
+    "label.cpu.allocated.for.VMs": "VM에 할당 완료 CPU",
+    "label.cpu.limits": "CPU limits",
+    "label.cpu.mhz": "CPU (MHz)",
+    "label.cpu.utilized": "CPU 사용율",
+    "label.create.VPN.connection": "VPN 접속 만들기",
+    "label.create.nfs.secondary.staging.storage": "Create NFS Secondary Staging Store",
+    "label.create.nfs.secondary.staging.store": "Create NFS secondary staging store",
+    "label.create.project": "프로젝트 만들기",
+    "label.create.ssh.key.pair": "Create a SSH Key Pair",
+    "label.create.template": "템플릿 만들기",
+    "label.created": "일시 만들기",
+    "label.created.by.system": "시스템 만들기",
+    "label.cross.zones": "크로스 존",
+    "label.custom": "Custom",
+    "label.custom.disk.iops": "Custom IOPS",
+    "label.custom.disk.offering": "Custom Disk Offering",
+    "label.custom.disk.size": "맞춤 디스크 크기",
+    "label.daily": "매일",
+    "label.data.disk.offering": "데이타 디스크 제공",
+    "label.date": "날짜",
+    "label.day": "Day",
+    "label.day.of.month": "매월 지정일",
+    "label.day.of.week": "매주 지정일",
+    "label.dc.name": "DC Name",
+    "label.dead.peer.detection": "정지 피어 감지",
+    "label.decline.invitation": "초대 거절",
+    "label.dedicate": "Dedicate",
+    "label.dedicate.cluster": "Dedicate Cluster",
+    "label.dedicate.host": "Dedicate Host",
+    "label.dedicate.pod": "Dedicate Pod",
+    "label.dedicate.vlan.vni.range": "Dedicate VLAN/VNI Range",
+    "label.dedicate.zone": "Dedicate Zone",
+    "label.dedicated": "전용",
+    "label.dedicated.vlan.vni.ranges": "Dedicated VLAN/VNI Ranges",
+    "label.default": "기본",
+    "label.default.egress.policy": "Default egress policy",
+    "label.default.use": "기본 사용",
+    "label.default.view": "기본 보기",
+    "label.delete": "삭제",
+    "label.delete.BigSwitchBcf": "Remove BigSwitch BCF Controller",
+    "label.delete.BrocadeVcs": "Remove Brocade Vcs Switch",
+    "label.delete.F5": "F5 삭제",
+    "label.delete.NetScaler": "NetScaler 삭제",
+    "label.delete.NiciraNvp": "Remove Nvp Controller",
+    "label.delete.NuageVsp": "Remove Nuage VSD",
+    "label.delete.OpenDaylight.device": "Delete OpenDaylight Controller",
+    "label.delete.PA": "Delete Palo Alto",
+    "label.delete.SRX": "SRX 삭제",
+    "label.delete.VPN.connection": "VPN 접속 삭제",
+    "label.delete.VPN.customer.gateway": "VPN 고객 게이트웨이 삭제",
+    "label.delete.VPN.gateway": "VPN 게이트웨이삭제",
+    "label.delete.acl.list": "Delete ACL List",
+    "label.delete.affinity.group": "Delete Affinity Group",
+    "label.delete.alerts": "알림",
+    "label.delete.baremetal.rack.configuration": "Delete Baremetal Rack Configuration",
+    "label.delete.ciscoASA1000v": "Delete CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Delete CiscoVNMC resource",
+    "label.delete.events": "이벤트",
+    "label.delete.gateway": "게이트웨이 삭제",
+    "label.delete.internal.lb": "Delete Internal LB",
+    "label.delete.portable.ip.range": "Delete Portable IP Range",
+    "label.delete.profile": "Delete Profile",
+    "label.delete.project": "프로젝트 삭제",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Delete Secondary Staging Store",
+    "label.delete.ucs.manager": "Delete UCS Manager",
+    "label.delete.vpn.user": "VPN 사용자 삭제",
+    "label.deleting.failed": "삭제할 수 없음",
+    "label.deleting.processing": "삭제하는 중...",
+    "label.deny": "Deny",
+    "label.deployment.planner": "Deployment planner",
+    "label.description": "설명",
+    "label.destination.physical.network.id": "목적 물리 네트워크 ID",
+    "label.destination.zone": "복사할 Zone",
+    "label.destroy": "파기",
+    "label.destroy.router": "라우터 파기",
+    "label.destroy.vm.graceperiod": "Destroy VM Grace Period",
+    "label.detaching.disk": "디스크를 분리함",
+    "label.details": "상세",
+    "label.device.id": "기기 ID",
+    "label.devices": "기기",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Direct Attached Public IP",
+    "label.direct.ips": "직접 IP 주소",
+    "label.disable.autoscale": "Disable Autoscale",
+    "label.disable.host": "Disable Host",
+    "label.disable.network.offering": "Disable network offering",
+    "label.disable.provider": "제공자 사용 안 함",
+    "label.disable.vnmc.provider": "Disable VNMC provider",
+    "label.disable.vpc.offering": "Disable VPC offering",
+    "label.disable.vpn": "VPN 사용 안 함",
+    "label.disabled": "사용 안함",
+    "label.disabling.vpn.access": "VPN 접근를 사용 안 함으로 설정 중",
+    "label.disassociate.profile.blade": "Disassociate Profile from Blade",
+    "label.disbale.vnmc.device": "Disable VNMC device",
+    "label.disk.allocated": "할당 완료 디스크",
+    "label.disk.bytes.read.rate": "Disk Read Rate (BPS)",
+    "label.disk.bytes.write.rate": "Disk Write Rate (BPS)",
+    "label.disk.iops.max": "Max IOPS",
+    "label.disk.iops.min": "Min IOPS",
+    "label.disk.iops.read.rate": "Disk Read Rate (IOPS)",
+    "label.disk.iops.total": "IOPS Total",
+    "label.disk.iops.write.rate": "Disk Write Rate (IOPS)",
+    "label.disk.offering": "디스크 제공",
+    "label.disk.offering.details": "Disk offering details",
+    "label.disk.provisioningtype": "Provisioning Type",
+    "label.disk.read.bytes": "Disk Read (Bytes)",
+    "label.disk.read.io": "Disk Read (IO)",
+    "label.disk.size": "디스크 크기",
+    "label.disk.size.gb": "디스크 크기(GB 단위)",
+    "label.disk.total": "디스크 합계",
+    "label.disk.volume": "디스크 볼륨",
+    "label.disk.write.bytes": "Disk Write (Bytes)",
+    "label.disk.write.io": "Disk Write (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Display Name",
+    "label.display.text": "표시 텍스트",
+    "label.distributedrouter": "Distributed Router",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "도메인",
+    "label.domain.admin": "도메인 관리자",
+    "label.domain.details": "Domain details",
+    "label.domain.id": "도메인 ID",
+    "label.domain.lower": "domain",
+    "label.domain.name": "도메인명",
+    "label.domain.router": "도메인 라우터",
+    "label.domain.suffix": "DNS 도메인 (예: xyz.com)",
+    "label.done": "완료",
+    "label.double.quotes.are.not.allowed": "큰 따옴표 사용할 수 없음",
+    "label.download.progress": "다운로드 진행 사항",
+    "label.drag.new.position": "새로운 위치에 끌어오기",
+    "label.duration.in.sec": "Duration (in sec)",
+    "label.dynamically.scalable": "Dynamically Scalable",
+    "label.edit": "편집",
+    "label.edit.acl.rule": "Edit ACL rule",
+    "label.edit.affinity.group": "Edit Affinity Group",
+    "label.edit.lb.rule": "네트워크 로드 공유 규칙 편집",
+    "label.edit.network.details": "네트워크 상세한 편집",
+    "label.edit.project.details": "프로젝트 상세 편집",
+    "label.edit.region": "Edit Region",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Edit rule",
+    "label.edit.secondary.ips": "Edit secondary IPs",
+    "label.edit.tags": "태그 편집",
+    "label.edit.traffic.type": "트래픽 종류 편집",
+    "label.edit.vpc": "VPC 편집",
+    "label.egress.default.policy": "Egress 기본",
+    "label.egress.rule": "전송 규칙",
+    "label.egress.rules": "Egress rules",
+    "label.elastic": "오류 스틱",
+    "label.elastic.IP": "탄력적 IP 주소",
+    "label.elastic.LB": "탄력적 네트워크 로드 공유",
+    "label.email": "전자 메일",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Enable Autoscale",
+    "label.enable.host": "Enable Host",
+    "label.enable.network.offering": "Enable network offering",
+    "label.enable.provider": "제공자 사용함",
+    "label.enable.s3": "Enable S3-backed Secondary Storage",
+    "label.enable.swift": "Swift 사용함",
+    "label.enable.vnmc.device": "Enable VNMC device",
+    "label.enable.vnmc.provider": "Enable VNMC provider",
+    "label.enable.vpc.offering": "Enable VPC offering",
+    "label.enable.vpn": "VPN 사용함",
+    "label.enabling.vpn": "VPN를 사용 하고 있음",
+    "label.enabling.vpn.access": "VPN 접근를 사용 하고 있음",
+    "label.end.IP": "종료 IP 주소",
+    "label.end.port": "종료 포토",
+    "label.end.reserved.system.IP": "예약된 종료 시스템 IP 주소",
+    "label.end.vlan": "End VLAN",
+    "label.end.vxlan": "End VXLAN",
+    "label.endpoint": "Endpoint",
+    "label.endpoint.or.operation": "엔드 포인트 또는 작업",
+    "label.enter.token": "토큰 입력",
+    "label.error": "오류",
+    "label.error.code": "오류 코드",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "ESX/ESXi 호스트",
+    "label.event": "Event",
+    "label.event.archived": "Event Archived",
+    "label.event.deleted": "Event Deleted",
+    "label.every": "Every",
+    "label.example": "예",
+    "label.expunge": "Expunge",
+    "label.external.link": "External link",
+    "label.extractable": "추출 가능",
+    "label.extractable.lower": "extractable",
+    "label.f5": "F5",
+    "label.f5.details": "F5 details",
+    "label.failed": "실패",
+    "label.featured": "추천",
+    "label.fetch.latest": "최신 정보 취득",
+    "label.filterBy": "필터",
+    "label.fingerprint": "FingerPrint",
+    "label.firewall": "방화벽(fire wall)",
+    "label.first.name": "이름",
+    "label.firstname.lower": "firstname",
+    "label.format": "형식",
+    "label.format.lower": "format",
+    "label.friday": "금요일",
+    "label.full": "전체",
+    "label.full.path": "전체 경로",
+    "label.gateway": "게이트웨이",
+    "label.general.alerts": "일반 알림 체제",
+    "label.generating.url": "URL를 생성하고 있음",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS Configuration",
+    "label.gluster.volume": "볼륨",
+    "label.go.step.2": "단계 2으로",
+    "label.go.step.3": "단계 3으로",
+    "label.go.step.4": "단계 4으로",
+    "label.go.step.5": "단계 5으로",
+    "label.gpu": "GPU",
+    "label.group": "그룹",
+    "label.group.by.account": "Group by account",
+    "label.group.by.cluster": "Group by cluster",
+    "label.group.by.pod": "Group by pod",
+    "label.group.by.zone": "Group by zone",
+    "label.group.optional": "그룹(옵션)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Assigned load balancing",
+    "label.gslb.assigned.lb.more": "Assign more load balancing",
+    "label.gslb.delete": "Delete GSLB",
+    "label.gslb.details": "GSLB details",
+    "label.gslb.domain.name": "GSLB Domain Name",
+    "label.gslb.lb.details": "Load balancing details",
+    "label.gslb.lb.remove": "Remove load balancing from this GSLB",
+    "label.gslb.lb.rule": "Load balancing rule",
+    "label.gslb.service": "GSLB service",
+    "label.gslb.service.private.ip": "GSLB service Private IP",
+    "label.gslb.service.public.ip": "GSLB service Public IP",
+    "label.gslb.servicetype": "Service Type",
+    "label.guest": "게스트",
+    "label.guest.cidr": "게스트 CIDR",
+    "label.guest.end.ip": "게스트 종료 IP 주소",
+    "label.guest.gateway": "게스트 게이트웨이",
+    "label.guest.ip": "게스트 IP 주소",
+    "label.guest.ip.range": "게스트 IP 주소 범위",
+    "label.guest.netmask": "게스트 넷 마스크",
+    "label.guest.network.details": "Guest network details",
+    "label.guest.networks": "손님 네트워크",
+    "label.guest.start.ip": "게스트 시작 IP 주소",
+    "label.guest.traffic": "게스트 트래픽",
+    "label.guest.traffic.vswitch.name": "Guest Traffic vSwitch Name",
+    "label.guest.traffic.vswitch.type": "Guest Traffic vSwitch Type",
+    "label.guest.type": "게스트 종류",
+    "label.ha.enabled": "고가용성 사용함",
+    "label.health.check": "Health Check",
+    "label.health.check.advanced.options": "Advanced Options:",
+    "label.health.check.configurations.options": "Configuration Options:",
+    "label.health.check.interval.in.sec": "Health Check Interval (in sec)",
+    "label.health.check.message.desc": "Your load balancer will automatically perform health checks on your cloudstack instances and only route traffic to instances that pass the health check",
+    "label.health.check.wizard": "Health Check Wizard",
+    "label.healthy.threshold": "Healthy Threshold",
+    "label.help": "도움말",
+    "label.hide.ingress.rule": "수신 규칙을 숨기기",
+    "label.hints": "정보",
+    "label.home": "Home",
+    "label.host": "호스트",
+    "label.host.MAC": "호스트 MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "호스트명",
+    "label.host.tag": "Host Tag",
+    "label.host.tags": "호스트 태그",
+    "label.hosts": "호스트",
+    "label.hourly": "매시간",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Traffic Label",
+    "label.hypervisor": "하이퍼 바이저",
+    "label.hypervisor.capabilities": "하이퍼 바이저 기능",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Snapshot Reserve",
+    "label.hypervisor.type": "하이퍼 바이저 종류",
+    "label.hypervisor.version": "하이퍼 바이저 버전",
+    "label.hypervisors": "하이퍼바이저",
+    "label.id": "ID",
+    "label.info": "정보",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "수신 규칙",
+    "label.initiated.by": "시작 사용자",
+    "label.inside.port.profile": "Inside Port Profile",
+    "label.installWizard.addClusterIntro.subtitle": "클러스터 대한 정보",
+    "label.installWizard.addClusterIntro.title": "클러스터 추가",
+    "label.installWizard.addHostIntro.subtitle": "호스트에 대해",
+    "label.installWizard.addHostIntro.title": "호스트 추가",
+    "label.installWizard.addPodIntro.subtitle": "Pod에 대한 정보",
+    "label.installWizard.addPodIntro.title": "Pod 추가",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "기본 스토리지에 대해",
+    "label.installWizard.addPrimaryStorageIntro.title": "기본 스토리지 추가",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "2차 스토리지에 대해",
+    "label.installWizard.addSecondaryStorageIntro.title": "2차 스토리지 추가",
+    "label.installWizard.addZone.title": "Zone 추가",
+    "label.installWizard.addZoneIntro.subtitle": "Zone에 대한 정보",
+    "label.installWizard.addZoneIntro.title": "Zone 추가",
+    "label.installWizard.click.launch": "[시작]을 클릭해 주십시오.",
+    "label.installWizard.subtitle": "현재 가이드 투어는 CloudStack™ 환경 설정에 도움이 됩니다",
+    "label.installWizard.title": "CloudStack™ 마법사",
+    "label.instance": "인스턴스",
+    "label.instance.limits": "인스턴스 제한",
+    "label.instance.name": "인스턴스명",
+    "label.instance.port": "Instance Port",
+    "label.instance.scaled.up": "Instance scaled to the requested offering",
+    "label.instances": "인스턴스",
+    "label.instanciate.template.associate.profile.blade": "Instanciate Template and Associate Profile to Blade",
+    "label.intermediate.certificate": "Intermediate certificate {0}",
+    "label.internal.dns.1": "내부 DNS 1",
+    "label.internal.dns.2": "내부 DNS 2",
+    "label.internal.lb": "Internal LB",
+    "label.internal.lb.details": "Internal LB details",
+    "label.internal.name": "내부명",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "간격 종류",
+    "label.introduction.to.cloudstack": "CloudStack™ 소개",
+    "label.invalid.integer": "유효하지 않은 정수값",
+    "label.invalid.number": "유효하지 않은 숫자값",
+    "label.invitations": "초대장",
+    "label.invite": "초대",
+    "label.invite.to": "초대 프로젝트:",
+    "label.invited.accounts": "초대가 끝난 계정 정보",
+    "label.ip": "IP",
+    "label.ip.address": "IP 주소",
+    "label.ip.allocations": "IP 주소 할당",
+    "label.ip.limits": "공개 IP 주소 제한",
+    "label.ip.or.fqdn": "IP 주소 또는 FQDN",
+    "label.ip.range": "IP 주소 범위",
+    "label.ip.ranges": "IP 주소 범위",
+    "label.ipaddress": "IP 주소",
+    "label.ips": "IP",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 End IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4 Netmask",
+    "label.ipv4.start.ip": "IPv4 Start IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP Address",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 End IP",
+    "label.ipv6.gateway": "IPv6 Gateway",
+    "label.ipv6.start.ip": "IPv6 Start IP",
+    "label.is.default": "기본",
+    "label.is.redundant.router": "중복",
+    "label.is.shared": "공유",
+    "label.is.system": "시스템",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO 시작",
+    "label.isolated.networks": "분리 네트워크",
+    "label.isolation.method": "분리 방법",
+    "label.isolation.mode": "분리 모드",
+    "label.isolation.uri": "Isolation URI",
+    "label.item.listing": "항목 목록",
+    "label.japanese.keyboard": "Japanese keyboard",
+    "label.keep": "유지",
+    "label.keep.colon": "Keep:",
+    "label.key": "키",
+    "label.keyboard.language": "Keyboard language",
+    "label.keyboard.type": "키보드 종류",
+    "label.kvm.traffic.label": "KVM 트래픽 라벨",
+    "label.label": "라벨",
+    "label.lang.arabic": "Arabic",
+    "label.lang.brportugese": "Brazilian Portugese",
+    "label.lang.catalan": "Catalan",
+    "label.lang.chinese": "중국어(간체)",
+    "label.lang.dutch": "Dutch (Netherlands)",
+    "label.lang.english": "영어",
+    "label.lang.french": "French",
+    "label.lang.german": "German",
+    "label.lang.hungarian": "Hungarian",
+    "label.lang.italian": "Italian",
+    "label.lang.japanese": "일본어",
+    "label.lang.korean": "한국어",
+    "label.lang.norwegian": "Norwegian",
+    "label.lang.polish": "Polish",
+    "label.lang.russian": "Russian",
+    "label.lang.spanish": "스페인어",
+    "label.last.disconnected": "마지막 종료 시점",
+    "label.last.name": "성",
+    "label.lastname.lower": "lastname",
+    "label.latest.events": "최신 이벤트",
+    "label.launch": "시작",
+    "label.launch.vm": "VM 시작",
+    "label.launch.zone": "Zone 시작",
+    "label.lb.algorithm.leastconn": "최소 접속",
+    "label.lb.algorithm.roundrobin": "라운드 로빈",
+    "label.lb.algorithm.source": "시작 위치",
+    "label.ldap.configuration": "LDAP Configuration",
+    "label.ldap.group.name": "LDAP Group",
+    "label.ldap.link.type": "종류",
+    "label.ldap.port": "LDAP port",
+    "label.level": "레벨",
+    "label.link.domain.to.ldap": "Link Domain to LDAP",
+    "label.linklocal.ip": "Link Local IP Address",
+    "label.load.balancer": "네트워크 로드 공유 장치",
+    "label.load.balancer.type": "Load Balancer Type",
+    "label.load.balancing": "네트워크 로드 공유",
+    "label.load.balancing.policies": "네트워크 로드 공유 정책",
+    "label.loading": "로드 하는 중",
+    "label.local": "로컬",
+    "label.local.file": "Local file",
+    "label.local.storage": "로컬 스토리지",
+    "label.local.storage.enabled": "Enable local storage for User VMs",
+    "label.local.storage.enabled.system.vms": "Enable local storage for System VMs",
+    "label.login": "로그인",
+    "label.logout": "로그아웃",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC Traffic Label",
+    "label.make.project.owner": "계정 정보 프로젝트 소유자",
+    "label.make.redundant": "Make redundant",
+    "label.manage": "관리",
+    "label.manage.resources": "자원 관리",
+    "label.managed": "Managed",
+    "label.management": "관리",
+    "label.management.ips": "관리 IP 주소",
+    "label.management.server": "Management Server",
+    "label.max.cpus": "Max. CPU cores",
+    "label.max.guest.limit": "최대 게스트 제한",
+    "label.max.instances": "Max Instances",
+    "label.max.memory": "Max. memory (MiB)",
+    "label.max.networks": "최대 네트워크수",
+    "label.max.primary.storage": "Max. primary (GiB)",
+    "label.max.public.ips": "최대 공개 IP 주소수",
+    "label.max.secondary.storage": "Max. secondary (GiB)",
+    "label.max.snapshots": "최대 스냅샷수",
+    "label.max.templates": "최대 템플릿수",
+    "label.max.vms": "최대 사용자 VM수",
+    "label.max.volumes": "최대 볼륨수",
+    "label.max.vpcs": "Max. VPCs",
+    "label.maximum": "최대",
+    "label.may.continue": "실행 할 수 있음",
+    "label.md5.checksum": "MD5 체크섬",
+    "label.memory": "메모리",
+    "label.memory.allocated": "할당완료 메모리",
+    "label.memory.limits": "Memory limits (MiB)",
+    "label.memory.mb": "메모리 (MB)",
+    "label.memory.total": "메모리 합계",
+    "label.memory.used": "메모리 사용량",
+    "label.menu.accounts": "계정 정보",
+    "label.menu.alerts": "알림 체계",
+    "label.menu.all.accounts": "모든 계정 정보",
+    "label.menu.all.instances": "모든 인스턴스",
+    "label.menu.community.isos": "커뮤니티 ISO",
+    "label.menu.community.templates": "커뮤니티 템플릿",
+    "label.menu.configuration": "구성",
+    "label.menu.dashboard": "대시 보드",
+    "label.menu.destroyed.instances": "파기된 인스턴스",
+    "label.menu.disk.offerings": "디스크제공",
+    "label.menu.domains": "도메인",
+    "label.menu.events": "이벤트",
+    "label.menu.featured.isos": "추천 ISO",
+    "label.menu.featured.templates": "추천 템플릿",
+    "label.menu.global.settings": "글로벌 설정",
+    "label.menu.infrastructure": "인프라스트럭쳐",
+    "label.menu.instances": "인스턴스",
+    "label.menu.ipaddresses": "IP 주소",
+    "label.menu.isos": "ISO",
+    "label.menu.my.accounts": "나의 계정 정보",
+    "label.menu.my.instances": "나의 인스턴스",
+    "label.menu.my.isos": "나의 ISO",
+    "label.menu.my.templates": "나의 템플릿",
+    "label.menu.network": "네트워크",
+    "label.menu.network.offerings": "네트워크 제공",
+    "label.menu.physical.resources": "물리 자원",
+    "label.menu.regions": "Regions",
+    "label.menu.running.instances": "실행 중 인스턴스",
+    "label.menu.security.groups": "보안 그룹",
+    "label.menu.service.offerings": "서비스제공",
+    "label.menu.snapshots": "스냅샷",
+    "label.menu.sshkeypair": "SSH KeyPair",
+    "label.menu.stopped.instances": "정지된 인스턴스",
+    "label.menu.storage": "스토리지",
+    "label.menu.system": "시스템",
+    "label.menu.system.service.offerings": "시스템 제공",
+    "label.menu.system.vms": "시스템 VM",
+    "label.menu.templates": "템플릿",
+    "label.menu.virtual.appliances": "가상 아프라이안스",
+    "label.menu.virtual.resources": "가상 자원",
+    "label.menu.volumes": "볼륨",
+    "label.menu.vpc.offerings": "VPC Offerings",
+    "label.metrics": "Metrics",
+    "label.metrics.allocated": "할당 완료 상태",
+    "label.metrics.clusters": "클러스터",
+    "label.metrics.cpu.allocated": "CPU Allocation",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "CPU Usage",
+    "label.metrics.cpu.used.avg": "사용 중",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "할당 완료 상태",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Read",
+    "label.metrics.disk.size": "크기",
+    "label.metrics.disk.storagetype": "종류",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Unallocated",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "사용 중",
+    "label.metrics.disk.write": "Write",
+    "label.metrics.hosts": "호스트",
+    "label.metrics.memory.allocated": "Mem Allocation",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Mem Usage",
+    "label.metrics.memory.used.avg": "사용 중",
+    "label.metrics.name": "이름",
+    "label.metrics.network.read": "Read",
+    "label.metrics.network.usage": "Network Usage",
+    "label.metrics.network.write": "Write",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "범위",
+    "label.metrics.state": "상태",
+    "label.metrics.storagepool": "Storage Pool",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "인스턴스 이전 위치:",
+    "label.migrate.instance.to.host": "다른 호스트에게 인스턴스 이전",
+    "label.migrate.instance.to.ps": "다른 기본 스토리지에 인스턴스 이전",
+    "label.migrate.lb.vm": "Migrate LB VM",
+    "label.migrate.router.to": "라우터 이전 위치:",
+    "label.migrate.systemvm.to": "시스템 VM 이전 위치:",
+    "label.migrate.to.host": "Migrate to host",
+    "label.migrate.to.storage": "Migrate to storage",
+    "label.migrate.volume": "Migrate Volume",
+    "label.migrate.volume.to.primary.storage": "다른 기본 스토리지에 볼륨 이전",
+    "label.min.instances": "Min Instances",
+    "label.min.past.the.hr": "min past the hr",
+    "label.minimum": "최소",
+    "label.minute.past.hour": "minute(s) past the hour",
+    "label.minutes.past.hour": "minutes(s) past the hour",
+    "label.mode": "모드",
+    "label.monday": "월요일",
+    "label.monthly": "매월",
+    "label.more.templates": "다른 템플릿",
+    "label.move.down.row": "아래로 이동",
+    "label.move.to.bottom": "마지막으로 이동",
+    "label.move.to.top": "처음으로 이동",
+    "label.move.up.row": "위로 이동",
+    "label.my.account": "나의 계정 정보",
+    "label.my.network": "내 네트워크",
+    "label.my.templates": "나의 템플릿",
+    "label.na": "N/A",
+    "label.name": "이름",
+    "label.name.lower": "이름",
+    "label.name.optional": "이름(옵션)",
+    "label.nat.port.range": "NAT 포토 범위",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "넷 마스크",
+    "label.netscaler.details": "NetScaler details",
+    "label.network": "네트워크",
+    "label.network.ACL": "네트워크 권한 관리(ACL)",
+    "label.network.ACL.total": "네트워크 권한 관리(ACL) 합계",
+    "label.network.ACLs": "네트워크 권한 관리(ACL)",
+    "label.network.addVM": "Add network to VM",
+    "label.network.cidr": "Network CIDR",
+    "label.network.desc": "네트워크 설명",
+    "label.network.details": "Network Details",
+    "label.network.device": "네트워크 기기",
+    "label.network.device.type": "네트워크 기기 종류",
+    "label.network.domain": "네트워크 도메인",
+    "label.network.domain.text": "네트워크 도메인",
+    "label.network.id": "네트워크 ID",
+    "label.network.label.display.for.blank.value": "기본 게이트웨이를 사용",
+    "label.network.limits": "Network limits",
+    "label.network.name": "네트워크명",
+    "label.network.offering": "네트워크 제공",
+    "label.network.offering.details": "Network offering details",
+    "label.network.offering.display.text": "네트워크 제공 표시 텍스트",
+    "label.network.offering.id": "네트워크 제공 ID",
+    "label.network.offering.name": "네트워크 제공명",
+    "label.network.rate": "네트워크 속도",
+    "label.network.rate.megabytes": "네트워크 속도 (MB/초)",
+    "label.network.read": "네트워크 읽기",
+    "label.network.service.providers": "네트워크 서비스 제공자",
+    "label.network.type": "네트워크 종류",
+    "label.network.write": "네트워크 기입",
+    "label.networking.and.security": "네트워크와 보안",
+    "label.networks": "네트워크",
+    "label.new": "신규",
+    "label.new.password": "새로운 암호",
+    "label.new.project": "새 프로젝트",
+    "label.new.ssh.key.pair": "New SSH Key Pair",
+    "label.new.vm": "새 VM",
+    "label.next": "다음",
+    "label.nexusVswitch": "Nexus 1000V",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS 서버",
+    "label.nfs.storage": "NFS 스토리지",
+    "label.nic.adapter.type": "NIC 아답터 종류",
+    "label.nicira.controller.address": "Controller Address",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP details",
+    "label.nicira.transportzoneuuid": "Transport Zone Uuid",
+    "label.nics": "NIC",
+    "label.no": "아니오",
+    "label.no.actions": "실행할 수 있는 작업 없음",
+    "label.no.alerts": "최근 알림 체계 없음",
+    "label.no.data": "표시할 데이터가 없음",
+    "label.no.errors": "최근 오류는 없음",
+    "label.no.grouping": "(no grouping)",
+    "label.no.isos": "사용할 수 있는 ISO 없음",
+    "label.no.items": "사용할 수 있는 항목 없음",
+    "label.no.security.groups": "사용할 수 있는 보안 그룹 없음",
+    "label.no.thanks": "설정 안함",
+    "label.none": "없음",
+    "label.not.found": "검색 결과 없음",
+    "label.notifications": "알림",
+    "label.num.cpu.cores": "CPU 코어수",
+    "label.number.of.clusters": "클러스터수",
+    "label.number.of.cpu.sockets": "The Number of CPU Sockets",
+    "label.number.of.hosts": "호스트수",
+    "label.number.of.pods": "Pod수",
+    "label.number.of.system.vms": "시스템 VM 수",
+    "label.number.of.virtual.routers": "가상 라우터수",
+    "label.number.of.zones": "Zone수",
+    "label.numretries": "재시행 회수",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "of month",
+    "label.offer.ha": "고가용성 제공",
+    "label.ok": "확인",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight Controller",
+    "label.opendaylight.controllerdetail": "OpenDaylight Controller Details",
+    "label.opendaylight.controllers": "OpenDaylight Controllers",
+    "label.operator": "Operator",
+    "label.optional": "옵션",
+    "label.order": "순서",
+    "label.os.preference": "OS 기본 설정",
+    "label.os.type": "OS 종류",
+    "label.other": "Other",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Action",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "암호",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "사용자명",
+    "label.override.guest.traffic": "Override Guest-Traffic",
+    "label.override.public.traffic": "Override Public-Traffic",
+    "label.ovm.traffic.label": "OVM traffic label",
+    "label.ovm3.cluster": "Native Clustering",
+    "label.ovm3.pool": "Native Pooling",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "Master Vip IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "소유 공개 IP 주소",
+    "label.owner.account": "소유자 계정 정보",
+    "label.owner.domain": "소유자 도메인",
+    "label.palo.alto.details": "Palo Alto details",
+    "label.parent.domain": "부모 도메인",
+    "label.passive": "Passive",
+    "label.password": "암호",
+    "label.password.enabled": "암호 관리 사용",
+    "label.password.lower": "password",
+    "label.password.reset.confirm": "Password has been reset to ",
+    "label.path": "경로",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "Persistent ",
+    "label.physical.network": "물리 네트워크",
+    "label.physical.network.ID": "물리 네트워크 ID",
+    "label.physical.network.name": "Physical network name",
+    "label.ping.path": "Ping Path",
+    "label.planner.mode": "Planner mode",
+    "label.please.complete.the.following.fields": "Please complete the following fields",
+    "label.please.specify.netscaler.info": "Netscaler 정보를 지정해 주십시오",
+    "label.please.wait": "기다려 주십시오...",
+    "label.plugin.details": "Plugin details",
+    "label.plugins": "Plugins",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod Dedicated",
+    "label.pod.name": "Pod명",
+    "label.pods": "Pod",
+    "label.polling.interval.sec": "Polling Interval (in sec)",
+    "label.port": "Port",
+    "label.port.forwarding": "포토 전송",
+    "label.port.forwarding.policies": "포토 전송 정책",
+    "label.port.range": "포토 범위",
+    "label.portable.ip": "Portable IP",
+    "label.portable.ip.range.details": "Portable IP Range details",
+    "label.portable.ip.ranges": "Portable IP Ranges",
+    "label.portable.ips": "Portable IPs",
+    "label.powerstate": "Power State",
+    "label.prev": "뒤로",
+    "label.previous": "뒤로",
+    "label.primary.allocated": "할당 완료 기본 스토리지",
+    "label.primary.network": "기본 네트워크",
+    "label.primary.storage": "기본 스토리지",
+    "label.primary.storage.count": "기본 스토리지 그룹",
+    "label.primary.storage.limits": "Primary Storage limits (GiB)",
+    "label.primary.used": "기본 스토리지 사용량",
+    "label.private.Gateway": "사설 게이트웨이",
+    "label.private.interface": "사설 인터페이스",
+    "label.private.ip": "사설 IP 주소",
+    "label.private.ip.range": "사설 IP 주소 범위",
+    "label.private.ips": "사설 IP 주소",
+    "label.private.key": "Private Key",
+    "label.private.network": "사설 네트워크",
+    "label.private.port": "사설 포트",
+    "label.private.zone": "사설 Zone",
+    "label.privatekey": "PKC#8 비밀 키",
+    "label.profile": "Profile",
+    "label.project": "프로젝트",
+    "label.project.dashboard": "프로젝트 대시 보드",
+    "label.project.id": "프로젝트 ID",
+    "label.project.invite": "프로젝트에 초대",
+    "label.project.name": "프로젝트명",
+    "label.project.view": "프로젝트 보기",
+    "label.projects": "프로젝트",
+    "label.protocol": "프로토콜",
+    "label.protocol.number": "Protocol Number",
+    "label.provider": "Provider",
+    "label.providers": "제공자",
+    "label.public": "공개",
+    "label.public.interface": "공개 인터페이스",
+    "label.public.ip": "공개 IP 주소",
+    "label.public.ips": "공개 IP 주소",
+    "label.public.key": "Public Key",
+    "label.public.lb": "Public LB",
+    "label.public.load.balancer.provider": "Public Load Balancer Provider",
+    "label.public.network": "공개 네트워크",
+    "label.public.port": "공개 포트",
+    "label.public.traffic": "공개 트래픽",
+    "label.public.traffic.vswitch.name": "Public Traffic vSwitch Name",
+    "label.public.traffic.vswitch.type": "Public Traffic vSwitch Type",
+    "label.public.zone": "공개 Zone",
+    "label.purpose": "목적",
+    "label.qos.type": "QoS Type",
+    "label.quickview": "Quickview",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Quiet Time (in sec)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "날짜",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "End Date",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "모든 계정 정보",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Start Date",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "상태",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx user",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "재시작",
+    "label.recent.errors": "최근 오류",
+    "label.recover.vm": "VM 복구",
+    "label.redundant.router": "중복 라우터",
+    "label.redundant.router.capability": "중복 라우터 기능",
+    "label.redundant.state": "중복 상태",
+    "label.redundant.vpc": "Redundant VPC",
+    "label.refresh": "업데이트",
+    "label.refresh.blades": "Refresh Blades",
+    "label.region": "Region",
+    "label.region.details": "Region details",
+    "label.regionlevelvpc": "Region Level VPC",
+    "label.reinstall.vm": "VM 재설치",
+    "label.related": "관련",
+    "label.release.account": "Release from Account",
+    "label.release.account.lowercase": "Release from account",
+    "label.release.dedicated.cluster": "Release Dedicated Cluster",
+    "label.release.dedicated.host": "Release Dedicated Host",
+    "label.release.dedicated.pod": "Release Dedicated Pod",
+    "label.release.dedicated.vlan.range": "Release dedicated VLAN range",
+    "label.release.dedicated.zone": "Release Dedicated Zone",
+    "label.remind.later": "알림 표시",
+    "label.remove.ACL": "권한 관리(ACL) 삭제",
+    "label.remove.egress.rule": "전송 규칙 삭제",
+    "label.remove.from.load.balancer": "네트워크 로드 공유 장치에서 인스턴스를 삭제하는 중",
+    "label.remove.ingress.rule": "수신 규칙 삭제",
+    "label.remove.ip.range": "IP 주소 범위 삭제",
+    "label.remove.ldap": "Remove LDAP",
+    "label.remove.network.offering": "Remove network offering",
+    "label.remove.pf": "포토 전송 규칙 삭제",
+    "label.remove.project.account": "프로젝트 계정 정보 삭제",
+    "label.remove.region": "Remove Region",
+    "label.remove.rule": "규칙 삭제",
+    "label.remove.ssh.key.pair": "Remove SSH Key Pair",
+    "label.remove.static.nat.rule": "정적 NAT 규칙 삭제",
+    "label.remove.static.route": "정적 라우트 삭제",
+    "label.remove.this.physical.network": "Remove this physical network",
+    "label.remove.tier": "계층 삭제",
+    "label.remove.vm.from.lb": "네트워크 로드 공유 규칙에 VM 삭제",
+    "label.remove.vm.load.balancer": "Remove VM from load balancer",
+    "label.remove.vmware.datacenter": "Remove VMware datacenter",
+    "label.remove.vpc": "VPC 삭제",
+    "label.remove.vpc.offering": "Remove VPC offering",
+    "label.removing": "삭제하는 중",
+    "label.removing.user": "사용자를 삭제하는 중",
+    "label.reource.id": "Resource ID",
+    "label.replace.acl": "Replace ACL",
+    "label.replace.acl.list": "Replace ACL List",
+    "label.required": "필수 사항",
+    "label.requires.upgrade": "Requires Upgrade",
+    "label.reserved.ip.range": "Reserved IP Range",
+    "label.reserved.system.gateway": "예약된 시스템 게이트웨이",
+    "label.reserved.system.ip": "예약된 시스템 IP 주소",
+    "label.reserved.system.netmask": "예약된 시스템 넷 마스크",
+    "label.reset.VPN.connection": "VPN 접속 재설정",
+    "label.reset.ssh.key.pair": "Reset SSH Key Pair",
+    "label.reset.ssh.key.pair.on.vm": "Reset SSH Key Pair on VM",
+    "label.resetVM": "Reset VM",
+    "label.resize.new.offering.id": "새로 제공",
+    "label.resize.new.size": "New Size (GB)",
+    "label.resize.shrink.ok": "변경 완료",
+    "label.resource": "자원",
+    "label.resource.limit.exceeded": "Resource Limit Exceeded",
+    "label.resource.limits": "자원 제한",
+    "label.resource.name": "Resource Name",
+    "label.resource.state": "자원 상태",
+    "label.resources": "자원",
+    "label.response.timeout.in.sec": "Response Timeout (in sec)",
+    "label.restart.network": "네트워크 재시작",
+    "label.restart.required": "재시작 필요",
+    "label.restart.vpc": "VPC 재시작",
+    "label.restore": "Restore",
+    "label.retry.interval": "Retry Interval",
+    "label.review": "확인",
+    "label.revoke.project.invite": "초대 취소",
+    "label.role": "역할",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Root certificate",
+    "label.root.disk.controller": "루트 디스크 콘트롤러",
+    "label.root.disk.offering": "루트 디스크제공",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "Router VM Scaled Up",
+    "label.routing": "라우팅",
+    "label.routing.host": "Routing Host",
+    "label.rule": "Rule",
+    "label.rule.number": "Rule Number",
+    "label.rules": "규칙",
+    "label.running.vms": "실행중 VM",
+    "label.s3.access_key": "Access Key",
+    "label.s3.bucket": "Bucket",
+    "label.s3.connection_timeout": "Connection Timeout",
+    "label.s3.endpoint": "Endpoint",
+    "label.s3.max_error_retry": "Max Error Retry",
+    "label.s3.nfs.path": "S3 NFS",
+    "label.s3.nfs.server": "S3 NFS",
+    "label.s3.secret_key": "비밀 키",
+    "label.s3.socket_timeout": "Socket Timeout",
+    "label.s3.use_https": "Use HTTPS",
+    "label.saml.enable": "Authorize SAML SSO",
+    "label.saml.entity": "Identity Provider",
+    "label.saturday": "토요일",
+    "label.save": "저장",
+    "label.save.and.continue": "저장하기",
+    "label.save.changes": "Save changes",
+    "label.saving.processing": "저장하는 중...",
+    "label.scale.up.policy": "SCALE UP POLICY",
+    "label.scaledown.policy": "ScaleDown Policy",
+    "label.scaleup.policy": "ScaleUp Policy",
+    "label.scope": "범위",
+    "label.search": "검색",
+    "label.secondary.ips": "Secondary IPs",
+    "label.secondary.isolated.vlan.id": "Secondary Isolated VLAN ID",
+    "label.secondary.staging.store": "Secondary Staging Store",
+    "label.secondary.staging.store.details": "Secondary Staging Store details",
+    "label.secondary.storage": "2차 스토리지",
+    "label.secondary.storage.count": "2차 스토리지 그룹",
+    "label.secondary.storage.details": "Secondary storage details",
+    "label.secondary.storage.limits": "Secondary Storage limits (GiB)",
+    "label.secondary.storage.vm": "2차 스토리지 VM",
+    "label.secondary.used": "2차 스토리지 사용량",
+    "label.secret.key": "비밀 키",
+    "label.security.group": "보안 그룹",
+    "label.security.group.name": "보안 그룹명",
+    "label.security.groups": "보안 그룹",
+    "label.security.groups.enabled": "보안 그룹 유효",
+    "label.select": "선택",
+    "label.select-view": "표시 방법 선택",
+    "label.select.a.template": "템플릿 선택",
+    "label.select.a.zone": "Zone 선택",
+    "label.select.instance": "인스턴스 선택",
+    "label.select.instance.to.attach.volume.to": "볼륨을 연결하는 인스턴스를 선택해 주십시오",
+    "label.select.iso.or.template": "ISO 또는 템플릿 선택",
+    "label.select.offering": "제공 선택",
+    "label.select.project": "프로젝트 선택",
+    "label.select.region": "Select region",
+    "label.select.template": "Select Template",
+    "label.select.tier": "계층 선택",
+    "label.select.vm.for.static.nat": "정적 NAT용 VM 선택",
+    "label.sent": "전송된 상태",
+    "label.server": "서버",
+    "label.service.capabilities": "서비스 기능",
+    "label.service.offering": "서비스제공",
+    "label.service.offering.details": "Service offering details",
+    "label.service.state": "서비스",
+    "label.services": "Services",
+    "label.session.expired": "세션 유효기간이 끊어짐",
+    "label.set.default.NIC": "Set default NIC",
+    "label.set.up.zone.type": "Zone 종류 설정",
+    "label.settings": "Settings",
+    "label.setup": "설정",
+    "label.setup.network": "Set up Network",
+    "label.setup.zone": "Set up Zone",
+    "label.shared": "공유",
+    "label.show.advanced.settings": "Show advanced settings",
+    "label.show.ingress.rule": "수신 규칙 표시",
+    "label.shutdown.provider": "제공자 종료",
+    "label.simplified.chinese.keyboard": "Simplified Chinese keyboard",
+    "label.site.to.site.VPN": "사이트간 사설네트워크(VPN)",
+    "label.size": "크기",
+    "label.skip.guide": "CloudStack 사용 가이드 건너뛰기",
+    "label.smb.domain": "SMB Domain",
+    "label.smb.password": "SMB Password",
+    "label.smb.username": "SMB Username",
+    "label.snapshot": "스냅샷",
+    "label.snapshot.limits": "스냅샷 제한",
+    "label.snapshot.name": "스냅샷 이름",
+    "label.snapshot.s": "스냅샷",
+    "label.snapshot.schedule": "Set up Recurring Snapshot",
+    "label.snapshots": "스냅샷",
+    "label.sockets": "CPU Sockets",
+    "label.source.ip.address": "Source IP Address",
+    "label.source.nat": "전송원 NAT",
+    "label.source.nat.supported": "SourceNAT Supported",
+    "label.source.port": "Source Port",
+    "label.specify.IP.ranges": "IP 주소 범위 지정",
+    "label.specify.vlan": "VLAN 지정",
+    "label.specify.vxlan": "VXLAN 지정",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX details",
+    "label.ssh.key.pair": "SSH Key Pair",
+    "label.ssh.key.pair.details": "SSH Key Pair Details",
+    "label.ssh.key.pairs": "SSH Key Pairs",
+    "label.standard.us.keyboard": "Standard (US) keyboard",
+    "label.start.IP": "시작 IP 주소",
+    "label.start.lb.vm": "Start LB VM",
+    "label.start.port": "시작 포토",
+    "label.start.reserved.system.IP": "예약된 시작 시스템 IP 주소",
+    "label.start.vlan": "Start VLAN",
+    "label.start.vxlan": "Start VXLAN",
+    "label.state": "상태",
+    "label.static.nat": "정적 NAT",
+    "label.static.nat.enabled": "정적 NAT 유효",
+    "label.static.nat.to": "정적 NAT 설정 위치:",
+    "label.static.nat.vm.details": "정적 NAT VM 상세 정보",
+    "label.static.routes": "Static Routes",
+    "label.statistics": "통계",
+    "label.status": "상태",
+    "label.step.1": "단계 1",
+    "label.step.1.title": "단계 1. <strong>템플릿 선택</strong>",
+    "label.step.2": "단계 2",
+    "label.step.2.title": "단계 2. <strong>서비스 제공</strong>",
+    "label.step.3": "단계 3",
+    "label.step.3.title": "단계 3. <strong id=\"step3_label\">디스크 제공 선택</strong>",
+    "label.step.4": "단계 4",
+    "label.step.4.title": "단계 4. <strong>네트워크</strong>",
+    "label.step.5": "단계 5",
+    "label.step.5.title": "단계 5. <strong>최종 확인</strong>",
+    "label.stickiness": "지속성",
+    "label.stickiness.method": "Stickiness method",
+    "label.sticky.cookie-name": "Cookie 명",
+    "label.sticky.domain": "도메인",
+    "label.sticky.expire": "만료시간",
+    "label.sticky.holdtime": "보관 유지 시간",
+    "label.sticky.indirect": "간접",
+    "label.sticky.length": "길이",
+    "label.sticky.mode": "모드",
+    "label.sticky.name": "Sticky Name",
+    "label.sticky.nocache": "캐시 없음",
+    "label.sticky.postonly": "포스트만",
+    "label.sticky.prefix": "프레픽스",
+    "label.sticky.request-learn": "러닝 요구",
+    "label.sticky.tablesize": "테이블 크기",
+    "label.stop": "정지",
+    "label.stop.lb.vm": "Stop LB VM",
+    "label.stopped.vms": "정지 중 VM",
+    "label.storage": "스토리지",
+    "label.storage.pool": "Storage Pool",
+    "label.storage.tags": "스토리지 태그",
+    "label.storage.traffic": "스토리지 트래픽",
+    "label.storage.type": "스토리지 종류",
+    "label.subdomain.access": "서브 도메인 접근",
+    "label.submit": "보내기",
+    "label.submitted.by": "[사용자: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "완료",
+    "label.sunday": "일요일",
+    "label.super.cidr.for.guest.networks": "손님 네트워크 슈퍼 CIDR",
+    "label.supported.services": "기술 지원되는 서비스",
+    "label.supported.source.NAT.type": "기술 지원되는 전송 NAT 종류",
+    "label.supportsstrechedl2subnet": "Supports Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "프로젝트 일시정지",
+    "label.switch.type": "형식",
+    "label.system.capacity": "시스템 처리 능력",
+    "label.system.offering": "시스템 제공",
+    "label.system.offering.for.router": "System Offering for Router",
+    "label.system.service.offering": "시스템 서비스 제공",
+    "label.system.service.offering.details": "System service offering details",
+    "label.system.vm": "시스템 VM",
+    "label.system.vm.details": "System VM details",
+    "label.system.vm.scaled.up": "System VM Scaled Up",
+    "label.system.vm.type": "시스템 VM 종류",
+    "label.system.vms": "시스템 VM",
+    "label.system.wide.capacity": "시스템 전체 처리 능력",
+    "label.tag.key": "Tag Key",
+    "label.tag.value": "Tag Value",
+    "label.tagged": "태그",
+    "label.tags": "태그",
+    "label.target.iqn": "타겟 IQN",
+    "label.task.completed": "작업 완료",
+    "label.template": "템플릿",
+    "label.template.limits": "템플릿 제한",
+    "label.tftp.root.directory": "Tftp root directory",
+    "label.theme.default": "기본 테마",
+    "label.theme.grey": "맞춤- 회색조",
+    "label.theme.lightblue": "맞춤 - 라이트 블루",
+    "label.threshold": "Threshold",
+    "label.thursday": "목요일",
+    "label.tier": "계층",
+    "label.tier.details": "계층 상세 장버",
+    "label.time": "시각",
+    "label.time.colon": "Time:",
+    "label.time.zone": "시간대",
+    "label.timeout": "시간 초과",
+    "label.timeout.in.second ": " Timeout (seconds)",
+    "label.timezone": "시간대",
+    "label.timezone.colon": "Timezone:",
+    "label.token": "토큰",
+    "label.total.CPU": "CPU 합계",
+    "label.total.cpu": "CPU 합계",
+    "label.total.hosts": "호스트 합계",
+    "label.total.memory": "메모리 합계",
+    "label.total.of.ip": "Total of IP Addresses",
+    "label.total.of.vm": "VM 합계",
+    "label.total.storage": "스토리지 합계",
+    "label.total.virtual.routers": "Total of Virtual Routers",
+    "label.total.virtual.routers.upgrade": "Total of Virtual Routers that require upgrade",
+    "label.total.vms": "VM 합계",
+    "label.traffic.label": "트래픽 라벨",
+    "label.traffic.type": "트래픽 종류",
+    "label.traffic.types": "트래픽 종류",
+    "label.tuesday": "화요일",
+    "label.type": "종류",
+    "label.type.id": "종류 ID",
+    "label.type.lower": "type",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK keyboard",
+    "label.unavailable": "사용 불가",
+    "label.unhealthy.threshold": "Unhealthy Threshold",
+    "label.unlimited": "무제한",
+    "label.untagged": "태그 없음",
+    "label.update.project.resources": "프로젝트 자원 업데이트",
+    "label.update.ssl": " SSL 인증서 업데이트",
+    "label.update.ssl.cert": " SSL 인증서 업데이트",
+    "label.updating": "업데이트하고 있는 중",
+    "label.upgrade.required": "Upgrade is required",
+    "label.upgrade.router.newer.template": "Upgrade Router to Use Newer Template",
+    "label.upload": "업로드",
+    "label.upload.from.local": "Upload from Local",
+    "label.upload.template.from.local": "Upload Template from Local",
+    "label.upload.volume": "볼륨의 업로드",
+    "label.upload.volume.from.local": "Upload Volume from Local",
+    "label.upload.volume.from.url": "Upload volume from URL",
+    "label.url": "URL",
+    "label.usage.interface": "사용 상황 측정 인터페이스",
+    "label.usage.sanity.result": "Usage Sanity Result",
+    "label.usage.server": "Usage Server",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "Use VM IP:",
+    "label.use.vm.ips": "Use VM IPs",
+    "label.used": "사용 중",
+    "label.user": "사용자",
+    "label.user.data": "User Data",
+    "label.user.details": "User details",
+    "label.user.vm": "User VM",
+    "label.username": "사용자명",
+    "label.username.lower": "username",
+    "label.users": "사용자",
+    "label.vSwitch.type": "vSwitch Type",
+    "label.value": "값",
+    "label.vcdcname": "vCenter DC 명",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter 클러스터",
+    "label.vcenter.datacenter": "vCenter 데이터 센터",
+    "label.vcenter.datastore": "vCenter 데이터 스토어",
+    "label.vcenter.host": "vCenter 호스트",
+    "label.vcenter.password": "vCenter 암호",
+    "label.vcenter.username": "vCenter 사용자명",
+    "label.vcipaddress": "vCenter IP 주소",
+    "label.version": "버전",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Max resolution",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs per GPU",
+    "label.vgpu.remaining.capacity": "Remaining capacity",
+    "label.vgpu.type": "vGPU type",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "표시 -",
+    "label.view.all": "모두 표시",
+    "label.view.console": "콘솔 표시",
+    "label.view.more": "상세 표시",
+    "label.view.secondary.ips": "View secondary IPs",
+    "label.viewing": "표시 항목:",
+    "label.virtual.appliance": "가상 어플라이언스",
+    "label.virtual.appliance.details": "Virtual applicance details",
+    "label.virtual.appliances": "가상 어플라이언스",
+    "label.virtual.machine": "Virtual Machine",
+    "label.virtual.machines": "Virtual Machines",
+    "label.virtual.network": "가상 네트워크",
+    "label.virtual.networking": "Virtual Networking",
+    "label.virtual.router": "가상 라우터",
+    "label.virtual.routers": "가상 라우터",
+    "label.virtual.routers.group.account": "Virtual Routers group by account",
+    "label.virtual.routers.group.cluster": "Virtual Routers group by cluster",
+    "label.virtual.routers.group.pod": "Virtual Routers group by pod",
+    "label.virtual.routers.group.zone": "Virtual Routers group by zone",
+    "label.vlan": "가상 네트워크(VLAN)",
+    "label.vlan.id": "VLAN ID",
+    "label.vlan.only": "가상 네트워크(VLAN)",
+    "label.vlan.range": "VLAN 범위",
+    "label.vlan.range.details": "VLAN Range details",
+    "label.vlan.ranges": "VLAN Range(s)",
+    "label.vlan.vni.range": "VLAN 범위",
+    "label.vlan.vni.ranges": "VLAN/VNI Range(s)",
+    "label.vm.add": "인스턴스 추가",
+    "label.vm.destroy": "파기",
+    "label.vm.display.name": "VM 표시명",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP Address",
+    "label.vm.name": "VM 명",
+    "label.vm.password": "Password of the VM is",
+    "label.vm.reboot": "재시작",
+    "label.vm.start": "시작",
+    "label.vm.state": "VM 상태",
+    "label.vm.stop": "정지",
+    "label.vmfs": "VMFS",
+    "label.vms": "VM",
+    "label.vmsnapshot": "VM Snapshots",
+    "label.vmsnapshot.current": "isCurrent",
+    "label.vmsnapshot.memory": "Snapshot memory",
+    "label.vmsnapshot.parentname": "Parent",
+    "label.vmsnapshot.type": "종류",
+    "label.vmware.datacenter.id": "VMware datacenter ID",
+    "label.vmware.datacenter.name": "VMware datacenter Name",
+    "label.vmware.datacenter.vcenter": "VMware datacenter vcenter",
+    "label.vmware.traffic.label": "VMware 트래픽 라벨",
+    "label.vnet": "가상 네트워크(VLAN)",
+    "label.vnet.id": "VLAN ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC Devices",
+    "label.volatile": "Volatile",
+    "label.volgroup": "볼륨 그룹",
+    "label.volume": "볼륨",
+    "label.volume.details": "Volume details",
+    "label.volume.limits": "볼륨 제한",
+    "label.volume.migrated": "Volume migrated",
+    "label.volume.name": "볼륨명",
+    "label.volumes": "볼륨",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Distributed VPC Router",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "VPC Offering",
+    "label.vpc.offering.details": "VPC offering details",
+    "label.vpc.router.details": "VPC Router Details",
+    "label.vpc.supportsregionlevelvpc": "Supports Region Level VPC",
+    "label.vpc.virtual.router": "VPC Virtual Router",
+    "label.vpn": "가상 사설망(VPN)",
+    "label.vpn.customer.gateway": "VPN 고객 게이트웨이",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "제어 VLAN ID",
+    "label.vsmpktvlanid": "패킷 VLAN ID",
+    "label.vsmstoragevlanid": "스토리지 VLAN ID",
+    "label.vsphere.managed": "vSphere 관리",
+    "label.vswitch.name": "vSwitch Name",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN 범위",
+    "label.waiting": "대기하는 중",
+    "label.warn": "경고",
+    "label.warn.upper": "WARN",
+    "label.warning": "Warning",
+    "label.wednesday": "수요일",
+    "label.weekly": "매주",
+    "label.welcome": "어서 오십시오",
+    "label.welcome.cloud.console": "관리 콘솔에 오신것을 환영합니다!",
+    "label.what.is.cloudstack": "CloudStack™ 정보",
+    "label.xenserver.tools.version.61.plus": "Original XS Version is 6.1+",
+    "label.xenserver.traffic.label": "XenServer 트래픽 라벨",
+    "label.yes": "예",
+    "label.zone": "Zone",
+    "label.zone.dedicated": "Zone Dedicated",
+    "label.zone.details": "Zone 상세",
+    "label.zone.id": "Zone ID",
+    "label.zone.lower": "Zone",
+    "label.zone.name": "Zone Name",
+    "label.zone.step.1.title": "단계 1. <strong>네트워크 선택</strong>",
+    "label.zone.step.2.title": "단계 2. <strong>Zone 추가</strong>",
+    "label.zone.step.3.title": "단계 3. <strong>Pod 추가</strong>",
+    "label.zone.step.4.title": "단계 4. <strong>IP 주소 범위 추가</strong>",
+    "label.zone.type": "Zone 종류",
+    "label.zone.wide": "Zone 전체",
+    "label.zoneWizard.trafficType.guest": "Guest: Traffic between end-user virtual machines",
+    "label.zoneWizard.trafficType.management": "Management: Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs",
+    "label.zoneWizard.trafficType.public": "Public: Traffic between the internet and virtual machines in the cloud.",
+    "label.zoneWizard.trafficType.storage": "Storage: Traffic between primary and secondary storage servers, such as VM templates and snapshots",
+    "label.zones": "Zone",
+    "managed.state": "관리 대상 상태",
+    "message.XSTools61plus.update.failed": "Failed to update Original XS Version is 6.1+ field. Error:",
+    "message.Zone.creation.complete": "Zone을 만들었습니다.",
+    "message.acquire.ip.nic": "Please confirm that you would like to acquire a new secondary IP for this NIC.<br/>NOTE: You need to manually configure the newly-acquired secondary IP inside the virtual machine.",
+    "message.acquire.new.ip": "현재 네트워크가 새로운 IP 주소를 취득하시겠습니까?",
+    "message.acquire.new.ip.vpc": "Please confirm that you would like to acquire a new IP for this VPC.",
+    "message.acquire.public.ip": "새로운 IP 주소를 취득하는 Zone을 선택해 주십시오.",
+    "message.action.cancel.maintenance": "호스트 유지 보수는 정상적으로 취소되었습니다. 처리에는 몇 분 정도 걸릴 수 있습니다.",
+    "message.action.cancel.maintenance.mode": "현재 유지 보수를 취소하시겠습니까?",
+    "message.action.change.service.warning.for.instance": "현재 서비스 제공을 변경하기 전에 인스턴스를 정지해야 합니다.",
+    "message.action.change.service.warning.for.router": "현재 서비스 제공을 변경하기 전에 라우터를 정지해야 합니다.",
+    "message.action.delete.ISO": "현재 ISO를 삭제하시겠습니까?",
+    "message.action.delete.ISO.for.all.zones": "이 ISO는 모든 Zone에서 사용하고 있습니다. 모든 Zone에서 삭제하시겠습니까?",
+    "message.action.delete.cluster": "현재 클러스터를 삭제하시겠습니까?",
+    "message.action.delete.disk.offering": "현재 디스크제공을 삭제하시겠습니까?",
+    "message.action.delete.domain": "현재 도메인을 삭제하시겠습니까?",
+    "message.action.delete.external.firewall": "현재 외부 방화벽(fire wall)를 삭제하시겠습니까? 경고: 같은 외부 방화벽(fire wall)를 다시 추가할 경우는 기기 사용 상황 데이터를 재설정해야 합니다.",
+    "message.action.delete.external.load.balancer": "현재 외부 네트워크 로드 공유 장치를 삭제하시겠습니까? 경고: 같은 외부 네트워크 로드 공유 장치를 다시 추가할 경우는 기기 사용 상황 데이터를 재설정해야 합니다.",
+    "message.action.delete.ingress.rule": "현재 수신 규칙을 삭제하시겠습니까?",
+    "message.action.delete.network": "현재 네트워크를 삭제하시겠습니까?",
+    "message.action.delete.nexusVswitch": "현재 Nexus 1000V를 삭제하시겠습니까?",
+    "message.action.delete.nic": "Please confirm that want to remove this NIC, which will also remove the associated network from the VM.",
+    "message.action.delete.physical.network": "현재 물리 네트워크를 삭제하시겠습니까?",
+    "message.action.delete.pod": "현재 Pod를 삭제하시겠습니까?",
+    "message.action.delete.primary.storage": "현재 기본 스토리지를 삭제하시겠습니까?",
+    "message.action.delete.secondary.storage": "현재 2차 스토리지를 삭제하시겠습니까?",
+    "message.action.delete.security.group": "현재 보안 그룹을 삭제하시겠습니까?",
+    "message.action.delete.service.offering": "현재 서비스제공을 삭제하시겠습니까?",
+    "message.action.delete.snapshot": "현재 스냅샷을 삭제하시겠습니까?",
+    "message.action.delete.system.service.offering": "현재 시스템 서비스 제공을 삭제하시겠습니까?",
+    "message.action.delete.template": "현재 템플릿을 삭제하시겠습니까?",
+    "message.action.delete.template.for.all.zones": "그 템플릿은 모든 Zone에서 사용되어 있습니다. 모든 Zone에서 삭제하시겠습니까?",
+    "message.action.delete.volume": "현재 볼륨을 삭제하시겠습니까?",
+    "message.action.delete.zone": "현재 Zone을 삭제하시겠습니까?",
+    "message.action.destroy.instance": "현재 인스턴스를 파기하시겠습니까?",
+    "message.action.destroy.systemvm": "현재 시스템 VM를 파기하시겠습니까?",
+    "message.action.disable.cluster": "현재 클러스터를 사용 안 함으로 하시겠습니까?",
+    "message.action.disable.nexusVswitch": "현재 Nexus 1000V를 사용 안 함으로 하시겠습니까?",
+    "message.action.disable.physical.network": "현재 물리 네트워크를 사용 안 함으로 하시겠습니까?",
+    "message.action.disable.pod": "현재 Pod를 사용 안 함으로 하시겠습니까?",
+    "message.action.disable.static.NAT": "정적 NAT를 사용 안 함으로 설정하시겠습니까?",
+    "message.action.disable.zone": "현재 Zone을 사용 안 함으로 하시겠습니까?",
+    "message.action.download.iso": "현재 ISO를 다운로드하시겠습니까?",
+    "message.action.download.template": "현재 템플릿을 다운로드하시겠습니까?",
+    "message.action.downloading.template": "Downloading template.",
+    "message.action.enable.cluster": "현재 클러스터를 사용 하시겠습니까?",
+    "message.action.enable.maintenance": "호스트를 유지 보수할 준비를 할 수 있었습니다. 이 호스트상 VM 수에 따라서 처리에 몇 분 이상 걸릴 가능성이 있습니다.",
+    "message.action.enable.nexusVswitch": "현재 Nexus 1000V를 사용 하시겠습니까?",
+    "message.action.enable.physical.network": "현재 물리 네트워크를 사용하시겠습니까?",
+    "message.action.enable.pod": "현재 Pod를 사용 하시겠습니까?",
+    "message.action.enable.zone": "현재 Zone을 사용 하시겠습니까?",
+    "message.action.expunge.instance": "Please confirm that you want to expunge this instance.",
+    "message.action.force.reconnect": "호스트는 강제적으로 재접속했습니다. 이 처리에는 몇 분 이상 걸릴 가능성이 있습니다",
+    "message.action.host.enable.maintenance.mode": "유지 보수 모드를 사용 하면, 이 호스트로 실행 중인 모든 인스턴스를 다른 사용가능 호스트에게 실시간 이전됩니다.",
+    "message.action.instance.reset.password": "현재 가상 머신 루트 암호를 변경하시겠습니까?",
+    "message.action.manage.cluster": "클러스터를 관리 대상으로 하시겠습니까?",
+    "message.action.primarystorage.enable.maintenance.mode": "경고: 기본 스토리지를 유지 보수 모드로 하면  그 스토리지상 볼륨을 사용하는 모든 VM가 정지합니다. 실행하시겠습니까?",
+    "message.action.reboot.instance": "현재 인스턴스를 재시작하시겠습니까?",
+    "message.action.reboot.router": "현재 가상 라우터로 제공하는 모든 서비스가 중단됩니다. 이 라우터를 재시작하시겠습니까?",
+    "message.action.reboot.systemvm": "현재 시스템 VM을 재시작하시겠습니까?",
+    "message.action.release.ip": "현재 IP 주소를 해제하시겠습니까?",
+    "message.action.remove.host": "현재 호스트를 삭제하시겠습니까?",
+    "message.action.reset.password.off": "인스턴스는 현재 기능을 지원 하지 않습니다.",
+    "message.action.reset.password.warning": "현재 암호를 변경하기 전에 인스턴스를 정지해야 합니다.",
+    "message.action.restore.instance": "현재 인스턴스를 복원하시겠습니까?",
+    "message.action.revert.snapshot": "Please confirm that you want to revert the owning volume to this snapshot.",
+    "message.action.start.instance": "현재 인스턴스를 시작하시겠습니까?",
+    "message.action.start.router": "현재 라우터를 시작하시겠습니까?",
+    "message.action.start.systemvm": "현재 시스템 VM을 시작하시겠습니까?",
+    "message.action.stop.instance": "현재 인스턴스를 정지하시겠습니까?",
+    "message.action.stop.router": "현재 가상 라우터로 제공하는 모든 서비스가 중단됩니다. 이 라우터를 정지하시겠습니까?",
+    "message.action.stop.systemvm": "현재 시스템 VM을 정지하시겠습니까?",
+    "message.action.take.snapshot": "현재 볼륨 스냅샷을 만드시겠습니까?",
+    "message.action.unmanage.cluster": "클러스터를 비관리 대상으로 하시겠습니까?",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Please confirm that you want to delete this VM snapshot.",
+    "message.action.vmsnapshot.revert": "Revert VM snapshot",
+    "message.activate.project": "현재 프로젝트를 활성화 하시겠습니까?",
+    "message.add.VPN.gateway": "VPN 게이트웨이를 추가하시겠습니까?",
+    "message.add.cluster": "Zone <b><span id=\"zone_name\"></span></b> Pod <b><span id=\"pod_name\"></span></b>에 하이퍼 바이저로 관리되는 클러스터를 추가합니다.",
+    "message.add.cluster.zone": "Zone <b><span id=\"zone_name\"></span></b>에 하이퍼 바이저로 관리되는 클러스터를 추가합니다.",
+    "message.add.disk.offering": "새로운 디스크 제공을 추가하기 위해 다음 파라미터를 지정해 주십시오.",
+    "message.add.domain": "현재 도메인에 만들고자 하는 서브 도메인을 지정해 주십시오.",
+    "message.add.firewall": "Zone에 방화벽(fire wall)을 추가합니다.",
+    "message.add.guest.network": "손님 네트워크를 추가하시겠습니까?",
+    "message.add.host": "새로운 호스트를 추가하기 위해 아래 파라미터를 지정해 주십시오.",
+    "message.add.ip.range": "Zone 공개 네트워크에 IP 주소 범위를 추가합니다.",
+    "message.add.ip.range.direct.network": "Zone <b><span id=\"zone_name\"></span></b> 직접 네트워크 <b><span id=\"directnetwork_name\"></span></b>에 IP 주소 범위를 추가합니다",
+    "message.add.ip.range.to.pod": "<p>Pod <b><span id=\"pod_name_label\"></span></b>에 IP 주소 범위를 추가합니다.</p>",
+    "message.add.load.balancer": "Zone에 네트워크 로드 공유 장치를 추가합니다.",
+    "message.add.load.balancer.under.ip": "다음 IP 주소에 대해서 네트워크 로드 공유 규칙을  추가합니다:",
+    "message.add.network": "Zone <b><span id=\"zone_name\"></span></b>에 새로운 네트워크를 추가합니다.",
+    "message.add.new.gateway.to.vpc": "현재 VPC에 새로운 게이트웨이를 추가하기 위한 정보를 지정해 주십시오.",
+    "message.add.pod": "Zone <b><span id=\"add_pod_zone_name\"></span></b>에 새로운 Pod를 추가합니다.",
+    "message.add.pod.during.zone.creation": "각 Zone에는 한 개 이상 Pod가 필요합니다. 지금 여기서 첫번째 Pod를 추가합니다. Pod는 호스트와 기본 스토리지 서버에서 구성합니다만  이는 다음 순서로 추가합니다. 맨 처음 CloudStack 내부 관리 트래픽을 위해서 IP 주소 범위를 예약합니다. IP 주소 범위는 클라우드 내부 각 Zone에서 중복 하지 않게 예약할 필요가 있습니다.",
+    "message.add.primary": "새로운 기본 스토리지를 추가하기 위해 아래 파라미터를 지정해 주십시오.",
+    "message.add.primary.storage": "Zone <b><span id=\"zone_name\"></span></b> Pod <b><span id=\"pod_name\"></span></b>에 새로운 기본 스토리지를 추가합니다.",
+    "message.add.region": "Please specify the required information to add a new region.",
+    "message.add.secondary.storage": "Zone <b><span id=\"zone_name\"></span></b>에 새로운 스토리지를 추가합니다",
+    "message.add.service.offering": "새로운 컴퓨팅 자원 제공을 추가하기 위해서, 다음 데이터를 입력해 주십시오.",
+    "message.add.system.service.offering": "새로운 시스템 서비스 제공을 추가하기 위해 다음 데이터를 입력해 주십시오.",
+    "message.add.template": "새로운 템플릿을 만들기하기 위해 아래 데이터를 입력해 주십시오.",
+    "message.add.volume": "새로운 볼륨을 추가하기 위해 아래 데이터를 입력해 주십시오.",
+    "message.added.new.nuage.vsp.controller": "Added new Nuage Vsp Controller",
+    "message.added.vpc.offering": "Added VPC offering",
+    "message.adding.Netscaler.device": "Netscaler 기기를 추가하고 있습니다",
+    "message.adding.Netscaler.provider": "Netscaler 제공자를 추가하고 있습니다.",
+    "message.adding.host": "호스트를 추가하고 있습니다",
+    "message.additional.networks.desc": "가상 인스턴스가 접속하는 추가 네트워크를 선택해 주십시오.",
+    "message.admin.guide.read": "For VMware-based VMs, please read the dynamic scaling section in the admin guide before scaling. Would you like to continue?,",
+    "message.advanced.mode.desc": "VLAN 기술 지원를 사용 하는 경우는 이 네트워크 모델을 선택해 주십시오.이 모델에서는 가장 유연하게 카스탐네트워크 제공을 제공할 수 있어 방화벽(fire wall), VPN, 네트워크 로드 공유 장치 기술 지원 외에, 직접 네트워크와 가상 네트워크도 사용 할 수 있습니다.",
+    "message.advanced.security.group": "게스트 VM를 분리하기 위해서 보안 그룹을 사용하는 경우는 이 옵션을 선택해 주십시오.",
+    "message.advanced.virtual": "게스트 VM를 분리하기 위해서 존 전체 VLAN를 사용하는 경우는 이 옵션을 선택해 주십시오.",
+    "message.after.enable.s3": "S3-backed Secondary Storage configured. Note: When you leave this page, you will not be able to re-configure S3 again.",
+    "message.after.enable.swift": "Swift가 구성되었습니다. 주의:이 페이지를 닫으면 Swift를 재구성할 수 없습니다.",
+    "message.alert.state.detected": "경계체제 상태가 감지되었습니다",
+    "message.allow.vpn.access": "VPN 접근를 허가하는 사용자 사용자명과 암호를 입력해 주십시오.",
+    "message.apply.snapshot.policy": "현재 스냅샷 정책를 업데이트했습니다.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "현재 가상 인스턴스에 ISO 파일을 연결 하시겠습니까?",
+    "message.attach.volume": "새로운 볼륨을 연결 하기 위해 아래 데이터를 입력해 주십시오.Windows 베이스 가상 머신에 디스크 볼륨을 연결 하는 경우는 연결 한 디스크를 인식하기 위해서 인스턴스를 재시작할 필요가 있습니다.",
+    "message.basic.mode.desc": "VLAN 기술 지원가<b><u>불필요한</u></b>경우는 이 네트워크 모델을 선택해 주십시오.이 네트워크 모델로 만들기되는 모든 가상 인스턴스에 네트워크에서 직접 IP 주소를 할당할 수 있어 보안 그룹을 사용해 보안와 분리가 제공됩니다.",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "현재 가상 인스턴스 서비스제공을 변경하시겠습니까?",
+    "message.change.password": "암호를 변경해 주십시오.",
+    "message.cluster.dedicated": "Cluster Dedicated",
+    "message.cluster.dedication.released": "Cluster dedication released",
+    "message.configure.all.traffic.types": "복수의 물리 네트워크가 있습니다. [편집]을 클릭해 트래픽의 종류 마다 라벨을 구성해 주십시오.",
+    "message.configure.firewall.rules.allow.traffic": "Configure the rules to allow Traffic",
+    "message.configure.firewall.rules.block.traffic": "Configure the rules to block Traffic",
+    "message.configure.ldap": "Please confirm you would like to configure LDAP.",
+    "message.configuring.guest.traffic": "게스트 트래픽을 구성해 있습니다",
+    "message.configuring.physical.networks": "물리 네트워크를 구성해 있습니다",
+    "message.configuring.public.traffic": "공개 트래픽을 구성해 있습니다",
+    "message.configuring.storage.traffic": "스토리지 트래픽을 구성해 있습니다",
+    "message.confirm.action.force.reconnect": "현재 호스트를 강제 재접속하시겠습니까?",
+    "message.confirm.add.vnmc.provider": "Please confirm you would like to add the VNMC provider.",
+    "message.confirm.archive.alert": "Please confirm that you want to archive this alert.",
+    "message.confirm.archive.event": "Please confirm that you want to archive this event.",
+    "message.confirm.archive.selected.alerts": "Please confirm you would like to archive the selected alerts",
+    "message.confirm.archive.selected.events": "Please confirm you would like to archive the selected events",
+    "message.confirm.attach.disk": "Are you sure you want to attach disk?",
+    "message.confirm.create.volume": "Are you sure you want to create volume?",
+    "message.confirm.current.guest.CIDR.unchanged": "Do you want to keep the current guest network CIDR unchanged?",
+    "message.confirm.dedicate.cluster.domain.account": "Do you really want to dedicate this cluster to a domain/account? ",
+    "message.confirm.dedicate.host.domain.account": "Do you really want to dedicate this host to a domain/account? ",
+    "message.confirm.dedicate.pod.domain.account": "Do you really want to dedicate this pod to a domain/account? ",
+    "message.confirm.dedicate.zone": "Do you really want to dedicate this zone to a domain/account?",
+    "message.confirm.delete.BigSwitchBcf": "Please confirm that you would like to delete this BigSwitch BCF Controller",
+    "message.confirm.delete.BrocadeVcs": "Please confirm that you would like to delete Brocade Vcs Switch",
+    "message.confirm.delete.F5": "F5를 삭제하시겠습니까?",
+    "message.confirm.delete.NetScaler": "NetScaler를 삭제하시겠습니까?",
+    "message.confirm.delete.NuageVsp": "Please confirm that you would like to delete Nuage Virtualized Services Directory",
+    "message.confirm.delete.PA": "Please confirm that you would like to delete Palo Alto",
+    "message.confirm.delete.SRX": "SRX를 삭제하시겠습니까?",
+    "message.confirm.delete.acl.list": "Are you sure you want to delete this ACL list?",
+    "message.confirm.delete.alert": "Are you sure you want to delete this alert ?",
+    "message.confirm.delete.baremetal.rack.configuration": "Please confirm that you want to delete Baremetal Rack Configuration.",
+    "message.confirm.delete.ciscoASA1000v": "Please confirm you want to delete CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Please confirm you want to delete CiscoVNMC resource",
+    "message.confirm.delete.internal.lb": "Please confirm you want to delete Internal LB",
+    "message.confirm.delete.secondary.staging.store": "Please confirm you want to delete Secondary Staging Store.",
+    "message.confirm.delete.ucs.manager": "Please confirm that you want to delete UCS Manager",
+    "message.confirm.destroy.router": "현재 라우터를 파기하시겠습니까?",
+    "message.confirm.disable.host": "Please confirm that you want to disable the host",
+    "message.confirm.disable.network.offering": "Are you sure you want to disable this network offering?",
+    "message.confirm.disable.provider": "현재 제공자를 사용 안 함으로 하시겠습니까?",
+    "message.confirm.disable.vnmc.provider": "Please confirm you would like to disable the VNMC provider.",
+    "message.confirm.disable.vpc.offering": "Are you sure you want to disable this VPC offering?",
+    "message.confirm.enable.host": "Please confirm that you want to enable the host",
+    "message.confirm.enable.network.offering": "Are you sure you want to enable this network offering?",
+    "message.confirm.enable.provider": "현재 제공자를 사용하시겠습니까?",
+    "message.confirm.enable.vnmc.provider": "Please confirm you would like to enable the VNMC provider.",
+    "message.confirm.enable.vpc.offering": "Are you sure you want to enable this VPC offering?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "현재 프로젝트에 참여하시겠습니까?",
+    "message.confirm.migrate.volume": "Do you want to migrate this volume?",
+    "message.confirm.refresh.blades": "Please confirm that you want to refresh blades.",
+    "message.confirm.release.dedicate.vlan.range": "Please confirm you want to release dedicated VLAN range",
+    "message.confirm.release.dedicated.cluster": "Do you want to release this dedicated cluster ?",
+    "message.confirm.release.dedicated.host": "Do you want to release this dedicated host ?",
+    "message.confirm.release.dedicated.pod": "Do you want to release this dedicated pod ?",
+    "message.confirm.release.dedicated.zone": "Do you want to release this dedicated zone ? ",
+    "message.confirm.remove.IP.range": "현재 IP 주소 범위를 삭제하시겠습니까?",
+    "message.confirm.remove.event": "Are you sure you want to remove this event?",
+    "message.confirm.remove.load.balancer": "Please confirm you want to remove VM from load balancer",
+    "message.confirm.remove.network.offering": "Are you sure you want to remove this network offering?",
+    "message.confirm.remove.selected.alerts": "Please confirm you would like to remove the selected alerts",
+    "message.confirm.remove.selected.events": "Please confirm you would like to remove the selected events",
+    "message.confirm.remove.vmware.datacenter": "Please confirm you want to remove VMware datacenter",
+    "message.confirm.remove.vpc.offering": "Are you sure you want to remove this VPC offering?",
+    "message.confirm.replace.acl.new.one": "Do you want to replace the ACL with a new one?",
+    "message.confirm.scale.up.router.vm": "Do you really want to scale up the Router VM ?",
+    "message.confirm.scale.up.system.vm": "Do you really want to scale up the system VM ?",
+    "message.confirm.shutdown.provider": "현재 제공자를 종료하시겠습니까?",
+    "message.confirm.start.lb.vm": "Please confirm you want to start LB VM",
+    "message.confirm.stop.lb.vm": "Please confirm you want to stop LB VM",
+    "message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template",
+    "message.confirm.upgrade.routers.account.newtemplate": "Please confirm that you want to upgrade all routers in this account to use newer template",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Please confirm that you want to upgrade all routers in this cluster to use newer template",
+    "message.confirm.upgrade.routers.newtemplate": "Please confirm that you want to upgrade all routers in this zone to use newer template",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Please confirm that you want to upgrade all routers in this pod to use newer template",
+    "message.copy.iso.confirm": "ISO를 다음 장소에 복사하시겠습니까?",
+    "message.copy.template": "존 <b id=\"copy_template_source_zone_text\"></b> 으에서 템플릿 <b id=\"copy_template_name_text\">XXX</b>를 다음 장소에 복사합니다:",
+    "message.copy.template.confirm": "Are you sure you want to copy template?",
+    "message.create.template": "템플릿을 만들기하시겠습니까?",
+    "message.create.template.vm": "템플릿 <b id=\"p_name\"></b> 으에서 VM를 만들었습니다.",
+    "message.create.template.volume": "디스크 볼륨 <b><span id=\"volume_name\"></span></b> 템플릿을 만들기하기 전에, 다음 정보를 지정해 주십시오.볼륨 크기에 따라서는 템플릿 만들기에는 몇분 이상 걸릴 가능성이 있습니다.",
+    "message.creating.cluster": "클러스터를 만들었습니다.",
+    "message.creating.guest.network": "손님 네트워크를 만듭니다.",
+    "message.creating.physical.networks": "물리 네트워크를 만들었습니다.",
+    "message.creating.pod": "Pod를 만들었습니다.",
+    "message.creating.primary.storage": "기본 스토리지를 만들었습니다.",
+    "message.creating.secondary.storage": "2차 스토리지를 만들었습니다.",
+    "message.creating.systemVM": "Creating system VMs (this may take a while)",
+    "message.creating.zone": "Zone을 만들었습니다.",
+    "message.decline.invitation": "현재 프로젝트에 초대를 거절하시겠습니까?",
+    "message.dedicate.zone": "Dedicating zone",
+    "message.dedicated.zone.released": "Zone dedication released",
+    "message.delete.VPN.connection": "VPN 접속을 삭제하시겠습니까?",
+    "message.delete.VPN.customer.gateway": "현재 VPN 고객 게이트웨이를 삭제하시겠습니까?",
+    "message.delete.VPN.gateway": "현재 VPN 게이트웨이를 삭제하시겠습니까?",
+    "message.delete.account": "현재 계정 정보를 삭제하시겠습니까?",
+    "message.delete.affinity.group": "Please confirm that you would like to remove this affinity group.",
+    "message.delete.gateway": "현재 게이트웨이를 삭제하시겠습니까?",
+    "message.delete.project": "현재 프로젝트를 삭제하시겠습니까?",
+    "message.delete.user": "현재 사용자를 삭제하시겠습니까?",
+    "message.desc.add.new.lb.sticky.rule": "Add new LB sticky rule",
+    "message.desc.advanced.zone": "보다 세련된 네트워크 기술을 지원합니다. 이 네트워크 모델을 선택하면, 보다 유연하게 게스트 네트워크를 정하고 방화벽(fire wall), VPN, 네트워크 로드 공유 장치 기술 지원와 같은 사용자 지정 한 네트워크 제공을 제공할 수 있습니다.",
+    "message.desc.basic.zone": "각 VM 인스턴스에 IP 주소가 네트워크에서 직접 할당할 수 있는 단일 네트워크를 제공합니다. 보안 그룹 (전송원 IP 주소 필터)과 같은 층 세 가지 레벨 방법으로 게스트를 분리할 수 있습니다.",
+    "message.desc.cluster": "각 Pod에는 한 개 이상 클러스터가 필요합니다. 지금 여기서 최초 클러스터를 추가합니다. 클러스터는 호스트를 그룹화 하는 방법입니다. 한 클러스터 내부 호스트는 모두 동일한 하드웨어에서 구성되어 같은 하이퍼 바이저를 실행하고 같은 서브 네트워크상에 있어 같은 공유 스토리지에 접근 합니다. 각 클러스터는 한 개 이상 호스트와 한 개 이상 기본 스토리지 서버에서 구성됩니다.",
+    "message.desc.create.ssh.key.pair": "Please fill in the following data to create or register a ssh key pair.<br><br>(1) If public key is set, CloudStack will register the public key. You can use it through your private key.<br><br>(2) If public key is not set, CloudStack will create a new SSH Key pair. In this case, please copy and save the private key. CloudStack will not keep it.<br>",
+    "message.desc.created.ssh.key.pair": "Created a SSH Key Pair.",
+    "message.desc.host": "각 클러스터에는 적어도 한 개 이상 게스트 VM를 실행하기 위한 호스트 (컴퓨터)가 필요합니다. 지금 여기서 첫번째 호스트를 추가합니다. CloudStack으로 호스트를 동작하려면 호스트에게 하이퍼 바이저를 설치하고 IP 주소를 할당해 호스트가 CloudStack 관리 서버에 접속하도록 합니다. <br/><br/>호스트 DNS 명 또는 IP 주소, 사용자명(원래 root)과 암호 및 호스트 분류에 사용하는 라벨을 입력해 주십시오.",
+    "message.desc.primary.storage": "각 클러스터에는 적어도 한 개 이상의 기본 스토리지 서버가 필요합니다. 지금 여기서 첫번째 서버를 추가합니다. 기본 스토리지는 클러스터 내 부 호스트상에서 동작하는 모든 VM 디스크 볼륨을 포함합니다. 기본적으로 하이퍼 바이저에서 기술 지원되는 표준에 준거한 프로토콜을 사용해 주십시오.",
+    "message.desc.reset.ssh.key.pair": "Please specify a ssh key pair that you would like to add to this VM. Please note the root password will be changed by this operation if password is enabled.",
+    "message.desc.secondary.storage": "각 Zone에는 적어도 한 개 이상의 NFS 즉 2차 스토리지 서버가 필요합니다. 지금 여기서 첫번째 서버를 추가합니다. 2차 스토리지는 VM 템플릿, ISO 이미지 및 VM 디스크 볼륨 스냅샷을 포함합니다. 이 서버는 Zone내 모든 호스트에서  사용할 수 있어야 합니다. <br/><br/>IP 주소와 내보내낼 경로를 입력해 주십시오.",
+    "message.desc.zone": "Zone은 CloudStack 환경내 최대 조직 단위로 원래 단일 데이터 센터에 해당합니다. Zone에 해서 물리적인 분리와 중복성이 제공됩니다. Zone은 한 개 이상 Pod( 각 Pod는 호스트와 기본 스토리지 서버에서 구성)와 Zone내 모든 Pod로 공유되는 2차 스토리지 서버로 구성됩니다.",
+    "message.detach.disk": "현재 디스크를 분리 하시겠습니까?",
+    "message.detach.iso.confirm": "현재 가상 인스턴스에서 ISO 파일을 분리 하시겠습니까?",
+    "message.disable.account": "현재 계정 정보를 사용 안 함으로 하시겠습니까?이 계정 정보 모든 사용자가 클라우드 자원에 접근 할 수 없게 됩니다. 실행중 모든 가상 머신은 금방에 종료 됩니다.",
+    "message.disable.snapshot.policy": "현재 스냅샷 정책를 사용 안 함으로 설정했습니다.",
+    "message.disable.user": "현재 사용자를 사용 안 함으로 하시겠습니까?",
+    "message.disable.vpn": "VPN를 사용 안 함으로 하시겠습니까?",
+    "message.disable.vpn.access": "VPN 접근를 사용 안 함으로 하시겠습니까?",
+    "message.disabling.network.offering": "Disabling network offering",
+    "message.disabling.vpc.offering": "Disabling VPC offering",
+    "message.disallowed.characters": "Disallowed characters: <,>",
+    "message.download.ISO": "ISO를 다운로드하려면 <a href=\"#\">00000</a>을 클릭합니다.",
+    "message.download.template": "템플릿을 다운로드하려면 <a href=\"#\">00000</a>을 클릭합니다.",
+    "message.download.volume": "볼륨을 다운로드하려면 <a href=\"#\">00000</a>을 클릭합니다.",
+    "message.download.volume.confirm": "Please confirm that you want to download this volume.",
+    "message.edit.account": "편집 (\"-1\"는 자원 만들기 숫자에 제한이 없는 값입니다.)",
+    "message.edit.confirm": "Please confirm your changes before clicking \"Save\".",
+    "message.edit.limits": "다음 자원에 제한을 지정해 주십시오.「-1」은 자원 만들기에 제한이 없다는 의미입니다.",
+    "message.edit.traffic.type": "현재 트래픽의 종류에 관련 트래픽 라벨을 지정해 주십시오.",
+    "message.enable.account": "현재 계정 정보를 사용 하시겠습니까?",
+    "message.enable.user": "현재 사용자를 사용 하시겠습니까?",
+    "message.enable.vpn": "현재 IP 주소에 대한 VPN 접근를 사용 하시겠습니까?",
+    "message.enable.vpn.access": "현재이 IP 주소에 대한 VPN는 유효하지 않은입니다. VPN 접근를 사용 하시겠습니까?",
+    "message.enabled.vpn": "현재 VPN 접근 사용 설정되어 있습니다. 다음 IP 주소 경유로 접근 할 수 있습니다.",
+    "message.enabled.vpn.ip.sec": "IPSec 사전 공유 키:",
+    "message.enabling.network.offering": "Enabling network offering",
+    "message.enabling.security.group.provider": "보안 그룹 제공자를 사용 하고 있습니다.",
+    "message.enabling.vpc.offering": "Enabling VPC offering",
+    "message.enabling.zone": "Zone을 사용하고 있습니다",
+    "message.enabling.zone.dots": "Enabling zone...",
+    "message.enter.seperated.list.multiple.cidrs": "Please enter a comma separated list of CIDRs if more than one",
+    "message.enter.token": "전자 메일 초대장에 설명되어 있는 토큰을 입력해 주십시오.",
+    "message.generate.keys": "현재 사용자에게 새로운 키를 생성하시겠습니까?",
+    "message.gslb.delete.confirm": "Please confirm you want to delete this GSLB",
+    "message.gslb.lb.remove.confirm": "Please confirm you want to remove load balancing from GSLB",
+    "message.guest.traffic.in.advanced.zone": "손님 네트워크 트래픽은 최종 사용자 가상 머신간 통신입니다. 각 물리 네트워크 게스트 트래픽을 통신하기 위한 VLAN ID 범위를 지정해 주십시오.",
+    "message.guest.traffic.in.basic.zone": "손님 네트워크 트래픽은 최종 사용자의 가상 머신간 통신입니다. CloudStack에 게스트 VM에 할당할 수 있는 IP 주소 범위를 지정해 주십시오.이 범위가 예약 끝난 시스템 IP 주소 범위와 중복 하지 않게 주의해 주십시오.",
+    "message.host.dedicated": "Host Dedicated",
+    "message.host.dedication.released": "Host dedication released",
+    "message.installWizard.click.retry": "시작을 재시행하려면 버튼을 클릭해 주십시오.",
+    "message.installWizard.copy.whatIsACluster": "클러스터는 호스트를 그룹화 하는 방법입니다. 한 가지 클러스터내 호스트는 모두 동일한 하드웨어에서 구성되어 같은 하이퍼 바이저를 실행하고 같은 서브 네트워크상에 있어서 같은 공유 스토리지에 접근 합니다. 같은 클러스터내의 호스트 사이에서는 사용자에게 서비스를 중단하지 않고 가상 머신 인스턴스를 실시간 이전 할 수 있습니다. 클러스터는 CloudStack™ 환경내의 세 번째로 큰 조직 단위입니다. 클러스터는 Pod에 포함되어 Pod는 Zone에 포함됩니다. <br/><br/>CloudStack™ 에서는 한 가지 클라우드 환경에 복수 클러스터를 설정할 수 있으나 기본 설치에서는 클러스터는 한 개입니다.",
+    "message.installWizard.copy.whatIsAHost": "호스트는 단일 컴퓨터로 손님 가상 머신을 실행하는 컴퓨팅 자원을 제공합니다. 베어 메탈 호스트를 제외하고, 각 호스트는 게스트 가상 머신을 관리하기 위한 하이퍼 바이저 소프트웨어를 설치합니다. 베어 메탈 호스트에 대해서는 설치 가이드 고급편 특수 사례로서 설명합니다. 예를 들어, KVM은 유효한 Linux 서버, Citrix XenServer가 동작하는 서버 및 ESXi 서버가 호스트입니다. 기본 설치에서는 XenServer 또는 KVM를 실행하는 단일 호스트를 사용합니다. <br/><br/>호스트는 CloudStack™ 환경내의 최소의 조직 단위입니다. 호스트는 클러스터에 포함되어 클러스터는 Pod에 포함되어 Pod는 Zone에 포함됩니다.",
+    "message.installWizard.copy.whatIsAPod": "원래 한 가지 Pod는 단일 잠금을 나타냅니다. 같은 Pod내 호스트는 같은 서브 네트워크에 포함됩니다. <br/><br/>Pod는 CloudStack™ 환경내의 두 번째로 큰 조직 단위입니다. Pod는 Zone에 포함됩니다. 각 Zone은 한 개 이상의 Pod를 포함할 수 있습니다. 기본 설치에서는 Zone내 Pod는 한 개입니다.",
+    "message.installWizard.copy.whatIsAZone": "Zone은 CloudStack™ 환경내 최대 조직 단위입니다. 한 가지 데이터 센터내에 복수 Zone을 설정할 수 있으나 원래 Zone은 단일의 데이터 센터에 할당합니다. 인프라스트럭쳐를 Zone에 조직화하면, Zone을 물리적우로 분리해 설정할 수 있습니다. 예를 들어, 각 Zone에 전원과 네트워크 업링크를 배치합니다. 필수가 아니지만 원격지에 분산할 수 있습니다.",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack™는 컴퓨팅 자원을 포함하는 소프트웨어 플랫웹 양식에서 공개, 사설, 및 하이브리드의 Infrastructure as a Service (IaaS) 클라우드를 구축할 수 있습니다. CloudStack™를 사용하고, 클라우드 인프라스트럭쳐를 구성하는 네트워크, 스토리지 및 컴퓨팅 노드를 관리하고 클라우드 컴퓨팅 환경을 설정, 관리 및 구성합니다. <br/><br/>CloudStack™은 하드웨어상에서 동작하는 개별 가상 머신 이미지를 넘어 확장할 수 있기 때문에 간단한 설정으로 동작하는 클라우드 인프라스트럭쳐 소프트웨어 스택에 의해 가상 데이터 센터 즉 여러 층형 멀티 세입자 클라우드 애플리케이션을 서비스로서 구축하고 설정하고 관리하기 위해서 불가결한 항목을 모두 제공합니다. 오픈 소스 버전과 프리미엄 버전 양쪽 모두에 제공하며 오픈 소스 버전에서도 대부분 기능을 사용할 수 있습니다.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "CloudStack™ 클라우드 인프라스트럭쳐에서는 기본 스토리지와 2차 스토리지 두 종류의 스토리지를 사용합니다. 양쪽 스토리지에서 iSCSI, NFS 서버, 또는 로컬 디스크를 사용할 수 있습니다. <br/><br/><strong>기본 스토리지</strong>는 클러스터에 관련되어그 클러스터내의 호스트로 동작하는 모든 VM 중 각 게스트 VM의 디스크 볼륨을 포함합니다. 원래, 기본 스토리지 서버는 호스트 근처에 설치합니다.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "2차 스토리지는 Zone과 관련돤 아래의 항목을 포함합니다. <ul><li>템플릿 - VM 시작 시 사용할 수 있는 OS 이미지로 애플리케이션의 설치 등 추가 구성을 포함할 수 있습니다. </li><li>ISO 이미지 - 바로 시작 가능 또는 시작 불가의 OS 이미지입니다. </li><li>디스크 볼륨 스냅샷 - VM 데이터 저장 복사본입니다. 데이터의 복원 또는 새로운 템플릿 만들기에 사용할 수 있습니다. </ul>",
+    "message.installWizard.now.building": "클라우드를 구축하고 있는 중...",
+    "message.installWizard.tooltip.addCluster.name": "클러스터 이름입니다. CloudStack에서 예약하지 않은 임의 텍스트를 지정할 수 있습니다.",
+    "message.installWizard.tooltip.addHost.hostname": "호스트 DNS 명 또는 IP 주소입니다.",
+    "message.installWizard.tooltip.addHost.password": "XenServer 측에서 지정한 위의 사용자명에 대한 암호입니다.",
+    "message.installWizard.tooltip.addHost.username": "원래 root 입니다.",
+    "message.installWizard.tooltip.addPod.name": "Pod 이름입니다.",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "이것은 2차 스토리지 VM 및 콘솔 프록시 VM를 관리하기 위해서 CloudStack에서 사용하는 사설 네트워크내 IP 주소 범위입니다. 이러한 IP 주소는 컴퓨팅 서버와 같은 서브네트워크에서 할당합니다.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "현재 Pod내 호스트 게이트웨이입니다.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "게스트가 사용하는 서브네트워크상에서 지정한 넷 마스크입니다.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "이것은 2차 스토리지 VM 및 콘솔 프록시 VM를 관리하기 위해서 CloudStack에서 사용하는 사설 네트워크내의 IP 주소 범위입니다. 이러한 IP 주소는 컴퓨팅 서버와 같은 서브네트워크에서 할당합니다.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "스토리지 기기의 이름입니다.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(NFS의 경우) 서버에서 내보내기 경로입니다. (SharedMountPoint의 경우) 일반 경로입니다. KVM에서는 기본 스토리지가 마운트되는 각 호스트상의 경로입니다. 예를 들어, /mnt/primary 입니다.",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(NFS, iSCSI 또는 PreSetup의 경우) 스토리지 기기의 IP 주소 또는 DNS 명입니다.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "2차 스토리지를 호스트 하는 NFS 서버 IP 주소입니다.",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "위에서 지정한 서버에 존재하는 내보내기 경로입니다.",
+    "message.installWizard.tooltip.addZone.dns1": "Zone내의 게스트 VM으로 사용하는 DNS 서버입니다. 이러한 DNS 서버에는 다음에 추가하는 공개 네트워크 경유로 접근 합니다. Zone의 공개 IP 주소에서 여기서 지정하는 공개 DNS 서버에 통신할 수 있어야 합니다.",
+    "message.installWizard.tooltip.addZone.dns2": "Zone내 게스트 VM 로 사용하는 DNS 서버입니다. 현재 DNS 서버에는 다음에 추가하는 공개 네트워크 경유로 접근합니다. Zone의 공개 IP 주소에서 여기서 지정하는 공개 DNS 서버에 통신할 수 있어야 합니다.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Zone내의 시스템 VM 로 사용하는 DNS 서버입니다. 현재 DNS 서버는 시스템 VM의 사설 네트워크 인터페이스를 개입시켜 접근합니다. Pod의 사설 IP 주소에서 여기서 지정하는 DNS 서버에 통신할 수 있어야 합니다.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Zone내 시스템 VM으로 사용하는 DNS 서버입니다. 현재 DNS 서버는 시스템 VM의 사설 네트워크 인터페이스를 개입시켜 접근합니다. Pod의 사설 IP 주소에서 여기서 지정하는 DNS 서버에 통신할 수 있어야 합니다.",
+    "message.installWizard.tooltip.addZone.name": "Zone의 이름입니다.",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "네트워크 설명입니다.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "현재 Zone의 게스트에게 할당할 수 있는 IP 주소 범위입니다. 사용하는 NIC가 한 가지인 경우는 이러한 IP 주소는 Pod의 CIDR와 같은 CIDR에 포함되어 있어야 합니다.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "게스트에서 사용하는 게이트웨이입니다.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "게스트에서 사용하는 서브네트워크상에서 사용되는 넷 마스크입니다.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "현재 Zone의 게스트에게 할당할 수 있는 IP 주소 범위입니다. 사용하는 NIC가 한 가지 경우는 이러한 IP 주소는 Pod의 CIDR와 같은 CIDR에 포함되어 있어야 합니다.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "네트워크 이름입니다.",
+    "message.instance.scaled.up.confirm": "Do you really want to scale Up your instance ?",
+    "message.instanceWizard.noTemplates": "사용 가능한 템플릿이 없습니다. 호환성이 있는 템플릿을 추가하고, 인스턴스 위저드를 재시작해 주십시오.",
+    "message.ip.address.changed": "사용 IP 주소가 변경된 가능성이 있습니다. 목록을 업데이트합니까? 그 경우는 상세 설정창이 닫는 것에 주의해 주십시오.",
+    "message.iso.desc": "데이터 또는 OS 시작 가능 미디어를 포함한 디스크 이미지",
+    "message.join.project": "이것으로, 프로젝트에 참여했습니다. 프로젝트를 참조하려면 프로젝트 보기로 전환해 주십시오.",
+    "message.launch.vm.on.private.network": "사적 전용 네트워크로 인스턴스를 시작합니까?",
+    "message.launch.zone": "Zone을 시작할 준비가 되었습니다. 다음 순서에 따라 진행해 주십시오.",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "Enable autosync for this domain in LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "현재 계정 정보를 잠그어도 좋습니까? 이 계정 정보 모든 사용자가 클라우드 자원을 관리할 수 없게 됩니다. 그 후도 기존 Zone 자원에는 접근 할 수 있습니다.",
+    "message.migrate.instance.confirm": "가상 인스턴스 이전 위치는 다음 호스트로 하시겠습니까?",
+    "message.migrate.instance.to.host": "다른 호스트에게 인스턴스를 이전하시겠습니까?",
+    "message.migrate.instance.to.ps": "다른 기본 스토리지에 인스턴스를 이전하시겠습니까?",
+    "message.migrate.router.confirm": "라우터 이전 위치로 호스트를 선택십시오.",
+    "message.migrate.systemvm.confirm": "시스템 VM 이전 이전 위치로 호스트를 선택십시오.",
+    "message.migrate.volume": "다른 기본 스토리지에 볼륨을 이전하시겠습니까?",
+    "message.network.addVM.desc": "Please specify the network that you would like to add this VM to. A new NIC will be added for this network.",
+    "message.network.addVMNIC": "Please confirm that you would like to add a new VM NIC for this network.",
+    "message.network.remote.access.vpn.configuration": "Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.",
+    "message.new.user": "계정 정보에 새로운 사용자를 추가하기 위해 아래 정보를 지정해 주십시오.",
+    "message.no.affinity.groups": "You do not have any affinity groups. Please continue to the next step.",
+    "message.no.host.available": "No Hosts are available for Migration",
+    "message.no.network.support": "하이퍼 바이저로서 vSphere를 선택했으나 이 하이퍼 바이저에 추가 네트워크 기능은 없습니다. 단계 5로 진행해 주십시오.",
+    "message.no.network.support.configuration.not.true": "보안 그룹이 유효한 Zone이 없기 때문에 추가 네트워크 기능은 없습니다. 단계 5로 진행해 주십시오.",
+    "message.no.projects": "프로젝트가 없습니다. <br/>프로젝트 섹션에서 새로운 프로젝트를 만들어 주십시오.",
+    "message.no.projects.adminOnly": "프로젝트가 없습니다. <br/>관리자에게 새로운 프로젝트 생성을 의뢰하십시오.",
+    "message.number.clusters": "<h2>클러스터<span>수</span></h2>",
+    "message.number.hosts": "<h2>호스트<span>수</span></h2>",
+    "message.number.pods": "<h2>Pod<span>수</span></h2>",
+    "message.number.storage": "<h2>기본 스토리지 볼륨<span>수</span></h2>",
+    "message.number.zones": "<h2>Zone<span>수</span></h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "Password has been reset to",
+    "message.password.of.the.vm.has.been.reset.to": "Password of the VM has been reset to",
+    "message.pending.projects.1": "보류중인 프로젝트 초대장이 있습니다.",
+    "message.pending.projects.2": "표시하려면 프로젝트 섹션으로 이동하고 목록에서 초대장을 선택합니다.",
+    "message.please.add.at.lease.one.traffic.range": "적어도 한 개 이상 트래픽 범위를 추가해 주십시오.",
+    "message.please.confirm.remove.ssh.key.pair": "Please confirm that you want to remove this SSH Key Pair",
+    "message.please.proceed": "다음의 순서에 진행해 주십시오.",
+    "message.please.select.a.configuration.for.your.zone": "Zone 구성을 선택해 주십시오.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "삭제 전에 다른 공개 및 관리 네트워크를 선택해 주십시오.",
+    "message.please.select.networks": "가상 머신 네트워크를 선택해 주십시오.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Please select a ssh key pair you want this VM to use:",
+    "message.please.wait.while.zone.is.being.created": "Zone이 만들기될 때까지 잠깐 기다려 주십시오...",
+    "message.pod.dedication.released": "Pod dedication released",
+    "message.portable.ip.delete.confirm": "Please confirm you want to delete Portable IP Range",
+    "message.project.invite.sent": "사용자에게 초대장이 전송되었습니다. 사용자가 초대를 승인하면, 프로젝트에 추가됩니다.",
+    "message.public.traffic.in.advanced.zone": "클라우드 내부 VM이 인터넷에 접근 하면, 공개 트래픽이 생성됩니다. 이 때문에 일반적으로 접근 가능한 IP 주소를 할당할 필요가 있습니다. 최종 사용자는 CloudStack 사용자 인터페이스를 사용해 이러한 IP 주소를 취득하고 손님 네트워크와 공개 네트워크 사이에 NAT를 구현할 수 있습니다. <br/><br/>인터넷 트래픽을 위해 적어도 한 개 이상 IP 주소 범위를 입력해 주십시오.",
+    "message.public.traffic.in.basic.zone": "클라우드 내부 VM이 인터넷에 접근 할 때 인터넷 경유로 클라이언트에 서비스를 제공하면, 공개 트래픽이 생성됩니다. 이 때문에  일반적으로 접근 가능한 IP 주소를 할당할 필요가 있습니다. 인스턴스를 만들기하면, 게스트 IP 주소 외에이 공개 IP 주소 범위에서 주소가 하나의 인스턴스에 할당할 수 있습니다. 공개 IP 주소와 게스트 IP 주소 사이에 정적인 1대 1 NAT가 자동으로 설정 됩니다. 최종 사용자는 CloudStack 사용자 인터페이스를 사용해 추가 IP 주소를 취득하고 인스턴스와 공개 IP 주소 사이에 정적 NAT를 구현할 수도 있습니다.",
+    "message.question.are.you.sure.you.want.to.add": "Are you sure you want to add",
+    "message.read.admin.guide.scaling.up": "Please read the dynamic scaling section in the admin guide before scaling up.",
+    "message.recover.vm": "Please confirm that you would like to recover this VM.",
+    "message.redirecting.region": "Redirecting to region...",
+    "message.reinstall.vm": "NOTE: Proceed with caution. This will cause the VM to be reinstalled from the template; data on the root disk will be lost. Extra data volumes, if any, will not be touched.",
+    "message.remove.ldap": "Are you sure you want to delete the LDAP configuration?",
+    "message.remove.region": "Are you sure you want to remove this region from this management server?",
+    "message.remove.vpc": "VPC를 삭제하시겠습니까?",
+    "message.remove.vpn.access": "다음 사용자에서 VPN 접근를 삭제하시겠습니까?",
+    "message.removed.ssh.key.pair": "Removed a SSH Key Pair",
+    "message.reset.VPN.connection": "VPN 접속을 재설정 하시겠습니까?",
+    "message.reset.password.warning.notPasswordEnabled": "현재 인스턴스 템플릿은 암호 관리를 사용 하지 않고 생성되었습니다.",
+    "message.reset.password.warning.notStopped": "현재 암호를 변경하기 전에 인스턴스를 정지해야 합니다.",
+    "message.restart.mgmt.server": "새로운 설정을 사용 하기 위해 관리 서버를 재시작해 주십시오.",
+    "message.restart.mgmt.usage.server": "새로운 설정을 사용 하기 위해 관리 서버와 사용 상황 측정 서버를 재시작해 주십시오.",
+    "message.restart.network": "현재 네트워크로 제공하는 모든 서비스가 중단됩니다. 이 네트워크를 재시작하시겠습니까?",
+    "message.restart.vpc": "VPC를 재시작하시겠습니까?",
+    "message.restart.vpc.remark": "Please confirm that you want to restart the VPC <p><small><i>Remark: making a non-redundant VPC redundant will force a clean up. The networks will not be available for a couple of minutes</i>.</small></p>",
+    "message.restoreVM": "Do you want to restore the VM ?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(해당하는 보안 그룹을 모두 선택하려면 <strong>Ctrl 키를 누르면서 클릭</strong>해 주십시오)",
+    "message.select.a.zone": "Zone은 원래 단일 데이터 센터에 해당합니다. 복수 Zone을 설정하고 물리적으로 분리하는 방법으로 클라우드의 신뢰성을 높일 수 있습니다.",
+    "message.select.affinity.groups": "Please select any affinity groups you want this VM to belong to:",
+    "message.select.instance": "인스턴스를 선택해 주십시오.",
+    "message.select.iso": "새로운 가상 인스턴스 ISO를 선택해 주십시오.",
+    "message.select.item": "항목을 선택해 주십시오.",
+    "message.select.security.groups": "새로운 가상 머신 보안 그룹을 선택해 주십시오.",
+    "message.select.template": "새로운 가상 인스턴스 템플릿을 선택해 주십시오.",
+    "message.select.tier": "Please select a tier",
+    "message.set.default.NIC": "Please confirm that you would like to make this NIC the default for this VM.",
+    "message.set.default.NIC.manual": "Please manually update the default NIC on the VM now.",
+    "message.setup.physical.network.during.zone.creation": "확장 Zone을 추가할 때는 한 개 이상 물리 네트워크를 설정해야 합니다. 각 네트워크는 하이퍼 바이저상 한 가지 네트워크 카드(NIC)에 대응합니다. 각 물리 네트워크에서는 구성에 제한이 있으나, 한 가지 종류 이상 트래픽을 통신할 수 있습니다. <br/><br/>각 물리 네트워크에 대해서<strong>트래픽 종류를 드래그 앤 드롭</strong>해 주십시오.",
+    "message.setup.physical.network.during.zone.creation.basic": "기본 Zone을 추가할 때는 하이퍼 바이저상의 네트웍카드(NIC)에 대응하는 한 가지 물리 네트워크를 설정 할 수 있습니다. 네트워크는 몇 가지 종류의 트래픽을 전송합니다. <br/><br/>물리 네트워크에 다른 트래픽의 종류를<strong>드래그 앤 드롭</strong> 할 수도 있습니다.",
+    "message.setup.successful": "클라우드가 설정 되었습니다.",
+    "message.snapshot.schedule": "You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference",
+    "message.specifiy.tag.key.value": "Please specify a tag key and value",
+    "message.specify.url": "URL를 지정해 주십시오",
+    "message.step.1.continue": "실행하려면 템플릿 또는 ISO를 선택해 주십시오.",
+    "message.step.1.desc": "새로운 가상 인스턴스용 템플릿을 선택해 주십시오.ISO를 설치 할 수 있는 공백 템플릿을 선택할 수도 있습니다.",
+    "message.step.2.continue": "실행하려면 서비스제공을 선택해 주십시오.",
+    "message.step.3.continue": "실행하려면 디스크제공을 선택해 주십시오.",
+    "message.step.4.continue": "실행하려면 네트워크를 적어도 한 개 이상 선택해 주십시오.",
+    "message.step.4.desc": "가상 인스턴스가 접속하는 기본 네트워크를 선택해 주십시오.",
+    "message.storage.traffic": "호스트나 CloudStack 시스템 VM 등 관리 서버와 통신하는 CloudStack 내부 자원간 트래픽입니다. 여기서 스토리지 트래픽을 구성해 주십시오.",
+    "message.suspend.project": "현재 프로젝트를 일시정지하시겠습니까?",
+    "message.systems.vms.ready": "System VMs ready.",
+    "message.template.copying": "Template is being copied.",
+    "message.template.desc": "VM의 시작에 사용할 수 있는 OS 이미지",
+    "message.tier.required": "Tier is required",
+    "message.tooltip.dns.1": "Zone내 VM 로 사용하는 DNS 서버 이름입니다. Zone 공개 IP 주소에서 이 서버에 통신할 수 있어야 합니다.",
+    "message.tooltip.dns.2": "Zone내 VM 로 사용하는 두번째 DNS 서버 이름입니다. Zone 공개 IP 주소에서 이 서버에 통신할 수 있어야 합니다.",
+    "message.tooltip.internal.dns.1": "Zone내 CloudStack 내부 시스템 VM 로 사용하는 DNS 서버 이름입니다. Pod 사설 IP 주소에서 이 서버에 통신할 수 있어야 합니다.",
+    "message.tooltip.internal.dns.2": "Zone내 CloudStack 내부 시스템 VM 로 사용하는 DNS 서버 이름입니다. Pod 사설 IP 주소에서 이 서버에 통신할 수 있어야 합니다.",
+    "message.tooltip.network.domain": "DNS 서픽스입니다. 이 서픽스에서 게스트 VM 로 접근 하는 네트워크 맞춤형 도메인명을 만듭니다.",
+    "message.tooltip.pod.name": "현재 Pod 이름입니다.",
+    "message.tooltip.reserved.system.gateway": "Pod내 호스트 게이트웨이입니다.",
+    "message.tooltip.reserved.system.netmask": "Pod 서브네트워크를 정하는 네트워크 프레픽스입니다. CIDR 표기를 사용합니다.",
+    "message.tooltip.zone.name": "Zone 이름입니다.",
+    "message.update.os.preference": "현재 호스트 OS 기본 설정을 선택해 주십시오.같은 기본 설정을 가지는 모든 가상 인스턴스는 다른 호스트를 선택하기 전에 우선이 호스트가 할당할 수 있습니다.",
+    "message.update.resource.count": "현재 계정 정보 자원수를 업데이트하시겠습니까?",
+    "message.update.ssl": "각 콘솔 프록시 가상 인스턴스로 업데이트하는 X.509 기반 새 SSL 인증서를 전송해 주십시오:",
+    "message.update.ssl.failed": "Failed to update SSL Certificate.",
+    "message.update.ssl.succeeded": "Update SSL Certificates succeeded",
+    "message.validate.URL": "Please enter a valid URL.",
+    "message.validate.accept": "Please enter a value with a valid extension.",
+    "message.validate.creditcard": "Please enter a valid credit card number.",
+    "message.validate.date": "Please enter a valid date.",
+    "message.validate.date.ISO": "Please enter a valid date (ISO).",
+    "message.validate.digits": "Please enter only digits.",
+    "message.validate.email.address": "Please enter a valid email address.",
+    "message.validate.equalto": "Please enter the same value again.",
+    "message.validate.fieldrequired": "This field is required.",
+    "message.validate.fixfield": "Please fix this field.",
+    "message.validate.instance.name": "인스턴스명은 63 문자 이내에서 지정해 주십시오. ASCII 문자의 a-z, A-Z, 숫자의 0-9 및 하이픈만을 사용할 수 있습니다. 문자로 시작하여 문자 또는 숫자로 끝내야 합니다.",
+    "message.validate.invalid.characters": "Invalid characters found; please correct.",
+    "message.validate.max": "Please enter a value less than or equal to {0}.",
+    "message.validate.maxlength": "Please enter no more than {0} characters.",
+    "message.validate.minlength": "Please enter at least {0} characters.",
+    "message.validate.number": "Please enter a valid number.",
+    "message.validate.range": "Please enter a value between {0} and {1}.",
+    "message.validate.range.length": "Please enter a value between {0} and {1} characters long.",
+    "message.virtual.network.desc": "계정 정보 전용 가상 네트워크입니다. 브로드캐스트 도메인은 VLAN 내에 배치되어 공개 네트워크에 접근는 모두 가상 라우터에 해서 루팅 됩니다.",
+    "message.vm.create.template.confirm": "템플릿 만들기하면 VM이 자동으로 재시작됩니다.",
+    "message.vm.review.launch": "다음의 정보를 참조하고 가상 인스턴스를 올바르게 설정한 것을 확인하고 나서 시작해 주십시오.",
+    "message.vnmc.available.list": "VNMC is not available from provider list.",
+    "message.vnmc.not.available.list": "VNMC is not available from provider list.",
+    "message.volume.create.template.confirm": "현재 디스크 볼륨 템플릿을 만드시겠습니까? 볼륨 크기에 따라 템플릿 만들기에 몇 분 이상 걸릴 가능성이 있습니다.",
+    "message.waiting.for.builtin.templates.to.load": "Waiting for builtin templates to load...",
+    "message.you.must.have.at.least.one.physical.network": "적어도 한 개 이상 물리 네트워크가 필요합니다",
+    "message.your.cloudstack.is.ready": "Your CloudStack is ready!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Zone을 만들었습니다. 이 Zone을 사용 하시겠습니까?",
+    "message.zone.no.network.selection": "선택한 Zone에서는 네트워크를 선택할 수 없습니다.",
+    "message.zone.step.1.desc": "Zone 네트워크 모델을 선택해 주십시오.",
+    "message.zone.step.2.desc": "새 Zone을 추가하기 위해 아래 정보를 입력해 주십시오.",
+    "message.zone.step.3.desc": "새 Pod를 추가하기 위해 아래 정보를 입력해 주십시오.",
+    "message.zoneWizard.enable.local.storage": "WARNING: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch:<br/><br/>1. If system VMs need to be launched in shared primary storage, shared primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local primary storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?",
+    "messgae.validate.min": "Please enter a value greater than or equal to {0}.",
+    "mode": "모드",
+    "network.rate": "네트워크 속도",
+    "notification.reboot.instance": "인스턴스 재시작",
+    "notification.start.instance": "인스턴스 시작",
+    "notification.stop.instance": "인스턴스 정지",
+    "side.by.side": "병렬",
+    "state.Accepted": "승인 완료",
+    "state.Active": "활성",
+    "state.Allocated": "할당 끝난 상태",
+    "state.Allocating": "할당 중",
+    "state.BackedUp": "백업 완료",
+    "state.BackingUp": "백업 중",
+    "state.Completed": "완료",
+    "state.Creating": "생성 중",
+    "state.Declined": "거절",
+    "state.Destroyed": "파기된 상태",
+    "state.Disabled": "유효하지 않은",
+    "state.Enabled": "사용함",
+    "state.Error": "오류",
+    "state.Expunging": "제거 중",
+    "state.Migrating": "이전 중",
+    "state.Pending": "보류",
+    "state.Ready": "준비 완료",
+    "state.Running": "실행 중",
+    "state.Starting": "시작 중",
+    "state.Stopped": "정지된 상태",
+    "state.Stopping": "정지하고 있는 중",
+    "state.Suspended": "일시정지",
+    "state.detached": "Detached",
+    "title.upload.volume": "Upload Volume",
+    "ui.listView.filters.all": "모두",
+    "ui.listView.filters.mine": "내 정보만"
+};
diff --git a/ui/l10n/nb_NO.js b/ui/l10n/nb_NO.js
new file mode 100644
index 0000000..7304a11
--- /dev/null
+++ b/ui/l10n/nb_NO.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP-kode",
+    "ICMP.type": "ICMP-type",
+    "changed.item.properties": "Endrede egenskaper",
+    "confirm.enable.s3": "Vennligst fyll inn følgende informasjon for å aktivere støtte for S3-støttet sekundærlagring",
+    "confirm.enable.swift": "Vennligst fyll inn følgende informasjon for å aktivere støtte for Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Feil kunne ikke bytte ditt passord fordi LDAP er aktivert.",
+    "error.could.not.enable.zone": "Kunne ikke aktivere sonen",
+    "error.installWizard.message": "Noe gikk galt. Gå tilbake og korriger feilene.",
+    "error.invalid.username.password": "Ugyldig brukernavn eller passord",
+    "error.login": "Ditt brukernavn/passord stemmer ikke overens med våre opplysninger.",
+    "error.menu.select": "Kan ikke utføre handlingen grunnet ingen valgte elementer.",
+    "error.mgmt.server.inaccessible": "Administrasjonsserver er utilgjengelig. Vennligst prøv igjen senere.",
+    "error.password.not.match": "Passordfeltene sammensvarer ikke",
+    "error.please.specify.physical.network.tags": "Nettverkstilbud er ikke tilgjengelig før du spesifiserer knagger for dette fysiske nettverket.",
+    "error.session.expired": "Din sesjon har utløpt.",
+    "error.something.went.wrong.please.correct.the.following": "Noe gikk galt. Vennligst korrigér følgende",
+    "error.unable.to.reach.management.server": "Kan ikke oppnå kontakt med administrasjonsserveren",
+    "error.unresolved.internet.name": "Ditt internettnavn kan ikke løses.",
+    "force.delete": "Tving sletting",
+    "force.delete.domain.warning": "Advarsel: dette alternativet vil medføre at alle underdomener og alle assosierte kontoer og dere resurser blir slettet.",
+    "force.remove": "Tving fjerning",
+    "force.remove.host.warning": "Advarsel: ved valg av dette alternativet vil CloudStack stoppe alle kjørende virtuelle maskiner, før verten blir fjernet fra klyngen.",
+    "force.stop": "Tving stopp",
+    "force.stop.instance.warning": "Advarsel: Å tvinge en stopp av denne instansen bør være siste utvei. Det kan føre til tap av data og ukonsistent oppførsel av virtuell maskinstatus.",
+    "hint.no.host.tags": "Ingen hosttagger funnet",
+    "hint.no.storage.tags": "Ingen lagringstagger funnet",
+    "hint.type.part.host.tag": "Skriv inn deler av hosttagg",
+    "hint.type.part.storage.tag": "Skriv inn deler av lagringstagg",
+    "image.directory": "Bilde-katalog",
+    "inline": "I Rekke",
+    "instances.actions.reboot.label": "Omstart av instans",
+    "label.CIDR.list": "CIDR liste",
+    "label.CIDR.of.destination.network": "CIDR for destinasjonsnettverk",
+    "label.CPU.cap": "CPU begrensning",
+    "label.DHCP.server.type": "DHCP servertype",
+    "label.DNS.domain.for.guest.networks": "DNS domene for gjestenettverk",
+    "label.ESP.encryption": "ESP kryptering",
+    "label.ESP.hash": "ESP hash",
+    "label.ESP.lifetime": "ESP levetid (sekund)",
+    "label.ESP.policy": "ESP policy",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE kryptering",
+    "label.IKE.hash": "IKE Hash",
+    "label.IKE.lifetime": "IKE livstid (sekunder)",
+    "label.IKE.policy": "IKE policy",
+    "label.IPsec.preshared.key": "IPSec Delt Nøkkel",
+    "label.LB.isolation": "LB-isolering",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto logg profil",
+    "label.PA.threat.profile": "Palo Alto trussel profil",
+    "label.PING.CIFS.password": "PING CIFS passord",
+    "label.PING.CIFS.username": "PING CIFS brukernavn",
+    "label.PING.dir": "PING-mappe",
+    "label.PING.storage.IP": "PING lagrings-IP",
+    "label.PreSetup": "Forberedt Konfigurasjon",
+    "label.Pxe.server.type": "PXE Servertype",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNM Port",
+    "label.SR.name": "SR navnelapp",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP-mappe",
+    "label.VMFS.datastore": "VMFS lagringsområde",
+    "label.VMs.in.tier": "VMer i VPC-gren",
+    "label.VPC.limits": "VPC begrensninger",
+    "label.VPC.router.details": "VPC ruterdetaljer",
+    "label.VPN.connection": "VPN-tilkobling",
+    "label.VPN.customer.gateway": "VPN Kundegateway",
+    "label.VPN.gateway": "VPN Gateway",
+    "label.Xenserver.Tools.Version61plus": "Original XS versjon er 6.1+",
+    "label.about": "Om",
+    "label.about.app": "Om CloudStack",
+    "label.accept.project.invitation": "Aksepter prosjektinvitasjon",
+    "label.account": "Konto",
+    "label.account.and.security.group": "Konto, Sikkerhetsgruppe",
+    "label.account.details": "Kontodetaljer",
+    "label.account.id": "Konto ID",
+    "label.account.lower": "konto",
+    "label.account.name": "Kontonavn",
+    "label.account.specific": "Kontospesifikk",
+    "label.account.type": "Kontotype",
+    "label.accounts": "Kontoer",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL Liste Regler",
+    "label.acl.name": "ACL Navn",
+    "label.acl.replaced": "ACL erstattet",
+    "label.acquire.new.ip": "Tilegne ny IP",
+    "label.acquire.new.secondary.ip": "Tilegne ny sekundær IP",
+    "label.action": "Handling",
+    "label.action.attach.disk": "Tilknytt Disk",
+    "label.action.attach.disk.processing": "Tilknytter Disk....",
+    "label.action.attach.iso": "Tilknytt ISO",
+    "label.action.attach.iso.processing": "Tilknytter ISO....",
+    "label.action.cancel.maintenance.mode": "Avbryt vedlikeholdsmodus",
+    "label.action.cancel.maintenance.mode.processing": "Avbryter vedlikeholdsmodus....",
+    "label.action.change.password": "Endre passord",
+    "label.action.change.service": "Endre Tjeneste",
+    "label.action.change.service.processing": "Endrer Tjeneste....",
+    "label.action.configure.samlauthorization": "Konfigurer SAML SSO-autorisering",
+    "label.action.copy.ISO": "Kopier ISO",
+    "label.action.copy.ISO.processing": "Kopierer ISO....",
+    "label.action.copy.template": "Kopier mal",
+    "label.action.copy.template.processing": "Kopierer øyeblikksbilde....",
+    "label.action.create.template": "Opprett mal",
+    "label.action.create.template.from.vm": "Lag Mal fra VM",
+    "label.action.create.template.from.volume": "Lag Mal fra Volum",
+    "label.action.create.template.processing": "Oppretter mal....",
+    "label.action.create.vm": "Opprett VM",
+    "label.action.create.vm.processing": "Oppretter VM....",
+    "label.action.create.volume": "Opprett volum",
+    "label.action.create.volume.processing": "Oppretter volum....",
+    "label.action.delete.IP.range": "Slett IP-rekke",
+    "label.action.delete.IP.range.processing": "Sletter IP-rekke....",
+    "label.action.delete.ISO": "Slett ISO",
+    "label.action.delete.ISO.processing": "Sletter ISO....",
+    "label.action.delete.account": "Slett konto",
+    "label.action.delete.account.processing": "Sletter konto....",
+    "label.action.delete.cluster": "Slett klynge",
+    "label.action.delete.cluster.processing": "Sletter klynge....",
+    "label.action.delete.disk.offering": "Slett disktilbud",
+    "label.action.delete.disk.offering.processing": "Sletter disktilbud....",
+    "label.action.delete.domain": "Slett domene",
+    "label.action.delete.domain.processing": "Sletter domene....",
+    "label.action.delete.firewall": "Slett brannmurregel",
+    "label.action.delete.firewall.processing": "Sletter brannmur....",
+    "label.action.delete.ingress.rule": "Slett inngående regel",
+    "label.action.delete.ingress.rule.processing": "Sletter inngående regel....",
+    "label.action.delete.load.balancer": "Slett lastbalanseringsregel",
+    "label.action.delete.load.balancer.processing": "Sletter Lastbalanserer",
+    "label.action.delete.network": "Slett nettverk",
+    "label.action.delete.network.processing": "Sletter nettverk....",
+    "label.action.delete.nexusVswitch": "Slett Nexus 1000v",
+    "label.action.delete.nic": "Fjern NIC",
+    "label.action.delete.physical.network": "Slett fysisk nettverk",
+    "label.action.delete.pod": "Slett pod",
+    "label.action.delete.pod.processing": "Sletter pod....",
+    "label.action.delete.primary.storage": "Slett primærlagring",
+    "label.action.delete.primary.storage.processing": "Sletter primærlagring....",
+    "label.action.delete.secondary.storage": "Slett sekundærlagring",
+    "label.action.delete.secondary.storage.processing": "Sletter sekundærlagring....",
+    "label.action.delete.security.group": "Slett Sikkerhetsgruppe",
+    "label.action.delete.security.group.processing": "Slett Sikkerhetsgruppe....",
+    "label.action.delete.service.offering": "Slett tjenestetilbud",
+    "label.action.delete.service.offering.processing": "Sletter tjenestetilbud....",
+    "label.action.delete.snapshot": "Slett øyeblikksbilde",
+    "label.action.delete.snapshot.processing": "Sletter øyeblikksbilde....",
+    "label.action.delete.system.service.offering": "Slett system-tjenestetilbud",
+    "label.action.delete.template": "Slett mal",
+    "label.action.delete.template.processing": "Sletter mal....",
+    "label.action.delete.user": "Slett bruker",
+    "label.action.delete.user.processing": "Sletter bruker....",
+    "label.action.delete.volume": "Slett volum",
+    "label.action.delete.volume.processing": "Sletter volum....",
+    "label.action.delete.zone": "Slett sone",
+    "label.action.delete.zone.processing": "Sletter sone....",
+    "label.action.destroy.instance": "Ødelegg Instans",
+    "label.action.destroy.instance.processing": "Ødelegger instans....",
+    "label.action.destroy.systemvm": "Slett system VM",
+    "label.action.destroy.systemvm.processing": "Sletter system VM....",
+    "label.action.detach.disk": "Frakoble disk",
+    "label.action.detach.disk.processing": "Kobler fra disk....",
+    "label.action.detach.iso": "Frakoble ISO",
+    "label.action.detach.iso.processing": "Frakobler ISO....",
+    "label.action.disable.account": "Deaktiver konto",
+    "label.action.disable.account.processing": "Deaktiverer konto....",
+    "label.action.disable.cluster": "Deaktiver klyngen",
+    "label.action.disable.cluster.processing": "Deaktiverer klyngen...",
+    "label.action.disable.nexusVswitch": "Deaktiver Nexus 1000v",
+    "label.action.disable.physical.network": "Deaktiver fysisk nettverk",
+    "label.action.disable.pod": "Deaktiver pod",
+    "label.action.disable.pod.processing": "Deaktiverer pod...",
+    "label.action.disable.static.NAT": "Deaktiver statisk NAT",
+    "label.action.disable.static.NAT.processing": "Deaktiverer statisk NAT....",
+    "label.action.disable.user": "Deaktivert bruker",
+    "label.action.disable.user.processing": "Deaktiverer bruker....",
+    "label.action.disable.zone": "Deaktiver sonen",
+    "label.action.disable.zone.processing": "Deaktiverer sonen...",
+    "label.action.download.ISO": "Last ned ISO",
+    "label.action.download.template": "Laster ned mal",
+    "label.action.download.volume": "Last ned volum",
+    "label.action.download.volume.processing": "Laster ned volum....",
+    "label.action.edit.ISO": "Rediger ISO",
+    "label.action.edit.account": "Rediger konto",
+    "label.action.edit.disk.offering": "Editer disktilbud",
+    "label.action.edit.domain": "Editer domene",
+    "label.action.edit.global.setting": "Editer global innstilling",
+    "label.action.edit.host": "Editer vert",
+    "label.action.edit.instance": "Rediger instans",
+    "label.action.edit.network": "Editer Nettverk",
+    "label.action.edit.network.offering": "Editer nettverkstilbud",
+    "label.action.edit.network.processing": "Editerer Nettverk....",
+    "label.action.edit.pod": "Editer Pod",
+    "label.action.edit.primary.storage": "Editer Primærlagring",
+    "label.action.edit.resource.limits": "Rediger ressursbegrensninger",
+    "label.action.edit.service.offering": "Editer tjenestetilbud",
+    "label.action.edit.template": "Editer mal",
+    "label.action.edit.user": "Rediger bruker",
+    "label.action.edit.zone": "Rediger Sone",
+    "label.action.enable.account": "Aktiver konto",
+    "label.action.enable.account.processing": "Aktiverer konto....",
+    "label.action.enable.cluster": "Aktiver klynge",
+    "label.action.enable.cluster.processing": "Aktiverer klyngen...",
+    "label.action.enable.maintenance.mode": "Aktiver vedlikeholdsmodus",
+    "label.action.enable.maintenance.mode.processing": "Aktiver vedlikeholdsmodus...",
+    "label.action.enable.nexusVswitch": "Aktiver Nexus 1000v",
+    "label.action.enable.physical.network": "Aktiver fysisk nettverk",
+    "label.action.enable.pod": "Aktiver pod",
+    "label.action.enable.pod.processing": "Aktiverer pod...",
+    "label.action.enable.static.NAT": "Aktiver statisk NAT",
+    "label.action.enable.static.NAT.processing": "Aktiverer statisk NAT....",
+    "label.action.enable.user": "Aktiver Bruker",
+    "label.action.enable.user.processing": "Aktiverer Bruker....",
+    "label.action.enable.zone": "Aktiver sone",
+    "label.action.enable.zone.processing": "Aktiverer sone...",
+    "label.action.expunge.instance": "Slett Instans Permanent",
+    "label.action.expunge.instance.processing": "Sletter instans....",
+    "label.action.force.reconnect": "Tving ny tilkobling",
+    "label.action.force.reconnect.processing": "Kobler til på nytt....",
+    "label.action.generate.keys": "Generer nøkler",
+    "label.action.generate.keys.processing": "Genererer nøkler....",
+    "label.action.list.nexusVswitch": "Liste Nexus 1000v",
+    "label.action.lock.account": "Lås konto",
+    "label.action.lock.account.processing": "Låser konto....",
+    "label.action.manage.cluster": "Administrer klynge",
+    "label.action.manage.cluster.processing": "Administrerer klynge....",
+    "label.action.migrate.instance": "Migrer Instans",
+    "label.action.migrate.instance.processing": "Migrerer Instans....",
+    "label.action.migrate.router": "Migrer ruter",
+    "label.action.migrate.router.processing": "Migrerer Ruter....",
+    "label.action.migrate.systemvm": "Migrer System VM",
+    "label.action.migrate.systemvm.processing": "Migrerer System VM....",
+    "label.action.reboot.instance": "Omstart Instans",
+    "label.action.reboot.instance.processing": "Starter om Instans....",
+    "label.action.reboot.router": "Omstart Ruter",
+    "label.action.reboot.router.processing": "Omstaer Instans....",
+    "label.action.reboot.systemvm": "Omstart System VM",
+    "label.action.reboot.systemvm.processing": "Omstarter System VM",
+    "label.action.recurring.snapshot": "Gjentagende øyeblikksbilder",
+    "label.action.register.iso": "Registrer ISO",
+    "label.action.register.template": "Registrer mal fra en URL",
+    "label.action.release.ip": "Frigjør IP",
+    "label.action.release.ip.processing": "Frigjør IP-adresse....",
+    "label.action.remove.host": "Fjern Vert",
+    "label.action.remove.host.processing": "Fjerner Vert....",
+    "label.action.reset.password": "Tilbakestill passord",
+    "label.action.reset.password.processing": "Tilbakestiller passord....",
+    "label.action.resize.volume": "Endre størrelse på volum",
+    "label.action.resize.volume.processing": "Endrer størrelse på volum....",
+    "label.action.resource.limits": "Ressursbegrensninger",
+    "label.action.restore.instance": "Gjenopprett Instans",
+    "label.action.restore.instance.processing": "Gjenoppretter Instans....",
+    "label.action.revert.snapshot": "Tilbakestill til øyeblikksbilde",
+    "label.action.revert.snapshot.processing": "Tilbakestiller til øyeblikksbilde....",
+    "label.action.start.instance": "Start instans",
+    "label.action.start.instance.processing": "Starter instans....",
+    "label.action.start.router": "Start ruter",
+    "label.action.start.router.processing": "Stopper ruter",
+    "label.action.start.systemvm": "Start System VM",
+    "label.action.start.systemvm.processing": "Starter System VM....",
+    "label.action.stop.instance": "Stopp instans",
+    "label.action.stop.instance.processing": "Stopper instans....",
+    "label.action.stop.router": "Stopp ruter",
+    "label.action.stop.router.processing": "Stopper ruter....",
+    "label.action.stop.systemvm": "Stopp System VM",
+    "label.action.stop.systemvm.processing": "Stopper System VM....",
+    "label.action.take.snapshot": "Ta øyeblikksbilde",
+    "label.action.take.snapshot.processing": "Tar øyeblikksbilde....",
+    "label.action.unmanage.cluster": "Fjern administrasjon av klynge",
+    "label.action.unmanage.cluster.processing": "Fjerner administrasjon av klynge...",
+    "label.action.update.OS.preference": "Oppdater OS-preferanser",
+    "label.action.update.OS.preference.processing": "Oppdaterer OS-preferanser.....",
+    "label.action.update.resource.count": "Oppdater resurs oversikt",
+    "label.action.update.resource.count.processing": "Oppdaterer resurs oversikt",
+    "label.action.vmsnapshot.create": "Ta VM øyeblikksbilde",
+    "label.action.vmsnapshot.delete": "Slett VM øyeblikksbilde",
+    "label.action.vmsnapshot.revert": "Tilbakestill til maskinøyeblikksbilde",
+    "label.actions": "Handlinger",
+    "label.activate.project": "Aktiver prosjekt",
+    "label.active.sessions": "Aktive sesjoner",
+    "label.add": "Legg til",
+    "label.add.ACL": "Legg til ACL",
+    "label.add.BigSwitchBcf.device": "Legg til BigSwitch BCF kontroller",
+    "label.add.BrocadeVcs.device": "Legg til Brocade VCS Svitsj",
+    "label.add.F5.device": "Legg til F5 enhet",
+    "label.add.LDAP.account": "Legg til LDAP-konto",
+    "label.add.NiciraNvp.device": "Legg til Nvp kontroller",
+    "label.add.NuageVsp.device": "Legg til Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Legg til OpenDayLight kontroller",
+    "label.add.PA.device": "Legg til Palo Alto enhet",
+    "label.add.SRX.device": "Legg til SRX enhet",
+    "label.add.VM.to.tier": "Legg VM til VPC-gren",
+    "label.add.VPN.gateway": "Legg til VPN Gateway",
+    "label.add.account": "Legg til konto",
+    "label.add.account.to.project": "Legg kontoen til prosjektet",
+    "label.add.accounts": "Legg til kontoer",
+    "label.add.accounts.to": "Legg kontoer til",
+    "label.add.acl.list": "Legg til ACL liste",
+    "label.add.affinity.group": "Legg til affinitetsgruppe",
+    "label.add.baremetal.dhcp.device": "Legg Til Barmetall DHCP Enhet",
+    "label.add.baremetal.rack.configuration": "Legg Til Barmetall Rack Konfigurering",
+    "label.add.by": "Legg til ved",
+    "label.add.by.cidr": "Legg til med CIDR",
+    "label.add.by.group": "Legg til med gruppe",
+    "label.add.ciscoASA1000v": "Legg til CiscoASA1000v Resurs",
+    "label.add.cluster": "Legg til klynge",
+    "label.add.compute.offering": "Legg til systemtilbud",
+    "label.add.direct.iprange": "Legg til direkte IP-rekke",
+    "label.add.disk.offering": "Legg til disktilbud",
+    "label.add.domain": "Legg til domene",
+    "label.add.egress.rule": "Legg til egress regel",
+    "label.add.firewall": "Legg til brannmurregel",
+    "label.add.globo.dns": "legg til GloboDNS",
+    "label.add.gslb": "Legg til GSLB",
+    "label.add.guest.network": "Legg til gjestenettverk",
+    "label.add.host": "Legg til vert",
+    "label.add.ingress.rule": "Legg til ingressregel",
+    "label.add.intermediate.certificate": "Legg til intermediate sertifikat",
+    "label.add.internal.lb": "Legg til intern LB",
+    "label.add.ip.range": "Legg til IP-rekke",
+    "label.add.isolated.guest.network": "Legg til Isolert gjestenettverk",
+    "label.add.isolated.guest.network.with.sourcenat": "Legg til isolert gjestenettverk med kilde-NAT",
+    "label.add.isolated.network": "Legg Til Isolert Nettverk",
+    "label.add.ldap.account": "Legg til LDAP-konto",
+    "label.add.list.name": "ACL listenavn",
+    "label.add.load.balancer": "Legg til lastbalanserer",
+    "label.add.more": "Legg til mer",
+    "label.add.netScaler.device": "Legg til Netscaler enhet",
+    "label.add.network": "Legg til nettverk",
+    "label.add.network.ACL": "Legg til nettverk ACL",
+    "label.add.network.acl.list": "Legg til nettverk ACL liste",
+    "label.add.network.device": "Legg til nettverksenhet",
+    "label.add.network.offering": "Legg til nettverkstilbud",
+    "label.add.new.F5": "Legg til ny F5",
+    "label.add.new.NetScaler": "Legg til ny NetScaler",
+    "label.add.new.PA": "Legg til ny Palo Alto",
+    "label.add.new.SRX": "Legg til ny SRX",
+    "label.add.new.gateway": "Legg til ny gateway",
+    "label.add.new.tier": "Legg til ny gren",
+    "label.add.nfs.secondary.staging.store": "Legg Til NFS sekundærmellomlagringsområde",
+    "label.add.physical.network": "Legg til fysisk nettverk",
+    "label.add.pod": "Legg til pod",
+    "label.add.port.forwarding.rule": "Legg til portvideresendingsregel",
+    "label.add.portable.ip.range": "Legg til portabel IP-rekke",
+    "label.add.primary.storage": "Legg til primærlagring",
+    "label.add.private.gateway": "Legg til privat gateway",
+    "label.add.region": "Legg til region",
+    "label.add.resources": "Legg til ressurser",
+    "label.add.role": "Add Role",
+    "label.add.route": "Legg til rute",
+    "label.add.rule": "Legg til regel",
+    "label.add.secondary.storage": "Legg til sekundærlagring",
+    "label.add.security.group": "Legg til sikkerhetsgruppe",
+    "label.add.service.offering": "Legg til tjenestetilbud",
+    "label.add.static.nat.rule": "Legg til statisk NAT-regel",
+    "label.add.static.route": "Legg til statisk rute",
+    "label.add.system.service.offering": "Legg til et systemtilbud",
+    "label.add.template": "Legg til mal",
+    "label.add.to.group": "Legg til gruppe",
+    "label.add.ucs.manager": "Legg Til UCS Manager",
+    "label.add.user": "Legg til bruker",
+    "label.add.userdata": "Brukerdata",
+    "label.add.vlan": "Legg til VLAN",
+    "label.add.vm": "Legg til VM",
+    "label.add.vms": "Legg til VMer",
+    "label.add.vms.to.lb": "Legg til VM(er) til lastbalanseringsregel",
+    "label.add.vmware.datacenter": "Legg til VMware datasenter",
+    "label.add.vnmc.device": "Legg til VNMC enhet",
+    "label.add.vnmc.provider": "Legg til VNMC tilbyder",
+    "label.add.volume": "Legg til volum",
+    "label.add.vpc": "Legg til VPC",
+    "label.add.vpc.offering": "Legg til VPC tilbud",
+    "label.add.vpn.customer.gateway": "Legg til VPN Kundegateway",
+    "label.add.vpn.user": "Legg til VPN-bruker",
+    "label.add.vxlan": "Legg til VXLAN",
+    "label.add.zone": "Legg til sone",
+    "label.added.brocade.vcs.switch": "Ny Brocade Vcs svitsj lagt til",
+    "label.added.network.offering": "La til nettverkstilbud",
+    "label.added.new.bigswitch.bcf.controller": "La til ny BigSwitch BCF kontroller",
+    "label.added.nicira.nvp.controller": "La til ny Nicira NVP-kontroller",
+    "label.addes.new.f5": "La til ny F5",
+    "label.adding": "Tillegger",
+    "label.adding.cluster": "Legger til klynge",
+    "label.adding.failed": "Tillegging feilet",
+    "label.adding.pod": "Legger til pod",
+    "label.adding.processing": "Legger til",
+    "label.adding.succeeded": "Tillegging vellykket",
+    "label.adding.user": "Legger til bruker",
+    "label.adding.zone": "Legger til sone",
+    "label.additional.networks": "Ekstra nettverk",
+    "label.admin": "Admin",
+    "label.admin.accounts": "Adminkontoer",
+    "label.advanced": "Avansert",
+    "label.advanced.mode": "Avansermodus",
+    "label.advanced.search": "Avansert søk",
+    "label.affinity": "Affinitet",
+    "label.affinity.group": "Affinitetsgruppe",
+    "label.affinity.groups": "Affinitetsgrupper",
+    "label.agent.password": "Agentpassord",
+    "label.agent.port": "Agentport",
+    "label.agent.state": "Agentstatus",
+    "label.agent.username": "Agentbrukernavn",
+    "label.agree": "Godtar",
+    "label.alert": "Varsel",
+    "label.alert.archived": "Varsel arkivert",
+    "label.alert.deleted": "Varsel slettet",
+    "label.alert.details": "Varseldetaljer",
+    "label.algorithm": "Algoritme",
+    "label.allocated": "Allokert",
+    "label.allocation.state": "Allokeringsstatus",
+    "label.allow": "Tillat",
+    "label.anti.affinity": "Anti-affinitet",
+    "label.anti.affinity.group": "Anti-affinitetsgruppe",
+    "label.anti.affinity.groups": "Anti-affinitetsgrupper",
+    "label.api.key": "API-nøkkel",
+    "label.api.version": "API Versjon",
+    "label.app.name": "CloudStack",
+    "label.apply": "Bruk",
+    "label.archive": "Arkiv",
+    "label.archive.alerts": "Arkiver varsler",
+    "label.archive.events": "Arkiver hendelser",
+    "label.assign": "Tildel",
+    "label.assign.instance.another": "Tildel instans til en annen konto",
+    "label.assign.to.load.balancer": "Legg til instans til lastbalanserer",
+    "label.assign.vms": "Tildel VMer",
+    "label.assigned.vms": "Tildelte VMer",
+    "label.associate.public.ip": "Assosiert Offentlig IP-adresse",
+    "label.associated.network": "Assosiert nettverk",
+    "label.associated.network.id": "Assosiert nettverksid",
+    "label.associated.profile": "Assosiert Profil",
+    "label.attached.iso": "Tilknyttet ISO",
+    "label.author.email": "Forfatter e-post",
+    "label.author.name": "Forfatternavn",
+    "label.autoscale": "Autoskaler",
+    "label.autoscale.configuration.wizard": "Autoskalering konfigurasjonsveiviser",
+    "label.availability": "Tilgjengelighet",
+    "label.availability.zone": "Tilgjengelighetssone",
+    "label.availabilityZone": "tilgjengelighetssone",
+    "label.available": "Tilgjengelig",
+    "label.available.public.ips": "Tilgjengelig offentlige IP-adresser",
+    "label.back": "Tilbake",
+    "label.bandwidth": "Båndbredde",
+    "label.baremetal.dhcp.devices": "Barmetall DHCP Enheter",
+    "label.baremetal.dhcp.provider": "Barmetall DHCP Tilbyder",
+    "label.baremetal.pxe.device": "Legg Til Barmetall PXE Enhet",
+    "label.baremetal.pxe.devices": "Barmetall PXE Enheter",
+    "label.baremetal.pxe.provider": "Barmetall PXE Tilbyder",
+    "label.baremetal.rack.configuration": "Barmetall Rack Konfigurering",
+    "label.basic": "Basis",
+    "label.basic.mode": "Basismodus",
+    "label.bigswitch.bcf.details": "BigSwitch BCF detaljer",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT aktivert",
+    "label.bigswitch.controller.address": "BigSwitch BCF kontrolleradresse",
+    "label.blade.id": "Blad-ID",
+    "label.blades": "Blad",
+    "label.bootable": "Botbar",
+    "label.broadcast.domain.range": "Kringkastings domene rekke",
+    "label.broadcast.domain.type": "Kringkastings Domene Type",
+    "label.broadcast.uri": "Kringkastings URI",
+    "label.broadcasturi": "kringkastinguri",
+    "label.broadcat.uri": "Kringkastings URI",
+    "label.brocade.vcs.address": "Vcs Switch Addresse",
+    "label.brocade.vcs.details": "Brocade Vcs svitsj detaljer",
+    "label.by.account": "Etter Konto",
+    "label.by.alert.type": "Etter varseltype",
+    "label.by.availability": "Etter Tilgjengelighet",
+    "label.by.date.end": "Etter dato (slutt)",
+    "label.by.date.start": "Etter dato (start)",
+    "label.by.domain": "Etter Domene",
+    "label.by.end.date": "Etter sluttdato",
+    "label.by.event.type": "Etter hendelsestype",
+    "label.by.level": "Etter nivå",
+    "label.by.pod": "Etter Pod",
+    "label.by.role": "Etter Rolle",
+    "label.by.start.date": "Etter Startdato",
+    "label.by.state": "Etter tilstand",
+    "label.by.traffic.type": "Etter Trafikktype",
+    "label.by.type": "Etter Type",
+    "label.by.type.id": "Etter Type ID",
+    "label.by.zone": "Etter Sone",
+    "label.bytes.received": "Bytes Mottatt",
+    "label.bytes.sent": "Bytes sendt",
+    "label.cache.mode": "Write-cache Type",
+    "label.cancel": "Avbryt",
+    "label.capacity": "Kapasitet",
+    "label.capacity.bytes": "Kapasitet Bytes",
+    "label.capacity.iops": "Kapasitet IOPS",
+    "label.certificate": "Sertifikat",
+    "label.change.affinity": "Endre affinitet",
+    "label.change.ipaddress": "Endre IP-adresse for nettverkskort",
+    "label.change.service.offering": "Endre tjenestetilbud",
+    "label.change.value": "Endre verdi",
+    "label.character": "Karakter",
+    "label.chassis": "Kasse",
+    "label.checksum": "sjekksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR eller konto/sikkerhetsgruppe",
+    "label.cidr.list": "Kilde-CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP Addresse",
+    "label.cisco.nexus1000v.password": "Nexus 1000v Passord",
+    "label.cisco.nexus1000v.username": "Nexus 1000v Brukernavn",
+    "label.ciscovnmc.resource.details": "CiscoVNMC ressursdetaljer",
+    "label.clean.up": "Rydd opp",
+    "label.clear.list": "Tøm liste",
+    "label.close": "Lukk",
+    "label.cloud.console": "Cloud",
+    "label.cloud.managed": "Forvaltet Av Cloud.com",
+    "label.cluster": "Klynge",
+    "label.cluster.name": "Klyngenavn",
+    "label.cluster.type": "Klyngetype",
+    "label.clusters": "Klynger",
+    "label.clvm": "CLVM",
+    "label.code": "Kode",
+    "label.community": "Fellesskap",
+    "label.compute": "Beregne",
+    "label.compute.and.storage": "Regnekraft og lagring",
+    "label.compute.offering": "Regnekraftstilbud",
+    "label.compute.offerings": "Regnekraftstilbud",
+    "label.configuration": "Konfigurering",
+    "label.configure": "Konfigurer",
+    "label.configure.ldap": "Konfigurer LDAP",
+    "label.configure.network.ACLs": "Konfigurer Nettverksaksesslister",
+    "label.configure.sticky.policy": "Konfigurer Sticky Policy",
+    "label.configure.vpc": "Konfigurer VPC",
+    "label.confirm.password": "Bekreft passord",
+    "label.confirmation": "Bekreftelse",
+    "label.congratulations": "Gratulerer!",
+    "label.conserve.mode": "Konserveringsmodus",
+    "label.console.proxy": "Konsollproxy",
+    "label.console.proxy.vm": "Konsollproxy VM",
+    "label.continue": "Fortsett",
+    "label.continue.basic.install": "Fortsett med enkelt oppsett",
+    "label.copying.iso": "Kopierer ISO",
+    "label.corrections.saved": "Endringer lagret",
+    "label.counter": "Teller",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU allokert",
+    "label.cpu.allocated.for.VMs": "CPU Allokert for VMer",
+    "label.cpu.limits": "CPU-begrensninger",
+    "label.cpu.mhz": "CPU (i MHz)",
+    "label.cpu.utilized": "CPU-utnyttelse",
+    "label.create.VPN.connection": "Opprett VPN-tilkobling",
+    "label.create.nfs.secondary.staging.storage": "Legg Til NFS sekundærmellomlagringsområde",
+    "label.create.nfs.secondary.staging.store": "Opprett NFS sekundærmellomlagringsområde",
+    "label.create.project": "Opprett prosjekt",
+    "label.create.ssh.key.pair": "Lag SSH-nøkkelpar",
+    "label.create.template": "Opprett mal",
+    "label.created": "Opprettet",
+    "label.created.by.system": "Opprettet av systemet",
+    "label.cross.zones": "Kryssoner",
+    "label.custom": "Tilpasset",
+    "label.custom.disk.iops": "Tilpasset IOPS",
+    "label.custom.disk.offering": "Brukertilpasset disktilbud",
+    "label.custom.disk.size": "Tilpasset Diskstørrelse",
+    "label.daily": "Daglig",
+    "label.data.disk.offering": "Datadisktilbud",
+    "label.date": "Dato",
+    "label.day": "Dag",
+    "label.day.of.month": "Dag i måned",
+    "label.day.of.week": "Dag i uke",
+    "label.dc.name": "Datasenter Navn",
+    "label.dead.peer.detection": "Død endepunkt-deteksjon",
+    "label.decline.invitation": "Avvis invitasjon",
+    "label.dedicate": "Dediker",
+    "label.dedicate.cluster": "Dediker kluster",
+    "label.dedicate.host": "Dediker host",
+    "label.dedicate.pod": "Dedikert pod",
+    "label.dedicate.vlan.vni.range": "Dedikert VLAN/VNI Rekke",
+    "label.dedicate.zone": "Dediker sone",
+    "label.dedicated": "Dedikert",
+    "label.dedicated.vlan.vni.ranges": "Dedikerte VLAN/VNI Rekker",
+    "label.default": "Standardverdi",
+    "label.default.egress.policy": "Egress standard policy",
+    "label.default.use": "Standard bruk",
+    "label.default.view": "Standardvisning",
+    "label.delete": "Slett",
+    "label.delete.BigSwitchBcf": "Fjern BigSwitch BCF-kontroller",
+    "label.delete.BrocadeVcs": "Fjern Brocade VCS-svitsj",
+    "label.delete.F5": "Slett F5",
+    "label.delete.NetScaler": "Slett Netscaler",
+    "label.delete.NiciraNvp": "Fjern Nvp-kontroller",
+    "label.delete.NuageVsp": "Fjern Nuage VSD",
+    "label.delete.OpenDaylight.device": "Fjern OpenDaylight kontroller",
+    "label.delete.PA": "Slett Palo Alto",
+    "label.delete.SRX": "Slett SRX",
+    "label.delete.VPN.connection": "Slett VPN-tilkobling",
+    "label.delete.VPN.customer.gateway": "Slett VPN-kundegateway",
+    "label.delete.VPN.gateway": "Slett VPN-gateway",
+    "label.delete.acl.list": "Slett ACL liste",
+    "label.delete.affinity.group": "Slett affinitetsgruppe",
+    "label.delete.alerts": "Slette varsler",
+    "label.delete.baremetal.rack.configuration": "Slett Barmetall Rack Konfigurering",
+    "label.delete.ciscoASA1000v": "Slett CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Slett CiscoVNMC ressurs",
+    "label.delete.events": "Slett hendelser",
+    "label.delete.gateway": "slett gateway",
+    "label.delete.internal.lb": "Slett intern LB",
+    "label.delete.portable.ip.range": "Slett portabel IP-rekke",
+    "label.delete.profile": "Slett Profil",
+    "label.delete.project": "Slett prosjekt",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Slett NFS sekundærmellomlagringsområde",
+    "label.delete.ucs.manager": "Slett UCS Manager",
+    "label.delete.vpn.user": "Slett VPN-bruker",
+    "label.deleting.failed": "Sletting feilet",
+    "label.deleting.processing": "Sletter....",
+    "label.deny": "Nekt",
+    "label.deployment.planner": "utbyggings planlegger",
+    "label.description": "Beskrivelse",
+    "label.destination.physical.network.id": "Fysisk nettverksid-destinasjon",
+    "label.destination.zone": "Destinasjonssone",
+    "label.destroy": "Destruer",
+    "label.destroy.router": "Slett ruter",
+    "label.destroy.vm.graceperiod": "Ødelegg VM ventetid",
+    "label.detaching.disk": "Kobler fra disk",
+    "label.details": "Detaljer",
+    "label.device.id": "Enhets ID",
+    "label.devices": "Enheter",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Direkte Tilknyttet Offentlig IP-adresse",
+    "label.direct.ips": "Deltnettverk-IPadresser",
+    "label.disable.autoscale": "Deaktiver autoskalering",
+    "label.disable.host": "Deaktiver host",
+    "label.disable.network.offering": "Deaktiver nettverkstilbud",
+    "label.disable.provider": "Deaktiver tilbyder",
+    "label.disable.vnmc.provider": "Deatkivert VNMC tilbyder",
+    "label.disable.vpc.offering": "Deaktivert VPC tilbud",
+    "label.disable.vpn": "Dekativer VPN",
+    "label.disabled": "Inaktiv",
+    "label.disabling.vpn.access": "Deaktiverer VPN Tilgang",
+    "label.disassociate.profile.blade": "Deassosier profil fra Blade",
+    "label.disbale.vnmc.device": "Deaktivert VNMC enhet",
+    "label.disk.allocated": "Disk allokert",
+    "label.disk.bytes.read.rate": "Disklesehastighet (BPS)",
+    "label.disk.bytes.write.rate": "Diskskrivehastighet  (BPS)",
+    "label.disk.iops.max": "Maks IOPS",
+    "label.disk.iops.min": "Min IOPS",
+    "label.disk.iops.read.rate": "Disklesehastighet (IOPS)",
+    "label.disk.iops.total": "IOPS Totalt",
+    "label.disk.iops.write.rate": "Diskskrivehastighet (IOPS)",
+    "label.disk.offering": "Disktilbud",
+    "label.disk.offering.details": "Disktilbud detaljer",
+    "label.disk.provisioningtype": "Provisjoneringstype",
+    "label.disk.read.bytes": "Disk lese (Bytes)",
+    "label.disk.read.io": "Disk lese (IO)",
+    "label.disk.size": "Diskstørrelse",
+    "label.disk.size.gb": "Diskstørrelse (i GB)",
+    "label.disk.total": "Disk Totalt",
+    "label.disk.volume": "Disk Volum",
+    "label.disk.write.bytes": "Disk skrive (Bytes)",
+    "label.disk.write.io": "Disk skrive (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Visningsnavn",
+    "label.display.text": "Visningstekst",
+    "label.distributedrouter": "DIstribuert router",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Domene",
+    "label.domain.admin": "Domeneadministrator",
+    "label.domain.details": "Domenedetaljer",
+    "label.domain.id": "Domene ID",
+    "label.domain.lower": "domene",
+    "label.domain.name": "Domenenavn",
+    "label.domain.router": "Domeneruter",
+    "label.domain.suffix": "DNS domenesuffiks (f.eks, xyz.com)",
+    "label.done": "Utført",
+    "label.double.quotes.are.not.allowed": "Doble anførselstegn er ikke tillatt",
+    "label.download.progress": "Nedlastningsprogresjon",
+    "label.drag.new.position": "Dra til ny posisjon",
+    "label.duration.in.sec": "Varighet (i sek.)",
+    "label.dynamically.scalable": "Dynamisk skalerbar",
+    "label.edit": "Editer",
+    "label.edit.acl.rule": "Endre ACL regel",
+    "label.edit.affinity.group": "Rediger affinitetsgruppe",
+    "label.edit.lb.rule": "Endre LB-regel",
+    "label.edit.network.details": "Editér nettverksdetaljer",
+    "label.edit.project.details": "Editer prosjektdetaljer",
+    "label.edit.region": "Editer region",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Endre regel",
+    "label.edit.secondary.ips": "Endre sekundære IPer",
+    "label.edit.tags": "Rediger tagger",
+    "label.edit.traffic.type": "Endre trafikktype",
+    "label.edit.vpc": "Rediger VPC",
+    "label.egress.default.policy": "Egress standardpolicy",
+    "label.egress.rule": "Egressregel",
+    "label.egress.rules": "Egressregler",
+    "label.elastic": "Elastisk",
+    "label.elastic.IP": "Elastisk IP",
+    "label.elastic.LB": "Elastisk LB",
+    "label.email": "E-post",
+    "label.email.lower": "epost",
+    "label.enable.autoscale": "Aktivert autoskalering",
+    "label.enable.host": "Aktiver host",
+    "label.enable.network.offering": "Aktiver nettverkstilbud",
+    "label.enable.provider": "Aktiver tilbyder",
+    "label.enable.s3": "Aktiver S3-støttet sekundærlagring",
+    "label.enable.swift": "Aktiver Swift",
+    "label.enable.vnmc.device": "Aktivert VNMC enhet",
+    "label.enable.vnmc.provider": "Aktivert VNMC tilbyder",
+    "label.enable.vpc.offering": "Aktiver VPC tilbud",
+    "label.enable.vpn": "Aktiver VPN",
+    "label.enabling.vpn": "Aktiverer VPN",
+    "label.enabling.vpn.access": "Aktiverer VPN-tilgang",
+    "label.end.IP": "Slutt-IP",
+    "label.end.port": "Sluttport",
+    "label.end.reserved.system.IP": "Siste reserverte system IP",
+    "label.end.vlan": "Slutt VLAN",
+    "label.end.vxlan": "Slutt VXLAN",
+    "label.endpoint": "Endepunkt",
+    "label.endpoint.or.operation": "Endepunkt eller operasjon",
+    "label.enter.token": "Skriv inn koden",
+    "label.error": "Feil",
+    "label.error.code": "Feilkode",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "ESX/ESXi vert",
+    "label.event": "Hendelse",
+    "label.event.archived": "Hendelser Arkivert",
+    "label.event.deleted": "Hendelse slettet",
+    "label.every": "Hver",
+    "label.example": "Eksempel",
+    "label.expunge": "Permanent Slett",
+    "label.external.link": "Ekstern kobling",
+    "label.extractable": "Nedlastbar",
+    "label.extractable.lower": "Nedlastbar",
+    "label.f5": "F5",
+    "label.f5.details": "F5 detaljer",
+    "label.failed": "Feilet",
+    "label.featured": "Fremhevet",
+    "label.fetch.latest": "Hent siste",
+    "label.filterBy": "Filtrer etter",
+    "label.fingerprint": "Fingeravtrykk",
+    "label.firewall": "Brannmur",
+    "label.first.name": "Fornavn",
+    "label.firstname.lower": "fornavn",
+    "label.format": "Format",
+    "label.format.lower": "format",
+    "label.friday": "Fredag",
+    "label.full": "Full",
+    "label.full.path": "Full sti",
+    "label.gateway": "Gateway",
+    "label.general.alerts": "Generelle varsler",
+    "label.generating.url": "Genererer URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS-konfigurasjon",
+    "label.gluster.volume": "Volum",
+    "label.go.step.2": "Gå til steg 2",
+    "label.go.step.3": "Gå til steg 3",
+    "label.go.step.4": "Gå til steg 4",
+    "label.go.step.5": "Gå til steg 5",
+    "label.gpu": "GPU",
+    "label.group": "Gruppe",
+    "label.group.by.account": "Grupper på konto",
+    "label.group.by.cluster": "Grupper på kluster",
+    "label.group.by.pod": "Grupper på pod",
+    "label.group.by.zone": "Grupper på sone",
+    "label.group.optional": "Gruppe (Valgfritt)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Tildelt lastbalansering",
+    "label.gslb.assigned.lb.more": "Tildel mer lastbalansering",
+    "label.gslb.delete": "Slett GSLB",
+    "label.gslb.details": "GSLB detaljer",
+    "label.gslb.domain.name": "GSLB domenenavn",
+    "label.gslb.lb.details": "Lastbalanseringsdetaljer",
+    "label.gslb.lb.remove": "Fjern lastbalansering fra denne GSLB",
+    "label.gslb.lb.rule": "Lastbalanseringsregel",
+    "label.gslb.service": "GSLB tjeneste",
+    "label.gslb.service.private.ip": "GSLB tjeneste privat IP-adresse",
+    "label.gslb.service.public.ip": "GSLB tjeneste offentlig IP-adresse",
+    "label.gslb.servicetype": "Tjeneste Type",
+    "label.guest": "Gjest",
+    "label.guest.cidr": "Gjest CIDR",
+    "label.guest.end.ip": "Gjest slutt-IP",
+    "label.guest.gateway": "Gjestegateway",
+    "label.guest.ip": "Gjest IP-adresse",
+    "label.guest.ip.range": "Gjest IP-rekke",
+    "label.guest.netmask": "Gjest nettmaske",
+    "label.guest.network.details": "Gjestenettverksdetaljer",
+    "label.guest.networks": "Gjestenettverk",
+    "label.guest.start.ip": "Gjest start-IP",
+    "label.guest.traffic": "Gjestetrafikk",
+    "label.guest.traffic.vswitch.name": "Gjestetrafikk vSwitch Navn",
+    "label.guest.traffic.vswitch.type": "Gjestetrafikk vSwitch Type",
+    "label.guest.type": "Gjestetype",
+    "label.ha.enabled": "HA Aktivert",
+    "label.health.check": "Helsesjekk",
+    "label.health.check.advanced.options": "Avanserte valg:",
+    "label.health.check.configurations.options": "Konfigureringsvalg:",
+    "label.health.check.interval.in.sec": "Helsesjekk Intervall (i sekunder)",
+    "label.health.check.message.desc": "Din lastbalanserer vil automatisk utføre helsesjekker mot dine cloudstackinstanser og kun rute trafikk til de instansene som passerer helsesjekk.",
+    "label.health.check.wizard": "Helsesjekkveiviser",
+    "label.healthy.threshold": "Sunn Terskel",
+    "label.help": "Hjelp",
+    "label.hide.ingress.rule": "Skjul ingressregel",
+    "label.hints": "Hint",
+    "label.home": "Hjem",
+    "label.host": "Vert",
+    "label.host.MAC": "Verts MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Vertsnavn",
+    "label.host.tag": "Merkelapper for vert",
+    "label.host.tags": "Vertsknagger",
+    "label.hosts": "Verter",
+    "label.hourly": "Hver time",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Trafikk Etikett",
+    "label.hypervisor": "Hypervisor",
+    "label.hypervisor.capabilities": "Hypervisor evner",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Øyeblikks Kapasitet",
+    "label.hypervisor.type": "Hypervisor type",
+    "label.hypervisor.version": "Hypervisor versjon",
+    "label.hypervisors": "Hypervisors",
+    "label.id": "ID",
+    "label.info": "Info",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Ingressregel",
+    "label.initiated.by": "Initiert av",
+    "label.inside.port.profile": "Intern Port Profil",
+    "label.installWizard.addClusterIntro.subtitle": "Hva er en klynge?",
+    "label.installWizard.addClusterIntro.title": "La oss legge til en klynge",
+    "label.installWizard.addHostIntro.subtitle": "Hva er en vert?",
+    "label.installWizard.addHostIntro.title": "La oss legge til en vert",
+    "label.installWizard.addPodIntro.subtitle": "Hva er en pod?",
+    "label.installWizard.addPodIntro.title": "La oss legge til en pod",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Hva er primærlagring?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Legg til primærlagring",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Hva er sekundærlagring?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Legg til sekundærlagring",
+    "label.installWizard.addZone.title": "Legg til sone",
+    "label.installWizard.addZoneIntro.subtitle": "Hva er en sone?",
+    "label.installWizard.addZoneIntro.title": "La oss legge til en sone",
+    "label.installWizard.click.launch": "Klikk startknappen.",
+    "label.installWizard.subtitle": "Denne veiviseren vil hjelpe deg i din installasjon av CloudStack&#8482",
+    "label.installWizard.title": "Hei og velkommen til CloudStack&#8482",
+    "label.instance": "Instans",
+    "label.instance.limits": "Instans Begrensninger",
+    "label.instance.name": "Instans Navn",
+    "label.instance.port": "Instansport",
+    "label.instance.scaled.up": "Instans skalert til forespurt tilbud",
+    "label.instances": "Instanser",
+    "label.instanciate.template.associate.profile.blade": "Instansier mal og assosier malen med Blade",
+    "label.intermediate.certificate": "Intermediate sertifikat {0}",
+    "label.internal.dns.1": "Intern DNS 1",
+    "label.internal.dns.2": "Intern DNS 2",
+    "label.internal.lb": "Intern LB",
+    "label.internal.lb.details": "Intern LB detaljer",
+    "label.internal.name": "Internt navn",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "Intervalltype",
+    "label.introduction.to.cloudstack": "Introduksjon til CloudStack&#8482",
+    "label.invalid.integer": "Ugyldig heltall",
+    "label.invalid.number": "Ugyldig tall",
+    "label.invitations": "Invitasjoner",
+    "label.invite": "Inviter",
+    "label.invite.to": "Inviter til",
+    "label.invited.accounts": "Inviterte kontoer",
+    "label.ip": "IP",
+    "label.ip.address": "IP-adresse",
+    "label.ip.allocations": "IP Allokeringer",
+    "label.ip.limits": "Offentlig IP-addresse Grenser",
+    "label.ip.or.fqdn": "IP eller FQDN",
+    "label.ip.range": "IP-rekke",
+    "label.ip.ranges": "IP-rekker",
+    "label.ipaddress": "IP-adresse",
+    "label.ips": "IPer",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 Slutt IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4 nettmaske",
+    "label.ipv4.start.ip": "IPv4 Start IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP Adresse",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 Slutt IP",
+    "label.ipv6.gateway": "IPv6 Gateway",
+    "label.ipv6.start.ip": "IPv6 Start IP",
+    "label.is.default": "Er standard",
+    "label.is.redundant.router": "Redundant",
+    "label.is.shared": "Er delt",
+    "label.is.system": "Er system",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO Boot",
+    "label.isolated.networks": "Isolerte nettverk",
+    "label.isolation.method": "Isolasjonsmetode",
+    "label.isolation.mode": "Isolasjonsmetode",
+    "label.isolation.uri": "Isolasjons URI",
+    "label.item.listing": "Elementlisting",
+    "label.japanese.keyboard": "Japansk-tastatur",
+    "label.keep": "Behold",
+    "label.keep.colon": "Behold:",
+    "label.key": "Nøkkel",
+    "label.keyboard.language": "Tastaturspråk",
+    "label.keyboard.type": "Tastaturtype",
+    "label.kvm.traffic.label": "KVM trafikketikett",
+    "label.label": "Etikett",
+    "label.lang.arabic": "Arabisk",
+    "label.lang.brportugese": "Brasiliansk Portugisisk",
+    "label.lang.catalan": "Katalansk",
+    "label.lang.chinese": "Kinesisk (Forenklet)",
+    "label.lang.dutch": "Dutch (Nederland)",
+    "label.lang.english": "Engelsk",
+    "label.lang.french": "Fransk",
+    "label.lang.german": "Tysk",
+    "label.lang.hungarian": "Ungarsk",
+    "label.lang.italian": "Italiensk",
+    "label.lang.japanese": "Japanesisk",
+    "label.lang.korean": "Koreansk",
+    "label.lang.norwegian": "Norsk",
+    "label.lang.polish": "Polsk",
+    "label.lang.russian": "Russisk",
+    "label.lang.spanish": "Spansk",
+    "label.last.disconnected": "Siste Frakobling",
+    "label.last.name": "Etternavn",
+    "label.lastname.lower": "etternavn",
+    "label.latest.events": "Siste hendelser",
+    "label.launch": "Start",
+    "label.launch.vm": "Start VM",
+    "label.launch.zone": "Start sone",
+    "label.lb.algorithm.leastconn": "Færrest tilkoblinger",
+    "label.lb.algorithm.roundrobin": "Ringdistribusjon",
+    "label.lb.algorithm.source": "Kilde",
+    "label.ldap.configuration": "LDAP-konfigurasjon",
+    "label.ldap.group.name": "LDAP Gruppe",
+    "label.ldap.link.type": "Type",
+    "label.ldap.port": "LDAP port",
+    "label.level": "Nivå",
+    "label.link.domain.to.ldap": "Knytt domene til LDAP",
+    "label.linklocal.ip": "Link-lokal IP-adresse",
+    "label.load.balancer": "Lastbalanserer",
+    "label.load.balancer.type": "Lastbalanseringstype",
+    "label.load.balancing": "Lastbalansering",
+    "label.load.balancing.policies": "Regler for lastbalansering",
+    "label.loading": "Laster",
+    "label.local": "Lokal",
+    "label.local.file": "Lokal fil",
+    "label.local.storage": "Lokal lagring",
+    "label.local.storage.enabled": "Aktiver lokal lagring for bruker VMer",
+    "label.local.storage.enabled.system.vms": "Aktiver lokal lagring for SystemVMer",
+    "label.login": "Logg inn",
+    "label.logout": "Logg ut",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC trafikk etikett",
+    "label.make.project.owner": "Gjør konto prosjekteier",
+    "label.make.redundant": "Gjør redundant",
+    "label.manage": "Administrer",
+    "label.manage.resources": "Behandle ressurser",
+    "label.managed": "Administrert",
+    "label.management": "Administrasjon",
+    "label.management.ips": "Administrasjons IP-adresser",
+    "label.management.server": "Administrasjonsserver",
+    "label.max.cpus": "Maks CPU kjerner",
+    "label.max.guest.limit": "Maks antall gjester",
+    "label.max.instances": "Maks Instanser",
+    "label.max.memory": "Maks minne (MiB)",
+    "label.max.networks": "Maks nettverk",
+    "label.max.primary.storage": "Maks primær (GiB)",
+    "label.max.public.ips": "Maks offentlige IPer",
+    "label.max.secondary.storage": "Maks sekundær (GiB)",
+    "label.max.snapshots": "Maks øyeblikksbilder",
+    "label.max.templates": "Maks maler",
+    "label.max.vms": "Maks bruker-VMer",
+    "label.max.volumes": "Maks volumer",
+    "label.max.vpcs": "Maks VPCs",
+    "label.maximum": "Maksimum",
+    "label.may.continue": "Du kan nå fortsette.",
+    "label.md5.checksum": "MD5 sjekksum",
+    "label.memory": "Minne",
+    "label.memory.allocated": "Minne allokert",
+    "label.memory.limits": "Minnebegrensning (MiB)",
+    "label.memory.mb": "Minne (i MB)",
+    "label.memory.total": "Minne totalt",
+    "label.memory.used": "Minne brukt",
+    "label.menu.accounts": "Kontoer",
+    "label.menu.alerts": "Varsler",
+    "label.menu.all.accounts": "Alle kontoer",
+    "label.menu.all.instances": "Alle instanser",
+    "label.menu.community.isos": "Fellesskap ISO medier",
+    "label.menu.community.templates": "Felleskap Maler",
+    "label.menu.configuration": "Konfigurering",
+    "label.menu.dashboard": "Dashbord",
+    "label.menu.destroyed.instances": "Ødelagte instanser",
+    "label.menu.disk.offerings": "Disktilbud",
+    "label.menu.domains": "Domener",
+    "label.menu.events": "Hendelser",
+    "label.menu.featured.isos": "Fremhevede ISOer",
+    "label.menu.featured.templates": "Fremhevde maler",
+    "label.menu.global.settings": "Globale innstillinger",
+    "label.menu.infrastructure": "Infrastruktur",
+    "label.menu.instances": "Instanser",
+    "label.menu.ipaddresses": "IP-adresser",
+    "label.menu.isos": "ISOer",
+    "label.menu.my.accounts": "Mine kontoer",
+    "label.menu.my.instances": "Mine instanser",
+    "label.menu.my.isos": "Mine ISOer",
+    "label.menu.my.templates": "Mine maler",
+    "label.menu.network": "Nettverk",
+    "label.menu.network.offerings": "Nettverkstilbud",
+    "label.menu.physical.resources": "Fysiske ressurser",
+    "label.menu.regions": "Regioner",
+    "label.menu.running.instances": "Kjørende instanser",
+    "label.menu.security.groups": "Sikkerhetsgrupper",
+    "label.menu.service.offerings": "Tjenestetilbud",
+    "label.menu.snapshots": "Øyebliksbilder",
+    "label.menu.sshkeypair": "SSH nøkkelpar",
+    "label.menu.stopped.instances": "Stoppede instanser",
+    "label.menu.storage": "Lagring",
+    "label.menu.system": "System",
+    "label.menu.system.service.offerings": "Systemtilbud",
+    "label.menu.system.vms": "System VMer",
+    "label.menu.templates": "Maler",
+    "label.menu.virtual.appliances": "Virtuelle Apparater",
+    "label.menu.virtual.resources": "Virtuelle ressurser",
+    "label.menu.volumes": "Volumer",
+    "label.menu.vpc.offerings": "VPC tilbud",
+    "label.metrics": "Beregninger",
+    "label.metrics.allocated": "Allokert",
+    "label.metrics.clusters": "Klynger",
+    "label.metrics.cpu.allocated": "CPU-Allokasjon",
+    "label.metrics.cpu.max.dev": "Avvik",
+    "label.metrics.cpu.total": "Totalt",
+    "label.metrics.cpu.usage": "CPU-bruk",
+    "label.metrics.cpu.used.avg": "Brukt",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "Allokert",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Lese",
+    "label.metrics.disk.size": "Størrelse",
+    "label.metrics.disk.storagetype": "Type",
+    "label.metrics.disk.total": "Totalt",
+    "label.metrics.disk.unallocated": "Uallokert",
+    "label.metrics.disk.usage": "Diskforbruk",
+    "label.metrics.disk.used": "Brukt",
+    "label.metrics.disk.write": "Skriv",
+    "label.metrics.hosts": "Verter",
+    "label.metrics.memory.allocated": "Minneallokering",
+    "label.metrics.memory.max.dev": "Avvik",
+    "label.metrics.memory.total": "Totalt",
+    "label.metrics.memory.usage": "Minneforbruk",
+    "label.metrics.memory.used.avg": "Brukt",
+    "label.metrics.name": "Navn",
+    "label.metrics.network.read": "Lese",
+    "label.metrics.network.usage": "Nettverksforbruk",
+    "label.metrics.network.write": "Skriv",
+    "label.metrics.num.cpu.cores": "Kjerner",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Egenskap",
+    "label.metrics.scope": "Omfang",
+    "label.metrics.state": "Status",
+    "label.metrics.storagepool": "Lagringspool",
+    "label.metrics.vm.name": "VM-navn",
+    "label.migrate.instance.to": "Migrer instans til",
+    "label.migrate.instance.to.host": "Migrer instansen til en annen vert",
+    "label.migrate.instance.to.ps": "Migrer instansen til en annen primærlagring.",
+    "label.migrate.lb.vm": "Migrer LB VM",
+    "label.migrate.router.to": "Migrer Ruter til",
+    "label.migrate.systemvm.to": "Migrer System VM til",
+    "label.migrate.to.host": "Migrer til vert",
+    "label.migrate.to.storage": "Migrer til lagring",
+    "label.migrate.volume": "Migrer volum",
+    "label.migrate.volume.to.primary.storage": "Migrer volumet til en annen primærlagring.",
+    "label.min.instances": "Min Instanser",
+    "label.min.past.the.hr": "minutter etter time",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "minutt(er) etter hel time",
+    "label.minutes.past.hour": "minutt(er) etter time",
+    "label.mode": "Modus",
+    "label.monday": "Mandag",
+    "label.monthly": "Månedlig",
+    "label.more.templates": "Flere maler",
+    "label.move.down.row": "Flytt én rad ned",
+    "label.move.to.bottom": "Flytt til bunnen",
+    "label.move.to.top": "Flytt til toppen",
+    "label.move.up.row": "Flytt én rad opp",
+    "label.my.account": "Min konto",
+    "label.my.network": "Mitt nettverk",
+    "label.my.templates": "Mine maler",
+    "label.na": "N/A",
+    "label.name": "Navn",
+    "label.name.lower": "Navn",
+    "label.name.optional": "Navn (Valgfritt)",
+    "label.nat.port.range": "NAT portrekke",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Nettmaske",
+    "label.netscaler.details": "NetScaler detaljer",
+    "label.network": "Nettverk",
+    "label.network.ACL": "Nettverk ACL",
+    "label.network.ACL.total": "Nettverk ACL Total",
+    "label.network.ACLs": "Nettverk ACLer",
+    "label.network.addVM": "Legg nettverk til VM",
+    "label.network.cidr": "Nettverk CIDR",
+    "label.network.desc": "Nettverksbeskrivelse",
+    "label.network.details": "Nettverksdetaljer",
+    "label.network.device": "Nettverksenhet",
+    "label.network.device.type": "Type nettverksenhet",
+    "label.network.domain": "Nettverksdomene",
+    "label.network.domain.text": "Nettverksdomene",
+    "label.network.id": "Nettverks ID",
+    "label.network.label.display.for.blank.value": "Bruk standard gateway",
+    "label.network.limits": "Nettverksbegrensninger",
+    "label.network.name": "Nettverksnavn",
+    "label.network.offering": "Nettverkstilbud",
+    "label.network.offering.details": "Nettverkstilbud detaljer",
+    "label.network.offering.display.text": "Nettverkstilbud Forklaring",
+    "label.network.offering.id": "Nettverkstilbud ID",
+    "label.network.offering.name": "Nettverkstilbud Navn",
+    "label.network.rate": "Nettverks fart (MB/s)",
+    "label.network.rate.megabytes": "Nettverks fart (MB/s)",
+    "label.network.read": "Nettverk les",
+    "label.network.service.providers": "Nettverktjenestetilbydere",
+    "label.network.type": "Nettverkstype",
+    "label.network.write": "Nettverk skriveoperasjoner",
+    "label.networking.and.security": "Nettverk og sikkerhet",
+    "label.networks": "Nettverk",
+    "label.new": "Ny",
+    "label.new.password": "Nytt passord",
+    "label.new.project": "Nytt prosjekt",
+    "label.new.ssh.key.pair": "Nytt SSH-nøkkelpar",
+    "label.new.vm": "Ny VM",
+    "label.next": "Neste",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS Server",
+    "label.nfs.storage": "NFS Lagring",
+    "label.nic.adapter.type": "NIC adaptertype",
+    "label.nicira.controller.address": "Kontrolleradresse",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway tjeneste-uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Tjeneste Uuid",
+    "label.nicira.nvp.details": "Nicira NVP detaljer",
+    "label.nicira.transportzoneuuid": "Transport sone Uuid",
+    "label.nics": "NICer",
+    "label.no": "Nei",
+    "label.no.actions": "Ingen tilgjengelige handlinger",
+    "label.no.alerts": "Ingen nylige alarmer",
+    "label.no.data": "Ingen data å vise",
+    "label.no.errors": "Ingen nylige feil",
+    "label.no.grouping": "(ingen gruppering)",
+    "label.no.isos": "Ingen tilgjengelige ISOer",
+    "label.no.items": "Ingen tilgjengelige elementer",
+    "label.no.security.groups": "Ingen tilgjengelige sikkerhetsgrupper",
+    "label.no.thanks": "Nei, takk",
+    "label.none": "Ingen",
+    "label.not.found": "Ikke funnet",
+    "label.notifications": "Notifikasjoner",
+    "label.num.cpu.cores": "# av CPU-kjerner",
+    "label.number.of.clusters": "Antall klynger",
+    "label.number.of.cpu.sockets": "Totalt antall CPU-sockets",
+    "label.number.of.hosts": "Antall verter",
+    "label.number.of.pods": "Antall pods",
+    "label.number.of.system.vms": "Antall System VMer",
+    "label.number.of.virtual.routers": "Antall virtuelle rutere",
+    "label.number.of.zones": "Antall soner",
+    "label.numretries": "Antall forsøk",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "av måned",
+    "label.offer.ha": "Tilby HA",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight kontroller",
+    "label.opendaylight.controllerdetail": "OpenDaylight kontrollerdetaljer",
+    "label.opendaylight.controllers": "OpenDaylight kontrollere",
+    "label.operator": "Operatør",
+    "label.optional": "Valgfritt",
+    "label.order": "Rekkefølge",
+    "label.os.preference": "OS-preferanse",
+    "label.os.type": "OS-type",
+    "label.other": "Andre",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Handling",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Passord",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Brukernavn",
+    "label.override.guest.traffic": "Overstyr Gjeste Trafikk",
+    "label.override.public.traffic": "Overstyr Offentlig Trafikk",
+    "label.ovm.traffic.label": "OVM trafikk etikett",
+    "label.ovm3.cluster": "Innebygd Klynge Funksjon",
+    "label.ovm3.pool": "Innebygd Pooling",
+    "label.ovm3.traffic.label": "OVM3 trafikketikett",
+    "label.ovm3.vip": "Hoved VIP IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Offentlige IP-addresser i bruk",
+    "label.owner.account": "Eierkonto",
+    "label.owner.domain": "Eierdomene",
+    "label.palo.alto.details": "Palo Alto detaljer",
+    "label.parent.domain": "Foreldre domene",
+    "label.passive": "Passiv",
+    "label.password": "Passord",
+    "label.password.enabled": "Passord Aktivert",
+    "label.password.lower": "passord",
+    "label.password.reset.confirm": "Passordet har blitt resatt til",
+    "label.path": "Sti",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "Vedvarende",
+    "label.physical.network": "Fysisk nettverk",
+    "label.physical.network.ID": "Fysisk nettverksid",
+    "label.physical.network.name": "Fysisk nettverksnavn",
+    "label.ping.path": "Ping Sti",
+    "label.planner.mode": "Planleggingsmodus",
+    "label.please.complete.the.following.fields": "Vennligst fullført følgende felter",
+    "label.please.specify.netscaler.info": "Vennligst spesifiser NetScaler-info",
+    "label.please.wait": "Vennligst vent",
+    "label.plugin.details": "Plugin detaljer",
+    "label.plugins": "Plugins",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod Dedikert",
+    "label.pod.name": "Pod navn",
+    "label.pods": "Pods",
+    "label.polling.interval.sec": "Sjekkintervall (i sekunder)",
+    "label.port": "Port",
+    "label.port.forwarding": "Portvideresending",
+    "label.port.forwarding.policies": "Regler for portvideresending",
+    "label.port.range": "Portrekke",
+    "label.portable.ip": "Flyttbar IP",
+    "label.portable.ip.range.details": "Portabel IP-rekke detaljer",
+    "label.portable.ip.ranges": "Transportable IP-rekker",
+    "label.portable.ips": "Portabel IP-rekke",
+    "label.powerstate": "Power State",
+    "label.prev": "Forrige",
+    "label.previous": "Forrige",
+    "label.primary.allocated": "Primærlagring allokert",
+    "label.primary.network": "Primærnettverk",
+    "label.primary.storage": "Primærlagring",
+    "label.primary.storage.count": "Primærlagrings Pool",
+    "label.primary.storage.limits": "Primærlagring Maxgrense (GiB)",
+    "label.primary.used": "Primærlagring brukt",
+    "label.private.Gateway": "Privat Gateway",
+    "label.private.interface": "Privat Grensesnitt",
+    "label.private.ip": "Privat IP-adresse",
+    "label.private.ip.range": "Privat IP-rekke",
+    "label.private.ips": "Private IP-adresser",
+    "label.private.key": "Privat nøkkel",
+    "label.private.network": "Privat nettverk",
+    "label.private.port": "Privat port",
+    "label.private.zone": "Privat sone",
+    "label.privatekey": "PKCS#8 Privat Nøkkel",
+    "label.profile": "Profil",
+    "label.project": "Prosjekt",
+    "label.project.dashboard": "Prosjektoversikt",
+    "label.project.id": "Prosjektid",
+    "label.project.invite": "Inviter til prosjekt",
+    "label.project.name": "Prosjektnavn",
+    "label.project.view": "Prosjektvisning",
+    "label.projects": "Prosjekter",
+    "label.protocol": "Protokoll",
+    "label.protocol.number": "Protokollnummer",
+    "label.provider": "Tilbyder",
+    "label.providers": "Tilbydere",
+    "label.public": "Offentlig",
+    "label.public.interface": "Offentlig Grensesnitt",
+    "label.public.ip": "Offentlig IP-adresse",
+    "label.public.ips": "Offentlig IP-adresser",
+    "label.public.key": "Offentlig nøkkel",
+    "label.public.lb": "Offentlig LB",
+    "label.public.load.balancer.provider": "Offentlig Lastbalanserer Tilbyder",
+    "label.public.network": "Offentlig nettverk",
+    "label.public.port": "Offentlig port",
+    "label.public.traffic": "Offentlig trafikk",
+    "label.public.traffic.vswitch.name": "Offentlig Trafikk vSwitch Navn",
+    "label.public.traffic.vswitch.type": "Offentlig Trafikk vSwitch Type",
+    "label.public.zone": "Offentlig sone",
+    "label.purpose": "Formål",
+    "label.qos.type": "QoS Type",
+    "label.quickview": "Hurtigvisning",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Quiet Tid (sekunder)",
+    "label.quota.add.credits": "Legg til kreditt",
+    "label.quota.balance": "Balanse",
+    "label.quota.configuration": "Kvotekonfigurasjon",
+    "label.quota.configure": "Konfigurer Kvote",
+    "label.quota.credit": "Kreditt",
+    "label.quota.credits": "Kreditt",
+    "label.quota.date": "Dato",
+    "label.quota.dates": "Oppdater datoer",
+    "label.quota.description": "Kvotebeskrivelse",
+    "label.quota.email.body": "Innhold",
+    "label.quota.email.lastupdated": "Sist oppdatert",
+    "label.quota.email.subject": "Emne",
+    "label.quota.email.template": "Epostmal",
+    "label.quota.enddate": "Sluttdato",
+    "label.quota.endquota": "Sluttkvote",
+    "label.quota.enforcequota": "Tving Kvote",
+    "label.quota.fullsummary": "Alle kontoer",
+    "label.quota.minbalance": "Minste balanse",
+    "label.quota.remove": "Fjern Kvote",
+    "label.quota.startdate": "Startdato",
+    "label.quota.startquota": "Startkvote",
+    "label.quota.state": "Status",
+    "label.quota.statement": "Kontoutskrift",
+    "label.quota.statement.balance": "Kvotebalanse",
+    "label.quota.statement.bydates": "Kontoutskrift",
+    "label.quota.statement.quota": "Kvoteforbrukk",
+    "label.quota.statement.tariff": "Kvotetariff",
+    "label.quota.summary": "Sammendrag",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Rediger tariff",
+    "label.quota.tariff.effectivedate": "Effektiv dato",
+    "label.quota.tariff.value": "Tariffverdi",
+    "label.quota.total": "Totalt",
+    "label.quota.totalusage": "Totalbruk",
+    "label.quota.type.name": "Brukstype",
+    "label.quota.type.unit": "Bruksenhet",
+    "label.quota.usage": "Kvoteforbruk",
+    "label.quota.value": "Kvoteverdi",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx user",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx hemmelighet",
+    "label.reboot": "Restart",
+    "label.recent.errors": "Nylige feil",
+    "label.recover.vm": "Gjenopprett VM",
+    "label.redundant.router": "Redundant ruter",
+    "label.redundant.router.capability": "Redundant ruter",
+    "label.redundant.state": "Redundant tilstand",
+    "label.redundant.vpc": "Redundant VPC",
+    "label.refresh": "Oppfrisk",
+    "label.refresh.blades": "Oppdater blad(er)",
+    "label.region": "Region",
+    "label.region.details": "Regiondetaljer",
+    "label.regionlevelvpc": "Region Nivå VPC",
+    "label.reinstall.vm": "Reinstaller VM",
+    "label.related": "Relaterte",
+    "label.release.account": "Frigi fra Konto",
+    "label.release.account.lowercase": "Frigi fra konto",
+    "label.release.dedicated.cluster": "Frigjør dedikert kluster",
+    "label.release.dedicated.host": "Frigjør dedikert host",
+    "label.release.dedicated.pod": "Frigjør Dedikert Pod",
+    "label.release.dedicated.vlan.range": "Frigjør dedikerte VLAN rekke",
+    "label.release.dedicated.zone": "Frigjør dedikert sone",
+    "label.remind.later": "Påminn meg senere",
+    "label.remove.ACL": "Fjern ACL",
+    "label.remove.egress.rule": "Fjern egressregel",
+    "label.remove.from.load.balancer": "Fjerner instans fra lastbalanserer",
+    "label.remove.ingress.rule": "Fjern ingressregel",
+    "label.remove.ip.range": "Fjern IP-rekke",
+    "label.remove.ldap": "Fjern LDAP",
+    "label.remove.network.offering": "Fjern nettverkstilbud",
+    "label.remove.pf": "Fjern portvideresendingsregel",
+    "label.remove.project.account": "Fjern konto fra prosjekt",
+    "label.remove.region": "Fjern region",
+    "label.remove.rule": "Fjern regel",
+    "label.remove.ssh.key.pair": "Fjern SSH-nøkkelpar",
+    "label.remove.static.nat.rule": "Fjern statisk NAT-regel",
+    "label.remove.static.route": "Fjern statisk rute",
+    "label.remove.this.physical.network": "Fjern dette fysiske nettverk",
+    "label.remove.tier": "Fjern gren",
+    "label.remove.vm.from.lb": "Fjern VM fra lastbalanseringsregel",
+    "label.remove.vm.load.balancer": "Fjern VM fra lastbalanserer",
+    "label.remove.vmware.datacenter": "Fjern VMware datasenter",
+    "label.remove.vpc": "fjern VPC",
+    "label.remove.vpc.offering": "Fjern VPC tilbud",
+    "label.removing": "Fjerner",
+    "label.removing.user": "Fjerner Bruker",
+    "label.reource.id": "Ressurs ID",
+    "label.replace.acl": "Erstatt ACL",
+    "label.replace.acl.list": "Erstatt ACL Liste",
+    "label.required": "Påkrevd",
+    "label.requires.upgrade": "Krever oppgradering",
+    "label.reserved.ip.range": "Reservert IP-rekke",
+    "label.reserved.system.gateway": "Reservert System Gateway",
+    "label.reserved.system.ip": "Reservert System IP",
+    "label.reserved.system.netmask": "Reservert system nettmaske",
+    "label.reset.VPN.connection": "Resett VPN-tilkobling",
+    "label.reset.ssh.key.pair": "Resett SSH-nøkkelpar",
+    "label.reset.ssh.key.pair.on.vm": "Reset SSH-nøkkelpar på VM",
+    "label.resetVM": "Resett VM",
+    "label.resize.new.offering.id": "Nytt tilbud",
+    "label.resize.new.size": "Ny størrelse (GB)",
+    "label.resize.shrink.ok": "Krympe OK",
+    "label.resource": "Ressurs",
+    "label.resource.limit.exceeded": "Ressursbegrensning Overskridet",
+    "label.resource.limits": "Ressursbegrensninger",
+    "label.resource.name": "Ressursnavn",
+    "label.resource.state": "Ressurs Status",
+    "label.resources": "Ressurser",
+    "label.response.timeout.in.sec": "Respons Tidsavbrudd (sekunder)",
+    "label.restart.network": "Nettverksomstart",
+    "label.restart.required": "Omstart påkrevd",
+    "label.restart.vpc": "Omstart VPC",
+    "label.restore": "Gjenopprett",
+    "label.retry.interval": "Nyforsøk Intervall",
+    "label.review": "Gjennomgå",
+    "label.revoke.project.invite": "Tilbakekall invitasjonen",
+    "label.role": "Rolle",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Rootsertifikat",
+    "label.root.disk.controller": "Root diskkontroller",
+    "label.root.disk.offering": "Root disktilbud",
+    "label.root.disk.size": "Rotdiskstørrelse (GB)",
+    "label.router.vm.scaled.up": "RuterVM skalert opp",
+    "label.routing": "Ruting",
+    "label.routing.host": "Ruter Vert",
+    "label.rule": "Rule",
+    "label.rule.number": "Regelnummer",
+    "label.rules": "Regler",
+    "label.running.vms": "Kjørende VMer",
+    "label.s3.access_key": "Aksessnøkkel",
+    "label.s3.bucket": "Bøtte",
+    "label.s3.connection_timeout": "Tilkoblingsavbrudd",
+    "label.s3.endpoint": "Endepunkt",
+    "label.s3.max_error_retry": "Max Nyforsøk Etter Feilmelding",
+    "label.s3.nfs.path": "S3 NFS Sti",
+    "label.s3.nfs.server": "S3 NFS Server",
+    "label.s3.secret_key": "Hemmelig nøkkel",
+    "label.s3.socket_timeout": "Socket Tidsavbrudd",
+    "label.s3.use_https": "Bruk HTTPS",
+    "label.saml.enable": "Autoriser SAML SSO",
+    "label.saml.entity": "Identitets Tilbydere",
+    "label.saturday": "Lørdag",
+    "label.save": "Lagre",
+    "label.save.and.continue": "Lagre og fortsett",
+    "label.save.changes": "Lagre endringer",
+    "label.saving.processing": "Lagrer....",
+    "label.scale.up.policy": "Oppskalerings policy",
+    "label.scaledown.policy": "Nedtrappings policy",
+    "label.scaleup.policy": "Oppskalerings policy",
+    "label.scope": "Omfang",
+    "label.search": "Søk",
+    "label.secondary.ips": "Sekundære IPer",
+    "label.secondary.isolated.vlan.id": "Sekundær Isolert VLAN ID",
+    "label.secondary.staging.store": "Sekundærmellomlagringsområde",
+    "label.secondary.staging.store.details": "Sekundærmellomlagringsområde detaljer",
+    "label.secondary.storage": "Sekundærlagring",
+    "label.secondary.storage.count": "Sekundærlagrings Pool",
+    "label.secondary.storage.details": "Sekundærlagringsdetaljer",
+    "label.secondary.storage.limits": "Sekundærlagringsbregrensninger (GiB)",
+    "label.secondary.storage.vm": "Sekundærlagring VM",
+    "label.secondary.used": "Sekundærlagringsplass brukt",
+    "label.secret.key": "Hemmelig nøkkel",
+    "label.security.group": "Sikkerhetsgruppe",
+    "label.security.group.name": "Sikkerhetsgruppenavn",
+    "label.security.groups": "Sikkerhetsgrupper",
+    "label.security.groups.enabled": "Sikkerhetsgrupper Aktivert",
+    "label.select": "Velg",
+    "label.select-view": "Velg visning",
+    "label.select.a.template": "Velg en mal",
+    "label.select.a.zone": "Velg en sone",
+    "label.select.instance": "Velg instans",
+    "label.select.instance.to.attach.volume.to": "Velg instans for tildeling av volum",
+    "label.select.iso.or.template": "Velg ISO eller mal",
+    "label.select.offering": "Velg tilbud",
+    "label.select.project": "Velg prosjekt",
+    "label.select.region": "Velg region",
+    "label.select.template": "Velg Mal",
+    "label.select.tier": "Velg gren",
+    "label.select.vm.for.static.nat": "Velg instans for statisk NAT",
+    "label.sent": "Sendt",
+    "label.server": "Tjener",
+    "label.service.capabilities": "Tjeneste Evner",
+    "label.service.offering": "Tjenestetilbud",
+    "label.service.offering.details": "Tjenstetilbudsdetaljer",
+    "label.service.state": "Tjenestestatus",
+    "label.services": "Tjenester",
+    "label.session.expired": "Sesjon utløpt",
+    "label.set.default.NIC": "Sett som standard NIC",
+    "label.set.up.zone.type": "Oppsett av sonetype",
+    "label.settings": "Innstillinger",
+    "label.setup": "Oppsett",
+    "label.setup.network": "Sett opp nettverk",
+    "label.setup.zone": "Sett opp sone",
+    "label.shared": "Delt",
+    "label.show.advanced.settings": "VIs avanserte instillinger",
+    "label.show.ingress.rule": "Vis ingressregel",
+    "label.shutdown.provider": "Steng tilbyder",
+    "label.simplified.chinese.keyboard": "Forenklet kinesisk-tastatur",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Størrelse",
+    "label.skip.guide": "Jeg har brukt CloudStack tidligere. Hopp over denne veiviseren",
+    "label.smb.domain": "SMB Domene",
+    "label.smb.password": "SMB Passord",
+    "label.smb.username": "SMB Brukernavn",
+    "label.snapshot": "Øyeblikksbilde",
+    "label.snapshot.limits": "Øyeblikksbildebegrensning",
+    "label.snapshot.name": "Øyeblikksbildenavn",
+    "label.snapshot.s": "Øyeblikksbilder",
+    "label.snapshot.schedule": "Sett Opp Gjentagende øyeblikksbilder",
+    "label.snapshots": "Øyeblikksbilder",
+    "label.sockets": "CPU Sokkel",
+    "label.source.ip.address": "Kilde IP-adresse",
+    "label.source.nat": "Kilde NAT",
+    "label.source.nat.supported": "SourceNAT støttet",
+    "label.source.port": "Kildeport",
+    "label.specify.IP.ranges": "Spesifiser IP-rekker",
+    "label.specify.vlan": "Spesifiser VLAN",
+    "label.specify.vxlan": "Spesifiser VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX detaljer",
+    "label.ssh.key.pair": "SSH-nøkkelpar",
+    "label.ssh.key.pair.details": "SSH-nøkkelpardetaljer",
+    "label.ssh.key.pairs": "SSH nøkkelpar",
+    "label.standard.us.keyboard": "Standard (Amerikansk) tastatur",
+    "label.start.IP": "Start-IP",
+    "label.start.lb.vm": "Start LB VM",
+    "label.start.port": "Start port",
+    "label.start.reserved.system.IP": "Første reserverte system IP",
+    "label.start.vlan": "Start VLAN",
+    "label.start.vxlan": "Start VXLAN",
+    "label.state": "Status",
+    "label.static.nat": "Statistk NAT",
+    "label.static.nat.enabled": "Statisk NAT aktivert",
+    "label.static.nat.to": "Statisk NAT til",
+    "label.static.nat.vm.details": "Statisk NAT VM Detaljer",
+    "label.static.routes": "Statiske ruter",
+    "label.statistics": "Statistikk",
+    "label.status": "Status",
+    "label.step.1": "Steg 1",
+    "label.step.1.title": "Steg 1: <strong>Velg en mal</strong>",
+    "label.step.2": "Steg 2",
+    "label.step.2.title": "Steg 2: <strong>Tjenestetilbud</strong>",
+    "label.step.3": "Steg 3",
+    "label.step.3.title": "Steg 3: <strong id=\"step3_label\">Velg et disktilbud</strong>",
+    "label.step.4": "Steg 4",
+    "label.step.4.title": "Steg 4: <strong>Nettverk</strong>",
+    "label.step.5": "Steg 5",
+    "label.step.5.title": "Steg 5: <strong>Repetere</strong>",
+    "label.stickiness": "Klebrighet",
+    "label.stickiness.method": "Klebrighetmetode",
+    "label.sticky.cookie-name": "Cookie navn",
+    "label.sticky.domain": "Domene",
+    "label.sticky.expire": "Utløper",
+    "label.sticky.holdtime": "Oppholds tid",
+    "label.sticky.indirect": "Indirekte",
+    "label.sticky.length": "Lengde",
+    "label.sticky.mode": "Modus",
+    "label.sticky.name": "Sticky Navn",
+    "label.sticky.nocache": "Ingen cache",
+    "label.sticky.postonly": "Send bare",
+    "label.sticky.prefix": "Prefiks",
+    "label.sticky.request-learn": "Lær Forespørsel",
+    "label.sticky.tablesize": "Tabellstørrelse",
+    "label.stop": "Stopp",
+    "label.stop.lb.vm": "Stop LB VM",
+    "label.stopped.vms": "Stoppede VMer",
+    "label.storage": "Lagring",
+    "label.storage.pool": "Lagringspool",
+    "label.storage.tags": "Merkelapper for lagring",
+    "label.storage.traffic": "Lagringstrafikk",
+    "label.storage.type": "Lagringstype",
+    "label.subdomain.access": "Tilgang for underdomene",
+    "label.submit": "Send",
+    "label.submitted.by": "[Innsendt av: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Vellykket",
+    "label.sunday": "Søndag",
+    "label.super.cidr.for.guest.networks": "Super CIDR for gjestenettverk",
+    "label.supported.services": "Støttede Tjenester",
+    "label.supported.source.NAT.type": "Supporterte kilde-NAT typer",
+    "label.supportsstrechedl2subnet": "Støtter strekket L2 subnett",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "Suspender prosjekt",
+    "label.switch.type": "Svitsjtype",
+    "label.system.capacity": "Systemkapasistet",
+    "label.system.offering": "Systemtilbud",
+    "label.system.offering.for.router": "Systemtilbud for Rutere",
+    "label.system.service.offering": "Systemtjenestetilbud",
+    "label.system.service.offering.details": "Systemtjenestetilbudsdetaljer",
+    "label.system.vm": "System VM",
+    "label.system.vm.details": "SystemVM-detaljer",
+    "label.system.vm.scaled.up": "SystemVM skalert opp",
+    "label.system.vm.type": "SystemVM-type",
+    "label.system.vms": "System VMer",
+    "label.system.wide.capacity": "Systemomfattende kapasistet",
+    "label.tag.key": "Merkelapp Key",
+    "label.tag.value": "Tag Verdi",
+    "label.tagged": "Tagget",
+    "label.tags": "Tagger",
+    "label.target.iqn": "Mål IQN",
+    "label.task.completed": "Oppgave utført",
+    "label.template": "Mal",
+    "label.template.limits": "Malbegrensninger",
+    "label.tftp.root.directory": "TFTP rot-mappe",
+    "label.theme.default": "Standardtema",
+    "label.theme.grey": "Tilpasset - Grå",
+    "label.theme.lightblue": "Tilpasset - Lys Grå",
+    "label.threshold": "Terskel",
+    "label.thursday": "Torsdag",
+    "label.tier": "Gren",
+    "label.tier.details": "VPC-gren detaljer",
+    "label.time": "Tid",
+    "label.time.colon": "Time:",
+    "label.time.zone": "Tidssone",
+    "label.timeout": "Tidsavbrudd",
+    "label.timeout.in.second ": " Tidsavbrudd (sekunder)",
+    "label.timezone": "Tidssone",
+    "label.timezone.colon": "Tidssone:",
+    "label.token": "Kode",
+    "label.total.CPU": "Totalt CPU",
+    "label.total.cpu": "Totalt CPU",
+    "label.total.hosts": "Totalt Verter",
+    "label.total.memory": "Totalt minne",
+    "label.total.of.ip": "Totalt IP-adresser",
+    "label.total.of.vm": "Totalt av VM",
+    "label.total.storage": "Totalt lagring",
+    "label.total.virtual.routers": "Total antall virtuelle rutere",
+    "label.total.virtual.routers.upgrade": "Totalt antall virtuelle routere som trenger oppgradering",
+    "label.total.vms": "Totalt VMs",
+    "label.traffic.label": "Trafikketikett",
+    "label.traffic.type": "Trafikktype",
+    "label.traffic.types": "Trafikktyper",
+    "label.tuesday": "Tirsdag",
+    "label.type": "Type",
+    "label.type.id": "Type ID",
+    "label.type.lower": "type",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK-tastatur",
+    "label.unavailable": "Utilgjengelig",
+    "label.unhealthy.threshold": "Usunn Terskel",
+    "label.unlimited": "Ubegrenset",
+    "label.untagged": "Utagget",
+    "label.update.project.resources": "Oppdater prosjektressurser",
+    "label.update.ssl": " SSL-sertifikat",
+    "label.update.ssl.cert": " SSL-sertifikat",
+    "label.updating": "Oppdaterer",
+    "label.upgrade.required": "Oppgradering er påkrevd",
+    "label.upgrade.router.newer.template": "Oppgrader ruter til nyere mal",
+    "label.upload": "Last opp",
+    "label.upload.from.local": "Last opp fra lokal",
+    "label.upload.template.from.local": "Last opp mal fra lokal",
+    "label.upload.volume": "Last opp volum",
+    "label.upload.volume.from.local": "Last opp volum fra lokal",
+    "label.upload.volume.from.url": "Last opp volum fra URL",
+    "label.url": "URL",
+    "label.usage.interface": "Brukergrensesnitt",
+    "label.usage.sanity.result": "Forbruks Tilregnelighet Resultat",
+    "label.usage.server": "Forbruksserver",
+    "label.usage.type": "Brukstype",
+    "label.usage.unit": "Enhet",
+    "label.use.vm.ip": "Bruk VM IP:",
+    "label.use.vm.ips": "Bruk VM IPer",
+    "label.used": "Brukt",
+    "label.user": "Bruker",
+    "label.user.data": "Brukerdata",
+    "label.user.details": "Brukerdetaljer",
+    "label.user.vm": "Bruker VM",
+    "label.username": "Brukernavn",
+    "label.username.lower": "brukernavn",
+    "label.users": "Brukere",
+    "label.vSwitch.type": "vSwitch type",
+    "label.value": "Verdi",
+    "label.vcdcname": "vCenter DC navn",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter Klynge",
+    "label.vcenter.datacenter": "vCenter Datacenter",
+    "label.vcenter.datastore": "vCenter Datastore",
+    "label.vcenter.host": "vCenter Vert",
+    "label.vcenter.password": "vCenter passord",
+    "label.vcenter.username": "vCenter brukernavn",
+    "label.vcipaddress": "vCenter IP-adresse",
+    "label.version": "Versjon",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Maks oppløsning",
+    "label.vgpu.max.vgpu.per.gpu": "VGPUs per GPU",
+    "label.vgpu.remaining.capacity": "Gjenstående kapasitet",
+    "label.vgpu.type": "vGPU type",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Vis",
+    "label.view.all": "Vis alle",
+    "label.view.console": "Se konsoll",
+    "label.view.more": "Vis mer",
+    "label.view.secondary.ips": "Se sekundære IPer",
+    "label.viewing": "Viser",
+    "label.virtual.appliance": "Virtuellt Apparat",
+    "label.virtual.appliance.details": "Virtuelt apparat detaljer",
+    "label.virtual.appliances": "Virtuelle Apparater",
+    "label.virtual.machine": "Virtuell Maskin",
+    "label.virtual.machines": "Virtuelle Maskiner",
+    "label.virtual.network": "Virtuelt-nettverk",
+    "label.virtual.networking": "Virtuelt Nettverk",
+    "label.virtual.router": "Virtuell ruter",
+    "label.virtual.routers": "Virtuelle rutere",
+    "label.virtual.routers.group.account": "Virtuelle rutere gruppert på konto",
+    "label.virtual.routers.group.cluster": "Virtuelle rutere gruppert på kluster",
+    "label.virtual.routers.group.pod": "Virtuelle rutere gruppert på pod",
+    "label.virtual.routers.group.zone": "Virtuelle rutere gruppert på sone",
+    "label.vlan": "VLAN/VNI",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI Rekke",
+    "label.vlan.range.details": "VLAN-rekke detaljer",
+    "label.vlan.ranges": "VLAN-rekke(r)",
+    "label.vlan.vni.range": "VLAN/VNI Rekke",
+    "label.vlan.vni.ranges": "VLAN/VNI Rekke(r)",
+    "label.vm.add": "Legg til Instans",
+    "label.vm.destroy": "Destruer",
+    "label.vm.display.name": "Visningsnavn for VM",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP-adresse",
+    "label.vm.name": "VM-navn",
+    "label.vm.password": "Passord til VM er",
+    "label.vm.reboot": "Restart",
+    "label.vm.start": "Start",
+    "label.vm.state": "VM-status",
+    "label.vm.stop": "Stopp",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMer",
+    "label.vmsnapshot": "VM Øyeblikksbilder",
+    "label.vmsnapshot.current": "isCurrent",
+    "label.vmsnapshot.memory": "Øyeblikksbilde av minne",
+    "label.vmsnapshot.parentname": "Forelder",
+    "label.vmsnapshot.type": "Type",
+    "label.vmware.datacenter.id": "VMware datasenter ID",
+    "label.vmware.datacenter.name": "VMware datasenternavn",
+    "label.vmware.datacenter.vcenter": "VMware datasenter vcenter",
+    "label.vmware.traffic.label": "VMware trafikketikett",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC enheter",
+    "label.volatile": "volatil",
+    "label.volgroup": "Volumgruppe",
+    "label.volume": "Volum",
+    "label.volume.details": "Volumdetaljer",
+    "label.volume.limits": "Volumbegrensninger",
+    "label.volume.migrated": "Volum migrert",
+    "label.volume.name": "Volumnavn",
+    "label.volumes": "Volumer",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Distribuert VPC router",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "VPC tilbud",
+    "label.vpc.offering.details": "VPC tilbudsdetaljer",
+    "label.vpc.router.details": "VPC ruterdetaljer",
+    "label.vpc.supportsregionlevelvpc": "Støtter Region Nivå VPC",
+    "label.vpc.virtual.router": "VPC virtuell ruter",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN Kundegateway",
+    "label.vpn.force.encapsulation": "Tving UDP innkapsling av ESP-pakker",
+    "label.vsmctrlvlanid": "Kontroll VLAN ID",
+    "label.vsmpktvlanid": "Pakke VLAN ID",
+    "label.vsmstoragevlanid": "Lagrings VLAN ID",
+    "label.vsphere.managed": "Administrert Av vSphere",
+    "label.vswitch.name": "vSwitch navn",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN-rekke",
+    "label.waiting": "Venter",
+    "label.warn": "Varsle",
+    "label.warn.upper": "WARN",
+    "label.warning": "Advarsel",
+    "label.wednesday": "Onsdag",
+    "label.weekly": "Ukentlig",
+    "label.welcome": "Velkommen",
+    "label.welcome.cloud.console": "Velkommen til administrasjonskonsollet",
+    "label.what.is.cloudstack": "Hva er CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Original XS versjon er 6.1+",
+    "label.xenserver.traffic.label": "XenServer trafikketikett",
+    "label.yes": "Ja",
+    "label.zone": "Sone",
+    "label.zone.dedicated": "Dedikert sone",
+    "label.zone.details": "Sonedetaljer",
+    "label.zone.id": "Sone ID",
+    "label.zone.lower": "Sone",
+    "label.zone.name": "Sonenavn",
+    "label.zone.step.1.title": "Steg 1: <strong>Velg et nettverk</strong>",
+    "label.zone.step.2.title": "Steg 2: <strong>Legg til en sone</strong>",
+    "label.zone.step.3.title": "Steg 3: <strong>Legg til en pod</strong>",
+    "label.zone.step.4.title": "Steg 4: <strong>Legg til en IP-rekke</strong>",
+    "label.zone.type": "Sonetype",
+    "label.zone.wide": "Sone omfattende",
+    "label.zoneWizard.trafficType.guest": "Gjest: Trafikk mellom brukeres virtuelle maskiner",
+    "label.zoneWizard.trafficType.management": "Administrasjon: Trafikk mellom CloudStacks interne ressurser, inkludert eventuelle komponenter som kommuniserer med administrasjonsservere, som verter og CloudStack systemVMer",
+    "label.zoneWizard.trafficType.public": "Offentlig: nettverkstrafikk mellom internet og VMs i CloudStack.",
+    "label.zoneWizard.trafficType.storage": "Lagring: Trafikk mellom primær og sekundærlagringsservere, slik som VM-maler og øyeblikksbilder.",
+    "label.zones": "Soner",
+    "managed.state": "Administrert Status",
+    "message.XSTools61plus.update.failed": "Feilet å oppdatere original XS versjon er 6.1+ feltet. Feil:",
+    "message.Zone.creation.complete": "Opprettelsen av sonen utført",
+    "message.acquire.ip.nic": "Vennligst bekreft at du vil allokere en ny sekundær IP for dette nettverkskortet. <br />NB: Du må manuelt konfigurere den nye sekundær-IPen i den virtuelle maskinen.",
+    "message.acquire.new.ip": "Vennligst bekreft at du ønsker å anskaffe en ny IP for dette nettverket",
+    "message.acquire.new.ip.vpc": "Vennligst bekreft at du ønsker å hente en ny IP for denne VPC.",
+    "message.acquire.public.ip": "Vennligst velg en sone som du vil hente ny IP fra.",
+    "message.action.cancel.maintenance": "Din vert har vellykket blitt kansellert for vedlikehold. Denne prosessen kan ta opptil flere minutter.",
+    "message.action.cancel.maintenance.mode": "Vennligst bekreft at du ønsker å kansellere dette vedlikeholdet.",
+    "message.action.change.service.warning.for.instance": "Din instans må være stopped før du forsøker å endret nåværende tjenestetilbud.",
+    "message.action.change.service.warning.for.router": "Din ruter må være stoppet før du kan forsøke å endre nåværende tjenestetilbud.",
+    "message.action.delete.ISO": "Vennligst bekreft at du vil slette denne ISO.",
+    "message.action.delete.ISO.for.all.zones": "Denne ISO er brukt av alle soner. Vennligst bekreft at du ønsker å slette den fra alle soner.",
+    "message.action.delete.cluster": "Vennligst bekreft at du vil slette denne klyngen.",
+    "message.action.delete.disk.offering": "Vennligst bekreft at du ønsker å slette dette disktilbudet.",
+    "message.action.delete.domain": "Vennligst bekreft at du vil slette dette domenet.",
+    "message.action.delete.external.firewall": "Vennligst bekreft at du vil fjerne denne eksterne brannmuren. Advarsel: hvis du planlegger å legge tilbake den samme eksterne brannmuren, må du resette bruksdataene på enheten.",
+    "message.action.delete.external.load.balancer": "Vennligst bekreft at du ønsker å fjerne denne eksterne lastbalansereren. Advarsel: hvis du planlegger å legge til den samme eksterne lastbalansereren senere, må du resette bruksdataene på enheten.",
+    "message.action.delete.ingress.rule": "Vennligst bekreft at du ønsker å slette denne inngående regel.",
+    "message.action.delete.network": "Vennligst bekreft at du vil slette dette nettverket.",
+    "message.action.delete.nexusVswitch": "Vennligst bekreft at du ønsker å slette denne nexus 1000v",
+    "message.action.delete.nic": "Vennligst bekreft at du vil fjerne dette NIC, noe som også vil fjerne det assosierte nettverket fra VMen.",
+    "message.action.delete.physical.network": "Vennligst bekreft at du ønsker å slette dette fysiske nettverk",
+    "message.action.delete.pod": "Vennligst bekreft at du vil slette denne pod.",
+    "message.action.delete.primary.storage": "Vennligst bekreft at du ønsker å slette denne primærlagring.",
+    "message.action.delete.secondary.storage": "Vennligst bekreft at du ønsker å slette denne sekundærlagring.",
+    "message.action.delete.security.group": "Vennligst bekreft at du ønsker å slette denne sikkerhetsgruppe.",
+    "message.action.delete.service.offering": "Vennligst bekreft at du ønsker å slette dette tjenestetilbud.",
+    "message.action.delete.snapshot": "Vennligst bekreft at du ønsker å slette dette øyeblikksbildet.",
+    "message.action.delete.system.service.offering": "Vennligst bekreft at du ønsker å slette dette system-tjenestetilbud.",
+    "message.action.delete.template": "Vennligst bekreft at du vil slette denne mal.",
+    "message.action.delete.template.for.all.zones": "Denne mal er brukt av alle soner. Vennligst bekreft at du ønsker å slette den fra alle soner.",
+    "message.action.delete.volume": "Vennligst bekreft at du vil slette dette volumet.",
+    "message.action.delete.zone": "Vennligst bekreft at du ønsker å slette denne sone.",
+    "message.action.destroy.instance": "Vennligst bekreft at du ønsker å fjerne denne instansen.",
+    "message.action.destroy.systemvm": "Vennligst bekreft at du ønsker å ødelegge denne System VM.",
+    "message.action.disable.cluster": "Vennligst bekreft at du ønsker å detaktivere denne klyngen.",
+    "message.action.disable.nexusVswitch": "Vennligst bekreft at du ønsker å deaktivere denne nexus 1000v",
+    "message.action.disable.physical.network": "Vennligst bekreft at du ønsker å deaktivere dette fysiske nettverket.",
+    "message.action.disable.pod": "Vennligst bekreft at du ønsker å aktivere denne poden",
+    "message.action.disable.static.NAT": "Vennligst bekreft at du ønsker å deaktivere statisk NAT.",
+    "message.action.disable.zone": "Vennligst bekreft at du ønsker å deaktivere denne sonen.",
+    "message.action.download.iso": "Vennligst bekreft at du ønsker å laste ned denne ISO.",
+    "message.action.download.template": "Vennligst bekreft at du ønsker å laste ned denne malen.",
+    "message.action.downloading.template": "Laster ned mal.",
+    "message.action.enable.cluster": "Vennligst bekreft at du ønsker å aktivere denne klyngen.",
+    "message.action.enable.maintenance": "Din vert har vellykket blitt forberedt for vedlikehold. Denne prosessen kan ta opptil flere minutter.",
+    "message.action.enable.nexusVswitch": "Vennligst bekreft at du ønsker å aktivere denne nexus 1000v",
+    "message.action.enable.physical.network": "Vennligst bekreft at du ønsker å aktivere dette fysiske nettverket.",
+    "message.action.enable.pod": "Vennligst bekreft at du ønsker å aktivere denne poden.",
+    "message.action.enable.zone": "Vennligst bekreft at du ønsker å aktivere denne sonen.",
+    "message.action.expunge.instance": "Vennligst bekreft at du vil permanent slette denne instansen.",
+    "message.action.force.reconnect": "Din vert har vellykket blitt tvunget til å koble til på nytt. Denne prosessen kan ta noen minutter.",
+    "message.action.host.enable.maintenance.mode": "Aktivering av vedlikeholdsmodus vil forårsake migrering av alle kjørende instanser på denne vert til hvilken som helst annen tilgjengelig vert.",
+    "message.action.instance.reset.password": "Vennligst bekreft ay du ønsker å endre ROOT-passordet for denne virtuelle maskin.",
+    "message.action.manage.cluster": "Vennligst bekreft at du ønsker å administrere klyngen.",
+    "message.action.primarystorage.enable.maintenance.mode": "Advarsel: setting av primærlagring i vedlikeholdsmodus vil forårsake at alle VMer som benytter volum fra det vil bli stoppet. Ønsker du å fortsette?",
+    "message.action.reboot.instance": "Vennligst bekreft at du vill restarte denne instansen.",
+    "message.action.reboot.router": "Alle tjenester levert fra denne virtuelle ruter vil bli avbrutt. Vennligst bekreft at du ønsker å restarte denne ruteren.",
+    "message.action.reboot.systemvm": "Vennligst bekreft at du vil restarte denne system VM",
+    "message.action.release.ip": "Vennligst bekreft at du ønsker å frigi denne IP.",
+    "message.action.remove.host": "Vennligst bekreft at du vil gjerne denne tjeneren.",
+    "message.action.reset.password.off": "Din instans støtter foreløpig ikke denne funksjonen.",
+    "message.action.reset.password.warning": "Din instans må være stoppet før man forsøker å bytte nåværende passord.",
+    "message.action.restore.instance": "Vennligst bekreft at du ønsker å gjenopprette denne instansen.",
+    "message.action.revert.snapshot": "Vennligst bekreft at du ønsker å gjenopprette volumet til dette øyeblikksbildet.",
+    "message.action.start.instance": "Vennligst bekreft at du ønsker å starte denne instansen.",
+    "message.action.start.router": "Vennligst bekreft at du vil starte denne ruter.",
+    "message.action.start.systemvm": "Vennligst bekreft at du vil starte denne system VM.",
+    "message.action.stop.instance": "Vennligst bekreft at du vil stoppe denne instansen.",
+    "message.action.stop.router": "Alle tjenester levert fra denne virtuelle ruter vil bli avbrutt. Vennligst bekreft at du ønsker å stoppe denne ruteren.",
+    "message.action.stop.systemvm": "Vennligst bekreft at du vil stoppe denne system VM.",
+    "message.action.take.snapshot": "Vennligst bekreft at du vil ta et øyeblikksbilde av dette volumet.",
+    "message.action.unmanage.cluster": "Vennligst bekreft at du ikke ønsker å administere klyngen.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Vennligst bekreft at du ønsker å slette dette VM øyeblikksbildet.",
+    "message.action.vmsnapshot.revert": "Tilbakestill VM øyeblikksbilde",
+    "message.activate.project": "Er du sikker på du ønsker å aktivere dette prosjektet?",
+    "message.add.VPN.gateway": "Vennligst bekreft at du ønsker å legge til en VPN Gateway",
+    "message.add.cluster": "Legg til en hypervisor-administrert klynge for sone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Legg til en hypervisor-administrert klynge for sone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Vennligst spesifiser følgende parametere for å legge til et nytt disktjenestetilbud",
+    "message.add.domain": "Vennligst bekreft underdomenet du ønsker å opprette under dette domenet",
+    "message.add.firewall": "Legg en brannmur til sonen",
+    "message.add.guest.network": "Vennligst bekreft at du ønsker å legge til gjestenettverk",
+    "message.add.host": "Vennligst spesifiser følgende parametere for å legge til en ny vert",
+    "message.add.ip.range": "Legg til en IP-rekke til offentlige nettverk i sonen",
+    "message.add.ip.range.direct.network": "Legg til en IP-rekke til et direkte-nettverk <b><span id=\"directnetwork_name\"></span></b> i sone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Legg til IP-addresser til pod: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Legg til lastbalanserer i sone",
+    "message.add.load.balancer.under.ip": "Lastbalanseringsregelen har blitt lagt til under IP:",
+    "message.add.network": "Legg til nytt nettverk for sone: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Vennligst spesifiser følgende påkrevd informasjon for å legge til en ny gateway i dette VPC nettverket.",
+    "message.add.pod": "Legg til ny pod for sone <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Hver sone må inneholde en eller flere pods, og vi legger til den første poden nå. En pod inneholder verter og primærlagring, som du legger til i et senere steg.Først, konfigurer en rekke med reserverte IP-adresser for CloudStacks interne administrasjonstrafikk. Den reserverte IP-rekken må være unik for hver sone i en sky.",
+    "message.add.primary": "Vennligst spesifiser følgende paramtere for å legge til ny hovedlagring.",
+    "message.add.primary.storage": "Legg til ny primærlagring for sone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Vennligst spesifiser følgende påkrevd informasjon for å legge til en ny region.",
+    "message.add.secondary.storage": "Legg til ny lagring for sone <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Vennligst skriv inn følgende data for å legge til et nytt datakraftstilbud.",
+    "message.add.system.service.offering": "Vennligst skriv inn følgende data for å legge til et nytt systemtjenestetilbud.",
+    "message.add.template": "Vennligst skriv inn følgende data for å opprette din nye mal",
+    "message.add.volume": "Vennligst skriv inn følgende data for å legge til et nytt volum.",
+    "message.added.new.nuage.vsp.controller": "La til ny Nuage Vsp-kontroller",
+    "message.added.vpc.offering": "La til VPC tilbud",
+    "message.adding.Netscaler.device": "Legg til NetScaler-enhet",
+    "message.adding.Netscaler.provider": "Legger til Netscaler tilbyder",
+    "message.adding.host": "Legger til vert",
+    "message.additional.networks.desc": "Vennligst velg tilleggsnettverk som din virtuelle instans vil være tilkoblet.",
+    "message.admin.guide.read": "For VMware-baserte VMer, vennligst les avsnittet om dynamisk skalering i administrasjonsdokumentasjonen før skalering. Ønsker du å fortsette?,",
+    "message.advanced.mode.desc": "Velg denne nettverksmodellen hvis du ønsker å aktivere VLAN-støtte. Denne nettverksmodellen gir den største fleksibiliteten ved å tillate administatorer å lage egne nettverkstilbud som å tilby brannmur, vpn og lastbalanserings-støtte så vel som å tillate direkte mot virtuelt nettverk.",
+    "message.advanced.security.group": "Velg dette hvis du ønsker å bruke sikkerhetsgrupper for å tilby gjeste-VM isolering.",
+    "message.advanced.virtual": "Velg dette hvis du ønsker å bruke soneomfattende VLAN for å tilby gjeste-VM isolering.",
+    "message.after.enable.s3": "S3-støttet sekundærlagring konfigurert. Merk: Når du forlater denne siden så vil det ikke være mulig å konfigurere S3 på nytt.",
+    "message.after.enable.swift": "Swift konfigurert. Merk: Når du forlater denne siden så vil det ikke være mulig konfigurere Swift på nytt.",
+    "message.alert.state.detected": "Alarm oppdaget",
+    "message.allow.vpn.access": "Vennligst skriv inn et brukernavn og passord for brukeren du til gi VPN-tilgang.",
+    "message.apply.snapshot.policy": "Du har oppdatert den nåværende øyeblikksbilde policyen.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Vennligst bekreft at du vil tildele ISOen til denne virtuelle instans.",
+    "message.attach.volume": "Vennligst fyll inn følgende data for å tilknytte et nytt volum. Hvis du tilknytter et diskvolum til en Windows-basert virtuell maskin så er du nødt til å restarte instansen for å se den tilknyttede disken.",
+    "message.basic.mode.desc": "Velg denne nettverksmodellen hvis du <b>*<u>ikke</u>*</b> vil aktivere VLAN støtte. Alle virtuelle instnanser opprettet under denne nettverksmodellen vil bli tildelt en IP direkte fra nettverket og sikkerhetsgrupper blir benyttet for å tilby sikkerhet og segregering.",
+    "message.change.ipaddress": "Vennligst bekreft at du ønsker å endre IP-adressen til dette nettverkskortet på maskinen.",
+    "message.change.offering.confirm": "Vennligst bekreft at du vil forandre servicetilbudet for denne virtuelle maskinen.",
+    "message.change.password": "Vennligst endre ditt passord",
+    "message.cluster.dedicated": "Dedikert Til Klynge",
+    "message.cluster.dedication.released": "Klynge dedikering frigjort",
+    "message.configure.all.traffic.types": "Du har flere fysiske nett; vennligst konfigurer etiketter for hver trafikktype ved å klikke på Rediger-knappen.",
+    "message.configure.firewall.rules.allow.traffic": "Konfigurer reglene for å tillate trafikk",
+    "message.configure.firewall.rules.block.traffic": "Konfigurer reglene for å blokkere trafikk",
+    "message.configure.ldap": "Bekreft at du ønsker å konfigurere LDAP.",
+    "message.configuring.guest.traffic": "Konfigurerer gjestetrafikk",
+    "message.configuring.physical.networks": "Konfigurer fysisk nettverk",
+    "message.configuring.public.traffic": "Konfigurerer offentlig trafikk",
+    "message.configuring.storage.traffic": "Konfigurerer lagringstrafikk",
+    "message.confirm.action.force.reconnect": "Vennligst bekreft at du ønsker å tvinge et nytt tilkoblingsforsøk for denne vert.",
+    "message.confirm.add.vnmc.provider": "Vennligst bekreft at du ønsker å installere denne VNMC tilbyderen.",
+    "message.confirm.archive.alert": "Vennlgist bekreft at du vil arkivere denne varslingen.",
+    "message.confirm.archive.event": "Vennligst bekreft at du ønsker å arkivere denne hendelsen.",
+    "message.confirm.archive.selected.alerts": "Vennligst bekreft at du ønsker å arkivere valgte varsler",
+    "message.confirm.archive.selected.events": "Vennligst bekreft at du vil arkivere valgte hendelser",
+    "message.confirm.attach.disk": "Er du sikker på at du vil tildele disk?",
+    "message.confirm.create.volume": "Er du sikker på at du vil opprette volum?",
+    "message.confirm.current.guest.CIDR.unchanged": "Ønsker du å beholde nåværende gjestenettverks CIDR uendret?",
+    "message.confirm.dedicate.cluster.domain.account": "Bekreft at du vil dedikere denne klyngen til et domene / en konto?",
+    "message.confirm.dedicate.host.domain.account": "Ønsker du virkelig å dedikere denne verten til et domene/konto?",
+    "message.confirm.dedicate.pod.domain.account": "Ønsker du virkelig å dedikere denne pod til et domene/konto?",
+    "message.confirm.dedicate.zone": "Ønsker du virkelig å dedikere denne sonen til et domene/konto?",
+    "message.confirm.delete.BigSwitchBcf": "Vennligst bekreft at du ønsker å slette denne BigSwitch BCF Controlleren?",
+    "message.confirm.delete.BrocadeVcs": "Vennligst bekreft at du vil slette denne Brocade Vcs svitsjen",
+    "message.confirm.delete.F5": "Vennligst bekreft at du ønsker å slette F5",
+    "message.confirm.delete.NetScaler": "Vennligst bekreft at du ønsker å slette Netscaler",
+    "message.confirm.delete.NuageVsp": "Vennligst bekreft at du ønsker å slette Nuage Virtualized Service Directory",
+    "message.confirm.delete.PA": "Vennligst bekreft at du vil slette Palo Alto",
+    "message.confirm.delete.SRX": "Vennligst bekreft at du ønsker å slette SRX",
+    "message.confirm.delete.acl.list": "Er du sikker på at du ønsker å slette denne ACL listen?",
+    "message.confirm.delete.alert": "Er du sikker på at du vil slette denne varslingen ?",
+    "message.confirm.delete.baremetal.rack.configuration": "Vennligst bekreft at du ønsker å slette Bare Metal-konfigurasjonen.",
+    "message.confirm.delete.ciscoASA1000v": "Vennligst bekreft at du vil slette CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Vennligst bekreft at du vil slette CiscoVNMC",
+    "message.confirm.delete.internal.lb": "Vennligst bekreft at du ønsker å slette Intern LB",
+    "message.confirm.delete.secondary.staging.store": "Vennligst bekreft at du vil slette dette sekundærmellomlagringsområde.",
+    "message.confirm.delete.ucs.manager": "Vennligst bekreft at du ønsker å slette UCS Manager",
+    "message.confirm.destroy.router": "Vennligst bekreft at du ønsker å fjerne denne ruteren",
+    "message.confirm.disable.host": "Vennligst bekreft at du vil detaktivere denne vert",
+    "message.confirm.disable.network.offering": "Er du sikker på at du vil deaktivere dette nettverkstilbudet?",
+    "message.confirm.disable.provider": "Vennligst bekreft at du ønsker å deaktivere denne tilbyderen",
+    "message.confirm.disable.vnmc.provider": "Vennligst bekreft at du ønsker å deaktivere denne VNMC tilbyderen.",
+    "message.confirm.disable.vpc.offering": "Er du sikker på at du vil deaktivere dette VPC tilbudet?",
+    "message.confirm.enable.host": "Vennligst bekreft at du ønsker å aktivere verten",
+    "message.confirm.enable.network.offering": "Vil du aktivere dette nettverkstilbudet?",
+    "message.confirm.enable.provider": "Vennligst bekreft at du ønsker å aktivere denne tilbyderen",
+    "message.confirm.enable.vnmc.provider": "Vennligst bekreft at du ønsker å aktivere denne VNMC tilbyderen.",
+    "message.confirm.enable.vpc.offering": "Er du sikker på at du vil aktivere dette VPC nettverkstilbudet?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Vennligst bekreft at du ønsker å delta i dette prosjektet.",
+    "message.confirm.migrate.volume": "Ønsker du å migrere dette volumet?",
+    "message.confirm.refresh.blades": "Vennligst bekreft at du vil oppdatere blade status.",
+    "message.confirm.release.dedicate.vlan.range": "Vennligst bekreft at du vil frigi denne dedierte VLAN-rekken",
+    "message.confirm.release.dedicated.cluster": "Vil du aktivere denne dedikerte klyngen?",
+    "message.confirm.release.dedicated.host": "Ønsker du å frigi denne dedikerte verten ?",
+    "message.confirm.release.dedicated.pod": "Ønsker du å frigi denne dedikerte poden ?",
+    "message.confirm.release.dedicated.zone": "Ønsker du å frigi denne dedikerte sonen ?",
+    "message.confirm.remove.IP.range": "Vennligst bekreft du til fjerne denne IP-rangen.",
+    "message.confirm.remove.event": "Er du sikker på at du vil fjerne denne hendelsen?",
+    "message.confirm.remove.load.balancer": "Vennligst bekreft at du vil fjerne VM fra lastbalanserer",
+    "message.confirm.remove.network.offering": "Er du sikker på at du vil fjerne dette nettverkstilbudet?",
+    "message.confirm.remove.selected.alerts": "Vennligst bekreft at du ønsker å fjerne valgte alarmer",
+    "message.confirm.remove.selected.events": "Vennligst bekreft at du vil fjerne valgte hendelser",
+    "message.confirm.remove.vmware.datacenter": "Vennligst bekreft at du vil fjerne dette VMWare data senteret",
+    "message.confirm.remove.vpc.offering": "Er du sikker på at du vil fjerne dette VPC tilbudet?",
+    "message.confirm.replace.acl.new.one": "Vil du erstatte ACL med en ny?",
+    "message.confirm.scale.up.router.vm": "Ønsker du å skalere opp denne Ruter-VMen?",
+    "message.confirm.scale.up.system.vm": "Ønsker du å skalere opp denne system VM?",
+    "message.confirm.shutdown.provider": "Vennligst bekreft at du ønsker å stenge denne tilbyderen",
+    "message.confirm.start.lb.vm": "Vennligst bekreft at du vil starte LB VM",
+    "message.confirm.stop.lb.vm": "Vennligst bekreft at du vil stoppe LB VM",
+    "message.confirm.upgrade.router.newer.template": "Vennligst bekreft at du vil oppgradere ruter til å bruke nyere mal",
+    "message.confirm.upgrade.routers.account.newtemplate": "Vennligst bekreft at du vil oppgradere alle rutere i denne kontoen til å bruke en nyere mal",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Vennligst bekreft at du vil oppgradere alle rutere i denne klyngen til å bruke en nyere mal",
+    "message.confirm.upgrade.routers.newtemplate": "Vennligst bekreft at du vil oppgradere alle rutere i denne sonen til å bruke en nyere mal",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Vennligst bekreft at du vil oppgradere alle rutere i denne pod til å bruke en nyere mal",
+    "message.copy.iso.confirm": "Vennligst bekreft at du vil kopiere din ISO til",
+    "message.copy.template": "Kopier template <b id=\"copy_template_name_text\">XXX</b> fra sone <b id=\"copy_template_source_zone_text\"></b> til",
+    "message.copy.template.confirm": "Ønsker du å kopiere malen?",
+    "message.create.template": "Er du sikker på at du ønsker å lage malen?",
+    "message.create.template.vm": "Lage VM fra template <b id=\"p_name\"></b>",
+    "message.create.template.volume": "Vennligst spesifiser følgende informasjon før opprettelse av en mal for ditt diskvolum: <b><span id=\"volume_name\"></span></b>. Opprettelse av malen kan ta flere minutter og lenger avhengig av størrelsen på volumet.",
+    "message.creating.cluster": "Oppretter klynge",
+    "message.creating.guest.network": "Oppretter gjestenettverk",
+    "message.creating.physical.networks": "Oppretter fysiske nettverk",
+    "message.creating.pod": "Oppretter pod",
+    "message.creating.primary.storage": "Oppretter primærlagring",
+    "message.creating.secondary.storage": "Oppretter sekundærlagring",
+    "message.creating.systemVM": "Oppretter system-VMer (dette kan ta litt tid)",
+    "message.creating.zone": "Oppretter sone",
+    "message.decline.invitation": "Er du sikker på du ønsker å avvise denne prosjektinvitasjonen?",
+    "message.dedicate.zone": "Dedikerer sone",
+    "message.dedicated.zone.released": "Sone dedikering frigitt",
+    "message.delete.VPN.connection": "Vennligst bekreft at du ønsker å slette VPN-tilkobling",
+    "message.delete.VPN.customer.gateway": "Vennligst bekreft at du ønsker å slette denne VPN gatewayen",
+    "message.delete.VPN.gateway": "Vennligst bekreft at du ønsker å slette denne VPN gatewayen",
+    "message.delete.account": "Vennligst bekreft at du vil slette denne kontoen.",
+    "message.delete.affinity.group": "Vennligst bekreft du til fjerne denne affinitetsgruppen.",
+    "message.delete.gateway": "Vennligst bekreft at du ønsker å slette gateway",
+    "message.delete.project": "Er du sikker på du ønsker å slette dette prosjektet?",
+    "message.delete.user": "Vennligst bekreft at du ønsker å slette denne bruker.",
+    "message.desc.add.new.lb.sticky.rule": "Legg til ny LB sticky regel",
+    "message.desc.advanced.zone": "For mer avanserte nettverks topologier. Denne nettverks modellen gir flest egenskaper rundt definisjon av gjestenettverk og gir alternativer for tilpassede netverkstilbud, slik for brannmurer, VPN og lastbalanserere.",
+    "message.desc.basic.zone": "Gir et enkelt nettverk hvor alle virtuelle instanser blir tildelt en IP-adresse direkte fra nettverket. Isolering av gjester kan tilbys på lag-3 ved hjelp av sikkerhetsgrupper (IP-adresse kilde-filtrering).",
+    "message.desc.cluster": "Hver pod må inneholde en eller flere pods, og vi vil installere den første klyngen nå. En klynge har til formål å samle en gruppe hypervisor verter. All vertene i en klynge må ha identisk marskinvare, kjøre samme hypervisor, være på samme nettverk, og ha tilgang til den samme primærlagringsenheten. Hver klynge består av en eller flere verter og en eller flere primærlagrings verter.",
+    "message.desc.create.ssh.key.pair": "Vennligst fyll inn følgende data for å opprette eller registrere et ssh-nøkkelpar. <br><br>(1) Hvis offentlig nøkkel er valgt så vil CloudStack registrere den offentlige nøkkelen. Du kan bruke den igjennom din private nøkkel.<br><br>(2) Hvis offentlig nøkkel ikke er valgt så vil CloudStack opprette et SSH-nøkkelpar. I dette tilfellet, vennligst kopier og ta være på den private nøkkelen. CloudStack vil ikke ta vare på den.<br>",
+    "message.desc.created.ssh.key.pair": "Laget et SSH-nøkkelpar.",
+    "message.desc.host": "Hver klynge må inneholde minst en vert (datamaskin) for gjester å kjøre på, og vi legger til den første nå. For at en vert skal fungere i CloudStack må du installere hypervisor-programvare på den, tildele en IP-adresse og sørge for at den er tilkoblet CloudStacks administrasjonsserver.<br/><br/>Oppgi vertens DNS- eller IP-adresse, brukernavnet (vanligvis root) og passord, og eventuelle etiketter du ønsker å kategorisere den med.",
+    "message.desc.primary.storage": "Hver klynge må inneholde en eller flere primærlagringer, og vi skal legge til den første nå. Primærlagring inneholder diskvolumer for alle maskiner som kjører på verter i klyngen. Bruk hvilken som helst standard-protokoll den underliggende hypervisoren støtter.",
+    "message.desc.reset.ssh.key.pair": "Vennligst spesifiser et ssh nøkkelpar som du vil legge til denne VM. Vennligst merk at root passordet vil bli endret av denne operasjonen hvis passord er aktivert.",
+    "message.desc.secondary.storage": "Hver sone må ha minst en NFS eller sekundærlagringsserver og vi vil legge til den første nå. Sekundærlingsserveren lagrer VM-maler, ISO-bilder og VM-disk øyeblikksbilder. Denne serveren må være tilgjengelig for alle verter i denne sonen. <br/><br/>Oppgi IP-adresseng og eksportert sti.",
+    "message.desc.zone": "En sone er den største gruppe enheten i en CloudStack installasjon. En sone er typisk sett på som et datasenter,  og gir bedre pålitelighet gjennom isolasjon og redundans. En sone består av en eller flere pods (hver pod inneholder hypervisor verter og primærlagringsenheter) og en sekundærlagringsenhet som er delt mellom alle pods i sonen.",
+    "message.detach.disk": "Er du sikker på at du ønsker å frakoble denne disken?",
+    "message.detach.iso.confirm": "Vennligst bekreft at du ønsker å frakoble ISOen fra denne virtuelle instansen.",
+    "message.disable.account": "Vennligst bekreft at du ønsker å deaktivere denne kontoen. Ved å deaktivere kontoen så vil alle brukere av denne kontoen ikke lenger ha tilgang til sine skyressurser. Alle virtuelle maskiner vil bli skrudd av umiddelbart.",
+    "message.disable.snapshot.policy": "Du har deaktivert den nåværende øyeblikksbilde policyen.",
+    "message.disable.user": "Vennligst bekreft at du ønsker å deaktivere denne bruker.",
+    "message.disable.vpn": "Er du sikker på at du vil deaktivere VPN?",
+    "message.disable.vpn.access": "Vennligst bekreft at du ønsker å deaktivere VPN-tilgang.",
+    "message.disabling.network.offering": "Deaktiverer nettverkstilbud",
+    "message.disabling.vpc.offering": "Deaktiverer VPC tilbud",
+    "message.disallowed.characters": "Ikke tillatte tegn: <,>",
+    "message.download.ISO": "Vennligst klikk <a href=\"#\">00000</a> for å laste ned ISO",
+    "message.download.template": "Vennligst klikk <a href=\"#\">00000</a> for å laste ned mal",
+    "message.download.volume": "Vennligst klikk <a href=\"#\">00000</a> for å laste ned volumet",
+    "message.download.volume.confirm": "Vennligst bekreft at du ønsker å laste ned dette volumet.",
+    "message.edit.account": "Oppdater (\"-1\" indikerer at det ikke er satt øvre grense for resursbruk)",
+    "message.edit.confirm": "Vennligst bekreft dine endringer før du klikker \"Lagre\".",
+    "message.edit.limits": "Oppdater øvre grense for resursbruk. \"-1\" indikerer at det ikke er satt øvre grense.",
+    "message.edit.traffic.type": "Vennligst oppgi trafikk-etiketten du ønsker knyttet til denne trafikktypen.",
+    "message.enable.account": "Bekreft at du ønsker å aktivere denne kontoen.",
+    "message.enable.user": "Vennligst bekreft at du ønsker å aktivere denne bruker.",
+    "message.enable.vpn": "Vennligst bekreft at du ønsker å aktivere VPN-tilgang for denne IP-adressen",
+    "message.enable.vpn.access": "VPN er deaktivert for denne IP-adressen. Ønsker du å aktivere VPN-tilgang?",
+    "message.enabled.vpn": "Din fjerntilkoblings-VPN er aktivert og kan nås via IPen",
+    "message.enabled.vpn.ip.sec": "Din IPSec delte nøkkel (psk) er",
+    "message.enabling.network.offering": "Aktiver nettverkstilbud",
+    "message.enabling.security.group.provider": "Aktiverer sikkerhetsgruppetilbyder",
+    "message.enabling.vpc.offering": "Aktiverer VPC tilbud",
+    "message.enabling.zone": "Aktiverer sonen",
+    "message.enabling.zone.dots": "Aktiverer sone...",
+    "message.enter.seperated.list.multiple.cidrs": "Skriv inn en kommaseparert liste over CIDRs hvis du har mer enn en",
+    "message.enter.token": "Vennligst skriv inn koden du fikk i invitasjonsmailen.",
+    "message.generate.keys": "Vennligst bekreft at du ønsker å generere nye nøkler for denne bruker.",
+    "message.gslb.delete.confirm": "Vennligst bekreft at du vil slette denne GSLB",
+    "message.gslb.lb.remove.confirm": "Vennligst bekreft at du vil slette lastbalansering fra GSLB",
+    "message.guest.traffic.in.advanced.zone": "Gjestetrafikk er kommunikasjon mellom sluttbrukers virtuelle maskiner. Spesifiser en rekke med VLAN-ider som kan inneholde gjestetrafikk for hvert fysiske nettverk.",
+    "message.guest.traffic.in.basic.zone": "Gjestetrafikk er kommunikasjon mellom sluttbrukers virtuelle gjester. Spesifiser en rekke med IP-adresser som CloudStack kan tildele virtuelle gjester. Sørg for at denne rekken ikke overlapper IP-rekken(e) som er reservert systemmaskiner.",
+    "message.host.dedicated": "Dedikert Vert",
+    "message.host.dedication.released": "Vert dedikering frigitt",
+    "message.installWizard.click.retry": "Klikk på knappen for å prøve oppstart på nytt.",
+    "message.installWizard.copy.whatIsACluster": "En klynge har til formål å samle en gruppe hypervisor verter. All vertene i en klynge må ha identisk marskinvare, kjøre samme hypervisor, være på samme subnett, og ha tilgang til den samme primærlagringsenheten.   Kjørende virtuelle maskiner (VM) kan migreres fra en vert i klyngen til en annen uten avbrudd for brukeren. En klynge er den tredje største enheten i CloudStack. En pod inneholder en eller flere klynger, og en sone inneholder en eller flere pods. <br/><br/>CloudStack can inneholde en eller flere klynger, men for en basic installasjon trengs bare en.",
+    "message.installWizard.copy.whatIsAHost": "En vert er en enkelt datamaskin. Verter tilbyr ressurser som kan gjøre virtuelle gjester. Hver vert har hypervisor-programvare installert for å administrere gjestene (bortsett fra råjern-verter, som er et spesialtilfelle diskutert i den avanserte installasjonsguiden). For eksempel, en Linux KVM-aktivert server, en Citrix XenServer server og en ESXi server er verter. I en enkel installasjon bruker vi en enkelt vert som kjører XenServer eller KVM.<br/><br/>Verten er den minste organisasjonsenheten i en CloudStack-installasjon. Verter er del av klynger, klynger er del av poder og poder er del av soner.",
+    "message.installWizard.copy.whatIsAPod": "En pod representerer ofte et enkelt rack. Verter i samme pod er i samme subnett.<br/><br/>En pod er den nest største enheten i en CloudStack-installasjon. Poder er en del av soner. Hver sone kan inneholde en eller flere poder; i en enkel installasjon vil du kun ha en pod i sonen.",
+    "message.installWizard.copy.whatIsAZone": "En sone er den største gruppe enheten i en CloudStack installasjon. En sone er typisk sett på som et datasenter, selv om man kan ha flere datasenter i en sone. CloudStack infrastrukturen kan deles inn i soner for å isolere og å gi redundans. Hver sone kan for eksempel ha sin egen data senter strømtilførsel og nettverkslink, og soner kan være spredd over større distanser.",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482 er en programvare-plattform som grupperer dataressurser for å bygge offentlige, private og hybride infrastruktur som en tjeneste (IaaS) skyer. CloudStack&#8482 administrerer nettverk, lagring og regnekraft-verter som til sammen blir en sky-infrastruktur. Bruk CloudStack&#8482 til å distribuere, administrerre og konfigurere dine skyressurser og miljøer.<br/><br/>Utvid forbi individuelle virtuelle gjester som kjører på typisk maskinvare, CloudStack&#8482 gir en skybasert infrastruktur-programvare for levering av virtuelle datasentre som en tjeneste - lever alle de essensielle komponenente for å bygge, distribuere og administrere multi-tier og multi-tenant sky-applikasjoner. Både fri kildekode- og premium-versjoner er tilgjengelig, hvor den fri kildekode-basert gir tilnærmet samme funksjonalitet.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "En CloudStack&#8482 sky-infrastruktur tar i bruk to typer lagring: primærlagring og sekundærlagring. <br/><br/><strong>Primærlagring</strong> er assosiert med en klynge, og lagrer datadisker for hver gjest som kjører i den klyngen. Primærlagring er typisk plassert nært den faktiske verten.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "Sekundærlagring er assosiert med en sone, og lagrer følgende: <ul><li>Maler - OS-bilder som kan brukes til å starte opp virtuelle gjester og kan inkludere ekstra konfigurasjon, som installerte applikasjoner</li><li>ISO-bilder - Bilder som kan være bootbare eller ikke-bootbare.</li><li>Diskvolum øyeblikksbilder - Lagrede kopier av virtuelle gjester som kan benyttes til rekonstruksjon eller for å lage nye maler</li></ul>",
+    "message.installWizard.now.building": "Bygger nå din nettsky...",
+    "message.installWizard.tooltip.addCluster.name": "Klyngenavnet. Dette kan være hva som helst og er ikke benyttet av CloudStack.",
+    "message.installWizard.tooltip.addHost.hostname": "DNS-navnet eller IP-adressen til verten.",
+    "message.installWizard.tooltip.addHost.password": "Dette er passordet for brukeren gjengitt ovenfor (fra din XenServer-installasjon).",
+    "message.installWizard.tooltip.addHost.username": "Vanligvis root.",
+    "message.installWizard.tooltip.addPod.name": "Et navn for poden",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Dette er IP-rekken i det private nettverket som CloudStack bruker for å administrere Sekundærlagrins-servere og Konsollproxy-servere. Disse IP-adressene tas fra samme subnett som regnekraft-serverne.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "Gatewayen til vertene i poden.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "Nettmasken benyttet på subnettet gjestene vil bruke.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Dette er IP-rekken i det private nettverket som CloudStack bruker for å administrere Sekundærlagrins-servere og Konsollproxy-servere. Disse IP-adressene tas fra samme subnett som regnekraft-serverne.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "Navnet på lagringsenheten.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(for NFS) I NFS er dette den eksporterte filbanen fra serveren. Banen (for SharedMountPoint).  Med KVM er dette banen på hver vert hvor denne primære lagringen er tilkoblet.  For eksempel: \"mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(for NFS, iSCSI eller PreSetup) IP-adressen eller DNS-navnet til lagringsenheten.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "IP-adressen til NFS-serveren som inneholder sekundær lagring",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "Den eksporterte filbanen, fra serveren du spesifiserte ovenfor",
+    "message.installWizard.tooltip.addZone.dns1": "Dette er DNS-serveren som benyttes av gjeste-VMer i sonen. Disse DNS-serverene vil bli aksessert via det offentlige nettverket du vil legge til senere. De offentlige IP-adressene for en sone må ha en rute til DNS-serveren navngitt her.",
+    "message.installWizard.tooltip.addZone.dns2": "Dette er DNS-serveren som benyttes av gjeste-VMer i sonen. Disse DNS-serverene vil bli aksessert via det offentlige nettverket du vil legge til senere. De offentlige IP-adressene for en sone må ha en rute til DNS-serveren navngitt her.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Dette er DNS-servere som benyttes av systemmaskiner i sonen. Disse DNS-serverne vil bli aksessert via det private nettverksgrensesnittet til systemmaskinene. De private IP-adressene du oppgir for podene må ha en rute til DNS-serverne nevnt her.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Dette er DNS-servere som benyttes av systemmaskiner i sonen. Disse DNS-serverne vil bli aksessert via det private nettverksgrensesnittet til systemmaskinene. De private IP-adressene du oppgir for podene må ha en rute til DNS-serverne nevnt her.",
+    "message.installWizard.tooltip.addZone.name": "Et navn for sonen",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "En beskrivelse av nettverket",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "Rekken av IP-adresser som vil være tilgjengelig for allokering til gjester i denne sonen. Hvis ett grensesnitt er brukt, bør disse IPene være i samme CIDR som podens CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "Gatewayen gjestene skal bruke",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "Nettmasken benyttet på subnettet gjestene skal bruke",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "Rekken av IP-adresser som vil være tilgjengelig for allokering til gjester i denne sonen. Hvis ett grensesnitt er brukt, bør disse IPene være i samme CIDR som podens CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Et navn for nettverket",
+    "message.instance.scaled.up.confirm": "Ønsker du å skalere opp denne instancen?",
+    "message.instanceWizard.noTemplates": "Du har ingen maler tilgjengelig. Vennligst legg til en kompatibel mal og kjør instansveiviseren.",
+    "message.ip.address.changed": "Din IP-adresse kan ha endret seg. Ønsker du å oppdatere visningen? Merk at detaljvisningen vil i såfall lukkes.",
+    "message.iso.desc": "Diskimage som inneholder data etter oppstartsbar media for OS",
+    "message.join.project": "Du har nå deltatt i et prosjekt. Vennligst bytt til prosjektvisning for å se prosjektet.",
+    "message.launch.vm.on.private.network": "Ønsker du å starte instancen din på ditt dedikerte nettverk?",
+    "message.launch.zone": "Sonen er klar for aktivering; vennligst fortsett til neste steg.",
+    "message.ldap.group.import": "Alle brukere fra nevnte gruppe vil bli importert",
+    "message.link.domain.to.ldap": "Aktiver automatisk synkronisering for dette domenet i LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-klikk)",
+    "message.lock.account": "Vennligst bekreft at du ønsker å låse denne kontoen. Ved å låse kontoen så vil ingen brukere av denne kontoen kunne administere sine skyressurser. Eksisterende ressurser kan fortsatt bli aksessert.",
+    "message.migrate.instance.confirm": "Vennligst bekreft verten du ønsker å migrere den virtuelle instansen til.",
+    "message.migrate.instance.to.host": "Vennligst bekreft at du ønsker å migrere instansen til en annen vert.",
+    "message.migrate.instance.to.ps": "Vennligst bekreft at du ønsker å migrere instansen til en annen primærlagring.",
+    "message.migrate.router.confirm": "Vennligst bekreft verten du ønsker å migrere ruteren til:",
+    "message.migrate.systemvm.confirm": "Vennligst bekreft verten du ønsker å migrere system VM til:",
+    "message.migrate.volume": "Vennligst bekreft at du ønsker å migrere volumet til en annen primærlagring.",
+    "message.network.addVM.desc": "Vennligst spesifiser nettverket du vil legge til denne VMen. Et nytt NIC vil bli lagt til for dette nettverket.",
+    "message.network.addVMNIC": "Vennligst bekreft at du vil legge til ett nytt NIC for dette nettverket.",
+    "message.network.remote.access.vpn.configuration": "VPN fjerntilgangskonfigurasjon har blitt generert, men aktivering feilet. Vennligst sjekk tilkoblingen til nettverkselementet og forsøk på nytt.",
+    "message.new.user": "Spesifiser følgende informasjon for å legge til en ny bruker til denne kontoen",
+    "message.no.affinity.groups": "Du har ingen affinitetsgrupper. Fortsett til neste steg.",
+    "message.no.host.available": "Ingen hoster tilgjengelig for migrering",
+    "message.no.network.support": "Din valgte hypervisor, vSphere, har ikke flere nettverks evner. Forsett til punkt 5.",
+    "message.no.network.support.configuration.not.true": "Du har ingen soner med sikkerhetsgrupper aktivert. Derfor ingen ekstra nettverksfunksjoner. Fortsett til steg 5.",
+    "message.no.projects": "Du har ingen prosjekter.<br/>Vennligst opprett et nytt fra prosjektseksjonen.",
+    "message.no.projects.adminOnly": "Du har ingen prosjekter.<br/>Vennligst be din administrator om å opprette et nytt prosjekt.",
+    "message.number.clusters": "<h2><span> # av </span> Klynger</h2>",
+    "message.number.hosts": "<h2><span> # av </span> Verter</h2>",
+    "message.number.pods": "<h2><span> # av </span> Pods</h2>",
+    "message.number.storage": "<h2><span> # av </span> Primærlagringsvolumer</h2>",
+    "message.number.zones": "<h2><span> # av </span> Soner</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "Passordet har blitt endret til",
+    "message.password.of.the.vm.has.been.reset.to": "Passorde for VM har blitt endre til",
+    "message.pending.projects.1": "Du har følgende prosjektinvitasjoner:",
+    "message.pending.projects.2": "For å se, vennligst gå til prosjektseksjonen og velg invitasjoner fra nedtrekksmenyen.",
+    "message.please.add.at.lease.one.traffic.range": "Vennligst legg til minst étt trafikknivå",
+    "message.please.confirm.remove.ssh.key.pair": "Vennligst bekreft at du vil fjerne dette SSH-nøkkelpar",
+    "message.please.proceed": "Vennligst fortsett til neste steg",
+    "message.please.select.a.configuration.for.your.zone": "Vennligst velg en konfigurasjon for din sone",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Vennligst velg et annet offentlig- og administrasjonsnettverk før du fjerner",
+    "message.please.select.networks": "Vennligst velg nettverk for din VM",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Vennligst velg et ssh nøkkelpar som du vil at denne VM skal benytte:",
+    "message.please.wait.while.zone.is.being.created": "Vennlist vent mens din sone opprettes. Dette kan ta noe tid...",
+    "message.pod.dedication.released": "Pod dedikering frigitt",
+    "message.portable.ip.delete.confirm": "Vennligst bekreft at du vil slette denne portable IP-rekken",
+    "message.project.invite.sent": "Invitasjon sendt til bruker. De vil bli lagt til prosjektet så snart de har akseptert invitasjonen",
+    "message.public.traffic.in.advanced.zone": "Offentlig trafikk blir generert av verter i skyen som aksesserer internett. Offentlige IP-adresser må allokerers for dette formået. Sluttbrukere kan bruke CloudStack brukergrensesnittet til å forespørre om disse IP-adressene til å implentere NAT mellom deres gjestenettverk og det offentlige nettverket.<br/><br/>Oppgi minst en rekke med IP-adresser for internettrafikk.",
+    "message.public.traffic.in.basic.zone": "Offentlig trafikk blir generert når virtuelle gjester i skyen aksesserer internett eller kan tilby tjenester til klienter over internett. Offentlig tilgjengelige IP-adresser må allokerers for dette formålet. Når en instans opprettes vil en IP fra dette settet med Offentlige IP-adresser bli tildelt i tillegg til en gjeste-IP-adresse. Statisk 1-1 NAT vil også bli satt opp automatisk mellom the offentlige og den private IP-adressen. Sluttbrukere kan også bruke CloudStack brukergrensesnittet til å tilegne ekstra IP-adresser for å implementere statisk NAT mellom deres instans og den offentlige IP-adressen.",
+    "message.question.are.you.sure.you.want.to.add": "Er du sikker på at du vil legge til",
+    "message.read.admin.guide.scaling.up": "Vennligst les avsnittet om dynamisk skalering i administrasjondokumentasjonen før du oppskalerer.",
+    "message.recover.vm": "Vennligst bekreft at du ønsker å gjenopprette denne VMen.",
+    "message.redirecting.region": "Omdirigerer til region...",
+    "message.reinstall.vm": "Advarsel: Fortsett med forsiktighet. Dette vil reinstallere VMen fra malen; data på rot-disken vil forsvinne. Ekstra datavolumer; hvis noen, vil ikke bli rørt.",
+    "message.remove.ldap": "Er du sikker på at du vil slette LDAP-konfigurasjonen?",
+    "message.remove.region": "Er du sikker på at du vil fjerne denne regionen fra denne administrasjonsserveren?",
+    "message.remove.vpc": "Vennligst bekreft at du ønsker å fjerne VPC",
+    "message.remove.vpn.access": "Vennligst bekreft at du ønsker å fjerne VPN-tilgang fra følgende bruker.",
+    "message.removed.ssh.key.pair": "Fjernet et SSH-nøkkelpar",
+    "message.reset.VPN.connection": "Vennligst bekreft at du ønsker å resette VPN-tilkobling",
+    "message.reset.password.warning.notPasswordEnabled": "Denne malen vil bli opprettet uten passord",
+    "message.reset.password.warning.notStopped": "Din instans må stoppes før man forsøker å bytte nåværende passord",
+    "message.restart.mgmt.server": "Vennlist restart administrajonsserveren(e) din(e) for at de nye innstillingene skal trå i kraft.",
+    "message.restart.mgmt.usage.server": "Vennligst restart administrasjonsserveren(e) din(e) og bruksserver(e) for at de nye innstillingene skal trå i kraft.",
+    "message.restart.network": "Alle tjenester fra dette nettverket vil bli avbrutt. Vennligst bekreft at du ønsker å restarte dette nettverket.",
+    "message.restart.vpc": "Vennligst bekreft at du ønsker å restarte VPC",
+    "message.restart.vpc.remark": "Vennligst bekreft du at du vil restarte VPC <p><small><i>Merk: Å gjøre en ikke reduntant VPC redundant vil tvinge en opprydning. Nettverkene vil ikke være tilgjengelig i noen minutter</i>.</small></p>",
+    "message.restoreVM": "Vil du gjenopprette denne VMen?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(Bruk <strong>Ctrl-klikk</strong> for å velge alle aktuelle sikkerhetsgrupper)",
+    "message.select.a.zone": "En sone er typisk sett på som et datasenter. Multiple soner gir  CloudStack bedre pålitelighet gjennom isolasjon og redundans.",
+    "message.select.affinity.groups": "Vennligst velg en affinitetsgruppe denne VMen skal tilhøre:",
+    "message.select.instance": "Vennligst velg en instans.",
+    "message.select.iso": "Vennligst velg en ISO for din nye virtuelle instans.",
+    "message.select.item": "Vennligst velg et element",
+    "message.select.security.groups": "Vennligst velg sikkerhetsgruppe(r) for din nye VM",
+    "message.select.template": "Vennligst velg en mal for din nye virtuelle instans.",
+    "message.select.tier": "Vennligst velg en VPC-gren",
+    "message.set.default.NIC": "Vennligst bekreft at du vil gjøre dette NIC til standard for denne VM.",
+    "message.set.default.NIC.manual": "Vennligst oppdater standard-NIC manuelt på VMen nå.",
+    "message.setup.physical.network.during.zone.creation": "Når du legger til en avansert sone, må du konfigurere en eller flere fysiske nettverk. Hvert nettverk representerer et NIC på verten. Hvert fysiske nettverk kan inneholde en eller flere typer trafikk, med noen restriksjoner for hvordan de kan kombineres.<br/><br/><strong>Dra og slipp en eller flere nettverkstyper</strong> til hvert fysiske nettverk.",
+    "message.setup.physical.network.during.zone.creation.basic": "Når du legger til en enkel sone så kan du sette opp ett fysisk nettverk som korrensponderer til et NIC på hypervisor. Nettverket transporterer flere typer trafikk.<br/><br/> Du kan også <strong>drag og slippe</strong> andre trafikktyper over til det fysiske nettverket.",
+    "message.setup.successful": "Oppsettet av nettskyen er vellykket!",
+    "message.snapshot.schedule": "Du kan sette opp gjentakende øyeblikksbilder ved å velge fra tilgjengelige opsjoner nedenfor og aktivere dine preferanser.",
+    "message.specifiy.tag.key.value": "Vennligst bekreft tag nøkkel og verdi",
+    "message.specify.url": "Vennligst spesifiser URL",
+    "message.step.1.continue": "Vennligst velg en mal eller ISO for å fortsette.",
+    "message.step.1.desc": "Vennligst velg en mal for din nye virtuelle instans. Du kan også velge en blank mal som du kan installere fra en ISO på.",
+    "message.step.2.continue": "Velg et resurstilbud for å fortsette",
+    "message.step.3.continue": "Vennligst velg et disktilbud for å fortsette",
+    "message.step.4.continue": "Vennligst velg minst ett nettverk for å fortsette",
+    "message.step.4.desc": "Vennligst velg primærnettverket som din virtuelle instans vil bli tilkoblet til.",
+    "message.storage.traffic": "Trafikk mellom CloudStacks interne ressurser, inkludert alle komponenter som kommuniserer med administrassjonsserver, som verter og CloudStack systemmaskiner. Vennligst konfigurer lagringstrafikk her.",
+    "message.suspend.project": "Er du sikker du ønsker å pause dette prosjektet?",
+    "message.systems.vms.ready": "System-VMer klare.",
+    "message.template.copying": "Malen blir kopiert.",
+    "message.template.desc": "OS-image som kan brukes til å starte VMer",
+    "message.tier.required": "VPC-gren er påkrevd.",
+    "message.tooltip.dns.1": "Oppgi en DNS server for bruk av VMer i denne sonen. De offentlige IP-adressene for denne sonen må ha en rute til denne serveren.",
+    "message.tooltip.dns.2": "En sekundær DNS server for bruk av VMer i denne sonen. De offentlige IP-adressene for denne sonen må ha en rute til denne serveren.",
+    "message.tooltip.internal.dns.1": "Navn på en DNS-server for bruk av CloudStack interne systemVMer i sonen. Den private IP-adressen i podden må ha en rute til serveren.",
+    "message.tooltip.internal.dns.2": "Navn på en DNS-server for bruk av CloudStack interne systemVMer i sonen. Den private IP-adressen i podden må ha en rute til serveren.",
+    "message.tooltip.network.domain": "Et DNS suffiks som vil opprette et tilpasset domenenavn for nettverket som aksesseres av gjeste VMer.",
+    "message.tooltip.pod.name": "Et navn for denne pod.",
+    "message.tooltip.reserved.system.gateway": "Gatewayen til vertene i poden.",
+    "message.tooltip.reserved.system.netmask": "Nettverksprefiks som definerer podens subnett. Bruker CIDR-notasjon.",
+    "message.tooltip.zone.name": "Et navn for denne sonen.",
+    "message.update.os.preference": "Vennligst velg preferert OS for denne verten. Alle virtuelle instanser med lignende OS vil først bli allokert til denne verten før andre velges.",
+    "message.update.resource.count": "Vennligst bekreft at du ønsker å oppdatere ressurstellere for denne kontoen.",
+    "message.update.ssl": "Vennligst send inn en ny X.509 kompatibel SSL-sertifikatkjede for å oppdatere hver konsollproxy og virtuell instans for sekundærlagring:",
+    "message.update.ssl.failed": "Oppdatering av SSL-sertifikat feilet.",
+    "message.update.ssl.succeeded": "Oppdatering av SSL-sertifikat vellykket",
+    "message.validate.URL": "Vennligst skriv inn en gyldig URL.",
+    "message.validate.accept": "Vennligst skriv inn en verdi med et gyldig prefiks.",
+    "message.validate.creditcard": "Vennligst oppgi et gyldig kredittkortnummer.",
+    "message.validate.date": "Vennligst skriv inn en gyldig dato.",
+    "message.validate.date.ISO": "Vennligst skriv inn en gyldig dato (ISO).",
+    "message.validate.digits": "Vennligst skriv inn kun tall.",
+    "message.validate.email.address": "Vennligst skriv inn en gyldig e-postadresse.",
+    "message.validate.equalto": "Vennligst skriv inn den samme verdien igjen.",
+    "message.validate.fieldrequired": "Dette feltet er påkrevd.",
+    "message.validate.fixfield": "Vennligst fiks dette feltet.",
+    "message.validate.instance.name": "Instansnavn kan ikke være lenger enn 63 tegn. Kun ACSCII bokstaver a~z, A~Z, tall 0~9, bindestrek er tillatt. Må starte med en bokstav og slutte med en bokstav eller et tall.",
+    "message.validate.invalid.characters": "Ugyldige tegn funnet; vennligst korriger.",
+    "message.validate.max": "Skriv en verdi mindre enn eller lik {0}.",
+    "message.validate.maxlength": "Vennligst ikke skriv inn mer enn {0} tegn.",
+    "message.validate.minlength": "Vennligst skriv inn minst {0} tegn.",
+    "message.validate.number": "Vennligst skriv inn et gyldig nummer.",
+    "message.validate.range": "Skriv en verdi mellom {0} og {1}.",
+    "message.validate.range.length": "Vennligst skriv inn en verdi som er mellom {0} og {1} tegn langt.",
+    "message.virtual.network.desc": "Et dedikert virtualisert nettverk for din konto. Kringkastingsdomenet er isolert inne i et VLAN og offentlig nettverkstrafikk er rutet ut av en virtuell ruter.",
+    "message.vm.create.template.confirm": "Oppretting av Mal vil restarte VM automatisk.",
+    "message.vm.review.launch": "Vennligst vurder følgende informasjon og bekreft at din virtuelle instans er korrekt før kjøring",
+    "message.vnmc.available.list": "VNMC er ikke tilgjengelig fra tilbyder listen.",
+    "message.vnmc.not.available.list": "VNMC er ikke tilgjengelig fra tilbyder listen.",
+    "message.volume.create.template.confirm": "Vennligst bekreft at du ønsker å lage en mal for dette diskvolumet. Opprettelse av male kan ta opptil flere minutter eller lenger, avhengig av størrelsen på volumet.",
+    "message.waiting.for.builtin.templates.to.load": "Venter på at innebygde maler skal lastes...",
+    "message.you.must.have.at.least.one.physical.network": "Du trenger minst ett fysisk nettverk",
+    "message.your.cloudstack.is.ready": "Din CloudStack er klar!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Soneopprettelse fullført. Ønsker du å aktivere denne sonen?",
+    "message.zone.no.network.selection": "Sonen du har valgt har ingen mulighet for valg av nettverk.",
+    "message.zone.step.1.desc": "Vennligst en nettverksmodell for din sone.",
+    "message.zone.step.2.desc": "Vennligst skriv inn følgende informasjon for å legge til en ny sone",
+    "message.zone.step.3.desc": "Vennligst skriv inn følgende informasjon for å legge til en ny pod",
+    "message.zoneWizard.enable.local.storage": "ADVARSEL: Hvis du aktiverer lokal lagring for denne sonen må du gjøre følgende, avhengig av hvor du ønsker at systemmaskiner skal starte:<br/><br/>1. Hvis systemmaskiner trenger å starte fra delt lagring, må det legges til delt lagring etter at sonen er opprettet. Sonen må også startes som deaktivert.<br/><br/>2. Hvis systemmaskiner trenger å starte fra lokal lagring, må system.vm.use.local.storage settes til true før du aktiverer sonen.<br/><br/><br/>Vil du fortsette?",
+    "messgae.validate.min": "Skriv en verdig større enn eller lik {0}.",
+    "mode": "Modus",
+    "network.rate": "Nettverksrate",
+    "notification.reboot.instance": "Omstart av instans",
+    "notification.start.instance": "Start instans",
+    "notification.stop.instance": "Stopp instans",
+    "side.by.side": "Side ved side",
+    "state.Accepted": "Akseptert",
+    "state.Active": "Aktiv",
+    "state.Allocated": "Allokert",
+    "state.Allocating": "Allokerer",
+    "state.BackedUp": "Sikkerhetskopiert",
+    "state.BackingUp": "Sikkerhetskopierer",
+    "state.Completed": "Utført",
+    "state.Creating": "Oppretter",
+    "state.Declined": "Avvist",
+    "state.Destroyed": "Destruert",
+    "state.Disabled": "Inaktiv",
+    "state.Enabled": "Aktivert",
+    "state.Error": "Feil",
+    "state.Expunging": "Fjerner",
+    "state.Migrating": "Migrering",
+    "state.Pending": "Venter",
+    "state.Ready": "Klar",
+    "state.Running": "Kjører",
+    "state.Starting": "Starter",
+    "state.Stopped": "Stoppet",
+    "state.Stopping": "Stopper",
+    "state.Suspended": "Pauset",
+    "state.detached": "Frakoblet",
+    "title.upload.volume": "Last opp volum",
+    "ui.listView.filters.all": "Alle",
+    "ui.listView.filters.mine": "Mine"
+};
diff --git a/ui/l10n/nl_NL.js b/ui/l10n/nl_NL.js
new file mode 100644
index 0000000..ccf27cc
--- /dev/null
+++ b/ui/l10n/nl_NL.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP Code",
+    "ICMP.type": "ICMP Type",
+    "changed.item.properties": "Item eigenschappen gewijzigd",
+    "confirm.enable.s3": "Vul de volgende informatie in om ondersteuning voor S3-aangestuurde Secundaire Opslag te activeren",
+    "confirm.enable.swift": "Vul de volgende informatie in om ondersteuning voor Swift te activeren",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Fout. Kan wachtwoord niet wijzigen omdat LDAP is uitgeschakeld.",
+    "error.could.not.enable.zone": "Kon zone niet activeren",
+    "error.installWizard.message": "Er ging iets mis; je kunt teruggaan om de eventuele fouten te herstellen",
+    "error.invalid.username.password": "Ongeldige gebruikersnaam of wachtwoord",
+    "error.login": "Uw gebruikersnaam/wachtwoord komt niet overeen met onze gegevens",
+    "error.menu.select": "Kan actie niet uitvoeren omdat geen items zijn geselecteerd",
+    "error.mgmt.server.inaccessible": "The Management Server is niet toegankelijk. Probeer het later opnieuw.",
+    "error.password.not.match": "De wachtwoord velden komen niet overeen",
+    "error.please.specify.physical.network.tags": "Netwerk aanbiedingen zijn niet beschikbaar totdat u labels voor het fysieke netwerk specificeert.",
+    "error.session.expired": "Uw sessie is verlopen",
+    "error.something.went.wrong.please.correct.the.following": "Er is iets mis gegaan; Corrigeer het volgende",
+    "error.unable.to.reach.management.server": "Niet in staat om de Management Server te bereiken",
+    "error.unresolved.internet.name": "Uw internet naam kan niet worden omgezet.",
+    "force.delete": "Geforceerd verwijderen",
+    "force.delete.domain.warning": "Waarschuwing: Wanneer u deze optie selecteert zullen alle onderliggende domeinen, hun gekoppelde accounts en hun verbruik worden verwijderd.",
+    "force.remove": "Geforceerd loskoppelen",
+    "force.remove.host.warning": "Waarschuwing: Wanneer u deze optie selecteert zal CloudStack alle draaiende virtuele machines geforceerd stoppen voordat de host van het cluster wordt verwijderd.",
+    "force.stop": "Geforceerd stoppen",
+    "force.stop.instance.warning": "Waarschuwing: Een instantie geforceerd stoppen zou uw laatste optie moeten zijn. Het kan leiden tot dataverlies en inconsistent gedrag van de staat van de virtuele machine.",
+    "hint.no.host.tags": "geen machine kentekens gevonden",
+    "hint.no.storage.tags": "geen opslag kentekens gevonden",
+    "hint.type.part.host.tag": "type een deel van een machine kenteken",
+    "hint.type.part.storage.tag": "type een deel van een opslag kenteken",
+    "image.directory": "Afbeelding Directory",
+    "inline": "Inline",
+    "instances.actions.reboot.label": "Herstart instantie",
+    "label.CIDR.list": "CIDR lijst",
+    "label.CIDR.of.destination.network": "CIDR van bestemmingsnetwerk",
+    "label.CPU.cap": "CPU Cap",
+    "label.DHCP.server.type": "DHCP Server Type",
+    "label.DNS.domain.for.guest.networks": "DNS domein voor Gast Netwerken",
+    "label.ESP.encryption": "ESP Encryptie",
+    "label.ESP.hash": "ESP Hash",
+    "label.ESP.lifetime": "ESP Lifetime (secondes)",
+    "label.ESP.policy": "ESP policy",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE Encryptie",
+    "label.IKE.hash": "IKE Hash",
+    "label.IKE.lifetime": "IKE lifetime (secondes)",
+    "label.IKE.policy": "IKE policy",
+    "label.IPsec.preshared.key": "IPsec Preshared-Key",
+    "label.LB.isolation": "LB isolatie",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto Log Profiel",
+    "label.PA.threat.profile": "Palo Alto Threat Profiel",
+    "label.PING.CIFS.password": "PING CIFS wachtwoord",
+    "label.PING.CIFS.username": "PING CIFS gebruikersnaam",
+    "label.PING.dir": "PING Directory",
+    "label.PING.storage.IP": "PING opslag IP",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "PXE Server Type",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNMP Poort",
+    "label.SR.name": "SR Name-Label",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP Directory",
+    "label.VMFS.datastore": "VMFS datastore",
+    "label.VMs.in.tier": "VMs in tier",
+    "label.VPC.limits": "VPC limieten",
+    "label.VPC.router.details": "VPC router details",
+    "label.VPN.connection": "VPN Connectie",
+    "label.VPN.customer.gateway": "VPN Customer Gateway",
+    "label.VPN.gateway": "VPN Gateway",
+    "label.Xenserver.Tools.Version61plus": "XenServer Tools Versie 6.1+",
+    "label.about": "Over",
+    "label.about.app": "Over CloudStack",
+    "label.accept.project.invitation": "Accepteer project uitnodiging",
+    "label.account": "Account",
+    "label.account.and.security.group": "Account, Security group",
+    "label.account.details": "rekening gegevens",
+    "label.account.id": "Account ID",
+    "label.account.lower": "account",
+    "label.account.name": "Account Naam",
+    "label.account.specific": "Account-specifiek",
+    "label.account.type": "Account type",
+    "label.accounts": "Accounts",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL lijst regels",
+    "label.acl.name": "ACL naam",
+    "label.acl.replaced": "ACL vervangen",
+    "label.acquire.new.ip": "Bemachtig nieuw IP",
+    "label.acquire.new.secondary.ip": "Verkrijg nieuw secundair IP",
+    "label.action": "Actie",
+    "label.action.attach.disk": "Schijf toevoegen",
+    "label.action.attach.disk.processing": "Schijf wordt toegevoegd....",
+    "label.action.attach.iso": "ISO toevoegen",
+    "label.action.attach.iso.processing": "ISO wordt toegevoegd....",
+    "label.action.cancel.maintenance.mode": "Annuleer Onderhoudsmodus",
+    "label.action.cancel.maintenance.mode.processing": "Onderhoudsmodus wordt geannuleerd....",
+    "label.action.change.password": "Wijzig Wachtwoord",
+    "label.action.change.service": "Wijzig Service",
+    "label.action.change.service.processing": "Service wordt gewijzigd....",
+    "label.action.configure.samlauthorization": "configureer SAML SSO authorisatie",
+    "label.action.copy.ISO": "Kopieer ISO",
+    "label.action.copy.ISO.processing": "Bezig een ISO te kopiëren...",
+    "label.action.copy.template": "Kopieer Template",
+    "label.action.copy.template.processing": "Bezig een template te kopiëren...",
+    "label.action.create.template": "Creëer Template",
+    "label.action.create.template.from.vm": "Creëer Template vanaf VM",
+    "label.action.create.template.from.volume": "Creëer Template van Volume",
+    "label.action.create.template.processing": "Bezig met aanmaken Template....",
+    "label.action.create.vm": "Creëer VM",
+    "label.action.create.vm.processing": "Bezig met aanmaken VM....",
+    "label.action.create.volume": "Creëer Volume",
+    "label.action.create.volume.processing": "Bezig met creëren volume....",
+    "label.action.delete.IP.range": "Verwijder IP Range",
+    "label.action.delete.IP.range.processing": "Bezig met verwijderen van IP Range....",
+    "label.action.delete.ISO": "Verwijder ISO",
+    "label.action.delete.ISO.processing": "Bezig met verwijderen van ISO....",
+    "label.action.delete.account": "Verwijder account",
+    "label.action.delete.account.processing": "Bezig met verwijderen account....",
+    "label.action.delete.cluster": "Verwijder Cluster",
+    "label.action.delete.cluster.processing": "Bezig met verwijderen van Cluster....",
+    "label.action.delete.disk.offering": "Verwijder Schijf Aanbieding",
+    "label.action.delete.disk.offering.processing": "Bezig met verwijderen van Schijf Aanbieding....",
+    "label.action.delete.domain": "Verwijder Domein",
+    "label.action.delete.domain.processing": "Bezig met verwijderen van Domein....",
+    "label.action.delete.firewall": "Verwijder firewall regel",
+    "label.action.delete.firewall.processing": "Bezig met verwijderen van Firewall....",
+    "label.action.delete.ingress.rule": "Verwijder Inkomende Regel",
+    "label.action.delete.ingress.rule.processing": "Bezig met verwijderen van Inkomende Regel....",
+    "label.action.delete.load.balancer": "Verwijder load balancer regel",
+    "label.action.delete.load.balancer.processing": "Bezig met verwijderen van Load Balancer....",
+    "label.action.delete.network": "Verwijder Netwerk",
+    "label.action.delete.network.processing": "Bezig met verwijderen van Netwerk....",
+    "label.action.delete.nexusVswitch": "Verwijder Nexus 1000v",
+    "label.action.delete.nic": "Verwijder netwerkkaart",
+    "label.action.delete.physical.network": "Verwijder fysiek netwerk",
+    "label.action.delete.pod": "Verwijder Pod",
+    "label.action.delete.pod.processing": "Bezig met verwijderen van Pod....",
+    "label.action.delete.primary.storage": "Verwijder Primaire Opslag",
+    "label.action.delete.primary.storage.processing": "Bezig met verwijderen van Primaire Opslag....",
+    "label.action.delete.secondary.storage": "Verwijder Secundaire Opslag",
+    "label.action.delete.secondary.storage.processing": "Bezig met verwijderen van Secundaire Opslag....",
+    "label.action.delete.security.group": "Verwijder Security Group",
+    "label.action.delete.security.group.processing": "Bezig met verwijderen van Security Group....",
+    "label.action.delete.service.offering": "Verwijder Service Aanbieding",
+    "label.action.delete.service.offering.processing": "Bezig met verwijderen van Service Aanbieding....",
+    "label.action.delete.snapshot": "Verwijder Snapshot",
+    "label.action.delete.snapshot.processing": "Bezig met verwijderen van Snapshot....",
+    "label.action.delete.system.service.offering": "Verwijder Systeem Service Aanbieding",
+    "label.action.delete.template": "Verwijder Template",
+    "label.action.delete.template.processing": "Bezig met verwijderen van Template....",
+    "label.action.delete.user": "Verwijder Gebruiker",
+    "label.action.delete.user.processing": "Bezig met verwijderen Gebruiker....",
+    "label.action.delete.volume": "Verwijder Volume",
+    "label.action.delete.volume.processing": "Bezig met verwijderen van Volume....",
+    "label.action.delete.zone": "Verwijder Zone",
+    "label.action.delete.zone.processing": "Bezig met verwijderen van Zone....",
+    "label.action.destroy.instance": "Verwijder Instantie",
+    "label.action.destroy.instance.processing": "Bezig met vernietigen van Instantie....",
+    "label.action.destroy.systemvm": "Vernietig Systeem VM",
+    "label.action.destroy.systemvm.processing": "Bezig met vernietigen van Systeem VM....",
+    "label.action.detach.disk": "Ontkoppel Schijf",
+    "label.action.detach.disk.processing": "Bezig met ontkoppelen van Schijf....",
+    "label.action.detach.iso": "Ontkoppel ISO",
+    "label.action.detach.iso.processing": "Bezig met ontkoppelen van ISO....",
+    "label.action.disable.account": "Deactiveer account",
+    "label.action.disable.account.processing": "Bezig met deactiveren van account....",
+    "label.action.disable.cluster": "Deactiveer Cluster",
+    "label.action.disable.cluster.processing": "Bezig met deactiveren van Cluster....",
+    "label.action.disable.nexusVswitch": "Deactiveer Nexus 1000v",
+    "label.action.disable.physical.network": "Deactiveer fysiek netwerk",
+    "label.action.disable.pod": "Deactiveer Pod",
+    "label.action.disable.pod.processing": "Bezig met deactiveren van Pod....",
+    "label.action.disable.static.NAT": "Deactiveer Static NAT",
+    "label.action.disable.static.NAT.processing": "Bezig met deactiveren van Static NAT....",
+    "label.action.disable.user": "Deactiveer Gebruiker",
+    "label.action.disable.user.processing": "Bezig met deactiveren van Gebruiker....",
+    "label.action.disable.zone": "Deactiveer Zone",
+    "label.action.disable.zone.processing": "Bezig met deactiveren van Zone....",
+    "label.action.download.ISO": "Download ISO",
+    "label.action.download.template": "Download Template",
+    "label.action.download.volume": "Download Volume",
+    "label.action.download.volume.processing": "Bezig met downloaden van Volume....",
+    "label.action.edit.ISO": "Wijzig ISO",
+    "label.action.edit.account": "Wijzig account",
+    "label.action.edit.disk.offering": "Wijzig schijf aanbieding",
+    "label.action.edit.domain": "Wijzig Domein",
+    "label.action.edit.global.setting": "Wijzig Algemene Instellingen",
+    "label.action.edit.host": "Wijzig Host",
+    "label.action.edit.instance": "Wijzig Instantie",
+    "label.action.edit.network": "Wijzig Netwerk",
+    "label.action.edit.network.offering": "Wijzig Netwerk Aanbieding",
+    "label.action.edit.network.processing": "Bezig met wijzigen van Netwerk...",
+    "label.action.edit.pod": "Wijzig Pod",
+    "label.action.edit.primary.storage": "Wijzig Primaire Opslag",
+    "label.action.edit.resource.limits": "Wijzig verbruikslimieten",
+    "label.action.edit.service.offering": "Wijzig Service Aanbieding",
+    "label.action.edit.template": "Wijzig Template",
+    "label.action.edit.user": "Wijzig Gebruiker",
+    "label.action.edit.zone": "Wijzig Zone",
+    "label.action.enable.account": "Activeer account",
+    "label.action.enable.account.processing": "Bezig met activeren van account....",
+    "label.action.enable.cluster": "Activeer Cluster",
+    "label.action.enable.cluster.processing": "Bezig met activeren van Cluster....",
+    "label.action.enable.maintenance.mode": "Activeer onderhoudsmodus",
+    "label.action.enable.maintenance.mode.processing": "Bezig met activeren van Onderhoudsmodus",
+    "label.action.enable.nexusVswitch": "Activeer Nexus 1000v",
+    "label.action.enable.physical.network": "Activeer fysiek netwerk",
+    "label.action.enable.pod": "Activeer Pod",
+    "label.action.enable.pod.processing": "Bezig met activeren van Pod....",
+    "label.action.enable.static.NAT": "Activeer Static NAT",
+    "label.action.enable.static.NAT.processing": "Bezig met activeren van Static NAT....",
+    "label.action.enable.user": "Activeer Gebruiker",
+    "label.action.enable.user.processing": "Bezig met activeren van Gebruiker....",
+    "label.action.enable.zone": "Activeer Zone",
+    "label.action.enable.zone.processing": "Bezig met activeren van Zone....",
+    "label.action.expunge.instance": "Ruim instantie op",
+    "label.action.expunge.instance.processing": "Opruimen Instantie....",
+    "label.action.force.reconnect": "Forceer opnieuw verbinden",
+    "label.action.force.reconnect.processing": "Bezig met opnieuw verbinden....",
+    "label.action.generate.keys": "Genereer Sleutels",
+    "label.action.generate.keys.processing": "Bezig met generen van Sleutels....",
+    "label.action.list.nexusVswitch": "Toon Nexus 1000v",
+    "label.action.lock.account": "Account op slot zetten",
+    "label.action.lock.account.processing": "Bezig met account op slot zetten....",
+    "label.action.manage.cluster": "Beheer Cluster",
+    "label.action.manage.cluster.processing": "Bezig met beheren van Cluster....",
+    "label.action.migrate.instance": "Migreer Instantie",
+    "label.action.migrate.instance.processing": "Bezig met migreren van Instantie....",
+    "label.action.migrate.router": "MIgreer Router",
+    "label.action.migrate.router.processing": "Bezig met migreren van Router....",
+    "label.action.migrate.systemvm": "Migreer Systeem VM",
+    "label.action.migrate.systemvm.processing": "Bezig met migreren van Systeem VM....",
+    "label.action.reboot.instance": "Herstart Instantie",
+    "label.action.reboot.instance.processing": "Bezig met herstarten van Instantie....",
+    "label.action.reboot.router": "Herstart Router",
+    "label.action.reboot.router.processing": "Bezig met herstarten van Router....",
+    "label.action.reboot.systemvm": "Herstart Systeem VM",
+    "label.action.reboot.systemvm.processing": "Bezig met herstarten van Systeem VM....",
+    "label.action.recurring.snapshot": "Terugkerende Snapshots",
+    "label.action.register.iso": "Registreer ISO",
+    "label.action.register.template": "Registreer een template van een URL",
+    "label.action.release.ip": "Ontkoppel IP",
+    "label.action.release.ip.processing": "Bezig met ontkoppelen van IP....",
+    "label.action.remove.host": "Verwijder Host",
+    "label.action.remove.host.processing": "Bezig met verwijderen van Host....",
+    "label.action.reset.password": "Reset Wachtwoord",
+    "label.action.reset.password.processing": "Bezig met resetten van wachtwoord....",
+    "label.action.resize.volume": "Wijzig de grootte van het volume",
+    "label.action.resize.volume.processing": "Bezig met aanpassen van de grootte van het Volume",
+    "label.action.resource.limits": "Verbruikslimieten",
+    "label.action.restore.instance": "Herstel Instantie",
+    "label.action.restore.instance.processing": "Bezig met herstellen van Instantie....",
+    "label.action.revert.snapshot": "Draai terug naar snapshot",
+    "label.action.revert.snapshot.processing": "Terugdraaien naar snapshot...",
+    "label.action.start.instance": "Start Instantie",
+    "label.action.start.instance.processing": "Bezig met starten van Instantie....",
+    "label.action.start.router": "Start Router",
+    "label.action.start.router.processing": "Start Router....",
+    "label.action.start.systemvm": "Start Systeem VM",
+    "label.action.start.systemvm.processing": "Bezig met starten van Systeem VM....",
+    "label.action.stop.instance": "Stop Instantie",
+    "label.action.stop.instance.processing": "Bezig met stoppen van Instantie....",
+    "label.action.stop.router": "Stop Router",
+    "label.action.stop.router.processing": "Bezig met stoppen van Router....",
+    "label.action.stop.systemvm": "Stop Systeem VM",
+    "label.action.stop.systemvm.processing": "Bezig met stoppen van Systeem VM....",
+    "label.action.take.snapshot": "Neem Snapshot",
+    "label.action.take.snapshot.processing": "Bezig met nemen van Snapshot....",
+    "label.action.unmanage.cluster": "Schakel Clusterbeheer uit",
+    "label.action.unmanage.cluster.processing": "Bezig met uitschakelen van Clusterbeheer....",
+    "label.action.update.OS.preference": "Wijzig OS voorkeuren",
+    "label.action.update.OS.preference.processing": "Bezig met wijzigen van OS voorkeuren....",
+    "label.action.update.resource.count": "Update Verbruikslimieten",
+    "label.action.update.resource.count.processing": "Bezig met updaten van verbruikslimieten....",
+    "label.action.vmsnapshot.create": "Neem Snapshot van de VM",
+    "label.action.vmsnapshot.delete": "Verwijder Snapshot van de VM",
+    "label.action.vmsnapshot.revert": "Draai Snapshot van de VM terug",
+    "label.actions": "Acties",
+    "label.activate.project": "Activeer Project",
+    "label.active.sessions": "Actieve Sessies",
+    "label.add": "Voeg toe",
+    "label.add.ACL": "Voeg ACL toe",
+    "label.add.BigSwitchBcf.device": "Voeg eenBigSwitch BCF controller toe",
+    "label.add.BrocadeVcs.device": "Voeg een Brocade Vcs switch toe",
+    "label.add.F5.device": "Voeg F5 apparaat toe",
+    "label.add.LDAP.account": "voeg LDAP rekening toe",
+    "label.add.NiciraNvp.device": "Voeg NVP Controller toe",
+    "label.add.NuageVsp.device": "Voeg Nuage Virtualized Services Directory (VSD) toe",
+    "label.add.OpenDaylight.device": "OpenDaylight Controller toevoegen",
+    "label.add.PA.device": "Nieuw Palo Alto apparaat toevoegen",
+    "label.add.SRX.device": "SRX apparaat toevoegen",
+    "label.add.VM.to.tier": "Voeg VM toe aan tier",
+    "label.add.VPN.gateway": "VPN Gateway toevoegen",
+    "label.add.account": "Voeg Account toe",
+    "label.add.account.to.project": "Voeg account aan project toe",
+    "label.add.accounts": "Voeg accounts toe",
+    "label.add.accounts.to": "Voeg accounts toe aan",
+    "label.add.acl.list": "voeg een ACL lijst toe",
+    "label.add.affinity.group": "Nieuwe affinity groep toevoegen",
+    "label.add.baremetal.dhcp.device": "Voeg Baremetal DHCP Apparaat toe",
+    "label.add.baremetal.rack.configuration": "voeg baremetal rek configuratie toe",
+    "label.add.by": "Voeg toe door middel van",
+    "label.add.by.cidr": "Voeg toe door middel van CIDR",
+    "label.add.by.group": "Voeg toe door middel van Groep",
+    "label.add.ciscoASA1000v": "voeg CiscoASA1000v toe",
+    "label.add.cluster": "Voeg Cluster toe",
+    "label.add.compute.offering": "Voeg Compute aanbieding toe",
+    "label.add.direct.iprange": "Voeg Direct IP Range toe",
+    "label.add.disk.offering": "Voeg Schijf Aanbieding toe",
+    "label.add.domain": "Voeg Domein toe",
+    "label.add.egress.rule": "Voeg uitgaande regel toe",
+    "label.add.firewall": "Voeg firewall regel toe",
+    "label.add.globo.dns": "voeg GloboDNS toe",
+    "label.add.gslb": "GSLB Toevoegen",
+    "label.add.guest.network": "Gast netwerk toevoegen",
+    "label.add.host": "Host toevoegen",
+    "label.add.ingress.rule": "Voeg inkomende regel toe",
+    "label.add.intermediate.certificate": "Voeg een intermediair certificaat toe",
+    "label.add.internal.lb": "voeg interne LB toe",
+    "label.add.ip.range": "Voeg IP range toe",
+    "label.add.isolated.guest.network": "Voeg een geïsoleerd netwerk toe",
+    "label.add.isolated.guest.network.with.sourcenat": "voeg en geïsoleerd gast netwerk met bron-NAT toe",
+    "label.add.isolated.network": "Geisoleerd Netwerk Toevoegen",
+    "label.add.ldap.account": "Voeg LDAP account toe",
+    "label.add.list.name": "ACL lijst naam",
+    "label.add.load.balancer": "Voeg Load Balancer toe",
+    "label.add.more": "Voeg meer toe",
+    "label.add.netScaler.device": "Voeg Netscaler apparaat toe",
+    "label.add.network": "Voeg Netwerk toe",
+    "label.add.network.ACL": "Voeg netwerk ACL toe",
+    "label.add.network.acl.list": "voeg netwerk ACL lijst toe",
+    "label.add.network.device": "Voeg Netwerk Apparaat toe",
+    "label.add.network.offering": "Voeg netwerk aanbieding toe",
+    "label.add.new.F5": "Voeg nieuwe F5 toe",
+    "label.add.new.NetScaler": "Voeg nieuwe Netscaler toe",
+    "label.add.new.PA": "Nieuwe Palo Alto toevoegen",
+    "label.add.new.SRX": "Voeg nieuwe SRX toe",
+    "label.add.new.gateway": "Voeg nieuwe gateway toe",
+    "label.add.new.tier": "Voeg nieuwe Tier toe",
+    "label.add.nfs.secondary.staging.store": "Secundaire Staging Opslag toevoegen",
+    "label.add.physical.network": "Voeg fysiek netwerk toe",
+    "label.add.pod": "Voeg Pod toe",
+    "label.add.port.forwarding.rule": "Voeg port forwarding regel toe",
+    "label.add.portable.ip.range": "Porteerbare IP Range toevoegen",
+    "label.add.primary.storage": "Voeg Primaire Opslag toe",
+    "label.add.private.gateway": "voeg private doorgang toe",
+    "label.add.region": "Voeg Regio toe",
+    "label.add.resources": "Resources toevoegen",
+    "label.add.role": "Add Role",
+    "label.add.route": "Route toevoegen",
+    "label.add.rule": "Regel toevoegen",
+    "label.add.secondary.storage": "Secundaire Opslag toevoegen",
+    "label.add.security.group": "Security Group toevoegen",
+    "label.add.service.offering": "Service Aanbieding toevoegen",
+    "label.add.static.nat.rule": "Statische NAT regel toevoegen",
+    "label.add.static.route": "Statische route toevoegen",
+    "label.add.system.service.offering": "Systeem Service Aanbieding toevoegen",
+    "label.add.template": "Template toevoegen",
+    "label.add.to.group": "Toevoegen aan groep",
+    "label.add.ucs.manager": "UCS Manager toevoegen",
+    "label.add.user": "Gebruiker toevoegen",
+    "label.add.userdata": "Gebruikers gegevens",
+    "label.add.vlan": "VLAN toevoegen",
+    "label.add.vm": "VM toevoegen",
+    "label.add.vms": "VMs toevoegen",
+    "label.add.vms.to.lb": "Voeg VM(s) toe aan load balancer regel",
+    "label.add.vmware.datacenter": "VMware datacenter toevoegen",
+    "label.add.vnmc.device": "VNMC apparaat toevoegen",
+    "label.add.vnmc.provider": "VNMC provider toevoegen",
+    "label.add.volume": "Volume toevoegen",
+    "label.add.vpc": "VPC toevoegen",
+    "label.add.vpc.offering": "VPC Aanbieding toevoegen",
+    "label.add.vpn.customer.gateway": "VPN Customer Gateway toevoegen",
+    "label.add.vpn.user": "VPN gebruiker toevoegen",
+    "label.add.vxlan": "VXLAN toevoegen",
+    "label.add.zone": "Zone toevoegen",
+    "label.added.brocade.vcs.switch": "een nieuwe Brocade Vcs switch is toegevoegd",
+    "label.added.network.offering": "netwerk aanbieding toegevoegd",
+    "label.added.new.bigswitch.bcf.controller": "een nieuwe BigSwitch BCF controller is toegevoegd",
+    "label.added.nicira.nvp.controller": "Nieuwe Nicira NVP Controller toegevoegd",
+    "label.addes.new.f5": "Nieuwe F5 toegevoegd",
+    "label.adding": "Toevoegen",
+    "label.adding.cluster": "Bezig met toevoegen van Cluster",
+    "label.adding.failed": "Toevoegen mislukt",
+    "label.adding.pod": "Bezig met toevoegen van Pod",
+    "label.adding.processing": "Toevoegen....",
+    "label.adding.succeeded": "Toevoegen geslaagd",
+    "label.adding.user": "Bezig met toevoegen van Gebruiker",
+    "label.adding.zone": "Bezig met toevoegen van Zone",
+    "label.additional.networks": "Additioneele Netwerken",
+    "label.admin": "Beheerder",
+    "label.admin.accounts": "Beheer Accounts",
+    "label.advanced": "Geavanceerd",
+    "label.advanced.mode": "Geavanceerde Modus",
+    "label.advanced.search": "Geavanceerd zoeken",
+    "label.affinity": "Affinity",
+    "label.affinity.group": "Affinity Groep",
+    "label.affinity.groups": "Affinity Groepen",
+    "label.agent.password": "Agent wachtwoord",
+    "label.agent.port": "Agent poort",
+    "label.agent.state": "agent status",
+    "label.agent.username": "Agent Gebruikersnaam",
+    "label.agree": "Accepteren",
+    "label.alert": "Alarm",
+    "label.alert.archived": "waarschuwing gearchiveerd",
+    "label.alert.deleted": "waarschuwing verwijderd",
+    "label.alert.details": "waarschuwing gegevens",
+    "label.algorithm": "Algoritme",
+    "label.allocated": "Gebruikt",
+    "label.allocation.state": "Verbruik Staat",
+    "label.allow": "Toestaan",
+    "label.anti.affinity": "Anti-affinity",
+    "label.anti.affinity.group": "Anti-affinity Groep",
+    "label.anti.affinity.groups": "Anti-affinity Groepen",
+    "label.api.key": "API Sleutel",
+    "label.api.version": "API versie",
+    "label.app.name": "CloudStack",
+    "label.apply": "Uitvoeren",
+    "label.archive": "archief",
+    "label.archive.alerts": "Archiveer waarschuwingen",
+    "label.archive.events": "Archiveer evenementen",
+    "label.assign": "Toevoegen",
+    "label.assign.instance.another": "Wijs instantie toe aan een andere Account",
+    "label.assign.to.load.balancer": "Voeg instantie toe aan load balancer",
+    "label.assign.vms": "wijs VMs toe",
+    "label.assigned.vms": "toegewezen VMs",
+    "label.associate.public.ip": "Associeers Publiek IP",
+    "label.associated.network": "Bijbehorend Netwerk",
+    "label.associated.network.id": "Bijbehorend Netwerk ID",
+    "label.associated.profile": "Bijbehorend Profiel",
+    "label.attached.iso": "Gekoppelde ISO",
+    "label.author.email": "Auteur e-mail",
+    "label.author.name": "Auteur naam",
+    "label.autoscale": "Automatisch Schalen",
+    "label.autoscale.configuration.wizard": "autoschaal configuratie toverdoos",
+    "label.availability": "Beschikbaarheid",
+    "label.availability.zone": "Beschikbaarheids-zone",
+    "label.availabilityZone": "beschikbaarheidszone",
+    "label.available": "Beschikbaar",
+    "label.available.public.ips": "Beschikbare Publieke IP adressen",
+    "label.back": "Terug",
+    "label.bandwidth": "Bandbreedte",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP Apparten",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP Provider",
+    "label.baremetal.pxe.device": "Voeg Baremetal PXE Apparaat toe",
+    "label.baremetal.pxe.devices": "Baremetal DHCP Apparaten",
+    "label.baremetal.pxe.provider": "Baremetal PXE Provider",
+    "label.baremetal.rack.configuration": "baremetal rek configuratie",
+    "label.basic": "Basis",
+    "label.basic.mode": "Basis Modus",
+    "label.bigswitch.bcf.details": "BigSwitch BCF gegevens",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT staat aan",
+    "label.bigswitch.controller.address": "BigSwitch BCF Controller adres",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blades",
+    "label.bootable": "Bootable",
+    "label.broadcast.domain.range": "Broadcast domain range",
+    "label.broadcast.domain.type": "Broadcast Domain Type",
+    "label.broadcast.uri": "Broadcast URI",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "broadcast URI",
+    "label.brocade.vcs.address": "Vcs switch adres",
+    "label.brocade.vcs.details": "Brocade Vcs switch gegevens",
+    "label.by.account": "Op Account",
+    "label.by.alert.type": "Op alarm type",
+    "label.by.availability": "Op Beschikbaarheid",
+    "label.by.date.end": "Op datum (eind)",
+    "label.by.date.start": "Op datum (start)",
+    "label.by.domain": "Op Domein",
+    "label.by.end.date": "Op Eind Datum",
+    "label.by.event.type": "Op gebeurtenis type",
+    "label.by.level": "Op Level",
+    "label.by.pod": "Op Pod",
+    "label.by.role": "Op Rol",
+    "label.by.start.date": "Op Start Datum",
+    "label.by.state": "Op Staat",
+    "label.by.traffic.type": "Op Verkeerstype",
+    "label.by.type": "Op Type",
+    "label.by.type.id": "Op Type ID",
+    "label.by.zone": "Op Zone",
+    "label.bytes.received": "Bytes Ontvangen",
+    "label.bytes.sent": "Bytes Verzonden",
+    "label.cache.mode": "Schrijf cache Type",
+    "label.cancel": "Annuleer",
+    "label.capacity": "Capaciteit",
+    "label.capacity.bytes": "Capaciteit in bytes",
+    "label.capacity.iops": "Capaciteit in IOPS",
+    "label.certificate": "Certificaat",
+    "label.change.affinity": "Wijzig Affinity",
+    "label.change.ipaddress": "Verander het IP adres voor NIC",
+    "label.change.service.offering": "Wijzig service aanbieding",
+    "label.change.value": "Wijzig waarde",
+    "label.character": "Karakter",
+    "label.chassis": "Chassis",
+    "label.checksum": "controlesom",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDRN of Account/Security Group",
+    "label.cidr.list": "Bron CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP Adres",
+    "label.cisco.nexus1000v.password": "Nexus 1000v Wachtwoord",
+    "label.cisco.nexus1000v.username": "Nexus 1000v Gebruikersnaam",
+    "label.ciscovnmc.resource.details": "CiscoVNMC resource details",
+    "label.clean.up": "Opschonen",
+    "label.clear.list": "Schoon lijst op",
+    "label.close": "Sluiten",
+    "label.cloud.console": "Cloud Beheers Console",
+    "label.cloud.managed": "Cloud.com Managed",
+    "label.cluster": "Cluster",
+    "label.cluster.name": "Cluster Naam",
+    "label.cluster.type": "Cluster Type",
+    "label.clusters": "Clusters",
+    "label.clvm": "CLVM",
+    "label.code": "Code",
+    "label.community": "Community",
+    "label.compute": "Compute",
+    "label.compute.and.storage": "Compute en Opslag",
+    "label.compute.offering": "Compute aanbieding",
+    "label.compute.offerings": "Compute aanbiedingen",
+    "label.configuration": "Configuratie",
+    "label.configure": "Configureer",
+    "label.configure.ldap": "Configureer LDAP",
+    "label.configure.network.ACLs": "Configureer Netwerk ACLs",
+    "label.configure.sticky.policy": "configureer klevende regel",
+    "label.configure.vpc": "Configureer VPC",
+    "label.confirm.password": "Bevestig wachtwoord",
+    "label.confirmation": "Bevestiging",
+    "label.congratulations": "Gefeliciteerd!",
+    "label.conserve.mode": "Conserveer modus",
+    "label.console.proxy": "Console proxy",
+    "label.console.proxy.vm": "Console Proxy VM",
+    "label.continue": "Ga door",
+    "label.continue.basic.install": "Ga door met basis installatie",
+    "label.copying.iso": "bezig ISO te kopiëren",
+    "label.corrections.saved": "Correcties opgeslagen",
+    "label.counter": "teller",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU gebruik",
+    "label.cpu.allocated.for.VMs": "CPU gebruikt voor VMs",
+    "label.cpu.limits": "CPU limieten",
+    "label.cpu.mhz": "CPU (in MHz)",
+    "label.cpu.utilized": "CPU Verbruik",
+    "label.create.VPN.connection": "Nieuwe VPN connectie",
+    "label.create.nfs.secondary.staging.storage": "Creeer NFS staging secudaire opslag",
+    "label.create.nfs.secondary.staging.store": "Creeer NFS staging secudaire opslag",
+    "label.create.project": "Nieuw project",
+    "label.create.ssh.key.pair": "creëer een SSH sleutelpaar",
+    "label.create.template": "Nieuwe template",
+    "label.created": "Aangemaakt",
+    "label.created.by.system": "Aangemaakt door systeem",
+    "label.cross.zones": "Over Zones",
+    "label.custom": "Aangepast",
+    "label.custom.disk.iops": "Aangepaste IOPS",
+    "label.custom.disk.offering": "schijf aanbieding op maat",
+    "label.custom.disk.size": "Vrije schijf grootte",
+    "label.daily": "Dagelijkse",
+    "label.data.disk.offering": "Data Schijf Aanbieding",
+    "label.date": "Datum",
+    "label.day": "dag",
+    "label.day.of.month": "Dag van de Maand",
+    "label.day.of.week": "Dag van de Week",
+    "label.dc.name": "DC Naam",
+    "label.dead.peer.detection": "Dead Peer detectie",
+    "label.decline.invitation": "Sla uitnodiging af",
+    "label.dedicate": "Toewijden",
+    "label.dedicate.cluster": "Cluster toewijden",
+    "label.dedicate.host": "Host Toewijden",
+    "label.dedicate.pod": "Pod toewijden",
+    "label.dedicate.vlan.vni.range": "Toegewijde VLAN/VNI Range",
+    "label.dedicate.zone": "Zone toewijden",
+    "label.dedicated": "Toegewijd",
+    "label.dedicated.vlan.vni.ranges": "Toegewijde VLAN/VNI Ranges",
+    "label.default": "Standaard",
+    "label.default.egress.policy": "Standaard Uitgaande policy",
+    "label.default.use": "Standaard Gebruik",
+    "label.default.view": "Standaard Weergave",
+    "label.delete": "Verwijder",
+    "label.delete.BigSwitchBcf": "Verwijder BigSwitch BCF Controller",
+    "label.delete.BrocadeVcs": "Verwijder Brocade Vcs Switch",
+    "label.delete.F5": "Verwijder F5",
+    "label.delete.NetScaler": "Verwijder NetScaler",
+    "label.delete.NiciraNvp": "Verwijder Nvp Controller",
+    "label.delete.NuageVsp": "Verwijder Nuage VSD",
+    "label.delete.OpenDaylight.device": "OpenDaylight Controller verwijderen",
+    "label.delete.PA": "Verwijder Palo Alto",
+    "label.delete.SRX": "Verwijder SRX",
+    "label.delete.VPN.connection": "Verwijder VPN connectie",
+    "label.delete.VPN.customer.gateway": "Verwijder VPN Customer Gateway",
+    "label.delete.VPN.gateway": "Verwijder VPN Gateway",
+    "label.delete.acl.list": "verwijder ACL lijst",
+    "label.delete.affinity.group": "Verwijder Affinity Groep",
+    "label.delete.alerts": "Verwijder waarschuwingen",
+    "label.delete.baremetal.rack.configuration": "verwijder baremetal rek configuratie",
+    "label.delete.ciscoASA1000v": "verwijder CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "CiscoVNMC resource verwijderen",
+    "label.delete.events": "Verwijder gebeurtenissen",
+    "label.delete.gateway": "Verwijder gateway",
+    "label.delete.internal.lb": "verwijder interne LB",
+    "label.delete.portable.ip.range": "Porteerbare IP Range verwijderen",
+    "label.delete.profile": "Profiel Verwijderen",
+    "label.delete.project": "Verwijder project",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Secundaire Staging Opslag verwijderen",
+    "label.delete.ucs.manager": "Verwijder UCS Manager",
+    "label.delete.vpn.user": "Verwijder VPN gebruiker",
+    "label.deleting.failed": "Verwijderen Mislukt",
+    "label.deleting.processing": "Verwijderen....",
+    "label.deny": "Weigeren",
+    "label.deployment.planner": "Deployment planner",
+    "label.description": "Beschrijving",
+    "label.destination.physical.network.id": "Bestemming fysiek netwerk ID",
+    "label.destination.zone": "Bestemmingszone",
+    "label.destroy": "Verwijder",
+    "label.destroy.router": "Verwijder router",
+    "label.destroy.vm.graceperiod": "Respijt periode verwijderde VM",
+    "label.detaching.disk": "Ontkoppelen Schijf",
+    "label.details": "Details",
+    "label.device.id": "Apparaat ID",
+    "label.devices": "Apparaten",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "direct verbonden publieke IP",
+    "label.direct.ips": "Shared Netwerk IPs",
+    "label.disable.autoscale": "Autoscale uitschakelen",
+    "label.disable.host": "schakel host uit",
+    "label.disable.network.offering": "Netwerk Aanbieding Uitschakelen",
+    "label.disable.provider": "Provider uitschakelen",
+    "label.disable.vnmc.provider": "VNMC provider uitschakelen",
+    "label.disable.vpc.offering": "VPC aanbieding uitschakelen",
+    "label.disable.vpn": "VPN uitschakelen",
+    "label.disabled": "Uitgeschakeld",
+    "label.disabling.vpn.access": "Uitschakelen van VPN Toegang",
+    "label.disassociate.profile.blade": "Ontkoppel Profiel van Blade",
+    "label.disbale.vnmc.device": "VNMC apparaat uitschakelen",
+    "label.disk.allocated": "Schijfruimte gealloceerd",
+    "label.disk.bytes.read.rate": "Lees Snelheid Schijf (BPS)",
+    "label.disk.bytes.write.rate": "Schrijf Snelheid Schijf (BPS)",
+    "label.disk.iops.max": "Max IOPS",
+    "label.disk.iops.min": "Min IOPS",
+    "label.disk.iops.read.rate": "Lees Snelheid Schijf (IOPS)",
+    "label.disk.iops.total": "IOPS Totaal",
+    "label.disk.iops.write.rate": "Schrijf snelheid Schijf (IOPS)",
+    "label.disk.offering": "Schijf Aanbieding",
+    "label.disk.offering.details": "schijfe offerte gegevens",
+    "label.disk.provisioningtype": "Provisioning type",
+    "label.disk.read.bytes": "Schijf lezen (Bytes)",
+    "label.disk.read.io": "Schijf Lezen (IO)",
+    "label.disk.size": "Schijf Grootte",
+    "label.disk.size.gb": "Schijf Grootte (in GB)",
+    "label.disk.total": "Schijf Totaal",
+    "label.disk.volume": "Schijf Volume",
+    "label.disk.write.bytes": "Schijf Schrijven (Bytes)",
+    "label.disk.write.io": "Schijf Schrijven (IO)",
+    "label.diskoffering": "opslagaanbieding",
+    "label.display.name": "publieke naam",
+    "label.display.text": "Weergavetekst",
+    "label.distributedrouter": "gedistribueerde router",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Domein",
+    "label.domain.admin": "Domein Beheerder",
+    "label.domain.details": "domein gegevens",
+    "label.domain.id": "Domein ID",
+    "label.domain.lower": "domein",
+    "label.domain.name": "Domeinnaam",
+    "label.domain.router": "Domein router",
+    "label.domain.suffix": "DNS domein achtervoegsel (v.b., xyz.com)",
+    "label.done": "Klaar",
+    "label.double.quotes.are.not.allowed": "Aanhalingstekens zijn hier niet toegestaan",
+    "label.download.progress": "Download Voortgang",
+    "label.drag.new.position": "Sleep naar nieuwe positie",
+    "label.duration.in.sec": "duur (in sec)",
+    "label.dynamically.scalable": "Dynamisch Schaalbaar",
+    "label.edit": "Wijzig",
+    "label.edit.acl.rule": "wijzig ACL regel",
+    "label.edit.affinity.group": "Wijzig Affinity Groep",
+    "label.edit.lb.rule": "Wijzig LB regel",
+    "label.edit.network.details": "Wijzig netwerk details",
+    "label.edit.project.details": "Wijzig project details",
+    "label.edit.region": "Wijzig Regio",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "wijzig regel",
+    "label.edit.secondary.ips": "Weizig secundaire IPs",
+    "label.edit.tags": "Wijzig tags",
+    "label.edit.traffic.type": "Wijzig traffic type",
+    "label.edit.vpc": "Wijzig VPC",
+    "label.egress.default.policy": "Standaard uitgaande policy",
+    "label.egress.rule": "Uitgaande regel",
+    "label.egress.rules": "Uitgaande regels",
+    "label.elastic": "Elastisch",
+    "label.elastic.IP": "Elastisch IP",
+    "label.elastic.LB": "Elastisch LB",
+    "label.email": "Email",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Autoscale inschakelen",
+    "label.enable.host": "schakel host in",
+    "label.enable.network.offering": "Netwerk Aanbieding Inschakelen",
+    "label.enable.provider": "Provider inschakelen",
+    "label.enable.s3": "S3-gebaseerde Secondary Storage inschakelen",
+    "label.enable.swift": "Swift inschakelen",
+    "label.enable.vnmc.device": "VNMC appraat inschakelen",
+    "label.enable.vnmc.provider": "VNMC provider inschakelen",
+    "label.enable.vpc.offering": "VPC aanbieding inschakelen",
+    "label.enable.vpn": "VPN inschakelen",
+    "label.enabling.vpn": "VPN inschakelen",
+    "label.enabling.vpn.access": "VPN toegang inschakelen",
+    "label.end.IP": "Eind IP",
+    "label.end.port": "Eind Poort",
+    "label.end.reserved.system.IP": "Einde gereserveerde systeem IP",
+    "label.end.vlan": "Laatste VLAN",
+    "label.end.vxlan": "Laatste VXLAN",
+    "label.endpoint": "Endpoint",
+    "label.endpoint.or.operation": "Endpoint or Operation",
+    "label.enter.token": "Voer token in",
+    "label.error": "Fout",
+    "label.error.code": "Fout code",
+    "label.error.upper": "FOUT",
+    "label.esx.host": "ESX/ESXi Host",
+    "label.event": "gebeurtenis",
+    "label.event.archived": "gebeurtenis gearchiveerd",
+    "label.event.deleted": "gebeurtenis verwijderd",
+    "label.every": "elke",
+    "label.example": "Voorbeeld",
+    "label.expunge": "Ruim op",
+    "label.external.link": "Externe link",
+    "label.extractable": "Uitpakbaar",
+    "label.extractable.lower": "ophaalbaar",
+    "label.f5": "F5",
+    "label.f5.details": "F5 details",
+    "label.failed": "Mislukt",
+    "label.featured": "Voorgesteld",
+    "label.fetch.latest": "Haal laatste op",
+    "label.filterBy": "Filter per",
+    "label.fingerprint": "vinger afdruk",
+    "label.firewall": "Firewall",
+    "label.first.name": "Voornaam",
+    "label.firstname.lower": "voornaam",
+    "label.format": "Formaat",
+    "label.format.lower": "formaat",
+    "label.friday": "Vrijdag",
+    "label.full": "Volledig",
+    "label.full.path": "Volledig pad",
+    "label.gateway": "Gateway",
+    "label.general.alerts": "Algemene Waarschuwingen",
+    "label.generating.url": "Generen van URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS configuratie",
+    "label.gluster.volume": "Volume",
+    "label.go.step.2": "Ga naar Stap 2",
+    "label.go.step.3": "Ga naar Stap 3",
+    "label.go.step.4": "Ga naar Stap 4",
+    "label.go.step.5": "Ga naar Stap 5",
+    "label.gpu": "GPU",
+    "label.group": "Groep",
+    "label.group.by.account": "groepeer per account",
+    "label.group.by.cluster": "groepeer per cluster",
+    "label.group.by.pod": "groepeer per pod",
+    "label.group.by.zone": "groepeer per zone",
+    "label.group.optional": "Groep (Optioneel)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "toegewezen load balancing",
+    "label.gslb.assigned.lb.more": "Wijs meer load balancing toe",
+    "label.gslb.delete": "GSLB verwijderen",
+    "label.gslb.details": "GSLB details",
+    "label.gslb.domain.name": "GSLB Domein Naam",
+    "label.gslb.lb.details": "load balancing details",
+    "label.gslb.lb.remove": "verwijder load balancing van deze GSLB",
+    "label.gslb.lb.rule": "load balancing regel",
+    "label.gslb.service": "GSLB service",
+    "label.gslb.service.private.ip": "GSLB service Private IP",
+    "label.gslb.service.public.ip": "GSLB service Publiek IP",
+    "label.gslb.servicetype": "Service Type",
+    "label.guest": "Gast",
+    "label.guest.cidr": "Gast CIDR",
+    "label.guest.end.ip": "Gast eind IP",
+    "label.guest.gateway": "Gast Gateway",
+    "label.guest.ip": "Gast IP Adres",
+    "label.guest.ip.range": "Gast IP range",
+    "label.guest.netmask": "Gast Netmask",
+    "label.guest.network.details": "Gast netwerk details",
+    "label.guest.networks": "Gast netwerken",
+    "label.guest.start.ip": "Gast start IP",
+    "label.guest.traffic": "Gast verkeer",
+    "label.guest.traffic.vswitch.name": "vSwitch Gast Verkeer Naam",
+    "label.guest.traffic.vswitch.type": "vSwitch Gast Verkeer Type",
+    "label.guest.type": "Gast Type",
+    "label.ha.enabled": "HA ingeschakeld",
+    "label.health.check": "Health Check",
+    "label.health.check.advanced.options": "geavanceerde opties:",
+    "label.health.check.configurations.options": "configuratie opties:",
+    "label.health.check.interval.in.sec": "gezondheid check interval (in sec)",
+    "label.health.check.message.desc": "Uw load balancer zal automatisch gezondheidskeuringen op uw cloudstack instanties uitvoeren en allen verkeer routeren naar instanties die gezondheidskeuring doorstaan.",
+    "label.health.check.wizard": "gezondheids controle tovenaar",
+    "label.healthy.threshold": "gezonde marge",
+    "label.help": "Help",
+    "label.hide.ingress.rule": "Verberg Inkomende Regel",
+    "label.hints": "Tips",
+    "label.home": "Home",
+    "label.host": "Host",
+    "label.host.MAC": "Host MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Hostnaam",
+    "label.host.tag": "machine kenteken",
+    "label.host.tags": "Host Tags",
+    "label.hosts": "Hosts",
+    "label.hourly": "Uurlijks",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV verkeerslabel",
+    "label.hypervisor": "Hypervisor",
+    "label.hypervisor.capabilities": "Hypervisor mogelijkheden",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Snapshot Reserve",
+    "label.hypervisor.type": "Hypervisor Type",
+    "label.hypervisor.version": "Hypervisor versie",
+    "label.hypervisors": "Hypervisors",
+    "label.id": "ID",
+    "label.info": "Info",
+    "label.info.upper": "INFORMATIE",
+    "label.ingress.rule": "Inkomende Regel",
+    "label.initiated.by": "Geïnitieerd door",
+    "label.inside.port.profile": "binnen poort profiel",
+    "label.installWizard.addClusterIntro.subtitle": "Wat is een cluster?",
+    "label.installWizard.addClusterIntro.title": "Nu: Cluster toevoegen",
+    "label.installWizard.addHostIntro.subtitle": "Wat is een host?",
+    "label.installWizard.addHostIntro.title": "Nu: Host toevoegen",
+    "label.installWizard.addPodIntro.subtitle": "Wat is een pod?",
+    "label.installWizard.addPodIntro.title": "Nu: Pod toevoegen",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Wat is primary storage?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Nu: Primaire opslag toevoegen",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Wat is secundaire opslag?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Nu: Secundaire opslag toevoegen",
+    "label.installWizard.addZone.title": "Zone toevoegen",
+    "label.installWizard.addZoneIntro.subtitle": "Wat is een zone?",
+    "label.installWizard.addZoneIntro.title": "Nu: Zone toevoegen",
+    "label.installWizard.click.launch": "Klik op de lanceer knop.",
+    "label.installWizard.subtitle": "Deze rondleiding gaat je helpen met het uitvoeren van de CloudStack&#8482 installatie",
+    "label.installWizard.title": "Hallo en welkom bij CloudStack&#8482",
+    "label.instance": "Instantie",
+    "label.instance.limits": "Instantie Limieten",
+    "label.instance.name": "Instantie Naam",
+    "label.instance.port": "instantie poort",
+    "label.instance.scaled.up": "Instantie is geschaald naar de gevraagde aanbieding",
+    "label.instances": "Instanties",
+    "label.instanciate.template.associate.profile.blade": "Initieer Template en verbind Profiel met Blade",
+    "label.intermediate.certificate": "Intermediair certificaat {0}",
+    "label.internal.dns.1": "Interne DNS 1",
+    "label.internal.dns.2": "Interne DNS 2",
+    "label.internal.lb": "interne LB",
+    "label.internal.lb.details": "interne LB gegevens",
+    "label.internal.name": "Interne naam",
+    "label.internallbvm": "interne LBVM",
+    "label.interval.type": "Interval Type",
+    "label.introduction.to.cloudstack": "CloudStack&#8482 Introductie",
+    "label.invalid.integer": "Onjuiste Waarde",
+    "label.invalid.number": "Onjuist nummer",
+    "label.invitations": "Uitnodigingen",
+    "label.invite": "Uitnodigen",
+    "label.invite.to": "Nodig uit voor",
+    "label.invited.accounts": "Uitgenodigde accounts",
+    "label.ip": "IP",
+    "label.ip.address": "IP Adres",
+    "label.ip.allocations": "IP Allocaties",
+    "label.ip.limits": "Publieke IP Limieten",
+    "label.ip.or.fqdn": "IP of FQDN",
+    "label.ip.range": "IP Range",
+    "label.ip.ranges": "IP Ranges",
+    "label.ipaddress": "IP Adres",
+    "label.ips": "IPs",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 Eind IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4 Netmask",
+    "label.ipv4.start.ip": "IPv4 Begin IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP Address",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 Eind IP",
+    "label.ipv6.gateway": "IPv6 Gateway",
+    "label.ipv6.start.ip": "IPv6 Begin IP",
+    "label.is.default": "Is Standaard",
+    "label.is.redundant.router": "Redundant",
+    "label.is.shared": "Is Gedeeld",
+    "label.is.system": "Is Systeem",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO Boot",
+    "label.isolated.networks": "Geisoleerde netwerken",
+    "label.isolation.method": "Isolatie methode",
+    "label.isolation.mode": "Isolatie Modus",
+    "label.isolation.uri": "Isolatie URI",
+    "label.item.listing": "Items lijst",
+    "label.japanese.keyboard": "Japans toetsenbord",
+    "label.keep": "Bewaar",
+    "label.keep.colon": "bewaar:",
+    "label.key": "Sleutel",
+    "label.keyboard.language": "toetsenbord taal",
+    "label.keyboard.type": "Toetsenbord type",
+    "label.kvm.traffic.label": "KVM verkeer label",
+    "label.label": "Label",
+    "label.lang.arabic": "Arabisch",
+    "label.lang.brportugese": "Braziliaans Portgees",
+    "label.lang.catalan": "Catalaans",
+    "label.lang.chinese": "Chinees (Simplified)",
+    "label.lang.dutch": "Nederlands (Nederlands)",
+    "label.lang.english": "Engels",
+    "label.lang.french": "Frans",
+    "label.lang.german": "Duits",
+    "label.lang.hungarian": "Hongaars",
+    "label.lang.italian": "Italiaans",
+    "label.lang.japanese": "Japans",
+    "label.lang.korean": "Koreans",
+    "label.lang.norwegian": "Noors",
+    "label.lang.polish": "Pools",
+    "label.lang.russian": "Russisch",
+    "label.lang.spanish": "Spaans",
+    "label.last.disconnected": "Laatse keer niet verbonden",
+    "label.last.name": "Achternaam",
+    "label.lastname.lower": "achternaam",
+    "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.ldap.configuration": "LDAP Configuratie",
+    "label.ldap.group.name": "LDAP Groep",
+    "label.ldap.link.type": "Type",
+    "label.ldap.port": "LDAP poort",
+    "label.level": "Level",
+    "label.link.domain.to.ldap": "link domein aan LDAP",
+    "label.linklocal.ip": "Link Local IP Adres",
+    "label.load.balancer": "Load Balancer",
+    "label.load.balancer.type": "loadbalancer type",
+    "label.load.balancing": "Load Balancing",
+    "label.load.balancing.policies": "Load balancing policies",
+    "label.loading": "Laden",
+    "label.local": "Lokaal",
+    "label.local.file": "lokaal bestand",
+    "label.local.storage": "Lokale Opslag",
+    "label.local.storage.enabled": "Schakel locale opslag voor gebruiker VMs in",
+    "label.local.storage.enabled.system.vms": "zet lokale opslag voor systeem VMs aan",
+    "label.login": "Login",
+    "label.logout": "Log uit",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC verkeerslabel",
+    "label.make.project.owner": "Maak account project eigenaar",
+    "label.make.redundant": "Maak redundant",
+    "label.manage": "Beheer",
+    "label.manage.resources": "Beheer Resources",
+    "label.managed": "beheerd(e)",
+    "label.management": "Beheer",
+    "label.management.ips": "Beheers IP Adressen",
+    "label.management.server": "Beheers Machine",
+    "label.max.cpus": "Max. CPU cores",
+    "label.max.guest.limit": "Max. Instanties",
+    "label.max.instances": "Max Instances",
+    "label.max.memory": "Max. geheugen (MiB)",
+    "label.max.networks": "Max. netwerken",
+    "label.max.primary.storage": "Max. primare opslag (GiB)",
+    "label.max.public.ips": "Max. publieke IPs",
+    "label.max.secondary.storage": "Max. secundaire opslag (GiB)",
+    "label.max.snapshots": "Max. snapshots",
+    "label.max.templates": "Max. templates",
+    "label.max.vms": "Max. VMs per gebruiker",
+    "label.max.volumes": "Max. volumes",
+    "label.max.vpcs": "Max. VPCs",
+    "label.maximum": "Maximaal",
+    "label.may.continue": "U kunt nu verder gaan.",
+    "label.md5.checksum": "MD5 checksum",
+    "label.memory": "Geheugen",
+    "label.memory.allocated": "Geheugen Gealloceerd",
+    "label.memory.limits": "Geheugen limieten (MiB)",
+    "label.memory.mb": "Geheugen (in MB)",
+    "label.memory.total": "Totaal Geheugen",
+    "label.memory.used": "Geheugen gebruikt",
+    "label.menu.accounts": "Accounts",
+    "label.menu.alerts": "Waarschuwingen",
+    "label.menu.all.accounts": "Alle Accounts",
+    "label.menu.all.instances": "Alle Instanties",
+    "label.menu.community.isos": "Community ISOs",
+    "label.menu.community.templates": "Community Templates",
+    "label.menu.configuration": "Configuratie",
+    "label.menu.dashboard": "Dashboard",
+    "label.menu.destroyed.instances": "Vernietigde Instanties",
+    "label.menu.disk.offerings": "Schijf Aanbiedingen",
+    "label.menu.domains": "Domeinen",
+    "label.menu.events": "Gebeurtenissen",
+    "label.menu.featured.isos": "Voorgestelde ISOs",
+    "label.menu.featured.templates": "Voorgestelde Templates",
+    "label.menu.global.settings": "Algemene Instellingen",
+    "label.menu.infrastructure": "Infrastructuur",
+    "label.menu.instances": "Instanties",
+    "label.menu.ipaddresses": "IP Adressen",
+    "label.menu.isos": "ISOs",
+    "label.menu.my.accounts": "Mijn Accounts",
+    "label.menu.my.instances": "Mijn Instanties",
+    "label.menu.my.isos": "Mijn ISOs",
+    "label.menu.my.templates": "Mijn Templates",
+    "label.menu.network": "Netwerk",
+    "label.menu.network.offerings": "Netwerk Aanbiedingen",
+    "label.menu.physical.resources": "Fysieke Resources",
+    "label.menu.regions": "Regio's",
+    "label.menu.running.instances": "Draaiende Instanties",
+    "label.menu.security.groups": "Security Groups",
+    "label.menu.service.offerings": "Service Aanbiedingen",
+    "label.menu.snapshots": "Snapshots",
+    "label.menu.sshkeypair": "SSH sleutelpaar",
+    "label.menu.stopped.instances": "Uitgeschakelde Instanties",
+    "label.menu.storage": "Opslag",
+    "label.menu.system": "Systeem",
+    "label.menu.system.service.offerings": "Systeem Aanbiedingen",
+    "label.menu.system.vms": "Systeem VMs",
+    "label.menu.templates": "Templates",
+    "label.menu.virtual.appliances": "Virtueele Appliances",
+    "label.menu.virtual.resources": "Virtuele Resources",
+    "label.menu.volumes": "Volumes",
+    "label.menu.vpc.offerings": "VPC Aanbiedingen",
+    "label.metrics": "meet-gegevens",
+    "label.metrics.allocated": "Gebruikt",
+    "label.metrics.clusters": "Clusters",
+    "label.metrics.cpu.allocated": "CPU allocatie",
+    "label.metrics.cpu.max.dev": "afwijking",
+    "label.metrics.cpu.total": "totaal",
+    "label.metrics.cpu.usage": "CPU gebruik",
+    "label.metrics.cpu.used.avg": "Gebruikt",
+    "label.metrics.disk": "schijf",
+    "label.metrics.disk.allocated": "Gebruikt",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "lees",
+    "label.metrics.disk.size": "Grootte",
+    "label.metrics.disk.storagetype": "Type",
+    "label.metrics.disk.total": "totaal",
+    "label.metrics.disk.unallocated": "niet-toegekend",
+    "label.metrics.disk.usage": "schijf gebruik",
+    "label.metrics.disk.used": "Gebruikt",
+    "label.metrics.disk.write": "schrijf",
+    "label.metrics.hosts": "Hosts",
+    "label.metrics.memory.allocated": "geheugen allocatie",
+    "label.metrics.memory.max.dev": "afwijking",
+    "label.metrics.memory.total": "totaal",
+    "label.metrics.memory.usage": "geheugen gebruik",
+    "label.metrics.memory.used.avg": "Gebruikt",
+    "label.metrics.name": "Naam",
+    "label.metrics.network.read": "lees",
+    "label.metrics.network.usage": "netwerk gebruik",
+    "label.metrics.network.write": "schrijf",
+    "label.metrics.num.cpu.cores": "kernen",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "eigenschap",
+    "label.metrics.scope": "Scope",
+    "label.metrics.state": "Staat",
+    "label.metrics.storagepool": "opslag poel",
+    "label.metrics.vm.name": "VM naam",
+    "label.migrate.instance.to": "Migreer instantie naar",
+    "label.migrate.instance.to.host": "Migreer instantie naar andere host",
+    "label.migrate.instance.to.ps": "Migreer instantie naar andere primaire opslag",
+    "label.migrate.lb.vm": "Migreer LB VM",
+    "label.migrate.router.to": "Migreer Router naar",
+    "label.migrate.systemvm.to": "Migreer Systeem VM naar",
+    "label.migrate.to.host": "Migreer naar host",
+    "label.migrate.to.storage": "Migreer naar opslag",
+    "label.migrate.volume": "Migreer volume",
+    "label.migrate.volume.to.primary.storage": "Migreer volume naar andere primaire opslag",
+    "label.min.instances": "Min Instances",
+    "label.min.past.the.hr": "min na het uur",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "Minuten na het uur",
+    "label.minutes.past.hour": "minu(u)t(en) in het laatste uur",
+    "label.mode": "Modus",
+    "label.monday": "Maandag",
+    "label.monthly": "Maandelijks",
+    "label.more.templates": "Meer Templates",
+    "label.move.down.row": "Verplaats één regel naar beneden",
+    "label.move.to.bottom": "Verplaats naar beneden",
+    "label.move.to.top": "Verplaats naar boven",
+    "label.move.up.row": "Verplaats één regel naar boven",
+    "label.my.account": "Mijn Account",
+    "label.my.network": "Mijn netwerk",
+    "label.my.templates": "Mijn templates",
+    "label.na": "N/A",
+    "label.name": "Naam",
+    "label.name.lower": "naam",
+    "label.name.optional": "Naam (Optioneel)",
+    "label.nat.port.range": "NAT Poort Range",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Netmask",
+    "label.netscaler.details": "NetScaler details",
+    "label.network": "Netwerk",
+    "label.network.ACL": "Netwerk ACL",
+    "label.network.ACL.total": "Netwerk ACL Totaal",
+    "label.network.ACLs": "Netwerk ACLs",
+    "label.network.addVM": "Voeg netwerk toe aan VM",
+    "label.network.cidr": "Network CIDR",
+    "label.network.desc": "Netwerk  Beschr.",
+    "label.network.details": "netwerk details",
+    "label.network.device": "Netwerk Apparaat",
+    "label.network.device.type": "Netwerk Apparaat Type",
+    "label.network.domain": "Netwerk Domein",
+    "label.network.domain.text": "Netwerk Domein",
+    "label.network.id": "Netwerk ID",
+    "label.network.label.display.for.blank.value": "Gebruik standaard gateway",
+    "label.network.limits": "Netwerk limieten",
+    "label.network.name": "Netwerk Naam",
+    "label.network.offering": "Netwerk Aanbieding",
+    "label.network.offering.details": "netwerk offerte gegevens",
+    "label.network.offering.display.text": "Netwerk Aanbieding Weergave Tekst",
+    "label.network.offering.id": "Netwerk Aanbieding ID",
+    "label.network.offering.name": "Netwerk Aanbieding Naam",
+    "label.network.rate": "Netwerk Snelheid (Mb/s)",
+    "label.network.rate.megabytes": "Netwerk Snelheid (MB/s)",
+    "label.network.read": "Netwerk gelezen",
+    "label.network.service.providers": "Netwerk Service Aanbieders",
+    "label.network.type": "Netwerk Type",
+    "label.network.write": "Netwerk geschreven",
+    "label.networking.and.security": "Netwerken en beveiliging",
+    "label.networks": "Netwerken",
+    "label.new": "Nieuw",
+    "label.new.password": "Nieuw wachtwoord",
+    "label.new.project": "Nieuw Project",
+    "label.new.ssh.key.pair": "nieuw SSH sleutelpaar",
+    "label.new.vm": "Nieuwe VM",
+    "label.next": "Volgende",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS Server",
+    "label.nfs.storage": "NFS Opslag",
+    "label.nic.adapter.type": "NIC adapter type",
+    "label.nicira.controller.address": "Controller Adres",
+    "label.nicira.l2gatewayserviceuuid": "L2 gateway service UUID",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP details",
+    "label.nicira.transportzoneuuid": "Transport Zone Uuid",
+    "label.nics": "NICs",
+    "label.no": "Nee",
+    "label.no.actions": "Geen Beschikbare Acties",
+    "label.no.alerts": "Geen Recente Waarschuwingen",
+    "label.no.data": "Geen data om weer te geven",
+    "label.no.errors": "Geen Recente Fouten",
+    "label.no.grouping": "(Geen groepering)",
+    "label.no.isos": "Geen beschikbare ISOs",
+    "label.no.items": "Geen Beschikbare Items",
+    "label.no.security.groups": "Geen Beschikbare Security Groups",
+    "label.no.thanks": "Nee bedankt",
+    "label.none": "Geen",
+    "label.not.found": "Niet gevonden",
+    "label.notifications": "Notificaties",
+    "label.num.cpu.cores": "Aantal CPU Cores",
+    "label.number.of.clusters": "Aantal Clusters",
+    "label.number.of.cpu.sockets": "Het aantal CPU sockets",
+    "label.number.of.hosts": "Aantal Hosts",
+    "label.number.of.pods": "Aantal Pods",
+    "label.number.of.system.vms": "Aantal Systeem VMs",
+    "label.number.of.virtual.routers": "Aantal Virtual Routers",
+    "label.number.of.zones": "Aantal Zones",
+    "label.numretries": "Keren opnieuw geprorbeerd",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "van de maand",
+    "label.offer.ha": "HA aanbieden",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight Controller",
+    "label.opendaylight.controllerdetail": "OpenDaylight Controller Details",
+    "label.opendaylight.controllers": "OpenDaylight Controllers",
+    "label.operator": "operator",
+    "label.optional": "Optioneel",
+    "label.order": "Volgorde",
+    "label.os.preference": "OS Voorkeur",
+    "label.os.type": "OS Type",
+    "label.other": "anders",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Actie",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Wachtwoord",
+    "label.outofbandmanagement.port": "Poort",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Gebruikersnaam",
+    "label.override.guest.traffic": "Overschrijf Gast Verkeer",
+    "label.override.public.traffic": "Overschrijf Publiek Verkeer",
+    "label.ovm.traffic.label": "OVM verkeerslabel",
+    "label.ovm3.cluster": "inheems clustering",
+    "label.ovm3.pool": "inheemse pooling",
+    "label.ovm3.traffic.label": "OVM3 verkeer etiket",
+    "label.ovm3.vip": "Master VIP IP ip",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Publieke IP Adressen in beheer",
+    "label.owner.account": "Account Eigenaar",
+    "label.owner.domain": "Domein Eigenaar",
+    "label.palo.alto.details": "Palo Alto details",
+    "label.parent.domain": "Bovenliggend Domein",
+    "label.passive": "passief",
+    "label.password": "Wachtwoord",
+    "label.password.enabled": "Wachtwoord Ingeschakeld",
+    "label.password.lower": "wachtwoord",
+    "label.password.reset.confirm": "Het wachtwoord is gereset naar",
+    "label.path": "Pad",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "Persistent",
+    "label.physical.network": "Fysiek Netwerk",
+    "label.physical.network.ID": "Fysiek netwerk ID",
+    "label.physical.network.name": "fysieke netwerk naam",
+    "label.ping.path": "ping pad",
+    "label.planner.mode": "Planner modus",
+    "label.please.complete.the.following.fields": "vul alstublieft de volgende velden volledig af",
+    "label.please.specify.netscaler.info": "Geef hier informatie van de Netscaler op",
+    "label.please.wait": "Een ogenblik geduld a.u.b.",
+    "label.plugin.details": "Plugin details",
+    "label.plugins": "Plugins",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod toegewijd",
+    "label.pod.name": "Pod Naam",
+    "label.pods": "Pods",
+    "label.polling.interval.sec": "Polling Interval (in sec)",
+    "label.port": "Poort",
+    "label.port.forwarding": "Port Forwarding",
+    "label.port.forwarding.policies": "Port forwarding policies",
+    "label.port.range": "Port Range",
+    "label.portable.ip": "verplaatsbaar IP",
+    "label.portable.ip.range.details": "Porteerbare IP Range details",
+    "label.portable.ip.ranges": "Porteerbare IP Ranges",
+    "label.portable.ips": "Porteerbare IPs",
+    "label.powerstate": "Power State",
+    "label.prev": "Terug",
+    "label.previous": "Vorige",
+    "label.primary.allocated": "Primaire Opslag Gealloceerd",
+    "label.primary.network": "Primair Netwerk",
+    "label.primary.storage": "Primaire Opslag",
+    "label.primary.storage.count": "Primaire Opslag Pools",
+    "label.primary.storage.limits": "Primaire Opslag limieten (GiB)",
+    "label.primary.used": "Primaire Opslag Gebruikt",
+    "label.private.Gateway": "Privé Gateway",
+    "label.private.interface": "Privé Interface",
+    "label.private.ip": "Privé IP Adres",
+    "label.private.ip.range": "Privé IP Range",
+    "label.private.ips": "Privé IP adressen",
+    "label.private.key": "privé sleutel",
+    "label.private.network": "Privé Netwerk",
+    "label.private.port": "Privé Port",
+    "label.private.zone": "Privé Zone",
+    "label.privatekey": "PKCS#8 Private Key",
+    "label.profile": "Profiel",
+    "label.project": "Project",
+    "label.project.dashboard": "Project Dashboard",
+    "label.project.id": "Project ID",
+    "label.project.invite": "Nodig uit voor project",
+    "label.project.name": "Project naam",
+    "label.project.view": "Project Weergave",
+    "label.projects": "Projecten",
+    "label.protocol": "Protocol",
+    "label.protocol.number": "protocol nummer",
+    "label.provider": "Provider",
+    "label.providers": "Providers",
+    "label.public": "Publiek",
+    "label.public.interface": "Publieke Interface",
+    "label.public.ip": "Publiek IP Adres",
+    "label.public.ips": "Publieke IP Adressen",
+    "label.public.key": "publieke sleutel",
+    "label.public.lb": "publieke LB",
+    "label.public.load.balancer.provider": "Publieke Load Balancer Provider",
+    "label.public.network": "Publiek netwerk",
+    "label.public.port": "Publieke Poort",
+    "label.public.traffic": "Publiek verkeer",
+    "label.public.traffic.vswitch.name": "vSwitch Publiek Verkeer Naam",
+    "label.public.traffic.vswitch.type": "vSwitch Publiek Verkeer Type",
+    "label.public.zone": "Publieke Zone",
+    "label.purpose": "Doel",
+    "label.qos.type": "QoS Type",
+    "label.quickview": "Sneloverzicht",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Quiet Time (in sec)",
+    "label.quota.add.credits": "voeg krediet toe",
+    "label.quota.balance": "balans",
+    "label.quota.configuration": "quota configuratie",
+    "label.quota.configure": "configureer quota",
+    "label.quota.credit": "krediet",
+    "label.quota.credits": "tegoeden",
+    "label.quota.date": "Datum",
+    "label.quota.dates": "bijwerken data",
+    "label.quota.description": "quota beschrijving",
+    "label.quota.email.body": "inhoud",
+    "label.quota.email.lastupdated": "laatste wijziging",
+    "label.quota.email.subject": "onderwerp",
+    "label.quota.email.template": "e-mail sjabloon",
+    "label.quota.enddate": "eind datum",
+    "label.quota.endquota": "eind quota",
+    "label.quota.enforcequota": "dwing quota af",
+    "label.quota.fullsummary": "Alle Accounts",
+    "label.quota.minbalance": "min balans",
+    "label.quota.remove": "verwijder quota",
+    "label.quota.startdate": "start datum",
+    "label.quota.startquota": "start quota",
+    "label.quota.state": "Staat",
+    "label.quota.statement": "verklaring",
+    "label.quota.statement.balance": "quota balans",
+    "label.quota.statement.bydates": "verklaring",
+    "label.quota.statement.quota": "quota gebruik",
+    "label.quota.statement.tariff": "quota tarief",
+    "label.quota.summary": "samenvatting",
+    "label.quota.tariff": "tarief",
+    "label.quota.tariff.edit": "wijzig tarief",
+    "label.quota.tariff.effectivedate": "effectieve datum",
+    "label.quota.tariff.value": "tarief waarde",
+    "label.quota.total": "totaal",
+    "label.quota.totalusage": "totaal gebruik",
+    "label.quota.type.name": "gebruik type",
+    "label.quota.type.unit": "gebruik eenheid",
+    "label.quota.usage": "quota verbruik",
+    "label.quota.value": "quota waarde",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx gebruiker",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "Reboot",
+    "label.recent.errors": "Recente Fouten",
+    "label.recover.vm": "Herstel VM",
+    "label.redundant.router": "Redundante Router",
+    "label.redundant.router.capability": "Redundante router mogelijkheden",
+    "label.redundant.state": "Redundante staat",
+    "label.redundant.vpc": "Redundante VPC",
+    "label.refresh": "Ververs",
+    "label.refresh.blades": "Ververs Blades",
+    "label.region": "Regio",
+    "label.region.details": "regio gegevens",
+    "label.regionlevelvpc": "Region Level VPC",
+    "label.reinstall.vm": "Herinstalleer VM",
+    "label.related": "Samenhangend",
+    "label.release.account": "Ontkoppel van Account",
+    "label.release.account.lowercase": "ontkoppel van account",
+    "label.release.dedicated.cluster": "Toegewijd Cluster loskoppelen",
+    "label.release.dedicated.host": "Toegewijde Host ontkoppelen",
+    "label.release.dedicated.pod": "Toegewijde Pod loskoppelen",
+    "label.release.dedicated.vlan.range": "Toegewijde VLAN range ontkoppelen",
+    "label.release.dedicated.zone": "Toegewijde zone ontkoppelen",
+    "label.remind.later": "Herinner me later",
+    "label.remove.ACL": "Verwijder ACL",
+    "label.remove.egress.rule": "Verwijder uitgaande regel",
+    "label.remove.from.load.balancer": "Verwijder Instantie van load balancer",
+    "label.remove.ingress.rule": "Verwijder inkomende regel",
+    "label.remove.ip.range": "Verwijder IP range",
+    "label.remove.ldap": "Verwijder LDAP",
+    "label.remove.network.offering": "Netwerk Aanbieding Verwijderen",
+    "label.remove.pf": "Verwijder port forwarding regel",
+    "label.remove.project.account": "Verwijder account van project",
+    "label.remove.region": "Verwijder Regio",
+    "label.remove.rule": "Verwijder regel",
+    "label.remove.ssh.key.pair": "verwijder SSH sleutelpaar",
+    "label.remove.static.nat.rule": "Verwijder static NAT regel",
+    "label.remove.static.route": "Verwijder statische route",
+    "label.remove.this.physical.network": "verwijder dit fysieke netwerk",
+    "label.remove.tier": "Verwijder tier",
+    "label.remove.vm.from.lb": "Verwijder VM van load balancer regel",
+    "label.remove.vm.load.balancer": "verwijder VM uit de load balancer",
+    "label.remove.vmware.datacenter": "VMware datacenter verwijderen",
+    "label.remove.vpc": "verwijder VPC",
+    "label.remove.vpc.offering": "VPC aanbieding verwijderen",
+    "label.removing": "Verwijderen",
+    "label.removing.user": "Verwijderen Gebruiker",
+    "label.reource.id": "Verbruik ID",
+    "label.replace.acl": "vervang ACL",
+    "label.replace.acl.list": "vervang ACL lijst",
+    "label.required": "Vereist",
+    "label.requires.upgrade": "Upgrade Benodigd",
+    "label.reserved.ip.range": "Gereserveerde IP Range",
+    "label.reserved.system.gateway": "Gereseveerde systeem gateway",
+    "label.reserved.system.ip": "Gereserveerd Systeem IP",
+    "label.reserved.system.netmask": "Gereserveerd systeem netmask",
+    "label.reset.VPN.connection": "Reset VPN verbinding",
+    "label.reset.ssh.key.pair": "zet SSH sleutelpaar terug",
+    "label.reset.ssh.key.pair.on.vm": "zet SSH sleutelpaar terug op VM",
+    "label.resetVM": "Reset VM",
+    "label.resize.new.offering.id": "Nieuwe Aanbieding",
+    "label.resize.new.size": "Nieuwe grootte (GB)",
+    "label.resize.shrink.ok": "Verklein OK",
+    "label.resource": "Verbruik",
+    "label.resource.limit.exceeded": "resource limiet overschreden",
+    "label.resource.limits": "Verbruikslimieten",
+    "label.resource.name": "Verbruik Naam",
+    "label.resource.state": "Verbruik staat",
+    "label.resources": "Verbruiken",
+    "label.response.timeout.in.sec": "antwoord wachttijd (in sec)",
+    "label.restart.network": "Herstart netwerk",
+    "label.restart.required": "Herstart benodigd",
+    "label.restart.vpc": "herstart VPC",
+    "label.restore": "Herstel",
+    "label.retry.interval": "Wachttijd voor nieuwe poging",
+    "label.review": "Beoordeel",
+    "label.revoke.project.invite": "Trek uitnodiging in",
+    "label.role": "Rol",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "root certificaat",
+    "label.root.disk.controller": "Root schijf controller",
+    "label.root.disk.offering": "Root Schijf Aanbieding",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "Router VM Omhoog  Geschaald",
+    "label.routing": "Routing",
+    "label.routing.host": "routeer machine",
+    "label.rule": "Rule",
+    "label.rule.number": "Regel Nummer",
+    "label.rules": "Regels",
+    "label.running.vms": "Draaiende VMs",
+    "label.s3.access_key": "Toegangssleutel",
+    "label.s3.bucket": "Bucket",
+    "label.s3.connection_timeout": "Connectie Timeout",
+    "label.s3.endpoint": "Endpoint",
+    "label.s3.max_error_retry": "Max. opnieuw proberen na Fout",
+    "label.s3.nfs.path": "S3 NFS Pad",
+    "label.s3.nfs.server": "S3 NFS Server",
+    "label.s3.secret_key": "Geheime sleutel",
+    "label.s3.socket_timeout": "Socket Timeout",
+    "label.s3.use_https": "Gebruik HTTPS",
+    "label.saml.enable": "authoriseer SAML SSO",
+    "label.saml.entity": "identificeer leverancier",
+    "label.saturday": "Zaterdag",
+    "label.save": "Opslaan",
+    "label.save.and.continue": "Opslaan en verder gaan",
+    "label.save.changes": "Bewaar wijzigingen",
+    "label.saving.processing": "Opslaan....",
+    "label.scale.up.policy": "schaal op beleid",
+    "label.scaledown.policy": "verklein beleid",
+    "label.scaleup.policy": "vergoot beleid",
+    "label.scope": "Scope",
+    "label.search": "Zoeken",
+    "label.secondary.ips": "Secundaire IPs",
+    "label.secondary.isolated.vlan.id": "Secundair Geisoleerd VLAN ID",
+    "label.secondary.staging.store": "Secundaire Staging Opslag",
+    "label.secondary.staging.store.details": "Secundaire Staging Opslag details",
+    "label.secondary.storage": "Secundaire Opslag",
+    "label.secondary.storage.count": "Secundaire Opslag Pools",
+    "label.secondary.storage.details": "Secundaire Opslag details",
+    "label.secondary.storage.limits": "Secundaire Opslag limieten (GiB)",
+    "label.secondary.storage.vm": "Secundaire Opslag VM",
+    "label.secondary.used": "Secundaire Opslag Gebruikt",
+    "label.secret.key": "Geheime sleutel",
+    "label.security.group": "Security Group",
+    "label.security.group.name": "Security Group Naam",
+    "label.security.groups": "Security Groups",
+    "label.security.groups.enabled": "Security Groups Ingeschakeld",
+    "label.select": "Selecteer",
+    "label.select-view": "Selecteer Weergave",
+    "label.select.a.template": "Selecteer een template",
+    "label.select.a.zone": "Selecteer een zone",
+    "label.select.instance": "Selecteer een instance",
+    "label.select.instance.to.attach.volume.to": "Selecteer een instance om het volume aan te koppelen",
+    "label.select.iso.or.template": "Selecteer een ISO of template",
+    "label.select.offering": "Selecteer Aanbieding",
+    "label.select.project": "Selecteer Project",
+    "label.select.region": "Select regio",
+    "label.select.template": "Selecteer Template",
+    "label.select.tier": "Selecteer Tier",
+    "label.select.vm.for.static.nat": "Selecteer VM voor static NAT",
+    "label.sent": "Verstuurd",
+    "label.server": "Server",
+    "label.service.capabilities": "Service Mogelijkheden",
+    "label.service.offering": "Service Aanbieding",
+    "label.service.offering.details": "dienst offerte gegevens",
+    "label.service.state": "Service Status",
+    "label.services": "Diensten",
+    "label.session.expired": "Sessie Verlopen",
+    "label.set.default.NIC": "Stel standaard NIC in",
+    "label.set.up.zone.type": "Stel zone type in",
+    "label.settings": "Instellingen",
+    "label.setup": "Instellen",
+    "label.setup.network": "creëer netwerk",
+    "label.setup.zone": "creëer zone",
+    "label.shared": "Gedeeld",
+    "label.show.advanced.settings": "Geavaceerde instellingen weergeven",
+    "label.show.ingress.rule": "Toon Inkomende Regel",
+    "label.shutdown.provider": "Schakel provider uit",
+    "label.simplified.chinese.keyboard": "versimpeld Chinees toetsenbord",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Grootte",
+    "label.skip.guide": "Ik heb CloudStack al eerder gebruikt, sla deze stap over",
+    "label.smb.domain": "SMB Domein",
+    "label.smb.password": "SMB Wachtwoord",
+    "label.smb.username": "SMB Gebruikersnaam",
+    "label.snapshot": "Snapshot",
+    "label.snapshot.limits": "Snapshot Limieten",
+    "label.snapshot.name": "Snapshot Naam",
+    "label.snapshot.s": "Snapshots",
+    "label.snapshot.schedule": "creëer herhaalde momentopname",
+    "label.snapshots": "Snapshots",
+    "label.sockets": "CPU Sockets",
+    "label.source.ip.address": "bron IP adres",
+    "label.source.nat": "Source NAT",
+    "label.source.nat.supported": "SourceNAT ondersteund",
+    "label.source.port": "bron poort",
+    "label.specify.IP.ranges": "Specificeer IP ranges",
+    "label.specify.vlan": "Specificeer VLAN",
+    "label.specify.vxlan": "Specificeer VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX details",
+    "label.ssh.key.pair": "SSH sleutelpaar",
+    "label.ssh.key.pair.details": "SSH sleutelpaar gegevens",
+    "label.ssh.key.pairs": "SSH sleutel paren",
+    "label.standard.us.keyboard": "standaard (Amerikaans-US) toetsenbord",
+    "label.start.IP": "Start IP",
+    "label.start.lb.vm": "Start LB VM",
+    "label.start.port": "Start Poort",
+    "label.start.reserved.system.IP": "Start gereseveerd systeem IP",
+    "label.start.vlan": "start VLAN",
+    "label.start.vxlan": "start VXLAN",
+    "label.state": "Staat",
+    "label.static.nat": "Static NAT",
+    "label.static.nat.enabled": "Static NAT Ingeschakeld",
+    "label.static.nat.to": "Static NAT naar",
+    "label.static.nat.vm.details": "Static NAT VM Details",
+    "label.static.routes": "statische routes",
+    "label.statistics": "Statistieken",
+    "label.status": "Status",
+    "label.step.1": "Stap 1",
+    "label.step.1.title": "Stap 1: <strong>Selecteer een Template</strong>",
+    "label.step.2": "Stap 2",
+    "label.step.2.title": "Stap 2: <strong>Service Aanbieding</strong>",
+    "label.step.3": "Stap 3",
+    "label.step.3.title": "Stap 4: <strong id=\"step3_label\">Selecteer een Schijf Aanbieding</strong>",
+    "label.step.4": "Stap 4",
+    "label.step.4.title": "Stap 4: <strong>Netwerk</strong>",
+    "label.step.5": "Stap 5",
+    "label.step.5.title": "Stap 5: <strong>Beoordeel</strong>",
+    "label.stickiness": "Stickiness",
+    "label.stickiness.method": "kleef methode",
+    "label.sticky.cookie-name": "Cookie naam",
+    "label.sticky.domain": "Domein",
+    "label.sticky.expire": "Verloopt",
+    "label.sticky.holdtime": "Wacht tijd",
+    "label.sticky.indirect": "Indirect",
+    "label.sticky.length": "Lengte",
+    "label.sticky.mode": "Modus",
+    "label.sticky.name": "klevende naam",
+    "label.sticky.nocache": "Geen cache",
+    "label.sticky.postonly": "Alleen Post",
+    "label.sticky.prefix": "Prefix",
+    "label.sticky.request-learn": "Request learn",
+    "label.sticky.tablesize": "Tabel grootte",
+    "label.stop": "Stop",
+    "label.stop.lb.vm": "Stop LB VM",
+    "label.stopped.vms": "Uitgeschakelde VMs",
+    "label.storage": "Opslag",
+    "label.storage.pool": "opslag poel",
+    "label.storage.tags": "Opslag Tags",
+    "label.storage.traffic": "Opslag Verkeer",
+    "label.storage.type": "Opslag Type",
+    "label.subdomain.access": "Subdomein Toegang",
+    "label.submit": "Verstuur",
+    "label.submitted.by": "[Verstuurd door: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Geslaagd",
+    "label.sunday": "Zondag",
+    "label.super.cidr.for.guest.networks": "Super CIDR voor Gast Netwerken",
+    "label.supported.services": "Geondersteunde Diensten",
+    "label.supported.source.NAT.type": "Ondersteunde Source NAT type",
+    "label.supportsstrechedl2subnet": "Ondersteund Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "Pauzeer Project",
+    "label.switch.type": "Switch Type",
+    "label.system.capacity": "Systeem Capaciteit",
+    "label.system.offering": "Systeem Aanbieding",
+    "label.system.offering.for.router": "Systeem Aanbieding voor Router",
+    "label.system.service.offering": "Systeem Service Aanbieding",
+    "label.system.service.offering.details": "systeem dienst offerte gegevens:",
+    "label.system.vm": "Systeem VM",
+    "label.system.vm.details": "Systeem VM details",
+    "label.system.vm.scaled.up": "Systeem VM omhoog geschaald",
+    "label.system.vm.type": "Systeem VM type",
+    "label.system.vms": "Systeem VMs",
+    "label.system.wide.capacity": "Systeembreede capaciteit",
+    "label.tag.key": "Tag Sleutel",
+    "label.tag.value": "Tag Waarde",
+    "label.tagged": "Tagged",
+    "label.tags": "Tags",
+    "label.target.iqn": "Doel IQN",
+    "label.task.completed": "Taak uitgevoerd",
+    "label.template": "Template",
+    "label.template.limits": "Template Limieten",
+    "label.tftp.root.directory": "TFTP root directory",
+    "label.theme.default": "Standaard Thema",
+    "label.theme.grey": "Aangepast - Grijs",
+    "label.theme.lightblue": "Aangepast - Licht Blauw",
+    "label.threshold": "marge",
+    "label.thursday": "Donderdag",
+    "label.tier": "Tier",
+    "label.tier.details": "Tier details",
+    "label.time": "Tijd",
+    "label.time.colon": "tijd:",
+    "label.time.zone": "Tijdzone",
+    "label.timeout": "Timeout",
+    "label.timeout.in.second ": " timeout (seconden)",
+    "label.timezone": "Tijdzone",
+    "label.timezone.colon": "tijdszone:",
+    "label.token": "Token",
+    "label.total.CPU": "Totaal CPU",
+    "label.total.cpu": "Totaal CPU",
+    "label.total.hosts": "Totaal Hosts",
+    "label.total.memory": "Totaal Geheugen",
+    "label.total.of.ip": "totaal aantal IP adressen",
+    "label.total.of.vm": "Totaal VMs",
+    "label.total.storage": "Totaal Opslag",
+    "label.total.virtual.routers": "Totaal Virtual Routers",
+    "label.total.virtual.routers.upgrade": "Totaal Virtueele Routers die een ugrade nodig hebben",
+    "label.total.vms": "Totaal VMs",
+    "label.traffic.label": "Verkeerslabel",
+    "label.traffic.type": "Verkeer Type",
+    "label.traffic.types": "Verkeer Types",
+    "label.tuesday": "Dinsdag",
+    "label.type": "Type",
+    "label.type.id": "Type ID",
+    "label.type.lower": "type",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "Brits toetsenbord",
+    "label.unavailable": "Niet beschikbaar",
+    "label.unhealthy.threshold": "ongezonde marge",
+    "label.unlimited": "Ongelimiteerd",
+    "label.untagged": "Untagged",
+    "label.update.project.resources": "Update project verbruik",
+    "label.update.ssl": " SSL Certificaat",
+    "label.update.ssl.cert": " SSL Certificaat",
+    "label.updating": "Bezig met updaten",
+    "label.upgrade.required": "Upgrade is benodigd",
+    "label.upgrade.router.newer.template": "Upgrade Router om nieuwe Template te gebruiken",
+    "label.upload": "Upload",
+    "label.upload.from.local": "laad vanuit lokaal",
+    "label.upload.template.from.local": "laad sjabloon vanuit lokaal",
+    "label.upload.volume": "Upload Volume",
+    "label.upload.volume.from.local": "laad volume vanuit lokaal",
+    "label.upload.volume.from.url": "laad volume vanuit een webadres",
+    "label.url": "URL",
+    "label.usage.interface": "Verbruik Interface",
+    "label.usage.sanity.result": "gebruiks zingevings resultaat",
+    "label.usage.server": "gebruik server",
+    "label.usage.type": "gebruik type",
+    "label.usage.unit": "eenheid",
+    "label.use.vm.ip": "Gebruik VM IP:",
+    "label.use.vm.ips": "Gebruik VM IPs",
+    "label.used": "Gebruikt",
+    "label.user": "Gebruiker",
+    "label.user.data": "Gebruiker Data",
+    "label.user.details": "gebruikers gegevens",
+    "label.user.vm": "gebruiker VM",
+    "label.username": "Gebruikersnaam",
+    "label.username.lower": "gebruikersnaam",
+    "label.users": "Gebruikers",
+    "label.vSwitch.type": "vSwitch type",
+    "label.value": "Waarde",
+    "label.vcdcname": "vCenter DC naam",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter Cluster",
+    "label.vcenter.datacenter": "vCenter Datacenter",
+    "label.vcenter.datastore": "VCenter Datastore",
+    "label.vcenter.host": "vCenter Host",
+    "label.vcenter.password": "vCenter Wachtwoord",
+    "label.vcenter.username": "vCenter Gebruikersnaam",
+    "label.vcipaddress": "vCenter IP Adres",
+    "label.version": "Versie",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Maximale resolutie",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs per GPU",
+    "label.vgpu.remaining.capacity": "Overgebleven capaciteit",
+    "label.vgpu.type": "vCPU type",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Toon",
+    "label.view.all": "Toon alle",
+    "label.view.console": "Toon console",
+    "label.view.more": "Toon meer",
+    "label.view.secondary.ips": "Toon secundaire IPs",
+    "label.viewing": "Weergeven",
+    "label.virtual.appliance": "Virtuele Appliance",
+    "label.virtual.appliance.details": "Virtual applicance details",
+    "label.virtual.appliances": "Virtueele Appliances",
+    "label.virtual.machine": "virtuele machine",
+    "label.virtual.machines": "virtuele machines",
+    "label.virtual.network": "Virtueel Netwerk",
+    "label.virtual.networking": "Virtual Networking",
+    "label.virtual.router": "Virtuele Router",
+    "label.virtual.routers": "Virtuele Routers",
+    "label.virtual.routers.group.account": "Groepeer Virtuele Routers op account",
+    "label.virtual.routers.group.cluster": "Groepeer Virtuele Routers op cluster",
+    "label.virtual.routers.group.pod": "Groepeer Virtuele Routers op pod",
+    "label.virtual.routers.group.zone": "Groepeer Virtuele Routers op zone",
+    "label.vlan": "VLAN/VNI",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI Reeks",
+    "label.vlan.range.details": "VLAN Range details",
+    "label.vlan.ranges": "VLAN Range(s)",
+    "label.vlan.vni.range": "VLAN/VNI Reeks",
+    "label.vlan.vni.ranges": "VLAN/VNI Range(s)",
+    "label.vm.add": "Instantie Toevoegen",
+    "label.vm.destroy": "Verwijder",
+    "label.vm.display.name": "VM weergave naam",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP adres",
+    "label.vm.name": "VM naam",
+    "label.vm.password": "Het wachtwoord van de VM is",
+    "label.vm.reboot": "Reboot",
+    "label.vm.start": "Start",
+    "label.vm.state": "VM staat",
+    "label.vm.stop": "Stop",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMs",
+    "label.vmsnapshot": "VM Snapshots",
+    "label.vmsnapshot.current": "isHuidige",
+    "label.vmsnapshot.memory": "Snapshot geheugen",
+    "label.vmsnapshot.parentname": "Bovenliggend",
+    "label.vmsnapshot.type": "Type",
+    "label.vmware.datacenter.id": "VMware datacenter ID",
+    "label.vmware.datacenter.name": "VMware datacenter Naam",
+    "label.vmware.datacenter.vcenter": "VMware datacenter vcenter",
+    "label.vmware.traffic.label": "VMware verkeerslabel",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC apparaten",
+    "label.volatile": "Volatile",
+    "label.volgroup": "Volume Groep",
+    "label.volume": "Volume",
+    "label.volume.details": "volume gegevens",
+    "label.volume.limits": "Volume Limieten",
+    "label.volume.migrated": "volume gemigreerd",
+    "label.volume.name": "Volume Naam",
+    "label.volumes": "Volumes",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Gedistribueerde VPC Router",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "VPC Aanbieding",
+    "label.vpc.offering.details": "VPC Aanbieding details",
+    "label.vpc.router.details": "VPC router details",
+    "label.vpc.supportsregionlevelvpc": "Ondersteund Region Level VPC",
+    "label.vpc.virtual.router": "VPC Virtueele Router",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN Customer Gateway",
+    "label.vpn.force.encapsulation": "Forceer UDP Encapsulatie van ESP Packets",
+    "label.vsmctrlvlanid": "Controle VLAN ID",
+    "label.vsmpktvlanid": "Pakket VLAN ID",
+    "label.vsmstoragevlanid": "Opslag VLAN ID",
+    "label.vsphere.managed": "vSphere beheerd",
+    "label.vswitch.name": "vSwitch naam",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN Reeks",
+    "label.waiting": "Wachten",
+    "label.warn": "Waarschuwing",
+    "label.warn.upper": "WAARSCHUWING",
+    "label.warning": "waarschuwing",
+    "label.wednesday": "Woensdag",
+    "label.weekly": "Wekelijks",
+    "label.welcome": "Welkom",
+    "label.welcome.cloud.console": "Welkom op de Management Console",
+    "label.what.is.cloudstack": "Wat is CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "XenServer Tools Versie 6.1+",
+    "label.xenserver.traffic.label": "XenServer verkeerslabel",
+    "label.yes": "Ja",
+    "label.zone": "Zone",
+    "label.zone.dedicated": "Zone toegewijd",
+    "label.zone.details": "Zone details",
+    "label.zone.id": "Zone ID",
+    "label.zone.lower": "zone",
+    "label.zone.name": "zone naam",
+    "label.zone.step.1.title": "Stap 1: <strong>Selecteer een Netwerk</strong>",
+    "label.zone.step.2.title": "Stap 2: <strong>Zone toevoegen</strong>",
+    "label.zone.step.3.title": "Stap 3: <strong>Pod toevoegen</strong>",
+    "label.zone.step.4.title": "Step 4: <strong>IP range toevoegen</strong>",
+    "label.zone.type": "Type Zone",
+    "label.zone.wide": "Zone breed",
+    "label.zoneWizard.trafficType.guest": "Gast: Verkeer tussen virtuele machines van de eindgebruiker",
+    "label.zoneWizard.trafficType.management": "Management: Verkeer tussen CloudStack's interne resources zoals componenten die communiceren met de Management Server zoals hosts en CloudStack systeem VMs",
+    "label.zoneWizard.trafficType.public": "Publiek: Verkeer tussen het internet en virtueele machines in de cloud.",
+    "label.zoneWizard.trafficType.storage": "Opslag: Verkeer tussen de primaire en secundaire opslag servers zoals VM templates en snapshots",
+    "label.zones": "Zones",
+    "managed.state": "Beheersstaat",
+    "message.XSTools61plus.update.failed": "Kon XenServer Tools Version 6.1+ field niet updaten. Fout:",
+    "message.Zone.creation.complete": "De installatie van de zone is compleet",
+    "message.acquire.ip.nic": "Bevestig dat u een nieuw secundair IP voor deze netwerkkaart wilt verkrijgen. LET OP: U dient het secundaire IP adres handmatig te configureren binnen de virtueele machine.",
+    "message.acquire.new.ip": "Bevestigen dat je een nieuw IP voor dit netwerk wilt verkrijgen.",
+    "message.acquire.new.ip.vpc": "Bevestig dat u een nieuw IP wilt verkrijgen voor deze VPC.",
+    "message.acquire.public.ip": "Selecteer de zone waarvan u een nieuw IP wenst te verkrijgen.",
+    "message.action.cancel.maintenance": "Het onderhoud voor de host is succesvol geannuleerd. Het daadwerkelijke proces kan echter enkele minuten duren.",
+    "message.action.cancel.maintenance.mode": "Bevestig dat u het onderhoud wilt annuleren.",
+    "message.action.change.service.warning.for.instance": "Uw instantie moet uitgeschakeld zijn voordat u de service aanbieding kunt wijzigen.",
+    "message.action.change.service.warning.for.router": "Uw router moet uitgeschakeld zijn voordat u de service aanbieding kunt wijzigen.",
+    "message.action.delete.ISO": "Bevestig dat u deze ISO wilt verwijderen.",
+    "message.action.delete.ISO.for.all.zones": "Deze ISO wordt gebruikt door alle zones. Bevestig dat u deze wilt verwijderen van alle zones.",
+    "message.action.delete.cluster": "Bevestig dat u dit cluster wilt verwijderen.",
+    "message.action.delete.disk.offering": "Bevestig dat u deze schijf aanbieding wilt verwijderen.",
+    "message.action.delete.domain": "Bevestig dat u dit domein wilt verwijderen.",
+    "message.action.delete.external.firewall": "Bevestig dat u deze externe firewall wilt verwijderen. Waarschuwing: Als u van plan bent dezelfde firewall opnieuw toe te voegen, dient u de verbruiksstatistieken eerst te resetten.",
+    "message.action.delete.external.load.balancer": "Bevestig dat u deze externe loadbalancer wilt verwijderen. Waarschuwing: Als u van plan bent dezelfde loadbalancer opnieuw toe te voegen, dient u de verbruiksstatistieken eerst te resetten.",
+    "message.action.delete.ingress.rule": "Bevestig dat u deze inkomende regel wilt verwijderen.",
+    "message.action.delete.network": "Bevestig dat u dit netwerk wilt verwijderen.",
+    "message.action.delete.nexusVswitch": "Bevestig dat u deze nexus 1000v wilt verwijderen",
+    "message.action.delete.nic": "Bevestig dat u deze netwerkkaart wilt verwijderen, de VM zal ontkoppeld worden van het netwerk wat aan de netwerkkaart aangesloten zit.",
+    "message.action.delete.physical.network": "Bevestig dat u dit fysieke netwerk wilt verwijderen.",
+    "message.action.delete.pod": "Bevestig dat u deze pod wilt verwijderen.",
+    "message.action.delete.primary.storage": "Bevestig dat u deze primaire opslag wilt verwijderen.",
+    "message.action.delete.secondary.storage": "Bevestig dat u deze secudaire opslag wilt verwijderen.",
+    "message.action.delete.security.group": "Bevestig dat u deze security group wilt verwijderen.",
+    "message.action.delete.service.offering": "Bevestig dat u deze service aanbieding wilt verwijderen.",
+    "message.action.delete.snapshot": "Bevestig dat u deze snapshot wilt verwijderen.",
+    "message.action.delete.system.service.offering": "Bevestig dat u deze systeem service aanbieding wilt verwijderen.",
+    "message.action.delete.template": "Bevestig dat u deze template wilt verwijderen",
+    "message.action.delete.template.for.all.zones": "Deze template wordt gebruikt door alle zones. Bevestig dat u deze wilt verwijderen van alle zones.",
+    "message.action.delete.volume": "Bevestig dat u dit volume wilt verwijderen",
+    "message.action.delete.zone": "Bevestig dat u deze zone wilt verwijderen",
+    "message.action.destroy.instance": "Bevestig dat u deze instantie wilt vernietigen",
+    "message.action.destroy.systemvm": "Bevestig dat u deze Systeem VM wilt vernietigen",
+    "message.action.disable.cluster": "Bevestig dat u dit cluster wilt uitschakelen.",
+    "message.action.disable.nexusVswitch": "Bevestig dat u deze nexus 1000v wilt uitschakelen.",
+    "message.action.disable.physical.network": "Bevestig dat u dit fysieke netwerk wilt uitschakelen.",
+    "message.action.disable.pod": "Bevestig dat u deze pod wilt uitschakelen.",
+    "message.action.disable.static.NAT": "Bevestig dat u static NAT wilt uitschakelen.",
+    "message.action.disable.zone": "Bevestig dat u deze zone wilt uitschakelen.",
+    "message.action.download.iso": "Bevestig dat u deze ISO wilt downloaden.",
+    "message.action.download.template": "Bevestig dat u deze template wilt downloaden.",
+    "message.action.downloading.template": "Downloaden template.",
+    "message.action.enable.cluster": "Bevestig dat u dit cluster wilt inschakelen.",
+    "message.action.enable.maintenance": "Uw host is succesvol voorbereid op onderhoud. Het proces kan echter een paar minuten duren afhankelijk van de hoeveelheid VMs op de host.",
+    "message.action.enable.nexusVswitch": "Bevestig dat u deze nexus 1000v wilt inschakelen",
+    "message.action.enable.physical.network": "Bevestig dat u dit fysieke netwerk wilt inschakelen.",
+    "message.action.enable.pod": "Bevestigd dat u deze pod wilt inschakelen.",
+    "message.action.enable.zone": "Bevestig dat u deze zone wilt inschakelen.",
+    "message.action.expunge.instance": "Bevestig dat u deze instantie wilt opruimen",
+    "message.action.force.reconnect": "De host is succesvol geforceerd om opnieuw te verbinden. Dit proces kan echter enkele minuten duren.",
+    "message.action.host.enable.maintenance.mode": "Het inschakelen van de onderhoudsmodus zorgt ervoor dat alle draaiende instanties worden gemigreerd naar andere beschikbare hosts.",
+    "message.action.instance.reset.password": "Bevestig dat u het ROOT wachtwoord van deze virtueele machine wilt aanpassen.",
+    "message.action.manage.cluster": "Bevestig dat u dit cluster wilt beheren.",
+    "message.action.primarystorage.enable.maintenance.mode": "Waarschuwing: Wanneer u de primaire opslag in onderhoudsmodus plaatst, worden alle VMs die hier gebruik van maken gestopt. Weet u zeker dat u deze actie wilt uitvoeren?",
+    "message.action.reboot.instance": "Bevestig dat u deze instantie wilt herstarten.",
+    "message.action.reboot.router": "Als u deze router herstarten zullen de diensten op de router verstoord worden. Weet u zeker dat u deze actie wil uitvoeren?",
+    "message.action.reboot.systemvm": "Bevestig dat u deze Systeem VM wilt herstarten.",
+    "message.action.release.ip": "Bevestigd dat u dit IP adres wilt los koppelen.",
+    "message.action.remove.host": "Bevestig dat u deze host wilt verwijderen.",
+    "message.action.reset.password.off": "Uw instantie ondersteunt deze functie momenteel niet.",
+    "message.action.reset.password.warning": "Uw instantie moet gestopt worden voordat u het wachtwoord kunt wijzigen.",
+    "message.action.restore.instance": "Bevestig dat u deze instantie wilt herstellen.",
+    "message.action.revert.snapshot": "Bevestig dat u het volume wilt terugdraaien naar dit snapshot.",
+    "message.action.start.instance": "Bevestig dat u deze instantie wilt starten.",
+    "message.action.start.router": "Bevestig dat uw deze router wilt starten.",
+    "message.action.start.systemvm": "Bevestig dat u deze Systeem VM wilt starten.",
+    "message.action.stop.instance": "Bevestig dat u deze instantie wilt stoppen.",
+    "message.action.stop.router": "Als u deze router stopt zullen de diensten die gebruik maken van de router verstoord worden. Weet u zeker dat u deze actie wil uitvoeren?",
+    "message.action.stop.systemvm": "Bevestig dat u deze systeem VM wilt stoppen.",
+    "message.action.take.snapshot": "Bevestig dat u een snapshot wilt maken van dit volume.",
+    "message.action.unmanage.cluster": "Bevestig dat u dit cluster niet langer wilt laten beheren door CloudStack.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Bevestig dat u deze VM snapshot wilt verwijderen.",
+    "message.action.vmsnapshot.revert": "Draai VM snapshot terug",
+    "message.activate.project": "Weet u zeker dat u dit project wilt activeren?",
+    "message.add.VPN.gateway": "Bevestig dat u een VPN Gateway wilt toevoegen",
+    "message.add.cluster": "Voeg een hypervisor beheerd cluster toe voor zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b",
+    "message.add.cluster.zone": "Voeg een hypervisor beheerd cluster toe voor zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Specificeer de volgende waardes om een nieuwe schijf aanbieding toe te voegen",
+    "message.add.domain": "Specificeer het subdomein welke u onder dit domein wilt aanmaken",
+    "message.add.firewall": "Voeg firewall toe aan zone",
+    "message.add.guest.network": "Bevestig dat u een gast netwerk wilt toevoegen",
+    "message.add.host": "Specificeer de volgende parameters om een nieuwe host toe te voegen",
+    "message.add.ip.range": "Voeg een IP range aan het publieke netwerk in de zone toe",
+    "message.add.ip.range.direct.network": "Voeg een IP range toe aan direct gekoppeld netwerk <b><span id=\"directnetwork_name\"></span></b> in zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Voeg een IP range toe aan pod: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Voeg load balancer toe aan zone",
+    "message.add.load.balancer.under.ip": "De loadbalancer regel is toegeovegd onder IP adres:",
+    "message.add.network": "Voeg nieuw netwerk toe aan zone: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Specificeer de volgende informatie om een nieuwe  gateway toe te voegen aan deze VPC.",
+    "message.add.pod": "Voeg een nieuwe pod toe aan zone <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Elke zone moet één of meerdere pods hebben, de eerste pod gaan we nu toevoegen. Een pod bevat de hosts en primaire opslag servers welke we in een van de volgende stappen toevoegen. Allereerst dient u een reeks gereserveerde IP adressen te definiëren voor CloudStack&#39s management verkeer. Deze gereserveerde IP reeks moet uniek zijn voor elke zone in de cloud.",
+    "message.add.primary": "Specificeer de volgende parameters om nieuwe primaire opslag toe te voegen",
+    "message.add.primary.storage": "Voeg nieuwe primaire opslag toe voor zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Specificeer de benodigde informatie om een nieuwe regio toe te voegen.",
+    "message.add.secondary.storage": "Voeg nieuwe opslag toe voor zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Specificeer de volgende gegevens om een nieuwe service aanbieding aan te maken.",
+    "message.add.system.service.offering": "Specificeer de volgende gegevens om een nieuwe systeem aanbieding toe te voegen.",
+    "message.add.template": "Specificeer de volgende gegevens om een nieuwe template aan te maken",
+    "message.add.volume": "Specificeer de volgende gegevens om een nieuw volume toe te voegen.",
+    "message.added.new.nuage.vsp.controller": "nieuwe Nuage Vsp Controller toegevoegd",
+    "message.added.vpc.offering": "VPC aanbieding toegevoegd",
+    "message.adding.Netscaler.device": "Netscaler toevoegen",
+    "message.adding.Netscaler.provider": "Netscaler provider toevoegen",
+    "message.adding.host": "Host toevoegen",
+    "message.additional.networks.desc": "Selecteer additionele netwerk(en) waar uw virtuele instantie aan gekoppeld moet worden.",
+    "message.admin.guide.read": "Voor VMware-gebaseerde VMs, lees eerst de dynamic scaling sectie in de admin guide voordat u gaat schalen. Weet u zeker dat u verder wilt gaan?,",
+    "message.advanced.mode.desc": "Kies dit netwerk model als u VLAN ondersteuning wilt inschakelen. Dit netwerk model geeft u de meeste flexibiliteit en stelt beheerders in staat om aangepaste netwerk aanbiedingen aan te maken met firewall, vpn, of load balancer ondersteuning. Ook kunt u kiezen tussen direct en virtual networking.",
+    "message.advanced.security.group": "Kies dit netwerk model als u security groups wilt gebruiken om virtueele machines te isoleren.",
+    "message.advanced.virtual": "Kies deze optie als u zone breede VLANs wilt gebruiken om virtueele machines te isoleren.",
+    "message.after.enable.s3": "S3-backed Secondary Storage is geconfigureerd. Let op: Als u deze pagina verlaat zult u niet in staat zijn om S3 te (her)configureren.",
+    "message.after.enable.swift": "Swift is geconfigureerd.  Let op: Als u deze pagina verlaat zult u niet in staat zijn om Swift te (her)configureren.",
+    "message.alert.state.detected": "Probleem status gedetecteerd",
+    "message.allow.vpn.access": "Specificeer een gebruikersnaam en wachtwoord voor de gebruiker die u toegang wilt geven tot de VPN.",
+    "message.apply.snapshot.policy": "De huidige snapshot policy is succesvol gewijzigd.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Bevestig dat u deze ISO wilt koppelen aan de virtuele machine.",
+    "message.attach.volume": "Specificeer de volgende gegevens om een nieuw volume te koppelen. Als u een schijf volume wilt toevoegen aan een Windows gebaseerde machine, dan dient u deze te rebooten om de schijf zichtbaar te maken.",
+    "message.basic.mode.desc": "Kies dit netwerk model als u <b>*<u>geen</u>*</b> VLAN ondersteuning wilt inschakelen. Alle virtuele machines onder dit netwerk model zullen direct een IP gealloceerd krijgen vanuit het netwerk en security groups kunnen gebruikt worden om beveiliging en segmentering te realiseren.",
+    "message.change.ipaddress": "Bevestig alstublieft dat U het IP adres voor deze NIC op de VM wilt wijzigen.",
+    "message.change.offering.confirm": "Bevestig dat u de service aanbieding van deze virtueele machine wilt wijzigen.",
+    "message.change.password": "Wijzig a.u.b. uw wachtwoord.",
+    "message.cluster.dedicated": "Zone toegewijd",
+    "message.cluster.dedication.released": "Cluster toewijding losgekoppeld",
+    "message.configure.all.traffic.types": "U heeft meerdere fysieke netwerken; Configureer labels voor elk verkeerstype door op de Wijzig knop te klikken.",
+    "message.configure.firewall.rules.allow.traffic": "configureer regels om verkeer toe te staan",
+    "message.configure.firewall.rules.block.traffic": "configureer regels om verkeer te blokkeren",
+    "message.configure.ldap": "Bevestig dat u LDAP wilt configureren.",
+    "message.configuring.guest.traffic": "Bezig met configureren guest traffic",
+    "message.configuring.physical.networks": "Bezig met configureren fysieke netwerken",
+    "message.configuring.public.traffic": "Bezig met configureren publiek verkeer",
+    "message.configuring.storage.traffic": "Bezig met configureren opslag verkeer",
+    "message.confirm.action.force.reconnect": "Bevestig dat u deze host geforceerd opnieuw wilt laten verbinden.",
+    "message.confirm.add.vnmc.provider": "Bevestig dat u de VNMC provider wilt toevoegen.",
+    "message.confirm.archive.alert": "Bevestig dat U deze melding wilt archiveren, alstublieft.",
+    "message.confirm.archive.event": "bevestig dat u deze melding wilt archiveren, alstublieft",
+    "message.confirm.archive.selected.alerts": "bevestig dat u de geselecteerde meldingen wilt archiveren, alstublieft",
+    "message.confirm.archive.selected.events": "bevestig dat u de geselecteerde gebeurtenissen wilt archiveren, alstublieft",
+    "message.confirm.attach.disk": "Weet U zeker dat U een disk wilt koppelen?",
+    "message.confirm.create.volume": "Weet U zeker dat U een volume wilt creëren?",
+    "message.confirm.current.guest.CIDR.unchanged": "Wilt u het huidige gastnetwerk-CIDR ongewijzigd laten?",
+    "message.confirm.dedicate.cluster.domain.account": "Weet u zeker dat u dit cluster wilt toewijden aan een domein/account?",
+    "message.confirm.dedicate.host.domain.account": "Weet u zeker dat u deze host  wilt toewijden aan een domein/account?",
+    "message.confirm.dedicate.pod.domain.account": "Weet u zeker dat u deze pod wilt toewijden aan een domein/account?",
+    "message.confirm.dedicate.zone": "Weet u zeker dat u deze zone wilt toewijden aan een domein/account?",
+    "message.confirm.delete.BigSwitchBcf": "bevestig dat u deze BigSwitch BCF Controller wilt verwijderen, alstublieft",
+    "message.confirm.delete.BrocadeVcs": "bevestigd dat Brocade Vcs Switch wilt verwijderen, altublieft",
+    "message.confirm.delete.F5": "Bevestig dat u deze F5 wilt verwijderen",
+    "message.confirm.delete.NetScaler": "Bevestig dat u deze NetScaler wilt verwijderen",
+    "message.confirm.delete.NuageVsp": "bevestig dat u Nuage Virtualized Services Directory wilt verwijderen, alstublieft",
+    "message.confirm.delete.PA": "Bevestig dat u Palo Alto wilt verwijderen",
+    "message.confirm.delete.SRX": "Bevestig dat u deze SRX wilt verwijderen",
+    "message.confirm.delete.acl.list": "Weet U zeker dat U dit ACL wilt verwijderen?",
+    "message.confirm.delete.alert": "Weet U zeker dat U deze melding wilt verwijderen?",
+    "message.confirm.delete.baremetal.rack.configuration": "Bevestig dat u de baremetal rek configuratie wilt verwijderen, alstublieft.",
+    "message.confirm.delete.ciscoASA1000v": "bevestig dat u CiscoASA100v wilt verwijderen, alstublieft",
+    "message.confirm.delete.ciscovnmc.resource": "Bevestig dat u de CiscoVNMC resource wilt verwijderen.",
+    "message.confirm.delete.internal.lb": "bevestigd dat U interne LB wilt verwijderen, alstublieft",
+    "message.confirm.delete.secondary.staging.store": "Bevestig dat u de secudaire staging opslag wilt verwijderen.",
+    "message.confirm.delete.ucs.manager": "Bevestig dat u de UCS Manager wilt verwijderen",
+    "message.confirm.destroy.router": "Bevestig dat u deze router wilt verwijderen",
+    "message.confirm.disable.host": "bevestigd dat de machine wilt afkoppelen, alstublieft",
+    "message.confirm.disable.network.offering": "Weet u zeker dat u deze netwerk aanbieding wilt uitschakelen?",
+    "message.confirm.disable.provider": "Bevestig dat u deze provider wilt uitschakelen",
+    "message.confirm.disable.vnmc.provider": "Bevestig dat u de VNMC provider wilt uitschakelen.",
+    "message.confirm.disable.vpc.offering": "Weet u zeker dat u deze VPC aanbieding wilt uitschakelen?",
+    "message.confirm.enable.host": "bevestigd dat u de machine wilt aankoppelen, alsublieft",
+    "message.confirm.enable.network.offering": "Weet u het zeker dat u deze netwerk aanbieding wilt inschakelen?",
+    "message.confirm.enable.provider": "Bevestig dat u deze provider wilt inschakelen",
+    "message.confirm.enable.vnmc.provider": "Bevestig dat u de VNMC provider wilt inschakelen.",
+    "message.confirm.enable.vpc.offering": "Weet u zeker dat u deze VPC aanbieding wilt inschakelen?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Bevestig dat u aan dit project wilt bijdragen",
+    "message.confirm.migrate.volume": "Wilt U dit volume migreren?",
+    "message.confirm.refresh.blades": "Bevestig dat u de blades wilt verversen.",
+    "message.confirm.release.dedicate.vlan.range": "Bevestig dat u de toegewijde VLAN range wilt loskoppelen",
+    "message.confirm.release.dedicated.cluster": "Weet u zeker dat u dit toegewijde cluster wilt loskoppelen?",
+    "message.confirm.release.dedicated.host": "Weet u zeker dat u deze toegewijde host wilt loskoppelen?",
+    "message.confirm.release.dedicated.pod": "Weet u zeker dat u deze toegewijde pod wilt loskoppelen?",
+    "message.confirm.release.dedicated.zone": "Weet u zeker dat u deze toegewijde zone wilt loskoppelen?",
+    "message.confirm.remove.IP.range": "Bevestig dat u deze IP range wilt verwijderen.",
+    "message.confirm.remove.event": "Weet u zeker dat u deze melding wilt verwijderen?",
+    "message.confirm.remove.load.balancer": "bevestigd dat U deze VM uit de load balancer wilt halen, alstublieft",
+    "message.confirm.remove.network.offering": "Weet u zeker dat u deze netwerk aanbieding wilt verwijderen?",
+    "message.confirm.remove.selected.alerts": "bevestig dat u de geselecteerde meldingen wilt verwijderen, alstublieft",
+    "message.confirm.remove.selected.events": "bevestig dat u de geselcteerde gebeurtenissen wilt verwijderen, alstublieft",
+    "message.confirm.remove.vmware.datacenter": "Bevestig dat u VM datacenter wilt verwijderen",
+    "message.confirm.remove.vpc.offering": "Weet u zeker dat u deze VPC aanbieding wilt verwijderen?",
+    "message.confirm.replace.acl.new.one": "Wilt U de ACL vervangen door een nieuwe?",
+    "message.confirm.scale.up.router.vm": "Weet u zeker dat u de Router VM wilt opschalen?",
+    "message.confirm.scale.up.system.vm": "Weet u zeker dat u de Systeem VM wilt opschalen?",
+    "message.confirm.shutdown.provider": "Bevestig dat u deze provider wilt afsluiten",
+    "message.confirm.start.lb.vm": "Bevestig dat u de LB VM wilt starten",
+    "message.confirm.stop.lb.vm": "Bevestig dat u de LB VM wilt stoppen",
+    "message.confirm.upgrade.router.newer.template": "Bevestig dat u de router naar een nieuwere template versie wilt upgraden",
+    "message.confirm.upgrade.routers.account.newtemplate": "Bevestig dat u alle routers onder deze account wilt upgraden naar een nieuwe template",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Bevestig dat u alle routers in dit cluster wilt upgraden naar een nieuwe template",
+    "message.confirm.upgrade.routers.newtemplate": "Bevestig dat u alle routers in deze zone wilt upgraden naar een nieuwe template",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Bevestig dat u alle routers in deze pod wilt upgraden naar een nieuwe template",
+    "message.copy.iso.confirm": "Bevestig dat u deze ISO wilt kopieeren naar",
+    "message.copy.template": "Kopieer template <b id=\"copy_template_name_text\">XXX</b> van zone <b id=\"copy_template_source_zone_text\"></b> naar",
+    "message.copy.template.confirm": "Weet u zeker dat u de template wilt kopieeren?",
+    "message.create.template": "Weet u het zeker dat u een template wilt aanmaken?",
+    "message.create.template.vm": "Maak een VM aan vanaf een template",
+    "message.create.template.volume": "Specificeer a.u.b. de volgende informatie voordat u een template van het schijf volume: <b><span id=\"volume_name\"></span></b>. Het maken van een template kan een paar minuten duren maar ook langer afhankelijk van de grote van het volume.",
+    "message.creating.cluster": "Cluster aanmaken",
+    "message.creating.guest.network": "Gast netwerk aanmaken",
+    "message.creating.physical.networks": "Fysieke netwerken aanmaken",
+    "message.creating.pod": "Pod aanmaken",
+    "message.creating.primary.storage": "Primaire opslag aanmaken",
+    "message.creating.secondary.storage": "Secundaire opslag aanmaken",
+    "message.creating.systemVM": "Bezig met aanmaken van systeem VMs (dit kan enige tijd duren)",
+    "message.creating.zone": "Zone aanmaken",
+    "message.decline.invitation": "Weet u zeker dat u deze project uitnodiging wilt afwijzen?",
+    "message.dedicate.zone": "Dedicating zone",
+    "message.dedicated.zone.released": "Zone toewijding losgekoppeld",
+    "message.delete.VPN.connection": "Bevestig dat u deze VPN verbinding wilt verwijderen",
+    "message.delete.VPN.customer.gateway": "Bevestig dat u deze VPN Customer Gateway wilt verwijderen",
+    "message.delete.VPN.gateway": "Bevestig dat u deze VPN Gateway wilt verwijderen",
+    "message.delete.account": "Bevestig dat u deze account wilt verwijderen.",
+    "message.delete.affinity.group": "Bevestig dat u deze affinity groep wilt verwijderen",
+    "message.delete.gateway": "Bevestig dat u deze gateway wilt verwijderen",
+    "message.delete.project": "Weet u zeker dat u dit project wilt verwijderen?",
+    "message.delete.user": "Bevestig dat u deze gebruiker wilt verwijderen",
+    "message.desc.add.new.lb.sticky.rule": "voeg een nieuwe LB klevende regel toe",
+    "message.desc.advanced.zone": "Voor ingewikkeldere netwerk topologieën. Dit netwerk model geeft de meeste flexibiliteit en het definieren van gast netwerken en het aanbieden van speciale diensten zoals firewall, VPN of loadbalancer ondersteuning.",
+    "message.desc.basic.zone": "Creëert een enkel netwerk waar elke VM instantie direct een IP op krijgt. Het isoleren van instanties kunt op layer-3 niveau doen door middel van security groups.",
+    "message.desc.cluster": "Elke pod moet één of meerdere cluster bevatten, en we gaan het eerste cluster nu toevoegen. Een cluster is een manier om hosts te groeperen. De hosts in een cluster hebben identieke hardware, gebruiken de zelfde hypervisor, zitten op hetzelfde subnet en kunnen bij dezelfde gedeelde opslag. Elk cluster bestaan uit één of meerdere hosts en één of meerdere primaire opslag systemen.",
+    "message.desc.create.ssh.key.pair": "Gelieve de volgende gegevens in te vullen voor het maken of registreren van een ssh sleutelpaar. <br> (1) Als de publieke sleutel wordt ingesteld zal CloudStack de publieke sleutel te registreren. Je kunt het gebruiken via uw geheime sleutel. <br> (2) Als de publieke sleutel niet is ingesteld zal CloudStack een nieuw SSH-sleutelpaar creëren. In dat geval, kopiëert en slaat van de private/geheime sleutel alsutblieft op. CloudStack zal het niet bewaren. <br>",
+    "message.desc.created.ssh.key.pair": "Creëer SSH sleutelpaar.",
+    "message.desc.host": "Elke cluster moet een of meerdere hosts (servers) bevatten om gast VMs op te draaien. We gaan de eerste host nu toevoegen. Om een host met CloudStack te laten werken moet hij voorzien zijn van hypersvisor software, een werkend IP adres en in staat zijn de management server over het netwerk te bereiken. <br/><br/>Specificeer de DNS hostnaam of het IP adres van de host, de gebruikersnaam (meestal root) en het bijbehorende wachtwoord en als laatste eventuele labels om de host te categoriseren.",
+    "message.desc.primary.storage": "Elk cluster moet over één of meerdere primaire opslag servers beschikken, de eerste gaan we nu aanmaken. Primaire opslag bevat de volumes van VMs draaiende op de hosts in het cluster. Gebruik een protocol dat is ondersteund door de  hypervisor.",
+    "message.desc.reset.ssh.key.pair": "Specificeer een sleutelpaar dat u aan deze VM wilt toevoegen, alstublieft. Let alstublieft op dat het root-wachtwoord veranderd wordt door deze operatie als wachtwoord is aangezet.",
+    "message.desc.secondary.storage": "Elke zone moet minimaal één of meerdere secundaire opslag servers hebben, de eerste maken we nu aan. Secundaire opslag wordt gebruikt voor het opslaan van VM templates, ISO bestanden en snapshots. Deze server moet beschikbaar zijn aan alle hosts in de zone. <br/><br/>Specificeer het IP adres en het exporteerde pad.",
+    "message.desc.zone": "Een zone is de grootste organisatorische unit binnen CloudStack en correspondeert normaliter met enkel datacenter. Zones geven fysieke isolatie en redundantie. Een zone bestaat uit een of meerdere pods (waarvan ieder eigen hosts en primaire opslag servers heeft) en een secundaire opslag server welke gedeeld wordt door alle pods in de zone.",
+    "message.detach.disk": "Weet u zeker zeker dat u deze schijf wilt ontkoppelen?",
+    "message.detach.iso.confirm": "Bevestig dat u deze ISO wilt ontkoppelen van de virtueele machine.",
+    "message.disable.account": "Bevestig dat u deze account wilt uitschakelen. Als u deze account uitschakelt zullen de gebruikers niet langer toegang hebben tot hun cloud resources. Alle draaiende virtueele machines zullen direct afgesloten worden.",
+    "message.disable.snapshot.policy": "De huidige snapshot policy is uitgeschakeld.",
+    "message.disable.user": "Bevestig dat u deze gebruiker wilt uitschakelen.",
+    "message.disable.vpn": "Weet u zeker dat u VPN wilt uitschakelen?",
+    "message.disable.vpn.access": "Bevestig dat u VPN toegang wilt uitschakelen.",
+    "message.disabling.network.offering": "Netwerk Aanbieding Uitschakelen",
+    "message.disabling.vpc.offering": "VPC offering uitschakelen",
+    "message.disallowed.characters": "Niet toegestane karakters: <,>",
+    "message.download.ISO": "Klik op <a href=\"#\">00000</a> om de ISO te downloaden",
+    "message.download.template": "Klik op <a href=\"#\">00000</a> om de template te downloaden",
+    "message.download.volume": "Klik op <a href=\"#\">00000</a> om het volume te downloaden",
+    "message.download.volume.confirm": "bevestigd at U dit volume wilt ophalen, alstublieft",
+    "message.edit.account": "Wijzig (\"-1\" geeft aan dat er geen limiet is ingesteld)",
+    "message.edit.confirm": "Bevestig u veranderingen voor u op \"bewaar\" klikt, alstublieft.",
+    "message.edit.limits": "Specificeer de limieten voor de volgende resources.  Met \"-1\" geeft u aan dat er geen limiet geld.",
+    "message.edit.traffic.type": "Specificeer het verkeerslabel dat u met dit type verkeer wilt associeren.",
+    "message.enable.account": "Bevestig dat u deze account wilt inschakelen.",
+    "message.enable.user": "Bevestig dat u deze gebruiker wilt inschakelen.",
+    "message.enable.vpn": "Bevestig dat u VPN toegang voor dit IP adres wilt inschakelen.",
+    "message.enable.vpn.access": "VPN is momenteel uitgeschakeld voor dit IP adres. Wilt u deze inschakelen?",
+    "message.enabled.vpn": "Uw VPN toegang is ingeschakeld en kan benaderd worden via het IP",
+    "message.enabled.vpn.ip.sec": "Uw IPSec pre-shared key is",
+    "message.enabling.network.offering": "Netwerk Aanbieding Inschakelen",
+    "message.enabling.security.group.provider": "Inschakelen Security Group provider",
+    "message.enabling.vpc.offering": "VPC aanbieding inschakelen",
+    "message.enabling.zone": "Inschakelen zone",
+    "message.enabling.zone.dots": "Bezig met activeren van Zone....",
+    "message.enter.seperated.list.multiple.cidrs": "Gelieve een met komma's gescheiden lijst van CIDRs invoeren wanneer er meer dan een zijn",
+    "message.enter.token": "Vul het token in dat vermeld staat in de e-mail uitnodiging.",
+    "message.generate.keys": "Bevestig dat u nieuwe sleutels wilt genereren voor deze gebruiker.",
+    "message.gslb.delete.confirm": "Bevestigd dat u deze GSLB wilt verwijderen",
+    "message.gslb.lb.remove.confirm": "Bevestig dat u loadbalancing van GSLB wilt verwijderen",
+    "message.guest.traffic.in.advanced.zone": "Gast netwerk verkeer is communicatie tussen virtuele machines van de eindgebruiker. Specificeer een range van VLAN IDs om gast verkeer te transporteren over het fysieke netwerk.",
+    "message.guest.traffic.in.basic.zone": "Gast netwerk verkeer is communicatie tussen virtuele machines van de eindgebruiker. Specificeer een range van IP adressen welke CloudStack kan uitdelen aan gast VMs. Let erop dat deze range niet overlapt met de gereserveerde systeem IP range.",
+    "message.host.dedicated": "Host toegewijd",
+    "message.host.dedication.released": "Toegewijde host losgekoppeld",
+    "message.installWizard.click.retry": "Druk op de knop om de lancering opnieuw te proberen",
+    "message.installWizard.copy.whatIsACluster": "Een cluster is een manier om hosts te groeperen. De hosts in een cluster hebben ieder identieke hardware, draaien dezelfde hypervisor, zitten op hetzelfde subnet en kunnen dezelfde gedeelde opslag benaderen. Virtuele machines (VMs) kunnen live gemigreerd worden van tot ene naar de andere host in hetzelfde cluster zonder dat de gebruiker hier iets van merkt. Een cluster is de 3e grootste organisatorische unit binnen Cloudstack&#8482;. Clusters worden ondergebracht in pods, en pods zijn op hun beurt ondergebracht in zones. CloudStack&#8482; biedt te mogelijkheid tot meerdere clusters, maar voor een basis installatie hebben we maar één cluster nodig.",
+    "message.installWizard.copy.whatIsAHost": "Een host een opzichzelfstaande computer. Hosts verzorgen de resources nodig om de gast virtuele machines te draaien. Elke host heeft eigen hypervisor software geinstalleerd om de virtuele machines erop te beheren (Afgezien van bare metal hosts, hierover is meer te vinden in de geavanceerde installatie handleiding). Om een paar voorbeelden te noemen: een Linux server met KVM, een server met Citrix XenServer en servers met ESXi geinstalleerd zijn hosts. Bij de basis installatie gebruiken we een opzichzelfstaande host met XenServer of KVM geinstalleerd. <br/><br/> Een host is de kleinste organisatorische unit binnen een CloudStack&#8482; omgeving. Hosts worden ondergebracht in clusters, cluster zijn ondergebracht in pods en pods zijn ongebracht in zones.",
+    "message.installWizard.copy.whatIsAPod": "Een pod vertegenwoordigd meestal een rack. Hosts in dezelfde pod hebben hetzelfde subnet. <br/><br/>Een pod is de tweede grootste organisatorische unit binnen een CloudStack&#8482; omgeving. Pods zijn ondergebracht in zones. Elke zone kan meerdere pods hebben, voor de basis installatie hebben we een enkele pod in de zone.",
+    "message.installWizard.copy.whatIsAZone": "Een zone is de grootste organisatorische unit binnen een CloudStack&#8482; omgeving. Een zone staat meestal voor een datacenter, al is het geen probleem om meerdere zones in hetzelfde datacenter te hebben. Het voordeel van infrastructuur onderbrengen in zones is om fysieke isolatie en redundantie te creëren. Elke zone kan bijvoorbeeld zijn eigen stroom voorziening en netwerk uplinks hebben en kunnen geografisch verspreid worden (al is dit geen vereiste).",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482; is een software platform welke computer capaciteit herenigd om public, private en hybrid infrastructure as a Service (IaaS) clouds te bouwen. CloudStack&#8482; beheert het netwerk, de opslag en de computer nodes welke de cloud infrastructuur vertegenwoordigen. Gebruik CloudStack&#8482; om cloud computing omgevingen uit te rollen, te beheren en te configureren. <br/><br/> CloudStack&#8482 gaat veel verder dan het draaien van virtuele machine bestanden op commodity hardware, het is een turnkey oplossing om virtuele datacenters (as a service) te realiseren. Daarbij levert het alle essentiële componenten om multi-tier en multi-tentant cloud applicaties te bouwen en te beheren. Er is een zowel een open-source als Premium versie beschikbaar, waarbij de open-source versie nagenoeg dezelfde functionaliteit biedt als de Premium versie.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "Een CloudStack&#8482; cloud infrastructuur maakt gebruik van 2 type opslag, namelijk primaire en secundaire opslag.  Primaire opslag kan iSCSI, NFS of lokale opslag zijn. Secundaire opslag werkt via NFS of een S3-compatible opslag systeem. <br/><br/><strong>Primaire opslag</strong> is onderdeel van een cluster, en het bevat de schijf volumes van iedere gast VM in dat cluster. De primaire opslag server wordt meestal dicht bij de hosts geplaatst.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "Secundaire opslag is onderdeel van een zone, en biedt opslagruimte aan:<ul><li>Templates - kant-en-klare VMs die gebruikt kunnen worden zonder voorafgaande installatie. </li><li>ISO bestanden - Installatie mediums voor VMs. </li><li>Schijf volume snapshots - reservekopieën van schijf volumes die later gebruikt kunnen worden tijdens recovery of het maken van nieuwe templates. </ul>",
+    "message.installWizard.now.building": "Bezig met het bouwen van je cloud...",
+    "message.installWizard.tooltip.addCluster.name": "Een naam voor het cluster. U kunt deze tekst vrij invullen, en zal verder niet gebruikt worden door CloudStack.",
+    "message.installWizard.tooltip.addHost.hostname": "De DNS naam of het IP adres van de host.",
+    "message.installWizard.tooltip.addHost.password": "Dit is het wachtwoord voor de gebruiker die hierboven genoemd wordt (van uw Xenserver instllatie).",
+    "message.installWizard.tooltip.addHost.username": "Meestal root.",
+    "message.installWizard.tooltip.addPod.name": "Een naam voor de pod",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Dit is de IP range van het private netwerk dat CloudStack gebruikt om met Secundaire Opslag VMs en Console Proxy VMs te communiceren. Deze IP adressen komen uit hetzelfde subnet als de gast VMs.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "De gateway voor de hosts in die pod.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "De netmask die gebruikt wordt op het subnet dat de gast VMs gaan gebruiken.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Dit is de IP range van het private netwerk dat CloudStack gebruikt om met Secundaire Opslag VMs en Console Proxy VMs te communiceren. Deze IP adressen komen uit hetzelfde subnet als de gast VMs.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "De naam voor het opslag apparaat.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(Voor NFS) Bij NFS dit is het geëxporteerde pad van de server. Pad (Voor SharedMountPoint). Bij KVM is dit het pad waar op elke machine de primaire opslag is gekoppeld. Bijvoorbeeld, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(Voor NFS, iSCSI of PreSetup)  Het IP adres of DNS naam van het opslag apparaat.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "Het IP adres van de NFS server welke de secundaire opslag serveert",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "Het geëxporteerde pad, op de server die u hierboven heeft gespecificeerd",
+    "message.installWizard.tooltip.addZone.dns1": "Deze DNS servers worden gebruik door gast VMs in de Zone. Deze DNS servers moeten toegankelijk zijn op het publieke netwerk wat we later gaan toevoegen. De publieke IP adressen voor de zone moeten een route hebben naar de DNS server hier vermeld.",
+    "message.installWizard.tooltip.addZone.dns2": "Deze DNS servers worden gebruik door gast VMs in de Zone. Deze DNS servers moeten toegankelijk zijn op het publieke netwerk wat we later gaan toevoegen. De publieke IP adressen voor de zone moeten een route hebben naar de DNS server hier vermeld.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Deze DNS servers worden gebruik door gast VMs in de Zone. Deze DNS servers moeten toegankelijk zijn op het private netwerk wat we later gaan toevoegen. De private IP adressen voor de zone moeten een route hebben naar de DNS server hier vermeld.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Deze DNS servers worden gebruik door gast VMs in de Zone. Deze DNS servers moeten toegankelijk zijn op het private netwerk wat we later gaan toevoegen. De private IP adressen voor de zone moeten een route hebben naar de DNS server hier vermeld.",
+    "message.installWizard.tooltip.addZone.name": "Een naam voor de zone",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "Een beschrijving voor het netwerk",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "De IP reeks welke beschikbaar zal zijn voor gast VMs in de zone. Als één NIC gebruikt wordt, zouden deze IP adressen in hetzelfde CIDR moeten vallen als die van de pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "De gateway welke gast VMs moeten gebruiken",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "De netmask die gebruikt wordt op het subnet dat door gast VMs gebruikt wordt",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "De IP reeks welke beschikbaar zal zijn voor gast VMs in de zone. Als één NIC gebruikt wordt, zouden deze IP adressen in hetzelfde CIDR moeten vallen als die van de pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Een naam voor het netwerk",
+    "message.instance.scaled.up.confirm": "Weet u zeker dat u deze VM wilt opschalen?",
+    "message.instanceWizard.noTemplates": "Er zijn geen templates beschikbaar. Voeg een geschikte template toe, en herstart deze instantie wizard.",
+    "message.ip.address.changed": "Uw IP adres is mogelijk gewijzigd, wilt u de lijst verversen? Wanneer dit het geval is, zal het detail paneel gesloten worden.",
+    "message.iso.desc": "Image bestand met data of bootable media voor besturingsysteem",
+    "message.join.project": "U neemt nu deel aan een project. Klik op het project overzicht om het project te zien.",
+    "message.launch.vm.on.private.network": "Wilt u de instantie starten op uw eigen private dedicated netwerk?",
+    "message.launch.zone": "De zone is klaar om geactiveerd te worden, ga door naar de volgende stap.",
+    "message.ldap.group.import": "Alle gebruikers uit de gegeven groep worden geïmporteerd",
+    "message.link.domain.to.ldap": "schakel autosync voor dit domein in LDAP in",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "Bevestig dat u deze account wilt vergrendelen. Wanneer u de account vergrendeld zullen alle gebruikers van deze account hun cloud resources niet meer kunnen beheren. Toegang tot bestaande producten blijft bestaan.",
+    "message.migrate.instance.confirm": "Bevestig de host naar waar u de instantie toe wilt migreren.",
+    "message.migrate.instance.to.host": "Bevestig dat u de instantie naar een andere host toe wilt migreren.",
+    "message.migrate.instance.to.ps": "Bevestig dat u de instantie naar een andere primaire opslag toe wilt migreren.",
+    "message.migrate.router.confirm": "Bevestig de host waar u de router naartoe wilt migreren:",
+    "message.migrate.systemvm.confirm": "Bevestig de host naar waar u de systeem VM toe wilt migreren:",
+    "message.migrate.volume": "Bevestig dat u het volume wilt migreren naar een andere primaire opslag.",
+    "message.network.addVM.desc": "Specificeer het netwerk dat u aan deze VM wilt toevoegen. Een nieuwe netwerk interface zal worden toegevoegd aan de VM.",
+    "message.network.addVMNIC": "Bevestig dat u een nieuwe netwerk interface voor dit netwerk wilt verkrijgen.",
+    "message.network.remote.access.vpn.configuration": "VPN configuratie op afstand is gegenereerd, maar kon niet worden doorgevoerd. Controleer alstublieft de verbinding met het netwerk bestanddeel en probeer opnieuw.",
+    "message.new.user": "Sepecificeer de volgende waarden om een nieuwe gebruiker toe te voegen aan de account",
+    "message.no.affinity.groups": "U heeft geen affinity groepen. Ga door naar de volgende stap.",
+    "message.no.host.available": "Geen hosts beschikbaar voor Migratie",
+    "message.no.network.support": "De geselecteerde hypervisor, vSphere, beschikt niet over additionele netwerk diensten. Ga door naar stap 5.",
+    "message.no.network.support.configuration.not.true": "Er is geen zone waarin security groups zijn ingeschakeld. Om die reden zijn er geen additionele netwerk diensten beschikbaar. Ga door naar stap 5.",
+    "message.no.projects": "U hebt momenteel geen projecten.<br/>U kunt een nieuw project aanmaken vanuit de projecten sectie.",
+    "message.no.projects.adminOnly": "U hebt momenteel geen projecten. <br/>Uw beheerder kan een nieuw project aanmaken.",
+    "message.number.clusters": "<h2><span> Aantal </span> Clusters</h2>",
+    "message.number.hosts": "<h2><span> Aantal </span> Hosts</h2>",
+    "message.number.pods": "<h2><span> Aantal </span> Pods</h2>",
+    "message.number.storage": "<h2><span> Aantal </span> Primaire Opslag Volumes</h2>",
+    "message.number.zones": "<h2><span> Aantal </span> Zones</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "Het wachtwoord is veranderd in",
+    "message.password.of.the.vm.has.been.reset.to": "Het wachtwoord van de VM is veranderd in",
+    "message.pending.projects.1": "U heeft openstaande project uitnodigigingen:",
+    "message.pending.projects.2": "Ga naar de project sectie om deze te zien. Selecteer de uitnodiging vanuit het drop-down menu.",
+    "message.please.add.at.lease.one.traffic.range": "U dient minimaal één traffic range toe te voegen.",
+    "message.please.confirm.remove.ssh.key.pair": "bevestig dat u dit SSH sleutelpaar wilt verwijderen, alstublieft",
+    "message.please.proceed": "Ga door naar de volgende stap.",
+    "message.please.select.a.configuration.for.your.zone": "Selecteer een configuratie voor uw zone.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Selecteer a.u.b. een ander publiek en beheer netwerk voordat u deze verwijderd",
+    "message.please.select.networks": "Selecteer netwerken voor uw virtuele machine.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "selecteer alstublieft een ssh sleutelpaar dat U met deze VM wilt gebruiken:",
+    "message.please.wait.while.zone.is.being.created": "Even geduld, uw zone wordt aangemaakt; Dit kan enige tijd duren...",
+    "message.pod.dedication.released": "Toegewijde pod losgekoppeld",
+    "message.portable.ip.delete.confirm": "Bevestig dat u deze porteerbare IP reeks wilt verwijderen",
+    "message.project.invite.sent": "Uitnodiging is verstuurd aan gebruiker. De gebruiker wordt toegevoegd aan het project wanneer hij de uitnodiging accepteert.",
+    "message.public.traffic.in.advanced.zone": "Publiek verkeer wordt gegenereerd wanneer VMs in de cloud het internet bezoeken. Publiek toegankelijke IPs moeten om deze reden toegevoegd worden. Eindgebruikers kunnen deze IP adressen via de Cloudstack UI aanvragen om zo verkeer tussen het gast netwerk en publieke netwerk te realiseren. <br/><br/> Geef minimaal één IP range op voor internet verkeer.",
+    "message.public.traffic.in.basic.zone": "Publiek verkeer wordt gegenereerd wanneer VMs in de cloud het internet bezoeken of diensten serveren aan het internet. Publiek toegankelijke IPs moeten om deze reden toegevoegd worden. Wanneer een instantie wordt aangemaakt, krijgt deze automatisch een van deze IP adressen toegewezen naast het gast IP adres. Static 1-1 NAT wordt automatisch geconfigureerd tussen het publieke IP en gast IP adres. Eindgebruikers kunnen via de CloudStack UI meerdere IP adressen aanvragen om static NAT tussen hun instanties en het publieke IP te realiseren.",
+    "message.question.are.you.sure.you.want.to.add": "Weet U zeker dat U het volgende wenst toe te voegen",
+    "message.read.admin.guide.scaling.up": "Gelieve de dynamic scaling sectie te lezen in admin guide voordat u gaat opschalen.",
+    "message.recover.vm": "Bevestig dat u deze VM wilt herstellen.",
+    "message.redirecting.region": "U wordt doorverbonden met de regio...",
+    "message.reinstall.vm": "LET OP: Als u doorgaat zal de VM opnieuw geïnstalleerd worden vanaf de template. Alle data op de root disk zal verwijderd worden. Eventuele data volumes blijven onaangeraakt.",
+    "message.remove.ldap": "Weet u zeker dat u de LDAP configuratie wilt verwijderen?",
+    "message.remove.region": "Weet u zeker dat u deze regio wilt verwijderen van deze management server?",
+    "message.remove.vpc": "Bevestigd dat u de VPC wilt verwijderen",
+    "message.remove.vpn.access": "Bevestig dat u VPN toegang wilt verwijderen van de volgende gebruiker.",
+    "message.removed.ssh.key.pair": "een ssh sleutelpaar is verwijderd",
+    "message.reset.VPN.connection": "Bevestig dat u deze VPN verbinding wilt resetten",
+    "message.reset.password.warning.notPasswordEnabled": "De template van deze instantie was aangemaakt zonder wachtwoord functie",
+    "message.reset.password.warning.notStopped": "Uw instantie moet gestopt worden voordat u het wachtwoord kunt wijzigen.",
+    "message.restart.mgmt.server": "Gelieve uw management server(s) herstarten om deze wijziging actief te maken.",
+    "message.restart.mgmt.usage.server": "Gelieve uw management server(s) en gebruik server(s) herstarten om deze wijziging actief te maken.",
+    "message.restart.network": "Als u dit netwerk herstart zullen de diensten op het netwerk verstoord worden. Weet u zeker dat u deze actie wil uitvoeren?",
+    "message.restart.vpc": "Bevestig dat u deze VPC wilt herstarten",
+    "message.restart.vpc.remark": "Bevestig altublieft dat U de VPC wilt herstarten <p><small><i>Opmerking: Een niet-redundante VPC redundant maken zal opschonen forceren. De netwerken zullen enige tijd niet beschikbaar zijn</i>.</small></p>",
+    "message.restoreVM": "Wilt u de VM herstellen?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(Gebruik <strong>Ctrl-klik</strong> om meerdere security groups te selecteren)",
+    "message.select.a.zone": "Een zone correspondeert meestal met een enkel datacenter. Meerdere zones maken de cloud betrouwbaarder door fysiek isolatie en redunatie te verzorgen.",
+    "message.select.affinity.groups": "Selecteer welke affinity groepen u wilt gebruiken voor deze VM:",
+    "message.select.instance": "Selecteer een instantie.",
+    "message.select.iso": "Gelieve een ISO te selecteren voor uw nieuwe instantie.",
+    "message.select.item": "Gelieve een item te selecteren.",
+    "message.select.security.groups": "Gelieve security group(s) te selecteren voor de nieuwe instantie",
+    "message.select.template": "Gelieve een template te selecteren voor de nieuwe instantie",
+    "message.select.tier": "Gelieve een tier te selecteren",
+    "message.set.default.NIC": "Bevestig dat u dit netwerk apparaat standaard wilt maken voor deze VM.",
+    "message.set.default.NIC.manual": "U dient nu manueel de netwerk interface op de VM updaten.",
+    "message.setup.physical.network.during.zone.creation": "Wanneer u een geavanceerde zone toevoegt, dient u meerdere fysiek netwerken te configureren. Een netwerk correspondeert met een netwerkkaart op de hypervisor. Elk fysiek netwerk kan een of meerdere traffic types bevatten, met bepaald geldende restricties hoe deze gecombineerd mogen worden.  Drag & Drop een of meerdere verkeerstypen op het fysieke netwerk.",
+    "message.setup.physical.network.during.zone.creation.basic": "Wanneer u een basis zone toevoegt bevat deze een fysiek netwerk welke correspondeert met de netwerkkaart op de hypervisor. Op dit netwerk zullen meerdere verkeerstypen gebruikt worden. <br/><br/> U kunt via drag & drop andere verkeerstypen toevoegen aan het fysieke netwerk.",
+    "message.setup.successful": "Cloud installatie is succesvol verlopen!",
+    "message.snapshot.schedule": "U kunt terugkerende momentopname plannen maken door uit de onderstaande mogelijkheden te kiezen en uw beleid voorkeuren toe te passen.",
+    "message.specifiy.tag.key.value": "Gelieve een tag sleutel en waarde te specificeren",
+    "message.specify.url": "Gelieve een URL te specificeren",
+    "message.step.1.continue": "Gelieve een template of ISO te selecteren om door te gaan",
+    "message.step.1.desc": "Selecteer een template voor uw nieuwe instantie. U kunt ook een blanco template selecteren op welke een ISO bestand geinstalleerd kan worden.",
+    "message.step.2.continue": "Selecteer een service aanbieding om verder te gaan.",
+    "message.step.3.continue": "Selecteer een schijf aanbieding om verder te gaan",
+    "message.step.4.continue": "Selecteer minimaal één netwerk om door te gaan",
+    "message.step.4.desc": "Selecteer het primaire netwerk aan welke uw instantie verbonden moet worden",
+    "message.storage.traffic": "Verkeer tussen CloudStack&#39s interne diensten, inclusief componenten die communiceren met de management server zoals hosts en CloudStack systeem VMs. Configureer opslag verkeer hier.",
+    "message.suspend.project": "Weet u zeker dat u dit project wilt pauzeren?",
+    "message.systems.vms.ready": "Systeem VMs klaar.",
+    "message.template.copying": "De template wordt gekopieerd.",
+    "message.template.desc": "OS image bestand dat gebruikt kan worden om de VM op te starten",
+    "message.tier.required": "Tier is benodigd",
+    "message.tooltip.dns.1": "Naam van de DNS server die gebruikt mag worden door VMs in de zone. De publieke IP adressen in de zone moeten een route hebben naar deze server.",
+    "message.tooltip.dns.2": "Naam van een secudaire DNS server die gebruikt mag worden door VMs in de zone. De publieke IP adressen in de zone moeten een route hebben naar deze server.",
+    "message.tooltip.internal.dns.1": "Naam van de DNS server die gebruikt mag worden door interne systeem VMs van CloudStack in de zone. De privé IP adressen in de pod moeten een route hebben naar deze server.",
+    "message.tooltip.internal.dns.2": "Naam van de DNS server die gebruikt mag worden door interne systeem VMs van CloudStack in de zone. De privé IP adressen in de pod moeten een route hebben naar deze server.",
+    "message.tooltip.network.domain": "Een DNS toevoeging dat de domeinnaam zal zijn voor het netwerk wat toegangkelijk is voor gast VMs.",
+    "message.tooltip.pod.name": "Een naam voor deze pod.",
+    "message.tooltip.reserved.system.gateway": "De gateway voor hosts in deze pod.",
+    "message.tooltip.reserved.system.netmask": "De netwerk prefix dat het pod subnet definieert. Gebruik de CIDR notatie.",
+    "message.tooltip.zone.name": "Een naam voor de zone.",
+    "message.update.os.preference": "Selecteer een OS voorkeur voor deze host. Alle virtueel instanties van gelijke voorkeur zullen eerst op deze machine gealloceerd worden voordat er gekeken wordt naar andere hosts.",
+    "message.update.resource.count": "Bevestig dat u de verbruiksstatistieken voor deze account wilt bijwerken.",
+    "message.update.ssl": "Geef een nieuw X.509 compliant SSL certificaat in waarmee elke console proxy en secundaire opslag instantie mee geupdate kunnen worden:",
+    "message.update.ssl.failed": "update SSL certificaat is mislukt",
+    "message.update.ssl.succeeded": "update SSL certificaat is gelukt",
+    "message.validate.URL": "Gelieve een geldige URL in te geven.",
+    "message.validate.accept": "Gelieve een waarde in te geven met een geldidge extensie.",
+    "message.validate.creditcard": "Gelieve een geldig credit card nummer in te geven.",
+    "message.validate.date": "Gelieve een geldige datum in te geven.",
+    "message.validate.date.ISO": "Gelieve een geldige datum (ISO) in te geven.",
+    "message.validate.digits": "Gelieve alleen cijfers in te geven.",
+    "message.validate.email.address": "Gelieve een geldig email adres in te geven.",
+    "message.validate.equalto": "Voer dezelfde waarde nogmaals in.",
+    "message.validate.fieldrequired": "Dit veld is vereist",
+    "message.validate.fixfield": "Gelieve dit veld te herstellen.",
+    "message.validate.instance.name": "Namen van instantie kunnen niet langer zijn dan 63 karakters. Alleen ASCII letters a~z, A~Z, cijfers 0~9 zijn toegestaan. Moet beginnen met een letter en mag eindigen met een letter of cijfer.",
+    "message.validate.invalid.characters": "Niet toegestane karakters gevonden, corrigeer deze.",
+    "message.validate.max": "Gelieve een waarde kleiner of gelijk aan {0} in te geven.",
+    "message.validate.maxlength": "Gelieve niet meer dan {0} karakters in te geven.",
+    "message.validate.minlength": "Gelieve minimaal {0} karakters in te geven.",
+    "message.validate.number": "Gelieve een geldig nummer in te geven.",
+    "message.validate.range": "Gelieve een waarde tussen {0} en {1} in te geven.",
+    "message.validate.range.length": "Gelieve een waarde tussen de {0} en {1} karakters lang in te geven.",
+    "message.virtual.network.desc": "Een dedicated gevirtualiseerd netwerk voor uw account. Het broadcast domein is ingesloten binnen een VLAN en toegang naar het publieke netwerk wordt gerouteerd door een virtueele router.",
+    "message.vm.create.template.confirm": "Creer een template welke de VM atuomatisch laat opstarten.",
+    "message.vm.review.launch": "Gelieve de volgende gegevens te verifiëren te bevestigen zodat uw instantie gestart kan worden.",
+    "message.vnmc.available.list": "VNMC is niet beschikbaar van de provider lijst.",
+    "message.vnmc.not.available.list": "VNMC is niet beschikbaar van de provider lijst.",
+    "message.volume.create.template.confirm": "Bevestig dat u een template wilt maken van dit schijf volume. Het maken van een template kan meerdere minuten duren maar soms ook langer afhankelijk van de grootte van het volume.",
+    "message.waiting.for.builtin.templates.to.load": "Wachten totdat ingebouwde templates zijn geladen...",
+    "message.you.must.have.at.least.one.physical.network": "U moet minimaal één fysiek netwerk hebben",
+    "message.your.cloudstack.is.ready": "Uw CloudStack is klaar!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "De installatie van de zone is compleet, wilt u deze zone meteen inschakelen?",
+    "message.zone.no.network.selection": "De geselecteerde zone heeft geen meerdere netwerk selectie mogelijkheden.",
+    "message.zone.step.1.desc": "Selecteer een netwerk model voor uw zone.",
+    "message.zone.step.2.desc": "Specificeer de volgende gegevens om een nieuwe zone toe te voegen",
+    "message.zone.step.3.desc": "Specificeer de volgende gegevens om een nieuwe pod toe te voegen",
+    "message.zoneWizard.enable.local.storage": "WAARSCHUWING: Als u lokale opslag activeert voor deze zone, moet u de volgende stappen ondernemen afhankelijk van het opslagsysteem waar u de systeem VMs vanaf wilt starten:<br/><br/>1. Wanneer de systeem VMs gestart moeten worden van primaire (gedeelde) opslag moet deze nadat configuratie van de zone klaar is, toegevoegd worden. <br/><br/>2. Wanneer de systeem VMs gestart moeten worden vanaf lokale opslag,  dient de parameter system.vm.use.local.storage gezet zijn voordat u de zone activeert.<br/><br/><br/>Weet u zeker dat u verder wilt gaan?",
+    "messgae.validate.min": "Gelieve een waarde groter of gelijk aan {0} in te geven.",
+    "mode": "Modus",
+    "network.rate": "Netwerk Snelheid",
+    "notification.reboot.instance": "Herstart instantie",
+    "notification.start.instance": "Start Instantie",
+    "notification.stop.instance": "Stop Instantie",
+    "side.by.side": "Zij aan Zij",
+    "state.Accepted": "Geaccepteerd",
+    "state.Active": "Actief",
+    "state.Allocated": "Gebruikt",
+    "state.Allocating": "Alloceren",
+    "state.BackedUp": "Geback-upt",
+    "state.BackingUp": "Back-uppen",
+    "state.Completed": "Uitgevoerd",
+    "state.Creating": "Aanmaken",
+    "state.Declined": "Geweigerd",
+    "state.Destroyed": "Verwijderd",
+    "state.Disabled": "Uitgeschakeld",
+    "state.Enabled": "Geactiveerd",
+    "state.Error": "Fout",
+    "state.Expunging": "Opruimen",
+    "state.Migrating": "MIgreren",
+    "state.Pending": "In afwachting",
+    "state.Ready": "Klaar",
+    "state.Running": "Draaiend",
+    "state.Starting": "Starten",
+    "state.Stopped": "Gestopt",
+    "state.Stopping": "Stoppen",
+    "state.Suspended": "Gepauzeerd",
+    "state.detached": "ontkoppeld",
+    "title.upload.volume": "laad volume",
+    "ui.listView.filters.all": "Alle",
+    "ui.listView.filters.mine": "Eigen"
+};
diff --git a/ui/l10n/pl.js b/ui/l10n/pl.js
new file mode 100644
index 0000000..bd2e3a3
--- /dev/null
+++ b/ui/l10n/pl.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP Code",
+    "ICMP.type": "ICMP Type",
+    "changed.item.properties": "Changed item properties",
+    "confirm.enable.s3": "Please fill in the following information to enable support for S3-backed Secondary Storage",
+    "confirm.enable.swift": "Please fill in the following information to enable support for Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Error could not change your password because LDAP is enabled.",
+    "error.could.not.enable.zone": "Could not enable zone",
+    "error.installWizard.message": "Something went wrong; you may go back and correct any errors",
+    "error.invalid.username.password": "Błędna nazwa użytkownika lub hasło",
+    "error.login": "Your username/password does not match our records.",
+    "error.menu.select": "Unable to perform action due to no items being selected.",
+    "error.mgmt.server.inaccessible": "The Management Server is unaccessible.  Please try again later.",
+    "error.password.not.match": "The password fields do not match",
+    "error.please.specify.physical.network.tags": "Network offerings is not available until you specify tags for this physical network.",
+    "error.session.expired": "Your session has expired.",
+    "error.something.went.wrong.please.correct.the.following": "Something went wrong; please correct the following",
+    "error.unable.to.reach.management.server": "Unable to reach Management Server",
+    "error.unresolved.internet.name": "Your internet name cannot be resolved.",
+    "force.delete": "Force Delete",
+    "force.delete.domain.warning": "Warning: Choosing this option will cause the deletion of all child domains and all associated accounts and their resources.",
+    "force.remove": "Force Remove",
+    "force.remove.host.warning": "Warning: Choosing this option will cause CloudStack to forcefully stop all running virtual machines before removing this host from the cluster.",
+    "force.stop": "Force Stop",
+    "force.stop.instance.warning": "Warning: Forcing a stop on this instance should be your last option. It can lead to data loss as well as inconsistent behavior of the virtual machine state.",
+    "hint.no.host.tags": "No host tags found",
+    "hint.no.storage.tags": "No storage tags found",
+    "hint.type.part.host.tag": "Type in part of a host tag",
+    "hint.type.part.storage.tag": "Type in part of a storage tag",
+    "image.directory": "Image Directory",
+    "inline": "Inline",
+    "instances.actions.reboot.label": "Reboot instance",
+    "label.CIDR.list": "Lista CIDR",
+    "label.CIDR.of.destination.network": "CIDR of destination network",
+    "label.CPU.cap": "CPU Cap",
+    "label.DHCP.server.type": "DHCP Server Type",
+    "label.DNS.domain.for.guest.networks": "DNS domain for Guest Networks",
+    "label.ESP.encryption": "ESP Encryption",
+    "label.ESP.hash": "ESP Hash",
+    "label.ESP.lifetime": "ESP Lifetime (second)",
+    "label.ESP.policy": "ESP policy",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "IKE Encryption",
+    "label.IKE.hash": "IKE Hash",
+    "label.IKE.lifetime": "IKE lifetime (second)",
+    "label.IKE.policy": "IKE policy",
+    "label.IPsec.preshared.key": "IPsec Preshared-Key",
+    "label.LB.isolation": "LB isolation",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto Log Profile",
+    "label.PA.threat.profile": "Palo Alto Threat Profile",
+    "label.PING.CIFS.password": "PING CIFS password",
+    "label.PING.CIFS.username": "PING CIFS username",
+    "label.PING.dir": "PING Directory",
+    "label.PING.storage.IP": "PING storage IP",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "Pxe Server Type",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNMP Port",
+    "label.SR.name": "SR Name-Label",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP Directory",
+    "label.VMFS.datastore": "VMFS datastore",
+    "label.VMs.in.tier": "VMs in tier",
+    "label.VPC.limits": "VPC limits",
+    "label.VPC.router.details": "VPC router details",
+    "label.VPN.connection": "VPN Connection",
+    "label.VPN.customer.gateway": "VPN Customer Gateway",
+    "label.VPN.gateway": "VPN Gateway",
+    "label.Xenserver.Tools.Version61plus": "Original XS Version is 6.1+",
+    "label.about": "About",
+    "label.about.app": "About CloudStack",
+    "label.accept.project.invitation": "Accept project invitation",
+    "label.account": "Konto",
+    "label.account.and.security.group": "Account, Security group",
+    "label.account.details": "Account details",
+    "label.account.id": "ID konta",
+    "label.account.lower": "account",
+    "label.account.name": "Nazwa konta",
+    "label.account.specific": "Account-Specific",
+    "label.account.type": "Account Type",
+    "label.accounts": "Konta",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL List Rules",
+    "label.acl.name": "ACL Name",
+    "label.acl.replaced": "ACL replaced",
+    "label.acquire.new.ip": "Acquire New IP",
+    "label.acquire.new.secondary.ip": "Acquire new secondary IP",
+    "label.action": "Action",
+    "label.action.attach.disk": "Dodaj dysk",
+    "label.action.attach.disk.processing": "Dodawanie dysku",
+    "label.action.attach.iso": "Dodaj obraz ISO",
+    "label.action.attach.iso.processing": "Dodawanie obrazu ISO",
+    "label.action.cancel.maintenance.mode": "Cancel Maintenance Mode",
+    "label.action.cancel.maintenance.mode.processing": "Cancelling Maintenance Mode....",
+    "label.action.change.password": "Zmień hasło",
+    "label.action.change.service": "Change Service",
+    "label.action.change.service.processing": "Changing Service....",
+    "label.action.configure.samlauthorization": "Configure SAML SSO Authorization",
+    "label.action.copy.ISO": "Kopiuj ISO",
+    "label.action.copy.ISO.processing": "Copying ISO....",
+    "label.action.copy.template": "Kopij szablon",
+    "label.action.copy.template.processing": "Copying Template....",
+    "label.action.create.template": "Utwórz szablon",
+    "label.action.create.template.from.vm": "Utwórz szablon z VM",
+    "label.action.create.template.from.volume": "Utwórz Szablon z wolumenu",
+    "label.action.create.template.processing": "Tworzę szablon",
+    "label.action.create.vm": "Utwórz VM",
+    "label.action.create.vm.processing": "Tworzę VM....",
+    "label.action.create.volume": "Utwórz wolumen",
+    "label.action.create.volume.processing": "Tworzę wolumen....",
+    "label.action.delete.IP.range": "Delete IP Range",
+    "label.action.delete.IP.range.processing": "Deleting IP Range....",
+    "label.action.delete.ISO": "Usuń ISO",
+    "label.action.delete.ISO.processing": "Usuwam ISO....",
+    "label.action.delete.account": "Usuń dostęp",
+    "label.action.delete.account.processing": "Usuwanie dostępu....",
+    "label.action.delete.cluster": "Usuń klaster",
+    "label.action.delete.cluster.processing": "Usuwam klaster....",
+    "label.action.delete.disk.offering": "Delete Disk Offering",
+    "label.action.delete.disk.offering.processing": "Deleting Disk Offering....",
+    "label.action.delete.domain": "Usuń domenę",
+    "label.action.delete.domain.processing": "Usuwam domenę....",
+    "label.action.delete.firewall": "Usuń regułę Firewall",
+    "label.action.delete.firewall.processing": "Usuwam Firewall",
+    "label.action.delete.ingress.rule": "Delete Ingress Rule",
+    "label.action.delete.ingress.rule.processing": "Deleting Ingress Rule....",
+    "label.action.delete.load.balancer": "Delete load balancer rule",
+    "label.action.delete.load.balancer.processing": "Deleting Load Balancer....",
+    "label.action.delete.network": "Usuń sieć",
+    "label.action.delete.network.processing": "Usuwam sieć....",
+    "label.action.delete.nexusVswitch": "Usuń Nexus 1000v",
+    "label.action.delete.nic": "Remove NIC",
+    "label.action.delete.physical.network": "Usuń fizyczną sieć",
+    "label.action.delete.pod": "Delete Pod",
+    "label.action.delete.pod.processing": "Deleting Pod....",
+    "label.action.delete.primary.storage": "Delete Primary Storage",
+    "label.action.delete.primary.storage.processing": "Deleting Primary Storage....",
+    "label.action.delete.secondary.storage": "Delete Secondary Storage",
+    "label.action.delete.secondary.storage.processing": "Deleting Secondary Storage....",
+    "label.action.delete.security.group": "Delete Security Group",
+    "label.action.delete.security.group.processing": "Deleting Security Group....",
+    "label.action.delete.service.offering": "Delete Service Offering",
+    "label.action.delete.service.offering.processing": "Deleting Service Offering....",
+    "label.action.delete.snapshot": "Delete Snapshot",
+    "label.action.delete.snapshot.processing": "Deleting Snapshot....",
+    "label.action.delete.system.service.offering": "Delete System Service Offering",
+    "label.action.delete.template": "Delete Template",
+    "label.action.delete.template.processing": "Deleting Template....",
+    "label.action.delete.user": "Usuń użytkownika",
+    "label.action.delete.user.processing": "Usuwam użytkownika....",
+    "label.action.delete.volume": "Usuń wolumen",
+    "label.action.delete.volume.processing": "Usuwam wolumen....",
+    "label.action.delete.zone": "Usuń strefę",
+    "label.action.delete.zone.processing": "Usuwam strefę....",
+    "label.action.destroy.instance": "Usuń instancję",
+    "label.action.destroy.instance.processing": "Usuwam instancję",
+    "label.action.destroy.systemvm": "Destroy System VM",
+    "label.action.destroy.systemvm.processing": "Destroying System VM....",
+    "label.action.detach.disk": "Odłącz dysk",
+    "label.action.detach.disk.processing": "Odłączanie dysku....",
+    "label.action.detach.iso": "Odłącz obraz ISO",
+    "label.action.detach.iso.processing": "Odłączanie obrazu ISO",
+    "label.action.disable.account": "Wyłącz dostęp",
+    "label.action.disable.account.processing": "Wyłączam dostęp....",
+    "label.action.disable.cluster": "Wyłącz klaster",
+    "label.action.disable.cluster.processing": "Wyłączam klaster....",
+    "label.action.disable.nexusVswitch": "Wyłącz Nexus 1000v",
+    "label.action.disable.physical.network": "Wyłącz fizyczną sieć",
+    "label.action.disable.pod": "Disable Pod",
+    "label.action.disable.pod.processing": "Disabling Pod....",
+    "label.action.disable.static.NAT": "Disable Static NAT",
+    "label.action.disable.static.NAT.processing": "Disabling Static NAT....",
+    "label.action.disable.user": "Wyłącz użytkownika",
+    "label.action.disable.user.processing": "Wyłączam użytkownika",
+    "label.action.disable.zone": "Wyłącz strefę",
+    "label.action.disable.zone.processing": "Wyłączam strefę....",
+    "label.action.download.ISO": "Pobierz ISO",
+    "label.action.download.template": "Pobierz szablon",
+    "label.action.download.volume": "Pobierz wolumen",
+    "label.action.download.volume.processing": "Pobieram wolumen....",
+    "label.action.edit.ISO": "Edytuj ISO",
+    "label.action.edit.account": "Edytuj dostęp",
+    "label.action.edit.disk.offering": "Edit Disk Offering",
+    "label.action.edit.domain": "Edytuj domenę",
+    "label.action.edit.global.setting": "Edytuj Globalne ustawienia",
+    "label.action.edit.host": "Edytuj host",
+    "label.action.edit.instance": "Edytuj instancję",
+    "label.action.edit.network": "Edytuj sieć",
+    "label.action.edit.network.offering": "Edit Network Offering",
+    "label.action.edit.network.processing": "Zmieniam sieć....",
+    "label.action.edit.pod": "Edit Pod",
+    "label.action.edit.primary.storage": "Edit Primary Storage",
+    "label.action.edit.resource.limits": "Edit Resource Limits",
+    "label.action.edit.service.offering": "Edit Service Offering",
+    "label.action.edit.template": "Edytuj szablon",
+    "label.action.edit.user": "Edytuj użytkownika",
+    "label.action.edit.zone": "Edytuj strefę",
+    "label.action.enable.account": "Włącz dostęp",
+    "label.action.enable.account.processing": "Włączam dostęp....",
+    "label.action.enable.cluster": "Włącz klaster",
+    "label.action.enable.cluster.processing": "Włączam klaster....",
+    "label.action.enable.maintenance.mode": "Enable Maintenance Mode",
+    "label.action.enable.maintenance.mode.processing": "Enabling Maintenance Mode....",
+    "label.action.enable.nexusVswitch": "Włącz Nexus 1000v",
+    "label.action.enable.physical.network": "Włącz fizyczną sieć",
+    "label.action.enable.pod": "Enable Pod",
+    "label.action.enable.pod.processing": "Enabling Pod....",
+    "label.action.enable.static.NAT": "Enable Static NAT",
+    "label.action.enable.static.NAT.processing": "Enabling Static NAT....",
+    "label.action.enable.user": "Włącz użytkownika",
+    "label.action.enable.user.processing": "Włączam użytkownika....",
+    "label.action.enable.zone": "Włącz strefę",
+    "label.action.enable.zone.processing": "Włączam strefę....",
+    "label.action.expunge.instance": "Expunge Instance",
+    "label.action.expunge.instance.processing": "Expunging Instance....",
+    "label.action.force.reconnect": "Force Reconnect",
+    "label.action.force.reconnect.processing": "Reconnecting....",
+    "label.action.generate.keys": "Generuj klucze",
+    "label.action.generate.keys.processing": "Generuję klucze....",
+    "label.action.list.nexusVswitch": "Kista Nexus 1000v",
+    "label.action.lock.account": "Zablokuj dostęp",
+    "label.action.lock.account.processing": "Blokuję dostęp....",
+    "label.action.manage.cluster": "Zarządzaj klastrem",
+    "label.action.manage.cluster.processing": "Zarządzam klastrem....",
+    "label.action.migrate.instance": "Migruj instancję",
+    "label.action.migrate.instance.processing": "Migruję instancję....",
+    "label.action.migrate.router": "Migruj router",
+    "label.action.migrate.router.processing": "Migruje router....",
+    "label.action.migrate.systemvm": "Migruj system VM",
+    "label.action.migrate.systemvm.processing": "Migruję system VM....",
+    "label.action.reboot.instance": "Restartuj instancję",
+    "label.action.reboot.instance.processing": "Restartuje instancję",
+    "label.action.reboot.router": "Restartuj router",
+    "label.action.reboot.router.processing": "Restartuje router.....",
+    "label.action.reboot.systemvm": "Restartuj system VM",
+    "label.action.reboot.systemvm.processing": "Restartuje system VM....",
+    "label.action.recurring.snapshot": "Recurring Snapshots",
+    "label.action.register.iso": "Rejestruj ISO",
+    "label.action.register.template": "Register Template from URL",
+    "label.action.release.ip": "Release IP",
+    "label.action.release.ip.processing": "Releasing IP....",
+    "label.action.remove.host": "Usuń host",
+    "label.action.remove.host.processing": "Usuwam host....",
+    "label.action.reset.password": "Resetuj hasło",
+    "label.action.reset.password.processing": "Resetuję hasło....",
+    "label.action.resize.volume": "Zmień wielkość wolumenu",
+    "label.action.resize.volume.processing": "Zmieniam wielkość wolumenu....",
+    "label.action.resource.limits": "Resource limits",
+    "label.action.restore.instance": "Przywróć instancję",
+    "label.action.restore.instance.processing": "Restoring Instance....",
+    "label.action.revert.snapshot": "Revert to Snapshot",
+    "label.action.revert.snapshot.processing": "Reverting to Snapshot...",
+    "label.action.start.instance": "Uruchom instancję",
+    "label.action.start.instance.processing": "Uruchamiam instancję....",
+    "label.action.start.router": "Uruchom router",
+    "label.action.start.router.processing": "Uruchamiam router....",
+    "label.action.start.systemvm": "Uruchom system VM",
+    "label.action.start.systemvm.processing": "Uruchamiam system VM...",
+    "label.action.stop.instance": "Zatrzymaj instancję",
+    "label.action.stop.instance.processing": "Zatrzymuję instancję....",
+    "label.action.stop.router": "Zatrzymaj router",
+    "label.action.stop.router.processing": "Zatrzymuję router...",
+    "label.action.stop.systemvm": "Zatrzymaj system VM",
+    "label.action.stop.systemvm.processing": "Zatrzymuję system VM....",
+    "label.action.take.snapshot": "Zrób snapshot",
+    "label.action.take.snapshot.processing": "Tworzę snapshot....",
+    "label.action.unmanage.cluster": "Unmanage Cluster",
+    "label.action.unmanage.cluster.processing": "Unmanaging Cluster....",
+    "label.action.update.OS.preference": "Update OS Preference",
+    "label.action.update.OS.preference.processing": "Updating OS Preference....",
+    "label.action.update.resource.count": "Update Resource Count",
+    "label.action.update.resource.count.processing": "Updating Resource Count....",
+    "label.action.vmsnapshot.create": "Take VM Snapshot",
+    "label.action.vmsnapshot.delete": "Delete VM snapshot",
+    "label.action.vmsnapshot.revert": "Revert to VM snapshot",
+    "label.actions": "Akcje",
+    "label.activate.project": "Aktywuj projekt",
+    "label.active.sessions": "Active Sessions",
+    "label.add": "Dodaj",
+    "label.add.ACL": "Dodaj ACL",
+    "label.add.BigSwitchBcf.device": "Add BigSwitch BCF Controller",
+    "label.add.BrocadeVcs.device": "Add Brocade Vcs Switch",
+    "label.add.F5.device": "Add F5 device",
+    "label.add.LDAP.account": "Add LDAP Account",
+    "label.add.NiciraNvp.device": "Add Nvp Controller",
+    "label.add.NuageVsp.device": "Add Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Add OpenDaylight Controller",
+    "label.add.PA.device": "Add Palo Alto device",
+    "label.add.SRX.device": "Add SRX device",
+    "label.add.VM.to.tier": "Add VM to tier",
+    "label.add.VPN.gateway": "Add VPN Gateway",
+    "label.add.account": "Dodaj konto",
+    "label.add.account.to.project": "Dodaj konto do projektu",
+    "label.add.accounts": "Dodaj konta",
+    "label.add.accounts.to": "Dodaj konto do",
+    "label.add.acl.list": "Add ACL List",
+    "label.add.affinity.group": "Add new affinity group",
+    "label.add.baremetal.dhcp.device": "Add Baremetal DHCP Device",
+    "label.add.baremetal.rack.configuration": "Add Baremetal Rack Configuration",
+    "label.add.by": "Dodaj przez",
+    "label.add.by.cidr": "Dodaj przez CIDR",
+    "label.add.by.group": "Dodaj przez grupę",
+    "label.add.ciscoASA1000v": "Add CiscoASA1000v Resource",
+    "label.add.cluster": "Dodaj klaster",
+    "label.add.compute.offering": "Add compute offering",
+    "label.add.direct.iprange": "Add Direct Ip Range",
+    "label.add.disk.offering": "Add Disk Offering",
+    "label.add.domain": "Dodaj domenę",
+    "label.add.egress.rule": "Add egress rule",
+    "label.add.firewall": "Dodaj regułę firewall",
+    "label.add.globo.dns": "Add GloboDNS",
+    "label.add.gslb": "Add GSLB",
+    "label.add.guest.network": "Add guest network",
+    "label.add.host": "Dodaj host",
+    "label.add.ingress.rule": "Add Ingress Rule",
+    "label.add.intermediate.certificate": "Add intermediate certificate",
+    "label.add.internal.lb": "Add Internal LB",
+    "label.add.ip.range": "Add IP Range",
+    "label.add.isolated.guest.network": "Add Isolated Guest Network",
+    "label.add.isolated.guest.network.with.sourcenat": "Add Isolated Guest Network with SourceNat",
+    "label.add.isolated.network": "Add Isolated Network",
+    "label.add.ldap.account": "Add LDAP account",
+    "label.add.list.name": "ACL List Name",
+    "label.add.load.balancer": "Add Load Balancer",
+    "label.add.more": "Dodaj więcej",
+    "label.add.netScaler.device": "Add Netscaler device",
+    "label.add.network": "Dodaj sieć",
+    "label.add.network.ACL": "Add network ACL",
+    "label.add.network.acl.list": "Add Network ACL List",
+    "label.add.network.device": "Dodaj urządzenie sieciowe",
+    "label.add.network.offering": "Add network offering",
+    "label.add.new.F5": "Dodaj nowy F5",
+    "label.add.new.NetScaler": "Add new NetScaler",
+    "label.add.new.PA": "Add new Palo Alto",
+    "label.add.new.SRX": "Dodaj nowy SRX",
+    "label.add.new.gateway": "Add new gateway",
+    "label.add.new.tier": "Add new tier",
+    "label.add.nfs.secondary.staging.store": "Add NFS Secondary Staging Store",
+    "label.add.physical.network": "Add physical network",
+    "label.add.pod": "Add Pod",
+    "label.add.port.forwarding.rule": "Add port forwarding rule",
+    "label.add.portable.ip.range": "Add Portable IP Range",
+    "label.add.primary.storage": "Add Primary Storage",
+    "label.add.private.gateway": "Add Private Gateway",
+    "label.add.region": "Dodaj region",
+    "label.add.resources": "Add Resources",
+    "label.add.role": "Add Role",
+    "label.add.route": "Add route",
+    "label.add.rule": "Dodaj regułę",
+    "label.add.secondary.storage": "Add Secondary Storage",
+    "label.add.security.group": "Add Security Group",
+    "label.add.service.offering": "Add Service Offering",
+    "label.add.static.nat.rule": "Add static NAT rule",
+    "label.add.static.route": "Add static route",
+    "label.add.system.service.offering": "Add System Service Offering",
+    "label.add.template": "Add Template",
+    "label.add.to.group": "Dodaj do grupy",
+    "label.add.ucs.manager": "Add UCS Manager",
+    "label.add.user": "Dodaj użytkownika",
+    "label.add.userdata": "Userdata",
+    "label.add.vlan": "Dodaj VLAN",
+    "label.add.vm": "Dodaj VM",
+    "label.add.vms": "Dodaj VM-ny",
+    "label.add.vms.to.lb": "Add VM(s) to load balancer rule",
+    "label.add.vmware.datacenter": "Add VMware datacenter",
+    "label.add.vnmc.device": "Add VNMC device",
+    "label.add.vnmc.provider": "Add VNMC provider",
+    "label.add.volume": "Dodaj wolumen",
+    "label.add.vpc": "Dodaj VPC",
+    "label.add.vpc.offering": "Add VPC Offering",
+    "label.add.vpn.customer.gateway": "Add VPN Customer Gateway",
+    "label.add.vpn.user": "Add VPN user",
+    "label.add.vxlan": "Add VXLAN",
+    "label.add.zone": "Dodaj strefę",
+    "label.added.brocade.vcs.switch": "Added new Brocade Vcs Switch",
+    "label.added.network.offering": "Added network offering",
+    "label.added.new.bigswitch.bcf.controller": "Added new BigSwitch BCF Controller",
+    "label.added.nicira.nvp.controller": "Added new Nicira NVP Controller",
+    "label.addes.new.f5": "Added new F5",
+    "label.adding": "Dodawanie",
+    "label.adding.cluster": "Adding Cluster",
+    "label.adding.failed": "Dodanie nieudane",
+    "label.adding.pod": "Adding Pod",
+    "label.adding.processing": "Dodawanie",
+    "label.adding.succeeded": "Dodanie udane",
+    "label.adding.user": "Adding User",
+    "label.adding.zone": "Adding Zone",
+    "label.additional.networks": "Additional Networks",
+    "label.admin": "Admin",
+    "label.admin.accounts": "Admin Accounts",
+    "label.advanced": "Advanced",
+    "label.advanced.mode": "Advanced Mode",
+    "label.advanced.search": "Advanced Search",
+    "label.affinity": "Affinity",
+    "label.affinity.group": "Affinity Group",
+    "label.affinity.groups": "Affinity Groups",
+    "label.agent.password": "Agent Password",
+    "label.agent.port": "Agent Port",
+    "label.agent.state": "Agent State",
+    "label.agent.username": "Agent Username",
+    "label.agree": "Agree",
+    "label.alert": "Alert",
+    "label.alert.archived": "Alert Archived",
+    "label.alert.deleted": "Alert Deleted",
+    "label.alert.details": "Alert details",
+    "label.algorithm": "Algorithm",
+    "label.allocated": "Allocated",
+    "label.allocation.state": "Allocation State",
+    "label.allow": "Allow",
+    "label.anti.affinity": "Anti-affinity",
+    "label.anti.affinity.group": "Anti-affinity Group",
+    "label.anti.affinity.groups": "Anti-affinity Groups",
+    "label.api.key": "Klucz API",
+    "label.api.version": "API Version",
+    "label.app.name": "CloudStack",
+    "label.apply": "Zastosuj",
+    "label.archive": "Archive",
+    "label.archive.alerts": "Archive alerts",
+    "label.archive.events": "Archive events",
+    "label.assign": "Assign",
+    "label.assign.instance.another": "Assign Instance to Another Account",
+    "label.assign.to.load.balancer": "Assigning instance to load balancer",
+    "label.assign.vms": "Assign VMs",
+    "label.assigned.vms": "Assigned VMs",
+    "label.associate.public.ip": "Associate Public IP",
+    "label.associated.network": "Associated Network",
+    "label.associated.network.id": "Associated Network ID",
+    "label.associated.profile": "Associated Profile",
+    "label.attached.iso": "Attached ISO",
+    "label.author.email": "Author e-mail",
+    "label.author.name": "Imię autora",
+    "label.autoscale": "AutoScale",
+    "label.autoscale.configuration.wizard": "AutoScale Configuration Wizard",
+    "label.availability": "Availability",
+    "label.availability.zone": "Availability Zone",
+    "label.availabilityZone": "availabilityZone",
+    "label.available": "Dostępne",
+    "label.available.public.ips": "Dostępne publiczne adresy IP",
+    "label.back": "Wstecz",
+    "label.bandwidth": "Przepustowość",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP Devices",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP Provider",
+    "label.baremetal.pxe.device": "Add Baremetal PXE Device",
+    "label.baremetal.pxe.devices": "Baremetal PXE Devices",
+    "label.baremetal.pxe.provider": "Baremetal PXE Provider",
+    "label.baremetal.rack.configuration": "Baremetal Rack Configuration",
+    "label.basic": "Basic",
+    "label.basic.mode": "Basic Mode",
+    "label.bigswitch.bcf.details": "BigSwitch BCF details",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT Enabled",
+    "label.bigswitch.controller.address": "BigSwitch BCF Controller Address",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blades",
+    "label.bootable": "Bootable",
+    "label.broadcast.domain.range": "Broadcast domain range",
+    "label.broadcast.domain.type": "Broadcast Domain Type",
+    "label.broadcast.uri": "Broadcast URI",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "Broadcast URI",
+    "label.brocade.vcs.address": "Vcs Switch Address",
+    "label.brocade.vcs.details": "Brocade Vcs Switch details",
+    "label.by.account": "By Account",
+    "label.by.alert.type": "By alert type",
+    "label.by.availability": "By Availability",
+    "label.by.date.end": "By date (end)",
+    "label.by.date.start": "By date (start)",
+    "label.by.domain": "By Domain",
+    "label.by.end.date": "By End Date",
+    "label.by.event.type": "By event type",
+    "label.by.level": "By Level",
+    "label.by.pod": "By Pod",
+    "label.by.role": "By Role",
+    "label.by.start.date": "By Start Date",
+    "label.by.state": "By State",
+    "label.by.traffic.type": "By Traffic Type",
+    "label.by.type": "By Type",
+    "label.by.type.id": "By Type ID",
+    "label.by.zone": "By Zone",
+    "label.bytes.received": "Bytes Received",
+    "label.bytes.sent": "Bytes Sent",
+    "label.cache.mode": "Write-cache Type",
+    "label.cancel": "Zakończ",
+    "label.capacity": "Capacity",
+    "label.capacity.bytes": "Capacity Bytes",
+    "label.capacity.iops": "Capacity IOPS",
+    "label.certificate": "Certyfikat",
+    "label.change.affinity": "Change Affinity",
+    "label.change.ipaddress": "Change IP address for NIC",
+    "label.change.service.offering": "Change service offering",
+    "label.change.value": "Change value",
+    "label.character": "Character",
+    "label.chassis": "Chassis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR or Account/Security Group",
+    "label.cidr.list": "Source CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP Address",
+    "label.cisco.nexus1000v.password": "Nexus 1000v Password",
+    "label.cisco.nexus1000v.username": "Nexus 1000v Username",
+    "label.ciscovnmc.resource.details": "CiscoVNMC resource details",
+    "label.clean.up": "Wyczyść",
+    "label.clear.list": "Wyczyść listę",
+    "label.close": "Zamknij",
+    "label.cloud.console": "Cloud Management Console",
+    "label.cloud.managed": "Cloud.com Managed",
+    "label.cluster": "Cluster",
+    "label.cluster.name": "Cluster Name",
+    "label.cluster.type": "Cluster Type",
+    "label.clusters": "Clusters",
+    "label.clvm": "CLVM",
+    "label.code": "Kod",
+    "label.community": "Społeczność",
+    "label.compute": "Compute",
+    "label.compute.and.storage": "Compute and Storage",
+    "label.compute.offering": "Compute offering",
+    "label.compute.offerings": "Compute Offerings",
+    "label.configuration": "Konfiguracja",
+    "label.configure": "Konfiguruj",
+    "label.configure.ldap": "Configure LDAP",
+    "label.configure.network.ACLs": "Configure Network ACLs",
+    "label.configure.sticky.policy": "Configure Sticky Policy",
+    "label.configure.vpc": "Konfiguruj VPC",
+    "label.confirm.password": "Potwierdź hasło",
+    "label.confirmation": "Potwierdzenie",
+    "label.congratulations": "Gratulacje!",
+    "label.conserve.mode": "Conserve mode",
+    "label.console.proxy": "Console proxy",
+    "label.console.proxy.vm": "Console Proxy VM",
+    "label.continue": "Kontynuuj",
+    "label.continue.basic.install": "Continue with basic installation",
+    "label.copying.iso": "Copying ISO",
+    "label.corrections.saved": "Poprawka zapisana",
+    "label.counter": "Counter",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU Allocated",
+    "label.cpu.allocated.for.VMs": "CPU Allocated for VMs",
+    "label.cpu.limits": "Limit CPU",
+    "label.cpu.mhz": "CPU (w MHz)",
+    "label.cpu.utilized": "CPU Utilized",
+    "label.create.VPN.connection": "Create VPN Connection",
+    "label.create.nfs.secondary.staging.storage": "Create NFS Secondary Staging Store",
+    "label.create.nfs.secondary.staging.store": "Create NFS secondary staging store",
+    "label.create.project": "Stwórz projekt",
+    "label.create.ssh.key.pair": "Create a SSH Key Pair",
+    "label.create.template": "Create template",
+    "label.created": "Utworzono",
+    "label.created.by.system": "Utworzono przez system",
+    "label.cross.zones": "Cross Zones",
+    "label.custom": "Custom",
+    "label.custom.disk.iops": "Custom IOPS",
+    "label.custom.disk.offering": "Custom Disk Offering",
+    "label.custom.disk.size": "Custom Disk Size",
+    "label.daily": "Dziennie",
+    "label.data.disk.offering": "Data Disk Offering",
+    "label.date": "Data",
+    "label.day": "Day",
+    "label.day.of.month": "Dzień miesiąca",
+    "label.day.of.week": "Dzień tygodnia",
+    "label.dc.name": "DC Name",
+    "label.dead.peer.detection": "Dead Peer Detection",
+    "label.decline.invitation": "Decline invitation",
+    "label.dedicate": "Dedicate",
+    "label.dedicate.cluster": "Dedicate Cluster",
+    "label.dedicate.host": "Dedicate Host",
+    "label.dedicate.pod": "Dedicate Pod",
+    "label.dedicate.vlan.vni.range": "Dedicate VLAN/VNI Range",
+    "label.dedicate.zone": "Dedicate Zone",
+    "label.dedicated": "Dedykowany",
+    "label.dedicated.vlan.vni.ranges": "Dedicated VLAN/VNI Ranges",
+    "label.default": "Domyślnie",
+    "label.default.egress.policy": "Default egress policy",
+    "label.default.use": "Default Use",
+    "label.default.view": "Widok domyślny",
+    "label.delete": "Usuń",
+    "label.delete.BigSwitchBcf": "Remove BigSwitch BCF Controller",
+    "label.delete.BrocadeVcs": "Remove Brocade Vcs Switch",
+    "label.delete.F5": "Usuń F5",
+    "label.delete.NetScaler": "Delete NetScaler",
+    "label.delete.NiciraNvp": "Remove Nvp Controller",
+    "label.delete.NuageVsp": "Remove Nuage VSD",
+    "label.delete.OpenDaylight.device": "Delete OpenDaylight Controller",
+    "label.delete.PA": "Delete Palo Alto",
+    "label.delete.SRX": "Usuń SRX",
+    "label.delete.VPN.connection": "Delete VPN connection",
+    "label.delete.VPN.customer.gateway": "Delete VPN Customer Gateway",
+    "label.delete.VPN.gateway": "Delete VPN Gateway",
+    "label.delete.acl.list": "Delete ACL List",
+    "label.delete.affinity.group": "Delete Affinity Group",
+    "label.delete.alerts": "Delete alerts",
+    "label.delete.baremetal.rack.configuration": "Delete Baremetal Rack Configuration",
+    "label.delete.ciscoASA1000v": "Delete CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Delete CiscoVNMC resource",
+    "label.delete.events": "Delete events",
+    "label.delete.gateway": "Delete gateway",
+    "label.delete.internal.lb": "Delete Internal LB",
+    "label.delete.portable.ip.range": "Delete Portable IP Range",
+    "label.delete.profile": "Delete Profile",
+    "label.delete.project": "Usuń projekt",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Delete Secondary Staging Store",
+    "label.delete.ucs.manager": "Delete UCS Manager",
+    "label.delete.vpn.user": "Delete VPN user",
+    "label.deleting.failed": "Usuwanie nieudane",
+    "label.deleting.processing": "Usuwanie....",
+    "label.deny": "Deny",
+    "label.deployment.planner": "Deployment planner",
+    "label.description": "Description",
+    "label.destination.physical.network.id": "Destination physical network ID",
+    "label.destination.zone": "Destination Zone",
+    "label.destroy": "Zniszcz",
+    "label.destroy.router": "Zniszcz router",
+    "label.destroy.vm.graceperiod": "Destroy VM Grace Period",
+    "label.detaching.disk": "Odłączanie dysku",
+    "label.details": "Szczegóły",
+    "label.device.id": "Device ID",
+    "label.devices": "Devices",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Direct Attached Public IP",
+    "label.direct.ips": "Shared Network IPs",
+    "label.disable.autoscale": "Disable Autoscale",
+    "label.disable.host": "Disable Host",
+    "label.disable.network.offering": "Disable network offering",
+    "label.disable.provider": "Disable provider",
+    "label.disable.vnmc.provider": "Disable VNMC provider",
+    "label.disable.vpc.offering": "Disable VPC offering",
+    "label.disable.vpn": "Wyłącz VPN",
+    "label.disabled": "Wyłączony",
+    "label.disabling.vpn.access": "Disabling VPN Access",
+    "label.disassociate.profile.blade": "Disassociate Profile from Blade",
+    "label.disbale.vnmc.device": "Disable VNMC device",
+    "label.disk.allocated": "Disk Allocated",
+    "label.disk.bytes.read.rate": "Disk Read Rate (BPS)",
+    "label.disk.bytes.write.rate": "Disk Write Rate (BPS)",
+    "label.disk.iops.max": "Max IOPS",
+    "label.disk.iops.min": "Min IOPS",
+    "label.disk.iops.read.rate": "Disk Read Rate (IOPS)",
+    "label.disk.iops.total": "IOPS Total",
+    "label.disk.iops.write.rate": "Disk Write Rate (IOPS)",
+    "label.disk.offering": "Disk Offering",
+    "label.disk.offering.details": "Disk offering details",
+    "label.disk.provisioningtype": "Provisioning Type",
+    "label.disk.read.bytes": "Disk Read (Bytes)",
+    "label.disk.read.io": "Disk Read (IO)",
+    "label.disk.size": "Wielkość dysku",
+    "label.disk.size.gb": "Wielkość dysku (w GB)",
+    "label.disk.total": "Disk Total",
+    "label.disk.volume": "Disk Volume",
+    "label.disk.write.bytes": "Disk Write (Bytes)",
+    "label.disk.write.io": "Disk Write (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Display Name",
+    "label.display.text": "Display Text",
+    "label.distributedrouter": "Distributed Router",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Domena",
+    "label.domain.admin": "Administrator domeny",
+    "label.domain.details": "Domain details",
+    "label.domain.id": "ID domeny",
+    "label.domain.lower": "domain",
+    "label.domain.name": "Nazwa domeny",
+    "label.domain.router": "Domain router",
+    "label.domain.suffix": "DNS Domain Suffix (i.e., xyz.com)",
+    "label.done": "Skończono",
+    "label.double.quotes.are.not.allowed": "Double quotes are not allowed",
+    "label.download.progress": "Postęp w pobieraniu",
+    "label.drag.new.position": "Przenieś w nowe miejsce",
+    "label.duration.in.sec": "Duration (in sec)",
+    "label.dynamically.scalable": "Dynamically Scalable",
+    "label.edit": "Edytuj",
+    "label.edit.acl.rule": "Edit ACL rule",
+    "label.edit.affinity.group": "Edit Affinity Group",
+    "label.edit.lb.rule": "Edit LB rule",
+    "label.edit.network.details": "Edytuj szczegóły sieci",
+    "label.edit.project.details": "Zmień szczegóły projektu",
+    "label.edit.region": "Edit Region",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Edit rule",
+    "label.edit.secondary.ips": "Edit secondary IPs",
+    "label.edit.tags": "Edit tags",
+    "label.edit.traffic.type": "Edit traffic type",
+    "label.edit.vpc": "Edytuj VPC",
+    "label.egress.default.policy": "Egress Default Policy",
+    "label.egress.rule": "Egress rule",
+    "label.egress.rules": "Egress rules",
+    "label.elastic": "Elastyczny",
+    "label.elastic.IP": "Zmienne IP",
+    "label.elastic.LB": "Elastic LB",
+    "label.email": "Poczta",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Enable Autoscale",
+    "label.enable.host": "Enable Host",
+    "label.enable.network.offering": "Enable network offering",
+    "label.enable.provider": "Enable provider",
+    "label.enable.s3": "Enable S3-backed Secondary Storage",
+    "label.enable.swift": "Enable Swift",
+    "label.enable.vnmc.device": "Enable VNMC device",
+    "label.enable.vnmc.provider": "Enable VNMC provider",
+    "label.enable.vpc.offering": "Enable VPC offering",
+    "label.enable.vpn": "Włącz VPN",
+    "label.enabling.vpn": "Enabling VPN",
+    "label.enabling.vpn.access": "Enabling VPN Access",
+    "label.end.IP": "End IP",
+    "label.end.port": "End Port",
+    "label.end.reserved.system.IP": "End Reserved system IP",
+    "label.end.vlan": "End VLAN",
+    "label.end.vxlan": "End VXLAN",
+    "label.endpoint": "Endpoint",
+    "label.endpoint.or.operation": "Endpoint or Operation",
+    "label.enter.token": "Enter token",
+    "label.error": "Błąd",
+    "label.error.code": "Error Code",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "ESX/ESXi Host",
+    "label.event": "Event",
+    "label.event.archived": "Event Archived",
+    "label.event.deleted": "Event Deleted",
+    "label.every": "Every",
+    "label.example": "Example",
+    "label.expunge": "Expunge",
+    "label.external.link": "External link",
+    "label.extractable": "Extractable",
+    "label.extractable.lower": "extractable",
+    "label.f5": "F5",
+    "label.f5.details": "F5 details",
+    "label.failed": "Błąd",
+    "label.featured": "Polecane",
+    "label.fetch.latest": "Fetch latest",
+    "label.filterBy": "Filtrowanie wg",
+    "label.fingerprint": "FingerPrint",
+    "label.firewall": "Zapora",
+    "label.first.name": "Pierwsza nazwa",
+    "label.firstname.lower": "firstname",
+    "label.format": "Format",
+    "label.format.lower": "format",
+    "label.friday": "Piątek",
+    "label.full": "Full",
+    "label.full.path": "Pełna ścieżka",
+    "label.gateway": "Gateway",
+    "label.general.alerts": "General Alerts",
+    "label.generating.url": "Generating URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS Configuration",
+    "label.gluster.volume": "Volume",
+    "label.go.step.2": "Idź do punktu 2",
+    "label.go.step.3": "Idź do punktu 3",
+    "label.go.step.4": "Idź do punktu 4",
+    "label.go.step.5": "Idź do punktu 5",
+    "label.gpu": "GPU",
+    "label.group": "Grupa",
+    "label.group.by.account": "Group by account",
+    "label.group.by.cluster": "Group by cluster",
+    "label.group.by.pod": "Group by pod",
+    "label.group.by.zone": "Group by zone",
+    "label.group.optional": "Grupa (opcjonalnie)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Assigned load balancing",
+    "label.gslb.assigned.lb.more": "Assign more load balancing",
+    "label.gslb.delete": "Delete GSLB",
+    "label.gslb.details": "GSLB details",
+    "label.gslb.domain.name": "GSLB Domain Name",
+    "label.gslb.lb.details": "Load balancing details",
+    "label.gslb.lb.remove": "Remove load balancing from this GSLB",
+    "label.gslb.lb.rule": "Load balancing rule",
+    "label.gslb.service": "GSLB service",
+    "label.gslb.service.private.ip": "GSLB service Private IP",
+    "label.gslb.service.public.ip": "GSLB service Public IP",
+    "label.gslb.servicetype": "Service Type",
+    "label.guest": "Gość",
+    "label.guest.cidr": "Guest CIDR",
+    "label.guest.end.ip": "Guest end IP",
+    "label.guest.gateway": "Guest Gateway",
+    "label.guest.ip": "Guest IP Address",
+    "label.guest.ip.range": "Guest IP Range",
+    "label.guest.netmask": "Guest Netmask",
+    "label.guest.network.details": "Guest network details",
+    "label.guest.networks": "Guest networks",
+    "label.guest.start.ip": "Guest start IP",
+    "label.guest.traffic": "Guest Traffic",
+    "label.guest.traffic.vswitch.name": "Guest Traffic vSwitch Name",
+    "label.guest.traffic.vswitch.type": "Guest Traffic vSwitch Type",
+    "label.guest.type": "Rodzaj gości",
+    "label.ha.enabled": "HA Enabled",
+    "label.health.check": "Health Check",
+    "label.health.check.advanced.options": "Advanced Options:",
+    "label.health.check.configurations.options": "Configuration Options:",
+    "label.health.check.interval.in.sec": "Health Check Interval (in sec)",
+    "label.health.check.message.desc": "Your load balancer will automatically perform health checks on your cloudstack instances and only route traffic to instances that pass the health check",
+    "label.health.check.wizard": "Health Check Wizard",
+    "label.healthy.threshold": "Healthy Threshold",
+    "label.help": "Pomoc",
+    "label.hide.ingress.rule": "Hide Ingress Rule",
+    "label.hints": "Podpowiedzi",
+    "label.home": "Home",
+    "label.host": "Host",
+    "label.host.MAC": "Host MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Host Name",
+    "label.host.tag": "Host Tag",
+    "label.host.tags": "Host Tags",
+    "label.hosts": "Hosts",
+    "label.hourly": "Hourly",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Traffic Label",
+    "label.hypervisor": "Hypervisor",
+    "label.hypervisor.capabilities": "Hypervisor capabilities",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Snapshot Reserve",
+    "label.hypervisor.type": "Hypervisor Type",
+    "label.hypervisor.version": "Hypervisor version",
+    "label.hypervisors": "Hypervisors",
+    "label.id": "ID",
+    "label.info": "Informacje",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Ingress Rule",
+    "label.initiated.by": "Initiated By",
+    "label.inside.port.profile": "Inside Port Profile",
+    "label.installWizard.addClusterIntro.subtitle": "What is a cluster?",
+    "label.installWizard.addClusterIntro.title": "Let&rsquo;s add a cluster",
+    "label.installWizard.addHostIntro.subtitle": "What is a host?",
+    "label.installWizard.addHostIntro.title": "Let&rsquo;s add a host",
+    "label.installWizard.addPodIntro.subtitle": "What is a pod?",
+    "label.installWizard.addPodIntro.title": "Let&rsquo;s add a pod",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "What is primary storage?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Let&rsquo;s add primary storage",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "What is secondary storage?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Let&rsquo;s add secondary storage",
+    "label.installWizard.addZone.title": "Add zone",
+    "label.installWizard.addZoneIntro.subtitle": "What is a zone?",
+    "label.installWizard.addZoneIntro.title": "Let&rsquo;s add a zone",
+    "label.installWizard.click.launch": "Click the launch button.",
+    "label.installWizard.subtitle": "This tour will aid you in setting up your CloudStack&#8482 installation",
+    "label.installWizard.title": "Hello and Welcome to CloudStack&#8482",
+    "label.instance": "Instance",
+    "label.instance.limits": "Instance Limits",
+    "label.instance.name": "Instance Name",
+    "label.instance.port": "Instance Port",
+    "label.instance.scaled.up": "Instance scaled to the requested offering",
+    "label.instances": "Instancje",
+    "label.instanciate.template.associate.profile.blade": "Instanciate Template and Associate Profile to Blade",
+    "label.intermediate.certificate": "Intermediate certificate {0}",
+    "label.internal.dns.1": "Internal DNS 1",
+    "label.internal.dns.2": "Internal DNS 2",
+    "label.internal.lb": "Internal LB",
+    "label.internal.lb.details": "Internal LB details",
+    "label.internal.name": "Internal name",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "Interval Type",
+    "label.introduction.to.cloudstack": "Introduction to CloudStack&#8482",
+    "label.invalid.integer": "Invalid Integer",
+    "label.invalid.number": "Invalid Number",
+    "label.invitations": "Zaproszenia",
+    "label.invite": "Zaproś",
+    "label.invite.to": "Zaproś do",
+    "label.invited.accounts": "Zaproszone konta",
+    "label.ip": "IP",
+    "label.ip.address": "IP Address",
+    "label.ip.allocations": "IP Allocations",
+    "label.ip.limits": "Public IP Limits",
+    "label.ip.or.fqdn": "IP or FQDN",
+    "label.ip.range": "IP Range",
+    "label.ip.ranges": "IP Ranges",
+    "label.ipaddress": "IP Address",
+    "label.ips": "IP",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 End IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4 Netmask",
+    "label.ipv4.start.ip": "IPv4 Start IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP Address",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 End IP",
+    "label.ipv6.gateway": "IPv6 Gateway",
+    "label.ipv6.start.ip": "IPv6 Start IP",
+    "label.is.default": "Is Default",
+    "label.is.redundant.router": "Redundant",
+    "label.is.shared": "Is Shared",
+    "label.is.system": "Is System",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO Boot",
+    "label.isolated.networks": "Isolated networks",
+    "label.isolation.method": "Isolation method",
+    "label.isolation.mode": "Isolation Mode",
+    "label.isolation.uri": "Isolation URI",
+    "label.item.listing": "Item listing",
+    "label.japanese.keyboard": "Japanese keyboard",
+    "label.keep": "Zostaw",
+    "label.keep.colon": "Keep:",
+    "label.key": "Klucz",
+    "label.keyboard.language": "Keyboard language",
+    "label.keyboard.type": "Keyboard type",
+    "label.kvm.traffic.label": "KVM traffic label",
+    "label.label": "Label",
+    "label.lang.arabic": "Arabic",
+    "label.lang.brportugese": "Brazilian Portugese",
+    "label.lang.catalan": "Catalan",
+    "label.lang.chinese": "Chinese (Simplified)",
+    "label.lang.dutch": "Dutch (Netherlands)",
+    "label.lang.english": "Angielski",
+    "label.lang.french": "Francuski",
+    "label.lang.german": "German",
+    "label.lang.hungarian": "Hungarian",
+    "label.lang.italian": "Italian",
+    "label.lang.japanese": "Japoński",
+    "label.lang.korean": "Koreański",
+    "label.lang.norwegian": "Norwegian",
+    "label.lang.polish": "Polish",
+    "label.lang.russian": "Rosyjski",
+    "label.lang.spanish": "Hiszpiański",
+    "label.last.disconnected": "Last Disconnected",
+    "label.last.name": "Nazwisko",
+    "label.lastname.lower": "lastname",
+    "label.latest.events": "Latest events",
+    "label.launch": "Rozpocznij",
+    "label.launch.vm": "Launch VM",
+    "label.launch.zone": "Launch zone",
+    "label.lb.algorithm.leastconn": "Ostatnie połączenie",
+    "label.lb.algorithm.roundrobin": "Round-robin",
+    "label.lb.algorithm.source": "Source",
+    "label.ldap.configuration": "LDAP Configuration",
+    "label.ldap.group.name": "LDAP Group",
+    "label.ldap.link.type": "Wpisz",
+    "label.ldap.port": "LDAP port",
+    "label.level": "Poziom",
+    "label.link.domain.to.ldap": "Link Domain to LDAP",
+    "label.linklocal.ip": "Link Local IP Address",
+    "label.load.balancer": "Load Balancer",
+    "label.load.balancer.type": "Load Balancer Type",
+    "label.load.balancing": "Load Balancing",
+    "label.load.balancing.policies": "Load balancing policies",
+    "label.loading": "Wczytywanie",
+    "label.local": "Lokalne",
+    "label.local.file": "Local file",
+    "label.local.storage": "Pamięć lokalna",
+    "label.local.storage.enabled": "Enable local storage for User VMs",
+    "label.local.storage.enabled.system.vms": "Enable local storage for System VMs",
+    "label.login": "Zaloguj",
+    "label.logout": "Wyloguj",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC Traffic Label",
+    "label.make.project.owner": "Make account project owner",
+    "label.make.redundant": "Make redundant",
+    "label.manage": "Manage",
+    "label.manage.resources": "Manage Resources",
+    "label.managed": "Managed",
+    "label.management": "Management",
+    "label.management.ips": "Management IP Addresses",
+    "label.management.server": "Management Server",
+    "label.max.cpus": "Max. CPU cores",
+    "label.max.guest.limit": "Maksymalna liczba gości",
+    "label.max.instances": "Max Instances",
+    "label.max.memory": "Max. memory (MiB)",
+    "label.max.networks": "Max. networks",
+    "label.max.primary.storage": "Max. primary (GiB)",
+    "label.max.public.ips": "Maksymalna liczba publicznych adresów IP",
+    "label.max.secondary.storage": "Max. secondary (GiB)",
+    "label.max.snapshots": "Max. snapshots",
+    "label.max.templates": "Max. templates",
+    "label.max.vms": "Max. user VMs",
+    "label.max.volumes": "Max. volumes",
+    "label.max.vpcs": "Max. VPCs",
+    "label.maximum": "Maksimum",
+    "label.may.continue": "You may now continue.",
+    "label.md5.checksum": "MD5 checksum",
+    "label.memory": "Pamięć",
+    "label.memory.allocated": "Memory Allocated",
+    "label.memory.limits": "Limit pamięci (MiB)",
+    "label.memory.mb": "Pamięć (w MB)",
+    "label.memory.total": "Memory Total",
+    "label.memory.used": "Memory Used",
+    "label.menu.accounts": "Konta",
+    "label.menu.alerts": "Alarmy",
+    "label.menu.all.accounts": "Wszystkie konta",
+    "label.menu.all.instances": "Wszystkie instancje",
+    "label.menu.community.isos": "Community ISOs",
+    "label.menu.community.templates": "Community Templates",
+    "label.menu.configuration": "Konfiguracja",
+    "label.menu.dashboard": "Dashboard",
+    "label.menu.destroyed.instances": "Destroyed Instances",
+    "label.menu.disk.offerings": "Disk Offerings",
+    "label.menu.domains": "Domeny",
+    "label.menu.events": "Events",
+    "label.menu.featured.isos": "Featured ISOs",
+    "label.menu.featured.templates": "Featured Templates",
+    "label.menu.global.settings": "Global Settings",
+    "label.menu.infrastructure": "Infrastruktura",
+    "label.menu.instances": "Instancje",
+    "label.menu.ipaddresses": "Adresy IP",
+    "label.menu.isos": "ISO",
+    "label.menu.my.accounts": "Moje konta",
+    "label.menu.my.instances": "Moje instancje",
+    "label.menu.my.isos": "Moje ISO",
+    "label.menu.my.templates": "My Templates",
+    "label.menu.network": "Sieć",
+    "label.menu.network.offerings": "Network Offerings",
+    "label.menu.physical.resources": "Physical Resources",
+    "label.menu.regions": "Regiony",
+    "label.menu.running.instances": "Running Instances",
+    "label.menu.security.groups": "Security Groups",
+    "label.menu.service.offerings": "Service Offerings",
+    "label.menu.snapshots": "Snapshots",
+    "label.menu.sshkeypair": "SSH KeyPair",
+    "label.menu.stopped.instances": "Stopped Instances",
+    "label.menu.storage": "Storage",
+    "label.menu.system": "System",
+    "label.menu.system.service.offerings": "System Offerings",
+    "label.menu.system.vms": "System VMs",
+    "label.menu.templates": "Templates",
+    "label.menu.virtual.appliances": "Virtual Appliances",
+    "label.menu.virtual.resources": "Virtual Resources",
+    "label.menu.volumes": "Volumes",
+    "label.menu.vpc.offerings": "VPC Offerings",
+    "label.metrics": "Metrics",
+    "label.metrics.allocated": "Allocated",
+    "label.metrics.clusters": "Clusters",
+    "label.metrics.cpu.allocated": "CPU Allocation",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "CPU Usage",
+    "label.metrics.cpu.used.avg": "Użyte",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "Allocated",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Read",
+    "label.metrics.disk.size": "Wielkośc",
+    "label.metrics.disk.storagetype": "Wpisz",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Unallocated",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "Użyte",
+    "label.metrics.disk.write": "Write",
+    "label.metrics.hosts": "Hosts",
+    "label.metrics.memory.allocated": "Mem Allocation",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Mem Usage",
+    "label.metrics.memory.used.avg": "Użyte",
+    "label.metrics.name": "Nazwa",
+    "label.metrics.network.read": "Read",
+    "label.metrics.network.usage": "Network Usage",
+    "label.metrics.network.write": "Write",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "Scope",
+    "label.metrics.state": "Status",
+    "label.metrics.storagepool": "Storage Pool",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "Migrate instance to",
+    "label.migrate.instance.to.host": "Migrate instance to another host",
+    "label.migrate.instance.to.ps": "Migrate instance to another primary storage",
+    "label.migrate.lb.vm": "Migrate LB VM",
+    "label.migrate.router.to": "Migrate Router to",
+    "label.migrate.systemvm.to": "Migrate System VM to",
+    "label.migrate.to.host": "Migrate to host",
+    "label.migrate.to.storage": "Migrate to storage",
+    "label.migrate.volume": "Migrate Volume",
+    "label.migrate.volume.to.primary.storage": "Migrate volume to another primary storage",
+    "label.min.instances": "Min Instances",
+    "label.min.past.the.hr": "min past the hr",
+    "label.minimum": "Minimum",
+    "label.minute.past.hour": "minute(s) past the hour",
+    "label.minutes.past.hour": "minutes(s) past the hour",
+    "label.mode": "Tryb",
+    "label.monday": "Poniedziałek",
+    "label.monthly": "Miesięcznie",
+    "label.more.templates": "More Templates",
+    "label.move.down.row": "Jeden rząd na dół",
+    "label.move.to.bottom": "Move to bottom",
+    "label.move.to.top": "Przenieś na samą górę",
+    "label.move.up.row": "Jeden rząd do góry",
+    "label.my.account": "Moje konto",
+    "label.my.network": "Moja sieć",
+    "label.my.templates": "My templates",
+    "label.na": "N/A",
+    "label.name": "Nazwa",
+    "label.name.lower": "Nazwa",
+    "label.name.optional": "Nazwa (opcjonalnie)",
+    "label.nat.port.range": "NAT Port Range",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Netmask",
+    "label.netscaler.details": "NetScaler details",
+    "label.network": "Sieć",
+    "label.network.ACL": "Network ACL",
+    "label.network.ACL.total": "Network ACL Total",
+    "label.network.ACLs": "Network ACLs",
+    "label.network.addVM": "Add network to VM",
+    "label.network.cidr": "Network CIDR",
+    "label.network.desc": "Network Desc",
+    "label.network.details": "Network Details",
+    "label.network.device": "Network Device",
+    "label.network.device.type": "Network Device Type",
+    "label.network.domain": "Network Domain",
+    "label.network.domain.text": "Network domain",
+    "label.network.id": "ID sieci",
+    "label.network.label.display.for.blank.value": "Use default gateway",
+    "label.network.limits": "Network limits",
+    "label.network.name": "Nazwa sieci",
+    "label.network.offering": "Network Offering",
+    "label.network.offering.details": "Network offering details",
+    "label.network.offering.display.text": "Network Offering Display Text",
+    "label.network.offering.id": "Network Offering ID",
+    "label.network.offering.name": "Network Offering Name",
+    "label.network.rate": "Network Rate (Mb/s)",
+    "label.network.rate.megabytes": "Network Rate (MB/s)",
+    "label.network.read": "Network Read",
+    "label.network.service.providers": "Network Service Providers",
+    "label.network.type": "Network Type",
+    "label.network.write": "Network Write",
+    "label.networking.and.security": "Networking and security",
+    "label.networks": "Sieci",
+    "label.new": "Nowy",
+    "label.new.password": "New Password",
+    "label.new.project": "Nowy projekt",
+    "label.new.ssh.key.pair": "New SSH Key Pair",
+    "label.new.vm": "New VM",
+    "label.next": "Następny",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "Serwer NFS",
+    "label.nfs.storage": "NFS Storage",
+    "label.nic.adapter.type": "NIC adapter type",
+    "label.nicira.controller.address": "Controller Address",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP details",
+    "label.nicira.transportzoneuuid": "Transport Zone Uuid",
+    "label.nics": "NICs",
+    "label.no": "Nie",
+    "label.no.actions": "No Available Actions",
+    "label.no.alerts": "No Recent Alerts",
+    "label.no.data": "Brak danych",
+    "label.no.errors": "No Recent Errors",
+    "label.no.grouping": "(no grouping)",
+    "label.no.isos": "No available ISOs",
+    "label.no.items": "No Available Items",
+    "label.no.security.groups": "No Available Security Groups",
+    "label.no.thanks": "Nie dziękuję",
+    "label.none": "Brak",
+    "label.not.found": "Not Found",
+    "label.notifications": "Przypomnienia",
+    "label.num.cpu.cores": "# of CPU Cores",
+    "label.number.of.clusters": "Number of Clusters",
+    "label.number.of.cpu.sockets": "The Number of CPU Sockets",
+    "label.number.of.hosts": "Liczba hostów",
+    "label.number.of.pods": "Number of Pods",
+    "label.number.of.system.vms": "Number of System VMs",
+    "label.number.of.virtual.routers": "Number of Virtual Routers",
+    "label.number.of.zones": "Number of Zones",
+    "label.numretries": "Number of Retries",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "of month",
+    "label.offer.ha": "Offer HA",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight Controller",
+    "label.opendaylight.controllerdetail": "OpenDaylight Controller Details",
+    "label.opendaylight.controllers": "OpenDaylight Controllers",
+    "label.operator": "Operator",
+    "label.optional": "Optional",
+    "label.order": "Zadanie",
+    "label.os.preference": "OS Preference",
+    "label.os.type": "OS Type",
+    "label.other": "Other",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Action",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Hasło",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Nazwa użytkownika",
+    "label.override.guest.traffic": "Override Guest-Traffic",
+    "label.override.public.traffic": "Override Public-Traffic",
+    "label.ovm.traffic.label": "OVM traffic label",
+    "label.ovm3.cluster": "Native Clustering",
+    "label.ovm3.pool": "Native Pooling",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "Master Vip IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Owned Public IP Addresses",
+    "label.owner.account": "Owner Account",
+    "label.owner.domain": "Owner Domain",
+    "label.palo.alto.details": "Palo Alto details",
+    "label.parent.domain": "Parent Domain",
+    "label.passive": "Passive",
+    "label.password": "Hasło",
+    "label.password.enabled": "Password Enabled",
+    "label.password.lower": "password",
+    "label.password.reset.confirm": "Password has been reset to ",
+    "label.path": "Ścieżka",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "Persistent ",
+    "label.physical.network": "Physical Network",
+    "label.physical.network.ID": "Physical network ID",
+    "label.physical.network.name": "Physical network name",
+    "label.ping.path": "Ping Path",
+    "label.planner.mode": "Planner mode",
+    "label.please.complete.the.following.fields": "Please complete the following fields",
+    "label.please.specify.netscaler.info": "Please specify Netscaler info",
+    "label.please.wait": "Proszę czekać",
+    "label.plugin.details": "Szczegóły wtyczki",
+    "label.plugins": "Wtyczki",
+    "label.pod": "Pod",
+    "label.pod.dedicated": "Pod Dedicated",
+    "label.pod.name": "Pod name",
+    "label.pods": "Pods",
+    "label.polling.interval.sec": "Polling Interval (in sec)",
+    "label.port": "Port",
+    "label.port.forwarding": "Port Forwarding",
+    "label.port.forwarding.policies": "Port forwarding policies",
+    "label.port.range": "Port Range",
+    "label.portable.ip": "Portable IP",
+    "label.portable.ip.range.details": "Portable IP Range details",
+    "label.portable.ip.ranges": "Portable IP Ranges",
+    "label.portable.ips": "Portable IPs",
+    "label.powerstate": "Power State",
+    "label.prev": "Prev",
+    "label.previous": "Wstecz",
+    "label.primary.allocated": "Primary Storage Allocated",
+    "label.primary.network": "Primary Network",
+    "label.primary.storage": "Primary Storage",
+    "label.primary.storage.count": "Primary Storage Pools",
+    "label.primary.storage.limits": "Primary Storage limits (GiB)",
+    "label.primary.used": "Primary Storage Used",
+    "label.private.Gateway": "Private Gateway",
+    "label.private.interface": "Private Interface",
+    "label.private.ip": "Private IP Address",
+    "label.private.ip.range": "Private IP Range",
+    "label.private.ips": "Private IP Addresses",
+    "label.private.key": "Private Key",
+    "label.private.network": "Sieć prywatna",
+    "label.private.port": "Private Port",
+    "label.private.zone": "Private Zone",
+    "label.privatekey": "PKCS#8 Private Key",
+    "label.profile": "Profile",
+    "label.project": "Projekt",
+    "label.project.dashboard": "Project dashboard",
+    "label.project.id": "Nazwa ID projektu",
+    "label.project.invite": "Zaproś do projektu",
+    "label.project.name": "Nazwa projektu",
+    "label.project.view": "Project View",
+    "label.projects": "Projekty",
+    "label.protocol": "Protokół",
+    "label.protocol.number": "Protocol Number",
+    "label.provider": "Provider",
+    "label.providers": "Dostawcy",
+    "label.public": "Pobliczny",
+    "label.public.interface": "Public Interface",
+    "label.public.ip": "Publiczny adres IP",
+    "label.public.ips": "Publiczne adresy IP",
+    "label.public.key": "Public Key",
+    "label.public.lb": "Public LB",
+    "label.public.load.balancer.provider": "Public Load Balancer Provider",
+    "label.public.network": "Sieć publiczna",
+    "label.public.port": "Publiczny port",
+    "label.public.traffic": "Public traffic",
+    "label.public.traffic.vswitch.name": "Public Traffic vSwitch Name",
+    "label.public.traffic.vswitch.type": "Public Traffic vSwitch Type",
+    "label.public.zone": "Public Zone",
+    "label.purpose": "Purpose",
+    "label.qos.type": "QoS Type",
+    "label.quickview": "Quickview",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Quiet Time (in sec)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "Data",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "End Date",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "Wszystkie konta",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Start Date",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "Status",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx user",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "Uruchom ponownie",
+    "label.recent.errors": "Recent Errors",
+    "label.recover.vm": "Recover VM",
+    "label.redundant.router": "Redundant Router",
+    "label.redundant.router.capability": "Redundant router capability",
+    "label.redundant.state": "Redundant state",
+    "label.redundant.vpc": "Redundant VPC",
+    "label.refresh": "Odśwież",
+    "label.refresh.blades": "Refresh Blades",
+    "label.region": "Region",
+    "label.region.details": "Region details",
+    "label.regionlevelvpc": "Region Level VPC",
+    "label.reinstall.vm": "Reinstall VM",
+    "label.related": "Related",
+    "label.release.account": "Release from Account",
+    "label.release.account.lowercase": "Release from account",
+    "label.release.dedicated.cluster": "Release Dedicated Cluster",
+    "label.release.dedicated.host": "Release Dedicated Host",
+    "label.release.dedicated.pod": "Release Dedicated Pod",
+    "label.release.dedicated.vlan.range": "Release dedicated VLAN range",
+    "label.release.dedicated.zone": "Release Dedicated Zone",
+    "label.remind.later": "Przypomnij później",
+    "label.remove.ACL": "Remove ACL",
+    "label.remove.egress.rule": "Remove egress rule",
+    "label.remove.from.load.balancer": "Removing instance from load balancer",
+    "label.remove.ingress.rule": "Remove ingress rule",
+    "label.remove.ip.range": "Remove IP range",
+    "label.remove.ldap": "Remove LDAP",
+    "label.remove.network.offering": "Remove network offering",
+    "label.remove.pf": "Remove port forwarding rule",
+    "label.remove.project.account": "Remove account from project",
+    "label.remove.region": "Remove Region",
+    "label.remove.rule": "Usuń regułę",
+    "label.remove.ssh.key.pair": "Remove SSH Key Pair",
+    "label.remove.static.nat.rule": "Remove static NAT rule",
+    "label.remove.static.route": "Remove static route",
+    "label.remove.this.physical.network": "Remove this physical network",
+    "label.remove.tier": "Remove tier",
+    "label.remove.vm.from.lb": "Remove VM from load balancer rule",
+    "label.remove.vm.load.balancer": "Remove VM from load balancer",
+    "label.remove.vmware.datacenter": "Remove VMware datacenter",
+    "label.remove.vpc": "Usuń VPC",
+    "label.remove.vpc.offering": "Remove VPC offering",
+    "label.removing": "Usuwanie",
+    "label.removing.user": "Usuń użytkownika",
+    "label.reource.id": "Resource ID",
+    "label.replace.acl": "Replace ACL",
+    "label.replace.acl.list": "Replace ACL List",
+    "label.required": "Wymagane",
+    "label.requires.upgrade": "Requires Upgrade",
+    "label.reserved.ip.range": "Reserved IP Range",
+    "label.reserved.system.gateway": "Reserved system gateway",
+    "label.reserved.system.ip": "Reserved System IP",
+    "label.reserved.system.netmask": "Reserved system netmask",
+    "label.reset.VPN.connection": "Reset VPN connection",
+    "label.reset.ssh.key.pair": "Reset SSH Key Pair",
+    "label.reset.ssh.key.pair.on.vm": "Reset SSH Key Pair on VM",
+    "label.resetVM": "Reset VM",
+    "label.resize.new.offering.id": "New Offering",
+    "label.resize.new.size": "New Size (GB)",
+    "label.resize.shrink.ok": "Shrink OK",
+    "label.resource": "Zasób",
+    "label.resource.limit.exceeded": "Resource Limit Exceeded",
+    "label.resource.limits": "Limit zasobów",
+    "label.resource.name": "Resource Name",
+    "label.resource.state": "Resource state",
+    "label.resources": "Zasoby",
+    "label.response.timeout.in.sec": "Response Timeout (in sec)",
+    "label.restart.network": "Restart network",
+    "label.restart.required": "Wymagany restart",
+    "label.restart.vpc": "Restart VPC",
+    "label.restore": "Restore",
+    "label.retry.interval": "Retry Interval",
+    "label.review": "Review",
+    "label.revoke.project.invite": "Revoke invitation",
+    "label.role": "Role",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Root certificate",
+    "label.root.disk.controller": "Root disk controller",
+    "label.root.disk.offering": "Root Disk Offering",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "Router VM Scaled Up",
+    "label.routing": "Routing",
+    "label.routing.host": "Routing Host",
+    "label.rule": "Rule",
+    "label.rule.number": "Rule Number",
+    "label.rules": "Zasady",
+    "label.running.vms": "Running VMs",
+    "label.s3.access_key": "Access Key",
+    "label.s3.bucket": "Bucket",
+    "label.s3.connection_timeout": "Connection Timeout",
+    "label.s3.endpoint": "Endpoint",
+    "label.s3.max_error_retry": "Max Error Retry",
+    "label.s3.nfs.path": "S3 NFS Path",
+    "label.s3.nfs.server": "S3 NFS Server",
+    "label.s3.secret_key": "Secret Key",
+    "label.s3.socket_timeout": "Socket Timeout",
+    "label.s3.use_https": "Use HTTPS",
+    "label.saml.enable": "Authorize SAML SSO",
+    "label.saml.entity": "Identity Provider",
+    "label.saturday": "Sobota",
+    "label.save": "Zapisz",
+    "label.save.and.continue": "Zapisz i kontynuuj",
+    "label.save.changes": "Save changes",
+    "label.saving.processing": "Zapisywanie....",
+    "label.scale.up.policy": "SCALE UP POLICY",
+    "label.scaledown.policy": "ScaleDown Policy",
+    "label.scaleup.policy": "ScaleUp Policy",
+    "label.scope": "Scope",
+    "label.search": "Szukaj",
+    "label.secondary.ips": "Secondary IPs",
+    "label.secondary.isolated.vlan.id": "Secondary Isolated VLAN ID",
+    "label.secondary.staging.store": "Secondary Staging Store",
+    "label.secondary.staging.store.details": "Secondary Staging Store details",
+    "label.secondary.storage": "Secondary Storage",
+    "label.secondary.storage.count": "Secondary Storage Pools",
+    "label.secondary.storage.details": "Secondary storage details",
+    "label.secondary.storage.limits": "Secondary Storage limits (GiB)",
+    "label.secondary.storage.vm": "Secondary storage VM",
+    "label.secondary.used": "Secondary Storage Used",
+    "label.secret.key": "Secret Key",
+    "label.security.group": "Security Group",
+    "label.security.group.name": "Security Group Name",
+    "label.security.groups": "Security Groups",
+    "label.security.groups.enabled": "Security Groups Enabled",
+    "label.select": "Wybierz",
+    "label.select-view": "Select view",
+    "label.select.a.template": "Select a template",
+    "label.select.a.zone": "Select a zone",
+    "label.select.instance": "Wybierz instancję",
+    "label.select.instance.to.attach.volume.to": "Select instance to attach volume to",
+    "label.select.iso.or.template": "Select ISO or template",
+    "label.select.offering": "Select offering",
+    "label.select.project": "Wybierz projekt",
+    "label.select.region": "Select region",
+    "label.select.template": "Select Template",
+    "label.select.tier": "Select Tier",
+    "label.select.vm.for.static.nat": "Select VM for static NAT",
+    "label.sent": "Wysłano",
+    "label.server": "Serwer",
+    "label.service.capabilities": "Service Capabilities",
+    "label.service.offering": "Service Offering",
+    "label.service.offering.details": "Service offering details",
+    "label.service.state": "Service State",
+    "label.services": "Services",
+    "label.session.expired": "Session Expired",
+    "label.set.default.NIC": "Set default NIC",
+    "label.set.up.zone.type": "Set up zone type",
+    "label.settings": "Settings",
+    "label.setup": "Konfiguracja",
+    "label.setup.network": "Set up Network",
+    "label.setup.zone": "Set up Zone",
+    "label.shared": "Shared",
+    "label.show.advanced.settings": "Show advanced settings",
+    "label.show.ingress.rule": "Show Ingress Rule",
+    "label.shutdown.provider": "Shutdown provider",
+    "label.simplified.chinese.keyboard": "Simplified Chinese keyboard",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Wielkośc",
+    "label.skip.guide": "I have used CloudStack before, skip this guide",
+    "label.smb.domain": "SMB Domain",
+    "label.smb.password": "SMB Password",
+    "label.smb.username": "SMB Username",
+    "label.snapshot": "Snapshot",
+    "label.snapshot.limits": "Snapshot Limits",
+    "label.snapshot.name": "Snapshot Name",
+    "label.snapshot.s": "Snapshots",
+    "label.snapshot.schedule": "Set up Recurring Snapshot",
+    "label.snapshots": "Snapshots",
+    "label.sockets": "CPU Sockets",
+    "label.source.ip.address": "Source IP Address",
+    "label.source.nat": "Source NAT",
+    "label.source.nat.supported": "SourceNAT Supported",
+    "label.source.port": "Source Port",
+    "label.specify.IP.ranges": "Wyszczególnij zasięg adresów IP",
+    "label.specify.vlan": "Specify VLAN",
+    "label.specify.vxlan": "Specify VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX details",
+    "label.ssh.key.pair": "SSH Key Pair",
+    "label.ssh.key.pair.details": "SSH Key Pair Details",
+    "label.ssh.key.pairs": "SSH Key Pairs",
+    "label.standard.us.keyboard": "Standard (US) keyboard",
+    "label.start.IP": "Start IP",
+    "label.start.lb.vm": "Start LB VM",
+    "label.start.port": "Start Port",
+    "label.start.reserved.system.IP": "Start Reserved system IP",
+    "label.start.vlan": "Start VLAN",
+    "label.start.vxlan": "Start VXLAN",
+    "label.state": "Status",
+    "label.static.nat": "Static NAT",
+    "label.static.nat.enabled": "Static NAT Enabled",
+    "label.static.nat.to": "Static NAT to",
+    "label.static.nat.vm.details": "Static NAT VM Details",
+    "label.static.routes": "Static Routes",
+    "label.statistics": "Statystyki",
+    "label.status": "Status",
+    "label.step.1": "Krok 1",
+    "label.step.1.title": "Step 1: <strong>Select a Template</strong>",
+    "label.step.2": "Krok 2",
+    "label.step.2.title": "Step 2: <strong>Service Offering</strong>",
+    "label.step.3": "Krok 3",
+    "label.step.3.title": "Step 3: <strong id=\"step3_label\">Select a Disk Offering</strong>",
+    "label.step.4": "Krok 4",
+    "label.step.4.title": "Step 4: <strong>Network</strong>",
+    "label.step.5": "Krok 5",
+    "label.step.5.title": "Step 5: <strong>Review</strong>",
+    "label.stickiness": "Stickiness",
+    "label.stickiness.method": "Stickiness method",
+    "label.sticky.cookie-name": "Cookie name",
+    "label.sticky.domain": "Domena",
+    "label.sticky.expire": "Wygasa",
+    "label.sticky.holdtime": "Hold time",
+    "label.sticky.indirect": "Indirect",
+    "label.sticky.length": "Długość",
+    "label.sticky.mode": "Tryb",
+    "label.sticky.name": "Sticky Name",
+    "label.sticky.nocache": "No cache",
+    "label.sticky.postonly": "Post only",
+    "label.sticky.prefix": "Prefiks",
+    "label.sticky.request-learn": "Request learn",
+    "label.sticky.tablesize": "Table size",
+    "label.stop": "Stop",
+    "label.stop.lb.vm": "Stop LB VM",
+    "label.stopped.vms": "Stopped VMs",
+    "label.storage": "Storage",
+    "label.storage.pool": "Storage Pool",
+    "label.storage.tags": "Storage Tags",
+    "label.storage.traffic": "Storage Traffic",
+    "label.storage.type": "Storage Type",
+    "label.subdomain.access": "Subdomain Access",
+    "label.submit": "Submit",
+    "label.submitted.by": "[Submitted by: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Succeeded",
+    "label.sunday": "Niedziela",
+    "label.super.cidr.for.guest.networks": "Super CIDR for Guest Networks",
+    "label.supported.services": "Supported Services",
+    "label.supported.source.NAT.type": "Supported Source NAT type",
+    "label.supportsstrechedl2subnet": "Supports Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "Zawieś projekt",
+    "label.switch.type": "Switch Type",
+    "label.system.capacity": "System Capacity",
+    "label.system.offering": "System Offering",
+    "label.system.offering.for.router": "System Offering for Router",
+    "label.system.service.offering": "System Service Offering",
+    "label.system.service.offering.details": "System service offering details",
+    "label.system.vm": "System VM",
+    "label.system.vm.details": "System VM details",
+    "label.system.vm.scaled.up": "System VM Scaled Up",
+    "label.system.vm.type": "System VM Type",
+    "label.system.vms": "System VMs",
+    "label.system.wide.capacity": "System-wide capacity",
+    "label.tag.key": "Tag Key",
+    "label.tag.value": "Tag Value",
+    "label.tagged": "Otagowany",
+    "label.tags": "Tagi",
+    "label.target.iqn": "Target IQN",
+    "label.task.completed": "Zadania ukończone",
+    "label.template": "Template",
+    "label.template.limits": "Template Limits",
+    "label.tftp.root.directory": "Tftp root directory",
+    "label.theme.default": "Default Theme",
+    "label.theme.grey": "Custom - Grey",
+    "label.theme.lightblue": "Custom - Light Blue",
+    "label.threshold": "Threshold",
+    "label.thursday": "Thursday",
+    "label.tier": "Tier",
+    "label.tier.details": "Tier details",
+    "label.time": "Czas",
+    "label.time.colon": "Time:",
+    "label.time.zone": "Strefa czasowa",
+    "label.timeout": "Timeout",
+    "label.timeout.in.second ": " Timeout (seconds)",
+    "label.timezone": "Strefa czasowa",
+    "label.timezone.colon": "Timezone:",
+    "label.token": "Token",
+    "label.total.CPU": "Total CPU",
+    "label.total.cpu": "Total CPU",
+    "label.total.hosts": "Total Hosts",
+    "label.total.memory": "Total Memory",
+    "label.total.of.ip": "Total of IP Addresses",
+    "label.total.of.vm": "Total of VMs",
+    "label.total.storage": "Total Storage",
+    "label.total.virtual.routers": "Total of Virtual Routers",
+    "label.total.virtual.routers.upgrade": "Total of Virtual Routers that require upgrade",
+    "label.total.vms": "Total VMs",
+    "label.traffic.label": "Traffic label",
+    "label.traffic.type": "Traffic Type",
+    "label.traffic.types": "Traffic Types",
+    "label.tuesday": "Tuesday",
+    "label.type": "Wpisz",
+    "label.type.id": "Wpisz ID",
+    "label.type.lower": "type",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK keyboard",
+    "label.unavailable": "Niedostępny",
+    "label.unhealthy.threshold": "Unhealthy Threshold",
+    "label.unlimited": "Nieograniczony",
+    "label.untagged": "Nieotagowany",
+    "label.update.project.resources": "Update project resources",
+    "label.update.ssl": " SSL Certificate",
+    "label.update.ssl.cert": " SSL Certificate",
+    "label.updating": "Aktualizowanie",
+    "label.upgrade.required": "Upgrade is required",
+    "label.upgrade.router.newer.template": "Upgrade Router to Use Newer Template",
+    "label.upload": "Upload",
+    "label.upload.from.local": "Upload from Local",
+    "label.upload.template.from.local": "Upload Template from Local",
+    "label.upload.volume": "Upload volume",
+    "label.upload.volume.from.local": "Upload Volume from Local",
+    "label.upload.volume.from.url": "Upload volume from URL",
+    "label.url": "URL",
+    "label.usage.interface": "Usage Interface",
+    "label.usage.sanity.result": "Usage Sanity Result",
+    "label.usage.server": "Usage Server",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "Use VM IP:",
+    "label.use.vm.ips": "Use VM IPs",
+    "label.used": "Użyte",
+    "label.user": "Użytkowni",
+    "label.user.data": "User Data",
+    "label.user.details": "User details",
+    "label.user.vm": "User VM",
+    "label.username": "Nazwa użytkownika",
+    "label.username.lower": "username",
+    "label.users": "Użytkownicy",
+    "label.vSwitch.type": "vSwitch Type",
+    "label.value": "Value",
+    "label.vcdcname": "vCenter DC name",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter Cluster",
+    "label.vcenter.datacenter": "vCenter Datacenter",
+    "label.vcenter.datastore": "vCenter Datastore",
+    "label.vcenter.host": "vCenter Host",
+    "label.vcenter.password": "vCenter Password",
+    "label.vcenter.username": "vCenter Username",
+    "label.vcipaddress": "vCenter IP Address",
+    "label.version": "Wersja",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Max resolution",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs per GPU",
+    "label.vgpu.remaining.capacity": "Remaining capacity",
+    "label.vgpu.type": "vGPU type",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Zobacz",
+    "label.view.all": "Zobacz wszystko",
+    "label.view.console": "View console",
+    "label.view.more": "View more",
+    "label.view.secondary.ips": "View secondary IPs",
+    "label.viewing": "Viewing",
+    "label.virtual.appliance": "Virtual Appliance",
+    "label.virtual.appliance.details": "Virtual applicance details",
+    "label.virtual.appliances": "Virtual Appliances",
+    "label.virtual.machine": "Virtual Machine",
+    "label.virtual.machines": "Virtual Machines",
+    "label.virtual.network": "Virtual Network",
+    "label.virtual.networking": "Virtual Networking",
+    "label.virtual.router": "Virtual Router",
+    "label.virtual.routers": "Virtual Routers",
+    "label.virtual.routers.group.account": "Virtual Routers group by account",
+    "label.virtual.routers.group.cluster": "Virtual Routers group by cluster",
+    "label.virtual.routers.group.pod": "Virtual Routers group by pod",
+    "label.virtual.routers.group.zone": "Virtual Routers group by zone",
+    "label.vlan": "VLAN",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI Range",
+    "label.vlan.range.details": "VLAN Range details",
+    "label.vlan.ranges": "VLAN Range(s)",
+    "label.vlan.vni.range": "VLAN/VNI Range",
+    "label.vlan.vni.ranges": "VLAN/VNI Range(s)",
+    "label.vm.add": "Dodaj instancję",
+    "label.vm.destroy": "Zniszcz",
+    "label.vm.display.name": "VM display name",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP Address",
+    "label.vm.name": "Nazwa VM",
+    "label.vm.password": "Password of the VM is",
+    "label.vm.reboot": "Uruchom ponownie",
+    "label.vm.start": "Rozpocznij",
+    "label.vm.state": "VM state",
+    "label.vm.stop": "Stop",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMs",
+    "label.vmsnapshot": "VM Snapshots",
+    "label.vmsnapshot.current": "isCurrent",
+    "label.vmsnapshot.memory": "Snapshot memory",
+    "label.vmsnapshot.parentname": "Parent",
+    "label.vmsnapshot.type": "Wpisz",
+    "label.vmware.datacenter.id": "VMware datacenter ID",
+    "label.vmware.datacenter.name": "VMware datacenter Name",
+    "label.vmware.datacenter.vcenter": "VMware datacenter vcenter",
+    "label.vmware.traffic.label": "VMware traffic label",
+    "label.vnet": "VLAN",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC Devices",
+    "label.volatile": "Volatile",
+    "label.volgroup": "Volume Group",
+    "label.volume": "Volume",
+    "label.volume.details": "Volume details",
+    "label.volume.limits": "Volume Limits",
+    "label.volume.migrated": "Volume migrated",
+    "label.volume.name": "Volume Name",
+    "label.volumes": "Volumes",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Distributed VPC Router",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "VPC Offering",
+    "label.vpc.offering.details": "VPC offering details",
+    "label.vpc.router.details": "VPC Router Details",
+    "label.vpc.supportsregionlevelvpc": "Supports Region Level VPC",
+    "label.vpc.virtual.router": "VPC Virtual Router",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN Customer Gateway",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "Control VLAN ID",
+    "label.vsmpktvlanid": "Packet VLAN ID",
+    "label.vsmstoragevlanid": "Storage VLAN ID",
+    "label.vsphere.managed": "vSphere Managed",
+    "label.vswitch.name": "vSwitch Name",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN Range",
+    "label.waiting": "Czekanie",
+    "label.warn": "Ostrzeżenie",
+    "label.warn.upper": "WARN",
+    "label.warning": "Warning",
+    "label.wednesday": "Środa",
+    "label.weekly": "Tygodniowo",
+    "label.welcome": "Witaj",
+    "label.welcome.cloud.console": "Welcome to Management Console",
+    "label.what.is.cloudstack": "Czym jest CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Original XS Version is 6.1+",
+    "label.xenserver.traffic.label": "XenServer traffic label",
+    "label.yes": "Tak",
+    "label.zone": "Zone",
+    "label.zone.dedicated": "Zone Dedicated",
+    "label.zone.details": "Zone details",
+    "label.zone.id": "Zone ID",
+    "label.zone.lower": "zone",
+    "label.zone.name": "Zone Name",
+    "label.zone.step.1.title": "Step 1: <strong>Select a Network</strong>",
+    "label.zone.step.2.title": "Step 2: <strong>Add a Zone</strong>",
+    "label.zone.step.3.title": "Step 3: <strong>Add a Pod</strong>",
+    "label.zone.step.4.title": "Step 4: <strong>Add an IP range</strong>",
+    "label.zone.type": "Zone Type",
+    "label.zone.wide": "Zone-Wide",
+    "label.zoneWizard.trafficType.guest": "Guest: Traffic between end-user virtual machines",
+    "label.zoneWizard.trafficType.management": "Management: Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs",
+    "label.zoneWizard.trafficType.public": "Public: Traffic between the internet and virtual machines in the cloud.",
+    "label.zoneWizard.trafficType.storage": "Storage: Traffic between primary and secondary storage servers, such as VM templates and snapshots",
+    "label.zones": "Zones",
+    "managed.state": "Managed State",
+    "message.XSTools61plus.update.failed": "Failed to update Original XS Version is 6.1+ field. Error:",
+    "message.Zone.creation.complete": "Zone creation complete",
+    "message.acquire.ip.nic": "Please confirm that you would like to acquire a new secondary IP for this NIC.<br/>NOTE: You need to manually configure the newly-acquired secondary IP inside the virtual machine.",
+    "message.acquire.new.ip": "Please confirm that you would like to acquire a new IP for this network.",
+    "message.acquire.new.ip.vpc": "Please confirm that you would like to acquire a new IP for this VPC.",
+    "message.acquire.public.ip": "Please select a zone from which you want to acquire your new IP from.",
+    "message.action.cancel.maintenance": "Your host has been successfully canceled for maintenance. This process can take up to several minutes.",
+    "message.action.cancel.maintenance.mode": "Please confirm that you want to cancel this maintenance.",
+    "message.action.change.service.warning.for.instance": "Your instance must be stopped before attempting to change its current service offering.",
+    "message.action.change.service.warning.for.router": "Your router must be stopped before attempting to change its current service offering.",
+    "message.action.delete.ISO": "Please confirm that you want to delete this ISO.",
+    "message.action.delete.ISO.for.all.zones": "The ISO is used by all zones. Please confirm that you want to delete it from all zones.",
+    "message.action.delete.cluster": "Please confirm that you want to delete this cluster.",
+    "message.action.delete.disk.offering": "Please confirm that you want to delete this disk offering.",
+    "message.action.delete.domain": "Please confirm that you want to delete this domain.",
+    "message.action.delete.external.firewall": "Please confirm that you would like to remove this external firewall. Warning: If you are planning to add back the same external firewall, you must reset usage data on the device.",
+    "message.action.delete.external.load.balancer": "Please confirm that you would like to remove this external load balancer. Warning: If you are planning to add back the same external load balancer, you must reset usage data on the device.",
+    "message.action.delete.ingress.rule": "Please confirm that you want to delete this ingress rule.",
+    "message.action.delete.network": "Please confirm that you want to delete this network.",
+    "message.action.delete.nexusVswitch": "Potwierdź, że chcesz usunąć: nexus 1000v",
+    "message.action.delete.nic": "Please confirm that want to remove this NIC, which will also remove the associated network from the VM.",
+    "message.action.delete.physical.network": "Please confirm that you want to delete this physical network",
+    "message.action.delete.pod": "Please confirm that you want to delete this pod.",
+    "message.action.delete.primary.storage": "Please confirm that you want to delete this primary storage.",
+    "message.action.delete.secondary.storage": "Please confirm that you want to delete this secondary storage.",
+    "message.action.delete.security.group": "Please confirm that you want to delete this security group.",
+    "message.action.delete.service.offering": "Please confirm that you want to delete this service offering.",
+    "message.action.delete.snapshot": "Please confirm that you want to delete this snapshot.",
+    "message.action.delete.system.service.offering": "Please confirm that you want to delete this system service offering.",
+    "message.action.delete.template": "Please confirm that you want to delete this template.",
+    "message.action.delete.template.for.all.zones": "The template is used by all zones. Please confirm that you want to delete it from all zones.",
+    "message.action.delete.volume": "Please confirm that you want to delete this volume.",
+    "message.action.delete.zone": "Please confirm that you want to delete this zone.",
+    "message.action.destroy.instance": "Please confirm that you want to destroy this instance.",
+    "message.action.destroy.systemvm": "Please confirm that you want to destroy this System VM.",
+    "message.action.disable.cluster": "Please confirm that you want to disable this cluster.",
+    "message.action.disable.nexusVswitch": "Please confirm that you want to disable this nexus 1000v",
+    "message.action.disable.physical.network": "Please confirm that you want to disable this physical network.",
+    "message.action.disable.pod": "Please confirm that you want to disable this pod.",
+    "message.action.disable.static.NAT": "Please confirm that you want to disable static NAT.",
+    "message.action.disable.zone": "Please confirm that you want to disable this zone.",
+    "message.action.download.iso": "Potwierdź, że chcesz pobrać ten obraz ISO.",
+    "message.action.download.template": "Please confirm that you want to download this template.",
+    "message.action.downloading.template": "Downloading template.",
+    "message.action.enable.cluster": "Please confirm that you want to enable this cluster.",
+    "message.action.enable.maintenance": "Your host has been successfully prepared for maintenance.  This process can take up to several minutes or longer depending on how many VMs are currently on this host.",
+    "message.action.enable.nexusVswitch": "Please confirm that you want to enable this nexus 1000v",
+    "message.action.enable.physical.network": "Please confirm that you want to enable this physical network.",
+    "message.action.enable.pod": "Please confirm that you want to enable this pod.",
+    "message.action.enable.zone": "Please confirm that you want to enable this zone.",
+    "message.action.expunge.instance": "Please confirm that you want to expunge this instance.",
+    "message.action.force.reconnect": "Your host has been successfully forced to reconnect.  This process can take up to several minutes.",
+    "message.action.host.enable.maintenance.mode": "Enabling maintenance mode will cause a live migration of all running instances on this host to any available host.",
+    "message.action.instance.reset.password": "Please confirm that you want to change the ROOT password for this virtual machine.",
+    "message.action.manage.cluster": "Please confirm that you want to manage the cluster.",
+    "message.action.primarystorage.enable.maintenance.mode": "Warning: placing the primary storage into maintenance mode will cause all VMs using volumes from it to be stopped.  Do you want to continue?",
+    "message.action.reboot.instance": "Please confirm that you want to reboot this instance.",
+    "message.action.reboot.router": "All services provided by this virtual router will be interrupted. Please confirm that you want to reboot this router.",
+    "message.action.reboot.systemvm": "Please confirm that you want to reboot this system VM.",
+    "message.action.release.ip": "Please confirm that you want to release this IP.",
+    "message.action.remove.host": "Please confirm that you want to remove this host.",
+    "message.action.reset.password.off": "Your instance currently does not support this feature.",
+    "message.action.reset.password.warning": "Your instance must be stopped before attempting to change its current password.",
+    "message.action.restore.instance": "Please confirm that you want to restore this instance.",
+    "message.action.revert.snapshot": "Please confirm that you want to revert the owning volume to this snapshot.",
+    "message.action.start.instance": "Please confirm that you want to start this instance.",
+    "message.action.start.router": "Please confirm that you want to start this router.",
+    "message.action.start.systemvm": "Please confirm that you want to start this system VM.",
+    "message.action.stop.instance": "Please confirm that you want to stop this instance.",
+    "message.action.stop.router": "All services provided by this virtual router will be interrupted. Please confirm that you want to stop this router.",
+    "message.action.stop.systemvm": "Please confirm that you want to stop this system VM.",
+    "message.action.take.snapshot": "Please confirm that you want to take a snapshot of this volume.",
+    "message.action.unmanage.cluster": "Please confirm that you want to unmanage the cluster.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Please confirm that you want to delete this VM snapshot.",
+    "message.action.vmsnapshot.revert": "Revert VM snapshot",
+    "message.activate.project": "Czy na pewno chcesz aktywować ten projekt?",
+    "message.add.VPN.gateway": "Please confirm that you want to add a VPN Gateway",
+    "message.add.cluster": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Please specify the following parameters to add a new disk offering",
+    "message.add.domain": "Please specify the subdomain you want to create under this domain",
+    "message.add.firewall": "Add a firewall to zone",
+    "message.add.guest.network": "Please confirm that you would like to add a guest network",
+    "message.add.host": "Please specify the following parameters to add a new host",
+    "message.add.ip.range": "Add an IP range to public network in zone",
+    "message.add.ip.range.direct.network": "Add an IP range to direct network <b><span id=\"directnetwork_name\"></span></b> in zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Add an IP range to pod: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Add a load balancer to zone",
+    "message.add.load.balancer.under.ip": "The load balancer rule has been added under IP:",
+    "message.add.network": "Add a new network for zone: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Please specify the information to add a new gateway to this VPC.",
+    "message.add.pod": "Add a new pod for zone <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.",
+    "message.add.primary": "Please specify the following parameters to add a new primary storage",
+    "message.add.primary.storage": "Add a new Primary Storage for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Please specify the required information to add a new region.",
+    "message.add.secondary.storage": "Add a new storage for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Please fill in the following data to add a new compute offering.",
+    "message.add.system.service.offering": "Please fill in the following data to add a new system service offering.",
+    "message.add.template": "Please enter the following data to create your new template",
+    "message.add.volume": "Please fill in the following data to add a new volume.",
+    "message.added.new.nuage.vsp.controller": "Added new Nuage Vsp Controller",
+    "message.added.vpc.offering": "Added VPC offering",
+    "message.adding.Netscaler.device": "Adding Netscaler device",
+    "message.adding.Netscaler.provider": "Adding Netscaler provider",
+    "message.adding.host": "Adding host",
+    "message.additional.networks.desc": "Please select additional network(s) that your virtual instance will be connected to.",
+    "message.admin.guide.read": "For VMware-based VMs, please read the dynamic scaling section in the admin guide before scaling. Would you like to continue?,",
+    "message.advanced.mode.desc": "Choose this network model if you wish to enable VLAN support.  This network model provides the most flexibility in allowing administrators to provide custom network offerings such as providing firewall, vpn, or load balancer support as well as enabling direct vs virtual networking.",
+    "message.advanced.security.group": "Choose this if you wish to use security groups to provide guest VM isolation.",
+    "message.advanced.virtual": "Choose this if you wish to use zone-wide VLANs to provide guest VM isolation.",
+    "message.after.enable.s3": "S3-backed Secondary Storage configured. Note: When you leave this page, you will not be able to re-configure S3 again.",
+    "message.after.enable.swift": "Swift configured. Note: When you leave this page, you will not be able to re-configure Swift again.",
+    "message.alert.state.detected": "Alert state detected",
+    "message.allow.vpn.access": "Please enter a username and password of the user that you want to allow VPN access.",
+    "message.apply.snapshot.policy": "You have successfully updated your current snapshot policy.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Please confirm that you want to attach the ISO to this virtual instance.",
+    "message.attach.volume": "Please fill in the following data to attach a new volume. If you are attaching a disk volume to a Windows based virtual machine, you will need to reboot the instance to see the attached disk.",
+    "message.basic.mode.desc": "Choose this network model if you do <b>*<u>not</u>*</b> want to enable any VLAN support.  All virtual instances created under this network model will be assigned an IP directly from the network and security groups are used to provide security and segregation.",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "Please confirm that you wish to change the service offering of this virtual instance.",
+    "message.change.password": "Please change your password.",
+    "message.cluster.dedicated": "Cluster Dedicated",
+    "message.cluster.dedication.released": "Cluster dedication released",
+    "message.configure.all.traffic.types": "You have multiple physical networks; please configure labels for each traffic type by clicking on the Edit button.",
+    "message.configure.firewall.rules.allow.traffic": "Configure the rules to allow Traffic",
+    "message.configure.firewall.rules.block.traffic": "Configure the rules to block Traffic",
+    "message.configure.ldap": "Please confirm you would like to configure LDAP.",
+    "message.configuring.guest.traffic": "Configuring guest traffic",
+    "message.configuring.physical.networks": "Configuring physical networks",
+    "message.configuring.public.traffic": "Configuring public traffic",
+    "message.configuring.storage.traffic": "Configuring storage traffic",
+    "message.confirm.action.force.reconnect": "Please confirm that you want to force reconnect this host.",
+    "message.confirm.add.vnmc.provider": "Please confirm you would like to add the VNMC provider.",
+    "message.confirm.archive.alert": "Please confirm that you want to archive this alert.",
+    "message.confirm.archive.event": "Please confirm that you want to archive this event.",
+    "message.confirm.archive.selected.alerts": "Please confirm you would like to archive the selected alerts",
+    "message.confirm.archive.selected.events": "Please confirm you would like to archive the selected events",
+    "message.confirm.attach.disk": "Are you sure you want to attach disk?",
+    "message.confirm.create.volume": "Are you sure you want to create volume?",
+    "message.confirm.current.guest.CIDR.unchanged": "Do you want to keep the current guest network CIDR unchanged?",
+    "message.confirm.dedicate.cluster.domain.account": "Do you really want to dedicate this cluster to a domain/account? ",
+    "message.confirm.dedicate.host.domain.account": "Do you really want to dedicate this host to a domain/account? ",
+    "message.confirm.dedicate.pod.domain.account": "Do you really want to dedicate this pod to a domain/account? ",
+    "message.confirm.dedicate.zone": "Do you really want to dedicate this zone to a domain/account?",
+    "message.confirm.delete.BigSwitchBcf": "Please confirm that you would like to delete this BigSwitch BCF Controller",
+    "message.confirm.delete.BrocadeVcs": "Please confirm that you would like to delete Brocade Vcs Switch",
+    "message.confirm.delete.F5": "Czy na pewno chcesz usunąć F5?",
+    "message.confirm.delete.NetScaler": "Please confirm that you would like to delete NetScaler",
+    "message.confirm.delete.NuageVsp": "Please confirm that you would like to delete Nuage Virtualized Services Directory",
+    "message.confirm.delete.PA": "Please confirm that you would like to delete Palo Alto",
+    "message.confirm.delete.SRX": "Czy na pewno chcesz usunąć SRX?",
+    "message.confirm.delete.acl.list": "Are you sure you want to delete this ACL list?",
+    "message.confirm.delete.alert": "Are you sure you want to delete this alert ?",
+    "message.confirm.delete.baremetal.rack.configuration": "Please confirm that you want to delete Baremetal Rack Configuration.",
+    "message.confirm.delete.ciscoASA1000v": "Please confirm you want to delete CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Please confirm you want to delete CiscoVNMC resource",
+    "message.confirm.delete.internal.lb": "Please confirm you want to delete Internal LB",
+    "message.confirm.delete.secondary.staging.store": "Please confirm you want to delete Secondary Staging Store.",
+    "message.confirm.delete.ucs.manager": "Please confirm that you want to delete UCS Manager",
+    "message.confirm.destroy.router": "Please confirm that you would like to destroy this router",
+    "message.confirm.disable.host": "Please confirm that you want to disable the host",
+    "message.confirm.disable.network.offering": "Are you sure you want to disable this network offering?",
+    "message.confirm.disable.provider": "Please confirm that you would like to disable this provider",
+    "message.confirm.disable.vnmc.provider": "Please confirm you would like to disable the VNMC provider.",
+    "message.confirm.disable.vpc.offering": "Are you sure you want to disable this VPC offering?",
+    "message.confirm.enable.host": "Please confirm that you want to enable the host",
+    "message.confirm.enable.network.offering": "Are you sure you want to enable this network offering?",
+    "message.confirm.enable.provider": "Please confirm that you would like to enable this provider",
+    "message.confirm.enable.vnmc.provider": "Please confirm you would like to enable the VNMC provider.",
+    "message.confirm.enable.vpc.offering": "Are you sure you want to enable this VPC offering?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Please confirm you wish to join this project.",
+    "message.confirm.migrate.volume": "Do you want to migrate this volume?",
+    "message.confirm.refresh.blades": "Please confirm that you want to refresh blades.",
+    "message.confirm.release.dedicate.vlan.range": "Please confirm you want to release dedicated VLAN range",
+    "message.confirm.release.dedicated.cluster": "Do you want to release this dedicated cluster ?",
+    "message.confirm.release.dedicated.host": "Do you want to release this dedicated host ?",
+    "message.confirm.release.dedicated.pod": "Do you want to release this dedicated pod ?",
+    "message.confirm.release.dedicated.zone": "Do you want to release this dedicated zone ? ",
+    "message.confirm.remove.IP.range": "Please confirm that you would like to remove this IP range.",
+    "message.confirm.remove.event": "Are you sure you want to remove this event?",
+    "message.confirm.remove.load.balancer": "Please confirm you want to remove VM from load balancer",
+    "message.confirm.remove.network.offering": "Are you sure you want to remove this network offering?",
+    "message.confirm.remove.selected.alerts": "Please confirm you would like to remove the selected alerts",
+    "message.confirm.remove.selected.events": "Please confirm you would like to remove the selected events",
+    "message.confirm.remove.vmware.datacenter": "Please confirm you want to remove VMware datacenter",
+    "message.confirm.remove.vpc.offering": "Are you sure you want to remove this VPC offering?",
+    "message.confirm.replace.acl.new.one": "Do you want to replace the ACL with a new one?",
+    "message.confirm.scale.up.router.vm": "Do you really want to scale up the Router VM ?",
+    "message.confirm.scale.up.system.vm": "Do you really want to scale up the system VM ?",
+    "message.confirm.shutdown.provider": "Please confirm that you would like to shutdown this provider",
+    "message.confirm.start.lb.vm": "Please confirm you want to start LB VM",
+    "message.confirm.stop.lb.vm": "Please confirm you want to stop LB VM",
+    "message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template",
+    "message.confirm.upgrade.routers.account.newtemplate": "Please confirm that you want to upgrade all routers in this account to use newer template",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Please confirm that you want to upgrade all routers in this cluster to use newer template",
+    "message.confirm.upgrade.routers.newtemplate": "Please confirm that you want to upgrade all routers in this zone to use newer template",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Please confirm that you want to upgrade all routers in this pod to use newer template",
+    "message.copy.iso.confirm": "Please confirm that you wish to copy your ISO to",
+    "message.copy.template": "Copy template <b id=\"copy_template_name_text\">XXX</b> from zone <b id=\"copy_template_source_zone_text\"></b> to",
+    "message.copy.template.confirm": "Are you sure you want to copy template?",
+    "message.create.template": "Are you sure you want to create template?",
+    "message.create.template.vm": "Create VM from template <b id=\"p_name\"></b>",
+    "message.create.template.volume": "Please specify the following information before creating a template of your disk volume: <b><span id=\"volume_name\"></span></b>. Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.creating.cluster": "Creating cluster",
+    "message.creating.guest.network": "Creating guest network",
+    "message.creating.physical.networks": "Creating physical networks",
+    "message.creating.pod": "Creating pod",
+    "message.creating.primary.storage": "Creating primary storage",
+    "message.creating.secondary.storage": "Creating secondary storage",
+    "message.creating.systemVM": "Creating system VMs (this may take a while)",
+    "message.creating.zone": "Creating zone",
+    "message.decline.invitation": "Are you sure you want to decline this project invitation?",
+    "message.dedicate.zone": "Dedicating zone",
+    "message.dedicated.zone.released": "Zone dedication released",
+    "message.delete.VPN.connection": "Please confirm that you want to delete VPN connection",
+    "message.delete.VPN.customer.gateway": "Please confirm that you want to delete this VPN Customer Gateway",
+    "message.delete.VPN.gateway": "Please confirm that you want to delete this VPN Gateway",
+    "message.delete.account": "Please confirm that you want to delete this account.",
+    "message.delete.affinity.group": "Please confirm that you would like to remove this affinity group.",
+    "message.delete.gateway": "Please confirm you want to delete the gateway",
+    "message.delete.project": "Czy na pewno chcesz usunąć ten projekt?",
+    "message.delete.user": "Please confirm that you would like to delete this user.",
+    "message.desc.add.new.lb.sticky.rule": "Add new LB sticky rule",
+    "message.desc.advanced.zone": "For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.",
+    "message.desc.basic.zone": "Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering).",
+    "message.desc.cluster": "Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.",
+    "message.desc.create.ssh.key.pair": "Please fill in the following data to create or register a ssh key pair.<br><br>(1) If public key is set, CloudStack will register the public key. You can use it through your private key.<br><br>(2) If public key is not set, CloudStack will create a new SSH Key pair. In this case, please copy and save the private key. CloudStack will not keep it.<br>",
+    "message.desc.created.ssh.key.pair": "Created a SSH Key Pair.",
+    "message.desc.host": "Each cluster must contain at least one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.",
+    "message.desc.primary.storage": "Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.",
+    "message.desc.reset.ssh.key.pair": "Please specify a ssh key pair that you would like to add to this VM. Please note the root password will be changed by this operation if password is enabled.",
+    "message.desc.secondary.storage": "Each zone must have at least one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.",
+    "message.desc.zone": "A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.",
+    "message.detach.disk": "Are you sure you want to detach this disk?",
+    "message.detach.iso.confirm": "Please confirm that you want to detach the ISO from this virtual instance.",
+    "message.disable.account": "Please confirm that you want to disable this account.  By disabling the account, all users for this account will no longer have access to their cloud resources.  All running virtual machines will be immediately shut down.",
+    "message.disable.snapshot.policy": "You have successfully disabled your current snapshot policy.",
+    "message.disable.user": "Please confirm that you would like to disable this user.",
+    "message.disable.vpn": "Czy na pewno chcesz wyłączyć VPN?",
+    "message.disable.vpn.access": "Please confirm that you want to disable Remote Access VPN.",
+    "message.disabling.network.offering": "Disabling network offering",
+    "message.disabling.vpc.offering": "Disabling VPC offering",
+    "message.disallowed.characters": "Disallowed characters: <,>",
+    "message.download.ISO": "Please click <a href=\"#\">00000</a> to download ISO",
+    "message.download.template": "Please click <a href=\"#\">00000</a> to download template",
+    "message.download.volume": "Please click <a href=\"#\">00000</a> to download volume",
+    "message.download.volume.confirm": "Please confirm that you want to download this volume.",
+    "message.edit.account": "Edit (\"-1\" indicates no limit to the amount of resources create)",
+    "message.edit.confirm": "Please confirm your changes before clicking \"Save\".",
+    "message.edit.limits": "Please specify limits to the following resources.  A \"-1\" indicates no limit to the amount of resources create.",
+    "message.edit.traffic.type": "Please specify the traffic label you want associated with this traffic type.",
+    "message.enable.account": "Please confirm that you want to enable this account.",
+    "message.enable.user": "Please confirm that you would like to enable this user.",
+    "message.enable.vpn": "Please confirm that you want Remote Access VPN enabled for this IP address.",
+    "message.enable.vpn.access": "VPN is currently disabled for this IP Address.  Would you like to enable VPN access?",
+    "message.enabled.vpn": "Your Remote Access VPN is currently enabled and can be accessed via the IP",
+    "message.enabled.vpn.ip.sec": "Your IPSec pre-shared key is",
+    "message.enabling.network.offering": "Enabling network offering",
+    "message.enabling.security.group.provider": "Enabling Security Group provider",
+    "message.enabling.vpc.offering": "Enabling VPC offering",
+    "message.enabling.zone": "Enabling zone",
+    "message.enabling.zone.dots": "Enabling zone...",
+    "message.enter.seperated.list.multiple.cidrs": "Please enter a comma separated list of CIDRs if more than one",
+    "message.enter.token": "Please enter the token that you were given in your invite e-mail.",
+    "message.generate.keys": "Please confirm that you would like to generate new keys for this user.",
+    "message.gslb.delete.confirm": "Please confirm you want to delete this GSLB",
+    "message.gslb.lb.remove.confirm": "Please confirm you want to remove load balancing from GSLB",
+    "message.guest.traffic.in.advanced.zone": "Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.",
+    "message.guest.traffic.in.basic.zone": "Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.",
+    "message.host.dedicated": "Host Dedicated",
+    "message.host.dedication.released": "Host dedication released",
+    "message.installWizard.click.retry": "Click the button to retry launch.",
+    "message.installWizard.copy.whatIsACluster": "A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack&#8482; deployment. Clusters are contained within pods, and pods are contained within zones.<br/><br/>CloudStack&#8482; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster.",
+    "message.installWizard.copy.whatIsAHost": "A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer or KVM.<br/><br/>The host is the smallest organizational unit within a CloudStack&#8482; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones.",
+    "message.installWizard.copy.whatIsAPod": "A pod often represents a single rack. Hosts in the same pod are in the same subnet.<br/><br/>A pod is the second-largest organizational unit within a CloudStack&#8482; deployment. Pods are contained within zones. Each zone can contain one or more pods; in the Basic Installation, you will have just one pod in your zone.",
+    "message.installWizard.copy.whatIsAZone": "A zone is the largest organizational unit within a CloudStack&#8482; deployment. A zone typically corresponds to a single datacenter, although it is permissible to have multiple zones in a datacenter. The benefit of organizing infrastructure into zones is to provide physical isolation and redundancy. For example, each zone can have its own power supply and network uplink, and the zones can be widely separated geographically (though this is not required).",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482 is a software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. CloudStack&#8482 manages the network, storage, and compute nodes that make up a cloud infrastructure. Use CloudStack&#8482 to deploy, manage, and configure cloud computing environments.<br/><br/>Extending beyond individual virtual machine images running on commodity hardware, CloudStack&#8482 provides a turnkey cloud infrastructure software stack for delivering virtual datacenters as a service - delivering all of the essential components to build, deploy, and manage multi-tier and multi-tenant cloud applications. Both open-source and Premium versions are available, with the open-source version offering nearly identical features.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "A CloudStack&#8482; cloud infrastructure makes use of two types of storage: primary storage and secondary storage. Both of these can be iSCSI or NFS servers, or localdisk.<br/><br/><strong>Primary storage</strong> is associated with a cluster, and it stores the disk volumes of each guest VM for all the VMs running on hosts in that cluster. The primary storage server is typically located close to the hosts.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "Secondary storage is associated with a zone, and it stores the following:<ul><li>Templates - OS images that can be used to boot VMs and can include additional configuration information, such as installed applications</li><li>ISO images - OS images that can be bootable or non-bootable</li><li>Disk volume snapshots - saved copies of VM data which can be used for data recovery or to create new templates</ul>",
+    "message.installWizard.now.building": "Now building your cloud...",
+    "message.installWizard.tooltip.addCluster.name": "A name for the cluster.  This can be text of your choosing and is not used by CloudStack.",
+    "message.installWizard.tooltip.addHost.hostname": "The DNS name or IP address of the host.",
+    "message.installWizard.tooltip.addHost.password": "This is the password for the user named above (from your XenServer install).",
+    "message.installWizard.tooltip.addHost.username": "Usually root.",
+    "message.installWizard.tooltip.addPod.name": "A name for the pod",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "The gateway for the hosts in that pod.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "The netmask in use on the subnet the guests will use.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "The name for the storage device.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(for NFS) In NFS this is the exported path from the server. Path (for SharedMountPoint).  With KVM this is the path on each host that is where this primary storage is mounted.  For example, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(for NFS, iSCSI, or PreSetup) The IP address or DNS name of the storage device.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "The IP address of the NFS server hosting the secondary storage",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "The exported path, located on the server you specified above",
+    "message.installWizard.tooltip.addZone.dns1": "These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.dns2": "These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.internaldns1": "These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.internaldns2": "These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.",
+    "message.installWizard.tooltip.addZone.name": "A name for the zone",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "A description for your network",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "The gateway that the guests should use",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "The netmask in use on the subnet that the guests should use",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "The range of IP addresses that will be available for allocation to guests in this zone.  If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "A name for your network",
+    "message.instance.scaled.up.confirm": "Do you really want to scale Up your instance ?",
+    "message.instanceWizard.noTemplates": "You do not have any templates available; please add a compatible template, and re-launch the instance wizard.",
+    "message.ip.address.changed": "Your IP addresses may have changed; would you like to refresh the listing? Note that in this case the details pane will close.",
+    "message.iso.desc": "Disc image containing data or bootable media for OS",
+    "message.join.project": "You have now joined a project. Please switch to Project view to see the project.",
+    "message.launch.vm.on.private.network": "Do you wish to launch your instance on your own private dedicated network?",
+    "message.launch.zone": "Zone is ready to launch; please proceed to the next step.",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "Enable autosync for this domain in LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "Please confirm that you want to lock this account.  By locking the account, all users for this account will no longer be able to manage their cloud resources.  Existing resources can still be accessed.",
+    "message.migrate.instance.confirm": "Please confirm the host you wish to migrate the virtual instance to.",
+    "message.migrate.instance.to.host": "Please confirm that you want to migrate instance to another host.",
+    "message.migrate.instance.to.ps": "Please confirm that you want to migrate instance to another primary storage.",
+    "message.migrate.router.confirm": "Please confirm the host you wish to migrate the router to:",
+    "message.migrate.systemvm.confirm": "Please confirm the host you wish to migrate the system VM to:",
+    "message.migrate.volume": "Please confirm that you want to migrate volume to another primary storage.",
+    "message.network.addVM.desc": "Please specify the network that you would like to add this VM to. A new NIC will be added for this network.",
+    "message.network.addVMNIC": "Please confirm that you would like to add a new VM NIC for this network.",
+    "message.network.remote.access.vpn.configuration": "Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.",
+    "message.new.user": "Specify the following to add a new user to the account",
+    "message.no.affinity.groups": "You do not have any affinity groups. Please continue to the next step.",
+    "message.no.host.available": "No Hosts are available for Migration",
+    "message.no.network.support": "Your selected hypervisor, vSphere, does not have any additional network features.  Please continue to step 5.",
+    "message.no.network.support.configuration.not.true": "You do not have any zone that has security group enabled. Thus, no additional network features.  Please continue to step 5.",
+    "message.no.projects": "Nie posiadasz żadnych projektów.<br/> Utwórz nowy projekt w zakładce projekty",
+    "message.no.projects.adminOnly": "You do not have any projects.<br/>Please ask your administrator to create a new project.",
+    "message.number.clusters": "<h2><span> # of </span> Clusters</h2>",
+    "message.number.hosts": "<h2><span> # of </span> Hosts</h2>",
+    "message.number.pods": "<h2><span> # of </span> Pods</h2>",
+    "message.number.storage": "<h2><span> # of </span> Primary Storage Volumes</h2>",
+    "message.number.zones": "<h2><span> # of </span> Zones</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "Password has been reset to",
+    "message.password.of.the.vm.has.been.reset.to": "Password of the VM has been reset to",
+    "message.pending.projects.1": "You have pending project invitations:",
+    "message.pending.projects.2": "To view, please go to the projects section, then select invitations from the drop-down.",
+    "message.please.add.at.lease.one.traffic.range": "Please add at least one traffic range.",
+    "message.please.confirm.remove.ssh.key.pair": "Please confirm that you want to remove this SSH Key Pair",
+    "message.please.proceed": "Przejdź do następnego punktu",
+    "message.please.select.a.configuration.for.your.zone": "Please select a configuration for your zone.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Please select a different public and management network before removing",
+    "message.please.select.networks": "Please select networks for your virtual machine.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Please select a ssh key pair you want this VM to use:",
+    "message.please.wait.while.zone.is.being.created": "Please wait while your zone is being created; this may take a while...",
+    "message.pod.dedication.released": "Pod dedication released",
+    "message.portable.ip.delete.confirm": "Please confirm you want to delete Portable IP Range",
+    "message.project.invite.sent": "Invite sent to user; they will be added to the project once they accept the invitation",
+    "message.public.traffic.in.advanced.zone": "Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at least one range of IP addresses for internet traffic.",
+    "message.public.traffic.in.basic.zone": "Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.",
+    "message.question.are.you.sure.you.want.to.add": "Are you sure you want to add",
+    "message.read.admin.guide.scaling.up": "Please read the dynamic scaling section in the admin guide before scaling up.",
+    "message.recover.vm": "Please confirm that you would like to recover this VM.",
+    "message.redirecting.region": "Redirecting to region...",
+    "message.reinstall.vm": "NOTE: Proceed with caution. This will cause the VM to be reinstalled from the template; data on the root disk will be lost. Extra data volumes, if any, will not be touched.",
+    "message.remove.ldap": "Are you sure you want to delete the LDAP configuration?",
+    "message.remove.region": "Are you sure you want to remove this region from this management server?",
+    "message.remove.vpc": "Please confirm that you want to remove the VPC",
+    "message.remove.vpn.access": "Please confirm that you want to remove VPN access from the following user.",
+    "message.removed.ssh.key.pair": "Removed a SSH Key Pair",
+    "message.reset.VPN.connection": "Please confirm that you want to reset VPN connection",
+    "message.reset.password.warning.notPasswordEnabled": "The template of this instance was created without password enabled",
+    "message.reset.password.warning.notStopped": "Your instance must be stopped before attempting to change its current password",
+    "message.restart.mgmt.server": "Please restart your management server(s) for your new settings to take effect.",
+    "message.restart.mgmt.usage.server": "Please restart your management server(s) and usage server(s) for your new settings to take effect.",
+    "message.restart.network": "All services provided by this network will be interrupted. Please confirm that you want to restart this network.",
+    "message.restart.vpc": "Please confirm that you want to restart the VPC",
+    "message.restart.vpc.remark": "Please confirm that you want to restart the VPC <p><small><i>Remark: making a non-redundant VPC redundant will force a clean up. The networks will not be available for a couple of minutes</i>.</small></p>",
+    "message.restoreVM": "Do you want to restore the VM ?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(Use <strong>Ctrl-click</strong> to select all applicable security groups)",
+    "message.select.a.zone": "A zone typically corresponds to a single datacenter. Multiple zones help make the cloud more reliable by providing physical isolation and redundancy.",
+    "message.select.affinity.groups": "Please select any affinity groups you want this VM to belong to:",
+    "message.select.instance": "Please select an instance.",
+    "message.select.iso": "Please select an ISO for your new virtual instance.",
+    "message.select.item": "Please select an item.",
+    "message.select.security.groups": "Please select security group(s) for your new VM",
+    "message.select.template": "Please select a template for your new virtual instance.",
+    "message.select.tier": "Please select a tier",
+    "message.set.default.NIC": "Please confirm that you would like to make this NIC the default for this VM.",
+    "message.set.default.NIC.manual": "Please manually update the default NIC on the VM now.",
+    "message.setup.physical.network.during.zone.creation": "When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the hypervisor. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.",
+    "message.setup.physical.network.during.zone.creation.basic": "When adding a basic zone, you can set up one physical network, which corresponds to a NIC on the hypervisor. The network carries several types of traffic.<br/><br/>You may also <strong>drag and drop</strong> other traffic types onto the physical network.",
+    "message.setup.successful": "Cloud setup successful!",
+    "message.snapshot.schedule": "You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference",
+    "message.specifiy.tag.key.value": "Please specify a tag key and value",
+    "message.specify.url": "Please specify URL",
+    "message.step.1.continue": "Please select a template or ISO to continue",
+    "message.step.1.desc": "Please select a template for your new virtual instance. You can also choose to select a blank template from which an ISO image can be installed onto.",
+    "message.step.2.continue": "Please select a service offering to continue",
+    "message.step.3.continue": "Please select a disk offering to continue",
+    "message.step.4.continue": "Please select at least one network to continue",
+    "message.step.4.desc": "Please select the primary network that your virtual instance will be connected to.",
+    "message.storage.traffic": "Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.",
+    "message.suspend.project": "Czy na pewno chcesz zawiesić ten projekt",
+    "message.systems.vms.ready": "System VMs ready.",
+    "message.template.copying": "Template is being copied.",
+    "message.template.desc": "OS image that can be used to boot VMs",
+    "message.tier.required": "Tier is required",
+    "message.tooltip.dns.1": "Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+    "message.tooltip.dns.2": "A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.",
+    "message.tooltip.internal.dns.1": "Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.",
+    "message.tooltip.internal.dns.2": "Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.",
+    "message.tooltip.network.domain": "A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.",
+    "message.tooltip.pod.name": "A name for this pod.",
+    "message.tooltip.reserved.system.gateway": "The gateway for the hosts in the pod.",
+    "message.tooltip.reserved.system.netmask": "The network prefix that defines the pod subnet. Uses CIDR notation.",
+    "message.tooltip.zone.name": "A name for the zone.",
+    "message.update.os.preference": "Please choose a OS preference for this host.  All virtual instances with similar preferences will be first allocated to this host before choosing another.",
+    "message.update.resource.count": "Please confirm that you want to update resource counts for this account.",
+    "message.update.ssl": "Please submit a new X.509 compliant SSL certificate chain to be updated to each console proxy and secondary storage virtual instance:",
+    "message.update.ssl.failed": "Failed to update SSL Certificate.",
+    "message.update.ssl.succeeded": "Update SSL Certificates succeeded",
+    "message.validate.URL": "Please enter a valid URL.",
+    "message.validate.accept": "Please enter a value with a valid extension.",
+    "message.validate.creditcard": "Please enter a valid credit card number.",
+    "message.validate.date": "Please enter a valid date.",
+    "message.validate.date.ISO": "Please enter a valid date (ISO).",
+    "message.validate.digits": "Please enter only digits.",
+    "message.validate.email.address": "Please enter a valid email address.",
+    "message.validate.equalto": "Please enter the same value again.",
+    "message.validate.fieldrequired": "This field is required.",
+    "message.validate.fixfield": "Please fix this field.",
+    "message.validate.instance.name": "Instance name can not be longer than 63 characters. Only ASCII letters a~z, A~Z, digits 0~9, hyphen are allowed. Must start with a letter and end with a letter or a digit.",
+    "message.validate.invalid.characters": "Invalid characters found; please correct.",
+    "message.validate.max": "Please enter a value less than or equal to {0}.",
+    "message.validate.maxlength": "Please enter no more than {0} characters.",
+    "message.validate.minlength": "Please enter at least {0} characters.",
+    "message.validate.number": "Please enter a valid number.",
+    "message.validate.range": "Please enter a value between {0} and {1}.",
+    "message.validate.range.length": "Please enter a value between {0} and {1} characters long.",
+    "message.virtual.network.desc": "A dedicated virtualized network for your account.  The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router.",
+    "message.vm.create.template.confirm": "Create Template will reboot the VM automatically.",
+    "message.vm.review.launch": "Please review the following information and confirm that your virtual instance is correct before launch.",
+    "message.vnmc.available.list": "VNMC is not available from provider list.",
+    "message.vnmc.not.available.list": "VNMC is not available from provider list.",
+    "message.volume.create.template.confirm": "Please confirm that you wish to create a template for this disk volume.  Creation of the template can range from several minutes to longer depending on the size of the volume.",
+    "message.waiting.for.builtin.templates.to.load": "Waiting for builtin templates to load...",
+    "message.you.must.have.at.least.one.physical.network": "You must have at least one physical network",
+    "message.your.cloudstack.is.ready": "Your CloudStack is ready!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Zone creation complete. Would you like to enable this zone?",
+    "message.zone.no.network.selection": "The zone you selected does not have any choices for network selection.",
+    "message.zone.step.1.desc": "Please select a network model for your zone.",
+    "message.zone.step.2.desc": "Please enter the following info to add a new zone",
+    "message.zone.step.3.desc": "Please enter the following info to add a new pod",
+    "message.zoneWizard.enable.local.storage": "WARNING: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch:<br/><br/>1. If system VMs need to be launched in shared primary storage, shared primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local primary storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?",
+    "messgae.validate.min": "Please enter a value greater than or equal to {0}.",
+    "mode": "Tryb",
+    "network.rate": "Network Rate",
+    "notification.reboot.instance": "Reboot instance",
+    "notification.start.instance": "Start instance",
+    "notification.stop.instance": "Stop instance",
+    "side.by.side": "Side by Side",
+    "state.Accepted": "Akceptowano",
+    "state.Active": "Aktywny",
+    "state.Allocated": "Allocated",
+    "state.Allocating": "Allocating",
+    "state.BackedUp": "Backed Up",
+    "state.BackingUp": "Backing Up",
+    "state.Completed": "Ukończono",
+    "state.Creating": "Tworzenie",
+    "state.Declined": "Odrzucono",
+    "state.Destroyed": "Zniszczono",
+    "state.Disabled": "Wyłączony",
+    "state.Enabled": "Włączone",
+    "state.Error": "Błąd",
+    "state.Expunging": "Expunging",
+    "state.Migrating": "Migrating",
+    "state.Pending": "Pending",
+    "state.Ready": "Gotowe",
+    "state.Running": "Running",
+    "state.Starting": "Rozpoczynanie",
+    "state.Stopped": "Zatrzymano",
+    "state.Stopping": "Stopping",
+    "state.Suspended": "Zawieszono",
+    "state.detached": "Detached",
+    "title.upload.volume": "Upload Volume",
+    "ui.listView.filters.all": "Wszystko",
+    "ui.listView.filters.mine": "Mine"
+};
diff --git a/ui/l10n/pt_BR.js b/ui/l10n/pt_BR.js
new file mode 100644
index 0000000..8d0198b
--- /dev/null
+++ b/ui/l10n/pt_BR.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "Código ICMP",
+    "ICMP.type": "Tipo ICMP",
+    "changed.item.properties": "Propriedades do item alteradas",
+    "confirm.enable.s3": "Por favor, preencha as informações abaixo para habilitar suporte o Storage Secundário fornecido por S3",
+    "confirm.enable.swift": "Por favor, preencha as informações abaixo para habilitar suporte ao Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Erro: a nuvem não alterou sua senha porque o LDAP está ativo.",
+    "error.could.not.enable.zone": "Não foi possível habilitar a zona",
+    "error.installWizard.message": "Alguma coisa está errada; você pode voltar e corrigir quaisquer erros",
+    "error.invalid.username.password": "Usuário ou senha inválidos",
+    "error.login": "O seu usuário/senha não coincidem com nossos registros.",
+    "error.menu.select": "Não foi possível realizar a ação pois nenhum item foi selecionado.",
+    "error.mgmt.server.inaccessible": "O Servidor de Gerenciamento está inacessível. Tente novamente mais tarde.",
+    "error.password.not.match": "Os campos de senha não combinam",
+    "error.please.specify.physical.network.tags": "As Ofertas de Rede não estarão disponíveis enquanto você não especificar tags para esta interface física.",
+    "error.session.expired": "Sua sessão expirou.",
+    "error.something.went.wrong.please.correct.the.following": "Alguma coisa está errada; por favor corrija abaixo",
+    "error.unable.to.reach.management.server": "Não foi possível acessar o Servidor de Gerenciamento",
+    "error.unresolved.internet.name": "Impossível resolver DNS",
+    "force.delete": "Forçar Exclusão",
+    "force.delete.domain.warning": "Atenção: Esta opção removerá todos os domínios, contas e recursos associados.",
+    "force.remove": "Forçar Remoção",
+    "force.remove.host.warning": "Atenção: O CloudStack desligará de maneira forçada todas as VMs antes de remover o host do cluster.",
+    "force.stop": "Forçar Parada",
+    "force.stop.instance.warning": "Aviso: Forçar o desligamento desta instância deve ser sua última opção. Isto pode levar a perda de dados, bem como  comportamento inconsistênte do estado da máquina virtual.",
+    "hint.no.host.tags": "Nenhuma tag de host encontrada",
+    "hint.no.storage.tags": "Nenhuma tag de storage encontrada",
+    "hint.type.part.host.tag": "Digite parte de um tag de host",
+    "hint.type.part.storage.tag": "Digite parte de um tag de storage",
+    "image.directory": "Diretório da Imagem",
+    "inline": "Inline",
+    "instances.actions.reboot.label": "Reiniciar instância",
+    "label.CIDR.list": "Lista CIDR",
+    "label.CIDR.of.destination.network": "CIDR da rede de destino",
+    "label.CPU.cap": "CPU Cap",
+    "label.DHCP.server.type": "Tipo de Servidor DHCP",
+    "label.DNS.domain.for.guest.networks": "Domínio DNS para redes hóspedes",
+    "label.ESP.encryption": "Encriptação ESP",
+    "label.ESP.hash": "Hash ESP",
+    "label.ESP.lifetime": "Tempo de vida do ESP (segundos)",
+    "label.ESP.policy": "Política ESP",
+    "label.IKE.DH": "DH IKE",
+    "label.IKE.encryption": "Encriptação IKE",
+    "label.IKE.hash": "Hash IKE",
+    "label.IKE.lifetime": "Tempo de vida IKE (segundos)",
+    "label.IKE.policy": "Política IKE",
+    "label.IPsec.preshared.key": "Chave IPSec pré compartilhada",
+    "label.LB.isolation": "Isolamento de LB",
+    "label.LUN.number": "LUN #",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto Log Profile",
+    "label.PA.threat.profile": "Palo Alto Threat Profile",
+    "label.PING.CIFS.password": "PING CIFS password",
+    "label.PING.CIFS.username": "PING CIFS username",
+    "label.PING.dir": "PING Directory",
+    "label.PING.storage.IP": "Disparar PING para IP do Storage",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "Tipo de Servidor PXE",
+    "label.SNMP.community": "Comunidade SNMP",
+    "label.SNMP.port": "Porta SNMP",
+    "label.SR.name": "SR Name-Label",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP Directory",
+    "label.VMFS.datastore": "VMFS datastore",
+    "label.VMs.in.tier": "Máquinas virtuais em camadas",
+    "label.VPC.limits": "Limites VPC",
+    "label.VPC.router.details": "Detalhes de roteador de VPC",
+    "label.VPN.connection": "Conexão VPN",
+    "label.VPN.customer.gateway": "Gateway de VPN de usuário",
+    "label.VPN.gateway": "Gateway de VPN",
+    "label.Xenserver.Tools.Version61plus": "Versão original do XS é 6.1+",
+    "label.about": "Sobre",
+    "label.about.app": "Sobre o CloudStack",
+    "label.accept.project.invitation": "Aceitar convite de projeto.",
+    "label.account": "Conta",
+    "label.account.and.security.group": "Contas, grupos de Segurança",
+    "label.account.details": "Detalhes da conta",
+    "label.account.id": "ID da Conta",
+    "label.account.lower": "conta",
+    "label.account.name": "Nome da Conta",
+    "label.account.specific": "Conta-Specific",
+    "label.account.type": "Tipo de Conta",
+    "label.accounts": "Contas",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "Lista de regas de ACL",
+    "label.acl.name": "Nome da ACL",
+    "label.acl.replaced": "ACL trocado",
+    "label.acquire.new.ip": "Adquirir novo IP",
+    "label.acquire.new.secondary.ip": "Adquira um novo IP secundário",
+    "label.action": "Ação",
+    "label.action.attach.disk": "Anexar Disco",
+    "label.action.attach.disk.processing": "Anexando Disco....",
+    "label.action.attach.iso": "Anexar ISO",
+    "label.action.attach.iso.processing": "Anexando ISO....",
+    "label.action.cancel.maintenance.mode": "Cancelar Modo de Manutenção",
+    "label.action.cancel.maintenance.mode.processing": "Cancelando Modo de Manutenção....",
+    "label.action.change.password": "Troca de Senha",
+    "label.action.change.service": "Trocar Plano",
+    "label.action.change.service.processing": "Trocando de Plano....",
+    "label.action.configure.samlauthorization": "Configurar Autorização SAML SSO",
+    "label.action.copy.ISO": "Copiar ISO",
+    "label.action.copy.ISO.processing": "Copiando ISO...",
+    "label.action.copy.template": "Copiar Template",
+    "label.action.copy.template.processing": "Copiando Template...",
+    "label.action.create.template": "Criar Template",
+    "label.action.create.template.from.vm": "Criar Template a partir da VM",
+    "label.action.create.template.from.volume": "Criar Template a partir do Disco",
+    "label.action.create.template.processing": "Criando Template....",
+    "label.action.create.vm": "Criar VM",
+    "label.action.create.vm.processing": "Criando VM....",
+    "label.action.create.volume": "Criar Disco",
+    "label.action.create.volume.processing": "Criando Disco....",
+    "label.action.delete.IP.range": "Remover Range IP",
+    "label.action.delete.IP.range.processing": "Removendo Range de IP....",
+    "label.action.delete.ISO": "Removendo ISO",
+    "label.action.delete.ISO.processing": "Removendo ISO....",
+    "label.action.delete.account": "Remover conta",
+    "label.action.delete.account.processing": "Removendo conta....",
+    "label.action.delete.cluster": "Remover Cluster",
+    "label.action.delete.cluster.processing": "Removendo Cluster....",
+    "label.action.delete.disk.offering": "Remover Oferta de Disco",
+    "label.action.delete.disk.offering.processing": "Removendo Oferta de Disco....",
+    "label.action.delete.domain": "Remover Domínio",
+    "label.action.delete.domain.processing": "Removendo Domínio....",
+    "label.action.delete.firewall": "Remover regra de firewall",
+    "label.action.delete.firewall.processing": "Removendo Firewall....",
+    "label.action.delete.ingress.rule": "Remover Regra de Entrada",
+    "label.action.delete.ingress.rule.processing": "Removendo Regra de Entrada....",
+    "label.action.delete.load.balancer": "Remover regra de balanceador de carga",
+    "label.action.delete.load.balancer.processing": "Removendo Load Balancer....",
+    "label.action.delete.network": "Remover Rede",
+    "label.action.delete.network.processing": "Removendo Rede....",
+    "label.action.delete.nexusVswitch": "Remover NexusVswitch",
+    "label.action.delete.nic": "Remover Interface de Rede",
+    "label.action.delete.physical.network": "Deletar rede física",
+    "label.action.delete.pod": "Remover POD",
+    "label.action.delete.pod.processing": "Removendo POD....",
+    "label.action.delete.primary.storage": "Remover Storage Primário",
+    "label.action.delete.primary.storage.processing": "Removendo Storage Primário....",
+    "label.action.delete.secondary.storage": "Remover Storage Secundário",
+    "label.action.delete.secondary.storage.processing": "Removendo Storage Secundário....",
+    "label.action.delete.security.group": "Remover Security Group",
+    "label.action.delete.security.group.processing": "Removendo Security Group....",
+    "label.action.delete.service.offering": "Remover Plano",
+    "label.action.delete.service.offering.processing": "Removendo Plano....",
+    "label.action.delete.snapshot": "Remover Snapshot",
+    "label.action.delete.snapshot.processing": "Removendo Snapshot....",
+    "label.action.delete.system.service.offering": "Deletar Oferta de Serviço de Sistema",
+    "label.action.delete.template": "Remover Template",
+    "label.action.delete.template.processing": "Removendo Template....",
+    "label.action.delete.user": "Remover Usuário",
+    "label.action.delete.user.processing": "Removendo Usuário....",
+    "label.action.delete.volume": "Remover Disco",
+    "label.action.delete.volume.processing": "Removendo Disco....",
+    "label.action.delete.zone": "Remover Zona",
+    "label.action.delete.zone.processing": "Removendo Zona....",
+    "label.action.destroy.instance": "Apagar Instância",
+    "label.action.destroy.instance.processing": "Apagando Instância....",
+    "label.action.destroy.systemvm": "Apagar VM de Sistema",
+    "label.action.destroy.systemvm.processing": "Apagando VM de Sistema....",
+    "label.action.detach.disk": "Desplugar Disco",
+    "label.action.detach.disk.processing": "Desplugando Disco....",
+    "label.action.detach.iso": "Desplugar ISO",
+    "label.action.detach.iso.processing": "Desplugando ISO....",
+    "label.action.disable.account": "Desativar conta",
+    "label.action.disable.account.processing": "Desativando conta....",
+    "label.action.disable.cluster": "Desativar Cluster",
+    "label.action.disable.cluster.processing": "Desativando Cluster....",
+    "label.action.disable.nexusVswitch": "Desabilitar NexusVswitch",
+    "label.action.disable.physical.network": "Desabilitar rede física",
+    "label.action.disable.pod": "Desativar POD",
+    "label.action.disable.pod.processing": "Desativando POD....",
+    "label.action.disable.static.NAT": "Desativar NAT Estático",
+    "label.action.disable.static.NAT.processing": "Desativando NAT Estático....",
+    "label.action.disable.user": "Desativar Usuário",
+    "label.action.disable.user.processing": "Desativando Usuário....",
+    "label.action.disable.zone": "Desativar Zona",
+    "label.action.disable.zone.processing": "Desativando Zona....",
+    "label.action.download.ISO": "Baixar ISO",
+    "label.action.download.template": "Baixar Template",
+    "label.action.download.volume": "Baixar Disco",
+    "label.action.download.volume.processing": "Baixando Disco....",
+    "label.action.edit.ISO": "Editar ISO",
+    "label.action.edit.account": "Editar conta",
+    "label.action.edit.disk.offering": "Editar Oferta de Disco",
+    "label.action.edit.domain": "Editar Domínio",
+    "label.action.edit.global.setting": "Editar Configurações Globais",
+    "label.action.edit.host": "Editar Host",
+    "label.action.edit.instance": "Editar Instância",
+    "label.action.edit.network": "Editar Rede",
+    "label.action.edit.network.offering": "Editar Oferta de Rede",
+    "label.action.edit.network.processing": "Editarando Rede....",
+    "label.action.edit.pod": "Editar Pod",
+    "label.action.edit.primary.storage": "Editar Storage Primário",
+    "label.action.edit.resource.limits": "Editar Limite de Recursos",
+    "label.action.edit.service.offering": "Editar Plano",
+    "label.action.edit.template": "Editar Template",
+    "label.action.edit.user": "Editar Usuário",
+    "label.action.edit.zone": "Editar Zona",
+    "label.action.enable.account": "Ativar conta",
+    "label.action.enable.account.processing": "Ativando conta....",
+    "label.action.enable.cluster": "Ativar Cluster",
+    "label.action.enable.cluster.processing": "Ativando Cluster....",
+    "label.action.enable.maintenance.mode": "Ativar Modo de Manutenção",
+    "label.action.enable.maintenance.mode.processing": "Ativando Modo de Manutenção....",
+    "label.action.enable.nexusVswitch": "Habilitar NexusVswitch",
+    "label.action.enable.physical.network": "Habilitar rede física",
+    "label.action.enable.pod": "Ativar POD",
+    "label.action.enable.pod.processing": "Ativando POD....",
+    "label.action.enable.static.NAT": "Ativar NAT Estático",
+    "label.action.enable.static.NAT.processing": "Ativando NAT Estático....",
+    "label.action.enable.user": "Habilitar usuário",
+    "label.action.enable.user.processing": "Habilitando Usuário...",
+    "label.action.enable.zone": "Ativar Zona",
+    "label.action.enable.zone.processing": "Ativando Zona....",
+    "label.action.expunge.instance": "Eliminar Instância",
+    "label.action.expunge.instance.processing": "Expurgando Instância....",
+    "label.action.force.reconnect": "Force Reconnect",
+    "label.action.force.reconnect.processing": "Reconectando....",
+    "label.action.generate.keys": "Gerar Chaves",
+    "label.action.generate.keys.processing": "Gerando Chaves....",
+    "label.action.list.nexusVswitch": "Listar NexusVswitch",
+    "label.action.lock.account": "Bloquear conta",
+    "label.action.lock.account.processing": "Bloqueando conta....",
+    "label.action.manage.cluster": "Vincular Cluster",
+    "label.action.manage.cluster.processing": "Vinculando o Cluster....",
+    "label.action.migrate.instance": "Migrar Instância",
+    "label.action.migrate.instance.processing": "Migrando Instância....",
+    "label.action.migrate.router": "Migrar Roteador",
+    "label.action.migrate.router.processing": "Migrando Roteador...",
+    "label.action.migrate.systemvm": "Migrar VM de Sistema",
+    "label.action.migrate.systemvm.processing": "Migrando VM de Sistema...",
+    "label.action.reboot.instance": "Reiniciar Instância",
+    "label.action.reboot.instance.processing": "Reiniciando Instância...",
+    "label.action.reboot.router": "Reiniciar Roteador",
+    "label.action.reboot.router.processing": "Reiniciando Roteador....",
+    "label.action.reboot.systemvm": "Reiniciar VM de Sistema",
+    "label.action.reboot.systemvm.processing": "Reiniciando VM de Sistema....",
+    "label.action.recurring.snapshot": "Snapshots recorrentes",
+    "label.action.register.iso": "Registrar ISO",
+    "label.action.register.template": "Registrar Template da URL",
+    "label.action.release.ip": "Liberar IP",
+    "label.action.release.ip.processing": "Liberando IP....",
+    "label.action.remove.host": "Remover Host",
+    "label.action.remove.host.processing": "Removendo Host....",
+    "label.action.reset.password": "Recuperar Senha",
+    "label.action.reset.password.processing": "Recuperando a Senha....",
+    "label.action.resize.volume": "Resize Volume",
+    "label.action.resize.volume.processing": "Resizing Volume....",
+    "label.action.resource.limits": "Limite de Recursos",
+    "label.action.restore.instance": "Restaurar Instância",
+    "label.action.restore.instance.processing": "Restaurando Instância...",
+    "label.action.revert.snapshot": "Reverter para Snapshot",
+    "label.action.revert.snapshot.processing": "Revertendo para Snapshot...",
+    "label.action.start.instance": "Iniciar Instância",
+    "label.action.start.instance.processing": "Iniciando Instância...",
+    "label.action.start.router": "Iniciar Roteador",
+    "label.action.start.router.processing": "Iniciando Roteador....",
+    "label.action.start.systemvm": "Iniciar VM de Sistema",
+    "label.action.start.systemvm.processing": "Iniciando VM de Sistema....",
+    "label.action.stop.instance": "Parar Instância",
+    "label.action.stop.instance.processing": "Parando Instância...",
+    "label.action.stop.router": "Parar Roteador",
+    "label.action.stop.router.processing": "Parando Roteador....",
+    "label.action.stop.systemvm": "Parar VM de Sistema",
+    "label.action.stop.systemvm.processing": "Parando VM de Sistema....",
+    "label.action.take.snapshot": "Tirar Snapshot",
+    "label.action.take.snapshot.processing": "Tirando Snapshot....",
+    "label.action.unmanage.cluster": "Desvincular Cluster",
+    "label.action.unmanage.cluster.processing": "Desvinculando Cluster....",
+    "label.action.update.OS.preference": "Atualizar Preferência de SO",
+    "label.action.update.OS.preference.processing": "Atualizando Preferência de SO....",
+    "label.action.update.resource.count": "Atualiza Contador de Recursos",
+    "label.action.update.resource.count.processing": "Atualizando Contador de Recursos....",
+    "label.action.vmsnapshot.create": "Fazer Snapshot de VM",
+    "label.action.vmsnapshot.delete": "Remover snapshot de VM",
+    "label.action.vmsnapshot.revert": "Reverter snapshot de VM",
+    "label.actions": "Ações",
+    "label.activate.project": "Ativar Projeto",
+    "label.active.sessions": "Sessões Ativas",
+    "label.add": "Adicionar",
+    "label.add.ACL": "Adicionar ACL",
+    "label.add.BigSwitchBcf.device": "Adicionar BigSwitch BCF Controller",
+    "label.add.BrocadeVcs.device": "Adicionar Brocade Vcs Switch",
+    "label.add.F5.device": "Adicionar dispositivo F5",
+    "label.add.LDAP.account": "Adicionar Conta LDAP",
+    "label.add.NiciraNvp.device": "Adicionar Controlador Nvp",
+    "label.add.NuageVsp.device": "Adicionar Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Adiciona Controlador OpenDaylight",
+    "label.add.PA.device": "Adicionar dispositivo Palo Alto",
+    "label.add.SRX.device": "Adicionar dispositivo SRX",
+    "label.add.VM.to.tier": "Adicionar máquina virtual à camada",
+    "label.add.VPN.gateway": "Adicionar gateway de VPN",
+    "label.add.account": "Adicionar Conta",
+    "label.add.account.to.project": "Adicionar conta ao projeto",
+    "label.add.accounts": "Adicionar contas",
+    "label.add.accounts.to": "Adicionar contas para",
+    "label.add.acl.list": "Adiciona Lista ACL",
+    "label.add.affinity.group": "Adicionar um grupo de afinidade",
+    "label.add.baremetal.dhcp.device": "Adiciona Dispositivo DHCP Baremetal",
+    "label.add.baremetal.rack.configuration": "Adicionar Configuração de Rack de Baremetal",
+    "label.add.by": "Adicionado por",
+    "label.add.by.cidr": "Adicionar por CIDR",
+    "label.add.by.group": "Adicionar por Grupo",
+    "label.add.ciscoASA1000v": "Adicone Recurso",
+    "label.add.cluster": "Adicionar Cluster",
+    "label.add.compute.offering": "Adicionar oferta de computação",
+    "label.add.direct.iprange": "Add Direct Ip Range",
+    "label.add.disk.offering": "Adicionar Oferta de Disco",
+    "label.add.domain": "Adicionar Domínio",
+    "label.add.egress.rule": "Adicionar regra egress",
+    "label.add.firewall": "Adicionar regra de Firewall",
+    "label.add.globo.dns": "Adicionar GloboDNS",
+    "label.add.gslb": "Adicionar GSLB",
+    "label.add.guest.network": "Adicionar rede guest",
+    "label.add.host": "Adicionar Host",
+    "label.add.ingress.rule": "Adicionar Regra de Entrada",
+    "label.add.intermediate.certificate": "Adicionar certificado intermediário",
+    "label.add.internal.lb": "Adiciona LB Interno",
+    "label.add.ip.range": "Adicionar Range de IP",
+    "label.add.isolated.guest.network": "Adiciona Rede Guest Isolada",
+    "label.add.isolated.guest.network.with.sourcenat": "Adicionar rede Guest isolada com SourceNat",
+    "label.add.isolated.network": "Adiciona Rede Isolada",
+    "label.add.ldap.account": "Adicionar Conta LDAP",
+    "label.add.list.name": "Nome de Lista ACL",
+    "label.add.load.balancer": "Adicionar Load Balance",
+    "label.add.more": "Adicionar Mais",
+    "label.add.netScaler.device": "Adicionar dispositivo Netscaler",
+    "label.add.network": "Adicionar Rede",
+    "label.add.network.ACL": "Adicione ACL de rede",
+    "label.add.network.acl.list": "Adicionar Lista de ACL de Rede",
+    "label.add.network.device": "Adicionar Dispositivo de Rede",
+    "label.add.network.offering": "Adicionar oferta de rede",
+    "label.add.new.F5": "Adicionar um novo F5",
+    "label.add.new.NetScaler": "Adicionar um novo NetScaler",
+    "label.add.new.PA": "Adicionar novo Palo Alto",
+    "label.add.new.SRX": "Adicionar um novo SRX",
+    "label.add.new.gateway": "Adicionar novo gateway",
+    "label.add.new.tier": "Adicionar nova camada",
+    "label.add.nfs.secondary.staging.store": "Adiciona Armazenamento NFS de Estágio Secundário",
+    "label.add.physical.network": "Adicionar rede física",
+    "label.add.pod": "Adicionar POD",
+    "label.add.port.forwarding.rule": "Adicionar regra de encaminhamento de porta",
+    "label.add.portable.ip.range": "Adicionar Faixa de Endereços IPs Portáveis",
+    "label.add.primary.storage": "Adicionar Storage Primário",
+    "label.add.private.gateway": "Adicionar Gateway Privado",
+    "label.add.region": "Adicionar Região",
+    "label.add.resources": "Adicionar Recursos",
+    "label.add.role": "Add Role",
+    "label.add.route": "Adicionar rota",
+    "label.add.rule": "Adicionar regra",
+    "label.add.secondary.storage": "Adicionar Storage Secundário",
+    "label.add.security.group": "Adicionar Security Group",
+    "label.add.service.offering": "Adicionar Plano",
+    "label.add.static.nat.rule": "Adicionar regra de NAT estático",
+    "label.add.static.route": "Adicionar rota estática",
+    "label.add.system.service.offering": "Adicionar Plano para VM de Sistema",
+    "label.add.template": "Adicionar Template",
+    "label.add.to.group": "Adicionar ao grupo",
+    "label.add.ucs.manager": "Adiciona Gerenciador UCS",
+    "label.add.user": "Adicionar Usuário",
+    "label.add.userdata": "Userdata",
+    "label.add.vlan": "Adicionar VLAN",
+    "label.add.vm": "Adicionar VM",
+    "label.add.vms": "Adicionar VMs",
+    "label.add.vms.to.lb": "Add VM(s) na regra de balanceamento de carga",
+    "label.add.vmware.datacenter": "Adicionar Datacerter VMware",
+    "label.add.vnmc.device": "Adiciona dispositivo VNMC",
+    "label.add.vnmc.provider": "Adicione provedor VNMC",
+    "label.add.volume": "Adicionar Disco",
+    "label.add.vpc": "Adicionar VPC",
+    "label.add.vpc.offering": "Adicionar Oferta VPC",
+    "label.add.vpn.customer.gateway": "Adicionar Gateway de VPN de usuário",
+    "label.add.vpn.user": "Adicionar usuário VPN",
+    "label.add.vxlan": "Adicionar VXLAN",
+    "label.add.zone": "Adicionar Zona",
+    "label.added.brocade.vcs.switch": "Adicionado novo Brocade Vcs Switch",
+    "label.added.network.offering": "Adicionar uma oferta de rede",
+    "label.added.new.bigswitch.bcf.controller": "Adicionar novo BigSwitch BCF Controller",
+    "label.added.nicira.nvp.controller": "Adicionado nova Controladora Nicira NVP",
+    "label.addes.new.f5": "Adicionado novo F5",
+    "label.adding": "Adicionando",
+    "label.adding.cluster": "Adicionando Cluster",
+    "label.adding.failed": "Falha ao Adicionar",
+    "label.adding.pod": "Adicionando POD",
+    "label.adding.processing": "Adicionando....",
+    "label.adding.succeeded": "Adicionado com Sucesso",
+    "label.adding.user": "Adicionando Usuário",
+    "label.adding.zone": "Adicionando Zona",
+    "label.additional.networks": "Redes Adicionais",
+    "label.admin": "Administrador",
+    "label.admin.accounts": "Contas Administrativas",
+    "label.advanced": "Avançado",
+    "label.advanced.mode": "Modo Avançado",
+    "label.advanced.search": "Busca Avançada",
+    "label.affinity": "Afinidade",
+    "label.affinity.group": "Grupo de Afinidade",
+    "label.affinity.groups": "Grupos de Afinidade",
+    "label.agent.password": "Senha do Agente",
+    "label.agent.port": "Porta do Agente",
+    "label.agent.state": "Estado do Agente",
+    "label.agent.username": "Usuário do Agente",
+    "label.agree": "Concordo",
+    "label.alert": "Alerta",
+    "label.alert.archived": "Alerta Arquivado",
+    "label.alert.deleted": "Alerta Apagado",
+    "label.alert.details": "Detalhes de alerta",
+    "label.algorithm": "Algoritmo",
+    "label.allocated": "Alocado",
+    "label.allocation.state": "Status da Alocação",
+    "label.allow": "Pertitir",
+    "label.anti.affinity": "Anti-afinidade",
+    "label.anti.affinity.group": "Grupo de Anti-afinidade",
+    "label.anti.affinity.groups": "Grupos de Anti-afinidade",
+    "label.api.key": "API Key",
+    "label.api.version": "Verão da API",
+    "label.app.name": "CloudStack",
+    "label.apply": "Aplicar",
+    "label.archive": "Arquivo",
+    "label.archive.alerts": "Guardar alertas",
+    "label.archive.events": "Guardar eventos",
+    "label.assign": "Atribuir",
+    "label.assign.instance.another": "Atribuir Instância para outra Conta",
+    "label.assign.to.load.balancer": "Atribuindo Instância ao balanceador de carga",
+    "label.assign.vms": "Atribuir VMs",
+    "label.assigned.vms": "VMs designadas",
+    "label.associate.public.ip": "Associa IP Público",
+    "label.associated.network": "Rede associada",
+    "label.associated.network.id": "ID de Rede Associado",
+    "label.associated.profile": "Perfil Associado",
+    "label.attached.iso": "Imagem ISO Plugada",
+    "label.author.email": "E-mail do autor",
+    "label.author.name": "Nome do autor",
+    "label.autoscale": "Escalonamento Automático",
+    "label.autoscale.configuration.wizard": "Assistente de configuração de AutoScale",
+    "label.availability": "Availability",
+    "label.availability.zone": "Datacenter",
+    "label.availabilityZone": "availabilityZone",
+    "label.available": "Disponível",
+    "label.available.public.ips": "IP Público Disponível",
+    "label.back": "Voltar",
+    "label.bandwidth": "Bandwidth",
+    "label.baremetal.dhcp.devices": "Dispositivos DHCP Baremetal",
+    "label.baremetal.dhcp.provider": "Provedor DHCP Baremetal",
+    "label.baremetal.pxe.device": "Adiciona Dispositivo PXE Baremetal",
+    "label.baremetal.pxe.devices": "Dispositivo PXE Baremetal",
+    "label.baremetal.pxe.provider": "Provedor PXE Baremetal",
+    "label.baremetal.rack.configuration": "Configuração do Rack de Baremetal",
+    "label.basic": "Básico",
+    "label.basic.mode": "Modo Básico",
+    "label.bigswitch.bcf.details": "Detalhes do BigSwitch BCF",
+    "label.bigswitch.bcf.nat": "Habilitar BigSwitch BCF NAT",
+    "label.bigswitch.controller.address": "Endereço do BigSwitch BCF Controller",
+    "label.blade.id": "ID da Lâmina",
+    "label.blades": "Lâminas",
+    "label.bootable": "Inicializável",
+    "label.broadcast.domain.range": "Range do domínio de Broadcast",
+    "label.broadcast.domain.type": "Tipo de Domínio Broadcast",
+    "label.broadcast.uri": "URI de broadcast",
+    "label.broadcasturi": "url de broadcast",
+    "label.broadcat.uri": "URI de broadcast",
+    "label.brocade.vcs.address": "Endereço do Vcs Switch",
+    "label.brocade.vcs.details": "Detalhes do Brocade Vcs Switch",
+    "label.by.account": "por Conta",
+    "label.by.alert.type": "Por tipo de alerta",
+    "label.by.availability": "By Availability",
+    "label.by.date.end": "Por data (final)",
+    "label.by.date.start": "Por data (início)",
+    "label.by.domain": "por Domínio",
+    "label.by.end.date": "por Data Final",
+    "label.by.event.type": "Por tipo de evento",
+    "label.by.level": "por Nível",
+    "label.by.pod": "por Pod",
+    "label.by.role": "por Função",
+    "label.by.start.date": "por Data Inicial",
+    "label.by.state": "por estado",
+    "label.by.traffic.type": "por Tipo de Tráfego",
+    "label.by.type": "Por Tipo",
+    "label.by.type.id": "por Tipo de ID",
+    "label.by.zone": "por Zona",
+    "label.bytes.received": "Bytes Recebidos",
+    "label.bytes.sent": "Bytes Enviados",
+    "label.cache.mode": "Tipo do cache de escrita",
+    "label.cancel": "Cancelar",
+    "label.capacity": "Capacidade",
+    "label.capacity.bytes": "Capacidade de Bytes",
+    "label.capacity.iops": "Capacidade de IOPS",
+    "label.certificate": "Certificado",
+    "label.change.affinity": "Muda Afinidade",
+    "label.change.ipaddress": "Mudança de endereço IP para NIC",
+    "label.change.service.offering": "Alterar oferta de serviço",
+    "label.change.value": "Alterar valor",
+    "label.character": "Caracter",
+    "label.chassis": "Chassis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR ou Conta/Security Group",
+    "label.cidr.list": "CIDR de Origem",
+    "label.cisco.nexus1000v.ip.address": "Endereço IP do Nexus 1000v",
+    "label.cisco.nexus1000v.password": "Senha do Nexus 1000v",
+    "label.cisco.nexus1000v.username": "Usuário do Nexus 1000v",
+    "label.ciscovnmc.resource.details": "Detalhes de recurso CiscoVNMC",
+    "label.clean.up": "Limpar",
+    "label.clear.list": "Limpar lista",
+    "label.close": "Fechar",
+    "label.cloud.console": "Console de Gerenciamento da Nuvem",
+    "label.cloud.managed": "Cloud.com Managed",
+    "label.cluster": "Cluster",
+    "label.cluster.name": "Nome do Cluster",
+    "label.cluster.type": "Tipo de Cluster",
+    "label.clusters": "Clusters",
+    "label.clvm": "CLVM",
+    "label.code": "Código",
+    "label.community": "Comunidade",
+    "label.compute": "Computação",
+    "label.compute.and.storage": "Processamento e Armazenamento",
+    "label.compute.offering": "Oferta de Computação",
+    "label.compute.offerings": "Oferta de Computação",
+    "label.configuration": "Configuração",
+    "label.configure": "Configurar",
+    "label.configure.ldap": "Configurar LDAP",
+    "label.configure.network.ACLs": "Configure ACLs de rede",
+    "label.configure.sticky.policy": "Configurar Política Fixa",
+    "label.configure.vpc": "Configurar VPC",
+    "label.confirm.password": "Confirme a senha",
+    "label.confirmation": "Confirmação",
+    "label.congratulations": "Parabéns!",
+    "label.conserve.mode": "Modo Conservativo",
+    "label.console.proxy": "Console proxy",
+    "label.console.proxy.vm": "VM da Console Proxy",
+    "label.continue": "Continuar",
+    "label.continue.basic.install": "Continuar com a instalação básica",
+    "label.copying.iso": "Copiando ISO",
+    "label.corrections.saved": "Alterações salvas",
+    "label.counter": "Contador",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "CPU Alocada",
+    "label.cpu.allocated.for.VMs": "CPU Alocada por VMs",
+    "label.cpu.limits": "Limite de CPU",
+    "label.cpu.mhz": "CPU (em MHz)",
+    "label.cpu.utilized": "CPU Utilizada",
+    "label.create.VPN.connection": "Criar uma conexão VPN",
+    "label.create.nfs.secondary.staging.storage": "Cria Armazenamento NFS de Estágio Secundário",
+    "label.create.nfs.secondary.staging.store": "Criar storage staging secundário NFS",
+    "label.create.project": "Criar um projeto",
+    "label.create.ssh.key.pair": "Criar par de chaves SSH",
+    "label.create.template": "Criar template",
+    "label.created": "Criado",
+    "label.created.by.system": "Criado pelo sistema",
+    "label.cross.zones": "Inter Zonas",
+    "label.custom": "Customizado",
+    "label.custom.disk.iops": "IOPS personalizado",
+    "label.custom.disk.offering": "Oferta de Disco customizado",
+    "label.custom.disk.size": "Tamanho Customizado",
+    "label.daily": "Diário",
+    "label.data.disk.offering": "Oferta de Disco Adicional",
+    "label.date": "Data",
+    "label.day": "Dia",
+    "label.day.of.month": "Dia do Mês",
+    "label.day.of.week": "Dia da Semana",
+    "label.dc.name": "Nome do DC",
+    "label.dead.peer.detection": "Detecção de correspondente morto",
+    "label.decline.invitation": "Rejeitar convite",
+    "label.dedicate": "Dedicado",
+    "label.dedicate.cluster": "Cluster Dedicado",
+    "label.dedicate.host": "Dedica Host",
+    "label.dedicate.pod": "Pod Dedicado",
+    "label.dedicate.vlan.vni.range": "Range de VLAN/VNI Dedicado",
+    "label.dedicate.zone": "Zona Dedicada",
+    "label.dedicated": "Dedicado",
+    "label.dedicated.vlan.vni.ranges": "Range(s) de VLAN/VNI Dedicados",
+    "label.default": "Padrão",
+    "label.default.egress.policy": "Política padrão de egressão",
+    "label.default.use": "Uso padrão",
+    "label.default.view": "Visão Padrão",
+    "label.delete": "Remover",
+    "label.delete.BigSwitchBcf": "Remover BigSwitch BCF Controller",
+    "label.delete.BrocadeVcs": "Remover Brocade Vcs Switch",
+    "label.delete.F5": "Remover F5",
+    "label.delete.NetScaler": "Remover NetScaler",
+    "label.delete.NiciraNvp": "Remover Controlador Nvp",
+    "label.delete.NuageVsp": "Remover Nuage VSD",
+    "label.delete.OpenDaylight.device": "Apaga Controladora OpenDaylight",
+    "label.delete.PA": "Remover Palo Alto",
+    "label.delete.SRX": "Remover SRX",
+    "label.delete.VPN.connection": "deletar a conexão VPN",
+    "label.delete.VPN.customer.gateway": "deletar gateway de VPN de usuário",
+    "label.delete.VPN.gateway": "deletar um gateway de VPN",
+    "label.delete.acl.list": "Apagar Lista ACL",
+    "label.delete.affinity.group": "Deletar Grupo de Afinidade",
+    "label.delete.alerts": "Remover alertas",
+    "label.delete.baremetal.rack.configuration": "Deletar Configuração de Rack de Baremetal",
+    "label.delete.ciscoASA1000v": "Apaga CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Apaga recurso CiscoVNMC",
+    "label.delete.events": "Remover eventos",
+    "label.delete.gateway": "delete gateway",
+    "label.delete.internal.lb": "Apaga LB Interno",
+    "label.delete.portable.ip.range": "Deletar Endereços IPs Portáteis",
+    "label.delete.profile": "Apaga Perfil",
+    "label.delete.project": "Deletar projeto",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Apaga Armazenamento de Estágio Secundário",
+    "label.delete.ucs.manager": "Apaga Gerenciador UCS",
+    "label.delete.vpn.user": "Deletar usuário VPN",
+    "label.deleting.failed": "Falha ao remover",
+    "label.deleting.processing": "Removendo....",
+    "label.deny": "Negar",
+    "label.deployment.planner": "Deployment planejado",
+    "label.description": "Descrição",
+    "label.destination.physical.network.id": "ID de destino da rede física",
+    "label.destination.zone": "Zona de Destino",
+    "label.destroy": "Apagar",
+    "label.destroy.router": "Destruir roteador",
+    "label.destroy.vm.graceperiod": "Destruir Grace Period da VM",
+    "label.detaching.disk": "Desplugando Disco",
+    "label.details": "Detalhes",
+    "label.device.id": "ID do Dispositivo",
+    "label.devices": "Dispositivos",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "IP Público COnectado Diretamente",
+    "label.direct.ips": "IPs Diretos",
+    "label.disable.autoscale": "Desabilita Auto-escala",
+    "label.disable.host": "Desabilita Host",
+    "label.disable.network.offering": "Desabilita oferta de rede",
+    "label.disable.provider": "Desabilitar Provider",
+    "label.disable.vnmc.provider": "Habilita provedor VNMC",
+    "label.disable.vpc.offering": "Desabilitar oferta VPC",
+    "label.disable.vpn": "Desabilitar VPN",
+    "label.disabled": "Desativado",
+    "label.disabling.vpn.access": "Desativando Acesso VPN",
+    "label.disassociate.profile.blade": "Desassocia Perfil de Lâmina",
+    "label.disbale.vnmc.device": "Desabilita dispositivo VNMC",
+    "label.disk.allocated": "Disco Alocado",
+    "label.disk.bytes.read.rate": "Taxa de Leitura do Disco (BPS)",
+    "label.disk.bytes.write.rate": "Taxa de Escrita no Disco (BPS)",
+    "label.disk.iops.max": "Máx IOPS",
+    "label.disk.iops.min": "Mín IOPS",
+    "label.disk.iops.read.rate": "Taxa de Leitura do Disco (IOPS)",
+    "label.disk.iops.total": "IOPS Total",
+    "label.disk.iops.write.rate": "Taxa de Escrita no Disco (IOPS)",
+    "label.disk.offering": "Oferta de Disco",
+    "label.disk.offering.details": "Detalhes da oferta de disco",
+    "label.disk.provisioningtype": "Tipo de Provisionamento",
+    "label.disk.read.bytes": "Leitura do Disco (Bytes)",
+    "label.disk.read.io": "Leitura do Disk (I/O)",
+    "label.disk.size": "Tamanho do Disco",
+    "label.disk.size.gb": "Tamanho (em GB)",
+    "label.disk.total": "Disco Total",
+    "label.disk.volume": "Disco",
+    "label.disk.write.bytes": "Escrita no Disco (Bytes)",
+    "label.disk.write.io": "Escrita no Disco (I/O)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Mostrar Nome",
+    "label.display.text": "Descrição",
+    "label.distributedrouter": "Roteador Distribuido",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Domínio",
+    "label.domain.admin": "Administrador de Domínio",
+    "label.domain.details": "Detalhes do domínio",
+    "label.domain.id": "ID do Domínio",
+    "label.domain.lower": "domínio",
+    "label.domain.name": "Nome do Domínio",
+    "label.domain.router": "Roteador do Domínio",
+    "label.domain.suffix": "Sufixo de Domínio DNS (ex. xyz.com)",
+    "label.done": "Pronto",
+    "label.double.quotes.are.not.allowed": "Aspas duplas não são permitidas",
+    "label.download.progress": "Status do Download",
+    "label.drag.new.position": "Arrastar para uma nova posição",
+    "label.duration.in.sec": "Duração (em seg)",
+    "label.dynamically.scalable": "Dinamicamente Escalável",
+    "label.edit": "Editar",
+    "label.edit.acl.rule": "Edita regra ACL",
+    "label.edit.affinity.group": "Editar Grupo de Afinidade",
+    "label.edit.lb.rule": "Editar regra de LB",
+    "label.edit.network.details": "Editar detalhes de rede",
+    "label.edit.project.details": "Editar detalhes do projeto",
+    "label.edit.region": "Editar Região",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Editar regra",
+    "label.edit.secondary.ips": "Editar IPs secundários",
+    "label.edit.tags": "Edite etiquetas",
+    "label.edit.traffic.type": "Editar tipo de tráfego",
+    "label.edit.vpc": "Editar VPC",
+    "label.egress.default.policy": "Política de Entrada Padrão",
+    "label.egress.rule": "Regra Egress",
+    "label.egress.rules": "Regras de saída",
+    "label.elastic": "Elástico",
+    "label.elastic.IP": "IP Elástico",
+    "label.elastic.LB": "LB Elástico",
+    "label.email": "Email",
+    "label.email.lower": "email",
+    "label.enable.autoscale": "Habilita Auto-escala",
+    "label.enable.host": "Habilita Host",
+    "label.enable.network.offering": "Habilita oferta de rede",
+    "label.enable.provider": "Habilitar provider",
+    "label.enable.s3": "Habilita storage secundária fornecida por S3",
+    "label.enable.swift": "Habilitar Swift",
+    "label.enable.vnmc.device": "Habilita dispositivo VNMC",
+    "label.enable.vnmc.provider": "Habilita provedor VNMC",
+    "label.enable.vpc.offering": "Habilitar oferta VPC",
+    "label.enable.vpn": "Habilitar VPN",
+    "label.enabling.vpn": "Ativando VPN",
+    "label.enabling.vpn.access": "Ativando Acesso VPN",
+    "label.end.IP": "IP do fim",
+    "label.end.port": "Porta Final",
+    "label.end.reserved.system.IP": "Fim dos IPs reservados para o sistema",
+    "label.end.vlan": "VLAN final",
+    "label.end.vxlan": "VXLAN final",
+    "label.endpoint": "Ponto de acesso",
+    "label.endpoint.or.operation": "Endpoint or Operation",
+    "label.enter.token": "Digite o token",
+    "label.error": "Erro",
+    "label.error.code": "Código de Erro",
+    "label.error.upper": "ERRO",
+    "label.esx.host": "ESX/ESXi Host",
+    "label.event": "Eventos",
+    "label.event.archived": "Evento Arquivado",
+    "label.event.deleted": "Evento Detectado",
+    "label.every": "Cada",
+    "label.example": "Examplo",
+    "label.expunge": "Eliminar",
+    "label.external.link": "Link externo",
+    "label.extractable": "Extraível",
+    "label.extractable.lower": "extraível",
+    "label.f5": "F5",
+    "label.f5.details": "Detalhes do F5",
+    "label.failed": "Falhou",
+    "label.featured": "Featured",
+    "label.fetch.latest": "Obter últimos",
+    "label.filterBy": "Filtrar por",
+    "label.fingerprint": "Impressão Digital",
+    "label.firewall": "Firewall",
+    "label.first.name": "Primeiro Nome",
+    "label.firstname.lower": "primeiro nome",
+    "label.format": "Formato",
+    "label.format.lower": "formato",
+    "label.friday": "Sexta-feira",
+    "label.full": "Full",
+    "label.full.path": "Path completo",
+    "label.gateway": "Gateway",
+    "label.general.alerts": "Alertas Gerais",
+    "label.generating.url": "Criando URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "Configurar GloboDNS",
+    "label.gluster.volume": "Disco",
+    "label.go.step.2": "Vá para passo 2",
+    "label.go.step.3": "Vá para passo 3",
+    "label.go.step.4": "Vá para passo 4",
+    "label.go.step.5": "Vá para passo 5",
+    "label.gpu": "GPU",
+    "label.group": "Grupo",
+    "label.group.by.account": "Agrupamento por conta",
+    "label.group.by.cluster": "Grupo por cluster",
+    "label.group.by.pod": "Grupo por pod",
+    "label.group.by.zone": "Grupo por Zona",
+    "label.group.optional": "Grupo (Opcional)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Balanceamento de carga designado",
+    "label.gslb.assigned.lb.more": "Designe mais balanceamento de carga",
+    "label.gslb.delete": "Apaga GSLB",
+    "label.gslb.details": "Detalhes do GSLB",
+    "label.gslb.domain.name": "Nome do Domínio GSLB",
+    "label.gslb.lb.details": "Detalhes de balanceamento de carga",
+    "label.gslb.lb.remove": "Remova balanceamento de carga deste GSLB",
+    "label.gslb.lb.rule": "Regra de balanceamento de carga",
+    "label.gslb.service": "Serviço GSLB",
+    "label.gslb.service.private.ip": "Serviço GSLB - IP Privado",
+    "label.gslb.service.public.ip": "GSLB atende IP Público",
+    "label.gslb.servicetype": "Tipo do Serviço",
+    "label.guest": "Guest",
+    "label.guest.cidr": "CIDR de rede Convidado",
+    "label.guest.end.ip": "IP do fim do guest",
+    "label.guest.gateway": "Gateway de rede Convidado",
+    "label.guest.ip": "Endereço IP Convidado",
+    "label.guest.ip.range": "Intervalo de rede convidado",
+    "label.guest.netmask": "Máscara de rede Guest",
+    "label.guest.network.details": "Detalhes de rede convidada",
+    "label.guest.networks": "Redes Guest",
+    "label.guest.start.ip": "IP de início do guest",
+    "label.guest.traffic": "Tráfego de hóspedes",
+    "label.guest.traffic.vswitch.name": "Nome do vSwitch de Tráfego Convidado",
+    "label.guest.traffic.vswitch.type": "Tipo de vSwitch de Tráfego Convidado",
+    "label.guest.type": "Tipo de Guest",
+    "label.ha.enabled": "HA Ativado",
+    "label.health.check": "Checagem de Saúde",
+    "label.health.check.advanced.options": "Opções avançadas:",
+    "label.health.check.configurations.options": "Opções de configuração:",
+    "label.health.check.interval.in.sec": "Intervalo de Health Check (em seg)",
+    "label.health.check.message.desc": "Seu balanceador de carga realizará automaticamente verificações da saúde das suas instâncias no Cloudstack e irá rotear tráfego somente  para as instâncias que passarem nas verificações.",
+    "label.health.check.wizard": "Assistente de configuração de Health Check",
+    "label.healthy.threshold": "Limiar de Sanidade",
+    "label.help": "Ajuda",
+    "label.hide.ingress.rule": "Ocultar Regra de Entrada",
+    "label.hints": "Dicas",
+    "label.home": "Home",
+    "label.host": "Host",
+    "label.host.MAC": "Host MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Host Name",
+    "label.host.tag": "Tag de host",
+    "label.host.tags": "Tags de Host",
+    "label.hosts": "Hosts",
+    "label.hourly": "A cada hora",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "Rótulo de tráfego HyperV",
+    "label.hypervisor": "Hipervisor",
+    "label.hypervisor.capabilities": "Recursos de Virtualizador",
+    "label.hypervisor.snapshot.reserve": "Reserva de Snapshot do Hypervisor",
+    "label.hypervisor.type": "Tipo do Hypervisor",
+    "label.hypervisor.version": "Versão de Virtualizador",
+    "label.hypervisors": "Hypervisors",
+    "label.id": "ID",
+    "label.info": "Info",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Regra de Entrada",
+    "label.initiated.by": "Iniciado por",
+    "label.inside.port.profile": "Perfil de Porta Interna",
+    "label.installWizard.addClusterIntro.subtitle": "O que é um cluster?",
+    "label.installWizard.addClusterIntro.title": "Vamos adicionar um cluster",
+    "label.installWizard.addHostIntro.subtitle": "O que é um Host ?",
+    "label.installWizard.addHostIntro.title": "Vamos adicionar um host",
+    "label.installWizard.addPodIntro.subtitle": "O que é um pod ?",
+    "label.installWizard.addPodIntro.title": "Vamos adicionar um pod",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Qual é o storage primário ?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Vamos adicionar o storage primário",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Qual é o storage secundário ?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Vamos adicionar o storage secundário",
+    "label.installWizard.addZone.title": "Adicionar zona",
+    "label.installWizard.addZoneIntro.subtitle": "O que é uma zona?",
+    "label.installWizard.addZoneIntro.title": "Vamos adicionar uma zona",
+    "label.installWizard.click.launch": "Click no botão executar.",
+    "label.installWizard.subtitle": "Este tour vai auxiliar você na configuração da sua instalação de  CloudStack&#8482",
+    "label.installWizard.title": "Olá, seja bem vindo ao CloudStack&#8482",
+    "label.instance": "Instância",
+    "label.instance.limits": "Limites da Instância",
+    "label.instance.name": "Nome da Instância",
+    "label.instance.port": "Instanciar Porta",
+    "label.instance.scaled.up": "Instância escalada para a oferta solicitada",
+    "label.instances": "Instâncias",
+    "label.instanciate.template.associate.profile.blade": "Instancia Template e Associa Perfil à Lâmina",
+    "label.intermediate.certificate": "Certificado intermediário {0}",
+    "label.internal.dns.1": "DNS 1 Interno",
+    "label.internal.dns.2": "DNS 2 Interno",
+    "label.internal.lb": "LB interno",
+    "label.internal.lb.details": "Detalhes de LB Interno",
+    "label.internal.name": "Nome interno",
+    "label.internallbvm": "LbVm Interno",
+    "label.interval.type": "Tipo de Intervalo",
+    "label.introduction.to.cloudstack": "Introdução ao CloudStack&#8482",
+    "label.invalid.integer": "Invalid Integer",
+    "label.invalid.number": "Número inválido",
+    "label.invitations": "Convites",
+    "label.invite": "Convidar",
+    "label.invite.to": "Convidar para",
+    "label.invited.accounts": "Contas convidadas",
+    "label.ip": "IP",
+    "label.ip.address": "Endereço IP",
+    "label.ip.allocations": "Alocações de IP",
+    "label.ip.limits": "Limites de IP Público",
+    "label.ip.or.fqdn": "IP ou FQDN",
+    "label.ip.range": "Range de IP",
+    "label.ip.ranges": "Ranges de IP",
+    "label.ipaddress": "Endereço IP",
+    "label.ips": "IPs",
+    "label.ipv4.cidr": "CIDR IPv4",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IP FInal IPv4",
+    "label.ipv4.gateway": "Gateway IPV4",
+    "label.ipv4.netmask": "Máscara de Rede IPv4",
+    "label.ipv4.start.ip": "IP Inicial IPv4",
+    "label.ipv6.CIDR": "CIDR IPv6",
+    "label.ipv6.address": "Endereço IPv6",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IP FInal IPv6",
+    "label.ipv6.gateway": "Gateway IPv6",
+    "label.ipv6.start.ip": "IP Inicial IPv6",
+    "label.is.default": "ɉ Padrão",
+    "label.is.redundant.router": "Redundante",
+    "label.is.shared": "É Compartilhado",
+    "label.is.system": "é um sistema",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO de Boot",
+    "label.isolated.networks": "Redes Isoladas",
+    "label.isolation.method": "Método de isolamento",
+    "label.isolation.mode": "Modo Isolado",
+    "label.isolation.uri": "URI de isolamento",
+    "label.item.listing": "Listar items",
+    "label.japanese.keyboard": "Japanese keyboard",
+    "label.keep": "Manter",
+    "label.keep.colon": "Manter",
+    "label.key": "Chave",
+    "label.keyboard.language": "Linguagem do teclado",
+    "label.keyboard.type": "Tipo de Teclado",
+    "label.kvm.traffic.label": "Etiqueta de tráfego KVM",
+    "label.label": "Etiqueta",
+    "label.lang.arabic": "Arabe",
+    "label.lang.brportugese": "Português brasileiro",
+    "label.lang.catalan": "Catalão",
+    "label.lang.chinese": "Chinese (Simplified)",
+    "label.lang.dutch": "Holandês (Holanda)",
+    "label.lang.english": "English",
+    "label.lang.french": "Francês",
+    "label.lang.german": "Alemão",
+    "label.lang.hungarian": "Húngaro",
+    "label.lang.italian": "Italiano",
+    "label.lang.japanese": "Japanese",
+    "label.lang.korean": "Coreano",
+    "label.lang.norwegian": "Norueguês",
+    "label.lang.polish": "Polonês",
+    "label.lang.russian": "Russo",
+    "label.lang.spanish": "Spanish",
+    "label.last.disconnected": "Last Disconnected",
+    "label.last.name": "Último Nome",
+    "label.lastname.lower": "último nome",
+    "label.latest.events": "Últimos 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.ldap.configuration": "Configuração do LDAP",
+    "label.ldap.group.name": "Grupo LDAP",
+    "label.ldap.link.type": "Tipo",
+    "label.ldap.port": "Porta do LDAP",
+    "label.level": "Nível",
+    "label.link.domain.to.ldap": "Link Domínio para LDAP",
+    "label.linklocal.ip": "Endereço IP do Link Local",
+    "label.load.balancer": "Load Balancer",
+    "label.load.balancer.type": "Tipo de Balanceamento de Carga",
+    "label.load.balancing": "Balanceamento de Carga",
+    "label.load.balancing.policies": "Políticas de balanceamento de carga",
+    "label.loading": "Carregando",
+    "label.local": "Local",
+    "label.local.file": "Arquivo local",
+    "label.local.storage": "Storage Local",
+    "label.local.storage.enabled": "Habilitar storage local para VMs de usuários",
+    "label.local.storage.enabled.system.vms": "Habilitar storage local para VMs de Sistema",
+    "label.login": "Entrar",
+    "label.logout": "Sair",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "Rótulo de tráfego LXC",
+    "label.make.project.owner": "Criar proprietário de conta de projeto",
+    "label.make.redundant": "Deixar redundante",
+    "label.manage": "Gerenciar",
+    "label.manage.resources": "Gerenciar Recursos",
+    "label.managed": "Gerenciado",
+    "label.management": "Gerenciamento",
+    "label.management.ips": "Gerenciamento de Endereços IP",
+    "label.management.server": "Servidor de Gerenciamento",
+    "label.max.cpus": "Máximo de cores de CPU",
+    "label.max.guest.limit": "Limite máx. de guest",
+    "label.max.instances": "Instâncias Max",
+    "label.max.memory": "Máx. de memória (MiB)",
+    "label.max.networks": "Máx. de redes",
+    "label.max.primary.storage": "Máx. primário (GiB)",
+    "label.max.public.ips": "Máx. IPs públicos",
+    "label.max.secondary.storage": "Max. Secundário (GiB)",
+    "label.max.snapshots": "Max. snapshots",
+    "label.max.templates": "Máx. templates",
+    "label.max.vms": "Máx. VMs de usuário",
+    "label.max.volumes": "Máx. volumes",
+    "label.max.vpcs": "Máx. VPCs",
+    "label.maximum": "Máximo",
+    "label.may.continue": "Você pode continuar agora",
+    "label.md5.checksum": "MD5 checksum",
+    "label.memory": "Memória (em MB)",
+    "label.memory.allocated": "Memória Alocada",
+    "label.memory.limits": "Limites de memória (MiB)",
+    "label.memory.mb": "Memória (em MB)",
+    "label.memory.total": "Memória Total",
+    "label.memory.used": "Memória Usada",
+    "label.menu.accounts": "Contas",
+    "label.menu.alerts": "Alertas",
+    "label.menu.all.accounts": "Todas as Contas",
+    "label.menu.all.instances": "Todas Instâncias",
+    "label.menu.community.isos": "ISOs Públicas",
+    "label.menu.community.templates": "Templates Públicos",
+    "label.menu.configuration": "Configuração",
+    "label.menu.dashboard": "Dashboard",
+    "label.menu.destroyed.instances": "Instâncias Apagadas",
+    "label.menu.disk.offerings": "Oferta de Discos",
+    "label.menu.domains": "Domínios",
+    "label.menu.events": "Eventos",
+    "label.menu.featured.isos": "ISOs Customizada",
+    "label.menu.featured.templates": "Templates Customizados",
+    "label.menu.global.settings": "Configurações Globais",
+    "label.menu.infrastructure": "Infra-estrutura",
+    "label.menu.instances": "Instâncias",
+    "label.menu.ipaddresses": "Endereços IP",
+    "label.menu.isos": "ISOs",
+    "label.menu.my.accounts": "Minhas Contas",
+    "label.menu.my.instances": "Minhas Instâncias",
+    "label.menu.my.isos": "Minhas ISOs",
+    "label.menu.my.templates": "Meus Templates",
+    "label.menu.network": "Rede",
+    "label.menu.network.offerings": "Oferta de Rede",
+    "label.menu.physical.resources": "Recursos Bá­sicos",
+    "label.menu.regions": "Regiões",
+    "label.menu.running.instances": "Instâncias Rodando",
+    "label.menu.security.groups": "Grupos de segurança",
+    "label.menu.service.offerings": "Oferta de Serviços",
+    "label.menu.snapshots": "Snapshots",
+    "label.menu.sshkeypair": "SSH KeyPair",
+    "label.menu.stopped.instances": "Instâncias Paradas",
+    "label.menu.storage": "Storage",
+    "label.menu.system": "Sistema",
+    "label.menu.system.service.offerings": "Ofertas do Sistema",
+    "label.menu.system.vms": "VM de Sistemas",
+    "label.menu.templates": "Templates",
+    "label.menu.virtual.appliances": "Appliance Virtual",
+    "label.menu.virtual.resources": "Recursos Virtuais",
+    "label.menu.volumes": "Discos",
+    "label.menu.vpc.offerings": "Ofertas VPC",
+    "label.metrics": "Metricas",
+    "label.metrics.allocated": "Alocado",
+    "label.metrics.clusters": "Clusters",
+    "label.metrics.cpu.allocated": "Alocação de CPU",
+    "label.metrics.cpu.max.dev": "Desvio",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "Utilização de",
+    "label.metrics.cpu.used.avg": "Usado",
+    "label.metrics.disk": "Disco",
+    "label.metrics.disk.allocated": "Alocado",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Leitura",
+    "label.metrics.disk.size": "Tamanho",
+    "label.metrics.disk.storagetype": "Tipo",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Não alocado",
+    "label.metrics.disk.usage": "Utilização do Disco",
+    "label.metrics.disk.used": "Usado",
+    "label.metrics.disk.write": "Escrita",
+    "label.metrics.hosts": "Hosts",
+    "label.metrics.memory.allocated": "Alocação de Memória",
+    "label.metrics.memory.max.dev": "Desvio",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Utilização de Memória",
+    "label.metrics.memory.used.avg": "Usado",
+    "label.metrics.name": "Nome",
+    "label.metrics.network.read": "Leitura",
+    "label.metrics.network.usage": "Utilização de Rede",
+    "label.metrics.network.write": "Escrita",
+    "label.metrics.num.cpu.cores": "Núcleos",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Propriedade",
+    "label.metrics.scope": "Escopo",
+    "label.metrics.state": "Estado",
+    "label.metrics.storagepool": "Pool de Armazanamento",
+    "label.metrics.vm.name": "Nome da VM",
+    "label.migrate.instance.to": "Migrar Instância para",
+    "label.migrate.instance.to.host": "Migrar instância para outro host",
+    "label.migrate.instance.to.ps": "Migrar instância para outro storage primário",
+    "label.migrate.lb.vm": "Migre LB VM",
+    "label.migrate.router.to": "Migrar Roteador para",
+    "label.migrate.systemvm.to": "Migrar VM de sistema para",
+    "label.migrate.to.host": "Migrar para outro host",
+    "label.migrate.to.storage": "Migrar para storage",
+    "label.migrate.volume": "Migrar Volume",
+    "label.migrate.volume.to.primary.storage": "Migrar volume para outro storage primário",
+    "label.min.instances": "Instâncias Min",
+    "label.min.past.the.hr": "minutos passados da última hora",
+    "label.minimum": "Mí­nimo",
+    "label.minute.past.hour": "minuto(s) passado(s) da última hora",
+    "label.minutes.past.hour": "minuto(s) passados da última hora",
+    "label.mode": "Modo",
+    "label.monday": "Segunda",
+    "label.monthly": "Mensal",
+    "label.more.templates": "Mais Templates",
+    "label.move.down.row": "Mover uma célula para baixo",
+    "label.move.to.bottom": "Mover para baixo",
+    "label.move.to.top": "Mover para o topo",
+    "label.move.up.row": "Mover uma célula para cima",
+    "label.my.account": "Minha Conta",
+    "label.my.network": "Minha rede",
+    "label.my.templates": "Meus templates",
+    "label.na": "N/D",
+    "label.name": "Nome",
+    "label.name.lower": "Nome",
+    "label.name.optional": "Nome (Opcional)",
+    "label.nat.port.range": "Range de Portas NAT",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Máscara de Rede",
+    "label.netscaler.details": "Detalhes do NetScaler",
+    "label.network": "Rede",
+    "label.network.ACL": "ACL de rede",
+    "label.network.ACL.total": "Total de rede ACL",
+    "label.network.ACLs": "Network ACLs",
+    "label.network.addVM": "Adicionar rede para VM",
+    "label.network.cidr": "CIDR da Rede",
+    "label.network.desc": "Descrição de Rede",
+    "label.network.details": "Detalhes da rede",
+    "label.network.device": "Dispositivo de Rede",
+    "label.network.device.type": "Tipo de Dispositivo de Rede",
+    "label.network.domain": "Domínio de Rede",
+    "label.network.domain.text": "Texto do dom�nio de rede",
+    "label.network.id": "ID de Rede",
+    "label.network.label.display.for.blank.value": "Utilizar gateway default",
+    "label.network.limits": "Limites de rede",
+    "label.network.name": "Nome da Rede",
+    "label.network.offering": "Network Offering",
+    "label.network.offering.details": "Detalhes da oferta de rede",
+    "label.network.offering.display.text": "Network Offering Display Text",
+    "label.network.offering.id": "Network Offering ID",
+    "label.network.offering.name": "Network Offering Name",
+    "label.network.rate": "Taxa de Transferência",
+    "label.network.rate.megabytes": "Taxa de Rede (MB/s)",
+    "label.network.read": "Network Read",
+    "label.network.service.providers": "Provedores de Serviços de Rede",
+    "label.network.type": "Tipo de Rede",
+    "label.network.write": "Network Write",
+    "label.networking.and.security": "Rede e segurança",
+    "label.networks": "Redes",
+    "label.new": "Novo",
+    "label.new.password": "Nova Senha",
+    "label.new.project": "Novo Projeto",
+    "label.new.ssh.key.pair": "Novo par de chaves SSH",
+    "label.new.vm": "Nova VM",
+    "label.next": "Próximo",
+    "label.nexusVswitch": "Nexus Vswitch",
+    "label.nfs": "NFS",
+    "label.nfs.server": "Servidor NFS",
+    "label.nfs.storage": "Storage NFS",
+    "label.nic.adapter.type": "Tipo de adaptador de Rede",
+    "label.nicira.controller.address": "Endereço do Controlador",
+    "label.nicira.l2gatewayserviceuuid": "Uuid do Serviço de Gateway L2",
+    "label.nicira.l3gatewayserviceuuid": "Uuid do Serviço de Gateway L3",
+    "label.nicira.nvp.details": "Detalhes do Nicira NVP",
+    "label.nicira.transportzoneuuid": "Uuid da Zona de Transporte",
+    "label.nics": "Adaptadores de Rede",
+    "label.no": "Não",
+    "label.no.actions": "Sem Ações Disponíveis",
+    "label.no.alerts": "Sem Alertas Recentes",
+    "label.no.data": "Sem dados para mostrar",
+    "label.no.errors": "Sem Erros Recentes",
+    "label.no.grouping": "(sem agrupamento)",
+    "label.no.isos": "Sem ISO Disponível",
+    "label.no.items": "Sem Itens Disponíveis",
+    "label.no.security.groups": "Sem Security Groups Disponíveis",
+    "label.no.thanks": "Não obrigado",
+    "label.none": "Nenhum",
+    "label.not.found": "Não Encontrado",
+    "label.notifications": "Notificações",
+    "label.num.cpu.cores": "# de Core CPU",
+    "label.number.of.clusters": "Número de Clusters",
+    "label.number.of.cpu.sockets": "O Número de Sockets de CPU",
+    "label.number.of.hosts": "Número de Hosts",
+    "label.number.of.pods": "Número de Pods",
+    "label.number.of.system.vms": "Número de VMs de sistema",
+    "label.number.of.virtual.routers": "Número de Roteadores Virtuais",
+    "label.number.of.zones": "Número de Zonas",
+    "label.numretries": "Número de Tentativas",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "do mês",
+    "label.offer.ha": "Offer HA",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "Controlador OpenDaylight",
+    "label.opendaylight.controllerdetail": "Detalhes do Controlador OpenDaylight",
+    "label.opendaylight.controllers": "Controladores OpenDaylight",
+    "label.operator": "Operador",
+    "label.optional": "Opcional",
+    "label.order": "Ordenar",
+    "label.os.preference": "Preferência de SO",
+    "label.os.type": "Tipo de SO",
+    "label.other": "Outro",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Ação",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Endereço",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Senha",
+    "label.outofbandmanagement.port": "Porta",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Nome de usuário",
+    "label.override.guest.traffic": "Anula Tráfego Convidado",
+    "label.override.public.traffic": "Sobrepõe Tráfego Público",
+    "label.ovm.traffic.label": "Rótulo de tráfego OVM",
+    "label.ovm3.cluster": "Native Clustering",
+    "label.ovm3.pool": "Native Pooling",
+    "label.ovm3.traffic.label": "Label de trafego OVM3",
+    "label.ovm3.vip": "IP principal do Vip",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "IP Público Utilizado",
+    "label.owner.account": "Dono da Conta",
+    "label.owner.domain": "Dono do Domínio",
+    "label.palo.alto.details": "Detalhes do Palo Alto",
+    "label.parent.domain": "Domínio Principal",
+    "label.passive": "Passivo",
+    "label.password": "Senha",
+    "label.password.enabled": "Senha Ativada",
+    "label.password.lower": "senha",
+    "label.password.reset.confirm": "A senha foi recuperada para",
+    "label.path": "Caminho (Path)",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permissão",
+    "label.persistent": "Persistente",
+    "label.physical.network": "Rede Física",
+    "label.physical.network.ID": "ID da rede física",
+    "label.physical.network.name": "Nome da rede física",
+    "label.ping.path": "Caminho do Ping",
+    "label.planner.mode": "Modo planejado",
+    "label.please.complete.the.following.fields": "Por favor, preencha os seguintes campos",
+    "label.please.specify.netscaler.info": "Por favor especifique as informações do Netscaler",
+    "label.please.wait": "Por Favor Aguarde",
+    "label.plugin.details": "Detalhes do plugin",
+    "label.plugins": "Plugins",
+    "label.pod": "POD",
+    "label.pod.dedicated": "Pod Dedicado",
+    "label.pod.name": "Nome do Pod",
+    "label.pods": "Pods",
+    "label.polling.interval.sec": "Intervalo de Polling (em seg)",
+    "label.port": "Porta",
+    "label.port.forwarding": "Encaminhamento de Porta",
+    "label.port.forwarding.policies": "Políticas de redirecionamento de portas",
+    "label.port.range": "Range de Porta",
+    "label.portable.ip": "IP Portável",
+    "label.portable.ip.range.details": "Detalhes de Range de IP Portáveis",
+    "label.portable.ip.ranges": "Faixa de endereços IPs Portável",
+    "label.portable.ips": "IPs Portáveis",
+    "label.powerstate": "Power State",
+    "label.prev": "Prev",
+    "label.previous": "Anterior",
+    "label.primary.allocated": "Alocação do Storage Primário",
+    "label.primary.network": "Rede Primária",
+    "label.primary.storage": "Storage Primário",
+    "label.primary.storage.count": "Pools de Storage Primários",
+    "label.primary.storage.limits": "Limites do Storage Primário (GiB)",
+    "label.primary.used": "Uso do Storage Primário",
+    "label.private.Gateway": "Gateway privado",
+    "label.private.interface": "Interface Privada",
+    "label.private.ip": "Endereço IP Privado",
+    "label.private.ip.range": "Range de IP Privado",
+    "label.private.ips": "IPs Privados",
+    "label.private.key": "Chave privada",
+    "label.private.network": "Rede Privada",
+    "label.private.port": "Porta Privada",
+    "label.private.zone": "Zona Privada",
+    "label.privatekey": "PKCS#8 Private Key",
+    "label.profile": "Perfil",
+    "label.project": "Projeto",
+    "label.project.dashboard": "Dashboard do Projeto",
+    "label.project.id": "ID de Projeto",
+    "label.project.invite": "Convidar para o projeto",
+    "label.project.name": "Nome de projeto",
+    "label.project.view": "Visão de Projeto",
+    "label.projects": "Projetos",
+    "label.protocol": "Protocolo",
+    "label.protocol.number": "Número do Protocolo",
+    "label.provider": "Provedor",
+    "label.providers": "Providers",
+    "label.public": "Público",
+    "label.public.interface": "Interface Pública",
+    "label.public.ip": "Endereço IP Público",
+    "label.public.ips": "IPs Públicos",
+    "label.public.key": "Chave pública",
+    "label.public.lb": "LB público",
+    "label.public.load.balancer.provider": "Provedor Público de Balanceamento de Carga",
+    "label.public.network": "Rede Pública",
+    "label.public.port": "Porta Pública",
+    "label.public.traffic": "Tráfego Público",
+    "label.public.traffic.vswitch.name": "Nome do vSwitch de Tráfego Público",
+    "label.public.traffic.vswitch.type": "Tipo de vSwitch de Tráfego Público",
+    "label.public.zone": "Zona Pública",
+    "label.purpose": "Propósito",
+    "label.qos.type": "Tipo de QoS",
+    "label.quickview": "Visualização rápida",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Tempo Silencioso (em seg)",
+    "label.quota.add.credits": "Adicionar Cru00e9ditos",
+    "label.quota.balance": "Saldo",
+    "label.quota.configuration": "Configurau00e7u00e3o da Tarifa",
+    "label.quota.configure": "Configure a Cota",
+    "label.quota.credit": "Cru00e9dito",
+    "label.quota.credits": "Cru00e9ditos",
+    "label.quota.date": "Data",
+    "label.quota.dates": "Atualizar Data",
+    "label.quota.description": "Descriu00e7u00e3o",
+    "label.quota.email.body": "Corpo do Email",
+    "label.quota.email.lastupdated": "u00daltima atualizau00e7u00e3o",
+    "label.quota.email.subject": "Assunto",
+    "label.quota.email.template": "Template de Email",
+    "label.quota.enddate": "Data de Fim",
+    "label.quota.endquota": "Fim",
+    "label.quota.enforcequota": "Bloquear Conta pu00f3s Limite",
+    "label.quota.fullsummary": "Todas as Contas",
+    "label.quota.minbalance": "Saldo Mu00ednimo",
+    "label.quota.remove": "Remover Cota",
+    "label.quota.startdate": "Data de Inu00edcio",
+    "label.quota.startquota": "Inu00edcio",
+    "label.quota.state": "Estado",
+    "label.quota.statement": "Demonstrativo",
+    "label.quota.statement.balance": "Saldo",
+    "label.quota.statement.bydates": "Demonstrativo",
+    "label.quota.statement.quota": "Utilizau00e7u00e3o",
+    "label.quota.statement.tariff": "Tarifa",
+    "label.quota.summary": "Sumu00e1rio",
+    "label.quota.tariff": "Tarifa",
+    "label.quota.tariff.edit": "Editar Tarifa",
+    "label.quota.tariff.effectivedate": "Data Efetiva",
+    "label.quota.tariff.value": "Valor da Tarifa",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Uso Total",
+    "label.quota.type.name": "Tipo",
+    "label.quota.type.unit": "Unidade",
+    "label.quota.usage": "Consumo da Cota",
+    "label.quota.value": "Valor",
+    "label.rbd": "RDB",
+    "label.rbd.id": "Usuário Ceph",
+    "label.rbd.monitor": "Monitor Ceph",
+    "label.rbd.pool": "Pool Ceph",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "Reiniciar",
+    "label.recent.errors": "Erros Recentes",
+    "label.recover.vm": "Recuperar VM",
+    "label.redundant.router": "Roteador Redundantee",
+    "label.redundant.router.capability": "Recurso de roteador redundante",
+    "label.redundant.state": "Estado redundante",
+    "label.redundant.vpc": "VPC Redundante",
+    "label.refresh": "Atualizar",
+    "label.refresh.blades": "Atualizar Lâminas",
+    "label.region": "Região",
+    "label.region.details": "Detalhes da região",
+    "label.regionlevelvpc": "VPC a Nível de Região",
+    "label.reinstall.vm": "Reinstalar VM",
+    "label.related": "Relacionado",
+    "label.release.account": "Liberar de Conta",
+    "label.release.account.lowercase": "LIberar de conta",
+    "label.release.dedicated.cluster": "Libera Cluster Dedicado",
+    "label.release.dedicated.host": "Libera Host Dedicado",
+    "label.release.dedicated.pod": "LIberar Pod Dedicado",
+    "label.release.dedicated.vlan.range": "Liberar range de VLAN dedicado",
+    "label.release.dedicated.zone": "Liberar Zona Dedicada",
+    "label.remind.later": "Me lembre depois",
+    "label.remove.ACL": "Remove ACL",
+    "label.remove.egress.rule": "Remover regra egress",
+    "label.remove.from.load.balancer": "Removendo Instância do balanceador de carga",
+    "label.remove.ingress.rule": "Remover regra ingress",
+    "label.remove.ip.range": "Remover range de IP",
+    "label.remove.ldap": "Remover LDAP",
+    "label.remove.network.offering": "Remove oferta de rede",
+    "label.remove.pf": "Remover regra de redirecionamento de porta",
+    "label.remove.project.account": "Remover conta de projeto",
+    "label.remove.region": "Remover Região",
+    "label.remove.rule": "Remover regra",
+    "label.remove.ssh.key.pair": "Remover par de chaves SSH",
+    "label.remove.static.nat.rule": "Remover regra de NAT estático",
+    "label.remove.static.route": "Remover rota estática",
+    "label.remove.this.physical.network": "Remover esta rede física",
+    "label.remove.tier": "Remover camada",
+    "label.remove.vm.from.lb": "Remover VM da regra de balanceamento de carga",
+    "label.remove.vm.load.balancer": "Remover VM do balanceamento de carga",
+    "label.remove.vmware.datacenter": "Remover Datacenter VMware",
+    "label.remove.vpc": "remover a VPC",
+    "label.remove.vpc.offering": "Remover oferta VPC",
+    "label.removing": "Removendo",
+    "label.removing.user": "Removendo Usuário",
+    "label.reource.id": "ID do Recurso",
+    "label.replace.acl": "Substituir ACL",
+    "label.replace.acl.list": "Substituir Lista ACL",
+    "label.required": "Obrigatório",
+    "label.requires.upgrade": "Requer Atualização",
+    "label.reserved.ip.range": "Faixa de IP Reservada",
+    "label.reserved.system.gateway": "Gateway de sistema reservado",
+    "label.reserved.system.ip": "IP de Sistema Reservado",
+    "label.reserved.system.netmask": "Máscara de rede reservada do sistema",
+    "label.reset.VPN.connection": "Resetar a conexão VPN",
+    "label.reset.ssh.key.pair": "Recriar par de chaves SSH",
+    "label.reset.ssh.key.pair.on.vm": "Recriar par de chaves SSH na VM",
+    "label.resetVM": "Restabelecer VM",
+    "label.resize.new.offering.id": "New Offering",
+    "label.resize.new.size": "Novo Tamanho (GB)",
+    "label.resize.shrink.ok": "Shrink OK",
+    "label.resource": "Recurso",
+    "label.resource.limit.exceeded": "Limite de Recurso Excedido",
+    "label.resource.limits": "Limite de Recursos",
+    "label.resource.name": "Nome do Recurso",
+    "label.resource.state": "Estado do Recurso",
+    "label.resources": "Recursos",
+    "label.response.timeout.in.sec": "Timeout de Resposta (em seg)",
+    "label.restart.network": "Reiniciar rede",
+    "label.restart.required": "Reiniciar obrigatório",
+    "label.restart.vpc": "reiniciar a VPC",
+    "label.restore": "Restaurar",
+    "label.retry.interval": "Intervalo de repetição",
+    "label.review": "Revisar",
+    "label.revoke.project.invite": "Revogar convite",
+    "label.role": "Função",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Certificado Root",
+    "label.root.disk.controller": "Controlador do disco Root",
+    "label.root.disk.offering": "Oferta de Disco ROOT",
+    "label.root.disk.size": "Tamanho do disco root (GB)",
+    "label.router.vm.scaled.up": "VM do Roteador Escalonada",
+    "label.routing": "Roteamento",
+    "label.routing.host": "Host de Roteamento",
+    "label.rule": "Regra",
+    "label.rule.number": "Regra Número",
+    "label.rules": "Regras",
+    "label.running.vms": "VMs Rodando",
+    "label.s3.access_key": "Chave de acesso",
+    "label.s3.bucket": "Balde",
+    "label.s3.connection_timeout": "Tempo limite de conexão",
+    "label.s3.endpoint": "Ponto de acesso",
+    "label.s3.max_error_retry": "Limite de tentativas de recuperação de erro",
+    "label.s3.nfs.path": "Caminho NFS S3",
+    "label.s3.nfs.server": "Servidor NFS S3",
+    "label.s3.secret_key": "Chave Secreta",
+    "label.s3.socket_timeout": "Tempo limite no socket",
+    "label.s3.use_https": "Use HTTPS",
+    "label.saml.enable": "Autorizar SAML SSO",
+    "label.saml.entity": "Provedor de Identidade",
+    "label.saturday": "Sábado",
+    "label.save": "Salvar",
+    "label.save.and.continue": "Salvar e continuar",
+    "label.save.changes": "Salvar alterações",
+    "label.saving.processing": "Salvando....",
+    "label.scale.up.policy": "Política de Escalonamento",
+    "label.scaledown.policy": "Política de redução",
+    "label.scaleup.policy": "Política de ampliação",
+    "label.scope": "Escopo",
+    "label.search": "Pesquisar",
+    "label.secondary.ips": "IPs secundários",
+    "label.secondary.isolated.vlan.id": "ID de VLAN Secundária Isolada",
+    "label.secondary.staging.store": "Armazenamento de Estágio Secundário",
+    "label.secondary.staging.store.details": "Detalhes do Armazenamento de Estágio Secundário",
+    "label.secondary.storage": "Storage Secundário",
+    "label.secondary.storage.count": "Pools de Storage secundários",
+    "label.secondary.storage.details": "Detalhes de armazenamento secundário",
+    "label.secondary.storage.limits": "Limites do Storage Secundário (GiB)",
+    "label.secondary.storage.vm": "VM de storage secundário",
+    "label.secondary.used": "Uso do Storage Secundário",
+    "label.secret.key": "Chave Secreta",
+    "label.security.group": "Security Group",
+    "label.security.group.name": "Nome do Security Group",
+    "label.security.groups": "Grupos de segurança",
+    "label.security.groups.enabled": "Security Groups Ativado",
+    "label.select": "Selecionar",
+    "label.select-view": "Selecionar visualização",
+    "label.select.a.template": "Selecione um template",
+    "label.select.a.zone": "Selecione uma zona",
+    "label.select.instance": "Selecionar instância",
+    "label.select.instance.to.attach.volume.to": "Escolha uma instância para conectar o volume",
+    "label.select.iso.or.template": "Selecione ISO ou template",
+    "label.select.offering": "Selecionar Oferta",
+    "label.select.project": "Selecionar Projeto",
+    "label.select.region": "Selecione Região",
+    "label.select.template": "Seleciona Template",
+    "label.select.tier": "Selecione camada",
+    "label.select.vm.for.static.nat": "Selecionar VM para NAT estático",
+    "label.sent": "Enviado",
+    "label.server": "Servidor",
+    "label.service.capabilities": "Recursos de serviços",
+    "label.service.offering": "Plano",
+    "label.service.offering.details": "Detalhes da oferta de serviço",
+    "label.service.state": "Estado do Serviço",
+    "label.services": "Serviços",
+    "label.session.expired": "Sessão Expirada",
+    "label.set.default.NIC": "Configurar para NIC padrão",
+    "label.set.up.zone.type": "Configurar tipo de zona",
+    "label.settings": "Ajustes",
+    "label.setup": "Configuração",
+    "label.setup.network": "Configurar Rede",
+    "label.setup.zone": "Configurar Zona",
+    "label.shared": "Compatilhado",
+    "label.show.advanced.settings": "Mostra ajustes avançados",
+    "label.show.ingress.rule": "Mostrar Regra de Entrada",
+    "label.shutdown.provider": "Desabilitar provider",
+    "label.simplified.chinese.keyboard": "Simplified Chinese keyboard",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Tamanho",
+    "label.skip.guide": "Eu utilizei o CloudStack antes, pular este guia",
+    "label.smb.domain": "Domínio SMB",
+    "label.smb.password": "Senha SMB",
+    "label.smb.username": "Usuário SMB",
+    "label.snapshot": "Snapshot",
+    "label.snapshot.limits": "Limites de Snapshot",
+    "label.snapshot.name": "Nome do Snapshot",
+    "label.snapshot.s": "Snapshots",
+    "label.snapshot.schedule": "Configurar Snapshot Recorrente",
+    "label.snapshots": "Snapshots",
+    "label.sockets": "Sockets",
+    "label.source.ip.address": "Endereço IP de origem",
+    "label.source.nat": "Source NAT",
+    "label.source.nat.supported": "SourceNAT Supportado",
+    "label.source.port": "Porta de origem",
+    "label.specify.IP.ranges": "Especifique range de IP",
+    "label.specify.vlan": "Especificar VLAN",
+    "label.specify.vxlan": "Especificar VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "Detalhes do SRX",
+    "label.ssh.key.pair": "Par de chaves SSH",
+    "label.ssh.key.pair.details": "Detalhes do par de chaves SSH",
+    "label.ssh.key.pairs": "Par de chaves SSH",
+    "label.standard.us.keyboard": "Standard (US) keyboard",
+    "label.start.IP": "IP do início",
+    "label.start.lb.vm": "Iniciar LB VM",
+    "label.start.port": "Porta de Início",
+    "label.start.reserved.system.IP": "Início dos IPs reservados para o sistema",
+    "label.start.vlan": "VLAN Inicial",
+    "label.start.vxlan": "VXLAN Inicial",
+    "label.state": "Estado",
+    "label.static.nat": "NAT Estático",
+    "label.static.nat.enabled": "NAT estático Habilitado",
+    "label.static.nat.to": "NAT Estático para",
+    "label.static.nat.vm.details": "Detalhes de NAT estático da VM",
+    "label.static.routes": "Rotas estáticas",
+    "label.statistics": "Estatísticas",
+    "label.status": "Estado",
+    "label.step.1": "Passo 1",
+    "label.step.1.title": "Passo 1: <strong>Selecione o Template</strong>",
+    "label.step.2": "Passo 2",
+    "label.step.2.title": "Passo 2: <strong>Plano</strong>",
+    "label.step.3": "Passo 3",
+    "label.step.3.title": "Passo 3: <strong id=\"step3_label\">Selecione o Disco Adicional</strong>",
+    "label.step.4": "Passo 4",
+    "label.step.4.title": "Passo 4: <strong>Rede</strong>",
+    "label.step.5": "Passo 5",
+    "label.step.5.title": "Passo 5: <strong>Revisar</strong>",
+    "label.stickiness": "Aderência",
+    "label.stickiness.method": "Método de Stickness",
+    "label.sticky.cookie-name": "Nome do Cookie",
+    "label.sticky.domain": "Domínio",
+    "label.sticky.expire": "Expires",
+    "label.sticky.holdtime": "Tempo de espera",
+    "label.sticky.indirect": "Indireto",
+    "label.sticky.length": "Tamanho",
+    "label.sticky.mode": "Modo",
+    "label.sticky.name": "Nome Sticky",
+    "label.sticky.nocache": "Sem Cache",
+    "label.sticky.postonly": "Apenas publicar",
+    "label.sticky.prefix": "Prefixo",
+    "label.sticky.request-learn": "Solicitar para aprender",
+    "label.sticky.tablesize": "Tamanho da Tabela",
+    "label.stop": "Parar",
+    "label.stop.lb.vm": "Pare LB VM",
+    "label.stopped.vms": "VMs Paradas",
+    "label.storage": "Storage",
+    "label.storage.pool": "Pool de Armazanamento",
+    "label.storage.tags": "Tags de Storage",
+    "label.storage.traffic": "Tráfego do Storage",
+    "label.storage.type": "Tipo de Storage",
+    "label.subdomain.access": "Acesso ao subdomínio",
+    "label.submit": "Enviar",
+    "label.submitted.by": "[Enviado por: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Sucedido",
+    "label.sunday": "Domingo",
+    "label.super.cidr.for.guest.networks": "Super CIDR para redes hóspedes",
+    "label.supported.services": "Serviços Suportados",
+    "label.supported.source.NAT.type": "Tipo de Source NAT Suportado",
+    "label.supportsstrechedl2subnet": "Suporte à Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "Suspender Projeto",
+    "label.switch.type": "Tipo de Switch",
+    "label.system.capacity": "Capacidade do Sistema",
+    "label.system.offering": "Ofertas de Sistema",
+    "label.system.offering.for.router": "Oferta do Sistema para Roteador",
+    "label.system.service.offering": "System Service Offering",
+    "label.system.service.offering.details": "Detalhes da oferta de serviço de sistema",
+    "label.system.vm": "VM de Sistema",
+    "label.system.vm.details": "Detalhes do System VM",
+    "label.system.vm.scaled.up": "System VM Escalonada",
+    "label.system.vm.type": "Tipo de VM de Sistema",
+    "label.system.vms": "VM de Sistemas",
+    "label.system.wide.capacity": "Capacidade Total do Sistema",
+    "label.tag.key": "Chave",
+    "label.tag.value": "Valor",
+    "label.tagged": "Tagged",
+    "label.tags": "Tags",
+    "label.target.iqn": "Target IQN",
+    "label.task.completed": "Tarefa completa",
+    "label.template": "Template",
+    "label.template.limits": "Limites do Template",
+    "label.tftp.root.directory": "Diretório raiz do tftp",
+    "label.theme.default": "Tema Padrão",
+    "label.theme.grey": "Custom - Grey",
+    "label.theme.lightblue": "Custom - Light Blue",
+    "label.threshold": "Limiar",
+    "label.thursday": "Quinta",
+    "label.tier": "Camada",
+    "label.tier.details": "Detalhes da camada",
+    "label.time": "Time",
+    "label.time.colon": "Tempo:",
+    "label.time.zone": "Fuso Horário",
+    "label.timeout": "Timeout",
+    "label.timeout.in.second ": " Timeout (segundos)",
+    "label.timezone": "Fuso Horário",
+    "label.timezone.colon": "Fuso Horário",
+    "label.token": "Token",
+    "label.total.CPU": "CPU TOTAL",
+    "label.total.cpu": "CPU TOTAL",
+    "label.total.hosts": "Total de Hosts",
+    "label.total.memory": "Total de Memória",
+    "label.total.of.ip": "Total de Endereços IPs",
+    "label.total.of.vm": "Total VMs",
+    "label.total.storage": "Totam de Storage",
+    "label.total.virtual.routers": "Total de Roteadores Virtuais",
+    "label.total.virtual.routers.upgrade": "Total de Roteadores Virtuais que requerem atualização",
+    "label.total.vms": "Total VMs",
+    "label.traffic.label": "Etiqueta de tráfego",
+    "label.traffic.type": "Tipo de Tráfego",
+    "label.traffic.types": "Tipos de Tráfego",
+    "label.tuesday": "Terça",
+    "label.type": "Tipo",
+    "label.type.id": "Tipo do ID",
+    "label.type.lower": "tipo",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK keyboard",
+    "label.unavailable": "Indisponível",
+    "label.unhealthy.threshold": "Limiar de Insalubridade",
+    "label.unlimited": "Ilimitado",
+    "label.untagged": "Não Marcado",
+    "label.update.project.resources": "Atualizar recursos de projeto",
+    "label.update.ssl": " Atualizar Certificado SSL",
+    "label.update.ssl.cert": " Atualizar Certificado SSL",
+    "label.updating": "Atualizando",
+    "label.upgrade.required": "Atualização é necessária",
+    "label.upgrade.router.newer.template": "Atualize Roteador Para Usar Template Mais Novo",
+    "label.upload": "Enviar",
+    "label.upload.from.local": "Fazer upload local",
+    "label.upload.template.from.local": "Upload de Template Local",
+    "label.upload.volume": "Enviar o Volume",
+    "label.upload.volume.from.local": "Upload de Volume Local",
+    "label.upload.volume.from.url": "Upload de volume por URL",
+    "label.url": "URL",
+    "label.usage.interface": "Usage Interface",
+    "label.usage.sanity.result": "Resultado de Sanidade de Uso",
+    "label.usage.server": "Uso do Servidor",
+    "label.usage.type": "Uso Tipo",
+    "label.usage.unit": "Unidade",
+    "label.use.vm.ip": "Usar IP da VM:",
+    "label.use.vm.ips": "Usa IPs da VM",
+    "label.used": "Usado",
+    "label.user": "Usuário",
+    "label.user.data": "Dados de Usuário",
+    "label.user.details": "Detalhes do usuário",
+    "label.user.vm": "VM do Usuário",
+    "label.username": "Nome de usuário",
+    "label.username.lower": "nome do usuário",
+    "label.users": "Usuários",
+    "label.vSwitch.type": "Tipo do vSwitch",
+    "label.value": "Valor",
+    "label.vcdcname": "Nome do vCenter DC",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "vCenter Cluster",
+    "label.vcenter.datacenter": "vCenter Datacenter",
+    "label.vcenter.datastore": "vCenter Datastore",
+    "label.vcenter.host": "vCenter Host",
+    "label.vcenter.password": "vCenter Password",
+    "label.vcenter.username": "vCenter Username",
+    "label.vcipaddress": "Endereço IP do vCenter",
+    "label.version": "Versão",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Resuloção max",
+    "label.vgpu.max.vgpu.per.gpu": "vGPU por GPU",
+    "label.vgpu.remaining.capacity": "Capacidade restante",
+    "label.vgpu.type": "Tipo de vGPU",
+    "label.vgpu.video.ram": "RAM de vídeo",
+    "label.view": "Visualizar",
+    "label.view.all": "Visualizar tudo",
+    "label.view.console": "Visualizar Console",
+    "label.view.more": "Ver mais",
+    "label.view.secondary.ips": "Visualizar os IPs secundários",
+    "label.viewing": "Visualizar",
+    "label.virtual.appliance": "Appliance Virtual",
+    "label.virtual.appliance.details": "Detalhes de appliance virtual",
+    "label.virtual.appliances": "Appliance Virtual",
+    "label.virtual.machine": "Maquina Virtual",
+    "label.virtual.machines": "Maquinas Virtuais",
+    "label.virtual.network": "Rede Virtual",
+    "label.virtual.networking": "Rede Virtual",
+    "label.virtual.router": "Roteador Virtual",
+    "label.virtual.routers": "Roteadores Virtuais",
+    "label.virtual.routers.group.account": "Grupo de Roteadores Virtuais por conta",
+    "label.virtual.routers.group.cluster": "Grupo de Roteadores Virtuais por cluster",
+    "label.virtual.routers.group.pod": "Grupo de Roteadores Virtuais por pod",
+    "label.virtual.routers.group.zone": "Grupo de Roteadores Virtuais por Zona",
+    "label.vlan": "VLAN",
+    "label.vlan.id": "VLAN ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "Intervalo de VLAN",
+    "label.vlan.range.details": "Detalhes de range VLAN",
+    "label.vlan.ranges": "Range(s) de VLAN",
+    "label.vlan.vni.range": "Intervalo de VLAN",
+    "label.vlan.vni.ranges": "Range(s) de VLAN/VNI",
+    "label.vm.add": "Adicionar Instância",
+    "label.vm.destroy": "Apagar",
+    "label.vm.display.name": "Nome de exibição da VM",
+    "label.vm.id": "ID da VM",
+    "label.vm.ip": "Endereço IP da VM",
+    "label.vm.name": "Nome da VM",
+    "label.vm.password": "Senha para a VM é",
+    "label.vm.reboot": "Reiniciar",
+    "label.vm.start": "Início",
+    "label.vm.state": "Estado da VM",
+    "label.vm.stop": "Parar",
+    "label.vmfs": "VMFS",
+    "label.vms": "VMs",
+    "label.vmsnapshot": "Snapshot da VM",
+    "label.vmsnapshot.current": "isCurrent",
+    "label.vmsnapshot.memory": "Snapshot da memória",
+    "label.vmsnapshot.parentname": "Pai",
+    "label.vmsnapshot.type": "Tipo",
+    "label.vmware.datacenter.id": "ID do datacenter VMware",
+    "label.vmware.datacenter.name": "Nome do datacenter VMware",
+    "label.vmware.datacenter.vcenter": "Vcednter do datacenter VMware",
+    "label.vmware.traffic.label": "Etiqueta de tráfego VMware",
+    "label.vnet": "VLAN",
+    "label.vnet.id": "VLAN ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "Dispositivos VNMC",
+    "label.volatile": "Volátil",
+    "label.volgroup": "Grupo de Volume",
+    "label.volume": "Disco",
+    "label.volume.details": "Detalhe do volume",
+    "label.volume.limits": "Limites de Disco",
+    "label.volume.migrated": "Volume migrado",
+    "label.volume.name": "Nome do Disco",
+    "label.volumes": "Discos",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Roteador VPC Distribuido",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "Oferta VPC",
+    "label.vpc.offering.details": "Detalhes da oferta VPC",
+    "label.vpc.router.details": "Detalhes do roteador da VPC",
+    "label.vpc.supportsregionlevelvpc": "Suporta VPC em Nível de Região",
+    "label.vpc.virtual.router": "Roteador Virtual VPC",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "Gateway de VPN de usuário",
+    "label.vpn.force.encapsulation": "Forçar encapsulamento UDP de pacotes ESP",
+    "label.vsmctrlvlanid": "Control VLAN ID",
+    "label.vsmpktvlanid": "Packet VLAN ID",
+    "label.vsmstoragevlanid": "Storage VLAN ID",
+    "label.vsphere.managed": "vSphere Managed",
+    "label.vswitch.name": "Nome do vSwitch",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "Intervalo de VXLAN",
+    "label.waiting": "Aguardando",
+    "label.warn": "Avisar",
+    "label.warn.upper": "AVISO",
+    "label.warning": "Atenção",
+    "label.wednesday": "Quarta-Feira",
+    "label.weekly": "Semanal",
+    "label.welcome": "Bem-Vindo",
+    "label.welcome.cloud.console": "Painel de Controle",
+    "label.what.is.cloudstack": "O que é o CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Versão original do XS é 6.1+",
+    "label.xenserver.traffic.label": "Etiqueta de tráfego XenServer",
+    "label.yes": "Sim",
+    "label.zone": "Zona",
+    "label.zone.dedicated": "Zona Dedicada",
+    "label.zone.details": "Detalhes de zona",
+    "label.zone.id": "ID da Zona",
+    "label.zone.lower": "Zona",
+    "label.zone.name": "Nome da zona",
+    "label.zone.step.1.title": "Passo 1: <strong>Selecionar a Rede</strong>",
+    "label.zone.step.2.title": "Passo 2: <strong>Adicionar a Zona</strong>",
+    "label.zone.step.3.title": "Passo 3: <strong>Adicionar o POD</strong>",
+    "label.zone.step.4.title": "Passo 4: <strong>Adicionar um Intervalo de IP</strong>",
+    "label.zone.type": "Tipo de Zona",
+    "label.zone.wide": "Zone-Wide",
+    "label.zoneWizard.trafficType.guest": "Hóspede: tráfego entre máquinas virtuais de usuários finais",
+    "label.zoneWizard.trafficType.management": "Gerência: Tráfego entre recursos internos do CloudStack incluindo quaisquer componentes que se comunicam com o servidor de gerenciamento tais como hosts e máquinas virtuais de sistema do CloudStack",
+    "label.zoneWizard.trafficType.public": "Público: tráfego entre a internet e máquinas virtuais na nuvem.",
+    "label.zoneWizard.trafficType.storage": "Storage: tráfego entre servidores de storage primária e secundária, tais como templates de máquinas virtuais e snapshots",
+    "label.zones": "Zonas",
+    "managed.state": "Status do Gerenciamento",
+    "message.XSTools61plus.update.failed": "A atualização do campo Original XS Version is 6.1+ falhou. Erro:",
+    "message.Zone.creation.complete": "Criação de zona completa",
+    "message.acquire.ip.nic": "Por favor, confirme que você deseja adquirir um novo IP secundário para esta Interface de Rede.</br>NOTA: Você precisa configurar manualmente o novo IP secundário dentro da maquinas virtual.",
+    "message.acquire.new.ip": "Por favor confirme que você gostaria de adquirir um novo IP para esta rede.",
+    "message.acquire.new.ip.vpc": "Por favor confirme que você gostaria de adquirir um novo IP para esta VPC.",
+    "message.acquire.public.ip": "Selecione a zona de onde você deseja adquirir o novo IP",
+    "message.action.cancel.maintenance": "A Manutenção do seu HOST foi cancelada com sucesso",
+    "message.action.cancel.maintenance.mode": "Confirme que você deseja cancelar esta Manutenção",
+    "message.action.change.service.warning.for.instance": "Sua instância deve ser desligada antes de tentar alterar a oferta de serviços utilizada.",
+    "message.action.change.service.warning.for.router": "O roteador precisa ser desligado antes de trocar o plano/tamanho.",
+    "message.action.delete.ISO": "Confirme que você deseja excluir esta ISO",
+    "message.action.delete.ISO.for.all.zones": "Esta ISO é usada por todas as Zonas. Confirme se você deseja excluir a ISO de todas as Zonas",
+    "message.action.delete.cluster": "Confirme que você deseja excluir este HOST",
+    "message.action.delete.disk.offering": "Confirme que você deseja excluir esta oferta de disco",
+    "message.action.delete.domain": "Confirme que você deseja excluir este Domínio",
+    "message.action.delete.external.firewall": "Confirme que você gostaria de remover este Firewall externo. Aviso: Se você Está planejando adicionar novamente este mesmo Firewall, é necessário apagar os contadores do dispositivo.",
+    "message.action.delete.external.load.balancer": "Confirme que você gostaria de remover este Load Balancer Externo. Aviso: Se você Está planejando adicionar novamente este mesmo Load Balancer, é necessário apagar os contadores do dispositivo.",
+    "message.action.delete.ingress.rule": "Confirme que você deseja excluir esta regra de entrada.",
+    "message.action.delete.network": "Confirme que você deseja remover esta rede.",
+    "message.action.delete.nexusVswitch": "Por favor confirme que voc� deseja remover este nexusVswitch.",
+    "message.action.delete.nic": "Por favor, confirme que deseja remover esta Interface de Rede, esta ação também irá remover a rede associada à VM.",
+    "message.action.delete.physical.network": "Por favor confirme que você deseja deletar esta rede física",
+    "message.action.delete.pod": "Confirme que você deseja remover este POD.",
+    "message.action.delete.primary.storage": "Confirme que você deseja remover este Storage Primário.",
+    "message.action.delete.secondary.storage": "Confirme que você deseja remover este Storage Secundário.",
+    "message.action.delete.security.group": "Confirme que você deseja remover este Security Group.",
+    "message.action.delete.service.offering": "Confirme que você deseja remover este Plano.",
+    "message.action.delete.snapshot": "Confirme que você deseja remover este Snapshot.",
+    "message.action.delete.system.service.offering": "Por favor confirme que você deseja deletar esta oferta de serviço de sistema.",
+    "message.action.delete.template": "Confirme que você deseja remover este Template.",
+    "message.action.delete.template.for.all.zones": "Este Template é usado por todas as zonas. Confirme que você deseja remover o Template de todas as zonas.",
+    "message.action.delete.volume": "Confirme que você deseja remover este Disco.",
+    "message.action.delete.zone": "Confirme que você deseja remover esta Zona.",
+    "message.action.destroy.instance": "Por favor, confirme que você deseja excluir esta Instância.",
+    "message.action.destroy.systemvm": "Confirme que você deseja excluir esta VM de Sistema.",
+    "message.action.disable.cluster": "Confirma a desativação do cluster.",
+    "message.action.disable.nexusVswitch": "Por favor confirme que voc� deseja desabilitar este nexusVswitch",
+    "message.action.disable.physical.network": "Por favor confirme que você deseja desabilitar esta rede física.",
+    "message.action.disable.pod": "Confirma a desativação do POD.",
+    "message.action.disable.static.NAT": "Confirme que você deseja desativar o NAT Estático.",
+    "message.action.disable.zone": "Confirma a desativação da zona.",
+    "message.action.download.iso": "Por favor confirme que você deseja baixar esta ISO.",
+    "message.action.download.template": "Por favor confirme que você deseja baixar este template.",
+    "message.action.downloading.template": "Baixando template",
+    "message.action.enable.cluster": "Confirma a ativação do cluster.",
+    "message.action.enable.maintenance": "O Host foi preparado com sucesso para Manutenção. Este processo poderá levar alguns minutos ou mais dependendo do número de VMs hospedadas neste Host.",
+    "message.action.enable.nexusVswitch": "Por favor confirme que voc� deseja habilitar este nexusVswitch.",
+    "message.action.enable.physical.network": "Por favor confirme que você deseja habilitar esta rede física.",
+    "message.action.enable.pod": "Confirma a ativação do POD.",
+    "message.action.enable.zone": "Confirma a ativação da zona.",
+    "message.action.expunge.instance": "Por favor, confirme que você deseja eliminar esta instância.",
+    "message.action.force.reconnect": "O procedimento de reconexão forçada foi preparado com sucesso. Este processo poderá levar alguns minutos.",
+    "message.action.host.enable.maintenance.mode": "Ativar o modo de Manutenção irá causar o live migration de todas as Instâncias hospedadas neste Host para o próximo disponível.",
+    "message.action.instance.reset.password": "Por favor confirme que você deseja alterar a senha de ROOT para está máquina virtual.",
+    "message.action.manage.cluster": "Confirma a vinculação do cluster.",
+    "message.action.primarystorage.enable.maintenance.mode": "Aviso: Colocar o Storage primário em modo de Manutenção irá causar a parada de todas as VMs hospedadas nesta unidade. Deseja continuar?",
+    "message.action.reboot.instance": "Por favor, confirme que você deseja reiniciar esta instância.",
+    "message.action.reboot.router": "Confirme que voc� deseja reiniciar este roteador.",
+    "message.action.reboot.systemvm": "Confirme que você deseja reiniciar esta VM de sistema.",
+    "message.action.release.ip": "Confirme que você deseja liberar este IP.",
+    "message.action.remove.host": "Favor confirmar que você deseja remover este host.",
+    "message.action.reset.password.off": "Sua Instância não suporta esta funcionalidade.",
+    "message.action.reset.password.warning": "Para recuperar a senha é necessário parar a Instância.",
+    "message.action.restore.instance": "Por favor, confirme que você deseja restaurar esta Instância.",
+    "message.action.revert.snapshot": "Por favor, confirme que você deseja reverter o seu volume deste snapshot.",
+    "message.action.start.instance": "Por favor, confirme que você deseja iniciar esta Instância.",
+    "message.action.start.router": "Confirme que você deseja inciar este roteador.",
+    "message.action.start.systemvm": "Confirme que você deseja iniciar esta VM de sistema.",
+    "message.action.stop.instance": "Por favor, confirme que você deseja parar esta instância.",
+    "message.action.stop.router": "Confirme que voc� deseja parar este roteador.",
+    "message.action.stop.systemvm": "Confirme que você deseja parar esta VM de Sistema.",
+    "message.action.take.snapshot": "Por favor confirme que você deseja criar um snapshot deste volume.",
+    "message.action.unmanage.cluster": "Confirma a desvinculação do cluster.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Por favor, confirme que você deseja excluir este snapshot da VM.",
+    "message.action.vmsnapshot.revert": "Reverter snapshot da VM",
+    "message.activate.project": "Você tem certeza que deseja ativar este projeto ?",
+    "message.add.VPN.gateway": "Favor confirmar que você deseja adicionar um gateway de VPN",
+    "message.add.cluster": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Add a hypervisor managed cluster for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Especifique o seguintes parâmetros para adicionar uma nova oferta de disco.",
+    "message.add.domain": "Por favor especifique o subdomínio que você deseja criar neste domínio",
+    "message.add.firewall": "Adicionar Firewall à  zona.",
+    "message.add.guest.network": "Por favor confirme que você gostaria de adicionar uma rede guest.",
+    "message.add.host": "Especifique os seguintes parâmetros para adicionar um novo host.",
+    "message.add.ip.range": "Add an IP range to public network in zone",
+    "message.add.ip.range.direct.network": "Add an IP range to direct network <b><span id=\"directnetwork_name\"></span></b> in zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Add an IP range to pod: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Add a load balancer to zone",
+    "message.add.load.balancer.under.ip": "A regra do balanceador de carga foi adicionada para o IP:",
+    "message.add.network": "Add a new network for zone: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Favor especificar a informação para adicionar um novo gateway a esta VPC.",
+    "message.add.pod": "Add a new pod for zone <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Cada zona deve conter um ou mais pods e iremos adicionar o primeiro pod agora. Um pod contém hosts e servidores de storage primário que serão adicionados em uma etapa posterior. Inicialmente, configure um intervalo de endereços IP reservados para o tráfego de gerenciamento interno do CloudStack. A faixa de IP reservados devem ser únicos para cada zona na nuvem.",
+    "message.add.primary": "Especifique os seguintes parâmetros para adicionar um novo Storage primário.",
+    "message.add.primary.storage": "Adicionar novo Storage primário à zona <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Por favor, especifique as informações necessárias para adicionar uma nova região.",
+    "message.add.secondary.storage": "Add a new storage for zone <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Por favor preencha os dados abaixo para adicionar uma nova oferta de computação.",
+    "message.add.system.service.offering": "Por favor preencha os dados abaixo para adicionar uma nova oferta de serviço de sistema.",
+    "message.add.template": "Entre com os dados para criar um novo template.",
+    "message.add.volume": "Entre com os dados para criar um novo disco.",
+    "message.added.new.nuage.vsp.controller": "Adicionada nova Controladora Nuage Vsp",
+    "message.added.vpc.offering": "Adicionada oferta VPC",
+    "message.adding.Netscaler.device": "Adicionando dispositivo Nescaler",
+    "message.adding.Netscaler.provider": "Adicionando Netscaler provider",
+    "message.adding.host": "Adicionando host",
+    "message.additional.networks.desc": "Por favor, selecione a(s) rede(s) adicionais que sua instância virtual estará conectada.",
+    "message.admin.guide.read": "Para VMs baseadas em VMware, por favor leia a sessão sobre escalonamento dinâmico no guia do administrador antes de escalonar. Você gostaria de continuar?,",
+    "message.advanced.mode.desc": "Escolhe este modelo de rede se deseja ter habilitar o suporte a VLAN. Este modelo permite maior flexibilidade ao administrador ao permitir ofertas de rede customizada, firewall, vpn ou load balancer bem como acesso via rede virtual ou acesso direto.",
+    "message.advanced.security.group": "Escolha esta opção se desejar utilizar Security Groups para isolamento das VMs guest.",
+    "message.advanced.virtual": "Escolha esta opção se desejar utilizar VLANs para isolamento das VMs guest.",
+    "message.after.enable.s3": "Storage secundária fornecida por S3 configurada. Nota: ao deixar esta página, você não será capaz de reconfigurar S3 novamente.",
+    "message.after.enable.swift": "Swift Configurado. Nota: Após deixar esta página, você não será capaz de reconfigurar o Swift novamente.",
+    "message.alert.state.detected": "Alerta de estado detectado",
+    "message.allow.vpn.access": "Entre com nome de Usuário e senha do Usuário que terá acesso VPN.",
+    "message.apply.snapshot.policy": "Você atualizou com sucesso sua política de Snapshot.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Por favor, confirme que você deseja conectar o ISO à esta instância virtual.",
+    "message.attach.volume": "Preencha os seguintes dados para conectar o novo disco. Se você Está conectando um disco a uma maquina virtual Windows, será necessário reiniciar a Instância para visualizar o novo disco.",
+    "message.basic.mode.desc": "Escolha este modelo de rede se você <b>*<u>não</u>*</b> quer suporte a VLAN. Toda Instância criada neste modelo de rede estará ligado diretamente a um IP da rede e será usado Security Groups para prover segurança e segregação.",
+    "message.change.ipaddress": "Por favor, confirme que você gostaria de mudar o endereço IP da NIC em VM.",
+    "message.change.offering.confirm": "Por favor, confirme que você deseja mudar a oferta de serviço desta instância virtual.",
+    "message.change.password": "Por favor, troque sua senha.",
+    "message.cluster.dedicated": "Cluster Dedicado",
+    "message.cluster.dedication.released": "Cluster dedicado liberado",
+    "message.configure.all.traffic.types": "Você tem múltiplas redes físicas; favor configurar etiquetas para cada tipo de tráfego clicando no botão Edit.",
+    "message.configure.firewall.rules.allow.traffic": "Configure as regras para permitir o Tráfego",
+    "message.configure.firewall.rules.block.traffic": "Configurar as regras para bloquear o Tráfego",
+    "message.configure.ldap": "Por favor, confirme que você deseja configurar o LDAP.",
+    "message.configuring.guest.traffic": "Configurando tráfego do guest",
+    "message.configuring.physical.networks": "Configurando redes físicas",
+    "message.configuring.public.traffic": "Configurando tráfego público",
+    "message.configuring.storage.traffic": "Configurando tráfego de storage",
+    "message.confirm.action.force.reconnect": "Por favor confirme que você deseja forçar a reconexão com este host.",
+    "message.confirm.add.vnmc.provider": "Por favor confirme que você gostaria de adicionar este provedor VNMC.",
+    "message.confirm.archive.alert": "Por favor confirme que você deseja arquivar este alerta.",
+    "message.confirm.archive.event": "Por favor confirme que você deseja arquivar este evento",
+    "message.confirm.archive.selected.alerts": "Por favor confirme que você deseja arquivar os alertas selecionados",
+    "message.confirm.archive.selected.events": "Por favor confirme que você deseja arquivar os eventos selecionados",
+    "message.confirm.attach.disk": "Você tem certeza que deseja conectar este disco?",
+    "message.confirm.create.volume": "Você tem certeza que deseja criar o volume?",
+    "message.confirm.current.guest.CIDR.unchanged": "Gostaria de manter o CIDR da rede convidado inalterado?",
+    "message.confirm.dedicate.cluster.domain.account": "Você realmente quer dedicar este cluster ao domínio/conta?",
+    "message.confirm.dedicate.host.domain.account": "Você realmente quer dedicar este host ao domínio/conta?",
+    "message.confirm.dedicate.pod.domain.account": "Você realmente quer dedicar este pod ao domínio/conta?",
+    "message.confirm.dedicate.zone": "Você realmente quer dedicar esta zona ao domínio/conta?",
+    "message.confirm.delete.BigSwitchBcf": "Por favor, confirme que você deseja deletar este BigSwitch BCF Controller",
+    "message.confirm.delete.BrocadeVcs": "Por favor confirme que você deseja remover o Brocade Vcs Switch",
+    "message.confirm.delete.F5": "Por favor confirme que você deseja remover o F5",
+    "message.confirm.delete.NetScaler": "Por favor confirme que você deseja remover o NetScaler",
+    "message.confirm.delete.NuageVsp": "Por favor confirme que você deseja remover o",
+    "message.confirm.delete.PA": "Por favor, confirme que você deseja remover Palo Alto",
+    "message.confirm.delete.SRX": "Por favor confirme que você deseja remover o SRX",
+    "message.confirm.delete.acl.list": "Você tem certeza que deseja apagar esta lista ACL?",
+    "message.confirm.delete.alert": "Você tem certeza que deseja apagar este alerta?",
+    "message.confirm.delete.baremetal.rack.configuration": "Por favor, confirme que você deseja remover a Configuração de Rack de Baremetal",
+    "message.confirm.delete.ciscoASA1000v": "Favor confirmar que você deseja apagar este CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Por favor confirme que você deseja apagar este recurso CiscoVNMC",
+    "message.confirm.delete.internal.lb": "Por favor confirme que você deseja remover este LB interno",
+    "message.confirm.delete.secondary.staging.store": "Por favor confirme que deseja apagar Armazenamento de Estágio Secundário",
+    "message.confirm.delete.ucs.manager": "Confirme se você deseja excluir o Gerente UCS.",
+    "message.confirm.destroy.router": "Por favor confirme que você gostaria de destruir este roteador",
+    "message.confirm.disable.host": "Favor confirmar que você deseja desabilitar este host.",
+    "message.confirm.disable.network.offering": "Você tem certeza que deseja deshabilitar esta oferta de rede?",
+    "message.confirm.disable.provider": "Por favor confirme que você gostaria de desabilitar este provider",
+    "message.confirm.disable.vnmc.provider": "Por favor confirme que você gostaria de desabilitar este provedor VNMC.",
+    "message.confirm.disable.vpc.offering": "Você tem certeza que deseja desabilitar esta oferta de VPC?",
+    "message.confirm.enable.host": "Por favor confirme que você deseja habilitar este host.",
+    "message.confirm.enable.network.offering": "Você tem certeza que deseja habilitar esta oferta de rede?",
+    "message.confirm.enable.provider": "Por favor confirme que você gostaria de habilitar este provider",
+    "message.confirm.enable.vnmc.provider": "Por favor confirme que você gostaria de habilitar este provedor VNMC.",
+    "message.confirm.enable.vpc.offering": "Você tem certeza que deseja habilitar esta oferta de VPC?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Por favor confirme que você deseja entrar neste projeto",
+    "message.confirm.migrate.volume": "Você quer migrar este volume?",
+    "message.confirm.refresh.blades": "Por favor confirme que você deseja renovar as lâminas.",
+    "message.confirm.release.dedicate.vlan.range": "Confirme que você deseja liberar esta faixa de VLAN dedicada.",
+    "message.confirm.release.dedicated.cluster": "Você deseja liberar este cluster dedicado?",
+    "message.confirm.release.dedicated.host": "Você deseja liberar esta host dedicado?",
+    "message.confirm.release.dedicated.pod": "Você deseja liberar esta pod dedicado?",
+    "message.confirm.release.dedicated.zone": "Você deseja liberar esta zona dedicada?",
+    "message.confirm.remove.IP.range": "Por favor confirme que você deseja remover este range de IP.",
+    "message.confirm.remove.event": "Você tem certeza que deseja remover este evento?",
+    "message.confirm.remove.load.balancer": "Por favor, confirme que você quer remover a VM do Balanceador de Carga",
+    "message.confirm.remove.network.offering": "Você tem certeza que deseja remover esta oferta de rede?",
+    "message.confirm.remove.selected.alerts": "Por favor confirme que você deseja remover os alertas selecionados",
+    "message.confirm.remove.selected.events": "Por favor confirme que você deseja remover os eventos selecionados",
+    "message.confirm.remove.vmware.datacenter": "Por favor, confirme que você quer remover este VMware datacenter",
+    "message.confirm.remove.vpc.offering": "Você tem certeza que deseja remover esta oferta de VPC?",
+    "message.confirm.replace.acl.new.one": "Você deseja substituir a ACL com uma nova?",
+    "message.confirm.scale.up.router.vm": "Você realmente quer escalonar a VM do Roteador?",
+    "message.confirm.scale.up.system.vm": "Você realmente quer escalonar a VM do sistema?",
+    "message.confirm.shutdown.provider": "Por favor confirme que você deseja desligar este provider",
+    "message.confirm.start.lb.vm": "Confirme que você deseja iniciar esta LB VM",
+    "message.confirm.stop.lb.vm": "Confirme que você deseja parar esta LB VM",
+    "message.confirm.upgrade.router.newer.template": "Por favor confirme que você deseja atualizar o roteador para usar template mais recente.",
+    "message.confirm.upgrade.routers.account.newtemplate": "Por favor confirme que você deseja atualizar todos os roteadores desta conta para o template mais novo.",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Por favor confirme que você deseja atualizar todos os roteadores deste cluster para o template mais novo.",
+    "message.confirm.upgrade.routers.newtemplate": "Por favor confirme que você deseja atualizar todos os roteadores desta zona para o template mais novo.",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Por favor confirme que você deseja atualizar todos os roteadores neste pod para o template mais novo.",
+    "message.copy.iso.confirm": "Confirme se você deseja copiar a ISO para",
+    "message.copy.template": "Copiar template <b id=\"copy_template_name_text\">XXX</b> da zona <b id=\"copy_template_source_zone_text\"></b> para",
+    "message.copy.template.confirm": "Você tem certeza que deseja copiar o template ?",
+    "message.create.template": "Você tem certeza que deseja criar um template ?",
+    "message.create.template.vm": "Criar VM do template <b id=\"p_name\"></b>",
+    "message.create.template.volume": "Especifique as seguintes informações antes de criar o template a partir do disco: <b><span id=\"volume_name\"></span></b>. A criação de um template a partir de um disco pode levar alguns minutos ou mais dependendo do tamnho do disco.",
+    "message.creating.cluster": "Criando cluster",
+    "message.creating.guest.network": "Criando rede guest",
+    "message.creating.physical.networks": "Criando redes fisicas",
+    "message.creating.pod": "Criando pod",
+    "message.creating.primary.storage": "Criando storage primário",
+    "message.creating.secondary.storage": "Criando storage secundário",
+    "message.creating.systemVM": "Criando VMs do sistema (isso pode levar algum tempo)",
+    "message.creating.zone": "Criando zona.",
+    "message.decline.invitation": "Você tem certeza que quer rejeitar este convite de projeto ?",
+    "message.dedicate.zone": "Zona dedicada",
+    "message.dedicated.zone.released": "Zona dedicada lioberada",
+    "message.delete.VPN.connection": "Favor confirmar que você deseja deletar esta conexão VPN",
+    "message.delete.VPN.customer.gateway": "Favor confirmar que você deseja deletar este gateway de VPN de usuário",
+    "message.delete.VPN.gateway": "Favor confirmar que você deseja deletar este gateway de VPN",
+    "message.delete.account": "Confirme se você deseja excluir esta conta.",
+    "message.delete.affinity.group": "Por favor, confirme que você deseja remover este grupo de afinidade",
+    "message.delete.gateway": "Favor confirmar que você deseja deleta o gateway",
+    "message.delete.project": "Você tem certeza que deseja deletar este projeto ?",
+    "message.delete.user": "Por favor confirme que você deseja deletar este usuário.",
+    "message.desc.add.new.lb.sticky.rule": "Adicionar nova regra fixa de LB",
+    "message.desc.advanced.zone": "Para topologias de rede mais sofisticadas. Este modelo fornece maior flexibilidade na definição de redes de clientes e fornece ofertas de rede personalizadas, tais como firewall, VPN ou de balanceamento de carga.",
+    "message.desc.basic.zone": "Fornece uma única rede onde em cada instância de VM é atribuído um IP diretamente na rede. O isolamento Guest podem ser fornecidos através de camada-3 da rede com grupos de segurança (filtragem da fonte de endereços IP).",
+    "message.desc.cluster": "Cada pod deve conter um ou mais clusters, e iremos adicionar o primeiro cluster agora. Um cluster fornece uma maneira de agrupamento de hosts. Os hosts de um cluster têm hardware idêntico, executam o mesmo hypervisor, estão na mesma sub-rede e acessam o mesmo storage compartilhado. Cada cluster é constituído por um ou mais hosts e um ou mais servidores de storage primário.",
+    "message.desc.create.ssh.key.pair": "Por favor, preencha os seguintes dados para criar ou registar um par de chaves ssh.<br><br>(1) Se a chave pública está definida, CloudStack irá registrar a chave pública. Você pode usá-la através de sua chave privada.<br><br>(2) Se a chave pública não está definida, CloudStack irá criar um novo par de chaves SSH. Neste caso, copie e salve a chave privada. CloudStack não irá mantê-la.<br>",
+    "message.desc.created.ssh.key.pair": "Par de chaves SSH criado",
+    "message.desc.host": "Cada cluster deve conter pelo menos um host (computador) para as VMs guest serem executadas e iremos adicionar o primeira host agora. Para um host funcionar no CloudStack, você deve instalar um hypervisor no host, atribuir um endereço IP e garantir que o host está conectado ao servidor de gerenciamento do CloudStack.<br/><br/>Forneça o hostname ou o endereço IP do host, o nome de usuário (geralmente root) e a senha  e qualquer label que você utiliza para categorizar os hosts.",
+    "message.desc.primary.storage": "Cada cluster deve conter um ou mais servidores de storage primário e iremos adicionar o primeiro agora. Um storage primário, contém os volumes de disco para todas as VMs em execução nos hosts do cluster. Utiliza qualquer protocolo compatível com os padrões que é suportado pelo hypervisor utilizado.",
+    "message.desc.reset.ssh.key.pair": "Por favor, especifique um par de chaves SSH que você deseja adicionar a esta VM. Por favor, note que a senha de root será alterada por esta operação caso a senha esteja ativada.",
+    "message.desc.secondary.storage": "Cada zona deve ter pelo menos um NFS ou servidor de storage secundário e iremos adicionar o primeiro agora. Um storage secundários armazena templates de VM, imagens ISO e snapshots do volume de disco da VM. Esse servidor deve estar disponível para todos os hosts na zona. <br/><br/> Fornecer o endereço IP e o caminho exportados.",
+    "message.desc.zone": "Uma zona é a maior unidade organizacional no CloudStack e normalmente corresponde à um único datacenter. As Zonas disponibilizam isolamento físico e redundância. Uma zona é composta por um ou mais pods (cada um dos quais contém os hosts e servidores de storage primário) e um servidor de storage secundário que é compartilhado por todos os pods na zona.",
+    "message.detach.disk": "Você tem certeza que deseja desconectar este disco ?",
+    "message.detach.iso.confirm": "Confirme se você deseja desconectar o ISO da instância virtual.",
+    "message.disable.account": "Por favor confirme que você deseja desabilitar esta conta. Após desabilitar uma conta, todos os usuários desta conta não irão possuir mais acesso aos seus recursos da cloud.  Todas as máquinas virtuais serão automaticamente desligadas.",
+    "message.disable.snapshot.policy": "Você desativou com sucesso sua política de Snapshot.",
+    "message.disable.user": "Por favor confirme que você deseja desabilitar este usuário.",
+    "message.disable.vpn": "Você tem certeza que deseja desabilitar a VPN?",
+    "message.disable.vpn.access": "Confirme se você deseja desativar o acesso VPN.",
+    "message.disabling.network.offering": "Desabilita oferta de rede",
+    "message.disabling.vpc.offering": "Desabilitando oferta VPC",
+    "message.disallowed.characters": "Caracteres não-permitidos: <,>",
+    "message.download.ISO": "Por favor clique <a href=\"#\">00000</a> para baixar o ISO",
+    "message.download.template": "Por favor clique <a href=\"#\">00000</a> para baixar o template",
+    "message.download.volume": "Clique <a href=\"#\">00000</a> para baixar o disco",
+    "message.download.volume.confirm": "Por favor confirme que você quer baixar este volume",
+    "message.edit.account": "Editar (\"-1\" indica que não haverá limites para a quantidade de recursos criado)",
+    "message.edit.confirm": "Por favor, confirme as alterações antes de clicar em \"Salvar\".",
+    "message.edit.limits": "Especifique os limites para os seguintes recursos. \"-1\" indica sem limite para o total de recursos criados.",
+    "message.edit.traffic.type": "Favor especificar a etiqueta de tráfego que você deseja associar com este tipo de tráfego.",
+    "message.enable.account": "Confirme se você deseja ativar a conta.",
+    "message.enable.user": "Por favor confirme que você deseja habilitar este usuário.",
+    "message.enable.vpn": "Por favor confirme que você deseja acesso VPN habilitado para este endereço IP.",
+    "message.enable.vpn.access": "VPN Está desativada para este endereço IP. Gostaria de ativar o acesso VPN?",
+    "message.enabled.vpn": "Seu acesso VPN Está ativado e pode ser acessado através do IP",
+    "message.enabled.vpn.ip.sec": "Sua chave IPSec (pre-shared) é",
+    "message.enabling.network.offering": "Habilitando oferta de rede",
+    "message.enabling.security.group.provider": "Habilitar provider de grupo de segurança",
+    "message.enabling.vpc.offering": "Habilitando oferta VPC",
+    "message.enabling.zone": "Habilitando zona",
+    "message.enabling.zone.dots": "Habilitando Zona....",
+    "message.enter.seperated.list.multiple.cidrs": "Por favor entre a de CIDRs separadas por vírgula, se houver mais de uma",
+    "message.enter.token": "Por favor entre o token que você recebeu no e-mail privado.",
+    "message.generate.keys": "Por favor confirme que você deseja gerar novas chaves para este usuário.",
+    "message.gslb.delete.confirm": "Confirme que você deseja apagar este GSLB",
+    "message.gslb.lb.remove.confirm": "Confirme que você deseja remover o balanceamento de carga deste GSLB",
+    "message.guest.traffic.in.advanced.zone": "O tráfego de rede guest é para comunicação entre máquinas virtuais do usuário final. Especifique um intervalo de IDs de VLAN para transportar o tráfego do guest para cada rede física.",
+    "message.guest.traffic.in.basic.zone": "O tráfego de rede guest é para comunicação entre máquinas virtuais do usuário final. Especifique um intervalo de endereços IP para que CloudStack possa atribuir às VMs. Certifique-se que este intervalo não se sobreponha o range de IPs reservados do sistema.",
+    "message.host.dedicated": "Host dedicado",
+    "message.host.dedication.released": "Host dedicado liberado",
+    "message.installWizard.click.retry": "Click no botão para tentar executar novamente.",
+    "message.installWizard.copy.whatIsACluster": "Um cluster provê uma maneira de agrupar hosts. Os hosts em um cluster tem hardware idêntico, rodam o mesmo hypervisor, estão na mesma subnet, acessam o mesmo storage compartilhado. Instâncias de máquinas virtuais (VMs) podem ser migradas a quente - live migration -  de um host para outro host no mesmo cluster, sem interromper o serviço para o usuário. Um Cluster é a terceira maior unidade organizacional em uma instalação CloudStack&#8482; . Clusters estão contidos em pods e pods estão contidos em zonas.<br/><br/>O CloudStack&#8482; permite múltiplos clusters em uma mesma cloud, entretanto para a instalação básica, nós iremos precisar apenas de um cluster.",
+    "message.installWizard.copy.whatIsAHost": "Um host é um único computador. Os Hosts provêem os recursos computacionais para executar as máquinas virtuais.  Cada host possuí o software do hypervisor instalado nele para gerenciar as guest VMs (Exceto os hosts bare metal, que são um caso especial discutido no Guia Avançado de Instalação). Por exemplo, um servidor Linux com KVM habilitado,  um servidor Citrix XenServer e um servidor ESXi são hosts. Na Instalação Básica, nós utilizamos um único host rodando XenServer ou KVM.<br/><br/>O host é a menor unidade organizacional dentro de uma instalação CloudStack&#8482; . Hosts estão contidos dentro de Clusters, clusters estão contidos dentro de pods e pods estão contidos dentro de zonas.",
+    "message.installWizard.copy.whatIsAPod": "Um pod normalmente representa um único rack. Hosts no mesmo pod estão na mesma subrede.<br/><br/> Um pod é a segunda maior unidade organizacional de uma instalação CloudStack&#8482; . Pods estão contidos dentro de zonas. Cada zona, pode conter um ou mais pods; Na instalação básica, você irá ter apenas um pod na sua zona.",
+    "message.installWizard.copy.whatIsAZone": "Uma zona é a maior unidade organizacional em uma instalação CloudStack&#8482; . Uma zona tipicamente corresponde a um único datacenter, apesar de ser possível ter múltiplas zonas no mesmo datacenter. O benefício de se organizar a infra-estrutura em zonas é permitir o isolamento físico e redundância. Por exemplo, cada zona pode possuir sua própria alimentação de  energia e link de saída de internet e zonas podem estar geograficamente separadas (apesar de não ser obrigatório).",
+    "message.installWizard.copy.whatIsCloudStack": "O CloudStack&#8482 é uma plataforma de software que agrega recursos computacionais para construir uma Cloud de Infra-estrutura como Serviço (IaaS) pública, privada ou híbrida. O CloudStack&#8482 gerência a rede, o storage e os recursos computacionais que compõem a infra-estrutura de cloud. Utilize o CloudStack&#8482 para instalar, gerenciar e configurar os ambientes de cloud computing.<br/><br/>Indo além de imagens de máquinas virtuais individuais rodando em hardware commodity, CloudStack&#8482 provê uma solução  completa de software de infra-estrutura de cloud para entregar datacenters virtuais como um serviço - possuindo todos os componentes essenciais para contruir, instalar e gerenciar aplicações na cloud multi-camadas e multi-tenant. Ambas as versões open-source e premium estão disponíveis, com a versão opensource oferecendo praticamente os mesmos recursos.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "Uma infraestrutura de Cloud CloudStack; utiliza dois tipos de storage: storage primário e storage secundário. Ambos os tipos podem ser iSCSI,  NFS servers, ou disco local.<br/><br/><strong>O Storage primário</strong> está associado com um cluster, e armazena os volumes de disco de cada guest VM para todas as VMs em execução nos hosts deste cluster. O servidor de storage primário tipicamente encontra-se localizado perto dos hosts.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "O storage secundário está associado a uma zona, ele é responsável por armazenar o seguinte: <ul><li>Imagens de Templates do SO - que podem ser utilizadas para boot das VMs e podem incluir configurações adicionais, como por exemplo as aplicações instaladas</li><li>Imagens ISO - Imagens de sistema operacional que podem ser bootáveis ou não</li><li>Snapshots do volume de discos - cópias salvas dos dados de uma VM que pode ser utilizada para recuperação de dados ou criação de novos templates</ul>",
+    "message.installWizard.now.building": "Construindo sua cloud agora...",
+    "message.installWizard.tooltip.addCluster.name": "Um nome para o cluster. Este nome pode ser um nome de sua escolha e não é usado pelo CloudStack.",
+    "message.installWizard.tooltip.addHost.hostname": "O nome DNS ou endereço IP do host.",
+    "message.installWizard.tooltip.addHost.password": "Este é a senha do usuário especificado acima (da sua instalação do XenServer)",
+    "message.installWizard.tooltip.addHost.username": "Usualmente root.",
+    "message.installWizard.tooltip.addPod.name": "O nome para o pod",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Este é o range de IP na rede privada que o CloudStack utiliza para gerenciar o storage secundário das VMs e Proxy Console das VMs. Estes endereços IP são obtidos da mesma subrede dos servidores hosts.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "O gateway para os hosts neste pod.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "A máscara de rede está em uso na subrede que os guests irão utilizar.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Este é o range de IP na rede privada que o CloudStack utiliza para gerenciar o storage secundário das VMs e Proxy Console das VMs. Estes endereços IP são obtidos da mesma subrede dos servidores hosts.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "O Nome do dispositivo de storage.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(para NFS) No NFS este é o path exportado pelo servidor. Path (para SharedMountPoint). Com o KVM este é o path em cada host onde o storage primário está montado. Por exemplo, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(para NFS, iSCSI ou PreSetup) O Endereço IP ou nome DNS do dispositivo de storage.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "O endereço IP do servidor NFS hospedando o storage secundário",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "Path exportado, localizado no servidor que você especificou acima",
+    "message.installWizard.tooltip.addZone.dns1": "Estes são os servidores DNS utilizados pelas guest VMs na zona. Estes servidores DNS serão acessados pela interface de rede pública que você irá adicionar posteriormente. O endereço IP público da zona deve possuir uma rota para os servidores DNS configurados aqui.",
+    "message.installWizard.tooltip.addZone.dns2": "Estes são os servidores DNS utilizados pelas guest VMs na zona. Estes servidores DNS serão acessados pela interface de rede pública que você irá adicionar posteriormente. O endereço IP público da zona deve possuir uma rota para os servidores DNS configurados aqui.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Estes são os servidores DNS utilizados pelas VMs de sistema nesta zona. Estes servidores DNS serão acessados através da interface de rede privada das VMs de sistema. O endereço IP privado que você configurar para os pods deve possuir uma rota para os servidores DNS configurados aqui.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Estes são os servidores DNS utilizados pelas VMs de sistema nesta zona. Estes servidores DNS serão acessados através da interface de rede privada das VMs de sistema. O endereço IP privado que você configurar para os pods deve possuir uma rota para os servidores DNS configurados aqui.",
+    "message.installWizard.tooltip.addZone.name": "Um nome para a zona",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "Uma descrição da sua rede",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "O range de endereços IP que estará disponível para alocação para os guests nesta zona. Caso uma Interface de Rede seja utilizada, estes IPs devem estar no mesmo CIDR que o CIDR do pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "O gateway que os guests devem usar",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "A máscara de rede da subrede que os guests devem usar",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "O range de endereços IP que estará disponível para alocação para os guests nesta zona. Caso uma Interface de Rede seja utilizada, estes IPs devem estar no mesmo CIDR que o CIDR do pod.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Um nome para sua rede",
+    "message.instance.scaled.up.confirm": "Você realmente quer escalonar sua instância?",
+    "message.instanceWizard.noTemplates": "Você não possui nenhum template disponível; por favor adicione um template compatível e reinicie o wizard de instância.",
+    "message.ip.address.changed": "Seu endereço IP pode ter mudado; você gostaria de atualizar a listagem ? Note que neste caso o painel de detalhes irá fechar.",
+    "message.iso.desc": "Imagem de disco contendo dados ou mídia de sistema operacional bootável",
+    "message.join.project": "Você agora entrou em um projeto. Por favor troque para a visão de Projeto para visualizar o projeto.",
+    "message.launch.vm.on.private.network": "Você deseja executar a sua instância na sua própria rede privada dedicada?",
+    "message.launch.zone": "A zona está pronta para ser executada; por favor, vá para o próximo passo.",
+    "message.ldap.group.import": "Todos os usuários do grupo nome dado será importado",
+    "message.link.domain.to.ldap": "Ativar sincronização automática para este domínio em LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "Confirme se você deseja bloquear esta conta. Bloqueando a conta, todos os Usuários desta conta não estarão mais habilitados a gerenciar os recursos na nuvem. Os recursos existentes (Cloud Server) ainda poderão ser acessados.",
+    "message.migrate.instance.confirm": "Confirme o host que você deseja migrar a instância virtual.",
+    "message.migrate.instance.to.host": "Por favor confirme que você deseja migrar a instância para outro host.",
+    "message.migrate.instance.to.ps": "Por favor confirme que você deseja migrar a instância para outro storage primário.",
+    "message.migrate.router.confirm": "Por favor confirme o host que você deseja migrar o roteador para:",
+    "message.migrate.systemvm.confirm": "Por favor confirme o host para o qual você deseja migrar a VM de sistema:",
+    "message.migrate.volume": "Por favor confirme que você deseja migrar o volume para outro storage primário.",
+    "message.network.addVM.desc": "Por favor especifique a rede onde você gostaria de adicionar esta VM. Uma nova NIC será adicionada a esta rede.",
+    "message.network.addVMNIC": "Por favor confirme que você gostaria de adicionar uma nova VM NIC para esta rede.",
+    "message.network.remote.access.vpn.configuration": "A configuração de acesso remoto VPN foi gerada, mas falhou ao ser aplicada. Por favor, verifique a conectividade dos elementos de rede e depois tente novamente.",
+    "message.new.user": "Especifique abaixo para adicionar novos usuários para a conta",
+    "message.no.affinity.groups": "Você não tem nenhum grupo de afinidade. Por favor, vá para o próximo passo.",
+    "message.no.host.available": "Sem hosts disponíveis para Migração",
+    "message.no.network.support": "O hypervisor escolhido, vSphere, não possui nenhum recurso de rede adicional. Por favor, vá para o passo 5.",
+    "message.no.network.support.configuration.not.true": "Você não possui nenhuma zona com grupos de segurança habilitado. Assim sendo, não possui recursos adicionais de rede. Por favor continue para o passo 5.",
+    "message.no.projects": "Você não possui nenhum projeto.<br/>Por favor crie um novo projeto à partir da seção Projetos.",
+    "message.no.projects.adminOnly": "Você não possui nenhum projeto. <br/> Por favor solicite ao seu administrador a criação de um novo projeto.",
+    "message.number.clusters": "<h2>Clusters</h2>",
+    "message.number.hosts": "<h2>Hosts</h2>",
+    "message.number.pods": "<h2>PODs</h2>",
+    "message.number.storage": "<h2>Volumes do Storage Primário</h2>",
+    "message.number.zones": "<h2>Zonas</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "A senha foi redefinida para",
+    "message.password.of.the.vm.has.been.reset.to": "A senha da VM foi redefinida para",
+    "message.pending.projects.1": "Você possui convites de projetos pendentes:",
+    "message.pending.projects.2": "Para visualizar, por favor acesse a seção de projetos, depois selecione os convites no menu drop-down.",
+    "message.please.add.at.lease.one.traffic.range": "Por favor adicione pelo menos um range de tráfego.",
+    "message.please.confirm.remove.ssh.key.pair": "Por favor, confirme que você deseja remover este par de chaves SSH",
+    "message.please.proceed": "Por favor, vá para o próximo passo.",
+    "message.please.select.a.configuration.for.your.zone": "Por favor selecione uma configuracao para sua zona.",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Por favor selecione uma rede pública e de gerenciamento diferente antes de remover",
+    "message.please.select.networks": "Por favor selecione as redes para sua máquina virtual.",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Por favor, selecione um par de chaves SSH que você deseja que esta VM utilize:",
+    "message.please.wait.while.zone.is.being.created": "Por favor, espere enquanto sua zona está sendo criada; isto pode demorar um pouco...",
+    "message.pod.dedication.released": "Pod Dedicado liberado",
+    "message.portable.ip.delete.confirm": "Favor confirmar que você deseja apagar esta Faixa de IPs Portáveis",
+    "message.project.invite.sent": "Convite enviado para o usuário; Eles serão adicionados ao projeto após aceitarem o convite",
+    "message.public.traffic.in.advanced.zone": "O tráfego público é gerado quando as VMs na nuvem acessam a internet. Os IPs acessíveis ao público devem ser alocados para essa finalidade. Os usuários finais podem usar a interface do usuário CloudStack para adquirir esses IPs afim de implementar NAT entre a sua rede de guests e sua rede pública. <br/><br/> Forneça pelo menos um intervalo de endereços IP para o tráfego de internet.",
+    "message.public.traffic.in.basic.zone": "O tráfego público é gerado quando as VMs na nuvem acessam a Internet ou prestam serviços aos clientes através da Internet. Os IPs acessíveis ao público devem ser alocados para essa finalidade. Quando uma instância é criada, um IP a partir deste conjunto de IPs públicos serão destinados à instância, além do endereço IP guest. Um NAT estático 1-1  será criada automaticamente entre o IP público e IP guest. Os usuários finais também podem usar a interface de usuário CloudStack para adquirir IPs adicionais afim de se implementar NAT estático entre suas instâncias e o IP público.",
+    "message.question.are.you.sure.you.want.to.add": "Você tem certeza que deseja adicionar",
+    "message.read.admin.guide.scaling.up": "Por favor leia a sessão sobre escalonamento dinâmico no guia do administrador antes de escalonar.",
+    "message.recover.vm": "Por favor, confirme a recuperação desta VM.",
+    "message.redirecting.region": "Redirecionando para região...",
+    "message.reinstall.vm": "NOTA: Proceda com cuidado. Isso fará com que a máquina virtual seja re-instalada a partir  do Template. Todos os datos do disco ROOT serão perdidos. Volumes de Dados adicionais, se houver, não serão alterados.",
+    "message.remove.ldap": "Você tem certeza que deseja deletar a configuração LDAP?",
+    "message.remove.region": "Você tem certeza que deseja remover esta região deste servidor de gerenciamento?",
+    "message.remove.vpc": "Favor confirmar que você deseja remover a VPC",
+    "message.remove.vpn.access": "Confirme se você deseja remover acesso VPN do seguinte Usuário.",
+    "message.removed.ssh.key.pair": "Par de chaves SSH removido",
+    "message.reset.VPN.connection": "Favor confirmar que você deseja resetar a conexão VPN",
+    "message.reset.password.warning.notPasswordEnabled": "O template desta instância foi criado sem uma senha habilitada",
+    "message.reset.password.warning.notStopped": "Sua instância deve estar parada antes de tentar trocar sua senha atual",
+    "message.restart.mgmt.server": "Reinicie o(s) servidor(es) de gerenciamento para que a nova configuração tenha efeito.",
+    "message.restart.mgmt.usage.server": "Por favor reinicie seu servidor(es) de gerenciamento e seu servidor(es) de utilização para as mudanças entrarem em efeito.",
+    "message.restart.network": "Por favor confirme que voc� deseja reiniciar a rede",
+    "message.restart.vpc": "Favor confirmar que você deseja reiniciar a VPC",
+    "message.restart.vpc.remark": "Por favor, confirme a reinicialização do VPC <p><small><i>Observação: fazendo um VPC redundante não redundante irá forçar uma limpeza. As redes não estarão disponíveis por alguns minutos</i>.</small></p>",
+    "message.restoreVM": "Quer restaurar a VM?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(Use <strong>Ctrl-clique</strong> para selecionar todos os Security Groups)",
+    "message.select.a.zone": "A zone tipicamente corresponde a um único datacenter. Múltiplas zonas auxiliam a cloud a ser mais confiável provendo isolamento físico e redundância.",
+    "message.select.affinity.groups": "Por favor, selecione quaisquer grupos de afinidade que você deseja que esta VM pertença:",
+    "message.select.instance": "Por favor selecione uma instância.",
+    "message.select.iso": "Por favor selecione um ISO para sua nova instância virtual",
+    "message.select.item": "Por favor selecione um item.",
+    "message.select.security.groups": "Por favor selecione o(s) grupo(s) de segurança para sua nova VM",
+    "message.select.template": "Por favor selecione um template para sua nova instância virtual.",
+    "message.select.tier": "Por favor, selecione um tier",
+    "message.set.default.NIC": "Por favor confirme que você quer tornar este NIC o padrão para esta VM,",
+    "message.set.default.NIC.manual": "Por favor atualize manualmente o NIC padrão desta VM agora.",
+    "message.setup.physical.network.during.zone.creation": "Ao adicionar uma zona avançada, você precisa configurar uma ou mais redes físicas. Cada rede corresponde  à uma Interface de Rede no hypervisor. Cada rede física pode ser utilizada para transportar um ou mais tipos de tráfego, com certas restrições sobre como eles podem ser combinados. <br/> <strong> Arraste e solte um ou mais tipos de tráfego </ strong> em cada rede física.",
+    "message.setup.physical.network.during.zone.creation.basic": "Quando adicionar uma zona básica, você pode configurar uma rede física, que corresponde a uma Interface de Rede no hypervisor. A rede carrega diversos tipos de tráfego.<br/><br/>Você pode <strong>adicionar e remover</strong> outros tipos de tráfego na mesma interface de rede física.",
+    "message.setup.successful": "Cloud configurada com sucesso!",
+    "message.snapshot.schedule": "Você pode configurar Snapshots recorrentes agendados selecionando as opções disponíveis abaixo e aplicando suas políticas preferenciais",
+    "message.specifiy.tag.key.value": "Por favor especifique chave e valor da tag",
+    "message.specify.url": "Por favor especifique a URL",
+    "message.step.1.continue": "Selecione o template ou ISO para continuar",
+    "message.step.1.desc": "Por favor, selecione um template para a sua nova instância virtual. Você pode também escolher um template limpo e instalar a partir de uma imagem ISO.",
+    "message.step.2.continue": "Selecione o plano",
+    "message.step.3.continue": "Seleciona a oferta de disco",
+    "message.step.4.continue": "Selecione pelo menos uma rede para continuar",
+    "message.step.4.desc": "Selecione a rede principal que a sua instância virtual estará conectada.",
+    "message.storage.traffic": "Tráfego entre os recursos internos do CloudStack, incluindo todos os componentes que se comunicam com o servidor de gerenciamento tais como hosts e máquinas virtuais de sistema CloudStack. Por favor, configure o tráfego do storage aqui.",
+    "message.suspend.project": "Você tem certeza que deseja suspender este projeto ?",
+    "message.systems.vms.ready": "VM de Sistema prontas.",
+    "message.template.copying": "O template está sendo copiado.",
+    "message.template.desc": "Imagem de SO que pode ser utilizada para bootar VMs",
+    "message.tier.required": "Tier é obrigatório",
+    "message.tooltip.dns.1": "Endereço de um servidor DNS que será utilizado por todas as VMs da Zone. A faixa de IPs públicos para essa Zone deve possuir uma rota para o servidor configurado.",
+    "message.tooltip.dns.2": "Um servidor DNS secundário para ser utilizado pelas VMs nesta zona. Os endereços IP públicos nesta zona devem ter rota para este servidor.",
+    "message.tooltip.internal.dns.1": "Nome de um servidor DNS que será utilizado pelas VMs internas de sistema do CloudStack nesta zona. Os endereços privados dos pods devem ter uma rota para este servidor.",
+    "message.tooltip.internal.dns.2": "Nome de um servidor DNS que será utilizado pelas VMs internas de sistema do CloudStack nesta zona. Os endereços privados dos pods devem ter uma rota para este servidor.",
+    "message.tooltip.network.domain": "Um sufixo DNS que irá criar um nome de domínio customizado para a rede que é acessada pelas guest VMs.",
+    "message.tooltip.pod.name": "Um nome para este pod.",
+    "message.tooltip.reserved.system.gateway": "O gateway para os hosts neste pod.",
+    "message.tooltip.reserved.system.netmask": "O prefixo de rede que define a subrede deste pod. Utilize a notação CIDR.",
+    "message.tooltip.zone.name": "Um nome para a zona.",
+    "message.update.os.preference": "Escolha o SO de preferencia para este host. Todas Instâncias com preferencias similares serão alocadas neste host antes de tentar em outro.",
+    "message.update.resource.count": "Por favor confirme que você quer atualizar a contagem de recursos para esta conta.",
+    "message.update.ssl": "Envie o novo certificado SSL X.509 para ser atualizado em cada console proxy:",
+    "message.update.ssl.failed": "Atualização do Certificado SSL falhou",
+    "message.update.ssl.succeeded": "Atualização do Certificado SSL feita com sucesso",
+    "message.validate.URL": "Por favor entre uma URL válida.",
+    "message.validate.accept": "Por favor entre com uma extensão válida.",
+    "message.validate.creditcard": "Por favor entre um número de cartão de crédito válido.",
+    "message.validate.date": "Por favor entre com uma data válida.",
+    "message.validate.date.ISO": "Por favor entre com uma data válida (ISO).",
+    "message.validate.digits": "Por favor entre com dígitos apenas.",
+    "message.validate.email.address": "Por favor entre um email válido.",
+    "message.validate.equalto": "Por favor entre com o mesmo valor novamente.",
+    "message.validate.fieldrequired": "Este campo é obrigatório.",
+    "message.validate.fixfield": "Por favor, arrume este campo.",
+    "message.validate.instance.name": "Nomes de instâncias não podem ter mais de 63 caracteres. Somente letras ASCII a~z, A~Z, dígitos 0~9 e hífen são permitidos. Deve começar com uma letra e terminar com uma letra ou dígito.",
+    "message.validate.invalid.characters": "Caracteres inválidos encontrados, por favor corrija.",
+    "message.validate.max": "Por favor entre com um valor menor que ou igual a {0}.",
+    "message.validate.maxlength": "Por favor entre com mais de [0] caracteres.",
+    "message.validate.minlength": "Por favor entre com pelo menos [0] caracteres.",
+    "message.validate.number": "Por favor entre um número válido.",
+    "message.validate.range": "Por favor entre com um valor com valor entre [0] e [1].",
+    "message.validate.range.length": "Por favor entre com um valor com tamanho entre [0] e [1] caracteres.",
+    "message.virtual.network.desc": "Rede virtual dedicado para sua conta. O Domínio de broadcast Está na VLAN e todo acesso a internet é roteado através do virtual router.",
+    "message.vm.create.template.confirm": "Criar Template reiniciará a VM automaticamente.",
+    "message.vm.review.launch": "Por favor revise a informação abaixo e confirme que sua instância virtual está correta antes de executa-la.",
+    "message.vnmc.available.list": "VNMC não está disponível na lista de provedores.",
+    "message.vnmc.not.available.list": "VNMC não está disponível na lista de provedores.",
+    "message.volume.create.template.confirm": "Confirme se você deseja criar um template a partir deste disco. A criação do template pode levar alguns minutos ou mais dependendo do tamanho do disco.",
+    "message.waiting.for.builtin.templates.to.load": "Aguardando a carga dos templates integrados...",
+    "message.you.must.have.at.least.one.physical.network": "Você deve ter pelo menos uma rede física",
+    "message.your.cloudstack.is.ready": "Seu CLoudStack está pronto!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Criação de zona completa. Você gostaria de habilitar esta zona?",
+    "message.zone.no.network.selection": "A zona que você selecionou não possui nenhuma rede para ser escolhida.",
+    "message.zone.step.1.desc": "Seleciona o modelo de rede para a zona.",
+    "message.zone.step.2.desc": "Entre a informação a seguir para adicionar uma nova zona",
+    "message.zone.step.3.desc": "Entre a informação a seguir para adicionar um novo pod",
+    "message.zoneWizard.enable.local.storage": "ALERTA: se você habilitar storage local para esta zona, você deve fazer o seguinte, dependendo se você quiser que suas máquinas virtuais de sistema inicializem:<br/><br/>1. Se máquinas virtuais de sistema precisam ser iniciadas em storage primária, storage primária precisa ser adicionada à zona após a criação. Você também deve ativar a zona em um estado desabilitado.<br/><br/>2. Se máquinas virtuais de sistema precisam ser iniciadas em storage local, system.vm.use.local.storage precisa ser estabelecida como verdadeira antes de você habilitar a zona.<br/><br/><br/>Você quer continuar?",
+    "messgae.validate.min": "Por favor entre com um valor maior que ou igual a {0}.",
+    "mode": "Modo",
+    "network.rate": "Taxa de Transferência",
+    "notification.reboot.instance": "Reiniciar instância",
+    "notification.start.instance": "Iniciar instãncia",
+    "notification.stop.instance": "Parar instância",
+    "side.by.side": "Lado a Lado",
+    "state.Accepted": "Aceito",
+    "state.Active": "Ativo",
+    "state.Allocated": "Alocado",
+    "state.Allocating": "Alocando",
+    "state.BackedUp": "Back up realizado com sucesso",
+    "state.BackingUp": "Realizando Back up",
+    "state.Completed": "Completo",
+    "state.Creating": "Criando",
+    "state.Declined": "Recusado",
+    "state.Destroyed": "Destruído",
+    "state.Disabled": "Desativado",
+    "state.Enabled": "Habilitado",
+    "state.Error": "Erro",
+    "state.Expunging": "Removendo",
+    "state.Migrating": "Migrando",
+    "state.Pending": "Pendente",
+    "state.Ready": "Pronto",
+    "state.Running": "Executando",
+    "state.Starting": "Iniciando",
+    "state.Stopped": "Parado",
+    "state.Stopping": "Parando",
+    "state.Suspended": "Suspendido",
+    "state.detached": "Desanexado",
+    "title.upload.volume": "Upload Volume",
+    "ui.listView.filters.all": "Todos",
+    "ui.listView.filters.mine": "Meus"
+};
diff --git a/ui/l10n/ru_RU.js b/ui/l10n/ru_RU.js
new file mode 100644
index 0000000..2c5b1a6
--- /dev/null
+++ b/ui/l10n/ru_RU.js
@@ -0,0 +1,2289 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "Код ICMP",
+    "ICMP.type": "Тип ICMP",
+    "changed.item.properties": "Параметры элемента изменены",
+    "confirm.enable.s3": "Заполните информацию для включения  S3-совместимого дополнительного хранилища",
+    "confirm.enable.swift": "Заполните нижеследующую информацию для включения поддержи Swift",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "Error could not change your password because LDAP is enabled.",
+    "error.could.not.enable.zone": "Не удалось включить зону",
+    "error.installWizard.message": "Что-то не так. Вернитесь назад и исправьте ошибки.",
+    "error.invalid.username.password": "Неправильній логин или пароль",
+    "error.login": "Ваше имя пользователя или пароль не соответствуют нашим записям.",
+    "error.menu.select": "Не удается выполнить действие из-за отсутствия выбраных пунктов.",
+    "error.mgmt.server.inaccessible": "Сервер управления недоступен. Пожалуйста попробуйте еще раз позже.",
+    "error.password.not.match": "Пароли не совпадают",
+    "error.please.specify.physical.network.tags": "Предложение сети недоступно, пока вы не укажете теги для этой физической сети.",
+    "error.session.expired": "Время ожидания сессии истекло.",
+    "error.something.went.wrong.please.correct.the.following": "Что-то не так. Вернитесь назад и исправьте ошибки.",
+    "error.unable.to.reach.management.server": "Не удается подключиться к серверу управления",
+    "error.unresolved.internet.name": "Ваше сетевое имя не удалось разрешить.",
+    "force.delete": "Принудительное удаление",
+    "force.delete.domain.warning": "Предупреждение: Выбор этой опции приведет к удалению всех дочерних доменов и связанных с ними учетных записей и их ресурсов",
+    "force.remove": "Принудительное удаление",
+    "force.remove.host.warning": "Выбор этой опции приведет к принудительной остановке работающих виртуальных машин перед удалением сервера из кластера.",
+    "force.stop": "Принудительно остановить",
+    "force.stop.instance.warning": "Внимание: Принудительная остановка должна применяться в самую последнюю очередь. Вы можете потерять данные или получить неожиданное поведение/состояние виртуальной машины.",
+    "hint.no.host.tags": "No host tags found",
+    "hint.no.storage.tags": "No storage tags found",
+    "hint.type.part.host.tag": "Type in part of a host tag",
+    "hint.type.part.storage.tag": "Type in part of a storage tag",
+    "image.directory": "Каталог с образами",
+    "inline": "Встроенный",
+    "instances.actions.reboot.label": "Перезагрузить машину",
+    "label.CIDR.list": "Список CIDR",
+    "label.CIDR.of.destination.network": "CIDR сети назначения",
+    "label.CPU.cap": "CPU Cap",
+    "label.DHCP.server.type": "Тип сервера DHCP",
+    "label.DNS.domain.for.guest.networks": "DNS домен для гостевой сети",
+    "label.ESP.encryption": "шифрование ESP",
+    "label.ESP.hash": "хэш ESP",
+    "label.ESP.lifetime": "Время жизни ESP (в секундах)",
+    "label.ESP.policy": "Политика ESP",
+    "label.IKE.DH": "IKE DH",
+    "label.IKE.encryption": "Шифрование IKE",
+    "label.IKE.hash": "IKE Hash",
+    "label.IKE.lifetime": "IKE lifetime (second)",
+    "label.IKE.policy": "Политика IKE",
+    "label.IPsec.preshared.key": "IPsec Preshared-Key",
+    "label.LB.isolation": "Изоляция LB",
+    "label.LUN.number": "LUN #",
+    "label.PA": "static NAT",
+    "label.PA.log.profile": "Palo Alto Log Profile",
+    "label.PA.threat.profile": "Palo Alto Threat Profile",
+    "label.PING.CIFS.password": "Пароль PING CIFS",
+    "label.PING.CIFS.username": "Имя пользователя PING CIFS",
+    "label.PING.dir": "Каталог PING",
+    "label.PING.storage.IP": "IP адрес PING-хранилища",
+    "label.PreSetup": "Предварительная настройка",
+    "label.Pxe.server.type": "Тип сервера PXE",
+    "label.SNMP.community": "SNMP Community",
+    "label.SNMP.port": "SNMP Port",
+    "label.SR.name": "SR Name-Label",
+    "label.SharedMountPoint": "ОткрытаяТочкаДоступа",
+    "label.TFTP.dir": "Каталог TFTP",
+    "label.VMFS.datastore": "Хранилище VMFS",
+    "label.VMs.in.tier": "Tier ВМ",
+    "label.VPC.limits": "Ограничения VPC",
+    "label.VPC.router.details": "Детали маршрутизатора VPC",
+    "label.VPN.connection": "VPN подлючение",
+    "label.VPN.customer.gateway": "VPN шлюз клиента",
+    "label.VPN.gateway": "VPN шлюз",
+    "label.Xenserver.Tools.Version61plus": "Original XS Version is 6.1+",
+    "label.about": "О системе",
+    "label.about.app": "О CloudStack",
+    "label.accept.project.invitation": "Принять приглашение на проект",
+    "label.account": "Учётная запись",
+    "label.account.and.security.group": "Аккаунт, группы безопасности",
+    "label.account.details": "Account details",
+    "label.account.id": "ID учётной записи",
+    "label.account.lower": "Учётная запись",
+    "label.account.name": "Имя учётной записи",
+    "label.account.specific": "Специфика аккауннта",
+    "label.account.type": "Account Type",
+    "label.accounts": "Учётные записи",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL List Rules",
+    "label.acl.name": "ACL Name",
+    "label.acl.replaced": "ACL replaced",
+    "label.acquire.new.ip": "Получить новый IP",
+    "label.acquire.new.secondary.ip": "Запросить дополнительный IP-адрес",
+    "label.action": "Действия",
+    "label.action.attach.disk": "Подключить диск",
+    "label.action.attach.disk.processing": "Подключение диска...",
+    "label.action.attach.iso": "Подключить ISO",
+    "label.action.attach.iso.processing": "Подключение ISO...",
+    "label.action.cancel.maintenance.mode": "Выйти из режима обслуживания.",
+    "label.action.cancel.maintenance.mode.processing": "Выход из режима обслуживания...",
+    "label.action.change.password": "Изменить пароль",
+    "label.action.change.service": "Изменить службу",
+    "label.action.change.service.processing": "Изменение службы...",
+    "label.action.configure.samlauthorization": "Configure SAML SSO Authorization",
+    "label.action.copy.ISO": "Копировать ISO",
+    "label.action.copy.ISO.processing": "Копирование ISO...",
+    "label.action.copy.template": "Скопировать шаблон",
+    "label.action.copy.template.processing": "Копирование шаблона...",
+    "label.action.create.template": "Создать шаблон",
+    "label.action.create.template.from.vm": "Создать шаблон из ВМ",
+    "label.action.create.template.from.volume": "Создать шаблон из тома",
+    "label.action.create.template.processing": "Создание шаблона...",
+    "label.action.create.vm": "Создать виртуальную машину",
+    "label.action.create.vm.processing": "Создание виртуальной машины...",
+    "label.action.create.volume": "Создать диск",
+    "label.action.create.volume.processing": "Создание диска...",
+    "label.action.delete.IP.range": "Удалить диапазон IP адресов",
+    "label.action.delete.IP.range.processing": "Удаление диапазона IP адресов...",
+    "label.action.delete.ISO": "Удалить ISO",
+    "label.action.delete.ISO.processing": "Удаление ISO...",
+    "label.action.delete.account": "Удалить учётную запись",
+    "label.action.delete.account.processing": "Удаление учётной записи...",
+    "label.action.delete.cluster": "Удалить кластер",
+    "label.action.delete.cluster.processing": "Удаление кластера...",
+    "label.action.delete.disk.offering": "Удалить услугу дискового пространства",
+    "label.action.delete.disk.offering.processing": "Удаление услуги дискового пространства...",
+    "label.action.delete.domain": "Удалить домен",
+    "label.action.delete.domain.processing": "Удаление домена...",
+    "label.action.delete.firewall": "Удалить правило фаервола",
+    "label.action.delete.firewall.processing": "Удаление сетевого экрана...",
+    "label.action.delete.ingress.rule": "Удалить входящее правило",
+    "label.action.delete.ingress.rule.processing": "Удаление входящего правила...",
+    "label.action.delete.load.balancer": "Удалить правило балансировки нагрузки",
+    "label.action.delete.load.balancer.processing": "Удаление балансировщика нагрузки....",
+    "label.action.delete.network": "Удалить сеть",
+    "label.action.delete.network.processing": "Удаление сети...",
+    "label.action.delete.nexusVswitch": "Удалить NexusVswitch",
+    "label.action.delete.nic": "Удалить NIC",
+    "label.action.delete.physical.network": "Удаление физической сети",
+    "label.action.delete.pod": "Удалить стенд",
+    "label.action.delete.pod.processing": "Удаление стенда...",
+    "label.action.delete.primary.storage": "Удалить основное хранилище",
+    "label.action.delete.primary.storage.processing": "Удаление основного хранилища...",
+    "label.action.delete.secondary.storage": "Удалить дополнительное хранилище",
+    "label.action.delete.secondary.storage.processing": "Удаление дополнительного хранилища...",
+    "label.action.delete.security.group": "Удалить Security Group",
+    "label.action.delete.security.group.processing": "Удаление Security Group....",
+    "label.action.delete.service.offering": "Удалить служебный ресурс",
+    "label.action.delete.service.offering.processing": "Удаление служебного ресурса...",
+    "label.action.delete.snapshot": "Удалить снимок",
+    "label.action.delete.snapshot.processing": "Удаление снимка...",
+    "label.action.delete.system.service.offering": "Удалить системный ресурс",
+    "label.action.delete.template": "Удалить шаблон",
+    "label.action.delete.template.processing": "Удаление шаблона...",
+    "label.action.delete.user": "Удалить пользователя",
+    "label.action.delete.user.processing": "Удаление пользователя...",
+    "label.action.delete.volume": "Удалить том",
+    "label.action.delete.volume.processing": "Удаление тома...",
+    "label.action.delete.zone": "Удалить зону",
+    "label.action.delete.zone.processing": "Удаление зоны...",
+    "label.action.destroy.instance": "Уничтожить машину",
+    "label.action.destroy.instance.processing": "Уничтожение машины...",
+    "label.action.destroy.systemvm": "Уничтожить системную ВМ",
+    "label.action.destroy.systemvm.processing": "Уничтожение системной ВМ....",
+    "label.action.detach.disk": "Отсоединить диск",
+    "label.action.detach.disk.processing": "Отсоединение диска....",
+    "label.action.detach.iso": "Отсоединить ISO",
+    "label.action.detach.iso.processing": "Отсоединение ISO....",
+    "label.action.disable.account": "Деактивировать учетную запись",
+    "label.action.disable.account.processing": "Выключение учётной записи",
+    "label.action.disable.cluster": "Отключть кластер",
+    "label.action.disable.cluster.processing": "Отключение кластера...",
+    "label.action.disable.nexusVswitch": "Отключить Nexus 1000v",
+    "label.action.disable.physical.network": "Отключить физическую сеть",
+    "label.action.disable.pod": "Отключить стенд.",
+    "label.action.disable.pod.processing": "Отключение стенда...",
+    "label.action.disable.static.NAT": "Отключить Static NAT",
+    "label.action.disable.static.NAT.processing": "Отключение статической трансляции адресов....",
+    "label.action.disable.user": "Деактивировать пользователя",
+    "label.action.disable.user.processing": "Деактивация пользователя....",
+    "label.action.disable.zone": "Оключить зону",
+    "label.action.disable.zone.processing": "Отключение зоны...",
+    "label.action.download.ISO": "Загрузить ISO",
+    "label.action.download.template": "Загрузить шаблон",
+    "label.action.download.volume": "Загрузить диск",
+    "label.action.download.volume.processing": "Загрузка диска....",
+    "label.action.edit.ISO": "Измениить ISO",
+    "label.action.edit.account": "Изменить учетную запись",
+    "label.action.edit.disk.offering": "Настроить услугу дискового пространства",
+    "label.action.edit.domain": "Изменить домен",
+    "label.action.edit.global.setting": "Изменить основные настройки",
+    "label.action.edit.host": "Редактировать узел",
+    "label.action.edit.instance": "Изменить машину",
+    "label.action.edit.network": "Настроить сеть",
+    "label.action.edit.network.offering": "Настроить услугу сетевого сервиса",
+    "label.action.edit.network.processing": "Настройка сети....",
+    "label.action.edit.pod": "Редактировать стенд",
+    "label.action.edit.primary.storage": "Изменить основное хранилище",
+    "label.action.edit.resource.limits": "Изменить ресурсные ограничения",
+    "label.action.edit.service.offering": "Изменить ресурсы обслуживания",
+    "label.action.edit.template": "Изменить шаблон",
+    "label.action.edit.user": "Изменить пользователя",
+    "label.action.edit.zone": "Изменить зону",
+    "label.action.enable.account": "Активировать учетную запись",
+    "label.action.enable.account.processing": "Активация учетной записи....",
+    "label.action.enable.cluster": "Включить кластер",
+    "label.action.enable.cluster.processing": "Включение кластера...",
+    "label.action.enable.maintenance.mode": "Активировать режим обслуживания",
+    "label.action.enable.maintenance.mode.processing": "Активация режима обслуживания.....",
+    "label.action.enable.nexusVswitch": "Включить Nexus 1000v",
+    "label.action.enable.physical.network": "Включить физическую сеть",
+    "label.action.enable.pod": "Включить стенд",
+    "label.action.enable.pod.processing": "Включение стенда..",
+    "label.action.enable.static.NAT": "Активировать Static NAT",
+    "label.action.enable.static.NAT.processing": "Активация статической трансляции адресов....",
+    "label.action.enable.user": "Активировать пользователя",
+    "label.action.enable.user.processing": "Активация пользователя....",
+    "label.action.enable.zone": "Активировать зону",
+    "label.action.enable.zone.processing": "Активация зоны...",
+    "label.action.expunge.instance": "Уничтожить ВМ",
+    "label.action.expunge.instance.processing": "Expunging Instance....",
+    "label.action.force.reconnect": "Принудительно переподключить",
+    "label.action.force.reconnect.processing": "Переподключение...",
+    "label.action.generate.keys": "Генерировать ключи",
+    "label.action.generate.keys.processing": "Генерация ключей...",
+    "label.action.list.nexusVswitch": "Просмотр Nexus 1000v",
+    "label.action.lock.account": "Заблокировать учётную запись",
+    "label.action.lock.account.processing": "Блокирование учетной записи....",
+    "label.action.manage.cluster": "Управление кластером",
+    "label.action.manage.cluster.processing": "Переход кластера в режим обслуживания...",
+    "label.action.migrate.instance": "Перенести машину",
+    "label.action.migrate.instance.processing": "Миграция машины....",
+    "label.action.migrate.router": "Перенести роутер",
+    "label.action.migrate.router.processing": "Перенос роутера...",
+    "label.action.migrate.systemvm": "Перенести системную ВМ",
+    "label.action.migrate.systemvm.processing": "Перенос системной ВМ...",
+    "label.action.reboot.instance": "Перезагрузить машину",
+    "label.action.reboot.instance.processing": "Перезагрузка машины...",
+    "label.action.reboot.router": "Перезагрузить роутер",
+    "label.action.reboot.router.processing": "Перезагрузка роутера...",
+    "label.action.reboot.systemvm": "Перезапустить системную ВМ",
+    "label.action.reboot.systemvm.processing": "Перезагрузка системной ВМ",
+    "label.action.recurring.snapshot": "Повторяемые снимки",
+    "label.action.register.iso": "Регистрация ISO",
+    "label.action.register.template": "Регистрация шаблона по URL",
+    "label.action.release.ip": "Освободить IP",
+    "label.action.release.ip.processing": "Освобождение IP...",
+    "label.action.remove.host": "Удалить узел",
+    "label.action.remove.host.processing": "Удаление узла...",
+    "label.action.reset.password": "Сбросить пароль",
+    "label.action.reset.password.processing": "Сброс пароля...",
+    "label.action.resize.volume": "Изменить размер диска",
+    "label.action.resize.volume.processing": "Изменение размера диска....",
+    "label.action.resource.limits": "Ограничения ресуров",
+    "label.action.restore.instance": "Восстановить машину",
+    "label.action.restore.instance.processing": "Восстановление машины...",
+    "label.action.revert.snapshot": "Возврат к снимку",
+    "label.action.revert.snapshot.processing": "Возвращение к снимку...",
+    "label.action.start.instance": "Запустить машину",
+    "label.action.start.instance.processing": "Запуск машины...",
+    "label.action.start.router": "Запустить роутер",
+    "label.action.start.router.processing": "Запуск роутера....",
+    "label.action.start.systemvm": "Запустить системную ВМ",
+    "label.action.start.systemvm.processing": "Запуск системной ВМ...",
+    "label.action.stop.instance": "Остановить машину",
+    "label.action.stop.instance.processing": "Остановка машины...",
+    "label.action.stop.router": "Остановить роутер",
+    "label.action.stop.router.processing": "Остановка роутера...",
+    "label.action.stop.systemvm": "Остановить системной ВМ",
+    "label.action.stop.systemvm.processing": "Остановка системной ВМ...",
+    "label.action.take.snapshot": "Получить снимок...",
+    "label.action.take.snapshot.processing": "Получение снимка...",
+    "label.action.unmanage.cluster": "Перевести кластер в обычный режим",
+    "label.action.unmanage.cluster.processing": "Переход кластера в обычный режим...",
+    "label.action.update.OS.preference": "Обновить настройки ОС",
+    "label.action.update.OS.preference.processing": "Обновление параметров ОС...",
+    "label.action.update.resource.count": "Обновить учет ресурсов",
+    "label.action.update.resource.count.processing": "Обновление учета ресурсов",
+    "label.action.vmsnapshot.create": "Создать снимок ВМ",
+    "label.action.vmsnapshot.delete": "Удалить снимок ВМ",
+    "label.action.vmsnapshot.revert": "Восстановить снимок ВМ",
+    "label.actions": "Действия",
+    "label.activate.project": "Запустить проект",
+    "label.active.sessions": "Активные сессии",
+    "label.add": "Добавить",
+    "label.add.ACL": "Добавить ACL",
+    "label.add.BigSwitchBcf.device": "Add BigSwitch BCF Controller",
+    "label.add.BrocadeVcs.device": "Add Brocade Vcs Switch",
+    "label.add.F5.device": "Добавить F5 устройво",
+    "label.add.LDAP.account": "Add LDAP Account",
+    "label.add.NiciraNvp.device": "Добавить контроллер Nvp",
+    "label.add.NuageVsp.device": "Add Nuage Virtualized Services Directory (VSD)",
+    "label.add.OpenDaylight.device": "Add OpenDaylight Controller",
+    "label.add.PA.device": "Добавить устройство Palo Alto",
+    "label.add.SRX.device": "Добавить SRX устройство",
+    "label.add.VM.to.tier": "Добавить ВМ к tier",
+    "label.add.VPN.gateway": "Добавить VPN шлюз",
+    "label.add.account": "Добавить учетную запись",
+    "label.add.account.to.project": "Добавить учётные записи в проект",
+    "label.add.accounts": "Добавить учётные записи",
+    "label.add.accounts.to": "Добавить учётные записи",
+    "label.add.acl.list": "Add ACL List",
+    "label.add.affinity.group": "Добавить новую affinity group",
+    "label.add.baremetal.dhcp.device": "Add Baremetal DHCP Device",
+    "label.add.baremetal.rack.configuration": "Add Baremetal Rack Configuration",
+    "label.add.by": "Добавить",
+    "label.add.by.cidr": "Добавить к CIDR",
+    "label.add.by.group": "Добавить к группе",
+    "label.add.ciscoASA1000v": "Add CiscoASA1000v Resource",
+    "label.add.cluster": "Добавить кластер",
+    "label.add.compute.offering": "Добавить ресурсы вычисления",
+    "label.add.direct.iprange": "Добавить диапазон маршрутизируемых IP адресов",
+    "label.add.disk.offering": "Добавить услугу дискового пространства",
+    "label.add.domain": "Добавить домен",
+    "label.add.egress.rule": "Добавить исходящее правило",
+    "label.add.firewall": "Добавить правило фаервола.",
+    "label.add.globo.dns": "Add GloboDNS",
+    "label.add.gslb": "Add GSLB",
+    "label.add.guest.network": "Добавить гостевую сеть",
+    "label.add.host": "Добавить узел",
+    "label.add.ingress.rule": "Добавить входящее правило",
+    "label.add.intermediate.certificate": "Add intermediate certificate",
+    "label.add.internal.lb": "Add Internal LB",
+    "label.add.ip.range": "Добавить диапазон адресов",
+    "label.add.isolated.guest.network": "Добавить изолированную гостевую сеть",
+    "label.add.isolated.guest.network.with.sourcenat": "Add Isolated Guest Network with SourceNat",
+    "label.add.isolated.network": "Добавить изолированную сеть",
+    "label.add.ldap.account": "Добавить LDAP аккаунт",
+    "label.add.list.name": "ACL List Name",
+    "label.add.load.balancer": "Добавить балансировщик нагрузки",
+    "label.add.more": "Добавить что-то еще",
+    "label.add.netScaler.device": "Добавить Netscaler устройство",
+    "label.add.network": "Добавить сеть",
+    "label.add.network.ACL": "Добавить сетевую ACL",
+    "label.add.network.acl.list": "Add Network ACL List",
+    "label.add.network.device": "Добавить сетевое устройство",
+    "label.add.network.offering": "Добавить сетевые ресурсы",
+    "label.add.new.F5": "Добавить новый F5",
+    "label.add.new.NetScaler": "Добавить новый NetScaler",
+    "label.add.new.PA": "Добавить Palo Alto",
+    "label.add.new.SRX": "Добавить новый SRX",
+    "label.add.new.gateway": "Добавить новый шлюз",
+    "label.add.new.tier": "Добавить новый Tier",
+    "label.add.nfs.secondary.staging.store": "Add NFS Secondary Staging Store",
+    "label.add.physical.network": "Добавить физическую сеть",
+    "label.add.pod": "Добавить стенд",
+    "label.add.port.forwarding.rule": "Добавить правило перенаправление порта",
+    "label.add.portable.ip.range": "Add Portable IP Range",
+    "label.add.primary.storage": "Добавить основное хранилище данных",
+    "label.add.private.gateway": "Add Private Gateway",
+    "label.add.region": "Добавить регион",
+    "label.add.resources": "Добавить ресурсов",
+    "label.add.role": "Add Role",
+    "label.add.route": "Добавить маршрут",
+    "label.add.rule": "Добавить правило",
+    "label.add.secondary.storage": "Добавить дополнительное хранилище",
+    "label.add.security.group": "Добавить группу безопасности",
+    "label.add.service.offering": "Добавить службу",
+    "label.add.static.nat.rule": "Добавить правило статичного NAT",
+    "label.add.static.route": "Добавить статичный маршрут",
+    "label.add.system.service.offering": "Добавить услуги системных служб",
+    "label.add.template": "Добавить шаблон",
+    "label.add.to.group": "Добавить в группу",
+    "label.add.ucs.manager": "Add UCS Manager",
+    "label.add.user": "Добавить пользователя",
+    "label.add.userdata": "Userdata",
+    "label.add.vlan": "Добавить VLAN",
+    "label.add.vm": "Добавить ВМ",
+    "label.add.vms": "Добавить ВМ-ы",
+    "label.add.vms.to.lb": "Добавить ВМ в правило балансировки нагрузки",
+    "label.add.vmware.datacenter": "Add VMware datacenter",
+    "label.add.vnmc.device": "Add VNMC device",
+    "label.add.vnmc.provider": "Add VNMC provider",
+    "label.add.volume": "Добавить диск",
+    "label.add.vpc": "Добавить VPC",
+    "label.add.vpc.offering": "Добавить услугу VPC",
+    "label.add.vpn.customer.gateway": "Добавить VPN шлюз клиента",
+    "label.add.vpn.user": "Добавить пользователя VPN",
+    "label.add.vxlan": "Добавить VXLAN",
+    "label.add.zone": "Добавить зону",
+    "label.added.brocade.vcs.switch": "Added new Brocade Vcs Switch",
+    "label.added.network.offering": "Добавить сетевые услуги",
+    "label.added.new.bigswitch.bcf.controller": "Added new BigSwitch BCF Controller",
+    "label.added.nicira.nvp.controller": "Added new Nicira NVP Controller",
+    "label.addes.new.f5": "Added new F5",
+    "label.adding": "Добавление зоны",
+    "label.adding.cluster": "Добавление кластера",
+    "label.adding.failed": "Добавление не удалось",
+    "label.adding.pod": "Добавление стенда",
+    "label.adding.processing": "Добавление...",
+    "label.adding.succeeded": "Добавление завершено успешно",
+    "label.adding.user": "Добавление пользователя",
+    "label.adding.zone": "Добавление зоны",
+    "label.additional.networks": "Дополнительные сети",
+    "label.admin": "Администратор",
+    "label.admin.accounts": "Административные учётные записи",
+    "label.advanced": "Расширенный",
+    "label.advanced.mode": "Расширенный режим",
+    "label.advanced.search": "Расширенный поиск",
+    "label.affinity": " Совместимость",
+    "label.affinity.group": "Affinity Group",
+    "label.affinity.groups": "Affinity Groups",
+    "label.agent.password": "Пароль агента",
+    "label.agent.port": "Agent Port",
+    "label.agent.state": "Agent State",
+    "label.agent.username": "Имя агента",
+    "label.agree": "Согласен",
+    "label.alert": "Тревога",
+    "label.alert.archived": "Alert Archived",
+    "label.alert.deleted": "Alert Deleted",
+    "label.alert.details": "Alert details",
+    "label.algorithm": "Алгоритм",
+    "label.allocated": "Распределено",
+    "label.allocation.state": "Используется",
+    "label.allow": "Allow",
+    "label.anti.affinity": "Anti-affinity",
+    "label.anti.affinity.group": "Anti-affinity Group",
+    "label.anti.affinity.groups": "Anti-affinity Groups",
+    "label.api.key": "Ключ API",
+    "label.api.version": "Версия API",
+    "label.app.name": "CloudStack",
+    "label.apply": "Применить",
+    "label.archive": "Archive",
+    "label.archive.alerts": "Архивировать тревоги",
+    "label.archive.events": "Архивировать события",
+    "label.assign": "Присвоено",
+    "label.assign.instance.another": "Assign Instance to Another Account",
+    "label.assign.to.load.balancer": "Включение машины в систему балансировки нагрузки",
+    "label.assign.vms": "Assign VMs",
+    "label.assigned.vms": "Assigned VMs",
+    "label.associate.public.ip": "Связанные публичне IP",
+    "label.associated.network": "Связанная сеть",
+    "label.associated.network.id": "ID Связанной сети",
+    "label.associated.profile": "Associated Profile",
+    "label.attached.iso": "Присоединенный ISO",
+    "label.author.email": "E-mail автора",
+    "label.author.name": "Имя автора",
+    "label.autoscale": "AutoScale",
+    "label.autoscale.configuration.wizard": "AutoScale Configuration Wizard",
+    "label.availability": "Доступность",
+    "label.availability.zone": "Доступность зоны",
+    "label.availabilityZone": "availabilityZone",
+    "label.available": "Доступно",
+    "label.available.public.ips": "Доступные маршрутизируемые IP адреса",
+    "label.back": "Назад",
+    "label.bandwidth": "Пропускная способность",
+    "label.baremetal.dhcp.devices": "Baremetal DHCP Devices",
+    "label.baremetal.dhcp.provider": "Baremetal DHCP Provider",
+    "label.baremetal.pxe.device": "Add Baremetal PXE Device",
+    "label.baremetal.pxe.devices": "Baremetal PXE Devices",
+    "label.baremetal.pxe.provider": "Baremetal PXE Provider",
+    "label.baremetal.rack.configuration": "Baremetal Rack Configuration",
+    "label.basic": "Основной",
+    "label.basic.mode": "Основной режим",
+    "label.bigswitch.bcf.details": "BigSwitch BCF details",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF NAT Enabled",
+    "label.bigswitch.controller.address": "BigSwitch BCF Controller Address",
+    "label.blade.id": "Blade ID",
+    "label.blades": "Blades",
+    "label.bootable": "Загружаемый",
+    "label.broadcast.domain.range": "Диапазон широковещательного домена",
+    "label.broadcast.domain.type": "Тип широковещательного домена",
+    "label.broadcast.uri": "Широковещательный URI",
+    "label.broadcasturi": "broadcasturi",
+    "label.broadcat.uri": "Широковещательный URI",
+    "label.brocade.vcs.address": "Vcs Switch Address",
+    "label.brocade.vcs.details": "Brocade Vcs Switch details",
+    "label.by.account": "По учетным записям",
+    "label.by.alert.type": "По типу тревоги",
+    "label.by.availability": "По доступности",
+    "label.by.date.end": "По дате(конец)",
+    "label.by.date.start": "По дате(начало)",
+    "label.by.domain": "До домену",
+    "label.by.end.date": "По дате окончания",
+    "label.by.event.type": "По типу события",
+    "label.by.level": "По уровню",
+    "label.by.pod": "По стенду",
+    "label.by.role": "По ролям",
+    "label.by.start.date": "По дате начала",
+    "label.by.state": "По состоянию",
+    "label.by.traffic.type": "По типу трафика",
+    "label.by.type": "По типу",
+    "label.by.type.id": "По типу ID",
+    "label.by.zone": "По зоне",
+    "label.bytes.received": "Байт получено",
+    "label.bytes.sent": "Байтов отправлено",
+    "label.cache.mode": "Write-cache Type",
+    "label.cancel": "Отмена",
+    "label.capacity": "Мощность",
+    "label.capacity.bytes": "Количество Байт",
+    "label.capacity.iops": "количество IOPS",
+    "label.certificate": "Сертификат",
+    "label.change.affinity": "Change Affinity",
+    "label.change.ipaddress": "Change IP address for NIC",
+    "label.change.service.offering": "Изменить ресурс обслуживания",
+    "label.change.value": "Изменить значение",
+    "label.character": "Символов",
+    "label.chassis": "Chassis",
+    "label.checksum": "checksum",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR или учётная запись/группа безопасности",
+    "label.cidr.list": "CIDR источника",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP Address",
+    "label.cisco.nexus1000v.password": "Nexus 1000v Password",
+    "label.cisco.nexus1000v.username": "Nexus 1000v Username",
+    "label.ciscovnmc.resource.details": "CiscoVNMC resource details",
+    "label.clean.up": "Очистить",
+    "label.clear.list": "Очистить список",
+    "label.close": "Закрыть",
+    "label.cloud.console": "Панель управления облаком",
+    "label.cloud.managed": "Панель управления",
+    "label.cluster": "Кластер",
+    "label.cluster.name": "Имя кластера",
+    "label.cluster.type": "Тип кластера",
+    "label.clusters": "Кластеры",
+    "label.clvm": "CLVM",
+    "label.code": "Код",
+    "label.community": "Сообщество",
+    "label.compute": "Вычисление",
+    "label.compute.and.storage": "Вычисления и хранилище",
+    "label.compute.offering": "Услуга вычесления",
+    "label.compute.offerings": "Услуги вычесления",
+    "label.configuration": "Конфигурация",
+    "label.configure": "Настроить",
+    "label.configure.ldap": "Configure LDAP",
+    "label.configure.network.ACLs": "Настройка ACL сети",
+    "label.configure.sticky.policy": "Configure Sticky Policy",
+    "label.configure.vpc": "Настроить VPC",
+    "label.confirm.password": "Подтвердите пароль",
+    "label.confirmation": "Подтверждение",
+    "label.congratulations": "Поздравляем!",
+    "label.conserve.mode": "Экономичный режим",
+    "label.console.proxy": "Прокси консоли",
+    "label.console.proxy.vm": "Console Proxy VM",
+    "label.continue": "Продолжить",
+    "label.continue.basic.install": "Продолжить простую установку",
+    "label.copying.iso": "Копирование ISO",
+    "label.corrections.saved": "Изменения сохранены",
+    "label.counter": "Counter",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "Выделенные CPU",
+    "label.cpu.allocated.for.VMs": "Выделенные виртуальным машинам CPU",
+    "label.cpu.limits": "Ограничения CPU",
+    "label.cpu.mhz": "CPU (в Мгц)",
+    "label.cpu.utilized": "Загружено CPU",
+    "label.create.VPN.connection": "Создать VPN подлючение",
+    "label.create.nfs.secondary.staging.storage": "Create NFS Secondary Staging Store",
+    "label.create.nfs.secondary.staging.store": "Create NFS secondary staging store",
+    "label.create.project": "Создать проект",
+    "label.create.ssh.key.pair": "Create a SSH Key Pair",
+    "label.create.template": "Создать шаблон",
+    "label.created": "Создано",
+    "label.created.by.system": "Создано системой",
+    "label.cross.zones": "Общие для зон",
+    "label.custom": "Custom",
+    "label.custom.disk.iops": "Свое кол-во IPOS",
+    "label.custom.disk.offering": "Custom Disk Offering",
+    "label.custom.disk.size": "Произвольный размер диска",
+    "label.daily": "Ежедневно",
+    "label.data.disk.offering": "Услуга дополнительного дискового пространства",
+    "label.date": "Дата",
+    "label.day": "Day",
+    "label.day.of.month": "День месяца",
+    "label.day.of.week": "День недели",
+    "label.dc.name": "DC Name",
+    "label.dead.peer.detection": "Dead Peer Detection",
+    "label.decline.invitation": "Отменить приглашение",
+    "label.dedicate": "Dedicate",
+    "label.dedicate.cluster": "Dedicate Cluster",
+    "label.dedicate.host": "Dedicate Host",
+    "label.dedicate.pod": "Dedicate Pod",
+    "label.dedicate.vlan.vni.range": "Dedicate VLAN/VNI Range",
+    "label.dedicate.zone": "Dedicate Zone",
+    "label.dedicated": "Выделенный",
+    "label.dedicated.vlan.vni.ranges": "Dedicated VLAN/VNI Ranges",
+    "label.default": "По умолчанию",
+    "label.default.egress.policy": "Исходящая политика по умолчанию",
+    "label.default.use": "По умолчанию",
+    "label.default.view": "Стандартный вид",
+    "label.delete": "Удалить",
+    "label.delete.BigSwitchBcf": "Remove BigSwitch BCF Controller",
+    "label.delete.BrocadeVcs": "Remove Brocade Vcs Switch",
+    "label.delete.F5": "Удалить F5",
+    "label.delete.NetScaler": "Удалить NetScaler",
+    "label.delete.NiciraNvp": "Удалить Nvp контроллер",
+    "label.delete.NuageVsp": "Remove Nuage VSD",
+    "label.delete.OpenDaylight.device": "Delete OpenDaylight Controller",
+    "label.delete.PA": "Удалить Palo Alto",
+    "label.delete.SRX": "Удалить SRX",
+    "label.delete.VPN.connection": "Удалить VPN подлючение",
+    "label.delete.VPN.customer.gateway": "Удалить VPN шлюз клиента",
+    "label.delete.VPN.gateway": "Удалить VPN шлюз",
+    "label.delete.acl.list": "Delete ACL List",
+    "label.delete.affinity.group": "Удалить affinity group",
+    "label.delete.alerts": "Удалить тревоги",
+    "label.delete.baremetal.rack.configuration": "Delete Baremetal Rack Configuration",
+    "label.delete.ciscoASA1000v": "Delete CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "Delete CiscoVNMC resource",
+    "label.delete.events": "Удалить события",
+    "label.delete.gateway": "Удалить шлюз",
+    "label.delete.internal.lb": "Delete Internal LB",
+    "label.delete.portable.ip.range": "Delete Portable IP Range",
+    "label.delete.profile": "Удалить профиль",
+    "label.delete.project": "Удалить проект",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "Delete Secondary Staging Store",
+    "label.delete.ucs.manager": "Delete UCS Manager",
+    "label.delete.vpn.user": "Удалить пользователя VPN",
+    "label.deleting.failed": "Удаление не удалось",
+    "label.deleting.processing": "Удаление...",
+    "label.deny": "Deny",
+    "label.deployment.planner": "Deployment planner",
+    "label.description": "Описание",
+    "label.destination.physical.network.id": "ID целевой физической сети",
+    "label.destination.zone": "Целевая зона",
+    "label.destroy": "Уничтожить",
+    "label.destroy.router": "Удалить роутер",
+    "label.destroy.vm.graceperiod": "Destroy VM Grace Period",
+    "label.detaching.disk": "Отключение диска",
+    "label.details": "Детали",
+    "label.device.id": "ID устройства",
+    "label.devices": "Устройство",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "Выданные публичные IP",
+    "label.direct.ips": "Прямые IP-адреса",
+    "label.disable.autoscale": "Выключить автоматическое маштабирование",
+    "label.disable.host": "Отключить хост",
+    "label.disable.network.offering": "Отключить сетевые услуги",
+    "label.disable.provider": "Выключить поставщика",
+    "label.disable.vnmc.provider": "Disable VNMC provider",
+    "label.disable.vpc.offering": "Отключить услугу VPC",
+    "label.disable.vpn": "Выключить VPN",
+    "label.disabled": "Выключено",
+    "label.disabling.vpn.access": "Выключение доступа к VPN",
+    "label.disassociate.profile.blade": "Disassociate Profile from Blade",
+    "label.disbale.vnmc.device": "Disable VNMC device",
+    "label.disk.allocated": "Занято дисковое пространства",
+    "label.disk.bytes.read.rate": "Скорость чтения диска (BPS)",
+    "label.disk.bytes.write.rate": "Скорость записи диска (BPS)",
+    "label.disk.iops.max": "Макс. IOPS",
+    "label.disk.iops.min": "Мин. IOPS",
+    "label.disk.iops.read.rate": "Скорость записи диска (IOPS)",
+    "label.disk.iops.total": "Всего IOPS",
+    "label.disk.iops.write.rate": "Скорость записи диска (IOPS)",
+    "label.disk.offering": "Услуга дискового пространства",
+    "label.disk.offering.details": "Disk offering details",
+    "label.disk.provisioningtype": "Provisioning Type",
+    "label.disk.read.bytes": "Прочитано с диска (Байт)",
+    "label.disk.read.io": "Прочитано с диска (IO)",
+    "label.disk.size": "Размер диска",
+    "label.disk.size.gb": "Размер диска (в ГБ)",
+    "label.disk.total": "Всего в дисках",
+    "label.disk.volume": "Объем диска",
+    "label.disk.write.bytes": "Записано на диск (Байт)",
+    "label.disk.write.io": "Записано на диск (IO)",
+    "label.diskoffering": "diskoffering",
+    "label.display.name": "Display Name",
+    "label.display.text": "Отображаемый текст",
+    "label.distributedrouter": "Distributed Router",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "Домен",
+    "label.domain.admin": "Администратор домена",
+    "label.domain.details": "Domain details",
+    "label.domain.id": "ID домена",
+    "label.domain.lower": "Домен",
+    "label.domain.name": "Имя домена",
+    "label.domain.router": "Машрутизатор",
+    "label.domain.suffix": "Суффикс домена DNS (нпр. xyz.com)",
+    "label.done": "Готово",
+    "label.double.quotes.are.not.allowed": "Двойные кавычки не допускаются",
+    "label.download.progress": "Статус загрузки",
+    "label.drag.new.position": "Переместить на новую позицию",
+    "label.duration.in.sec": "Duration (in sec)",
+    "label.dynamically.scalable": "Динамическое масштабирование",
+    "label.edit": "Редактировать",
+    "label.edit.acl.rule": "Edit ACL rule",
+    "label.edit.affinity.group": "Редактировать affinity group",
+    "label.edit.lb.rule": "Редактировать LB правила",
+    "label.edit.network.details": "Редактировать сетевые настройки",
+    "label.edit.project.details": "Редактировать детали проекта",
+    "label.edit.region": "Редактировать регион",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "Edit rule",
+    "label.edit.secondary.ips": "Изменить дополнительные IP-адреса",
+    "label.edit.tags": "Редактировать тэги",
+    "label.edit.traffic.type": "Изменить тип трафика",
+    "label.edit.vpc": "Редактировать VPC",
+    "label.egress.default.policy": "Исходящая политика по умолчанию",
+    "label.egress.rule": "Исходящее правило",
+    "label.egress.rules": "Исходящие правила",
+    "label.elastic": "Гибкий",
+    "label.elastic.IP": "Гибкий IP",
+    "label.elastic.LB": "Гибкий LB",
+    "label.email": "E-mail",
+    "label.email.lower": "E-mail",
+    "label.enable.autoscale": "Включить автоматическое маштабирование",
+    "label.enable.host": "Включить хост",
+    "label.enable.network.offering": "Включить сетевую услугу",
+    "label.enable.provider": "Включить поставщика",
+    "label.enable.s3": "Включить S3-совместимое дополнительное хранилище",
+    "label.enable.swift": "Включить Swift",
+    "label.enable.vnmc.device": "Enable VNMC device",
+    "label.enable.vnmc.provider": "Enable VNMC provider",
+    "label.enable.vpc.offering": "Включить услугу VPC",
+    "label.enable.vpn": "Включить VPN",
+    "label.enabling.vpn": "Активация VPN",
+    "label.enabling.vpn.access": "Активация доступа по VPN",
+    "label.end.IP": "Конечный IP",
+    "label.end.port": "Последний порт диапазона",
+    "label.end.reserved.system.IP": "Конечный зарезервированный системный IP-адрес",
+    "label.end.vlan": "End VLAN",
+    "label.end.vxlan": "End VXLAN",
+    "label.endpoint": "Конечная точка",
+    "label.endpoint.or.operation": "Конечная точка или операция",
+    "label.enter.token": "Введите токен",
+    "label.error": "Ошибка",
+    "label.error.code": "Код ошибки",
+    "label.error.upper": "ERROR",
+    "label.esx.host": "Узел ESX/ESXi",
+    "label.event": "Event",
+    "label.event.archived": "Event Archived",
+    "label.event.deleted": "Event Deleted",
+    "label.every": "Every",
+    "label.example": "Пример",
+    "label.expunge": "Удалён",
+    "label.external.link": "Внешнее подлючение",
+    "label.extractable": "Извлекаемый",
+    "label.extractable.lower": "extractable",
+    "label.f5": "F5",
+    "label.f5.details": "F5 details",
+    "label.failed": "Неудачно",
+    "label.featured": "Рекомендуемый",
+    "label.fetch.latest": "Выборка последних",
+    "label.filterBy": "Фильтровать",
+    "label.fingerprint": "FingerPrint",
+    "label.firewall": "Фаервол",
+    "label.first.name": "Имя",
+    "label.firstname.lower": "Имя",
+    "label.format": "Формат",
+    "label.format.lower": "format",
+    "label.friday": "Пятница",
+    "label.full": "Полный",
+    "label.full.path": "Полный путь",
+    "label.gateway": "Шлюз",
+    "label.general.alerts": "Общие тревоги",
+    "label.generating.url": "Создание URL",
+    "label.globo.dns": "GloboDNS",
+    "label.globo.dns.configuration": "GloboDNS Configuration",
+    "label.gluster.volume": "Том",
+    "label.go.step.2": "Перейти к шагу 2",
+    "label.go.step.3": "Перейти к шагу 3",
+    "label.go.step.4": "Перейти к шагу 4",
+    "label.go.step.5": "Перейти к шагу 5",
+    "label.gpu": "GPU",
+    "label.group": "Группа",
+    "label.group.by.account": "Group by account",
+    "label.group.by.cluster": "Group by cluster",
+    "label.group.by.pod": "Group by pod",
+    "label.group.by.zone": "Group by zone",
+    "label.group.optional": "Группа (по желанию)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "Assigned load balancing",
+    "label.gslb.assigned.lb.more": "Assign more load balancing",
+    "label.gslb.delete": "Delete GSLB",
+    "label.gslb.details": "GSLB details",
+    "label.gslb.domain.name": "GSLB Domain Name",
+    "label.gslb.lb.details": "Детали балансировщика нагрузки",
+    "label.gslb.lb.remove": "Remove load balancing from this GSLB",
+    "label.gslb.lb.rule": "Правило балансировщика нагрузки",
+    "label.gslb.service": "GSLB service",
+    "label.gslb.service.private.ip": "GSLB service Private IP",
+    "label.gslb.service.public.ip": "GSLB service Public IP",
+    "label.gslb.servicetype": "Service Type",
+    "label.guest": "Гость",
+    "label.guest.cidr": "Гостевой CIDR",
+    "label.guest.end.ip": "Конечный гостевой IP.",
+    "label.guest.gateway": "Шлюз",
+    "label.guest.ip": "Гостевые IP-адреса",
+    "label.guest.ip.range": "Диапазон IP-адресов",
+    "label.guest.netmask": "Гостевая сетевая маска",
+    "label.guest.network.details": "Guest network details",
+    "label.guest.networks": "Гостевые сети",
+    "label.guest.start.ip": "Начальный гостевой IP",
+    "label.guest.traffic": "Гостевой трафик",
+    "label.guest.traffic.vswitch.name": "Guest Traffic vSwitch Name",
+    "label.guest.traffic.vswitch.type": "Guest Traffic vSwitch Type",
+    "label.guest.type": "Тип гостя",
+    "label.ha.enabled": "Отказоустойчивость включена",
+    "label.health.check": "Health Check",
+    "label.health.check.advanced.options": "Advanced Options:",
+    "label.health.check.configurations.options": "Configuration Options:",
+    "label.health.check.interval.in.sec": "Health Check Interval (in sec)",
+    "label.health.check.message.desc": "Your load balancer will automatically perform health checks on your cloudstack instances and only route traffic to instances that pass the health check",
+    "label.health.check.wizard": "Health Check Wizard",
+    "label.healthy.threshold": "Healthy Threshold",
+    "label.help": "Помощь",
+    "label.hide.ingress.rule": "Скрыть входящее правило",
+    "label.hints": "Подсказки",
+    "label.home": "Главная",
+    "label.host": "Узел",
+    "label.host.MAC": "MAC узла",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "Имя узла",
+    "label.host.tag": "Host Tag",
+    "label.host.tags": "Метки узла",
+    "label.hosts": "Узлы",
+    "label.hourly": "Ежечасно",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV Traffic Label",
+    "label.hypervisor": "Гипервизор",
+    "label.hypervisor.capabilities": "Возможности гипервизора",
+    "label.hypervisor.snapshot.reserve": "Hypervisor Snapshot Reserve",
+    "label.hypervisor.type": "Тип гипервизора",
+    "label.hypervisor.version": "Версия гипервизора",
+    "label.hypervisors": "Гипервизоры",
+    "label.id": "ID",
+    "label.info": "Информация",
+    "label.info.upper": "INFO",
+    "label.ingress.rule": "Входящее правило",
+    "label.initiated.by": "Инициировано",
+    "label.inside.port.profile": "Inside Port Profile",
+    "label.installWizard.addClusterIntro.subtitle": "Что такое \"Кластер\"?",
+    "label.installWizard.addClusterIntro.title": "Давайте добавим кластер",
+    "label.installWizard.addHostIntro.subtitle": "Что такое \"Узел\"?",
+    "label.installWizard.addHostIntro.title": "Давайте добавим узел",
+    "label.installWizard.addPodIntro.subtitle": "Что такое \"Стенд\"?",
+    "label.installWizard.addPodIntro.title": "Давайте добавим стенд",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "Что такое \"Основное хранилище\"?",
+    "label.installWizard.addPrimaryStorageIntro.title": "Давайте добавим основное хранилище",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "Что такое \"Дополнительное хранилище\"?",
+    "label.installWizard.addSecondaryStorageIntro.title": "Давайте добавим допольнительное хранилище.",
+    "label.installWizard.addZone.title": "Добавить зону",
+    "label.installWizard.addZoneIntro.subtitle": "Что такое \"Зона\"?",
+    "label.installWizard.addZoneIntro.title": "Давайте добавим зону",
+    "label.installWizard.click.launch": "Кликните на кнопку запуска",
+    "label.installWizard.subtitle": "Это руководство настроит ваш CloudStack.",
+    "label.installWizard.title": "Здравствуйте и добро пожаловать в CloudStack!",
+    "label.instance": "Машина",
+    "label.instance.limits": "Лимит машин",
+    "label.instance.name": "Имя машины",
+    "label.instance.port": "Instance Port",
+    "label.instance.scaled.up": "Instance scaled to the requested offering",
+    "label.instances": "Машины",
+    "label.instanciate.template.associate.profile.blade": "Instanciate Template and Associate Profile to Blade",
+    "label.intermediate.certificate": "Intermediate certificate {0}",
+    "label.internal.dns.1": "Внутренний DNS 1",
+    "label.internal.dns.2": "Внутренний DNS 2",
+    "label.internal.lb": "Internal LB",
+    "label.internal.lb.details": "Internal LB details",
+    "label.internal.name": "Внутреннее имя",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "Тип диапазона",
+    "label.introduction.to.cloudstack": "Введение в CloudStack",
+    "label.invalid.integer": "Неправильное целое число",
+    "label.invalid.number": "Неправильное число",
+    "label.invitations": "Приглашения",
+    "label.invite": "Пригласить",
+    "label.invite.to": "Пригласить",
+    "label.invited.accounts": "Приглашённые учетные записи",
+    "label.ip": "IP",
+    "label.ip.address": "IP адресса",
+    "label.ip.allocations": "Выделенные IP",
+    "label.ip.limits": "Ограничения маршрутизируемых IP",
+    "label.ip.or.fqdn": "IP или FQDN",
+    "label.ip.range": "Диапазон IP адресов",
+    "label.ip.ranges": "Диапазон IP адресов",
+    "label.ipaddress": "IP адресса",
+    "label.ips": "IP",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 End IP",
+    "label.ipv4.gateway": "IPv4 Gateway",
+    "label.ipv4.netmask": "IPv4 Netmask",
+    "label.ipv4.start.ip": "IPv4 Start IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP Address",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 End IP",
+    "label.ipv6.gateway": "IPv6 Gateway",
+    "label.ipv6.start.ip": "IPv6 Start IP",
+    "label.is.default": "По умолчанию",
+    "label.is.redundant.router": "Резервный",
+    "label.is.shared": "Общий",
+    "label.is.system": "Системные",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "Загрузка ISO",
+    "label.isolated.networks": "Изолированные сети",
+    "label.isolation.method": "Метод изоляции",
+    "label.isolation.mode": "Режим изоляции",
+    "label.isolation.uri": "Изоляция URI",
+    "label.item.listing": "Список элементов",
+    "label.japanese.keyboard": "Japanese keyboard",
+    "label.keep": "Хранить",
+    "label.keep.colon": "Keep:",
+    "label.key": "Ключ",
+    "label.keyboard.language": "Keyboard language",
+    "label.keyboard.type": "Тип клавиатуры",
+    "label.kvm.traffic.label": "Метка трафика KVM",
+    "label.label": "Метка",
+    "label.lang.arabic": "Arabic",
+    "label.lang.brportugese": "Brazilian Portugese",
+    "label.lang.catalan": "Catalan",
+    "label.lang.chinese": "Китайский (упрощённый)",
+    "label.lang.dutch": "Dutch (Netherlands)",
+    "label.lang.english": "Английский",
+    "label.lang.french": "French",
+    "label.lang.german": "German",
+    "label.lang.hungarian": "Hungarian",
+    "label.lang.italian": "Italian",
+    "label.lang.japanese": "Японский",
+    "label.lang.korean": "корейский",
+    "label.lang.norwegian": "Norwegian",
+    "label.lang.polish": "Polish",
+    "label.lang.russian": "Русский",
+    "label.lang.spanish": "Испанский",
+    "label.last.disconnected": "Время последнего отсоединения",
+    "label.last.name": "Фамилия",
+    "label.lastname.lower": "Фамилия",
+    "label.latest.events": "Последнии события",
+    "label.launch": "Запуск",
+    "label.launch.vm": "Запуск ВМ",
+    "label.launch.zone": "Запустить зону",
+    "label.lb.algorithm.leastconn": "Least connections",
+    "label.lb.algorithm.roundrobin": "Round-robin",
+    "label.lb.algorithm.source": "Источник",
+    "label.ldap.configuration": "LDAP Configuration",
+    "label.ldap.group.name": "LDAP Group",
+    "label.ldap.link.type": "Тип",
+    "label.ldap.port": "LDAP port",
+    "label.level": "Уровень",
+    "label.link.domain.to.ldap": "Link Domain to LDAP",
+    "label.linklocal.ip": "Локальный IP адрес",
+    "label.load.balancer": "Балансировщик нагрузки",
+    "label.load.balancer.type": "Load Balancer Type",
+    "label.load.balancing": "Балансировка нагрузки",
+    "label.load.balancing.policies": "Политики балансировки нагрузки",
+    "label.loading": "Загрузка",
+    "label.local": "Локальный",
+    "label.local.file": "Local file",
+    "label.local.storage": "Локальное хранилище",
+    "label.local.storage.enabled": "Включить локальное хранилище для пользовательских ВМ",
+    "label.local.storage.enabled.system.vms": "Enable local storage for System VMs",
+    "label.login": "Войти",
+    "label.logout": "Выйти",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC Traffic Label",
+    "label.make.project.owner": "Сделать аккаунт владельцем проекта",
+    "label.make.redundant": "Make redundant",
+    "label.manage": "Управление",
+    "label.manage.resources": "Управление ресурсами",
+    "label.managed": "Управляемый",
+    "label.management": "Управление",
+    "label.management.ips": "Панель управления IP адрессами",
+    "label.management.server": "Сервер упраления",
+    "label.max.cpus": "Макс. ядер ЦП",
+    "label.max.guest.limit": "Ограничения количества гостей",
+    "label.max.instances": "Max Instances",
+    "label.max.memory": "Макс. памяти (в МиБ)",
+    "label.max.networks": "Максимум сетей",
+    "label.max.primary.storage": "Макс. основного хранилища (в ГиБ)",
+    "label.max.public.ips": "Макс. публичных IP",
+    "label.max.secondary.storage": "Макс. вторичного хранилища (в ГиБ)",
+    "label.max.snapshots": "Макс. снимков",
+    "label.max.templates": "Макс. шаблонов",
+    "label.max.vms": "Макс. количество пользовательских ВМ",
+    "label.max.volumes": "Макс. дисков",
+    "label.max.vpcs": "Макс. VPC",
+    "label.maximum": "Максимум",
+    "label.may.continue": "Вы можете продолжить.",
+    "label.md5.checksum": "Проверить MD5 сумму",
+    "label.memory": "Память",
+    "label.memory.allocated": "Выделено памяти",
+    "label.memory.limits": "Ограничения памяти (в МиБ)",
+    "label.memory.mb": "Память (в МБ)",
+    "label.memory.total": "Всего памяти",
+    "label.memory.used": "Использовано памяти",
+    "label.menu.accounts": "Учётные записи",
+    "label.menu.alerts": "Предупреждения",
+    "label.menu.all.accounts": "Все учётные записи",
+    "label.menu.all.instances": "Все машины",
+    "label.menu.community.isos": "ISO-сообщества",
+    "label.menu.community.templates": "Шаблоны сообщества",
+    "label.menu.configuration": "Конфигурация",
+    "label.menu.dashboard": "Панель управления",
+    "label.menu.destroyed.instances": "Уничтоженные машины",
+    "label.menu.disk.offerings": "Услуги дискового пространства",
+    "label.menu.domains": "Домены",
+    "label.menu.events": "События",
+    "label.menu.featured.isos": "Рекомендуемые ISO",
+    "label.menu.featured.templates": "Рекомендуемые шаблоны",
+    "label.menu.global.settings": "Основные настройки",
+    "label.menu.infrastructure": "Инфраструктура",
+    "label.menu.instances": "Машины",
+    "label.menu.ipaddresses": "IP-адреса",
+    "label.menu.isos": "ISO",
+    "label.menu.my.accounts": "Мои учётные записи",
+    "label.menu.my.instances": "Мои машины",
+    "label.menu.my.isos": "Мои ISO",
+    "label.menu.my.templates": "Мои шаблоны",
+    "label.menu.network": "Сеть",
+    "label.menu.network.offerings": "Услуги сети",
+    "label.menu.physical.resources": "Физические ресурсы",
+    "label.menu.regions": "Регион",
+    "label.menu.running.instances": "Работающие машины",
+    "label.menu.security.groups": "Группы безопасности",
+    "label.menu.service.offerings": "Услуги служб",
+    "label.menu.snapshots": "Снимки",
+    "label.menu.sshkeypair": "SSH KeyPair",
+    "label.menu.stopped.instances": "Остановленные машины",
+    "label.menu.storage": "Хранилище",
+    "label.menu.system": "Система",
+    "label.menu.system.service.offerings": "Системные ресурсы",
+    "label.menu.system.vms": "Системные ВМ",
+    "label.menu.templates": "Шаблоны",
+    "label.menu.virtual.appliances": "Виртуальные устройства",
+    "label.menu.virtual.resources": "Виртуальные ресурсы",
+    "label.menu.volumes": "Значения",
+    "label.menu.vpc.offerings": "Услуги VPS",
+    "label.metrics": "Metrics",
+    "label.metrics.allocated": "Распределено",
+    "label.metrics.clusters": "Кластеры",
+    "label.metrics.cpu.allocated": "CPU Allocation",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "CPU Usage",
+    "label.metrics.cpu.used.avg": "Использовано",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "Распределено",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Read",
+    "label.metrics.disk.size": "Размер",
+    "label.metrics.disk.storagetype": "Тип",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Unallocated",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "Использовано",
+    "label.metrics.disk.write": "Write",
+    "label.metrics.hosts": "Узлы",
+    "label.metrics.memory.allocated": "Mem Allocation",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Mem Usage",
+    "label.metrics.memory.used.avg": "Использовано",
+    "label.metrics.name": "Имя",
+    "label.metrics.network.read": "Read",
+    "label.metrics.network.usage": "Network Usage",
+    "label.metrics.network.write": "Write",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "Охват",
+    "label.metrics.state": "Состояние",
+    "label.metrics.storagepool": "Пул хранилища",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "Перенести машину в",
+    "label.migrate.instance.to.host": "Перенос машины на другой узел",
+    "label.migrate.instance.to.ps": "Перенос машины на другое основное хранилище",
+    "label.migrate.lb.vm": "Migrate LB VM",
+    "label.migrate.router.to": "Перенести роутер в",
+    "label.migrate.systemvm.to": "Перенести системную ВМ в",
+    "label.migrate.to.host": "Перенести на узел",
+    "label.migrate.to.storage": "Перенести на хранилище",
+    "label.migrate.volume": "Перенос диска",
+    "label.migrate.volume.to.primary.storage": "Перенести диск в другое основное хранилище",
+    "label.min.instances": "Min Instances",
+    "label.min.past.the.hr": "min past the hr",
+    "label.minimum": "Минимум",
+    "label.minute.past.hour": "Минут",
+    "label.minutes.past.hour": "minutes(s) past the hour",
+    "label.mode": "Режим",
+    "label.monday": "Понедельник",
+    "label.monthly": "Каждый месяц",
+    "label.more.templates": "Еще шаблоны",
+    "label.move.down.row": "Переместить на одну строку ниже",
+    "label.move.to.bottom": "Переместить вниз",
+    "label.move.to.top": "Переместить на самый верх",
+    "label.move.up.row": "Переместить на одну строку выше",
+    "label.my.account": "Моя учётная запись",
+    "label.my.network": "Моя сеть",
+    "label.my.templates": "Мои шаблоны",
+    "label.na": "N/A",
+    "label.name": "Имя",
+    "label.name.lower": "Имя",
+    "label.name.optional": "Имя (по желанию)",
+    "label.nat.port.range": "диапазон портов NAT",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "Сетевая маска",
+    "label.netscaler.details": "NetScaler details",
+    "label.network": "Сеть",
+    "label.network.ACL": "Сетевые ACL",
+    "label.network.ACL.total": "Всего сетевых ACL",
+    "label.network.ACLs": "Сетевые ACL",
+    "label.network.addVM": "Добавить сеть в ВМ",
+    "label.network.cidr": "Network CIDR",
+    "label.network.desc": "Описание сети",
+    "label.network.details": "Network Details",
+    "label.network.device": "Сетевое устройство",
+    "label.network.device.type": "Тип сетевого устройства",
+    "label.network.domain": "Сетевой домен",
+    "label.network.domain.text": "Сетевой домен",
+    "label.network.id": "ID сети",
+    "label.network.label.display.for.blank.value": "Исп. основной шлюз",
+    "label.network.limits": "Ограничения сети",
+    "label.network.name": "Имя сети",
+    "label.network.offering": "Сетевые услуги",
+    "label.network.offering.details": "Network offering details",
+    "label.network.offering.display.text": "Отображаемый текст сетевой услуги",
+    "label.network.offering.id": "ID сетевой услуги",
+    "label.network.offering.name": "Название сетевой услуги",
+    "label.network.rate": "Скорость сети",
+    "label.network.rate.megabytes": "Скорость сети  (MB/s)",
+    "label.network.read": "Прочитано через сеть",
+    "label.network.service.providers": "Поставщики сетевых служб",
+    "label.network.type": "Тип сети",
+    "label.network.write": "Записано через сеть",
+    "label.networking.and.security": "Сеть и безопасность",
+    "label.networks": "Сети",
+    "label.new": "Создать",
+    "label.new.password": "Новый пароль",
+    "label.new.project": "Новый проект",
+    "label.new.ssh.key.pair": "New SSH Key Pair",
+    "label.new.vm": "Новая ВМ",
+    "label.next": "Следующий",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "Сервер NFS",
+    "label.nfs.storage": "Хранилище NFS",
+    "label.nic.adapter.type": "Тип сетевой карты (NIC)",
+    "label.nicira.controller.address": "Адрес контроллера",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service Uuid",
+    "label.nicira.nvp.details": "Nicira NVP details",
+    "label.nicira.transportzoneuuid": "Transport Zone Uuid",
+    "label.nics": "Сетевые интерфейсы",
+    "label.no": "Нет",
+    "label.no.actions": "Нет доступных действий",
+    "label.no.alerts": "Тревог не получено",
+    "label.no.data": "Нет информации для показа",
+    "label.no.errors": "Ошибок не получено",
+    "label.no.grouping": "(no grouping)",
+    "label.no.isos": "Нет доступных ISO",
+    "label.no.items": "Нет доступных пунктов",
+    "label.no.security.groups": "Нет доступных групп безопасности",
+    "label.no.thanks": "Нет, спасибо",
+    "label.none": "Нет",
+    "label.not.found": "Не найдено",
+    "label.notifications": "Оповещения",
+    "label.num.cpu.cores": "Кол-во ядер CPU",
+    "label.number.of.clusters": "Количество кластеров",
+    "label.number.of.cpu.sockets": "The Number of CPU Sockets",
+    "label.number.of.hosts": "Количество узлов",
+    "label.number.of.pods": "Количество стендов",
+    "label.number.of.system.vms": "Количество системных ВМ",
+    "label.number.of.virtual.routers": "Количество виртуальных маршрутизаторов",
+    "label.number.of.zones": "Количество зон",
+    "label.numretries": "Количество попыток",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "of month",
+    "label.offer.ha": "Услуга повышенной отказоустойчивости",
+    "label.ok": "OK",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight Controller",
+    "label.opendaylight.controllerdetail": "OpenDaylight Controller Details",
+    "label.opendaylight.controllers": "OpenDaylight Controllers",
+    "label.operator": "Operator",
+    "label.optional": "Необязательно",
+    "label.order": "Очередь",
+    "label.os.preference": "Предпочтительная ОС",
+    "label.os.type": "Тип ОС",
+    "label.other": "Other",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "Действия",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "Пароль",
+    "label.outofbandmanagement.port": "Port",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "Имя пользователя",
+    "label.override.guest.traffic": "Override Guest-Traffic",
+    "label.override.public.traffic": "Override Public-Traffic",
+    "label.ovm.traffic.label": "OVM traffic label",
+    "label.ovm3.cluster": "Native Clustering",
+    "label.ovm3.pool": "Native Pooling",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "Master Vip IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "Присвоенные маршрутизируемые IP адреса",
+    "label.owner.account": "Учётная запись владельца",
+    "label.owner.domain": "Домен владельца",
+    "label.palo.alto.details": "Palo Alto details",
+    "label.parent.domain": "Родительский домен",
+    "label.passive": "Passive",
+    "label.password": "Пароль",
+    "label.password.enabled": "Пароль включен",
+    "label.password.lower": "Пароль",
+    "label.password.reset.confirm": "Пароль был сброшен в",
+    "label.path": "Путь",
+    "label.perfect.forward.secrecy": "Perfect Forward Secrecy",
+    "label.permission": "Permission",
+    "label.persistent": "Persistent ",
+    "label.physical.network": "Физические сети",
+    "label.physical.network.ID": "ID физической сети",
+    "label.physical.network.name": "Physical network name",
+    "label.ping.path": "Ping Path",
+    "label.planner.mode": "Planner mode",
+    "label.please.complete.the.following.fields": "Please complete the following fields",
+    "label.please.specify.netscaler.info": "Укажите данные NetScaler",
+    "label.please.wait": "Подождите",
+    "label.plugin.details": "Детали плагина",
+    "label.plugins": "Плагины",
+    "label.pod": "Стенд",
+    "label.pod.dedicated": "Pod Dedicated",
+    "label.pod.name": "Имя стенда",
+    "label.pods": "Стенды",
+    "label.polling.interval.sec": "Polling Interval (in sec)",
+    "label.port": "Port",
+    "label.port.forwarding": "Перенаправление портов",
+    "label.port.forwarding.policies": "Политики перенаправления портов",
+    "label.port.range": "Диапазон портов",
+    "label.portable.ip": "Portable IP",
+    "label.portable.ip.range.details": "Portable IP Range details",
+    "label.portable.ip.ranges": "Portable IP Ranges",
+    "label.portable.ips": "Portable IPs",
+    "label.powerstate": "Power State",
+    "label.prev": "Предыдуший",
+    "label.previous": "Предыдущий",
+    "label.primary.allocated": "Выделено основного хранилища",
+    "label.primary.network": "Основная сеть",
+    "label.primary.storage": "Основное хранилище",
+    "label.primary.storage.count": "Пул основного хранилища",
+    "label.primary.storage.limits": "Лимит основного хранилища (GiB)",
+    "label.primary.used": "Использовано основного хранилища",
+    "label.private.Gateway": "Частный шлюз",
+    "label.private.interface": "Частный интерфейс",
+    "label.private.ip": "Частный IP адрес",
+    "label.private.ip.range": "Диапазон частных IP адресов",
+    "label.private.ips": "Частные IP-адреса",
+    "label.private.key": "Private Key",
+    "label.private.network": "Частная сеть",
+    "label.private.port": "Частный порт",
+    "label.private.zone": "Частная зона",
+    "label.privatekey": "Частный ключ PKCS#8",
+    "label.profile": "Профиль",
+    "label.project": "Проект",
+    "label.project.dashboard": "Панель проекта",
+    "label.project.id": "ID проекта",
+    "label.project.invite": "Пригласить в проект",
+    "label.project.name": "Имя проекта",
+    "label.project.view": "Проекты",
+    "label.projects": "Проекты",
+    "label.protocol": "Протокол",
+    "label.protocol.number": "Protocol Number",
+    "label.provider": "Поставщики",
+    "label.providers": "Поставщики",
+    "label.public": "Публичный",
+    "label.public.interface": "Публичный интерфейс",
+    "label.public.ip": "Публичный IP-адрес",
+    "label.public.ips": "Публичные IP-адреса",
+    "label.public.key": "Public Key",
+    "label.public.lb": "Public LB",
+    "label.public.load.balancer.provider": "Public Load Balancer Provider",
+    "label.public.network": "Публичная сеть",
+    "label.public.port": "Публичный порт",
+    "label.public.traffic": "Публичный трафик",
+    "label.public.traffic.vswitch.name": "Public Traffic vSwitch Name",
+    "label.public.traffic.vswitch.type": "Public Traffic vSwitch Type",
+    "label.public.zone": "Публичная зона",
+    "label.purpose": "Назначение",
+    "label.qos.type": "Тип QoS",
+    "label.quickview": "Быстрый просмотр",
+    "label.quiesce.vm": "Quiesce VM",
+    "label.quiet.time.sec": "Quiet Time (in sec)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "Дата",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "End Date",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "Все учётные записи",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Start Date",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "Состояние",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx user",
+    "label.rbd.monitor": "Ceph monitor",
+    "label.rbd.pool": "Ceph pool",
+    "label.rbd.secret": "Cephx secret",
+    "label.reboot": "Перезагрузить",
+    "label.recent.errors": "Последние ошибки",
+    "label.recover.vm": "Востановить ВМ",
+    "label.redundant.router": "Резервной роутер",
+    "label.redundant.router.capability": "Возможности резервного роутера",
+    "label.redundant.state": "Состояние резерва",
+    "label.redundant.vpc": "Redundant VPC",
+    "label.refresh": "Обновить",
+    "label.refresh.blades": "Refresh Blades",
+    "label.region": "Регион",
+    "label.region.details": "Region details",
+    "label.regionlevelvpc": "Region Level VPC",
+    "label.reinstall.vm": "Переустановить ВМ",
+    "label.related": "Связанный",
+    "label.release.account": "Release from Account",
+    "label.release.account.lowercase": "Release from account",
+    "label.release.dedicated.cluster": "Release Dedicated Cluster",
+    "label.release.dedicated.host": "Release Dedicated Host",
+    "label.release.dedicated.pod": "Release Dedicated Pod",
+    "label.release.dedicated.vlan.range": "Release dedicated VLAN range",
+    "label.release.dedicated.zone": "Release Dedicated Zone",
+    "label.remind.later": "Предупредить позже",
+    "label.remove.ACL": "Удалить ACL",
+    "label.remove.egress.rule": "Удалить входящее правило",
+    "label.remove.from.load.balancer": "Удалить машину с балансировки нагрузки",
+    "label.remove.ingress.rule": "Удалить входящее правило",
+    "label.remove.ip.range": "Удалить диапазон IP",
+    "label.remove.ldap": "Remove LDAP",
+    "label.remove.network.offering": "Удалить сетевую услугу",
+    "label.remove.pf": "Далить правило перенаправление порта",
+    "label.remove.project.account": "Удалить учетную запись проекта",
+    "label.remove.region": "Удалить регион",
+    "label.remove.rule": "Удалить правило",
+    "label.remove.ssh.key.pair": "Remove SSH Key Pair",
+    "label.remove.static.nat.rule": "Удалить правило static NAT",
+    "label.remove.static.route": "Удалить статичный маршрут",
+    "label.remove.this.physical.network": "Remove this physical network",
+    "label.remove.tier": "Удалить tier",
+    "label.remove.vm.from.lb": "Удалить ВМ с правила балансировки нагрузки",
+    "label.remove.vm.load.balancer": "Удалить ВМ с балансировщика нагрузки",
+    "label.remove.vmware.datacenter": "Remove VMware datacenter",
+    "label.remove.vpc": "Удалить VPC",
+    "label.remove.vpc.offering": "Удалить услугу VPC",
+    "label.removing": "Удаление",
+    "label.removing.user": "Удаление пользователя",
+    "label.reource.id": "Resource ID",
+    "label.replace.acl": "Replace ACL",
+    "label.replace.acl.list": "Replace ACL List",
+    "label.required": "Требуется",
+    "label.requires.upgrade": "Requires Upgrade",
+    "label.reserved.ip.range": "Зарезервированный IP диапазон",
+    "label.reserved.system.gateway": "Зарезервированный системный шлюз",
+    "label.reserved.system.ip": "Зарезервированный системный IP",
+    "label.reserved.system.netmask": "Зарезервированная системная маска",
+    "label.reset.VPN.connection": "Восстановить VPN подключение",
+    "label.reset.ssh.key.pair": "Reset SSH Key Pair",
+    "label.reset.ssh.key.pair.on.vm": "Reset SSH Key Pair on VM",
+    "label.resetVM": "Сброс ВМ",
+    "label.resize.new.offering.id": "Новая услуга",
+    "label.resize.new.size": "Новый размер (GB)",
+    "label.resize.shrink.ok": "Shrink OK",
+    "label.resource": "Ресурс",
+    "label.resource.limit.exceeded": "Превышен лимит ресурсов",
+    "label.resource.limits": "Ограничение ресурсов",
+    "label.resource.name": "Resource Name",
+    "label.resource.state": "Состояние ресурсов",
+    "label.resources": "Ресурсы",
+    "label.response.timeout.in.sec": "Response Timeout (in sec)",
+    "label.restart.network": "Перезапустить сеть",
+    "label.restart.required": "Требуется перезапуск",
+    "label.restart.vpc": "Перезапустить VPC",
+    "label.restore": "Востановить",
+    "label.retry.interval": "Retry Interval",
+    "label.review": "Обзор",
+    "label.revoke.project.invite": "Отозвать приглашение",
+    "label.role": "Роль",
+    "label.roles": "Roles",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "Root certificate",
+    "label.root.disk.controller": "Контроллер основного диска",
+    "label.root.disk.offering": "Услуга основного диска",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "Router VM Scaled Up",
+    "label.routing": "Маршрутизация",
+    "label.routing.host": "Routing Host",
+    "label.rule": "Rule",
+    "label.rule.number": "Номер правила",
+    "label.rules": "Правила",
+    "label.running.vms": "Запущенные ВМ",
+    "label.s3.access_key": "Ключ доступа",
+    "label.s3.bucket": "Bucket",
+    "label.s3.connection_timeout": "Превышение времени ожидания соединения",
+    "label.s3.endpoint": "Конечная точка",
+    "label.s3.max_error_retry": "Max Error Retry",
+    "label.s3.nfs.path": "S3 NFS путь",
+    "label.s3.nfs.server": "S3 NFS Сервер",
+    "label.s3.secret_key": "Секретный ключ",
+    "label.s3.socket_timeout": "Превышение времени ожидания сокета",
+    "label.s3.use_https": "Используйте HTTPS",
+    "label.saml.enable": "Authorize SAML SSO",
+    "label.saml.entity": "Identity Provider",
+    "label.saturday": "Суббота",
+    "label.save": "Сохранить",
+    "label.save.and.continue": "Сохранить и продолжить",
+    "label.save.changes": "Save changes",
+    "label.saving.processing": "Сохранение...",
+    "label.scale.up.policy": "SCALE UP POLICY",
+    "label.scaledown.policy": "ScaleDown Policy",
+    "label.scaleup.policy": "ScaleUp Policy",
+    "label.scope": "Охват",
+    "label.search": "Поиск",
+    "label.secondary.ips": "Дополнительные IP-адреса",
+    "label.secondary.isolated.vlan.id": "Secondary Isolated VLAN ID",
+    "label.secondary.staging.store": "Secondary Staging Store",
+    "label.secondary.staging.store.details": "Secondary Staging Store details",
+    "label.secondary.storage": "Дополнительное хранилище",
+    "label.secondary.storage.count": "Пул дополнительного хранилища",
+    "label.secondary.storage.details": "Secondary storage details",
+    "label.secondary.storage.limits": "Лимит дополнительного хранилища (GiB)",
+    "label.secondary.storage.vm": "ВМ дополнительного хранилища",
+    "label.secondary.used": "Использование дополнительного хранилища",
+    "label.secret.key": "Секретный ключ",
+    "label.security.group": "Группа безопасности",
+    "label.security.group.name": "Имя группы безопасности",
+    "label.security.groups": "Группы безопасности",
+    "label.security.groups.enabled": "Группы безопасности включены",
+    "label.select": "Выбрать",
+    "label.select-view": "Выберите вид",
+    "label.select.a.template": "Выберите шаблон",
+    "label.select.a.zone": "Выберите зону",
+    "label.select.instance": "Выбирите сервер",
+    "label.select.instance.to.attach.volume.to": "Выберите машину для добавления диска",
+    "label.select.iso.or.template": "Выберите ISO или шаблон",
+    "label.select.offering": "Выберите предложение",
+    "label.select.project": "Выберите проект",
+    "label.select.region": "Выбрать регион",
+    "label.select.template": "Выберите шаблон",
+    "label.select.tier": "Выбрать Tier",
+    "label.select.vm.for.static.nat": "Выбор VM для NAT",
+    "label.sent": "Отправлено",
+    "label.server": "Сервер",
+    "label.service.capabilities": "Возможности службы",
+    "label.service.offering": "Служебный ресурс",
+    "label.service.offering.details": "Service offering details",
+    "label.service.state": "Состояние служб",
+    "label.services": "Services",
+    "label.session.expired": "Сеанс завершен",
+    "label.set.default.NIC": "Установить NIC по умолчанию",
+    "label.set.up.zone.type": "Настроить тип зоны",
+    "label.settings": "Настройки",
+    "label.setup": "Настройка",
+    "label.setup.network": "Set up Network",
+    "label.setup.zone": "Set up Zone",
+    "label.shared": "Общий",
+    "label.show.advanced.settings": "Показать дополнительные настройки",
+    "label.show.ingress.rule": "Показать входящее правило",
+    "label.shutdown.provider": "Отключить поставщика",
+    "label.simplified.chinese.keyboard": "Simplified Chinese keyboard",
+    "label.site.to.site.VPN": "Site-to-site VPN",
+    "label.size": "Размер",
+    "label.skip.guide": "Я уже использовал CloudStack, пропустить это руководство",
+    "label.smb.domain": "SMB Domain",
+    "label.smb.password": "SMB Password",
+    "label.smb.username": "SMB Username",
+    "label.snapshot": "Снимок",
+    "label.snapshot.limits": "Количество снимков",
+    "label.snapshot.name": "Имя снимка",
+    "label.snapshot.s": "Снимки",
+    "label.snapshot.schedule": "Set up Recurring Snapshot",
+    "label.snapshots": "Снимки",
+    "label.sockets": "CPU Sockets",
+    "label.source.ip.address": "Source IP Address",
+    "label.source.nat": "Source NAT",
+    "label.source.nat.supported": "SourceNAT Supported",
+    "label.source.port": "Source Port",
+    "label.specify.IP.ranges": "Укажите диапазон IP-адресов",
+    "label.specify.vlan": "Укажите VLAN",
+    "label.specify.vxlan": "Укажите VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX details",
+    "label.ssh.key.pair": "SSH Key Pair",
+    "label.ssh.key.pair.details": "SSH Key Pair Details",
+    "label.ssh.key.pairs": "SSH Key Pairs",
+    "label.standard.us.keyboard": "Standard (US) keyboard",
+    "label.start.IP": "Начальный IP",
+    "label.start.lb.vm": "Start LB VM",
+    "label.start.port": "Начальный порт",
+    "label.start.reserved.system.IP": "Начальный зарезервированный системный IP-адрес",
+    "label.start.vlan": "Start VLAN",
+    "label.start.vxlan": "Start VXLAN",
+    "label.state": "Состояние",
+    "label.static.nat": "Статичный NAT",
+    "label.static.nat.enabled": "Статический NAT включен",
+    "label.static.nat.to": "Статичный NAT к",
+    "label.static.nat.vm.details": "Статистика NAT виртуальных машин",
+    "label.static.routes": "Static Routes",
+    "label.statistics": "Статистика",
+    "label.status": "Статус",
+    "label.step.1": "Шаг 1",
+    "label.step.1.title": "Шаг 1: <strong>Выберите шаблон</strong>",
+    "label.step.2": "Шаг 2",
+    "label.step.2.title": "Шаг 2: <strong>Системный ресурс</strong>",
+    "label.step.3": "Шаг 3",
+    "label.step.3.title": "Step 3: <strong id=\"step3_label\">Выберите услугу дискового пространства</strong>",
+    "label.step.4": "Шаг 4",
+    "label.step.4.title": "Step 4: <strong>Сеть</strong>",
+    "label.step.5": "Шаг 5",
+    "label.step.5.title": "Step 5: <strong>Обзор</strong>",
+    "label.stickiness": "Липкий",
+    "label.stickiness.method": "Stickiness method",
+    "label.sticky.cookie-name": "Cookie name",
+    "label.sticky.domain": "Домен",
+    "label.sticky.expire": "Истекает",
+    "label.sticky.holdtime": "время удержания",
+    "label.sticky.indirect": "Косвенный",
+    "label.sticky.length": "Длина",
+    "label.sticky.mode": "Режим",
+    "label.sticky.name": "Sticky Name",
+    "label.sticky.nocache": "Нет кэша",
+    "label.sticky.postonly": "Только сообщение",
+    "label.sticky.prefix": "Префикс",
+    "label.sticky.request-learn": "Требуется изучение.",
+    "label.sticky.tablesize": "Размер таблицы",
+    "label.stop": "Остановить",
+    "label.stop.lb.vm": "Stop LB VM",
+    "label.stopped.vms": "Остановленные ВМ",
+    "label.storage": "Хранилище",
+    "label.storage.pool": "Пул хранилища",
+    "label.storage.tags": "Метки хранилища",
+    "label.storage.traffic": "Трафик хранилища",
+    "label.storage.type": "Тип хранилища",
+    "label.subdomain.access": "Доступ к поддомену",
+    "label.submit": "Опубликовать",
+    "label.submitted.by": "[Опубликовано: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "Успешно",
+    "label.sunday": "Воскресенье",
+    "label.super.cidr.for.guest.networks": "Super CIDR гостевой сети",
+    "label.supported.services": "Поддерживаемые службы",
+    "label.supported.source.NAT.type": "Поддерживаемые типы NAT-источника",
+    "label.supportsstrechedl2subnet": "Supports Streched L2 Subnet",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "Приостановить проект",
+    "label.switch.type": "Тип свича",
+    "label.system.capacity": "Мощность системы",
+    "label.system.offering": "Системные ресурсы",
+    "label.system.offering.for.router": "System Offering for Router",
+    "label.system.service.offering": "Услуги системных служб",
+    "label.system.service.offering.details": "System service offering details",
+    "label.system.vm": "Системная ВМ",
+    "label.system.vm.details": "Подробности сслужебной ВМ",
+    "label.system.vm.scaled.up": "System VM Scaled Up",
+    "label.system.vm.type": "Тип системной ВМ",
+    "label.system.vms": "Системные ВМ",
+    "label.system.wide.capacity": "Общесистемного потенциала",
+    "label.tag.key": "Tag Key",
+    "label.tag.value": "Tag Value",
+    "label.tagged": "С меткой",
+    "label.tags": "Метки",
+    "label.target.iqn": "Целевой IQN",
+    "label.task.completed": "Задача выполнена",
+    "label.template": "Шаблон",
+    "label.template.limits": "Пределы шаблона",
+    "label.tftp.root.directory": "Tftp root directory",
+    "label.theme.default": "Стандартная тема",
+    "label.theme.grey": "Серая тема",
+    "label.theme.lightblue": "Голубая тема",
+    "label.threshold": "Threshold",
+    "label.thursday": "Четверг",
+    "label.tier": "Tier",
+    "label.tier.details": "Подробности Tier",
+    "label.time": "Время",
+    "label.time.colon": "Time:",
+    "label.time.zone": "Часовой пояс",
+    "label.timeout": "Время ожидания",
+    "label.timeout.in.second ": " Timeout (seconds)",
+    "label.timezone": "Часовой пояс",
+    "label.timezone.colon": "Timezone:",
+    "label.token": "Токен",
+    "label.total.CPU": "Всего CPU",
+    "label.total.cpu": "Всего CPU",
+    "label.total.hosts": "Всего узлов",
+    "label.total.memory": "Всего памяти",
+    "label.total.of.ip": "Всего IP-адресов",
+    "label.total.of.vm": "Всего ВМ",
+    "label.total.storage": "Всего хранения",
+    "label.total.virtual.routers": "Количество виртуальных маршрутизаторов",
+    "label.total.virtual.routers.upgrade": "Total of Virtual Routers that require upgrade",
+    "label.total.vms": "Всего ВМ",
+    "label.traffic.label": "Трафик",
+    "label.traffic.type": "Тип трафика",
+    "label.traffic.types": "Типы трафика",
+    "label.tuesday": "Вторник",
+    "label.type": "Тип",
+    "label.type.id": "ID типа",
+    "label.type.lower": "Тип",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "UK keyboard",
+    "label.unavailable": "Не доступно",
+    "label.unhealthy.threshold": "Unhealthy Threshold",
+    "label.unlimited": "Бесконечно",
+    "label.untagged": "Без метки",
+    "label.update.project.resources": "Обновить ресурсы проекта",
+    "label.update.ssl": " Обновить сертификаты SSL",
+    "label.update.ssl.cert": " Обновить сертификаты SSL",
+    "label.updating": "Обновление",
+    "label.upgrade.required": "Upgrade is required",
+    "label.upgrade.router.newer.template": "Upgrade Router to Use Newer Template",
+    "label.upload": "Загрузить",
+    "label.upload.from.local": "Upload from Local",
+    "label.upload.template.from.local": "Upload Template from Local",
+    "label.upload.volume": "Загрузить  диск",
+    "label.upload.volume.from.local": "Upload Volume from Local",
+    "label.upload.volume.from.url": "Upload volume from URL",
+    "label.url": "URL",
+    "label.usage.interface": "Интерфейс использования",
+    "label.usage.sanity.result": "Usage Sanity Result",
+    "label.usage.server": "Сервер статистики",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "Используйте IP ВМ:",
+    "label.use.vm.ips": "Используемые ВМ IPs",
+    "label.used": "Использовано",
+    "label.user": "Пользователь",
+    "label.user.data": "User Data",
+    "label.user.details": "User details",
+    "label.user.vm": "User VM",
+    "label.username": "Имя пользователя",
+    "label.username.lower": "Имя пользователя",
+    "label.users": "Пользователи",
+    "label.vSwitch.type": "vSwitch Type",
+    "label.value": "Значение",
+    "label.vcdcname": "Имя vCenter DC",
+    "label.vcenter": "vcenter",
+    "label.vcenter.cluster": "Кластер vCenter",
+    "label.vcenter.datacenter": "ЦОД vCenter",
+    "label.vcenter.datastore": "Хранилище vCenter",
+    "label.vcenter.host": "Узел vCenter",
+    "label.vcenter.password": "Пароль vCenter",
+    "label.vcenter.username": "Имя пользователя vCenter",
+    "label.vcipaddress": "vCenter IP Адресс",
+    "label.version": "Версия",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "Max resolution",
+    "label.vgpu.max.vgpu.per.gpu": "vGPUs per GPU",
+    "label.vgpu.remaining.capacity": "Осташиеся емкость",
+    "label.vgpu.type": "vGPU type",
+    "label.vgpu.video.ram": "Video RAM",
+    "label.view": "Вид",
+    "label.view.all": "Просмотреть всё",
+    "label.view.console": "Показать консоль",
+    "label.view.more": "Просмотреть больше",
+    "label.view.secondary.ips": "Обзор дополнительных IP-адресов",
+    "label.viewing": "Просмотр",
+    "label.virtual.appliance": "Виртуальное устройство",
+    "label.virtual.appliance.details": "Virtual applicance details",
+    "label.virtual.appliances": "Виртуальные устройства",
+    "label.virtual.machine": "Виртуальная машина",
+    "label.virtual.machines": "Виртуальные машины",
+    "label.virtual.network": "Виртуальная сеть",
+    "label.virtual.networking": "Виртуальнаt сети",
+    "label.virtual.router": "Виртуальный роутер",
+    "label.virtual.routers": "Виртуальный роутер",
+    "label.virtual.routers.group.account": "Virtual Routers group by account",
+    "label.virtual.routers.group.cluster": "Virtual Routers group by cluster",
+    "label.virtual.routers.group.pod": "Virtual Routers group by pod",
+    "label.virtual.routers.group.zone": "Virtual Routers group by zone",
+    "label.vlan": "VLAN",
+    "label.vlan.id": "ID VLAN",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI Range",
+    "label.vlan.range.details": "VLAN Range details",
+    "label.vlan.ranges": "VLAN Range(s)",
+    "label.vlan.vni.range": "VLAN/VNI Range",
+    "label.vlan.vni.ranges": "VLAN/VNI Range(s)",
+    "label.vm.add": "Добавить машины",
+    "label.vm.destroy": "Уничтожить",
+    "label.vm.display.name": "Отображаемое имя ВМ",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "ВМ IP-адрес",
+    "label.vm.name": "Имя VM",
+    "label.vm.password": "Password of the VM is",
+    "label.vm.reboot": "Перезагрузить",
+    "label.vm.start": "Запустить",
+    "label.vm.state": "Статус сервера",
+    "label.vm.stop": "Остановить",
+    "label.vmfs": "VMFS",
+    "label.vms": "ВМ",
+    "label.vmsnapshot": "Снимок ВМ",
+    "label.vmsnapshot.current": "Текущей",
+    "label.vmsnapshot.memory": "Снимок памяти",
+    "label.vmsnapshot.parentname": "Родитель",
+    "label.vmsnapshot.type": "Тип",
+    "label.vmware.datacenter.id": "VMware datacenter ID",
+    "label.vmware.datacenter.name": "VMware datacenter Name",
+    "label.vmware.datacenter.vcenter": "VMware datacenter vcenter",
+    "label.vmware.traffic.label": "Метка трафика VMware",
+    "label.vnet": "VLAN",
+    "label.vnet.id": "ID VLAN",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC Devices",
+    "label.volatile": "Volatile",
+    "label.volgroup": "Группа диска",
+    "label.volume": "Том",
+    "label.volume.details": "Информация о диске",
+    "label.volume.limits": "Количетсво дисков",
+    "label.volume.migrated": "Диск перенесён",
+    "label.volume.name": "Имя тома",
+    "label.volumes": "Значения",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "Distributed VPC Router",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "Услуга VPC",
+    "label.vpc.offering.details": "Детали услуги VPC",
+    "label.vpc.router.details": "VPC Router Details",
+    "label.vpc.supportsregionlevelvpc": "Supports Region Level VPC",
+    "label.vpc.virtual.router": "VPC Virtual Router",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN шлюз клиента",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "Control VLAN ID",
+    "label.vsmpktvlanid": "Packet VLAN ID",
+    "label.vsmstoragevlanid": "Storage VLAN ID",
+    "label.vsphere.managed": "vSphere Managed",
+    "label.vswitch.name": "vSwitch Name",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "Диапазон Range",
+    "label.waiting": "Ожидание",
+    "label.warn": "Внимание",
+    "label.warn.upper": "WARN",
+    "label.warning": "Warning",
+    "label.wednesday": "Среда",
+    "label.weekly": "Еженедельно",
+    "label.welcome": "Добро пожаловать",
+    "label.welcome.cloud.console": "Добро пожаловать в панель управления",
+    "label.what.is.cloudstack": "Введение в CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "Original XS Version is 6.1+",
+    "label.xenserver.traffic.label": "Метка трафика XenServer",
+    "label.yes": "Да",
+    "label.zone": "Зона",
+    "label.zone.dedicated": "Zone Dedicated",
+    "label.zone.details": "Подробности зоны",
+    "label.zone.id": "ID зоны",
+    "label.zone.lower": "Зона",
+    "label.zone.name": "Zone Name",
+    "label.zone.step.1.title": "Шаг 1: <strong>Выберите сеть</strong>",
+    "label.zone.step.2.title": "Step 2: <strong>Добавьте зону</strong>",
+    "label.zone.step.3.title": "Step 3: <strong>Добавьте стенд</strong>",
+    "label.zone.step.4.title": "Step 4: <strong>Добавьте диапазон IP-адресов</strong>",
+    "label.zone.type": "Тип зоны",
+    "label.zone.wide": "Всей зоны",
+    "label.zoneWizard.trafficType.guest": "Гостевой: Трафик между виртуальными машинами пользователей",
+    "label.zoneWizard.trafficType.management": "Управление: Трафик между внутренним ресурсам CloudStack, в том числе любых компонентов, которые взаимодействуют с сервером управления, таких как узлы и системные виртуальные машины.",
+    "label.zoneWizard.trafficType.public": "Публичный: трафик между интернетом и виртуальными машинами в облаке",
+    "label.zoneWizard.trafficType.storage": "Хранилище: Трафик между первичными и вторичными серверами хранения, таких как шаблоны и снимки виртуальных машин.",
+    "label.zones": "Зоны",
+    "managed.state": "Режим обслуживания",
+    "message.XSTools61plus.update.failed": "Failed to update Original XS Version is 6.1+ field. Error:",
+    "message.Zone.creation.complete": "Создание зоны завершено",
+    "message.acquire.ip.nic": "Пожалуйста, подтвердите, что вы хотели бы запросить новый приватный IP для этой сетевой карты. <br/>Примечание: Вы должны вручную настроить недавно  полученный IP внутри виртуальной машины.",
+    "message.acquire.new.ip": "Подтвердите, что вы действительно хотите получить \"белый\" IP для этой сети.",
+    "message.acquire.new.ip.vpc": "Подтвердите, что вы действительно хотите получить \"белый\" IP для этого VPC.",
+    "message.acquire.public.ip": "Пожалуйста, выберите зону, из которой вы хотите приобрести новый IP.",
+    "message.action.cancel.maintenance": "Узел успешно вышел из режима обслуживания. Этот процесс может длиться несколько минут.",
+    "message.action.cancel.maintenance.mode": "Подтвердите, что вы действительно хотите отменить режим обслуживания.",
+    "message.action.change.service.warning.for.instance": "Перед изменением набора сервисов Ваша машина должна быть остановлена",
+    "message.action.change.service.warning.for.router": "Для смены набора услуг Ваш роутер должен быть остановлен",
+    "message.action.delete.ISO": "Пожалуйста подтвердите, что хотите удалить этот ISO.",
+    "message.action.delete.ISO.for.all.zones": "ISO используется всеми зонами. Пожалуйста подтвердите, что Вы хотите удалить его из всех зон.",
+    "message.action.delete.cluster": "Пожалуйста подтвердите, что хотите удалить этот кластер.",
+    "message.action.delete.disk.offering": "Пожалуйста подтвердите, что ВЫ хотите удалить эту услугу дискового пространства",
+    "message.action.delete.domain": "Пожалуйста подтвердите, что хотите удалить этот домен.",
+    "message.action.delete.external.firewall": "Пожалуйста подтвердите, что хотите удалить этот внешний фаервол. Предупредение: Если Вы в дальнейшем вернуть обратно этот же внешний фаервол, Вы должны будете сбросить данные на этом устройстве.",
+    "message.action.delete.external.load.balancer": "Пожалуйста подтвердите, что хотите удалить этот внешний балансировщик нагрузки. Предупредение: Если Вы в дальнейшем вернуть обратно этот же внешний фаервол, Вы должны будете сбросить данные на этом устройстве",
+    "message.action.delete.ingress.rule": "Пожалуйста подтвердите, что Вы хотите удалить правило.",
+    "message.action.delete.network": "Пожалуйста подтвердите, что Вы хотите удалить эту сеть.",
+    "message.action.delete.nexusVswitch": "Пожалуйста, подтвердите, что вы хотите удалить это nexus 1000v",
+    "message.action.delete.nic": "Пожалуйста, подтвердите, что хотите удалить этот NIC, который также удалит все связанные сети из ВМ.",
+    "message.action.delete.physical.network": "Пожалуйста, подтвердите, что вы хотите удалить эту физическую сеть",
+    "message.action.delete.pod": "Подтвердите, что вы действительно хотите включить этот стенд.",
+    "message.action.delete.primary.storage": "Пожалуйста подтвердите, что Вы хотитк удалить это основное хранилище.",
+    "message.action.delete.secondary.storage": "Пожалуйста подтвердите, что Вы хотитк удалить это дополнительное хранилище",
+    "message.action.delete.security.group": "Пожалуйста подтвердите, что Вы хотитк удалить эту security group.",
+    "message.action.delete.service.offering": "Пожалуйста подтвердите, что ВЫ хотите удалить эту услугу служб",
+    "message.action.delete.snapshot": "Пожалуйста подтвердите, что Вы хотитк удалить этот снимок.",
+    "message.action.delete.system.service.offering": "Подтвердите, что вы действительно хотите удалить этот служебный ресурс.",
+    "message.action.delete.template": "Пожалуйста подтвердите, что Вы хотитк удалить этот шаблон.",
+    "message.action.delete.template.for.all.zones": "Этот шаблон используется во всех зонах. Пожалуйста подтвердите, что Вы хотитк удалить его во всех зонах.",
+    "message.action.delete.volume": "Пожалуйста подтвердите, что Вы хотите удалть этот том.",
+    "message.action.delete.zone": "Пожалуйста подтвердите, что Вы хотите удалть эту зону.",
+    "message.action.destroy.instance": "Пожалуйста подтвердите, что Вы хотите уничтожить эту машину.",
+    "message.action.destroy.systemvm": "Подтвердите, что вы действительно хотите удалить эту системную ВМ.",
+    "message.action.disable.cluster": "Пожалуйста подтвердите, что Вы хотите отключить данный кластер.",
+    "message.action.disable.nexusVswitch": "Пожалуйста, подтвердите, что вы хотите включить это nexusVswitch.",
+    "message.action.disable.physical.network": "Подтвердите, что вы действительно хотите выключить эту физическую сеть.",
+    "message.action.disable.pod": "Подтвердите, что вы действительно хотите включить этот стенд.",
+    "message.action.disable.static.NAT": "Пожалуйста подтвердите, что Вы хотите деактивировать статическую трансляцию адресов.",
+    "message.action.disable.zone": "Пожалуйста подтвердите, что Вы хотите отключить данную зону.",
+    "message.action.download.iso": "Подтвердите, что вы действительно хотите загрузить этот ISO.",
+    "message.action.download.template": "Подтвердите, что вы действительно хотите загрузить этот шаблон.",
+    "message.action.downloading.template": "Downloading template.",
+    "message.action.enable.cluster": "Пожалуйста подтвердите, что Вы хотите включить данный кластер.",
+    "message.action.enable.maintenance": "Ваш сервер успешно подготовлен для обслуживания. Этот процесс может занять несколько минут или более в зависимости от количества виртуальных машин, работающих на нем в данное время.",
+    "message.action.enable.nexusVswitch": "Пожалуйста, подтвердите, что вы хотите включить это nexus 1000v.",
+    "message.action.enable.physical.network": "Подтвердите, что вы действительно хотите включить эту физическую сеть.",
+    "message.action.enable.pod": "Подтвердите, что вы действительно хотите включить этот стенд.",
+    "message.action.enable.zone": "Пожалуйста подтвердите, что Вы хотите активировать эту зону.",
+    "message.action.expunge.instance": "Please confirm that you want to expunge this instance.",
+    "message.action.force.reconnect": "Ваш сервер получил команду принудительного повторного подключения. Этот процесс может занять до нескольких минут.",
+    "message.action.host.enable.maintenance.mode": "Активация режима обслуживания приведет к принудительной миграции всех работающих на данном сервере виртуальных машин.",
+    "message.action.instance.reset.password": "Пожалуйста подтвердите, что Вы хотите изменить пароль администратора для этой виртуальной машины.",
+    "message.action.manage.cluster": "Подтвердите, что вы действительно хотите перевести кластер в режим обслуживания.",
+    "message.action.primarystorage.enable.maintenance.mode": "Предупреждение: перевод основного хранилища в режим обслуживания приведет к остановке всех использующих его виртуальных машин. Вы хотите продолжить?",
+    "message.action.reboot.instance": "Подтвердите, что вы действительно хотите перезагрузить эту машину.",
+    "message.action.reboot.router": "Подтвердите, что вы действительно хотите перезагрузить этот роутер.",
+    "message.action.reboot.systemvm": "Подтвердите, что вы действительно хотите запустить эту системную ВМ.",
+    "message.action.release.ip": "Пожалуйста подтвержите желание освободить этот IP адрес.",
+    "message.action.remove.host": "Удаление последнего/единственного сервера в кластере и повторная его установка приведет уничтожению рабочего окружения/базы данных на сервере и сделае гостевые машины непригодными к использованию.",
+    "message.action.reset.password.off": "На данный момент машина не поддерживает данную функцию",
+    "message.action.reset.password.warning": "Перед попыткой сменить пароль Ваша машина должна быть остановлена.",
+    "message.action.restore.instance": "Пожалуйста подтвердите желание восстановить эту машину.",
+    "message.action.revert.snapshot": "Подтвердите, что вы действительно хотите вернуть диск к этому том снимку",
+    "message.action.start.instance": "Пожалуйста подтвердите желание запустить эту машину.",
+    "message.action.start.router": "Пожалуйста подтвердите желание запустить этот роутер.",
+    "message.action.start.systemvm": "Подтвердите, что вы действительно хотите запустить эту системную ВМ.",
+    "message.action.stop.instance": "Пожалуйста подтвердите желание остановить эту машину.",
+    "message.action.stop.router": "Подтвердите, что вы действительно хотите остановить этот роутер.",
+    "message.action.stop.systemvm": "Пожалуйста подтвердите желание остановить эту служебную машину.",
+    "message.action.take.snapshot": "Подтвердите, что вы действительно хотите получить снимок этого диска.",
+    "message.action.unmanage.cluster": "Подтвердите, что вы действительно хотите перевести кластер в обычный режим.",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "Пожалуйста подтвердите, что Вы хотите удалить этот снимок ВМ.",
+    "message.action.vmsnapshot.revert": "Восстановить снимок ВМ",
+    "message.activate.project": "Вы действительно хотите запустить этот проект?",
+    "message.add.VPN.gateway": "Пожалуйста подтвердите желание добавить VPN шлюз",
+    "message.add.cluster": "Добавить кластер гипервизоров в зоне <b><span id=\"zone_name\"></span></b>, pod <b><span id=\"pod_name\"></span></b>",
+    "message.add.cluster.zone": "Добавить кластер гипервизоров в зоне <b><span id=\"zone_name\"></span></b>",
+    "message.add.disk.offering": "Пожалуйста укажите необходимые параметры для добавления услуги дискового пространства",
+    "message.add.domain": "Укажите поддомен, где вы хотите создать ваш домен",
+    "message.add.firewall": "Добавить фаервол в зону",
+    "message.add.guest.network": "Подтвердите, что вы действительно хотите добавить гостевую сеть",
+    "message.add.host": "Укажите следующие параметры для добавления нового узла.",
+    "message.add.ip.range": "Добавить диапазон IP-адресов в публичную сеть зоны",
+    "message.add.ip.range.direct.network": "Добавить IP-диапазона сети <b><span id=\"directnetwork_name\"></span></b> в зоне <b><span id=\"zone_name\"></span></b>",
+    "message.add.ip.range.to.pod": "<p>Добавить диапазон IP-адресов в стенд: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "Добавить балансировку нагрузки в зону",
+    "message.add.load.balancer.under.ip": "Правило балансировки нагрузки был добавлен в IP:",
+    "message.add.network": "Добавить новую сеть для зоны: <b><span id=\"zone_name\"></span></b>",
+    "message.add.new.gateway.to.vpc": "Укажите следующие информацию для добавления нового шлюза в VPC",
+    "message.add.pod": "Добавить новый стенд для зоны <b><span id=\"add_pod_zone_name\"></span></b>",
+    "message.add.pod.during.zone.creation": "Каждая зона содержит один или более стендов, который вы сейчас добавите первым. Стенд содержит узлы и серверы основного хранилища, которые будут добавлены в последнем шаге. Для начала необходимо настроить диапазон резервных адресов IP для внутренней сети управления. Диапазон резервных IP должен быть уникальным для каждой зоны облака.",
+    "message.add.primary": "Пожалуйста укажите следующие параметры для добавления нового основного зранилища",
+    "message.add.primary.storage": "Добавить основное хранилище для зоны <b><span id=\"zone_name\"></span></b>, стенда <b><span id=\"pod_name\"></span></b>",
+    "message.add.region": "Пожалуйста укажите следующую информацию для добавления нового региона.",
+    "message.add.secondary.storage": "Добавить хранилище в зону <b><span id=\"zone_name\"></span></b>",
+    "message.add.service.offering": "Укажите следующие параметры для добавления нового вычислительного ресурса.",
+    "message.add.system.service.offering": "Пожалуйста заполните следующие параметры для добавления новой сервисной услуги",
+    "message.add.template": "Пожалуйста введите следующие данные для создания нового шаблона",
+    "message.add.volume": "Пожалуйста введите следующие данные для добавления нового диска.",
+    "message.added.new.nuage.vsp.controller": "Added new Nuage Vsp Controller",
+    "message.added.vpc.offering": "Added VPC offering",
+    "message.adding.Netscaler.device": "Добавление устройства NetScaler",
+    "message.adding.Netscaler.provider": "Добавить Netscaler",
+    "message.adding.host": "Добавление узла",
+    "message.additional.networks.desc": "Пожалуйста укажите дополнительные сети к которым будет подключена Ваша машина.",
+    "message.admin.guide.read": "For VMware-based VMs, please read the dynamic scaling section in the admin guide before scaling. Would you like to continue?,",
+    "message.advanced.mode.desc": "Выберите эту сетевую модель если Вы хотите использовать технологию VLAN. Эта сетевая модель предлагает наибольшую гибкость, позволяя администраторам предлагать такие сетевые сервисы, как фаервол, ВПН, балансировщик нагрузки, а так же выбирать прямое или подключение через  виртуальные частные сети.",
+    "message.advanced.security.group": "Выберите это, если хотите использовать security groups для предоставления изоляции гостевых виртуальных машин.",
+    "message.advanced.virtual": "Выберите это, если хотите использовать VLAN для предоставления изоляции гостевых виртуальных машин.",
+    "message.after.enable.s3": "S3-совместимое дополнительное хранилище настроено. Примечание: Если вы покинете эту страницу, вам не придется настраивать S3 снова.",
+    "message.after.enable.swift": "Swift настроен. Примечание: Если вы покинете эту страницу, вам не придется настраивать Swift снова",
+    "message.alert.state.detected": "Обнаружен сигнал тревоги",
+    "message.allow.vpn.access": "Пожалуйста введите имя и пароль пользователя, которому Вы хотите предоставить VPN доступ.",
+    "message.apply.snapshot.policy": "Вы успешно обновили политику создания резервных копий.",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "Пожалуйста подтвердите желание подключить ISO к этой виртуальной машине.",
+    "message.attach.volume": "Пожалуйста заполните следующие данные для подключеиня нового диска. Если Вы подключаете диск к виртуальной машине Windows, потребуется перезагрузка для того, что бы диск был окончательно подключен.",
+    "message.basic.mode.desc": "Выберите эту сетевую модель, если Вы <b>*<u>не</u>*</b> хотите активировать поддержку VLAN.  Всем созданным в рамках данной сетевой модели виртуальным машинам будет напрямую присвоен маршрутизируемый IP адрес. Для обеспечения безопасности используется функционал Security groups.",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "Пожалуйста подтвердите, что Вы хотите изменить услуги служб этой виртуальной машины.",
+    "message.change.password": "Измените ваш пароль.",
+    "message.cluster.dedicated": "Cluster Dedicated",
+    "message.cluster.dedication.released": "Cluster dedication released",
+    "message.configure.all.traffic.types": "У вас есть несколько физических сетей, пожалуйста, настроить метки для каждого типа трафика, нажав на кнопку Изменить.",
+    "message.configure.firewall.rules.allow.traffic": "Configure the rules to allow Traffic",
+    "message.configure.firewall.rules.block.traffic": "Configure the rules to block Traffic",
+    "message.configure.ldap": "Please confirm you would like to configure LDAP.",
+    "message.configuring.guest.traffic": "Настройка гостевого трафика",
+    "message.configuring.physical.networks": "Настройка физических сетей",
+    "message.configuring.public.traffic": "Настройка публичного трафика",
+    "message.configuring.storage.traffic": "Настройка трафика хранилища",
+    "message.confirm.action.force.reconnect": "Подтвердите, что вы действительно хотите переподключиться к узлу",
+    "message.confirm.add.vnmc.provider": "Please confirm you would like to add the VNMC provider.",
+    "message.confirm.archive.alert": "Please confirm that you want to archive this alert.",
+    "message.confirm.archive.event": "Please confirm that you want to archive this event.",
+    "message.confirm.archive.selected.alerts": "Please confirm you would like to archive the selected alerts",
+    "message.confirm.archive.selected.events": "Please confirm you would like to archive the selected events",
+    "message.confirm.attach.disk": "Are you sure you want to attach disk?",
+    "message.confirm.create.volume": "Are you sure you want to create volume?",
+    "message.confirm.current.guest.CIDR.unchanged": "Do you want to keep the current guest network CIDR unchanged?",
+    "message.confirm.dedicate.cluster.domain.account": "Do you really want to dedicate this cluster to a domain/account? ",
+    "message.confirm.dedicate.host.domain.account": "Do you really want to dedicate this host to a domain/account? ",
+    "message.confirm.dedicate.pod.domain.account": "Do you really want to dedicate this pod to a domain/account? ",
+    "message.confirm.dedicate.zone": "Do you really want to dedicate this zone to a domain/account?",
+    "message.confirm.delete.BigSwitchBcf": "Please confirm that you would like to delete this BigSwitch BCF Controller",
+    "message.confirm.delete.BrocadeVcs": "Please confirm that you would like to delete Brocade Vcs Switch",
+    "message.confirm.delete.F5": "Подтвердите, что вы действительно хотите удалить F5",
+    "message.confirm.delete.NetScaler": "Подтвердите, что вы действительно хотите удалить NetScaler",
+    "message.confirm.delete.NuageVsp": "Please confirm that you would like to delete Nuage Virtualized Services Directory",
+    "message.confirm.delete.PA": "Подтвердите, что вы действительно хотите удалить Palo Alto",
+    "message.confirm.delete.SRX": "Подтвердите, что вы действительно хотите удалить SRX",
+    "message.confirm.delete.acl.list": "Are you sure you want to delete this ACL list?",
+    "message.confirm.delete.alert": "Are you sure you want to delete this alert ?",
+    "message.confirm.delete.baremetal.rack.configuration": "Please confirm that you want to delete Baremetal Rack Configuration.",
+    "message.confirm.delete.ciscoASA1000v": "Please confirm you want to delete CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "Please confirm you want to delete CiscoVNMC resource",
+    "message.confirm.delete.internal.lb": "Please confirm you want to delete Internal LB",
+    "message.confirm.delete.secondary.staging.store": "Please confirm you want to delete Secondary Staging Store.",
+    "message.confirm.delete.ucs.manager": "Please confirm that you want to delete UCS Manager",
+    "message.confirm.destroy.router": "Подтвердите, что вы действительно хотите удалить роутер",
+    "message.confirm.disable.host": "Please confirm that you want to disable the host",
+    "message.confirm.disable.network.offering": "Are you sure you want to disable this network offering?",
+    "message.confirm.disable.provider": "Подтвердите, что вы действительно хотите выключить поставщика",
+    "message.confirm.disable.vnmc.provider": "Please confirm you would like to disable the VNMC provider.",
+    "message.confirm.disable.vpc.offering": "Are you sure you want to disable this VPC offering?",
+    "message.confirm.enable.host": "Please confirm that you want to enable the host",
+    "message.confirm.enable.network.offering": "Are you sure you want to enable this network offering?",
+    "message.confirm.enable.provider": "Подтвердите, что вы действительно хотите включить поставщика",
+    "message.confirm.enable.vnmc.provider": "Please confirm you would like to enable the VNMC provider.",
+    "message.confirm.enable.vpc.offering": "Are you sure you want to enable this VPC offering?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "Подтвердите присоединение к проекту.",
+    "message.confirm.migrate.volume": "Do you want to migrate this volume?",
+    "message.confirm.refresh.blades": "Please confirm that you want to refresh blades.",
+    "message.confirm.release.dedicate.vlan.range": "Please confirm you want to release dedicated VLAN range",
+    "message.confirm.release.dedicated.cluster": "Do you want to release this dedicated cluster ?",
+    "message.confirm.release.dedicated.host": "Do you want to release this dedicated host ?",
+    "message.confirm.release.dedicated.pod": "Do you want to release this dedicated pod ?",
+    "message.confirm.release.dedicated.zone": "Do you want to release this dedicated zone ? ",
+    "message.confirm.remove.IP.range": "Подтвердите, что вы действительно хотите удалить этот диапазон IP.",
+    "message.confirm.remove.event": "Are you sure you want to remove this event?",
+    "message.confirm.remove.load.balancer": "Please confirm you want to remove VM from load balancer",
+    "message.confirm.remove.network.offering": "Are you sure you want to remove this network offering?",
+    "message.confirm.remove.selected.alerts": "Please confirm you would like to remove the selected alerts",
+    "message.confirm.remove.selected.events": "Please confirm you would like to remove the selected events",
+    "message.confirm.remove.vmware.datacenter": "Please confirm you want to remove VMware datacenter",
+    "message.confirm.remove.vpc.offering": "Are you sure you want to remove this VPC offering?",
+    "message.confirm.replace.acl.new.one": "Do you want to replace the ACL with a new one?",
+    "message.confirm.scale.up.router.vm": "Do you really want to scale up the Router VM ?",
+    "message.confirm.scale.up.system.vm": "Do you really want to scale up the system VM ?",
+    "message.confirm.shutdown.provider": "Подтвердите, что вы действительно хотите отключить этого поставщика",
+    "message.confirm.start.lb.vm": "Please confirm you want to start LB VM",
+    "message.confirm.stop.lb.vm": "Please confirm you want to stop LB VM",
+    "message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template",
+    "message.confirm.upgrade.routers.account.newtemplate": "Please confirm that you want to upgrade all routers in this account to use newer template",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "Please confirm that you want to upgrade all routers in this cluster to use newer template",
+    "message.confirm.upgrade.routers.newtemplate": "Please confirm that you want to upgrade all routers in this zone to use newer template",
+    "message.confirm.upgrade.routers.pod.newtemplate": "Please confirm that you want to upgrade all routers in this pod to use newer template",
+    "message.copy.iso.confirm": "Пожалуйста подтвердите желание скопировать Ваш ISO в",
+    "message.copy.template": "Копировать шаблон <b id=\"copy_template_name_text\">XXX</b> из зоны <b id=\"copy_template_source_zone_text\"></b> в",
+    "message.copy.template.confirm": "Are you sure you want to copy template?",
+    "message.create.template": "Вы действительно хотите создать шаблонн?",
+    "message.create.template.vm": "Создать машину из шаблона <b id=\"p_name\"></b>",
+    "message.create.template.volume": "Пожалуйста укажите следующую информацию перед созданием шаблона из Вашего диска: <b><span id=\"volume_name\"></span></b>. Создание шаблона может занять несколько минут и более в зависимости от размера Вашего диска.",
+    "message.creating.cluster": "Создание кластера",
+    "message.creating.guest.network": "Создать гостевую сеть",
+    "message.creating.physical.networks": "Создание физических сетей",
+    "message.creating.pod": "Создание стенда",
+    "message.creating.primary.storage": "Создание основного хранилища",
+    "message.creating.secondary.storage": "Создание дополнительного хранилища",
+    "message.creating.systemVM": "Creating system VMs (this may take a while)",
+    "message.creating.zone": "Создание зоны",
+    "message.decline.invitation": "Подтвердите, что вы хотите отменить приглашение на проект.",
+    "message.dedicate.zone": "Выделенная зона",
+    "message.dedicated.zone.released": "Zone dedication released",
+    "message.delete.VPN.connection": "Пожалуйста подтвердите, что Вы хотите удалить это VPN подключение.",
+    "message.delete.VPN.customer.gateway": "Пожалуйста подтвердите, что хотите удалить этот пользовательский шлюз VPN.",
+    "message.delete.VPN.gateway": "Пожалуйста подтвердите, что хотите удалить этот шлюз VPN.",
+    "message.delete.account": "Пожалуйста подтвердите желание удалить эту учетную запись.",
+    "message.delete.affinity.group": "Подтвердите, что вы действительно хотите удалить эту affinity group",
+    "message.delete.gateway": "Пожалуйста подтвердите, что Вы хотите удалить этот шлюз.",
+    "message.delete.project": "Вы действительно хотите удалить этот проект?",
+    "message.delete.user": "Подтвердите, что вы действительно хотите удалить этого пользователя.",
+    "message.desc.add.new.lb.sticky.rule": "Add new LB sticky rule",
+    "message.desc.advanced.zone": "Для более сложных сетевых топологий. Эта сетевая модель обеспечивает максимальную гибкость в определении гостевой сети и предоставление услуг, таких как межсетевой экран, VPN, или поддержка балансировки нагрузки.",
+    "message.desc.basic.zone": "Предоставляет едиственную сеть, где каждая ВМ имеет «белый» IP-адрес сети. Изоляции гостей можно добиться использованием сети 3-го уровня, например, группы безопасности (фильтрация IP-вдресов)",
+    "message.desc.cluster": "Каждый стенд должен иметь один или более кластеров, первый из которых вы сейчас добавите. Кластер предоставляет группу узлов. Узлы в кластере имеют одинаковое оборудование, запускается через один гипервизор, находятся в одной сети и имеют доступ к одному  и тому же открытому хранилищу. Каждый кластер содержит один или более узлов, а также иеть один или несколько основных хранилищ.",
+    "message.desc.create.ssh.key.pair": "Please fill in the following data to create or register a ssh key pair.<br><br>(1) If public key is set, CloudStack will register the public key. You can use it through your private key.<br><br>(2) If public key is not set, CloudStack will create a new SSH Key pair. In this case, please copy and save the private key. CloudStack will not keep it.<br>",
+    "message.desc.created.ssh.key.pair": "Created a SSH Key Pair.",
+    "message.desc.host": "Каждый кластер должен содержать как минимум один узел (компьютер) для запуска ВМ, первый из кластер вы добавите сейчас. Для работы узла в CloudStack важна установка гипервизора на узел, привязка IP к узлу и соединение узла с сервером управления CloudStack.<br/><br/>Укажите имя DNS или адрес IP, имя пользователя и пароль к ОС (обычно root), а также метки для группирования узлов.",
+    "message.desc.primary.storage": "Каждая группа должна содержать один или несколько первичных серверов хранения данных, и мы добавим первый сейчас. Первичная хранения содержит логические разделы жесткого диска для всех виртуальных машин, работающих на узлах кластера. Используйте любой совместимый протокол, который поддерживает основные гипервизора.",
+    "message.desc.reset.ssh.key.pair": "Please specify a ssh key pair that you would like to add to this VM. Please note the root password will be changed by this operation if password is enabled.",
+    "message.desc.secondary.storage": "Каждая зона должна обладать хотя бы одним сервером NFS или дополнительным хранилищем и их надо добавить в первую очередь. Дополнительное хранилище предназначено для хранения шаблонов ВМ, образов ISO и снимков ВМ. Этот сервер должен быть доступен для всех узлов зоны.<br/><br/>Заполните IP-адрес и путь.",
+    "message.desc.zone": "layer 3",
+    "message.detach.disk": "Вы действительно хотите присоединить этот диск?",
+    "message.detach.iso.confirm": "Пожалуйста подтвердите желание отключить ISO от этой виртуальной машины.",
+    "message.disable.account": "Пожалуйста подтвердите желание деактивировать эту учетную запись. Деактивация учетной записи заблокирует доступ всех пользователей к ресурсам Облака. Все работающие виртуальные машины будут незамедлительно остановлены.",
+    "message.disable.snapshot.policy": "Вы успешно деактивировали политику создания резервных копий.",
+    "message.disable.user": "Подтвердите, что вы действительно хотите выключить этого пользователя.",
+    "message.disable.vpn": "Вы действительно хотите выключить VPN?",
+    "message.disable.vpn.access": "Пожалуйста подтвердите желание деактивировать VPN доступ.",
+    "message.disabling.network.offering": "Disabling network offering",
+    "message.disabling.vpc.offering": "Disabling VPC offering",
+    "message.disallowed.characters": "Disallowed characters: <,>",
+    "message.download.ISO": "Пожалуйста, нажмите <a href=\"#\">00000</a> скачать образ",
+    "message.download.template": "Нажмите <a href=\"#\">00000</a>для загрузки",
+    "message.download.volume": "Нажмите <a href=\"#\">00000</a> для загрузки диска",
+    "message.download.volume.confirm": "Пожалуйста нажмите <a href=\"#\">00000</a> для загрузки диска",
+    "message.edit.account": "Редактировать (значение \"-1\" показывает отсутствие ограничений для ресурса)",
+    "message.edit.confirm": "Please confirm your changes before clicking \"Save\".",
+    "message.edit.limits": "Пожалуйста определите ограничения для следующих ресурсов. \"-1\" обозначает отсутствие ограничений.",
+    "message.edit.traffic.type": "Пожалуйста, укажите метки трафика  вы хотите, связанных с этим типом трафика.",
+    "message.enable.account": "Пожалуйста подтвердите, что хотите активировать эту учетную запись.",
+    "message.enable.user": "Подтвердите, что вы действительно хотите включить этого пользователя.",
+    "message.enable.vpn": "Подтвердите, что вы действительно хотите открыть доступ к VPN для этого IP-адреса.",
+    "message.enable.vpn.access": "VPN в данный момент отключен для этого IP адреса. Вы хотите активировать VPN?",
+    "message.enabled.vpn": "Ваш VPN доступ в данный момент активирован. Доступ может быть осуществлен через IP адрес",
+    "message.enabled.vpn.ip.sec": "Ваш IPSec pre-shared ключ",
+    "message.enabling.network.offering": "Enabling network offering",
+    "message.enabling.security.group.provider": "Включение поставщика групп безопасности",
+    "message.enabling.vpc.offering": "Enabling VPC offering",
+    "message.enabling.zone": "Включить зону",
+    "message.enabling.zone.dots": "Enabling zone...",
+    "message.enter.seperated.list.multiple.cidrs": "Please enter a comma separated list of CIDRs if more than one",
+    "message.enter.token": "Введите ключ, который вы получили в пригласительном письме",
+    "message.generate.keys": "Подтвердите, что вы действительно хотите создать новые ключи для этого пользователя.",
+    "message.gslb.delete.confirm": "Please confirm you want to delete this GSLB",
+    "message.gslb.lb.remove.confirm": "Please confirm you want to remove load balancing from GSLB",
+    "message.guest.traffic.in.advanced.zone": "Гостевой трафик для связи между пользовательскими виртуальныит машинами. Укажите диапазон идентификаторов VLAN для каждой физической сети.",
+    "message.guest.traffic.in.basic.zone": "Гостевой трафик генерируется при общении между виртуальными машинами. Укажите диапазон адресов IP, который CloudStack сможет выделить для ВМ. Убедитесь, что этот диапазон не перекрещивается с диапазоном резервных адресов.",
+    "message.host.dedicated": "Host Dedicated",
+    "message.host.dedication.released": "Host dedication released",
+    "message.installWizard.click.retry": "Кликните, чтобы повторить запуск.",
+    "message.installWizard.copy.whatIsACluster": "Кластер предоставляет группу узлов. Узлы в кластере имеют одинаковое оборудование, запущены в одинаковом гипервизере, находятся в одной подсети и имеют доступ к одному общему хранилищу. Виртуальные машины (ВМ) могут быть перенесены \"вживую\" с одного узла на другой в пределах кластера, без остановки сервисов пользователем. Кластер - третья по размерности единица в платформе CloudStack&#8482. Кластеры располагаются в стендах, а стенды - в зонах. <br/><br/>CloudStack&#8482; разрешает использовать несколько кластеров, но при простой установке эта возможность отсутствует.",
+    "message.installWizard.copy.whatIsAHost": "Узел - это отдельный компьютер. Узлы предоставляют вычислительные ресурсы для запуска гостевых виртуальных машин. Каждый узел содержит гипервизор для управления ВМ (кроме узлов BareMetal, они являются исключением из правил и рассматривается в расширенном руководстве по установке). Например, это Linux-сервер с KVM, сервер Citrix XenServer или сервер ESXI. При простой установке вы можете использовать один узел с XenServer.<br/><br/>Узел - это наименьшая единица в платформе CloudStack&#8482;, далее узлы распологаются в кластерах, кластеры - в стендах, стенды - в зонах.",
+    "message.installWizard.copy.whatIsAPod": "Стенд, как правило, предоставляет одну стойку с машинами. Узлы в одном стенде расположены в одной подсети.<br/><br/>Стенд - вторая по размерности единица в платформе CloudStack&#8482;. Стенды распологаются в зонах. Каждая зона может содержать несколько стендов, но при простой установке в зоне можно создать лишь один стенд.",
+    "message.installWizard.copy.whatIsAZone": "Зона - это наиболее крупная организационная единица в платформе CloudStack&#8482;. Зона обычно соответствует единичному ЦОД, хотя имеется возможность использовать несколько зон в пределах одного ЦОД. Основным преимуществом построения инфраструктуры с использование зон является обеспечение изолирования и избыточности. Например, каждая зона может иметь свой блок питания и сеть, а сами зоны могут широко расположены географически.",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482 - это программная плафторма для создания публичных, частных и гибридных облаков по схеме «Инфраструктура как сервис» (IaaS). CloudStack&#8482 управляет сетью, хранилищем и вычислительными узлами, входящие в облачную инфраструктуру. Главным образом, CloudStack&#8482 используется для развертывания, управления и настройкой сложных облачных решений.<br/><br/>CloudStack&#8482 реализует предоставление как услуги целого центра обработки данных с необходимыми компонентами для создания сложных инфраструктур на основе облака. Мы можете выбрать между свободной и Безнес-версиями, которые почти ничем не отличаются.",
+    "message.installWizard.copy.whatIsPrimaryStorage": "CloudStack&#8482; - это облачная платформа, использующая два типа хранилища: основное и дополнительное. В качестве хранителей можно использовать iSCSI или NFS-сервер или локальный диск.<br/><br/><strong>Основное хранилище</strong> связывается с кластером и там хранятся дисковые тома каждой ВМ, запущенной в узлах этого кластера. Как правило, соновное хранилище находится рядом с узлом.",
+    "message.installWizard.copy.whatIsSecondaryStorage": "Дополнительное хранилище привязано к зоне и содержит следующее:<ul><li>Шаблоны - образы ОС, которые можно использовать для загрузки ВМ и содержащие дополнительную информацию, такую как установленные приложения.</li><li>Образы ISO - это загрузочные или незагрузочные образы ОС</li><li>Снимки дисковых томов - сохраненные копии данных ВМ, которых можно использовать для восстановления данных или для создания нового шаблона</ul>",
+    "message.installWizard.now.building": "Ваше облако создаётся...",
+    "message.installWizard.tooltip.addCluster.name": "Имя кластера. Вы можете сами выбрать имя, не используемый Cloudstack.",
+    "message.installWizard.tooltip.addHost.hostname": "Имя DNS или IP-адрес узла.",
+    "message.installWizard.tooltip.addHost.password": "Этот пароль для вышеуказанного пользователя (с вашего XenServer)",
+    "message.installWizard.tooltip.addHost.username": "Обычно root.",
+    "message.installWizard.tooltip.addPod.name": "Имя стенда",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "Это диапазон IP частной сети, который используется CloudStack для ВМ дополнительного хранилища и консольного прокси. Эти адреса получаются из сети вычислительных серверов.",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "Шлюз для узлов этого стенда.",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "Сетевая маска подсети для гостей.",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "Это диапазон IP частной сети, который используется CloudStack для ВМ дополнительного хранилища и консольного прокси. Эти адреса получаются из сети вычислительных серверов.",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "Имя устройства хранилища.",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(для NFS) В NFS это путь экпорта сервера. Путь (для SharedMountPoint). В KVM это путь для каждого узла, который указывает расположение основного хранилища. Например, \"/mnt/primary\".",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(для NFS, iSCSI или PreSetup) IP-адрес или имя DNS устройства хранилища.",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "IP-адрес сервера NFS, где находится дополнительное хранилище",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "Путь экспорта, расположенный на вышеуказанном сервере.",
+    "message.installWizard.tooltip.addZone.dns1": "Это cерверы DNS для гостевых ВМ этой зоны. Эти серверы будут доступны через публичный интерфейс, который вы добавите позже. Публичные IP-адреса, предоставленные в зоне, должны иметь маршрут к этим серверам DNS.",
+    "message.installWizard.tooltip.addZone.dns2": "Это cерверы DNS для гостевых ВМ этой зоны. Эти серверы будут доступны через публичный интерфейс, который вы добавите позже. Публичные IP-адреса, предоставленные в зоне, должны иметь маршрут к этим серверам DNS.",
+    "message.installWizard.tooltip.addZone.internaldns1": "Это cерверы DNS для системных ВМ этой зоны. Эти серверы будут доступны через частный интерфейс системной ВМ. Частный IP-адрес, предоставленный в стенде, должен иметь маршрут к этим серверам DNS.",
+    "message.installWizard.tooltip.addZone.internaldns2": "Это cерверы DNS для системных ВМ этой зоны. Эти серверы будут доступны через частный интерфейс системной ВМ. Частный IP-адрес, предоставленный в стенде, должен иметь маршрут к этим серверам DNS.",
+    "message.installWizard.tooltip.addZone.name": "Имя зоны",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "Описание этой сети",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "Диапазон IP-адресов, которые будут доступны для гостей этой зоны. При использовании одного сетевого устройства (NIC) эти адреса должны быть в подсети (CIDR) стенда.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "Шлюз, используемый гостями",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "Сетевая маска подсети для гостей.",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "Диапазон IP-адресов, которые будут доступны для гостей этой зоны. При использовании одного сетевого устройства (NIC) эти адреса должны быть в подсети (CIDR) стенда.",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "Имя для вашей сети",
+    "message.instance.scaled.up.confirm": "Do you really want to scale Up your instance ?",
+    "message.instanceWizard.noTemplates": "Вы не имеете доступных шаблонов; для перезапуска машины добавьте совместивый шаблон.",
+    "message.ip.address.changed": "Ваши IP-адреса могли быть изменены, хотите обновить список адресов? Помните, что в этом случае область деталей будет закрыта.",
+    "message.iso.desc": "Образ диска, содержащий данные или загрузочный носитель для ОС",
+    "message.join.project": "Теперь вы присоединены к проекту. Выберите \"Просмотр проекта\".",
+    "message.launch.vm.on.private.network": "Вы хотите запустить свою машину в выделенной Вам частной сети?",
+    "message.launch.zone": "Зона готова к запуску, пожалуйста, перейдите к следующему шагу.",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "Enable autosync for this domain in LDAP",
+    "message.listView.subselect.multi": "(Ctrl/Cmd-click)",
+    "message.lock.account": "Подтвердите, что вы действительно хотите заблокировать эту учётную запись.  Все пользователи в таких учётных записях потеряют возможность управлять своими облачными ресурсами.  Эти ресурсы останутся доступны для других учётных записей.",
+    "message.migrate.instance.confirm": "Пожалуйста подтвердите желание перенести виртуальную машину.",
+    "message.migrate.instance.to.host": "Подтвердите, что вы действительно хотите перенести машину на другой узел.",
+    "message.migrate.instance.to.ps": "Подтвердите, что вы действительно хотите перенести машину на другое основное хранилище.",
+    "message.migrate.router.confirm": "Подтвердите, что вы действительно хотите перенести роутер в узел:",
+    "message.migrate.systemvm.confirm": "Подтвердите, что вы действительно хотите перенести системные ВМ в узел",
+    "message.migrate.volume": "Подтвердите, что вы действительно хотите перенести диск в другое основное хранилище.",
+    "message.network.addVM.desc": "Please specify the network that you would like to add this VM to. A new NIC will be added for this network.",
+    "message.network.addVMNIC": "Please confirm that you would like to add a new VM NIC for this network.",
+    "message.network.remote.access.vpn.configuration": "Remote Access VPN configuration has been generated, but it failed to apply. Please check connectivity of the network element, then re-try.",
+    "message.new.user": "Введите информацию для добавления нового пользователя в учётную запись.",
+    "message.no.affinity.groups": "Вы не имеете affinity groups. Пожалуйста перейдите к следующему шагу.",
+    "message.no.host.available": "No Hosts are available for Migration",
+    "message.no.network.support": "Выбранный гипервизор (vSphere) не обладает дополнительными сетевыми возмодностями. Перейдите к шагу 5.",
+    "message.no.network.support.configuration.not.true": "Функционал security group не активирован ни в одной зоне. Поэтому отсутствуют дополнительные сетевые функции. Пожалуйста перейдите к шагу 5.",
+    "message.no.projects": "У вас нет проектов.<br/>Создайте новый проект в секции \"Проекты\"",
+    "message.no.projects.adminOnly": "У вас нет проектов.<br/>Обратитесь к вашему администратору для создания нового проекта.",
+    "message.number.clusters": "<h2><span> # of </span> Кластеры</h2>",
+    "message.number.hosts": "<h2><span> # of </span> Узлы</h2>",
+    "message.number.pods": "<h2><span> # of </span> Стенды</h2>",
+    "message.number.storage": "<h2><span> # of </span> Тома основного хранилища</h2>",
+    "message.number.zones": "<h2><span> # of </span> Зоны</h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "Пароль был сброшен в",
+    "message.password.of.the.vm.has.been.reset.to": "Password of the VM has been reset to",
+    "message.pending.projects.1": "В ожидании следующие приглашения:",
+    "message.pending.projects.2": "Для просмотра перейдите к раздел проектов, далее выберите приглашения из выпадающего меню.",
+    "message.please.add.at.lease.one.traffic.range": "Добавьте как минимум один диапазон для трафика",
+    "message.please.confirm.remove.ssh.key.pair": "Please confirm that you want to remove this SSH Key Pair",
+    "message.please.proceed": "Перейдите к следующему шагу",
+    "message.please.select.a.configuration.for.your.zone": "Выберите конфигурацию вашей зоны",
+    "message.please.select.a.different.public.and.management.network.before.removing": "Выберите другую публичную и обслуживающую сеть перед удалением",
+    "message.please.select.networks": "Выберите сети для виртуальной машины",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "Please select a ssh key pair you want this VM to use:",
+    "message.please.wait.while.zone.is.being.created": "Подождите, создается зона. Это может занять некоторое время...",
+    "message.pod.dedication.released": "Pod dedication released",
+    "message.portable.ip.delete.confirm": "Please confirm you want to delete Portable IP Range",
+    "message.project.invite.sent": "Приглашение было отправлено пользователю; он будет добавлен в проект после подтверждения приглашения.",
+    "message.public.traffic.in.advanced.zone": "Публичный трафик генерируется при получения ВМ доступа к Интернету. Публично доступные IP должны быть обязательно выделены. Пользователь может использовать CloudStack UI для получения IP и создания NAT, используемый для общения между гостевой и публичной сетью. <br/><br/>Укажите как минимум один диапазон адресов для интернет-трафика.",
+    "message.public.traffic.in.basic.zone": "Публичный трафик генерируется при получения ВМ доступа к Интернету или при предоставлении клиентам служб через Интернет.  Публично доступные IP должны быть обязательно выделены. При создании ВМ, адрес из диапазона публичных Ip привяжется к машине в дополнение гостевого адреса IP. Статический 1-1 NAT должен автоматически настроиться на работу между публичной и гостевой сетью. Пользователь также имеет возможность использовать CloudStack UI для получения дополнительных адресов для реализации статического NAT между машинами и публичной сетью.",
+    "message.question.are.you.sure.you.want.to.add": "Are you sure you want to add",
+    "message.read.admin.guide.scaling.up": "Please read the dynamic scaling section in the admin guide before scaling up.",
+    "message.recover.vm": "Подтвердите, что вы действительно хотите востановить эту ВМ",
+    "message.redirecting.region": "Перенаправление в регион",
+    "message.reinstall.vm": "Примечание: Cоблюдайте осторожность.  ВМ будет переустановлена из шаблона; данные на основном диске будут потеряны. Дополнительные диски, если таковые имеются, не будут затронуты.",
+    "message.remove.ldap": "Are you sure you want to delete the LDAP configuration?",
+    "message.remove.region": "Вы уверены, что хотите удалить этот регион с сервера управления?",
+    "message.remove.vpc": "Пожалуйста подтвердите, что Вы хотите удалить этот VPC",
+    "message.remove.vpn.access": "Пожалуйста подтвердите желание отключить VPN доступ следующему пользователю.",
+    "message.removed.ssh.key.pair": "Removed a SSH Key Pair",
+    "message.reset.VPN.connection": "Пожалуйста подтвердите, что Вы хотите перезапустить это VPN подключение.",
+    "message.reset.password.warning.notPasswordEnabled": "Шаблон для этой машины создан без использования пароля",
+    "message.reset.password.warning.notStopped": "Для изменения пароля необходимо остановить машину",
+    "message.restart.mgmt.server": "Пожалуйста перезапустите сервер(ы) управления для того, чтобы изменения вступили в силу.",
+    "message.restart.mgmt.usage.server": "Пожалуйста, перезагрузите сервер и сервер статистики для вступления новых параметров в силу.",
+    "message.restart.network": "Подтвердите, что вы действительно хотите перезапустить сеть.",
+    "message.restart.vpc": "Подтвердите, что вы действительно хотите перезапустить VPC",
+    "message.restart.vpc.remark": "Please confirm that you want to restart the VPC <p><small><i>Remark: making a non-redundant VPC redundant will force a clean up. The networks will not be available for a couple of minutes</i>.</small></p>",
+    "message.restoreVM": "Do you want to restore the VM ?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(Используйте <strong>Ctrl-click</strong> для выбора всех применимых security groups)",
+    "message.select.a.zone": "Зона обычно соответствует единичному центру обработки данных. Несколько зон помогают создавать более надежные облака, обеспечивая физическую изоляцию и избыточность.",
+    "message.select.affinity.groups": "Пожалуйста, выберите любые affinity groups, которой принадлежит виртуальная машина:",
+    "message.select.instance": "Пожалуйста, выберите сервер.",
+    "message.select.iso": "Выберите образ ISO для новой ВМ",
+    "message.select.item": "Выберите элемент",
+    "message.select.security.groups": "Выберите группу(ы) безопасности для новой ВМ",
+    "message.select.template": "Выберите шаблон для новой ВМ",
+    "message.select.tier": "Please select a tier",
+    "message.set.default.NIC": "Please confirm that you would like to make this NIC the default for this VM.",
+    "message.set.default.NIC.manual": "Please manually update the default NIC on the VM now.",
+    "message.setup.physical.network.during.zone.creation": "Во время расширенной настройки зоны, вам необходимо указать один или несколько физических сетей. Каждая сеть соответствует сетевому интерфейсу гипервизора. Какждая физическая сеть может использоваться для одного или нескольких видов трафика с некоторыми ограничениями при объединении видов трафика.<br/><br/><strong>Перетащите один или несколько видов трафика</strong> к каждой физической сети.",
+    "message.setup.physical.network.during.zone.creation.basic": "При добавления в основную зону, вы можите создать одну физическую сеть, которая соотвествует NIC на гипервизор. Сеть осуществляет несколько видов трафика.<br/><br/>Вы можете также перетаскивать <strong>drag and drop</strong> другие типы трафика на физические сети.",
+    "message.setup.successful": "Настройка облака завершена!",
+    "message.snapshot.schedule": "You can set up recurring snapshot schedules by selecting from the available options below and applying your policy preference",
+    "message.specifiy.tag.key.value": "Please specify a tag key and value",
+    "message.specify.url": "Пожалуйста, укажите URL",
+    "message.step.1.continue": "Пожалуйста выберите шаблон или ISO для продолжения.",
+    "message.step.1.desc": "Пожалуйста выберите шаблон для Вашей новой виртуальной машины. Вы так же можете выбрать пустой шаблон для установки системы из образа ISO.",
+    "message.step.2.continue": "Пожалуйста выберите услугу для продолжения",
+    "message.step.3.continue": "Пожалуйста выберите размер диска для продолжения",
+    "message.step.4.continue": "Пожалуйста выберите как минимум одну сеть для продолжения.",
+    "message.step.4.desc": "Пожалуйста выберите основную сеть к которой будет подключена Ваша виртуальная машина.",
+    "message.storage.traffic": "Трафик между внутренними ресурсами CloudStack, включая все компоненты, которые взаимодействуют с сервером управления, такие как узлы и CloudStack системные ВМ. Настройте трафик хранения здесь.",
+    "message.suspend.project": "Вы действительно хотите приостановить проект?",
+    "message.systems.vms.ready": "System VMs ready.",
+    "message.template.copying": "Template is being copied.",
+    "message.template.desc": "Образ ОС, который можно использовать в качестве загружаемой в ВМ",
+    "message.tier.required": "Tier is required",
+    "message.tooltip.dns.1": "Имя сервера DNS для ВМ этой зоны. Публичные IP-адреса этой зоны должны иметь маршрут до этого сервера.",
+    "message.tooltip.dns.2": "Имя второго сервера DNS для ВМ этой зоны. Публичные IP-адреса этой зоны должны иметь маршрут до этого сервера.",
+    "message.tooltip.internal.dns.1": "Имя сервера DNS для внутренних ВМ CloudStack этой зоны. Частные IP-адреса стендов должны иметь маршрут до этого сервера.",
+    "message.tooltip.internal.dns.2": "Имя сервера DNS для внутренних ВМ CloudStack этой зоны. Частные IP-адреса стендов должны иметь маршрут до этого сервера.",
+    "message.tooltip.network.domain": "Суффикс DNS для создания собственного доменного имени сети, доступный гостевыми ВМ.",
+    "message.tooltip.pod.name": "Имя для стенда",
+    "message.tooltip.reserved.system.gateway": "Шлюз для узлов этого стенда",
+    "message.tooltip.reserved.system.netmask": "Префикс сети, определяющий подсеть стенда. Используется обозначение CIDR.",
+    "message.tooltip.zone.name": "Имя для зоны",
+    "message.update.os.preference": "Пожалуйста выберите предпочтительную ОС для данного сервера. Виртуальные машины с указанной ОС будут по возможности изначально запускаться на этом сервере.",
+    "message.update.resource.count": "Подтвердите, что вы действительно хотите обновить счетчик ресурсов для этого аккаунта.",
+    "message.update.ssl": "Пожалуйста предоствьте новый X.509 совместимый SSL сертификат для обновления на служебных виртуальных машинах, отвечающих за терминальный доступ:",
+    "message.update.ssl.failed": "Failed to update SSL Certificate.",
+    "message.update.ssl.succeeded": "Update SSL Certificates succeeded",
+    "message.validate.URL": "Please enter a valid URL.",
+    "message.validate.accept": "Please enter a value with a valid extension.",
+    "message.validate.creditcard": "Please enter a valid credit card number.",
+    "message.validate.date": "Please enter a valid date.",
+    "message.validate.date.ISO": "Please enter a valid date (ISO).",
+    "message.validate.digits": "Please enter only digits.",
+    "message.validate.email.address": "Please enter a valid email address.",
+    "message.validate.equalto": "Please enter the same value again.",
+    "message.validate.fieldrequired": "This field is required.",
+    "message.validate.fixfield": "Please fix this field.",
+    "message.validate.instance.name": "Имя сервера не может быть длинее 63 символа. Только ASCII, буквы a~z, A~Z, цыфры 0~9, дефис не допускается. Должна начинаться с буквы и заканчиваться буквой или цифрой.",
+    "message.validate.invalid.characters": "Найдены недопустимые символы; пожалуйста, поправьте.",
+    "message.validate.max": "Please enter a value less than or equal to {0}.",
+    "message.validate.maxlength": "Please enter no more than {0} characters.",
+    "message.validate.minlength": "Please enter at least {0} characters.",
+    "message.validate.number": "Please enter a valid number.",
+    "message.validate.range": "Please enter a value between {0} and {1}.",
+    "message.validate.range.length": "Please enter a value between {0} and {1} characters long.",
+    "message.virtual.network.desc": "Выделенная для Вашей учетной записи виртуальная сеть. Широковещательный домен Вашего VLAN и доступ в публичную сеть обслуживается виртуальным маршрутизатором.",
+    "message.vm.create.template.confirm": "Создание шаблона приведет к автоматической перезагрузке вируальной машины",
+    "message.vm.review.launch": "Проверьте следующую информацию и удостоверьтесь в том, что ваша машина настроена правильно.",
+    "message.vnmc.available.list": "VNMC is not available from provider list.",
+    "message.vnmc.not.available.list": "VNMC is not available from provider list.",
+    "message.volume.create.template.confirm": "Подтвердите, что вы действительно хотите создать шаблон этого тома.  Это процесс может продлиться несколько минут в зависимости от размера тома.",
+    "message.waiting.for.builtin.templates.to.load": "Waiting for builtin templates to load...",
+    "message.you.must.have.at.least.one.physical.network": "Добавьте как минимум одну физическую сеть",
+    "message.your.cloudstack.is.ready": "Your CloudStack is ready!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "Создание зоны завершено. Хотите включить эту зону?",
+    "message.zone.no.network.selection": "Выбранная зона не имеет вариантов для выбора сети.",
+    "message.zone.step.1.desc": "Пожалуйста выберите сетевую модель для Вашей зоны.",
+    "message.zone.step.2.desc": "Пожалуйста введите следующую информацию для добавления зоны",
+    "message.zone.step.3.desc": "Пожалуйста введите следующую информацию для добавления Стенда",
+    "message.zoneWizard.enable.local.storage": "WARNING: If you enable local storage for this zone, you must do the following, depending on where you would like your system VMs to launch:<br/><br/>1. If system VMs need to be launched in shared primary storage, shared primary storage needs to be added to the zone after creation. You must also start the zone in a disabled state.<br/><br/>2. If system VMs need to be launched in local primary storage, system.vm.use.local.storage needs to be set to true before you enable the zone.<br/><br/><br/>Would you like to continue?",
+    "messgae.validate.min": "Please enter a value greater than or equal to {0}.",
+    "mode": "Режим",
+    "network.rate": "Скорость сети",
+    "notification.reboot.instance": "Перезагрузить машину",
+    "notification.start.instance": "Запустить машину",
+    "notification.stop.instance": "Остановить машину",
+    "side.by.side": "Бок-о-Бок",
+    "state.Accepted": "Принято",
+    "state.Active": "Включен",
+    "state.Allocated": "Распределено",
+    "state.Allocating": "Выделение",
+    "state.BackedUp": "Зарезервировано",
+    "state.BackingUp": "Резервное копирование",
+    "state.Completed": "Завершено",
+    "state.Creating": "Создается",
+    "state.Declined": "Отклонено",
+    "state.Destroyed": "Уничтожено",
+    "state.Disabled": "Выключено",
+    "state.Enabled": "Включено",
+    "state.Error": "Ошибка",
+    "state.Expunging": "Удалён",
+    "state.Migrating": "Миграция",
+    "state.Pending": "Ожидается",
+    "state.Ready": "Готов",
+    "state.Running": "Запущено",
+    "state.Starting": "Запускается",
+    "state.Stopped": "Остановлено",
+    "state.Stopping": "Остановить",
+    "state.Suspended": "Приостановлено",
+    "state.detached": "Отсоединено",
+    "title.upload.volume": "Upload Volume",
+    "ui.listView.filters.all": "Все",
+    "ui.listView.filters.mine": "Мои"
+};
diff --git a/ui/l10n/zh_CN.js b/ui/l10n/zh_CN.js
new file mode 100644
index 0000000..2ba1c1f
--- /dev/null
+++ b/ui/l10n/zh_CN.js
@@ -0,0 +1,2293 @@
+// 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.
+var dictionary = {
+    "ICMP.code": "ICMP 代码",
+    "ICMP.type": "ICMP 类型",
+    "changed.item.properties": "更改项目属性",
+    "confirm.enable.s3": "请填写以下信息以启用对 S3 支持的二级存储的支持",
+    "confirm.enable.swift": "请填写以下信息以启用对 SWIFT 的支持",
+    "error.could.not.change.your.password.because.ldap.is.enabled": "错误。LDAP 处于启用状态,无法更改您的密码。",
+    "error.could.not.enable.zone": "无法启用资源域",
+    "error.installWizard.message": "出现问题;请返回并更正任何错误",
+    "error.invalid.username.password": "用户名或密码无效",
+    "error.login": "您的用户名/密码与我们的记录不一致。",
+    "error.menu.select": "正在选择项目,无法执行操作。",
+    "error.mgmt.server.inaccessible": "无法访问管理服务器。请稍后再试。",
+    "error.password.not.match": "密码字段不一致",
+    "error.please.specify.physical.network.tags": "网络方案在您为此物理网络指定标签之后才可用。",
+    "error.session.expired": "您的会话已过期。",
+    "error.something.went.wrong.please.correct.the.following": "出现问题;请更正以下各项",
+    "error.unable.to.reach.management.server": "无法访问管理服务器",
+    "error.unresolved.internet.name": "无法解析您的 Internet 名称。",
+    "force.delete": "强制删除",
+    "force.delete.domain.warning": "警告: 选择此选项将导致删除所有子域以及所有相关联的帐户及其资源。",
+    "force.remove": "强制移除",
+    "force.remove.host.warning": "警告: 选择此选项将导致 CloudStack 在从群集中移除此主机之前,强制停止所有正在运行的虚拟机。",
+    "force.stop": "强制停止",
+    "force.stop.instance.warning": "警告: 除非万不得已,否则不应强制停止此实例。停止此实例可能会导致数据丢失以及致使虚拟机状态不一致。",
+    "hint.no.host.tags": "未找到主机标签",
+    "hint.no.storage.tags": "未找到存储标签",
+    "hint.type.part.host.tag": "主机标签类型",
+    "hint.type.part.storage.tag": "存储标记类型",
+    "image.directory": "图片目录",
+    "inline": "内联",
+    "instances.actions.reboot.label": "重新启动实例",
+    "label.CIDR.list": "CIDR 列表",
+    "label.CIDR.of.destination.network": "目的地网络的 CIDR",
+    "label.CPU.cap": "CPU 上限",
+    "label.DHCP.server.type": "DHCP 服务器类型",
+    "label.DNS.domain.for.guest.networks": "来宾网络的 DNS 域",
+    "label.ESP.encryption": "ESP 加密算法",
+    "label.ESP.hash": "ESP 哈希算法",
+    "label.ESP.lifetime": "ESP 使用期限(第二阶段)",
+    "label.ESP.policy": "ESP 策略",
+    "label.IKE.DH": "IKE DH 算法",
+    "label.IKE.encryption": "IKE 加密算法",
+    "label.IKE.hash": "IKE 哈希算法",
+    "label.IKE.lifetime": "IKE 使用期限(第二阶段)",
+    "label.IKE.policy": "IKE 策略",
+    "label.IPsec.preshared.key": "IPsec 预共享密钥",
+    "label.LB.isolation": "负载平衡器隔离",
+    "label.LUN.number": "LUN 号",
+    "label.PA": "Palo Alto",
+    "label.PA.log.profile": "Palo Alto 日志配置文件",
+    "label.PA.threat.profile": "Palo Alto 威胁配置文件",
+    "label.PING.CIFS.password": "PING CIFS 密码",
+    "label.PING.CIFS.username": "PING CIFS 用户名",
+    "label.PING.dir": "PING 目录",
+    "label.PING.storage.IP": "PING 存储 IP",
+    "label.PreSetup": "PreSetup",
+    "label.Pxe.server.type": "Pxe 服务器类型",
+    "label.SNMP.community": "SNMP 社区",
+    "label.SNMP.port": "SNMP 端口",
+    "label.SR.name": "SR 名称标签",
+    "label.SharedMountPoint": "SharedMountPoint",
+    "label.TFTP.dir": "TFTP 目录",
+    "label.VMFS.datastore": "VMFS 数据存储",
+    "label.VMs.in.tier": "层中的 VM",
+    "label.VPC.limits": "VPC 限制",
+    "label.VPC.router.details": "VPC 路由器详细信息",
+    "label.VPN.connection": "VPN 连接",
+    "label.VPN.customer.gateway": "VPN 客户网关",
+    "label.VPN.gateway": "VPN 网关",
+    "label.Xenserver.Tools.Version61plus": "原始 XS 版本为 6.1+",
+    "label.about": "关于",
+    "label.about.app": "关于 CloudStack",
+    "label.accept.project.invitation": "接受项目邀请",
+    "label.account": "帐户",
+    "label.account.and.security.group": "帐户、安全组",
+    "label.account.details": "账号详情",
+    "label.account.id": "帐户 ID",
+    "label.account.lower": "帐户",
+    "label.account.name": "帐户名称",
+    "label.account.specific": "帐户专用",
+    "label.account.type": "帐号类型",
+    "label.accounts": "帐户",
+    "label.acl": "ACL",
+    "label.acl.id": "ACL ID",
+    "label.acl.list.rules": "ACL列表策略",
+    "label.acl.name": "ACL 名称",
+    "label.acl.replaced": "ACL 已替换",
+    "label.acquire.new.ip": "获取新 IP",
+    "label.acquire.new.secondary.ip": "获取新二级 IP",
+    "label.action": "操作",
+    "label.action.attach.disk": "附加磁盘",
+    "label.action.attach.disk.processing": "正在附加磁盘...",
+    "label.action.attach.iso": "附加 ISO",
+    "label.action.attach.iso.processing": "正在附加 ISO...",
+    "label.action.cancel.maintenance.mode": "取消维护模式",
+    "label.action.cancel.maintenance.mode.processing": "正在取消维护模式...",
+    "label.action.change.password": "更改密码",
+    "label.action.change.service": "更改服务",
+    "label.action.change.service.processing": "正在更改服务...",
+    "label.action.configure.samlauthorization": "配置 SAML SSO 认证",
+    "label.action.copy.ISO": "复制 ISO",
+    "label.action.copy.ISO.processing": "正在复制ISO镜像",
+    "label.action.copy.template": "复制模板",
+    "label.action.copy.template.processing": "正在复制模板",
+    "label.action.create.template": "创建模板",
+    "label.action.create.template.from.vm": "基于 VM 创建模板",
+    "label.action.create.template.from.volume": "基于卷创建模板",
+    "label.action.create.template.processing": "正在创建模板...",
+    "label.action.create.vm": "创建 VM",
+    "label.action.create.vm.processing": "正在创建 VM...",
+    "label.action.create.volume": "创建卷",
+    "label.action.create.volume.processing": "正在创建卷...",
+    "label.action.delete.IP.range": "删除 IP 范围",
+    "label.action.delete.IP.range.processing": "正在删除 IP 范围...",
+    "label.action.delete.ISO": "删除 ISO",
+    "label.action.delete.ISO.processing": "正在删除 ISO...",
+    "label.action.delete.account": "删除帐户",
+    "label.action.delete.account.processing": "正在删除帐户...",
+    "label.action.delete.cluster": "删除群集",
+    "label.action.delete.cluster.processing": "正在删除群集...",
+    "label.action.delete.disk.offering": "删除磁盘方案",
+    "label.action.delete.disk.offering.processing": "正在删除磁盘方案...",
+    "label.action.delete.domain": "删除域",
+    "label.action.delete.domain.processing": "正在删除域...",
+    "label.action.delete.firewall": "删除防火墙规则",
+    "label.action.delete.firewall.processing": "正在删除防火墙...",
+    "label.action.delete.ingress.rule": "删除入口规则",
+    "label.action.delete.ingress.rule.processing": "正在删除入口规则...",
+    "label.action.delete.load.balancer": "删除负载平衡器规则",
+    "label.action.delete.load.balancer.processing": "正在删除负载平衡器...",
+    "label.action.delete.network": "删除网络",
+    "label.action.delete.network.processing": "正在删除网络...",
+    "label.action.delete.nexusVswitch": "删除 Nexus 1000v",
+    "label.action.delete.nic": "移除 NIC",
+    "label.action.delete.physical.network": "删除物理网络",
+    "label.action.delete.pod": "删除提供点",
+    "label.action.delete.pod.processing": "正在删除提供点...",
+    "label.action.delete.primary.storage": "删除主存储",
+    "label.action.delete.primary.storage.processing": "正在删除主存储...",
+    "label.action.delete.secondary.storage": "删除二级存储",
+    "label.action.delete.secondary.storage.processing": "正在删除二级存储...",
+    "label.action.delete.security.group": "删除安全组",
+    "label.action.delete.security.group.processing": "正在删除安全组...",
+    "label.action.delete.service.offering": "删除服务方案",
+    "label.action.delete.service.offering.processing": "正在删除服务方案...",
+    "label.action.delete.snapshot": "删除快照",
+    "label.action.delete.snapshot.processing": "正在删除快照...",
+    "label.action.delete.system.service.offering": "删除系统服务方案",
+    "label.action.delete.template": "删除模板",
+    "label.action.delete.template.processing": "正在删除模板...",
+    "label.action.delete.user": "删除用户",
+    "label.action.delete.user.processing": "正在删除用户...",
+    "label.action.delete.volume": "删除卷",
+    "label.action.delete.volume.processing": "正在删除卷...",
+    "label.action.delete.zone": "删除资源域",
+    "label.action.delete.zone.processing": "正在删除资源域...",
+    "label.action.destroy.instance": "销毁实例",
+    "label.action.destroy.instance.processing": "正在销毁实例...",
+    "label.action.destroy.systemvm": "销毁系统 VM",
+    "label.action.destroy.systemvm.processing": "正在销毁系统 VM...",
+    "label.action.detach.disk": "取消附加磁盘",
+    "label.action.detach.disk.processing": "正在取消附加磁盘...",
+    "label.action.detach.iso": "取消附加 ISO",
+    "label.action.detach.iso.processing": "正在取消附加 ISO...",
+    "label.action.disable.account": "禁用帐户",
+    "label.action.disable.account.processing": "正在禁用帐户...",
+    "label.action.disable.cluster": "禁用群集",
+    "label.action.disable.cluster.processing": "正在禁用群集...",
+    "label.action.disable.nexusVswitch": "禁用 Nexus 1000v",
+    "label.action.disable.physical.network": "禁用物理网络",
+    "label.action.disable.pod": "禁用提供点",
+    "label.action.disable.pod.processing": "正在禁用提供点...",
+    "label.action.disable.static.NAT": "禁用静态 NAT",
+    "label.action.disable.static.NAT.processing": "正在禁用静态 NAT...",
+    "label.action.disable.user": "禁用用户",
+    "label.action.disable.user.processing": "正在禁用用户...",
+    "label.action.disable.zone": "禁用资源域",
+    "label.action.disable.zone.processing": "正在禁用资源域...",
+    "label.action.download.ISO": "下载 ISO",
+    "label.action.download.template": "下载模板",
+    "label.action.download.volume": "下载卷",
+    "label.action.download.volume.processing": "正在下载卷...",
+    "label.action.edit.ISO": "编辑 ISO",
+    "label.action.edit.account": "编辑帐户",
+    "label.action.edit.disk.offering": "编辑磁盘方案",
+    "label.action.edit.domain": "编辑域",
+    "label.action.edit.global.setting": "编辑全局设置",
+    "label.action.edit.host": "编辑主机",
+    "label.action.edit.instance": "编辑实例",
+    "label.action.edit.network": "编辑网络",
+    "label.action.edit.network.offering": "编辑网络方案",
+    "label.action.edit.network.processing": "正在编辑网络...",
+    "label.action.edit.pod": "编辑提供点",
+    "label.action.edit.primary.storage": "编辑主存储",
+    "label.action.edit.resource.limits": "编辑资源限制",
+    "label.action.edit.service.offering": "编辑服务方案",
+    "label.action.edit.template": "编辑模板",
+    "label.action.edit.user": "编辑用户",
+    "label.action.edit.zone": "编辑资源域",
+    "label.action.enable.account": "启用帐户",
+    "label.action.enable.account.processing": "正在启用帐户...",
+    "label.action.enable.cluster": "启用群集",
+    "label.action.enable.cluster.processing": "正在启用群集...",
+    "label.action.enable.maintenance.mode": "启用维护模式",
+    "label.action.enable.maintenance.mode.processing": "正在启用维护模式...",
+    "label.action.enable.nexusVswitch": "启用 Nexus 1000v",
+    "label.action.enable.physical.network": "启用物理网络",
+    "label.action.enable.pod": "启用提供点",
+    "label.action.enable.pod.processing": "正在启用提供点...",
+    "label.action.enable.static.NAT": "启用静态 NAT",
+    "label.action.enable.static.NAT.processing": "正在启用静态 NAT...",
+    "label.action.enable.user": "启用用户",
+    "label.action.enable.user.processing": "正在启用用户...",
+    "label.action.enable.zone": "启用资源域",
+    "label.action.enable.zone.processing": "正在启用资源域...",
+    "label.action.expunge.instance": "删除实例",
+    "label.action.expunge.instance.processing": "正在删除实例...",
+    "label.action.force.reconnect": "强制重新连接",
+    "label.action.force.reconnect.processing": "正在重新连接...",
+    "label.action.generate.keys": "生成密钥",
+    "label.action.generate.keys.processing": "正在生成密钥...",
+    "label.action.list.nexusVswitch": "列出 Nexus 1000v",
+    "label.action.lock.account": "锁定帐户",
+    "label.action.lock.account.processing": "正在锁定帐户...",
+    "label.action.manage.cluster": "托管群集",
+    "label.action.manage.cluster.processing": "正在托管群集...",
+    "label.action.migrate.instance": "迁移实例",
+    "label.action.migrate.instance.processing": "正在迁移实例...",
+    "label.action.migrate.router": "迁移路由器",
+    "label.action.migrate.router.processing": "正在迁移路由器...",
+    "label.action.migrate.systemvm": "迁移系统 VM",
+    "label.action.migrate.systemvm.processing": "正在迁移系统 VM...",
+    "label.action.reboot.instance": "重新启动实例",
+    "label.action.reboot.instance.processing": "正在重新启动实例...",
+    "label.action.reboot.router": "重新启动路由器",
+    "label.action.reboot.router.processing": "正在重新启动路由器...",
+    "label.action.reboot.systemvm": "重新启动系统 VM",
+    "label.action.reboot.systemvm.processing": "正在重新启动系统 VM...",
+    "label.action.recurring.snapshot": "重现快照",
+    "label.action.register.iso": "注册 ISO",
+    "label.action.register.template": "使用URL注册模板",
+    "label.action.release.ip": "释放 IP",
+    "label.action.release.ip.processing": "正在释放 IP...",
+    "label.action.remove.host": "删除主机",
+    "label.action.remove.host.processing": "正在删除主机...",
+    "label.action.reset.password": "重置密码",
+    "label.action.reset.password.processing": "正在重置密码...",
+    "label.action.resize.volume": "调整卷大小",
+    "label.action.resize.volume.processing": "正在调整卷大小....",
+    "label.action.resource.limits": "资源限制",
+    "label.action.restore.instance": "还原实例",
+    "label.action.restore.instance.processing": "正在还原实例...",
+    "label.action.revert.snapshot": "还原到快照",
+    "label.action.revert.snapshot.processing": "正在还原到快照...",
+    "label.action.start.instance": "启动实例",
+    "label.action.start.instance.processing": "正在启动实例...",
+    "label.action.start.router": "启动路由器",
+    "label.action.start.router.processing": "正在启动路由器...",
+    "label.action.start.systemvm": "启动系统 VM",
+    "label.action.start.systemvm.processing": "正在启动系统 VM...",
+    "label.action.stop.instance": "停止实例",
+    "label.action.stop.instance.processing": "正在停止实例...",
+    "label.action.stop.router": "停止路由器",
+    "label.action.stop.router.processing": "正在停止路由器...",
+    "label.action.stop.systemvm": "停止系统 VM",
+    "label.action.stop.systemvm.processing": "正在停止系统 VM...",
+    "label.action.take.snapshot": "创建快照",
+    "label.action.take.snapshot.processing": "正在创建快照...",
+    "label.action.unmanage.cluster": "取消托管群集",
+    "label.action.unmanage.cluster.processing": "正在取消托管群集...",
+    "label.action.update.OS.preference": "更新操作系统首选项",
+    "label.action.update.OS.preference.processing": "正在更新操作系统首选项...",
+    "label.action.update.resource.count": "更新资源数量",
+    "label.action.update.resource.count.processing": "正在更新资源数量...",
+    "label.action.vmsnapshot.create": "创建 VM 快照",
+    "label.action.vmsnapshot.delete": "删除 VM 快照",
+    "label.action.vmsnapshot.revert": "还原到 VM 快照",
+    "label.actions": "操作",
+    "label.activate.project": "激活项目",
+    "label.active.sessions": "活动会话",
+    "label.add": "添加",
+    "label.add.ACL": "添加 ACL",
+    "label.add.BigSwitchBcf.device": "添加 BigSwitch BCF 控制器",
+    "label.add.BrocadeVcs.device": "添加 Brocade Vcs 交换机",
+    "label.add.F5.device": "添加 F5 设备",
+    "label.add.LDAP.account": "添加LDAP账户",
+    "label.add.NiciraNvp.device": "添加 Nvp 控制器",
+    "label.add.NuageVsp.device": "添加 Nuage 虚拟服务目录(VSD)",
+    "label.add.OpenDaylight.device": "添加 OpenDaylight 控制器",
+    "label.add.PA.device": "添加 Palo Alto 设备",
+    "label.add.SRX.device": "添加 SRX 设备",
+    "label.add.VM.to.tier": "向层中添加 VM",
+    "label.add.VPN.gateway": "添加 VPN 网关",
+    "label.add.account": "添加帐户",
+    "label.add.account.to.project": "向项目中添加帐户",
+    "label.add.accounts": "添加帐户",
+    "label.add.accounts.to": "添加帐户至",
+    "label.add.acl.list": "添加 ACL 列表",
+    "label.add.affinity.group": "添加新关联性组",
+    "label.add.baremetal.dhcp.device": "添加裸机 DHCP 设备",
+    "label.add.baremetal.rack.configuration": "添加 Baremetal Rack 配置",
+    "label.add.by": "添加方式",
+    "label.add.by.cidr": "按 CIDR 添加",
+    "label.add.by.group": "按组添加",
+    "label.add.ciscoASA1000v": "添加 CiscoASA1000v 资源",
+    "label.add.cluster": "添加群集",
+    "label.add.compute.offering": "添加计算方案",
+    "label.add.direct.iprange": "添加直接 IP 范围",
+    "label.add.disk.offering": "添加磁盘方案",
+    "label.add.domain": "添加域",
+    "label.add.egress.rule": "添加出口规则",
+    "label.add.firewall": "添加防火墙规则",
+    "label.add.globo.dns": "添加全局DNS",
+    "label.add.gslb": "添加 GSLB",
+    "label.add.guest.network": "添加来宾网络",
+    "label.add.host": "添加主机",
+    "label.add.ingress.rule": "添加入口规则",
+    "label.add.intermediate.certificate": "添加中间证书",
+    "label.add.internal.lb": "添加内部负载平衡器",
+    "label.add.ip.range": "添加 IP 范围",
+    "label.add.isolated.guest.network": "添加隔离的来宾网络",
+    "label.add.isolated.guest.network.with.sourcenat": "添加隔离的来宾网络并启用 SourceNat",
+    "label.add.isolated.network": "添加隔离网络",
+    "label.add.ldap.account": "添加 LDAP 账户",
+    "label.add.list.name": "ACL 列表名称",
+    "label.add.load.balancer": "添加负载平衡器",
+    "label.add.more": "添加更多",
+    "label.add.netScaler.device": "添加 Netscaler 设备",
+    "label.add.network": "添加网络",
+    "label.add.network.ACL": "添加网络 ACL",
+    "label.add.network.acl.list": "添加网络 ACL 列表",
+    "label.add.network.device": "添加网络设备",
+    "label.add.network.offering": "添加网络方案",
+    "label.add.new.F5": "添加新 F5",
+    "label.add.new.NetScaler": "添加新 NetScaler",
+    "label.add.new.PA": "添加新 Palo Alto",
+    "label.add.new.SRX": "添加新 SRX",
+    "label.add.new.gateway": "添加新网关",
+    "label.add.new.tier": "添加新层",
+    "label.add.nfs.secondary.staging.store": "添加 NFS 二级暂存存储",
+    "label.add.physical.network": "添加物理网络",
+    "label.add.pod": "添加提供点",
+    "label.add.port.forwarding.rule": "添加端口转发规则",
+    "label.add.portable.ip.range": "添加可移植 IP 范围",
+    "label.add.primary.storage": "添加主存储",
+    "label.add.private.gateway": "添加私有网关",
+    "label.add.region": "添加地理区域",
+    "label.add.resources": "添加资源",
+    "label.add.role": "Add Role",
+    "label.add.route": "添加路由",
+    "label.add.rule": "添加规则",
+    "label.add.secondary.storage": "添加二级存储",
+    "label.add.security.group": "添加安全组",
+    "label.add.service.offering": "添加服务方案",
+    "label.add.static.nat.rule": "添加静态 NAT 规则",
+    "label.add.static.route": "添加静态路由",
+    "label.add.system.service.offering": "添加系统服务方案",
+    "label.add.template": "添加模板",
+    "label.add.to.group": "添加到组",
+    "label.add.ucs.manager": "添加 UCS 管理器",
+    "label.add.user": "添加用户",
+    "label.add.userdata": "用户数据",
+    "label.add.vlan": "添加 VLAN",
+    "label.add.vm": "添加 VM",
+    "label.add.vms": "添加 VM",
+    "label.add.vms.to.lb": "向负载平衡器规则中添加 VM",
+    "label.add.vmware.datacenter": "添加 VMware 数据中心",
+    "label.add.vnmc.device": "添加 VNMC 设备",
+    "label.add.vnmc.provider": "添加 VNMC 提供程序",
+    "label.add.volume": "添加卷",
+    "label.add.vpc": "添加 VPC",
+    "label.add.vpc.offering": "添加 VPC 方案",
+    "label.add.vpn.customer.gateway": "添加 VPN 客户网关",
+    "label.add.vpn.user": "添加 VPN 用户",
+    "label.add.vxlan": "添加 VXLAN",
+    "label.add.zone": "添加资源域",
+    "label.added.brocade.vcs.switch": "已添加新 Brocade Vcs 交换机",
+    "label.added.network.offering": "已添加网络方案",
+    "label.added.new.bigswitch.bcf.controller": "添加新的 BigSwitch BCF 控制器",
+    "label.added.nicira.nvp.controller": "已添加新 Nicira NVP 控制器",
+    "label.addes.new.f5": "已添加新 F5",
+    "label.adding": "正在添加",
+    "label.adding.cluster": "正在添加群集",
+    "label.adding.failed": "添加失败",
+    "label.adding.pod": "正在添加提供点",
+    "label.adding.processing": "正在添加...",
+    "label.adding.succeeded": "已成功添加",
+    "label.adding.user": "正在添加用户",
+    "label.adding.zone": "正在添加资源域",
+    "label.additional.networks": "其他网络",
+    "label.admin": "管理员",
+    "label.admin.accounts": "管理员帐户",
+    "label.advanced": "高级",
+    "label.advanced.mode": "高级模式",
+    "label.advanced.search": "高级搜索",
+    "label.affinity": "关联性",
+    "label.affinity.group": "关联性组",
+    "label.affinity.groups": "关联性组",
+    "label.agent.password": "代理密码",
+    "label.agent.port": "代理端口",
+    "label.agent.state": "代理状态",
+    "label.agent.username": "代理用户名",
+    "label.agree": "同意",
+    "label.alert": "警报",
+    "label.alert.archived": "警报已存档",
+    "label.alert.deleted": "警报已删除",
+    "label.alert.details": "警报详细信息",
+    "label.algorithm": "算法",
+    "label.allocated": "已分配",
+    "label.allocation.state": "分配状态",
+    "label.allow": "允许",
+    "label.anti.affinity": "反关联性",
+    "label.anti.affinity.group": "反关联性组",
+    "label.anti.affinity.groups": "反关联性组",
+    "label.api.key": "API 密钥",
+    "label.api.version": "API 版本",
+    "label.app.name": "CloudStack",
+    "label.apply": "应用",
+    "label.archive": "存档",
+    "label.archive.alerts": "存档警报",
+    "label.archive.events": "存档事件",
+    "label.assign": "分配",
+    "label.assign.instance.another": "将实例分配给其他帐户",
+    "label.assign.to.load.balancer": "正在将实例分配给负载平衡器",
+    "label.assign.vms": "分配实例",
+    "label.assigned.vms": "已分配的 VM",
+    "label.associate.public.ip": "关联公用 IP",
+    "label.associated.network": "关联网络",
+    "label.associated.network.id": "已关联网络 ID",
+    "label.associated.profile": "已关联配置文件",
+    "label.attached.iso": "已附加 ISO",
+    "label.author.email": "作者电子邮件",
+    "label.author.name": "作者姓名",
+    "label.autoscale": "自动扩展",
+    "label.autoscale.configuration.wizard": "自动扩展配置向导",
+    "label.availability": "可用性",
+    "label.availability.zone": "可用资源域",
+    "label.availabilityZone": "可用区域",
+    "label.available": "可用",
+    "label.available.public.ips": "可用公用 IP 地址",
+    "label.back": "后退",
+    "label.bandwidth": "带宽",
+    "label.baremetal.dhcp.devices": "裸机 DHCP 设备",
+    "label.baremetal.dhcp.provider": "裸机 DHCP 提供程序",
+    "label.baremetal.pxe.device": "添加裸机 PXE 设备",
+    "label.baremetal.pxe.devices": "裸机 PXE 设备",
+    "label.baremetal.pxe.provider": "裸机 PXE 提供程序",
+    "label.baremetal.rack.configuration": "Baremetal Rack 配置",
+    "label.basic": "基本",
+    "label.basic.mode": "基本模式",
+    "label.bigswitch.bcf.details": " BigSwitch BCF 详情",
+    "label.bigswitch.bcf.nat": "BigSwitch BCF  NAT 已启用",
+    "label.bigswitch.controller.address": "BigSwitch BCF 控制器地址",
+    "label.blade.id": "刀片式服务器 ID",
+    "label.blades": "刀片式服务器",
+    "label.bootable": "可启动",
+    "label.broadcast.domain.range": "广播域范围",
+    "label.broadcast.domain.type": "广播域类型",
+    "label.broadcast.uri": "广播 URI",
+    "label.broadcasturi": "广播 URI",
+    "label.broadcat.uri": "广播 URI",
+    "label.brocade.vcs.address": "Vcs 交换机地址",
+    "label.brocade.vcs.details": "Brocade Vcs 交换机详细信息",
+    "label.by.account": "按帐户",
+    "label.by.alert.type": "按警报类型",
+    "label.by.availability": "按可用性",
+    "label.by.date.end": "按日期(结束日期)",
+    "label.by.date.start": "按日期(开始日期)",
+    "label.by.domain": "按域",
+    "label.by.end.date": "按结束日期",
+    "label.by.event.type": "按事件类型",
+    "label.by.level": "按级别",
+    "label.by.pod": "按提供点",
+    "label.by.role": "按角色",
+    "label.by.start.date": "按开始日期",
+    "label.by.state": "按状态",
+    "label.by.traffic.type": "按流量类型",
+    "label.by.type": "按类型",
+    "label.by.type.id": "按类型 ID",
+    "label.by.zone": "按资源域",
+    "label.bytes.received": "接收的字节数",
+    "label.bytes.sent": "发送的字节数",
+    "label.cache.mode": "写入缓存类型",
+    "label.cancel": "取消",
+    "label.capacity": "容量",
+    "label.capacity.bytes": "容量(字节)",
+    "label.capacity.iops": "容量 IOPS",
+    "label.certificate": "服务器证书",
+    "label.change.affinity": "更改关联性",
+    "label.change.ipaddress": "Change IP address for NIC",
+    "label.change.service.offering": "更改服务方案",
+    "label.change.value": "更改值",
+    "label.character": "字符",
+    "label.chassis": "机箱",
+    "label.checksum": "校验",
+    "label.cidr": "CIDR",
+    "label.cidr.account": "CIDR 或帐户/安全组",
+    "label.cidr.list": "源 CIDR",
+    "label.cisco.nexus1000v.ip.address": "Nexus 1000v IP 地址",
+    "label.cisco.nexus1000v.password": "Nexus 1000v 密码",
+    "label.cisco.nexus1000v.username": "Nexus 1000v 用户名",
+    "label.ciscovnmc.resource.details": "CiscoVNMC 资源详细信息",
+    "label.clean.up": "清理",
+    "label.clear.list": "清除列表",
+    "label.close": "关闭",
+    "label.cloud.console": "云管理控制台",
+    "label.cloud.managed": "由 Cloud.com 管理",
+    "label.cluster": "群集",
+    "label.cluster.name": "群集名称",
+    "label.cluster.type": "群集类型",
+    "label.clusters": "群集",
+    "label.clvm": "CLVM",
+    "label.code": "代码",
+    "label.community": "社区",
+    "label.compute": "计算",
+    "label.compute.and.storage": "计算与存储",
+    "label.compute.offering": "计算方案",
+    "label.compute.offerings": "计算方案",
+    "label.configuration": "配置",
+    "label.configure": "配置",
+    "label.configure.ldap": "配置 LDAP",
+    "label.configure.network.ACLs": "配置网络 ACL",
+    "label.configure.sticky.policy": "配置粘滞策略",
+    "label.configure.vpc": "配置 VPC",
+    "label.confirm.password": "确认密码",
+    "label.confirmation": "确认",
+    "label.congratulations": "祝贺您!",
+    "label.conserve.mode": "节能模式",
+    "label.console.proxy": "控制台代理",
+    "label.console.proxy.vm": "控制台代理 VM",
+    "label.continue": "继续",
+    "label.continue.basic.install": "继续执行基本安装",
+    "label.copying.iso": "正在复制 ISO",
+    "label.corrections.saved": "已保存修正",
+    "label.counter": "计数器",
+    "label.cpu": "CPU",
+    "label.cpu.allocated": "已分配的 CPU",
+    "label.cpu.allocated.for.VMs": "已分配给 VM 的 CPU",
+    "label.cpu.limits": "CPU 限制",
+    "label.cpu.mhz": "CPU (MHz)",
+    "label.cpu.utilized": "CPU 利用率",
+    "label.create.VPN.connection": "创建 VPN 连接",
+    "label.create.nfs.secondary.staging.storage": "创建 NFS 二级暂存存储",
+    "label.create.nfs.secondary.staging.store": "创建 NFS 二级暂存存储",
+    "label.create.project": "创建项目",
+    "label.create.ssh.key.pair": "生成SSH密钥对",
+    "label.create.template": "创建模板",
+    "label.created": "创建日期",
+    "label.created.by.system": "由系统创建",
+    "label.cross.zones": "跨资源域",
+    "label.custom": "自定义",
+    "label.custom.disk.iops": "自定义 IOPS",
+    "label.custom.disk.offering": "自定义磁盘方案",
+    "label.custom.disk.size": "自定义磁盘大小",
+    "label.daily": "每天",
+    "label.data.disk.offering": "数据磁盘方案",
+    "label.date": "日期",
+    "label.day": "天",
+    "label.day.of.month": "日期",
+    "label.day.of.week": "星期",
+    "label.dc.name": "数据中心名称",
+    "label.dead.peer.detection": "失效对等体检测",
+    "label.decline.invitation": "拒绝邀请",
+    "label.dedicate": "专用",
+    "label.dedicate.cluster": "将群集专用",
+    "label.dedicate.host": "将主机专用",
+    "label.dedicate.pod": "将提供点专用",
+    "label.dedicate.vlan.vni.range": "将 VLAN/VNI 范围专用",
+    "label.dedicate.zone": "将资源域专用",
+    "label.dedicated": "专用",
+    "label.dedicated.vlan.vni.ranges": "VLAN/VNI 范围已专用",
+    "label.default": "默认设置",
+    "label.default.egress.policy": "默认出口规则",
+    "label.default.use": "默认使用",
+    "label.default.view": "默认视图",
+    "label.delete": "删除",
+    "label.delete.BigSwitchBcf": "移除 BigSwitch BCF 控制器",
+    "label.delete.BrocadeVcs": "删除 Brocade Vcs 交换机",
+    "label.delete.F5": "删除 F5",
+    "label.delete.NetScaler": "删除 NetScaler",
+    "label.delete.NiciraNvp": "删除 Nvp 控制器",
+    "label.delete.NuageVsp": "删除 Nuage VSD",
+    "label.delete.OpenDaylight.device": "删除 OpenDaylight 控制器",
+    "label.delete.PA": "删除 Palo Alto",
+    "label.delete.SRX": "删除 SRX",
+    "label.delete.VPN.connection": "删除 VPN 连接",
+    "label.delete.VPN.customer.gateway": "删除 VPN 客户网关",
+    "label.delete.VPN.gateway": "删除 VPN 网关",
+    "label.delete.acl.list": "删除 ACL 列表",
+    "label.delete.affinity.group": "删除关联性组",
+    "label.delete.alerts": "删除警报",
+    "label.delete.baremetal.rack.configuration": "删除 Baremetal Rack 配置",
+    "label.delete.ciscoASA1000v": "删除 CiscoASA1000v",
+    "label.delete.ciscovnmc.resource": "删除 CiscoVNMC 资源",
+    "label.delete.events": "删除事件",
+    "label.delete.gateway": "删除网关",
+    "label.delete.internal.lb": "删除内部负载平衡器",
+    "label.delete.portable.ip.range": "删除可移植 IP 范围",
+    "label.delete.profile": "删除配置文件",
+    "label.delete.project": "删除项目",
+    "label.delete.role": "Delete Role",
+    "label.delete.secondary.staging.store": "删除二级暂存存储",
+    "label.delete.ucs.manager": "删除 UCS Manager",
+    "label.delete.vpn.user": "删除 VPN 用户",
+    "label.deleting.failed": "删除失败",
+    "label.deleting.processing": "正在删除...",
+    "label.deny": "拒绝",
+    "label.deployment.planner": "部署规划器",
+    "label.description": "说明",
+    "label.destination.physical.network.id": "目标物理网络 ID",
+    "label.destination.zone": "目标资源域",
+    "label.destroy": "销毁",
+    "label.destroy.router": "销毁路由器",
+    "label.destroy.vm.graceperiod": "销毁 VM 宽限期",
+    "label.detaching.disk": "正在取消附加磁盘",
+    "label.details": "详细信息",
+    "label.device.id": "设备 ID",
+    "label.devices": "设备",
+    "label.dhcp": "DHCP",
+    "label.direct.attached.public.ip": "直连公用 IP",
+    "label.direct.ips": "共享网络 IP",
+    "label.disable.autoscale": "禁用自动缩放",
+    "label.disable.host": "禁用主机",
+    "label.disable.network.offering": "禁用网络方案",
+    "label.disable.provider": "禁用提供程序",
+    "label.disable.vnmc.provider": "禁用 VNMC 提供程序",
+    "label.disable.vpc.offering": "禁用 VPC 方案",
+    "label.disable.vpn": "禁用远程访问 VPN",
+    "label.disabled": "已禁用",
+    "label.disabling.vpn.access": "正在禁用 VPN 访问",
+    "label.disassociate.profile.blade": "取消将配置文件与刀片式服务器关联",
+    "label.disbale.vnmc.device": "禁用 VNMC 设备",
+    "label.disk.allocated": "已分配的磁盘",
+    "label.disk.bytes.read.rate": "磁盘读取速度(BPS)",
+    "label.disk.bytes.write.rate": "磁盘写入速度(BPS)",
+    "label.disk.iops.max": "最大 IOPS",
+    "label.disk.iops.min": "最小 IOPS",
+    "label.disk.iops.read.rate": "磁盘读取速度(IOPS)",
+    "label.disk.iops.total": "总 IOPS",
+    "label.disk.iops.write.rate": "磁盘写入速度(IOPS)",
+    "label.disk.offering": "磁盘方案",
+    "label.disk.offering.details": "磁盘方案详情",
+    "label.disk.provisioningtype": "置备类型",
+    "label.disk.read.bytes": "磁盘读取(字节)",
+    "label.disk.read.io": "磁盘读取(IO)",
+    "label.disk.size": "磁盘大小",
+    "label.disk.size.gb": "磁盘大小(GB)",
+    "label.disk.total": "磁盘总量",
+    "label.disk.volume": "磁盘卷",
+    "label.disk.write.bytes": "磁盘写入(字节)",
+    "label.disk.write.io": "磁盘写入(IO)",
+    "label.diskoffering": "磁盘方案",
+    "label.display.name": "显示名称",
+    "label.display.text": "显示文本",
+    "label.distributedrouter": "分布式路由器",
+    "label.dns": "DNS",
+    "label.dns.1": "DNS 1",
+    "label.dns.2": "DNS 2",
+    "label.domain": "域",
+    "label.domain.admin": "域管理员",
+    "label.domain.details": "域详情",
+    "label.domain.id": "域 ID",
+    "label.domain.lower": "域",
+    "label.domain.name": "域名",
+    "label.domain.router": "域路由器",
+    "label.domain.suffix": "DNS 域后缀(例如 xyz.com)",
+    "label.done": "完成",
+    "label.double.quotes.are.not.allowed": "不允许使用双引号",
+    "label.download.progress": "下载进度",
+    "label.drag.new.position": "拖动到新位置",
+    "label.duration.in.sec": "持续时间 (秒)",
+    "label.dynamically.scalable": "可动态扩展",
+    "label.edit": "编辑",
+    "label.edit.acl.rule": "编辑 ACL 规则",
+    "label.edit.affinity.group": "编辑关联性组",
+    "label.edit.lb.rule": "编辑负载平衡器规则",
+    "label.edit.network.details": "编辑网络详情",
+    "label.edit.project.details": "编辑项目详情",
+    "label.edit.region": "编辑地理区域",
+    "label.edit.role": "Edit Role",
+    "label.edit.rule": "编辑规则",
+    "label.edit.secondary.ips": "编辑二级 IPs",
+    "label.edit.tags": "编辑标签",
+    "label.edit.traffic.type": "编辑流量类型",
+    "label.edit.vpc": "编辑 VPC",
+    "label.egress.default.policy": "出口默认策略",
+    "label.egress.rule": "出口规则",
+    "label.egress.rules": "出口规则",
+    "label.elastic": "弹性",
+    "label.elastic.IP": "弹性 IP",
+    "label.elastic.LB": "弹性负载平衡器",
+    "label.email": "电子邮件",
+    "label.email.lower": "电子邮件",
+    "label.enable.autoscale": "启用自动缩放",
+    "label.enable.host": "启用主机",
+    "label.enable.network.offering": "启用网络方案",
+    "label.enable.provider": "启用提供程序",
+    "label.enable.s3": "启用 S3 支持的二级存储",
+    "label.enable.swift": "启用 SWIFT",
+    "label.enable.vnmc.device": "启用 VNMC 设备",
+    "label.enable.vnmc.provider": "启用 VNMC 提供程序",
+    "label.enable.vpc.offering": "启用 VPC 方案",
+    "label.enable.vpn": "启用远程访问 VPN",
+    "label.enabling.vpn": "正在启用 VPN",
+    "label.enabling.vpn.access": "正在启用 VPN 访问",
+    "label.end.IP": "结束 IP",
+    "label.end.port": "结束端口",
+    "label.end.reserved.system.IP": "结束预留系统 IP",
+    "label.end.vlan": "结束 VLAN",
+    "label.end.vxlan": "结束 VXLAN",
+    "label.endpoint": "端点",
+    "label.endpoint.or.operation": "端点或操作",
+    "label.enter.token": "输入令牌",
+    "label.error": "错误",
+    "label.error.code": "错误代码",
+    "label.error.upper": "错误",
+    "label.esx.host": "ESX/ESXi 主机",
+    "label.event": "事件",
+    "label.event.archived": "事件已存档",
+    "label.event.deleted": "事件已删除",
+    "label.every": "每",
+    "label.example": "示例",
+    "label.expunge": "删除",
+    "label.external.link": "外部链接",
+    "label.extractable": "可提取",
+    "label.extractable.lower": "可提取",
+    "label.f5": "F5",
+    "label.f5.details": "F5 详细信息",
+    "label.failed": "失败",
+    "label.featured": "精选",
+    "label.fetch.latest": "提取最新内容",
+    "label.filterBy": "过滤依据",
+    "label.fingerprint": "指纹",
+    "label.firewall": "防火墙",
+    "label.first.name": "名字",
+    "label.firstname.lower": "名字",
+    "label.format": "格式",
+    "label.format.lower": "格式",
+    "label.friday": "星期五",
+    "label.full": "满载",
+    "label.full.path": "完整路径",
+    "label.gateway": "网关",
+    "label.general.alerts": "常规警报",
+    "label.generating.url": "正在生成 URL",
+    "label.globo.dns": "全局DNS",
+    "label.globo.dns.configuration": "全局 DNS 配置",
+    "label.gluster.volume": "卷",
+    "label.go.step.2": "转至步骤 2",
+    "label.go.step.3": "转至步骤 3",
+    "label.go.step.4": "转至步骤 4",
+    "label.go.step.5": "转至步骤 5",
+    "label.gpu": "GPU",
+    "label.group": "组",
+    "label.group.by.account": "按帐户分组",
+    "label.group.by.cluster": "按群集分组",
+    "label.group.by.pod": "按提供点分组",
+    "label.group.by.zone": "按资源域分组",
+    "label.group.optional": "组(可选)",
+    "label.gslb": "GSLB",
+    "label.gslb.assigned.lb": "已分配负载平衡",
+    "label.gslb.assigned.lb.more": "分配更多负载平衡",
+    "label.gslb.delete": "删除 GSLB",
+    "label.gslb.details": "GSLB 详细信息",
+    "label.gslb.domain.name": "GSLB 域名",
+    "label.gslb.lb.details": "负载平衡详细信息",
+    "label.gslb.lb.remove": "从此 GSLB 中删除负载平衡",
+    "label.gslb.lb.rule": "负载平衡规则",
+    "label.gslb.service": "GSLB 服务",
+    "label.gslb.service.private.ip": "GSLB 服务专用 IP",
+    "label.gslb.service.public.ip": "GSLB 服务公用 IP",
+    "label.gslb.servicetype": "服务类型",
+    "label.guest": "来宾",
+    "label.guest.cidr": "来宾 CIDR",
+    "label.guest.end.ip": "来宾结束 IP",
+    "label.guest.gateway": "来宾网关",
+    "label.guest.ip": "来宾 IP 地址",
+    "label.guest.ip.range": "来宾 IP 范围",
+    "label.guest.netmask": "来宾网络掩码",
+    "label.guest.network.details": "来宾网络详细信息",
+    "label.guest.networks": "来宾网络",
+    "label.guest.start.ip": "来宾起始 IP",
+    "label.guest.traffic": "来宾流量",
+    "label.guest.traffic.vswitch.name": "来宾流量虚拟交换机名称",
+    "label.guest.traffic.vswitch.type": "来宾流量虚拟交换机类型",
+    "label.guest.type": "来宾类型",
+    "label.ha.enabled": "已启用高可用性",
+    "label.health.check": "运行状况检查",
+    "label.health.check.advanced.options": "高级选项:",
+    "label.health.check.configurations.options": "配置选项:",
+    "label.health.check.interval.in.sec": "运行状况检查时间间隔(秒)",
+    "label.health.check.message.desc": "负载均衡器会自动对实例进行状况检查并且只有路由器至实例的链路正常才能通过检查",
+    "label.health.check.wizard": "运行检查向导",
+    "label.healthy.threshold": "正常阈值",
+    "label.help": "帮助",
+    "label.hide.ingress.rule": "隐藏入口规则",
+    "label.hints": "提示",
+    "label.home": "首页",
+    "label.host": "主机",
+    "label.host.MAC": "主机 MAC",
+    "label.host.alerts": "Hosts in Alert State",
+    "label.host.name": "主机名称",
+    "label.host.tag": "宿主机标签",
+    "label.host.tags": "主机标签",
+    "label.hosts": "主机",
+    "label.hourly": "每小时",
+    "label.hvm": "HVM",
+    "label.hyperv.traffic.label": "HyperV 流量标签",
+    "label.hypervisor": "虚拟机管理程序",
+    "label.hypervisor.capabilities": "虚拟机管理程序功能",
+    "label.hypervisor.snapshot.reserve": "虚拟机管理程序快照预留",
+    "label.hypervisor.type": "虚拟机管理程序类型",
+    "label.hypervisor.version": "虚拟机管理程序版本",
+    "label.hypervisors": "虚拟机管理程序",
+    "label.id": "ID",
+    "label.info": "信息",
+    "label.info.upper": "信息",
+    "label.ingress.rule": "入口规则",
+    "label.initiated.by": "启动者",
+    "label.inside.port.profile": "内部端口配置文件",
+    "label.installWizard.addClusterIntro.subtitle": "什么是群集?",
+    "label.installWizard.addClusterIntro.title": "添加一个群集",
+    "label.installWizard.addHostIntro.subtitle": "什么是主机?",
+    "label.installWizard.addHostIntro.title": "添加一个主机",
+    "label.installWizard.addPodIntro.subtitle": "什么是提供点?",
+    "label.installWizard.addPodIntro.title": "添加一个提供点",
+    "label.installWizard.addPrimaryStorageIntro.subtitle": "什么是主存储?",
+    "label.installWizard.addPrimaryStorageIntro.title": "添加一个主存储",
+    "label.installWizard.addSecondaryStorageIntro.subtitle": "什么是二级存储?",
+    "label.installWizard.addSecondaryStorageIntro.title": "添加一个二级存储",
+    "label.installWizard.addZone.title": "添加资源域",
+    "label.installWizard.addZoneIntro.subtitle": "什么是资源域?",
+    "label.installWizard.addZoneIntro.title": "添加一个资源域",
+    "label.installWizard.click.launch": "请单击“启动”按钮。",
+    "label.installWizard.subtitle": "此教程将帮助您设置 CloudStack&#8482 安装",
+    "label.installWizard.title": "您好,欢迎使用 CloudStack&#8482",
+    "label.instance": "实例",
+    "label.instance.limits": "实例限制",
+    "label.instance.name": "实例名称",
+    "label.instance.port": "实例端口",
+    "label.instance.scaled.up": "提供需要扩展的实例",
+    "label.instances": "实例",
+    "label.instanciate.template.associate.profile.blade": "将模板实例化并将配置文件与刀片式服务器关联",
+    "label.intermediate.certificate": "中间证书 {0}",
+    "label.internal.dns.1": "内部 DNS 1",
+    "label.internal.dns.2": "内部 DNS 2",
+    "label.internal.lb": "内部负载均衡器",
+    "label.internal.lb.details": "内部负载平衡器详细信息",
+    "label.internal.name": "内部名称",
+    "label.internallbvm": "InternalLbVm",
+    "label.interval.type": "间隔类型",
+    "label.introduction.to.cloudstack": "CloudStack&#8482 简介",
+    "label.invalid.integer": "无效整数",
+    "label.invalid.number": "无效数字",
+    "label.invitations": "邀请",
+    "label.invite": "邀请",
+    "label.invite.to": "邀请加入",
+    "label.invited.accounts": "已邀请的帐户",
+    "label.ip": "IP",
+    "label.ip.address": "IP 地址",
+    "label.ip.allocations": "IP 分配",
+    "label.ip.limits": "公用 IP 限制",
+    "label.ip.or.fqdn": "IP 或 FQDN",
+    "label.ip.range": "IP 范围",
+    "label.ip.ranges": "IP 范围",
+    "label.ipaddress": "IP 地址",
+    "label.ips": "IP",
+    "label.ipv4.cidr": "IPv4 CIDR",
+    "label.ipv4.dns1": "IPv4 DNS1",
+    "label.ipv4.dns2": "IPv4 DNS2",
+    "label.ipv4.end.ip": "IPv4 结束 IP",
+    "label.ipv4.gateway": "IPv4 网关",
+    "label.ipv4.netmask": "IPv4 网络掩码",
+    "label.ipv4.start.ip": "IPv4 起始 IP",
+    "label.ipv6.CIDR": "IPv6 CIDR",
+    "label.ipv6.address": "IPv6 IP 地址",
+    "label.ipv6.dns1": "IPv6 DNS1",
+    "label.ipv6.dns2": "IPv6 DNS2",
+    "label.ipv6.end.ip": "IPv6 结束 IP",
+    "label.ipv6.gateway": "IPv6 网关",
+    "label.ipv6.start.ip": "IPv6 起始 IP",
+    "label.is.default": "是否为默认设置",
+    "label.is.redundant.router": "冗余",
+    "label.is.shared": "是否共享",
+    "label.is.system": "是否为系统",
+    "label.iscsi": "iSCSI",
+    "label.iso": "ISO",
+    "label.iso.boot": "ISO 启动",
+    "label.isolated.networks": "隔离网络",
+    "label.isolation.method": "隔离方法",
+    "label.isolation.mode": "隔离模式",
+    "label.isolation.uri": "隔离 URI",
+    "label.item.listing": "项目列表",
+    "label.japanese.keyboard": "日式键盘",
+    "label.keep": "保留",
+    "label.keep.colon": "保留",
+    "label.key": "密钥",
+    "label.keyboard.language": "键盘语言",
+    "label.keyboard.type": "键盘类型",
+    "label.kvm.traffic.label": "KVM 流量标签",
+    "label.label": "标签",
+    "label.lang.arabic": "阿拉伯语",
+    "label.lang.brportugese": "葡萄牙语(巴西)",
+    "label.lang.catalan": "加泰罗尼亚语",
+    "label.lang.chinese": "简体中文",
+    "label.lang.dutch": "荷兰语(荷兰)",
+    "label.lang.english": "英语",
+    "label.lang.french": "法语",
+    "label.lang.german": "德语",
+    "label.lang.hungarian": "匈牙利",
+    "label.lang.italian": "意大利语",
+    "label.lang.japanese": "日语",
+    "label.lang.korean": "韩语",
+    "label.lang.norwegian": "挪威语",
+    "label.lang.polish": "波兰语",
+    "label.lang.russian": "俄语",
+    "label.lang.spanish": "西班牙语",
+    "label.last.disconnected": "上次断开连接时间",
+    "label.last.name": "姓氏",
+    "label.lastname.lower": "姓氏",
+    "label.latest.events": "最新事件",
+    "label.launch": "启动",
+    "label.launch.vm": "启动 VM",
+    "label.launch.zone": "启动资源域",
+    "label.lb.algorithm.leastconn": "最少连接算法",
+    "label.lb.algorithm.roundrobin": "轮循",
+    "label.lb.algorithm.source": "源算法",
+    "label.ldap.configuration": "LDAP 配置",
+    "label.ldap.group.name": "LDAP 组",
+    "label.ldap.link.type": "类型",
+    "label.ldap.port": "LDAP 端口",
+    "label.level": "级别",
+    "label.link.domain.to.ldap": "域链接至 LDAP",
+    "label.linklocal.ip": "链接本地 IP 地址",
+    "label.load.balancer": "负载平衡器",
+    "label.load.balancer.type": "负载平衡器类型",
+    "label.load.balancing": "负载平衡",
+    "label.load.balancing.policies": "负载平衡策略",
+    "label.loading": "正在加载",
+    "label.local": "本地",
+    "label.local.file": "本地文件",
+    "label.local.storage": "本地存储",
+    "label.local.storage.enabled": "为用户实例开启本地存储",
+    "label.local.storage.enabled.system.vms": "为系统实例开启本地存储",
+    "label.login": "登录",
+    "label.logout": "注销",
+    "label.lun": "LUN",
+    "label.lxc.traffic.label": "LXC 流量标签",
+    "label.make.project.owner": "设为帐户项目所有者",
+    "label.make.redundant": "冗余",
+    "label.manage": "托管",
+    "label.manage.resources": "管理资源",
+    "label.managed": "托管",
+    "label.management": "管理",
+    "label.management.ips": "管理类 IP 地址",
+    "label.management.server": "管理服务器",
+    "label.max.cpus": "最大 CPU 内核数",
+    "label.max.guest.limit": "最大来宾数限制",
+    "label.max.instances": "最大实例数",
+    "label.max.memory": "最大内存(MiB)",
+    "label.max.networks": "最大网络数",
+    "label.max.primary.storage": "最大主存储(GiB)",
+    "label.max.public.ips": "最大公用 IP 数",
+    "label.max.secondary.storage": "最大二级存储(GiB)",
+    "label.max.snapshots": "最大快照数",
+    "label.max.templates": "最大模板数",
+    "label.max.vms": "最大用户 VM 数",
+    "label.max.volumes": "最大卷数",
+    "label.max.vpcs": "最大 VPC 数",
+    "label.maximum": "最大值",
+    "label.may.continue": "您现在可以继续进行操作。",
+    "label.md5.checksum": "MD5 校验和",
+    "label.memory": "内存",
+    "label.memory.allocated": "已分配的内存",
+    "label.memory.limits": "内存限制(MiB)",
+    "label.memory.mb": "内存(MB)",
+    "label.memory.total": "内存总量",
+    "label.memory.used": "已使用的内存",
+    "label.menu.accounts": "帐户",
+    "label.menu.alerts": "警报",
+    "label.menu.all.accounts": "所有帐户",
+    "label.menu.all.instances": "所有实例",
+    "label.menu.community.isos": "社区 ISO",
+    "label.menu.community.templates": "社区模板",
+    "label.menu.configuration": "配置",
+    "label.menu.dashboard": "控制板",
+    "label.menu.destroyed.instances": "已销毁的实例",
+    "label.menu.disk.offerings": "磁盘方案",
+    "label.menu.domains": "域",
+    "label.menu.events": "事件",
+    "label.menu.featured.isos": "精选 ISO",
+    "label.menu.featured.templates": "精选模板",
+    "label.menu.global.settings": "全局设置",
+    "label.menu.infrastructure": "基础架构",
+    "label.menu.instances": "实例",
+    "label.menu.ipaddresses": "IP 地址",
+    "label.menu.isos": "ISO",
+    "label.menu.my.accounts": "我的帐户",
+    "label.menu.my.instances": "我的实例",
+    "label.menu.my.isos": "我的 ISO",
+    "label.menu.my.templates": "我的模板",
+    "label.menu.network": "网络",
+    "label.menu.network.offerings": "网络方案",
+    "label.menu.physical.resources": "物理资源",
+    "label.menu.regions": "地理区域",
+    "label.menu.running.instances": "正在运行的实例",
+    "label.menu.security.groups": "安全组",
+    "label.menu.service.offerings": "服务方案",
+    "label.menu.snapshots": "快照",
+    "label.menu.sshkeypair": "SSH 密钥对",
+    "label.menu.stopped.instances": "已停止的实例",
+    "label.menu.storage": "存储",
+    "label.menu.system": "系统",
+    "label.menu.system.service.offerings": "系统方案",
+    "label.menu.system.vms": "系统 VM",
+    "label.menu.templates": "模板",
+    "label.menu.virtual.appliances": "虚拟设备",
+    "label.menu.virtual.resources": "虚拟资源",
+    "label.menu.volumes": "卷",
+    "label.menu.vpc.offerings": "VPC 方案",
+    "label.metrics": "Metrics",
+    "label.metrics.allocated": "已分配",
+    "label.metrics.clusters": "群集",
+    "label.metrics.cpu.allocated": "CPU Allocation",
+    "label.metrics.cpu.max.dev": "Deviation",
+    "label.metrics.cpu.total": "Total",
+    "label.metrics.cpu.usage": "CPU Usage",
+    "label.metrics.cpu.used.avg": "已使用",
+    "label.metrics.disk": "Disk",
+    "label.metrics.disk.allocated": "已分配",
+    "label.metrics.disk.iops.total": "IOPS",
+    "label.metrics.disk.read": "Read",
+    "label.metrics.disk.size": "大小",
+    "label.metrics.disk.storagetype": "类型",
+    "label.metrics.disk.total": "Total",
+    "label.metrics.disk.unallocated": "Unallocated",
+    "label.metrics.disk.usage": "Disk Usage",
+    "label.metrics.disk.used": "已使用",
+    "label.metrics.disk.write": "Write",
+    "label.metrics.hosts": "主机",
+    "label.metrics.memory.allocated": "Mem Allocation",
+    "label.metrics.memory.max.dev": "Deviation",
+    "label.metrics.memory.total": "Total",
+    "label.metrics.memory.usage": "Mem Usage",
+    "label.metrics.memory.used.avg": "已使用",
+    "label.metrics.name": "名称",
+    "label.metrics.network.read": "Read",
+    "label.metrics.network.usage": "Network Usage",
+    "label.metrics.network.write": "Write",
+    "label.metrics.num.cpu.cores": "Cores",
+    "label.metrics.outofbandmanagementpowerstate": "Power State",
+    "label.metrics.property": "Property",
+    "label.metrics.scope": "范围",
+    "label.metrics.state": "状态",
+    "label.metrics.storagepool": "存储池",
+    "label.metrics.vm.name": "VM Name",
+    "label.migrate.instance.to": "迁移实例至",
+    "label.migrate.instance.to.host": "将实例迁移到其他主机",
+    "label.migrate.instance.to.ps": "将实例迁移到其他主存储",
+    "label.migrate.lb.vm": "迁移 LB VM",
+    "label.migrate.router.to": "迁移路由器至",
+    "label.migrate.systemvm.to": "迁移系统 VM 至",
+    "label.migrate.to.host": "迁移到主机",
+    "label.migrate.to.storage": "迁移到存储",
+    "label.migrate.volume": "迁移卷",
+    "label.migrate.volume.to.primary.storage": "将卷迁移到其他主存储",
+    "label.min.instances": "最小实例数",
+    "label.min.past.the.hr": "分 每小时",
+    "label.minimum": "最小值",
+    "label.minute.past.hour": "分钟时",
+    "label.minutes.past.hour": "分 (每小时)",
+    "label.mode": "模式",
+    "label.monday": "星期一",
+    "label.monthly": "每月",
+    "label.more.templates": "更多模板",
+    "label.move.down.row": "向下移动一行",
+    "label.move.to.bottom": "移至底部",
+    "label.move.to.top": "移至顶部",
+    "label.move.up.row": "向上移动一行",
+    "label.my.account": "我的帐户",
+    "label.my.network": "我的网络",
+    "label.my.templates": "我的模板",
+    "label.na": "无",
+    "label.name": "名称",
+    "label.name.lower": "名称",
+    "label.name.optional": "名称(可选)",
+    "label.nat.port.range": "NAT 端口范围",
+    "label.netScaler": "NetScaler",
+    "label.netmask": "网络掩码",
+    "label.netscaler.details": "NetScaler 详细信息",
+    "label.network": "网络",
+    "label.network.ACL": "网络 ACL",
+    "label.network.ACL.total": "网络 ACL 总数",
+    "label.network.ACLs": "网络 ACL",
+    "label.network.addVM": "将网络添加到 VM",
+    "label.network.cidr": "网络 CIDR",
+    "label.network.desc": "网络描述",
+    "label.network.details": "网络详情",
+    "label.network.device": "网络设备",
+    "label.network.device.type": "网络设备类型",
+    "label.network.domain": "网络域",
+    "label.network.domain.text": "网络域",
+    "label.network.id": "网络 ID",
+    "label.network.label.display.for.blank.value": "使用默认网关",
+    "label.network.limits": "网络限制",
+    "label.network.name": "网络名称",
+    "label.network.offering": "网络方案",
+    "label.network.offering.details": "网络方案详情",
+    "label.network.offering.display.text": "网络方案显示文本",
+    "label.network.offering.id": "网络方案 ID",
+    "label.network.offering.name": "网络方案名称",
+    "label.network.rate": "网络速率(MB/秒)",
+    "label.network.rate.megabytes": "网络速率(MB/秒)",
+    "label.network.read": "网络读取量",
+    "label.network.service.providers": "网络服务提供程序",
+    "label.network.type": "网络类型",
+    "label.network.write": "网络写入量",
+    "label.networking.and.security": "网络连接与安全",
+    "label.networks": "网络",
+    "label.new": "新建",
+    "label.new.password": "新密码",
+    "label.new.project": "新建项目",
+    "label.new.ssh.key.pair": "新SSH密钥对",
+    "label.new.vm": "新建 VM",
+    "label.next": "下一步",
+    "label.nexusVswitch": "Nexus 1000v",
+    "label.nfs": "NFS",
+    "label.nfs.server": "NFS 服务器",
+    "label.nfs.storage": "NFS 存储",
+    "label.nic.adapter.type": "NIC 适配器类型",
+    "label.nicira.controller.address": "控制器地址",
+    "label.nicira.l2gatewayserviceuuid": "L2 Gateway Service Uuid",
+    "label.nicira.l3gatewayserviceuuid": "L3 Gateway Service UUID",
+    "label.nicira.nvp.details": "Nicira NVP 详细信息",
+    "label.nicira.transportzoneuuid": "传输资源域 UUID",
+    "label.nics": "NIC",
+    "label.no": "否",
+    "label.no.actions": "无可用操作",
+    "label.no.alerts": "无最近发出的警报",
+    "label.no.data": "无可显示的数据",
+    "label.no.errors": "无最近出现的错误",
+    "label.no.grouping": "(未分组)",
+    "label.no.isos": "无可用 ISO",
+    "label.no.items": "无可用项目",
+    "label.no.security.groups": "无可用安全组",
+    "label.no.thanks": "不,谢谢",
+    "label.none": "无",
+    "label.not.found": "未找到",
+    "label.notifications": "通知",
+    "label.num.cpu.cores": "CPU 内核数",
+    "label.number.of.clusters": "群集数量",
+    "label.number.of.cpu.sockets": "CPU 插槽数",
+    "label.number.of.hosts": "主机数量",
+    "label.number.of.pods": "提供点数量",
+    "label.number.of.system.vms": "系统 VM 数",
+    "label.number.of.virtual.routers": "虚拟路由器数",
+    "label.number.of.zones": "资源域数量",
+    "label.numretries": "重试次数",
+    "label.ocfs2": "OCFS2",
+    "label.of.month": "月",
+    "label.offer.ha": "提供高可用性",
+    "label.ok": "确定",
+    "label.openDaylight": "OpenDaylight",
+    "label.opendaylight.controller": "OpenDaylight 控制器",
+    "label.opendaylight.controllerdetail": "OpenDaylight 控制器详细信息",
+    "label.opendaylight.controllers": "OpenDaylight 控制器",
+    "label.operator": "运算符",
+    "label.optional": "可选",
+    "label.order": "排序",
+    "label.os.preference": "操作系统首选项",
+    "label.os.type": "操作系统类型",
+    "label.other": "其他",
+    "label.outofbandmanagement": "Out-of-band Management",
+    "label.outofbandmanagement.action": "操作",
+    "label.outofbandmanagement.action.issue": "Issue Out-of-band Management Power Action",
+    "label.outofbandmanagement.address": "Address",
+    "label.outofbandmanagement.changepassword": "Change Out-of-band Management Password",
+    "label.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "label.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "label.outofbandmanagement.driver": "Driver",
+    "label.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "label.outofbandmanagement.password": "密码",
+    "label.outofbandmanagement.port": "端口",
+    "label.outofbandmanagement.reenterpassword": "Re-enter Password",
+    "label.outofbandmanagement.username": "用户名",
+    "label.override.guest.traffic": "替代来宾流量",
+    "label.override.public.traffic": "替代公共流量",
+    "label.ovm.traffic.label": "OVM 流量标签",
+    "label.ovm3.cluster": "本地集群",
+    "label.ovm3.pool": "原生池",
+    "label.ovm3.traffic.label": "OVM3 traffic label",
+    "label.ovm3.vip": "主虚拟IP",
+    "label.ovs": "OVS",
+    "label.owned.public.ips": "拥有的公用 IP 地址数",
+    "label.owner.account": "所有者帐户",
+    "label.owner.domain": "所有者域",
+    "label.palo.alto.details": "Palo Alto 详细信息",
+    "label.parent.domain": "父域",
+    "label.passive": "被动",
+    "label.password": "密码",
+    "label.password.enabled": "已启用密码",
+    "label.password.lower": "密码",
+    "label.password.reset.confirm": "密码已重置为",
+    "label.path": "路径",
+    "label.perfect.forward.secrecy": "完全正向保密",
+    "label.permission": "Permission",
+    "label.persistent": "永久",
+    "label.physical.network": "物理网络",
+    "label.physical.network.ID": "物理网络 ID",
+    "label.physical.network.name": "物理网络名称",
+    "label.ping.path": "Ping 路径",
+    "label.planner.mode": "规划器模式",
+    "label.please.complete.the.following.fields": "请完成以下内容",
+    "label.please.specify.netscaler.info": "请指定 NetScaler 信息",
+    "label.please.wait": "请稍候",
+    "label.plugin.details": "插件详细信息",
+    "label.plugins": "插件",
+    "label.pod": "提供点",
+    "label.pod.dedicated": "提供点已专用",
+    "label.pod.name": "提供点名称",
+    "label.pods": "提供点",
+    "label.polling.interval.sec": "轮询时间间隔(秒)",
+    "label.port": "端口",
+    "label.port.forwarding": "端口转发",
+    "label.port.forwarding.policies": "端口转发策略",
+    "label.port.range": "端口范围",
+    "label.portable.ip": "可移植 IP",
+    "label.portable.ip.range.details": "可移植 IP 范围详细信息",
+    "label.portable.ip.ranges": "可移植 IP 范围",
+    "label.portable.ips": "可移植 IP",
+    "label.powerstate": "Power State",
+    "label.prev": "上一页",
+    "label.previous": "上一步",
+    "label.primary.allocated": "已分配的主存储",
+    "label.primary.network": "主网络",
+    "label.primary.storage": "主存储",
+    "label.primary.storage.count": "主存储池",
+    "label.primary.storage.limits": "主存储限制(GiB)",
+    "label.primary.used": "已使用的主存储",
+    "label.private.Gateway": "专用网关",
+    "label.private.interface": "专用接口",
+    "label.private.ip": "专用 IP 地址",
+    "label.private.ip.range": "专用 IP 范围",
+    "label.private.ips": "专用 IP 地址",
+    "label.private.key": "私钥",
+    "label.private.network": "专用网络",
+    "label.private.port": "专用端口",
+    "label.private.zone": "专用资源域",
+    "label.privatekey": "PKCS#8 私钥",
+    "label.profile": "配置文件",
+    "label.project": "项目",
+    "label.project.dashboard": "项目控制板",
+    "label.project.id": "项目 ID",
+    "label.project.invite": "邀请加入项目",
+    "label.project.name": "项目名称",
+    "label.project.view": "项目视图",
+    "label.projects": "项目",
+    "label.protocol": "协议",
+    "label.protocol.number": "协议编号",
+    "label.provider": "提供程序",
+    "label.providers": "提供程序",
+    "label.public": "公用",
+    "label.public.interface": "公用接口",
+    "label.public.ip": "公用 IP 地址",
+    "label.public.ips": "公用 IP 地址",
+    "label.public.key": "公钥",
+    "label.public.lb": "公共负载均衡器",
+    "label.public.load.balancer.provider": "公用负载平衡器提供程序",
+    "label.public.network": "公用网络",
+    "label.public.port": "公用端口",
+    "label.public.traffic": "公共流量",
+    "label.public.traffic.vswitch.name": "公共流量虚拟交换机名称",
+    "label.public.traffic.vswitch.type": "公共流量虚拟交换机类型",
+    "label.public.zone": "公用资源域",
+    "label.purpose": "目的",
+    "label.qos.type": "QoS 类型",
+    "label.quickview": "快速查看",
+    "label.quiesce.vm": "静默 VM",
+    "label.quiet.time.sec": "安静时间(秒)",
+    "label.quota.add.credits": "Add Credits",
+    "label.quota.balance": "Balance",
+    "label.quota.configuration": "Quota Configuration",
+    "label.quota.configure": "Configure Quota",
+    "label.quota.credit": "Credit",
+    "label.quota.credits": "Credits",
+    "label.quota.date": "日期",
+    "label.quota.dates": "Update Dates",
+    "label.quota.description": "Quota Description",
+    "label.quota.email.body": "Body",
+    "label.quota.email.lastupdated": "Last Update",
+    "label.quota.email.subject": "Subject",
+    "label.quota.email.template": "Email Template",
+    "label.quota.enddate": "End Date",
+    "label.quota.endquota": "End Quota",
+    "label.quota.enforcequota": "Enforce Quota",
+    "label.quota.fullsummary": "所有帐户",
+    "label.quota.minbalance": "Min Balance",
+    "label.quota.remove": "Remove Quota",
+    "label.quota.startdate": "Start Date",
+    "label.quota.startquota": "Start Quota",
+    "label.quota.state": "状态",
+    "label.quota.statement": "Statement",
+    "label.quota.statement.balance": "Quota Balance",
+    "label.quota.statement.bydates": "Statement",
+    "label.quota.statement.quota": "Quota Usage",
+    "label.quota.statement.tariff": "Quota Tariff",
+    "label.quota.summary": "Summary",
+    "label.quota.tariff": "Tariff",
+    "label.quota.tariff.edit": "Edit Tariff",
+    "label.quota.tariff.effectivedate": "Effective Date",
+    "label.quota.tariff.value": "Tariff Value",
+    "label.quota.total": "Total",
+    "label.quota.totalusage": "Total Usage",
+    "label.quota.type.name": "Usage Type",
+    "label.quota.type.unit": "Usage Unit",
+    "label.quota.usage": "Quota Consumption",
+    "label.quota.value": "Quota Value",
+    "label.rbd": "RBD",
+    "label.rbd.id": "Cephx 用户",
+    "label.rbd.monitor": "Ceph 监视器",
+    "label.rbd.pool": "Ceph 池",
+    "label.rbd.secret": "Cephx 密钥",
+    "label.reboot": "重新启动",
+    "label.recent.errors": "最近出现的错误",
+    "label.recover.vm": "恢复 VM",
+    "label.redundant.router": "冗余路由器",
+    "label.redundant.router.capability": "冗余路由器功能",
+    "label.redundant.state": "冗余状态",
+    "label.redundant.vpc": "冗余VPC",
+    "label.refresh": "刷新",
+    "label.refresh.blades": "刷新刀片式服务器",
+    "label.region": "地理区域",
+    "label.region.details": "地理区域详情",
+    "label.regionlevelvpc": "地理区域级 VPC",
+    "label.reinstall.vm": "重新安装 VM",
+    "label.related": "相关联",
+    "label.release.account": "从帐户中释放",
+    "label.release.account.lowercase": "从帐户中释放",
+    "label.release.dedicated.cluster": "释放专用群集",
+    "label.release.dedicated.host": "释放专用主机",
+    "label.release.dedicated.pod": "释放专用提供点",
+    "label.release.dedicated.vlan.range": "释放专用 VLAN 范围",
+    "label.release.dedicated.zone": "释放专用资源域",
+    "label.remind.later": "以后提醒我",
+    "label.remove.ACL": "删除 ACL",
+    "label.remove.egress.rule": "删除出口规则",
+    "label.remove.from.load.balancer": "正在从负载平衡器中删除实例",
+    "label.remove.ingress.rule": "删除入口规则",
+    "label.remove.ip.range": "删除 IP 范围",
+    "label.remove.ldap": "删除 LDAP",
+    "label.remove.network.offering": "删除网络方案",
+    "label.remove.pf": "删除端口转发规则",
+    "label.remove.project.account": "从项目中删除帐户",
+    "label.remove.region": "删除地理区域",
+    "label.remove.rule": "删除规则",
+    "label.remove.ssh.key.pair": "删除密钥对",
+    "label.remove.static.nat.rule": "删除静态 NAT 规则",
+    "label.remove.static.route": "删除静态路由",
+    "label.remove.this.physical.network": "删除此物理网络",
+    "label.remove.tier": "删除层",
+    "label.remove.vm.from.lb": "从负载平衡器规则中删除 VM",
+    "label.remove.vm.load.balancer": "从负载平衡器中删除 VM",
+    "label.remove.vmware.datacenter": "删除 VMware 数据中心",
+    "label.remove.vpc": "删除 VPC",
+    "label.remove.vpc.offering": "删除 VPC 方案",
+    "label.removing": "正在删除",
+    "label.removing.user": "正在删除用户",
+    "label.reource.id": "资源 ID",
+    "label.replace.acl": "替换 ACL",
+    "label.replace.acl.list": "替换 ACL 列表",
+    "label.required": "必填项",
+    "label.requires.upgrade": "需要升级",
+    "label.reserved.ip.range": "预留 IP 范围",
+    "label.reserved.system.gateway": "预留的系统网关",
+    "label.reserved.system.ip": "预留的系统 IP",
+    "label.reserved.system.netmask": "预留的系统网络掩码",
+    "label.reset.VPN.connection": "重置 VPN 连接",
+    "label.reset.ssh.key.pair": "重置SSH密钥对",
+    "label.reset.ssh.key.pair.on.vm": "重置实例的SSH密钥对",
+    "label.resetVM": "重置 VM",
+    "label.resize.new.offering.id": "新方案",
+    "label.resize.new.size": "新建大小(GB)",
+    "label.resize.shrink.ok": "是否确实要缩小卷大小",
+    "label.resource": "资源",
+    "label.resource.limit.exceeded": "已超出资源限制",
+    "label.resource.limits": "资源限制",
+    "label.resource.name": "资源名称",
+    "label.resource.state": "资源状态",
+    "label.resources": "资源",
+    "label.response.timeout.in.sec": "响应超时(秒)",
+    "label.restart.network": "重新启动网络",
+    "label.restart.required": "需要重新启动",
+    "label.restart.vpc": "重新启动 VPC",
+    "label.restore": "还原",
+    "label.retry.interval": "重试时间间隔",
+    "label.review": "核对",
+    "label.revoke.project.invite": "撤销邀请",
+    "label.role": "角色",
+    "label.roles": "角色",
+    "label.roletype": "Role Type",
+    "label.root.certificate": "根证书",
+    "label.root.disk.controller": "根磁盘控制器",
+    "label.root.disk.offering": "根磁盘方案",
+    "label.root.disk.size": "Root disk size (GB)",
+    "label.router.vm.scaled.up": "已扩展路由器 VM",
+    "label.routing": "正在路由",
+    "label.routing.host": "正在路由主机",
+    "label.rule": "规则",
+    "label.rule.number": "规则编号",
+    "label.rules": "规则",
+    "label.running.vms": "正在运行的 VM",
+    "label.s3.access_key": "访问密钥",
+    "label.s3.bucket": "存储桶",
+    "label.s3.connection_timeout": "连接超时",
+    "label.s3.endpoint": "端点",
+    "label.s3.max_error_retry": "最大错误重试次数",
+    "label.s3.nfs.path": "S3 NFS 路径",
+    "label.s3.nfs.server": "S3 NFS 服务器",
+    "label.s3.secret_key": "密钥",
+    "label.s3.socket_timeout": "套接字超时",
+    "label.s3.use_https": "使用 HTTPS",
+    "label.saml.enable": "批准 SAML SSO",
+    "label.saml.entity": "认证方式",
+    "label.saturday": "星期六",
+    "label.save": "保存",
+    "label.save.and.continue": "保存并继续",
+    "label.save.changes": "保存修改",
+    "label.saving.processing": "正在保存...",
+    "label.scale.up.policy": "扩展策略",
+    "label.scaledown.policy": "减缩策略",
+    "label.scaleup.policy": "扩展策略",
+    "label.scope": "范围",
+    "label.search": "搜索",
+    "label.secondary.ips": "二级 IPs",
+    "label.secondary.isolated.vlan.id": "二级隔离 VLAN ID",
+    "label.secondary.staging.store": "二级暂存存储",
+    "label.secondary.staging.store.details": "二级暂存存储详细信息",
+    "label.secondary.storage": "二级存储",
+    "label.secondary.storage.count": "二级存储池",
+    "label.secondary.storage.details": "二级存储详细信息",
+    "label.secondary.storage.limits": "二级存储限制(GiB)",
+    "label.secondary.storage.vm": "二级存储 VM",
+    "label.secondary.used": "已使用的二级存储",
+    "label.secret.key": "密钥",
+    "label.security.group": "安全组",
+    "label.security.group.name": "安全组名称",
+    "label.security.groups": "安全组",
+    "label.security.groups.enabled": "已启用安全组",
+    "label.select": "选择",
+    "label.select-view": "选择视图",
+    "label.select.a.template": "选择一个模板",
+    "label.select.a.zone": "选择一个资源域",
+    "label.select.instance": "选择实例",
+    "label.select.instance.to.attach.volume.to": "选择要将卷附加到的实例",
+    "label.select.host": "选择主机",
+    "label.select.iso.or.template": "选择 ISO 或模板",
+    "label.select.offering": "选择方案",
+    "label.select.project": "选择项目",
+    "label.select.region": "选择地理区域",
+    "label.select.template": "选择模板",
+    "label.select.tier": "选择层",
+    "label.select.vm.for.static.nat": "为静态 NAT 选择 VM",
+    "label.sent": "已发送",
+    "label.server": "服务器",
+    "label.service.capabilities": "服务功能",
+    "label.service.offering": "服务方案",
+    "label.service.offering.details": "服务方案详情",
+    "label.service.state": "服务状态",
+    "label.services": "服务",
+    "label.session.expired": "会话已过期",
+    "label.set.default.NIC": "设置默认 NIC",
+    "label.set.up.zone.type": "设置资源域类型",
+    "label.settings": "设置",
+    "label.setup": "设置",
+    "label.setup.network": "配置网络",
+    "label.setup.zone": "配置区域",
+    "label.shared": "已共享",
+    "label.show.advanced.settings": "显示高级设置",
+    "label.show.ingress.rule": "显示入口规则",
+    "label.shutdown.provider": "关闭提供程序",
+    "label.simplified.chinese.keyboard": "简体中文键盘",
+    "label.site.to.site.VPN": "点对点 VPN",
+    "label.size": "大小",
+    "label.skip.guide": "我以前使用过 CloudStack,跳过此指南",
+    "label.smb.domain": "SMB 域",
+    "label.smb.password": "SMB 密码",
+    "label.smb.username": "SMB 用户名",
+    "label.snapshot": "快照",
+    "label.snapshot.limits": "快照限制",
+    "label.snapshot.name": "快照名称",
+    "label.snapshot.s": "快照",
+    "label.snapshot.schedule": "设置重现快照",
+    "label.snapshots": "快照",
+    "label.sockets": "CPU 插槽",
+    "label.source.ip.address": "源 IP 地址",
+    "label.source.nat": "源 NAT",
+    "label.source.nat.supported": "支持 SourceNAT",
+    "label.source.port": "源端口",
+    "label.specify.IP.ranges": "指定 IP 范围",
+    "label.specify.vlan": "指定 VLAN",
+    "label.specify.vxlan": "指定 VXLAN",
+    "label.srx": "SRX",
+    "label.srx.details": "SRX 详细信息",
+    "label.ssh.key.pair": "SSH密钥对",
+    "label.ssh.key.pair.details": "SSH密钥对详情",
+    "label.ssh.key.pairs": "SSH密钥对",
+    "label.standard.us.keyboard": "标准(US)键盘",
+    "label.start.IP": "起始 IP",
+    "label.start.lb.vm": "启动 LB VM",
+    "label.start.port": "起始端口",
+    "label.start.reserved.system.IP": "起始预留系统 IP",
+    "label.start.vlan": "起始 VLAN",
+    "label.start.vxlan": "起始 VXLAN",
+    "label.state": "状态",
+    "label.suitability": "适应性",
+    "label.static.nat": "静态 NAT",
+    "label.static.nat.enabled": "已启用静态 NAT",
+    "label.static.nat.to": "静态 NAT 目标",
+    "label.static.nat.vm.details": "静态 NAT VM 详情",
+    "label.static.routes": "静态路由器",
+    "label.statistics": "统计数据",
+    "label.status": "状态",
+    "label.step.1": "步骤 1",
+    "label.step.1.title": "步骤 1: <strong>选择一个模板</strong>",
+    "label.step.2": "步骤 2",
+    "label.step.2.title": "步骤 2: <strong>服务方案</strong>",
+    "label.step.3": "步骤 3",
+    "label.step.3.title": "步骤 3: <strong id=\"step3_label\">选择一种磁盘方案</strong>",
+    "label.step.4": "步骤 4",
+    "label.step.4.title": "步骤 4: <strong>网络</strong>",
+    "label.step.5": "步骤 5",
+    "label.step.5.title": "步骤 5: <strong>核对</strong>",
+    "label.stickiness": "粘性",
+    "label.stickiness.method": "粘性方法",
+    "label.sticky.cookie-name": "Cookie 名称",
+    "label.sticky.domain": "域",
+    "label.sticky.expire": "过期日期",
+    "label.sticky.holdtime": "持续时间",
+    "label.sticky.indirect": "indirect",
+    "label.sticky.length": "长度",
+    "label.sticky.mode": "模式",
+    "label.sticky.name": "粘性名称",
+    "label.sticky.nocache": "nocache",
+    "label.sticky.postonly": "postonly",
+    "label.sticky.prefix": "prefix",
+    "label.sticky.request-learn": "request-learn",
+    "label.sticky.tablesize": "表大小",
+    "label.stop": "停止",
+    "label.stop.lb.vm": "停止 LB VM",
+    "label.stopped.vms": "已停止的 VM",
+    "label.storage": "存储",
+    "label.storage.pool": "存储池",
+    "label.storage.tags": "存储标签",
+    "label.storage.traffic": "存储流量",
+    "label.storage.type": "存储类型",
+    "label.subdomain.access": "子域访问",
+    "label.submit": "提交",
+    "label.submitted.by": "[提交者: <span id=\"submitted_by\"></span>]",
+    "label.succeeded": "成功",
+    "label.sunday": "星期日",
+    "label.super.cidr.for.guest.networks": "来宾网络的超级 CIDR",
+    "label.supported.services": "支持的服务",
+    "label.supported.source.NAT.type": "支持的源 NAT 类型",
+    "label.supportsstrechedl2subnet": "支持扩展二级子网",
+    "label.supportspublicaccess": "Supports Public Access",
+    "label.suspend.project": "暂停项目",
+    "label.switch.type": "交换机类型",
+    "label.system.capacity": "系统容量",
+    "label.system.offering": "系统方案",
+    "label.system.offering.for.router": "路由器的系统方案",
+    "label.system.service.offering": "系统服务方案",
+    "label.system.service.offering.details": "系统服务方案详情",
+    "label.system.vm": "系统 VM",
+    "label.system.vm.details": "系统 VM 详细信息",
+    "label.system.vm.scaled.up": "已扩展系统 VM",
+    "label.system.vm.type": "系统 VM 类型",
+    "label.system.vms": "系统 VM",
+    "label.system.wide.capacity": "整个系统的容量",
+    "label.tag.key": "标记密钥",
+    "label.tag.value": "标记值",
+    "label.tagged": "已标记",
+    "label.tags": "标签",
+    "label.target.iqn": "目标 IQN",
+    "label.task.completed": "已完成任务",
+    "label.template": "模板",
+    "label.template.limits": "模板限制",
+    "label.tftp.root.directory": "Tftp 根目录",
+    "label.theme.default": "默认主题",
+    "label.theme.grey": "自定义 - 灰色",
+    "label.theme.lightblue": "自定义 - 淡蓝色",
+    "label.threshold": "阈值",
+    "label.thursday": "星期四",
+    "label.tier": "层",
+    "label.tier.details": "层详细信息",
+    "label.time": "时间",
+    "label.time.colon": "时间:",
+    "label.time.zone": "时区",
+    "label.timeout": "超时",
+    "label.timeout.in.second ": " 超时(秒)",
+    "label.timezone": "时区",
+    "label.timezone.colon": "时区",
+    "label.token": "令牌",
+    "label.total.CPU": "CPU 总量",
+    "label.total.cpu": "CPU 总量",
+    "label.total.hosts": "总主机数",
+    "label.total.memory": "内存总量",
+    "label.total.of.ip": "IP地址总数",
+    "label.total.of.vm": "总 VM 数",
+    "label.total.storage": "存储总量",
+    "label.total.virtual.routers": "虚拟路由器总数",
+    "label.total.virtual.routers.upgrade": "需要升级的虚拟路由器总数",
+    "label.total.vms": "总 VM 数",
+    "label.traffic.label": "流量标签",
+    "label.traffic.type": "流量类型",
+    "label.traffic.types": "流量类型",
+    "label.tuesday": "星期二",
+    "label.type": "类型",
+    "label.type.id": "类型 ID",
+    "label.type.lower": "类型",
+    "label.ucs": "UCS",
+    "label.uk.keyboard": "美式键盘",
+    "label.unavailable": "不可用",
+    "label.unhealthy.threshold": "不正常阈值",
+    "label.unlimited": "无限制",
+    "label.untagged": "已取消标记",
+    "label.update.project.resources": "更新项目资源",
+    "label.update.ssl": " SSL 证书",
+    "label.update.ssl.cert": " SSL 证书",
+    "label.updating": "正在更新",
+    "label.upgrade.required": "需要升级",
+    "label.upgrade.router.newer.template": "升级路由器以使用更新的模板",
+    "label.upload": "上载",
+    "label.upload.from.local": "通过本地上传",
+    "label.upload.template.from.local": "通过本地上传模板",
+    "label.upload.volume": "上载卷",
+    "label.upload.volume.from.local": "通过本地上传卷",
+    "label.upload.volume.from.url": "通过URL上传卷",
+    "label.url": "URL",
+    "label.usage.interface": "使用界面",
+    "label.usage.sanity.result": "使用健全性检查结果",
+    "label.usage.server": "使用服务器",
+    "label.usage.type": "Usage Type",
+    "label.usage.unit": "Unit",
+    "label.use.vm.ip": "使用 VM IP:",
+    "label.use.vm.ips": "使用 VM IP",
+    "label.used": "已使用",
+    "label.user": "用户",
+    "label.user.data": "用户数据",
+    "label.user.details": "用户详情",
+    "label.user.vm": "用户 VM",
+    "label.username": "用户名",
+    "label.username.lower": "用户名",
+    "label.users": "用户",
+    "label.vSwitch.type": "vSwitch 类型",
+    "label.value": "值",
+    "label.vcdcname": "vCenter DC 名称",
+    "label.vcenter": "vCenter",
+    "label.vcenter.cluster": "vCenter 群集",
+    "label.vcenter.datacenter": "vCenter 数据中心",
+    "label.vcenter.datastore": "vCenter 数据存储",
+    "label.vcenter.host": "vCenter 主机",
+    "label.vcenter.password": "vCenter 密码",
+    "label.vcenter.username": "vCenter 用户名",
+    "label.vcipaddress": "vCenter IP 地址",
+    "label.version": "版本",
+    "label.vgpu": "VGPU",
+    "label.vgpu.max.resolution": "最大分辨率",
+    "label.vgpu.max.vgpu.per.gpu": "每个 GPU 的 vGPU 数",
+    "label.vgpu.remaining.capacity": "剩余容量",
+    "label.vgpu.type": "vGPU 类型",
+    "label.vgpu.video.ram": "视频 RAM",
+    "label.view": "查看",
+    "label.view.all": "查看全部",
+    "label.view.console": "查看控制台",
+    "label.view.more": "查看更多",
+    "label.view.secondary.ips": "查看二级 IP",
+    "label.viewing": "查看",
+    "label.virtual.appliance": "虚拟设备",
+    "label.virtual.appliance.details": "虚拟设备详细信息",
+    "label.virtual.appliances": "虚拟设备",
+    "label.virtual.machine": "虚拟机",
+    "label.virtual.machines": "虚拟机",
+    "label.virtual.network": "虚拟网络",
+    "label.virtual.networking": "虚拟网络连接",
+    "label.virtual.router": "虚拟路由器",
+    "label.virtual.routers": "虚拟路由器",
+    "label.virtual.routers.group.account": "虚拟路由器(按帐户分组)",
+    "label.virtual.routers.group.cluster": "虚拟路由器(按群集分组)",
+    "label.virtual.routers.group.pod": "虚拟路由器(按提供点分组)",
+    "label.virtual.routers.group.zone": "虚拟路由器(按资源域分组)",
+    "label.vlan": "VLAN/VNI",
+    "label.vlan.id": "VLAN/VNI ID",
+    "label.vlan.only": "VLAN",
+    "label.vlan.range": "VLAN/VNI 范围",
+    "label.vlan.range.details": "VLAN 范围详细信息",
+    "label.vlan.ranges": "VLAN 范围",
+    "label.vlan.vni.range": "VLAN/VNI 范围",
+    "label.vlan.vni.ranges": "VLAN/VNI 范围",
+    "label.vm.add": "添加实例",
+    "label.vm.destroy": "销毁",
+    "label.vm.display.name": "VM 显示名称",
+    "label.vm.id": "VM ID",
+    "label.vm.ip": "VM IP 地址",
+    "label.vm.name": "VM 名称",
+    "label.vm.password": "VM 的密码",
+    "label.vm.reboot": "重新启动",
+    "label.vm.start": "启动",
+    "label.vm.state": "VM 状态",
+    "label.vm.stop": "停止",
+    "label.vmfs": "VMFS",
+    "label.vms": "VM",
+    "label.vmsnapshot": "VM 快照",
+    "label.vmsnapshot.current": "最新版本",
+    "label.vmsnapshot.memory": "快照内存",
+    "label.vmsnapshot.parentname": "父名称",
+    "label.vmsnapshot.type": "类型",
+    "label.vmware.datacenter.id": "VMware 数据中心 ID",
+    "label.vmware.datacenter.name": "VMware 数据中心名称",
+    "label.vmware.datacenter.vcenter": "VMware 数据中心 vCenter",
+    "label.vmware.traffic.label": "VMware 流量标签",
+    "label.vnet": "VLAN/VNI",
+    "label.vnet.id": "VLAN/VNI ID",
+    "label.vnmc": "VNMC",
+    "label.vnmc.devices": "VNMC 设备",
+    "label.volatile": "可变",
+    "label.volgroup": "卷组",
+    "label.volume": "卷",
+    "label.volume.details": "卷详细信息",
+    "label.volume.limits": "卷限制",
+    "label.volume.migrated": "卷已迁移",
+    "label.volume.name": "卷名称",
+    "label.volumes": "卷",
+    "label.vpc": "VPC",
+    "label.vpc.distributedvpcrouter": "分布式 VPC 路由器",
+    "label.vpc.id": "VPC ID",
+    "label.vpc.offering": "VPC 方案",
+    "label.vpc.offering.details": "VPC 方案详细信息",
+    "label.vpc.router.details": "VPC 路由器详细信息",
+    "label.vpc.supportsregionlevelvpc": "支持地理区域级 VPC",
+    "label.vpc.virtual.router": "VPC 虚拟路由器",
+    "label.vpn": "VPN",
+    "label.vpn.customer.gateway": "VPN 客户网关",
+    "label.vpn.force.encapsulation": "Force UDP Encapsulation of ESP Packets",
+    "label.vsmctrlvlanid": "控制 VLAN ID",
+    "label.vsmpktvlanid": "数据包 VLAN ID",
+    "label.vsmstoragevlanid": "存储 VLAN ID",
+    "label.vsphere.managed": "由 vSphere 管理",
+    "label.vswitch.name": "vSwitch 名称",
+    "label.vxlan": "VXLAN",
+    "label.vxlan.id": "VXLAN ID",
+    "label.vxlan.range": "VXLAN 范围",
+    "label.waiting": "正在等待",
+    "label.warn": "警告",
+    "label.warn.upper": "警告",
+    "label.warning": "警告",
+    "label.wednesday": "星期三",
+    "label.weekly": "每周",
+    "label.welcome": "欢迎",
+    "label.welcome.cloud.console": "欢迎使用管理控制台",
+    "label.what.is.cloudstack": "什么是 CloudStack&#8482?",
+    "label.xenserver.tools.version.61.plus": "原始 XS 版本为 6.1+",
+    "label.xenserver.traffic.label": "XenServer 流量标签",
+    "label.yes": "是",
+    "label.zone": "资源域",
+    "label.zone.dedicated": "资源域已专用",
+    "label.zone.details": "资源域详细信息",
+    "label.zone.id": "资源域 ID",
+    "label.zone.lower": "资源域",
+    "label.zone.name": "区域名称",
+    "label.zone.step.1.title": "步骤 1: <strong>选择一个网络</strong>",
+    "label.zone.step.2.title": "步骤 2: <strong>添加一个资源域</strong>",
+    "label.zone.step.3.title": "步骤 3: <strong>添加一个提供点</strong>",
+    "label.zone.step.4.title": "步骤 4: <strong>添加一个 IP 范围</strong>",
+    "label.zone.type": "资源域类型",
+    "label.zone.wide": "整个资源域",
+    "label.zoneWizard.trafficType.guest": "来宾: 最终用户虚拟机之间的流量",
+    "label.zoneWizard.trafficType.management": "管理: CloudStack 的内部资源(包括与管理服务器通信的任何组件,例如主机和 CloudStack 系统 VM)之间的流量",
+    "label.zoneWizard.trafficType.public": "公用: 云中 Internet 与虚拟机之间的流量。",
+    "label.zoneWizard.trafficType.storage": "存储: 主存储服务器与二级存储服务器(例如 VM 模板与快照)之间的流量",
+    "label.zones": "资源域",
+    "managed.state": "托管状态",
+    "message.XSTools61plus.update.failed": "无法更新“原始 XS 版本为 6.1+”字段。错误:",
+    "message.Zone.creation.complete": "已完成创建资源域",
+    "message.acquire.ip.nic": "请确认您确实要获取此 NIC 的新二级 IP。<br/>注意: 您需要在虚拟机内部手动配置新获取的二级 IP。",
+    "message.acquire.new.ip": "请确认您确实要为此网络获取一个新 IP。",
+    "message.acquire.new.ip.vpc": "请确认您确实要为此 VPC 获取一个新 IP。",
+    "message.acquire.public.ip": "请选择一个要从中获取新 IP 的资源域。",
+    "message.action.cancel.maintenance": "已成功取消维护您的主机。此过程可能需要长达几分钟时间。",
+    "message.action.cancel.maintenance.mode": "请确认您确实要取消此维护模式。",
+    "message.action.change.service.warning.for.instance": "必须先禁用您的实例,然后再尝试更改其当前的服务方案。",
+    "message.action.change.service.warning.for.router": "必须先停止您的路由器,然后再尝试更改其当前的服务方案。",
+    "message.action.delete.ISO": "请确认您确实要删除此 ISO。",
+    "message.action.delete.ISO.for.all.zones": "此 ISO 由所有资源域使用。请确认您确实要将其从所有资源域中删除。",
+    "message.action.delete.cluster": "请确认您确实要删除此群集。",
+    "message.action.delete.disk.offering": "请确认您确实要删除此磁盘方案。",
+    "message.action.delete.domain": "请确认您确实要删除此域。",
+    "message.action.delete.external.firewall": "请确认您确实要删除此外部防火墙。警告: 如果您计划重新添加同一个外部防火墙,则必须在设备上重置使用数据。",
+    "message.action.delete.external.load.balancer": "请确认您确实要删除此外部负载平衡器。警告: 如果您计划重新添加同一个外部负载平衡器,则必须在设备上重置使用数据。",
+    "message.action.delete.ingress.rule": "请确认您确实要删除此入口规则。",
+    "message.action.delete.network": "请确认您确实要删除此网络。",
+    "message.action.delete.nexusVswitch": "请确认您确实要删除此 Nexus 1000v",
+    "message.action.delete.nic": "请确认您确实要移除此 NIC,此操作还将从 VM 中移除关联的网络。",
+    "message.action.delete.physical.network": "请确认您确实要删除此物理网络",
+    "message.action.delete.pod": "请确认您确实要删除此提供点。",
+    "message.action.delete.primary.storage": "请确认您确实要删除此主存储。",
+    "message.action.delete.secondary.storage": "请确认您确实要删除此二级存储。",
+    "message.action.delete.security.group": "请确认您确实要删除此安全组。",
+    "message.action.delete.service.offering": "请确认您确实要删除此服务方案。",
+    "message.action.delete.snapshot": "请确认您确实要删除此快照。",
+    "message.action.delete.system.service.offering": "请确认您确实要删除此系统服务方案。",
+    "message.action.delete.template": "请确认您确实要删除此模板。",
+    "message.action.delete.template.for.all.zones": "此模板由所有资源域使用。请确认您确实要将其从所有资源域中删除。",
+    "message.action.delete.volume": "请确认您确实要删除此卷。",
+    "message.action.delete.zone": "请确认您确实要删除此资源域。",
+    "message.action.destroy.instance": "请确认您确实要销毁此实例。",
+    "message.action.destroy.systemvm": "请确认您确实要销毁此系统 VM。",
+    "message.action.disable.cluster": "请确认您确实要禁用此群集。",
+    "message.action.disable.nexusVswitch": "请确认您确实要禁用此 Nexus 1000v",
+    "message.action.disable.physical.network": "请确认您确实要禁用此物理网络。",
+    "message.action.disable.pod": "请确认您确实要禁用此提供点。",
+    "message.action.disable.static.NAT": "请确认您确实要禁用静态 NAT。",
+    "message.action.disable.zone": "请确认您确实要禁用此资源域。",
+    "message.action.download.iso": "请确认您确实要下载此 ISO。",
+    "message.action.download.template": "请确认您确实要下载此模板。",
+    "message.action.downloading.template": "正在下载模板。",
+    "message.action.enable.cluster": "请确认您确实要启用此群集。",
+    "message.action.enable.maintenance": "已成功准备好维护您的主机。此过程可能需要长达几分钟或更长时间,具体取决于当前此主机上的 VM 数量。",
+    "message.action.enable.nexusVswitch": "请确认您确实要启用此 Nexus 1000v",
+    "message.action.enable.physical.network": "请确认您确实要启用此物理网络。",
+    "message.action.enable.pod": "请确认您确实要启用此提供点。",
+    "message.action.enable.zone": "请确认您确实要启用此资源域。",
+    "message.action.expunge.instance": "请确认您确实要删除此实例。",
+    "message.action.force.reconnect": "已成功强制重新连接您的主机。此过程可能需要长达几分钟时间。",
+    "message.action.host.enable.maintenance.mode": "启用维护模式会导致将此主机上正在运行的所有实例实时迁移到任何可用的主机。",
+    "message.action.instance.reset.password": "请确认您确实要更改此虚拟机的 ROOT 用户密码。",
+    "message.action.manage.cluster": "请确认您确实要托管此群集。",
+    "message.action.primarystorage.enable.maintenance.mode": "警告: 将主存储置于维护模式将导致使用主存储中的卷的所有 VM 停止运行。是否要继续?",
+    "message.action.reboot.instance": "请确认您确实要重新启动此实例。",
+    "message.action.reboot.router": "此虚拟路由器提供的所有服务都将中断。请确认您确实要重新启动此路由器。",
+    "message.action.reboot.systemvm": "请确认您确实要重新启动此系统 VM。",
+    "message.action.release.ip": "请确认您确实要释放此 IP。",
+    "message.action.remove.host": "请确认您确实要删除此主机。",
+    "message.action.reset.password.off": "您的实例当前不支持此功能。",
+    "message.action.reset.password.warning": "必须先停止您的实例,然后再尝试更改其当前的密码。",
+    "message.action.restore.instance": "请确认您确实要还原此实例。",
+    "message.action.revert.snapshot": "请确认您确实要将拥有的卷还原为此快照。",
+    "message.action.start.instance": "请确认您确实要启动此实例。",
+    "message.action.start.router": "请确认您确实要启动此路由器。",
+    "message.action.start.systemvm": "请确认您确实要启动此系统 VM。",
+    "message.action.stop.instance": "请确认您确实要停止此实例。",
+    "message.action.stop.router": "此虚拟路由器提供的所有服务都将中断。请确认您确实要停止此路由器。",
+    "message.action.stop.systemvm": "请确认您确实要停止此系统 VM。",
+    "message.action.take.snapshot": "请确认您确实要创建此卷的快照。",
+    "message.action.unmanage.cluster": "请确认您确实要取消托管此群集。",
+    "message.action.vmsnapshot.create": "Please confirm that you want to take a snapshot of this instance. <br>Please notice that the instance will be paused during the snapshoting, and resumed after snapshotting, if it runs on KVM.",
+    "message.action.vmsnapshot.delete": "请确认您确实要删除此 VM 快照。",
+    "message.action.vmsnapshot.revert": "还原 VM 快照",
+    "message.activate.project": "是否确实要激活此项目?",
+    "message.add.VPN.gateway": "请确认您确实要添加 VPN 网关",
+    "message.add.cluster": "向资源域 <b><span id=\"zone_name\"></span></b>、提供点 <b><span id=\"pod_name\"></span></b> 中添加一个虚拟机管理程序托管的群集",
+    "message.add.cluster.zone": "向资源域 <b><span id=\"zone_name\"></span></b> 中添加一个虚拟机管理程序托管的群集",
+    "message.add.disk.offering": "请指定以下参数以添加一个新的磁盘方案",
+    "message.add.domain": "请指定要在此域下创建的子域",
+    "message.add.firewall": "向资源域中添加一个防火墙",
+    "message.add.guest.network": "请确认您确实要添加一个来宾网络",
+    "message.add.host": "请指定以下参数以添加一台新主机",
+    "message.add.ip.range": "向资源域中的公用网络添加一个 IP 范围",
+    "message.add.ip.range.direct.network": "向资源域 <b><span id=\"zone_name\"></span></b> 中的直接网络 <b><span id=\"directnetwork_name\"></span></b> 添加一个 IP 范围",
+    "message.add.ip.range.to.pod": "<p>向提供点添加一个 IP 范围: <b><span id=\"pod_name_label\"></span></b></p>",
+    "message.add.load.balancer": "向资源域中添加一个负载平衡器",
+    "message.add.load.balancer.under.ip": "已在以下 IP 下添加负载平衡器规则:",
+    "message.add.network": "为资源域 <b><span id=\"zone_name\"></span></b> 添加一个新网络",
+    "message.add.new.gateway.to.vpc": "请指定将新网关添加到此 VPC 所需的信息。",
+    "message.add.pod": "为资源域 <b><span id=\"add_pod_zone_name\"></span></b> 添加一个新提供点",
+    "message.add.pod.during.zone.creation": "每个资源域中必须包含一个或多个提供点,现在我们将添加第一个提供点。提供点中包含主机和主存储服务器,您将在随后的某个步骤中添加这些主机和服务器。首先,请为 CloudStack 的内部管理流量配置一个预留 IP 地址范围。预留的 IP 范围对云中的每个资源域来说必须唯一。",
+    "message.add.primary": "请指定以下参数以添加一个新主存储",
+    "message.add.primary.storage": "为资源域 <b><span id=\"add_pod_zone_name\"></span></b>、提供点 <b><span id=\"pod_name\"></span></b> 添加一个新主存储",
+    "message.add.region": "请指定添加新地理区域所需的信息。",
+    "message.add.secondary.storage": "为资源域 <b><span id=\"zone_name\"></span></b> 添加一个新存储",
+    "message.add.service.offering": "请填写以下数据以添加一个新计算方案。",
+    "message.add.system.service.offering": "请填写以下数据以添加一个新的系统服务方案。",
+    "message.add.template": "请输入以下数据以创建新模板",
+    "message.add.volume": "请填写以下数据以添加一个新卷。",
+    "message.added.new.nuage.vsp.controller": "添加新 Nuage Vsp 控制器",
+    "message.added.vpc.offering": "添加 VPC 方案",
+    "message.adding.Netscaler.device": "正在添加 NetScaler 设备",
+    "message.adding.Netscaler.provider": "正在添加 NetScaler 提供程序",
+    "message.adding.host": "正在添加主机",
+    "message.additional.networks.desc": "请选择虚拟机要连接到的其他网络。",
+    "message.admin.guide.read": "对于基于 VMware 的 VM,请先阅读管理指南中的动态扩展部分,然后再进行扩展。是否要继续?,",
+    "message.advanced.mode.desc": "如果要启用 VLAN 支持,请选择此网络模式。此网络模式在允许管理员提供防火墙、VPN 或负载平衡器支持等自定义网络方案以及启用直接网络连接与虚拟网络连接等方面提供了最大的灵活性。",
+    "message.advanced.security.group": "如果要使用安全组提供来宾 VM 隔离,请选择此模式。",
+    "message.advanced.virtual": "如果要使用整个资源域的 VLAN 提供来宾 VM 隔离,请选择此模式。",
+    "message.after.enable.s3": "已配置 S3 支持的二级存储。注意: 退出此页面后,您将无法再次重新配置 S3。",
+    "message.after.enable.swift": "已配置 SWIFT。注意: 退出此页面后,您将无法再次重新配置 SWIFT。",
+    "message.alert.state.detected": "检测到警报状态",
+    "message.allow.vpn.access": "请输入要允许进行 VPN 访问的用户的用户名和密码。",
+    "message.apply.snapshot.policy": "您已成功更新当前的快照策略。",
+    "message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default nic of the vm is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default nic of the vm is on a isolated network, and the new account has more one isolated networks, you should specify one.",
+    "message.attach.iso.confirm": "请确认您确实要将此 ISO 附加到此虚拟实例。",
+    "message.attach.volume": "请填写以下数据以附加一个新卷。如果要将磁盘卷附加到基于 Windows 的虚拟机,需要重新启动此实例才能显示已连接的磁盘。",
+    "message.basic.mode.desc": "如果您<b>*<u>不</u>*</b>希望启用任何 VLAN 支持,请选择此网络模式。将直接从此网络中为在此网络模式下创建的所有虚拟机实例分配一个 IP,并使用安全组提供安全性和隔离。",
+    "message.change.ipaddress": "Please confirm that you would like to change the IP address for this NIC on VM.",
+    "message.change.offering.confirm": "请确认您确实要更改此虚拟实例的服务方案。",
+    "message.change.password": "请更改您的密码。",
+    "message.cluster.dedicated": "群集已专用",
+    "message.cluster.dedication.released": "已释放专用群集",
+    "message.configure.all.traffic.types": "您有多个物理网络,请单击“编辑”按钮为每种流量类型配置标签。",
+    "message.configure.firewall.rules.allow.traffic": "配置允许通信的规则",
+    "message.configure.firewall.rules.block.traffic": "配置拒绝通信的规则",
+    "message.configure.ldap": "请确认您确实要配置 LDAP。",
+    "message.configuring.guest.traffic": "正在配置来宾流量",
+    "message.configuring.physical.networks": "正在配置物理网络",
+    "message.configuring.public.traffic": "正在配置公共流量",
+    "message.configuring.storage.traffic": "正在配置存储流量",
+    "message.confirm.action.force.reconnect": "请确认您确实要强制重新连接此主机。",
+    "message.confirm.add.vnmc.provider": "请确认您确实要添加 VNMC 提供程序。",
+    "message.confirm.archive.alert": "请确认您确实要存档此警报。",
+    "message.confirm.archive.event": "请确认您确实要存档此事件。",
+    "message.confirm.archive.selected.alerts": "请确认您确实要存档选定警报",
+    "message.confirm.archive.selected.events": "请确认您确实要存档选定事件",
+    "message.confirm.attach.disk": "是否确实要附加磁盘?",
+    "message.confirm.create.volume": "是否确实要创建卷?",
+    "message.confirm.current.guest.CIDR.unchanged": "是否要使当前来宾网络 CIDR 保持不变?",
+    "message.confirm.dedicate.cluster.domain.account": "是否确实要将此群集专用于域/帐户?",
+    "message.confirm.dedicate.host.domain.account": "是否确实要将此主机专用于域/帐户?",
+    "message.confirm.dedicate.pod.domain.account": "是否确实要将此提供点专用于域/帐户?",
+    "message.confirm.dedicate.zone": "是否要将此资源域专用于域/帐户?",
+    "message.confirm.delete.BigSwitchBcf": "请确认您确实要删除此BigSwitch BCF 控制器",
+    "message.confirm.delete.BrocadeVcs": "请确认您确实要删除 Brocade Vcs 交换机",
+    "message.confirm.delete.F5": "请确认您确实要删除 F5",
+    "message.confirm.delete.NetScaler": "请确认您确实要删除 NetScaler",
+    "message.confirm.delete.NuageVsp": "请确认您确实要删除 Nuage 虚拟服务目录",
+    "message.confirm.delete.PA": "请确认您确实要删除 Palo Alto",
+    "message.confirm.delete.SRX": "请确认您确实要删除 SRX",
+    "message.confirm.delete.acl.list": "是否确实要删除此 ACL 列表?",
+    "message.confirm.delete.alert": "是否确实要删除此警报?",
+    "message.confirm.delete.baremetal.rack.configuration": "请确认您确实要删除 Baremetal Rack 配置",
+    "message.confirm.delete.ciscoASA1000v": "请确认您确实要删除 CiscoASA1000v",
+    "message.confirm.delete.ciscovnmc.resource": "请确认您确实要删除 Cisco VNMC 资源",
+    "message.confirm.delete.internal.lb": "请确认您确实要删除内部负载平衡器",
+    "message.confirm.delete.secondary.staging.store": "请确认您确实要删除二级暂存存储。",
+    "message.confirm.delete.ucs.manager": "请确认您确实要删除 UCS Manager",
+    "message.confirm.destroy.router": "请确认您确实要销毁此路由器",
+    "message.confirm.disable.host": "请确认您确实要禁用主机",
+    "message.confirm.disable.network.offering": "是否确实要禁用此网络方案?",
+    "message.confirm.disable.provider": "请确认您确实要禁用此提供程序",
+    "message.confirm.disable.vnmc.provider": "请确认您确实要禁用 VNMC 提供程序。",
+    "message.confirm.disable.vpc.offering": "是否确实要禁用此 VPC 方案?",
+    "message.confirm.enable.host": "请确认您确实要启用主机",
+    "message.confirm.enable.network.offering": "是否确实要启用此网络方案?",
+    "message.confirm.enable.provider": "请确认您确实要启用此提供程序",
+    "message.confirm.enable.vnmc.provider": "请确认您确实要启用 VNMC 提供程序。",
+    "message.confirm.enable.vpc.offering": "是否确实要启用此 VPC 方案?",
+    "message.confirm.force.update": "Do you want to make a force update?",
+    "message.confirm.join.project": "请确认您确实要加入此项目。",
+    "message.confirm.migrate.volume": "是否要迁移此卷?",
+    "message.confirm.refresh.blades": "请确认您确实要刷新刀片式服务器。",
+    "message.confirm.release.dedicate.vlan.range": "请确认您确实要释放专用 VLAN 范围",
+    "message.confirm.release.dedicated.cluster": "是否要释放此专用群集?",
+    "message.confirm.release.dedicated.host": "是否要释放此专用主机?",
+    "message.confirm.release.dedicated.pod": "是否要释放此专用提供点?",
+    "message.confirm.release.dedicated.zone": "是否要释放此专用资源域?",
+    "message.confirm.remove.IP.range": "请确认您确实要删除此 IP 范围。",
+    "message.confirm.remove.event": "是否确实要删除此事件?",
+    "message.confirm.remove.load.balancer": "请确认您确实要从负载平衡器中删除 VM",
+    "message.confirm.remove.network.offering": "是否确实要删除此网络方案?",
+    "message.confirm.remove.selected.alerts": "请确认您确实要删除选定警报",
+    "message.confirm.remove.selected.events": "请确认您确实要删除选定事件",
+    "message.confirm.remove.vmware.datacenter": "请确认您确实要删除 VMware 数据中心",
+    "message.confirm.remove.vpc.offering": "是否确实要删除此 VPC 方案?",
+    "message.confirm.replace.acl.new.one": "是否要将此 ACL 替换为新 ACL?",
+    "message.confirm.scale.up.router.vm": "是否确实要扩展路由器 VM?",
+    "message.confirm.scale.up.system.vm": "是否确实要扩展系统 VM?",
+    "message.confirm.shutdown.provider": "请确认您确实要关闭此提供程序",
+    "message.confirm.start.lb.vm": "请确认您确实要启动 LB VM",
+    "message.confirm.stop.lb.vm": "请确认您确实要停止 LB VM",
+    "message.confirm.upgrade.router.newer.template": "请确认您确实要升级路由器以使用更新的模板",
+    "message.confirm.upgrade.routers.account.newtemplate": "请确认您确实要升级此帐户中的所有路由器以使用更新的模板",
+    "message.confirm.upgrade.routers.cluster.newtemplate": "请确认您确实要升级此群集中的所有路由器以使用更新的模板",
+    "message.confirm.upgrade.routers.newtemplate": "请确认您确实要升级此资源域中的所有路由器以使用更新的模板",
+    "message.confirm.upgrade.routers.pod.newtemplate": "请确认您确实要升级此提供点中的所有路由器以使用更新的模板",
+    "message.copy.iso.confirm": "请确认您确实要将 ISO 复制到",
+    "message.copy.template": "将模板 <b id=\"copy_template_name_text\">XXX</b> 从资源域 <b id=\"copy_template_source_zone_text\"></b> 复制到",
+    "message.copy.template.confirm": "是否确实要复制模板?",
+    "message.create.template": "是否确实要创建模板?",
+    "message.create.template.vm": "基于模板 <b id=\"p_name\"></b> 创建 VM",
+    "message.create.template.volume": "请先指定以下信息,然后再创建磁盘卷 <b><span id=\"volume_name\"></span></b> 的模板。创建模板可能需要几分钟到更长的时间,具体取决于磁盘卷的大小。",
+    "message.creating.cluster": "正在创建群集",
+    "message.creating.guest.network": "正在创建来宾网络",
+    "message.creating.physical.networks": "正在创建物理网络",
+    "message.creating.pod": "正在创建提供点",
+    "message.creating.primary.storage": "正在创建主存储",
+    "message.creating.secondary.storage": "正在创建二级存储",
+    "message.creating.systemVM": "正在创建系统 VM (此操作可能需要一些时间)",
+    "message.creating.zone": "正在创建资源域",
+    "message.decline.invitation": "是否确实要拒绝此项目邀请?",
+    "message.dedicate.zone": "正在将资源域专用",
+    "message.dedicated.zone.released": "已释放专用资源域",
+    "message.delete.VPN.connection": "请确认您确实要删除 VPN 连接",
+    "message.delete.VPN.customer.gateway": "请确认您确实要删除此 VPN 客户网关",
+    "message.delete.VPN.gateway": "请确认您确实要删除此 VPN 网关",
+    "message.delete.account": "请确认您确实要删除此帐户。",
+    "message.delete.affinity.group": "请确认您确实要删除此关联性组。",
+    "message.delete.gateway": "请确认您确实要删除此网关",
+    "message.delete.project": "是否确实要删除此项目?",
+    "message.delete.user": "请确认您确实要删除此用户。",
+    "message.desc.add.new.lb.sticky.rule": "添加新负载均衡粘滞规则",
+    "message.desc.advanced.zone": "适用于更加复杂的网络拓扑。此网络模式在定义来宾网络并提供防火墙、VPN 或负载平衡器支持等自定义网络方案方面提供了最大的灵活性。",
+    "message.desc.basic.zone": "提供一个网络,将直接从此网络中为每个 VM 实例分配一个 IP。可以通过安全组等第 3 层方式提供来宾隔离(IP 地址源过滤)。",
+    "message.desc.cluster": "每个提供点中必须包含一个或多个群集,现在我们将添加第一个群集。群集提供了一种编组主机的方法。群集中的所有主机都具有相同的硬件,运行相同的虚拟机管理程序,位于相同的子网中,并访问相同的共享存储。每个群集由一个或多个主机以及一个或多个主存储服务器组成。",
+    "message.desc.create.ssh.key.pair": "请填写以下内容以创建或生成一个ssh密钥对.<br><br>(1) 如果公钥已配置, cloudstack 将注册此公钥. 您可以通过您的私钥来访问.<br><br>(2)如果公钥未配置,cloudstack将创建新的密钥对,请复制并保存私钥,cloudstack将不会替您保存<br>",
+    "message.desc.created.ssh.key.pair": "已生成的SSH密钥对",
+    "message.desc.host": "每个群集中必须至少包含一个主机以供来宾 VM 在上面运行,现在我们将添加第一个主机。要使主机在 CloudStack 中运行,必须在此主机上安装虚拟机管理程序软件,为其分配一个 IP 地址,并确保将其连接到 CloudStack 管理服务器。<br/><br/>请提供主机的 DNS 或 IP 地址、用户名(通常为 root)和密码,以及用于对主机进行分类的任何标签。",
+    "message.desc.primary.storage": "每个群集中必须包含一个或多个主存储服务器,现在我们将添加第一个主存储服务器。主存储中包含在群集中的主机上运行的所有 VM 的磁盘卷。请使用底层虚拟机管理程序支持的符合标准的协议。",
+    "message.desc.reset.ssh.key.pair": "请指定您想添加到这个VM中的SSH密钥对.请注意,如果启用了密码管理,超级用户口令将会被重置。",
+    "message.desc.secondary.storage": "每个资源域中必须至少包含一个 NFS 或二级存储服务器,现在我们将添加第一个 NFS 或二级存储服务器。二级存储用于存储 VM 模板、ISO 映像和 VM 磁盘卷快照。此服务器必须对资源域中的所有服务器可用。<br/><br/>请提供 IP 地址和导出路径。",
+    "message.desc.zone": "资源域是 CloudStack 中最大的组织单位,一个资源域通常与一个数据中心相对应。资源域可提供物理隔离和冗余。一个资源域由一个或多个提供点以及由资源域中的所有提供点共享的一个二级存储服务器组成,其中每个提供点中包含多个主机和主存储服务器。",
+    "message.detach.disk": "是否确实要取消附加此磁盘?",
+    "message.detach.iso.confirm": "请确认您确实要从此虚拟机中取消附加此 ISO。",
+    "message.disable.account": "请确认您确实要禁用此帐户。禁用后,此帐户的所有用户将不再有权访问各自的云资源。所有正在运行的虚拟机将立即关闭。",
+    "message.disable.snapshot.policy": "您已成功禁用当前的快照策略。",
+    "message.disable.user": "请确认您确实要禁用此用户。",
+    "message.disable.vpn": "是否确实要禁用 VPN?",
+    "message.disable.vpn.access": "请确认您确实要禁用远程访问 VPN。",
+    "message.disabling.network.offering": "正在禁用网络方案",
+    "message.disabling.vpc.offering": "正在禁用 VPC 方案",
+    "message.disallowed.characters": "禁用字符: <,>",
+    "message.download.ISO": "请单击 <a href=\"#\">00000</a> 下载 ISO",
+    "message.download.template": "请单击 <a href=\"#\">00000</a> 下载模板",
+    "message.download.volume": "请单击 <a href=\"#\">00000</a> 下载卷",
+    "message.download.volume.confirm": "请确认您确实要下载此卷",
+    "message.edit.account": "编辑(“-1”表示对要创建的资源数量没有任何限制)",
+    "message.edit.confirm": "在点击“保存”前请先确认您所做的更改。",
+    "message.edit.limits": "请指定对以下资源的限制。“-1”表示不限制要创建的资源数。",
+    "message.edit.traffic.type": "请指定您希望与此流量类型关联的流量标签。",
+    "message.enable.account": "请确认您确实要启用此帐户。",
+    "message.enable.user": "请确认您确实要启用此用户。",
+    "message.enable.vpn": "请确认您确实要对此 IP 地址启用远程访问 VPN。",
+    "message.enable.vpn.access": "当前已对此 IP 地址禁用了 VPN。是否要启用 VPN 访问?",
+    "message.enabled.vpn": "您的远程访问 VPN 当前已启用,可以通过 IP 进行访问",
+    "message.enabled.vpn.ip.sec": "您的 IPSec 预共享密钥",
+    "message.enabling.network.offering": "正在启用网络方案",
+    "message.enabling.security.group.provider": "正在启用安全组提供程序",
+    "message.enabling.vpc.offering": "正在启用 VPC 方案",
+    "message.enabling.zone": "正在启用资源域",
+    "message.enabling.zone.dots": "正在启用资源域...",
+    "message.enter.seperated.list.multiple.cidrs": "如果存在多个 CIDR,请输入用逗号分隔的 CIDR 列表",
+    "message.enter.token": "请输入您在邀请电子邮件中收到的令牌。",
+    "message.generate.keys": "请确认您确实要为此用户生成新密钥。",
+    "message.gslb.delete.confirm": "请确认您确实要删除此 GSLB",
+    "message.gslb.lb.remove.confirm": "请确认您确实要从 GSLB 中删除负载平衡",
+    "message.guest.traffic.in.advanced.zone": "来宾网络流量是指最终用户虚拟机之间的通信。指定一个 VLAN ID 范围可传送每个物理网络的来宾流量。",
+    "message.guest.traffic.in.basic.zone": "来宾网络流量是指最终用户虚拟机之间的通信。应指定一个 CloudStack 可以分配给来宾 VM 的 IP 地址范围。请确保此范围与预留的系统 IP 范围不重叠。",
+    "message.host.dedicated": "主机已专用",
+    "message.host.dedication.released": "已释放专用主机",
+    "message.installWizard.click.retry": "请单击此按钮重新尝试启动。",
+    "message.installWizard.copy.whatIsACluster": "群集提供了一种编组主机的方法。群集中的所有主机都具有相同的硬件,运行相同的虚拟机管理程序,位于同一子网中,并访问相同的共享存储。可以实时将虚拟机实例(VM)从一台主机迁移到同一群集内的其他主机,而无需中断向用户提供服务。群集是 CloudStack&#8482; 部署中的第三大组织单位。群集包含在提供点中,提供点包含在资源域中。<br/><br/>CloudStack&#8482; 允许云部署中存在多个群集,但对于基本安装,我们只需要一个群集。",
+    "message.installWizard.copy.whatIsAHost": "主机是指一台计算机。主机提供运行来宾虚拟机的计算资源。每台主机上都安装有虚拟机管理程序软件,用于管理来宾 VM (裸机主机除外,将在“高级安装指南”中讨论这一特殊案例)。例如,启用了 KVM 的 Linux 服务器、Citrix XenServer 服务器和 ESXi 服务器都可用作主机。在基本安装中,我们将使用一台运行 XenServer 的主机。<br/><br/>主机是 CloudStack&#8482; 部署中最小的组织单位。主机包含在群集中,群集包含在提供点中,提供点包含在资源域中。",
+    "message.installWizard.copy.whatIsAPod": "一个提供点通常代表一个机架。同一提供点中的主机位于同一子网中。<br/><br/>提供点是 CloudStack&#8482; 部署中的第二大组织单位。提供点包含在资源域中。每个资源域中可以包含一个或多个提供点;在基本安装中,您的资源域中将仅包含一个提供点。",
+    "message.installWizard.copy.whatIsAZone": "资源域是 CloudStack&#8482; 部署中最大的组织单位。虽然允许一个数据中心中存在多个资源域,但是一个资源域通常与一个数据中心相对应。将基础架构编组到资源域中的好处是可以提供物理隔离和冗余。例如,每个资源域都可以拥有各自的电源供应和网络上行方案,并且各资源域可以在地理位置上相隔很远(虽然并非必须相隔很远)。",
+    "message.installWizard.copy.whatIsCloudStack": "CloudStack&#8482 是一个软件平台,可将计算资源集中在一起以构建公有、私有和混合基础设施即服务(IaaS)云。CloudStack&#8482 负责管理组成云基础架构的网络、存储和计算节点。使用 CloudStack&#8482 可以部署、管理和配置云计算环境。<br/><br/>CloudStack&#8482 通过扩展商用硬件上运行的每个虚拟机映像的范围,提供了一个实时可用的云基础架构软件堆栈用于以服务方式交付虚拟数据中心,即交付构建、部署和管理多层次和多租户云应用程序必需的所有组件。开源版本和 Premium 版本都已可用,且提供的功能几乎完全相同。",
+    "message.installWizard.copy.whatIsPrimaryStorage": "CloudStack&#8482; 云基础架构使用以下两种类型的存储: 主存储和二级存储。这两种类型的存储可以是 iSCSI 或 NFS 服务器,也可以是本地磁盘。<br/><br/><strong>主存储</strong>与群集相关联,用于存储该群集中的主机上正在运行的所有 VM 对应的每个来宾 VM 的磁盘卷。主存储服务器通常位于靠近主机的位置。",
+    "message.installWizard.copy.whatIsSecondaryStorage": "二级存储与资源域相关联,用于存储以下项目:<ul><li>模板 - 可用于启动 VM 并可以包含其他配置信息(例如,已安装的应用程序)的操作系统映像</li><li>ISO 映像 - 可重新启动或不可重新启动的操作系统映像</li><li>磁盘卷快照 - 已保存的 VM 数据副本,可用于执行数据恢复或创建新模板</ul>",
+    "message.installWizard.now.building": "现在正在构建您的云...",
+    "message.installWizard.tooltip.addCluster.name": "群集的名称。此名称可以是您选择的文本,且未由 CloudStack 使用。",
+    "message.installWizard.tooltip.addHost.hostname": "主机的 DNS 名称或 IP 地址。",
+    "message.installWizard.tooltip.addHost.password": "此为上述用户的密码(来自 XenServer 安装)。",
+    "message.installWizard.tooltip.addHost.username": "通常为 root。",
+    "message.installWizard.tooltip.addPod.name": "提供点的名称",
+    "message.installWizard.tooltip.addPod.reservedSystemEndIp": "此为 CloudStack 用于管理二级存储 VM 和控制台代理 VM 的专用网络中的 IP 范围。这些 IP 地址来自与计算服务器相同的子网。",
+    "message.installWizard.tooltip.addPod.reservedSystemGateway": "该提供点中的主机网关。",
+    "message.installWizard.tooltip.addPod.reservedSystemNetmask": "来宾将要使用的子网上正在使用的网络掩码。",
+    "message.installWizard.tooltip.addPod.reservedSystemStartIp": "此为 CloudStack 用于管理二级存储 VM 和控制台代理 VM 的专用网络中的 IP 范围。这些 IP 地址来自与计算服务器相同的子网。",
+    "message.installWizard.tooltip.addPrimaryStorage.name": "存储设备的名称。",
+    "message.installWizard.tooltip.addPrimaryStorage.path": "(适用于 NFS)在 NFS 中,此路径为服务器的导出路径。路径(针对 SharedMountPoint)。对于 KVM,此路径为装载了二级存储的每个主机上的路径。例如,/mnt/primary。",
+    "message.installWizard.tooltip.addPrimaryStorage.server": "(适用于 NFS、iSCSI 或 PreSetup)存储设备的 IP 地址或 DNS 名称。",
+    "message.installWizard.tooltip.addSecondaryStorage.nfsServer": "托管二级存储的 NFS 服务器的 IP 地址",
+    "message.installWizard.tooltip.addSecondaryStorage.path": "导出路径(位于上述指定服务器上)",
+    "message.installWizard.tooltip.addZone.dns1": "这些服务器是供此资源域中的来宾 VM 使用的 DNS 服务器,将通过您稍后要添加的公用网络进行访问。此资源域的公用 IP 地址必须路由到在此处指定的 DNS 服务器。",
+    "message.installWizard.tooltip.addZone.dns2": "这些服务器是供此资源域中的来宾 VM 使用的 DNS 服务器,将通过您稍后要添加的公用网络进行访问。此资源域的公用 IP 地址必须路由到在此处指定的 DNS 服务器。",
+    "message.installWizard.tooltip.addZone.internaldns1": "这些服务器是供此资源域中的系统 VM 使用的 DNS 服务器,将通过系统 VM 的专用网络接口进行访问。您为提供点提供的专用 IP 地址必须路由到在此处指定的 DNS 服务器。",
+    "message.installWizard.tooltip.addZone.internaldns2": "这些服务器是供此资源域中的系统 VM 使用的 DNS 服务器,将通过系统 VM 的专用网络接口进行访问。您为提供点提供的专用 IP 地址必须路由到在此处指定的 DNS 服务器。",
+    "message.installWizard.tooltip.addZone.name": "资源域名称",
+    "message.installWizard.tooltip.configureGuestTraffic.description": "您的网络说明",
+    "message.installWizard.tooltip.configureGuestTraffic.guestEndIp": "能够分配给此资源域中的来宾的 IP 地址范围。如果使用一个 NIC,这些 IP 应位于与提供点 CIDR 相同的  CIDR 中。",
+    "message.installWizard.tooltip.configureGuestTraffic.guestGateway": "来宾应使用的网关",
+    "message.installWizard.tooltip.configureGuestTraffic.guestNetmask": "来宾应使用的子网上正在使用的网络掩码",
+    "message.installWizard.tooltip.configureGuestTraffic.guestStartIp": "能够分配给此资源域中的来宾的 IP 地址范围。如果使用一个 NIC,这些 IP 应位于与提供点 CIDR 相同的  CIDR 中。",
+    "message.installWizard.tooltip.configureGuestTraffic.name": "您的网络名称",
+    "message.instance.scaled.up.confirm": "是否确实要扩展您的实例?",
+    "message.instanceWizard.noTemplates": "您没有任何可用模板;请添加一个兼容的模板,然后重新启动实例向导。",
+    "message.ip.address.changed": "您的 IP 地址可能已发生变化;是否要刷新此列表? 请注意,刷新此列表时,“详细信息”窗格将关闭。",
+    "message.iso.desc": "磁盘映像,其中包含操作系统的数据或可启动介质",
+    "message.join.project": "您现在已加入了一个项目。请切换到“项目视图”以查看项目。",
+    "message.launch.vm.on.private.network": "是否要在您的私人专用网络中启动实例?",
+    "message.launch.zone": "资源域已准备就绪,可随时启动;请继续执行下一步骤。",
+    "message.ldap.group.import": "All The users from the given group name will be imported",
+    "message.link.domain.to.ldap": "为此域开启 LDAP 同步",
+    "message.listView.subselect.multi": "(按住 Ctrl/Cmd 并单击)",
+    "message.lock.account": "请确认您确实要锁定此帐户。通过锁定此帐户,此帐户的所有用户将不再能够管理各自的云资源,但仍然可以访问现有资源。",
+    "message.migrate.instance.confirm": "请确认要将虚拟实例迁移到的主机。",
+    "message.migrate.instance.to.host": "请确认您确实要将实例迁移到其他主机。",
+    "message.migrate.instance.select.host": "选择用于迁移的主机",
+    "message.migrate.instance.to.ps": "请确认您确实要将实例迁移到其他主存储。",
+    "message.migrate.router.confirm": "请确认您要将路由器迁移到的主机:",
+    "message.migrate.systemvm.confirm": "请确认您要将系统 VM 迁移到的主机:",
+    "message.migrate.volume": "请确认您确实要将卷迁移到其他主存储。",
+    "message.network.addVM.desc": "请指定要将此 VM 添加到的网络。将为此网络添加一个新 NIC。",
+    "message.network.addVMNIC": "请确认您确实要为此网络添加一个新 VM NIC。",
+    "message.network.remote.access.vpn.configuration": "远程访问VPN配置已经产生,但无法应用。请检查网络连接状况,然后重新尝试。",
+    "message.new.user": "请指定以下信息以向帐户中添加一个新用户",
+    "message.no.affinity.groups": "您没有任何关联性组。请继续执行下一步操作。",
+    "message.no.host.available": "没有可用于迁移的主机",
+    "message.no.more.hosts.available": "没有可用于迁移的主机",
+    "message.no.network.support": "您选择的虚拟机管理程序 vSphere 没有任何其他网络功能。请继续执行步骤 5。",
+    "message.no.network.support.configuration.not.true": "您的所有资源域都未启用安全组,因此无其他网络功能。请继续执行步骤 5。",
+    "message.no.projects": "您没有任何项目。<br/>请从“项目”部分中创建一个新项目。",
+    "message.no.projects.adminOnly": "您没有任何项目。<br/>请要求管理员创建一个新项目。",
+    "message.number.clusters": "<h2>群集<span>数</span></h2>",
+    "message.number.hosts": "<h2>主机<span>数</span></h2>",
+    "message.number.pods": "<h2>提供点<span>数</span></h2>",
+    "message.number.storage": "<h2>主存储卷<span>数</span></h2>",
+    "message.number.zones": "<h2>资源域<span>数</span></h2>",
+    "message.outofbandmanagement.action.maintenance": "Warning host is in maintenance mode",
+    "message.outofbandmanagement.changepassword": "Change Out-of-band Management password",
+    "message.outofbandmanagement.configure": "Configure Out-of-band Management",
+    "message.outofbandmanagement.disable": "Disable Out-of-band Management",
+    "message.outofbandmanagement.enable": "Enable Out-of-band Management",
+    "message.outofbandmanagement.issue": "Issue Out-of-band Management Power Action",
+    "message.password.has.been.reset.to": "密码已重置为",
+    "message.password.of.the.vm.has.been.reset.to": "实例的密码以重置为",
+    "message.pending.projects.1": "您有待定项目邀请:",
+    "message.pending.projects.2": "要查看,请转至“项目”部分,然后从下拉列表中选择“邀请”。",
+    "message.please.add.at.lease.one.traffic.range": "请至少添加一个流量范围。",
+    "message.please.confirm.remove.ssh.key.pair": "请确认您确实要删除此SSH密钥对",
+    "message.please.proceed": "请继续执行下个步骤。",
+    "message.please.select.a.configuration.for.your.zone": "请为您的资源域选择一种配置。",
+    "message.please.select.a.different.public.and.management.network.before.removing": "请先选择其他公用管理网络,然后再删除",
+    "message.please.select.networks": "请为您的虚拟机选择网络。",
+    "message.please.select.ssh.key.pair.use.with.this.vm": "请为此实例选择一个密钥对",
+    "message.please.wait.while.zone.is.being.created": "正在创建资源域,请稍候;此操作可能需要一段时间才能完成...",
+    "message.pod.dedication.released": "已释放专用提供点",
+    "message.portable.ip.delete.confirm": "请确认您确实要删除可移植 IP 范围",
+    "message.project.invite.sent": "发送给用户的邀请;用户接受邀请后,将加入到项目中",
+    "message.public.traffic.in.advanced.zone": "云中的 VM 访问 Internet 时将生成公共流量,但必须分配可公开访问的 IP 才能实现。最终用户可以使用 CloudStack UI 获取这些 IP,以在其来宾网络与公用网络之间执行 NAT。<br/><br/>请至少为 Internet 流量提供一个 IP 地址范围。",
+    "message.public.traffic.in.basic.zone": "云中的 VM 访问 Internet 或通过 Internet 向客户端提供服务时将生成公共流量,但必须分配可公开访问的 IP 才能实现。创建实例时,将把这一组公用 IP 中的 IP (来宾 IP 地址除外)分配给此实例。静态 1-1 NAT 将在公用 IP 与来宾 IP 之间自动设置。最终用户还可以使用 CloudStack UI 获取其他 IP,以在其实例与公用 IP 之间执行静态 NAT。",
+    "message.question.are.you.sure.you.want.to.add": "您确定要添加",
+    "message.read.admin.guide.scaling.up": "开始扩展之前,请阅读管理指南中的动态扩展部分。",
+    "message.recover.vm": "请确认您确实要恢复此 VM。",
+    "message.redirecting.region": "正在重定向到地理区域...",
+    "message.reinstall.vm": "注意: 请谨慎操作。这将导致从模板重新安装 VM,并且引导磁盘上存储的数据将丢失。额外的数据卷(如果存在)将无法访问。",
+    "message.remove.ldap": "是否确实要删除 LDAP 配置?",
+    "message.remove.region": "是否确实要从此管理服务器中删除此地理区域?",
+    "message.remove.vpc": "请确认您确实要删除 VPC",
+    "message.remove.vpn.access": "请确认您确实要删除以下用户的 VPN 访问。",
+    "message.removed.ssh.key.pair": "已移除的SSH密钥对",
+    "message.reset.VPN.connection": "请确认您确实要重置 VPN 连接",
+    "message.reset.password.warning.notPasswordEnabled": "创建此实例的模板时未启用密码",
+    "message.reset.password.warning.notStopped": "必须先停止您的实例,才能尝试更改其当前密码",
+    "message.restart.mgmt.server": "请重新启动管理服务器以使您的新设置生效。",
+    "message.restart.mgmt.usage.server": "请重新启动管理服务器和使用服务器以使您的新设置生效。",
+    "message.restart.network": "此网络提供的所有服务都将中断。请确认您确实要重新启动此网络。",
+    "message.restart.vpc": "请确认您确实要重新启动 VPC",
+    "message.restart.vpc.remark": "请确定您要重启VPC  <p><small><i> 警告: 重启非冗余的VPC将会导致网络中断,直至VPC重启完成</i>.</small></p>",
+    "message.restoreVM": "是否要还原此 VM?",
+    "message.role.ordering.fail": "Reordering of rule permissions aborted as the list has changed while you were making changes. Please try again.",
+    "message.security.group.usage": "(<strong>按住 Ctrl 键并单击鼠标</strong>可选择所有适用的安全组)",
+    "message.select.a.zone": "一个资源域通常与一个数据中心相对应。多个资源域可以提供物理隔离和冗余,有助于使云更加可靠。",
+    "message.select.affinity.groups": "请选择您希望此 VM 所属的任何关联性组:",
+    "message.select.instance": "请选择一个实例。",
+    "message.select.iso": "请为您的新虚拟实例选择一个 ISO。",
+    "message.select.item": "请选择一个项目。",
+    "message.select.security.groups": "请为您的新 VM 选择安全组",
+    "message.select.template": "请为您的新虚拟实例选择一个模板。",
+    "message.select.tier": "请选择一个层",
+    "message.set.default.NIC": "请确认您确实要将此 NIC 设置为此 VM 的默认 NIC。",
+    "message.set.default.NIC.manual": "请立即手动更新此 VM 上的默认 NIC。",
+    "message.setup.physical.network.during.zone.creation": "添加高级资源域时,需要设置一个或多个物理网络。每个网络都与虚拟机管理程序中的一个 NIC 相对应。每个物理网络中可以包含一种或多种流量类型,并对这些流量类型可能的组合方式设置了某些限制。<br/><br/><strong>可以将一种或多种流量类型拖放</strong>到每个物理网络中。",
+    "message.setup.physical.network.during.zone.creation.basic": "添加基础资源域时,可以设置一个物理网络,此网络应与虚拟机管理程序中的 NIC 相对应。此网络可以承载多种流量类型。<br/><br/>此外,还可以将其他流量类型<strong>拖放</strong>到此物理网络。",
+    "message.setup.successful": "已成功设置云!",
+    "message.snapshot.schedule": "可以通过从以下可用选项中进行选择并应用您的策略首选项来设置重现快照计划",
+    "message.specifiy.tag.key.value": "请指定标记密钥和值",
+    "message.specify.url": "请指定 URL",
+    "message.step.1.continue": "请选择一个模板或 ISO 以继续",
+    "message.step.1.desc": "请为您的新虚拟实例选择一个模板。还可以选择一个可将 ISO 映像安装到其中的空模板。",
+    "message.step.2.continue": "请选择一种服务方案以继续",
+    "message.step.3.continue": "请选择一个磁盘方案以继续",
+    "message.step.4.continue": "请至少选择一个网络以继续",
+    "message.step.4.desc": "请选择虚拟实例要连接到的主网络。",
+    "message.storage.traffic": "CloudStack 内部资源(包括与管理服务器通信的任何组件,例如主机和 CloudStack 系统 VM)之间的流量。请在此处配置存储流量。",
+    "message.suspend.project": "是否确实要暂停此项目?",
+    "message.systems.vms.ready": "系统 VM 已就绪。",
+    "message.template.copying": "正在复制模板。",
+    "message.template.desc": "操作系统映像,可用于启动 VM",
+    "message.tier.required": "“层”为必填项",
+    "message.tooltip.dns.1": "供资源域中的 VM 使用的 DNS 服务器名称。资源域的公用 IP 地址必须路由到此服务器。",
+    "message.tooltip.dns.2": "供资源域中的 VM 使用的二级 DNS 服务器名称。资源域的公用 IP 地址必须路由到此服务器。",
+    "message.tooltip.internal.dns.1": "供资源域中的 CloudStack 内部系统 VM 使用的 DNS 服务器名称。提供点的专用 IP 地址必须路由到此服务器。",
+    "message.tooltip.internal.dns.2": "供资源域中的 CloudStack 内部系统 VM 使用的 DNS 服务器名称。提供点的专用 IP 地址必须路由到此服务器。",
+    "message.tooltip.network.domain": "DNS 后缀,将为由来宾 VM 访问的网络创建一个自定义域名。",
+    "message.tooltip.pod.name": "此提供点的名称。",
+    "message.tooltip.reserved.system.gateway": "提供点中的主机网关。",
+    "message.tooltip.reserved.system.netmask": "用于定义提供点子网的网络前缀。请使用 CIDR 符号。",
+    "message.tooltip.zone.name": "资源域名称。",
+    "message.update.os.preference": "请为此主机选择一个操作系统首选项。首先将具有相似首选项的所有虚拟实例分配至此主机,然后再选择其他实例。",
+    "message.update.resource.count": "请确认您确实要更新此帐户的资源数。",
+    "message.update.ssl": "请提交一个 X.509 兼容的新 SSL 证书,以便将其更新到每个控制台代理和二级存储虚拟实例:",
+    "message.update.ssl.failed": "无法更新 SSL 证书。",
+    "message.update.ssl.succeeded": "已成功更新 SSL 证书",
+    "message.validate.URL": "请输入有效的 URL。",
+    "message.validate.accept": "请输入一个带有有效扩展名的值。",
+    "message.validate.creditcard": "请输入一个有效的信用卡卡号。",
+    "message.validate.date": "请输入有效的日期。",
+    "message.validate.date.ISO": "请输入有效的日期(ISO)。",
+    "message.validate.digits": "请仅输入数字。",
+    "message.validate.email.address": "请输入一个有效的电子邮件地址。",
+    "message.validate.equalto": "请重新输入相同的值。",
+    "message.validate.fieldrequired": "此字段为必填字段。",
+    "message.validate.fixfield": "请修复此字段。",
+    "message.validate.instance.name": "实例名称不得超过 63 个字符。仅允许使用 ASCII 字母 a - z 或 A - Z、数字 0 - 9 以及连字符。实例名称必须以字母开头并以字母或数字结束。",
+    "message.validate.invalid.characters": "查找到无效字符,请更正。",
+    "message.validate.max": "请输入一个小于或等于 {0} 的值。",
+    "message.validate.maxlength": "请最多输入 {0} 个字符。",
+    "message.validate.minlength": "请至少输入 {0} 个字符。",
+    "message.validate.number": "请输入一个有效数字。",
+    "message.validate.range": "请输入一个介于 {0} 到 {1} 之间的值。",
+    "message.validate.range.length": "请输入一个长度介于 {0} 到 {1} 之间的值。",
+    "message.virtual.network.desc": "您的帐户的专用虚拟网络。广播域包含在 VLAN 中,并且所有公用网络访问都由虚拟路由器路由出去。",
+    "message.vm.create.template.confirm": "创建模板将自动重新启动 VM。",
+    "message.vm.review.launch": "请先核对以下信息,确认您的虚拟实例正确无误,然后再启动。",
+    "message.vnmc.available.list": "提供程序列表中未提供 VNMC。",
+    "message.vnmc.not.available.list": "提供程序列表中未提供 VNMC。",
+    "message.volume.create.template.confirm": "请确认您确实要为此磁盘卷创建一个模板。创建模板可能需要几分钟到更长的时间,具体取决于卷的大小。",
+    "message.waiting.for.builtin.templates.to.load": "正在等待加载内置模板...",
+    "message.you.must.have.at.least.one.physical.network": "您必须至少拥有一个物理网络",
+    "message.your.cloudstack.is.ready": "您的 CloudStack 已就绪!",
+    "message.zone.creation.complete.would.you.like.to.enable.this.zone": "已完成创建资源域。是否要启用此资源域?",
+    "message.zone.no.network.selection": "所选资源域无任何网络选项。",
+    "message.zone.step.1.desc": "请为您的资源域选择一种网络模式。",
+    "message.zone.step.2.desc": "请输入以下信息以添加一个新资源域",
+    "message.zone.step.3.desc": "请输入以下信息以添加一个新提供点",
+    "message.zoneWizard.enable.local.storage": "警告: 如果为此资源域启用了本地存储,则必须执行以下操作,具体取决于您希望启动系统 VM 的位置:<br/><br/>1. 如果需要在共享主存储中启动系统 VM,则必须在完成创建后将共享主存储添加到此资源域。<br/><br/>2. 如果需要在本地主存储中启动系统 VM,则必须在启用此资源域之前将 system.vm.use.local.storage 设置为 true。<br/><br/><br/>是否要继续?",
+    "messgae.validate.min": "请输入一个大于或等于 {0} 的值。",
+    "mode": "模式",
+    "network.rate": "网络速率",
+    "notification.reboot.instance": "重新启动实例",
+    "notification.start.instance": "启动实例",
+    "notification.stop.instance": "停止实例",
+    "side.by.side": "并行",
+    "state.Accepted": "已接受",
+    "state.Active": "活动",
+    "state.Allocated": "已分配",
+    "state.Allocating": "正在分配",
+    "state.BackedUp": "已备份",
+    "state.BackingUp": "正在备份",
+    "state.Completed": "已完成",
+    "state.Creating": "正在创建",
+    "state.Declined": "已拒绝",
+    "state.Destroyed": "已销毁",
+    "state.Disabled": "已禁用",
+    "state.Enabled": "已启用",
+    "state.Error": "错误",
+    "state.Expunging": "正在删除",
+    "state.Migrating": "正在迁移",
+    "state.Pending": "待定",
+    "state.Ready": "已就绪",
+    "state.Running": "正在运行",
+    "state.Starting": "正在启动",
+    "state.Stopped": "已停止",
+    "state.Stopping": "正在停止",
+    "state.Suspended": "已暂停",
+    "state.detached": "已取消附加",
+    "title.upload.volume": "上传卷",
+    "ui.listView.filters.all": "全部",
+    "ui.listView.filters.mine": "本用户"
+};
diff --git a/ui/lib/jquery.validate.additional-methods.js b/ui/lib/jquery.validate.additional-methods.js
index 7491439..811b4f7 100644
--- a/ui/lib/jquery.validate.additional-methods.js
+++ b/ui/lib/jquery.validate.additional-methods.js
@@ -497,6 +497,9 @@
 }, "Please enter a valid IP v4 address.");
 
 $.validator.addMethod("ipv6", function(value, element) {
+        if (value == '::')
+            return true;
+
 	return this.optional(element) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(value);
 }, "Please enter a valid IP v6 address.");
 
@@ -925,4 +928,4 @@
 	return this.optional(element) || /^90[2-5]\d\{2\}-\d{4}$/.test(value);
 }, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx");
 
-}));
\ No newline at end of file
+}));
diff --git a/ui/scripts/accounts.js b/ui/scripts/accounts.js
index 913f81f..4488fdc 100644
--- a/ui/scripts/accounts.js
+++ b/ui/scripts/accounts.js
@@ -1638,20 +1638,33 @@
                                 }],
 
                                 dataProvider: function(args) {
-                                    if (isAdmin() || isDomainAdmin()) {
-                                        $.ajax({
-                                            url: createURL('listUsers'),
+                                if (isAdmin() || isDomainAdmin()) {
+                                    $.ajax({
+                                        url: createURL('listUsers'),
                                             data: {
                                                 id: args.context.users[0].id
                                             },
                                             success: function(json) {
-                                                args.response.success({
-                                                    actionFilter: userActionfilter,
-                                                    data: json.listusersresponse.user[0]
-                                                });
-                                            }
-                                        });
-                                    } else { //normal user doesn't have access listUsers API until Bug 14127 is fixed.
+                                                var items = json.listusersresponse.user[0];
+                                                    $.ajax({
+                                                        url: createURL('getUserKeys'),//change
+                                                        data: {
+                                                            id: args.context.users[0].id//change
+                                                        },
+                                                        success: function(json) {
+                                                            $.extend(items, {
+                                                                secretkey: json.getuserkeysresponse.userkeys.secretkey//change
+                                                            });
+                                                        args.response.success({
+                                                            actionFilter: userActionfilter,
+                                                                data: items
+                                                        });
+                                                        }
+                                                    });
+                                                }
+                                            });
+                                        }
+                                    else { //normal user doesn't have access listUsers API until Bug 14127 is fixed.
                                         args.response.success({
                                             actionFilter: userActionfilter,
                                             data: args.context.users[0]
diff --git a/ui/scripts/cloud.core.callbacks.js b/ui/scripts/cloud.core.callbacks.js
index 9aad73a..aad5deb 100644
--- a/ui/scripts/cloud.core.callbacks.js
+++ b/ui/scripts/cloud.core.callbacks.js
@@ -24,7 +24,7 @@
 
 /*
 This file is meant to help with implementing single signon integration.  If you are using the
-cloud.com default UI, there is no need to touch this file.
+default Apache CloudStack UI, there is no need to touch this file.
 */
 
 /*
diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js
index b712d6c..1190133 100644
--- a/ui/scripts/cloudStack.js
+++ b/ui/scripts/cloudStack.js
@@ -120,6 +120,7 @@
                     g_username = unBoxCookieValue('username');
                     g_userfullname = unBoxCookieValue('userfullname');
                     g_timezone = unBoxCookieValue('timezone');
+                    g_timezoneoffset = unBoxCookieValue('timezoneoffset');
                 } else { //single-sign-on (bypass login screen)
                     g_sessionKey = encodeURIComponent(g_loginResponse.sessionkey);
                     g_role = g_loginResponse.type;
@@ -129,6 +130,7 @@
                     g_domainid = g_loginResponse.domainid;
                     g_userfullname = g_loginResponse.firstname + ' ' + g_loginResponse.lastname;
                     g_timezone = g_loginResponse.timezone;
+                    g_timezoneoffset = g_loginResponse.timezoneoffset;
                 }
 
                 var userValid = false;
@@ -258,6 +260,7 @@
                         g_account = loginresponse.account;
                         g_domainid = loginresponse.domainid;
                         g_timezone = loginresponse.timezone;
+                        g_timezoneoffset = loginresponse.timezoneoffset;
                         g_userfullname = loginresponse.firstname + ' ' + loginresponse.lastname;
 
                         $.cookie('username', g_username, {
@@ -275,6 +278,9 @@
                         $.cookie('timezone', g_timezone, {
                             expires: 1
                         });
+                        $.cookie('timezoneoffset', g_timezoneoffset, {
+                            expires: 1
+                        });
                         $.cookie('userfullname', g_userfullname, {
                             expires: 1
                         });
diff --git a/ui/scripts/configuration.js b/ui/scripts/configuration.js
index 4f7947a..512ccf7 100644
--- a/ui/scripts/configuration.js
+++ b/ui/scripts/configuration.js
@@ -1146,6 +1146,82 @@
                                             number: true
                                         }
                                     },
+                                    qosType: {
+                                        label: 'label.qos.type',
+                                        docID: 'helpDiskOfferingQoSType',
+                                        select: function(args) {
+                                            var items = [];
+                                            items.push({
+                                                id: '',
+                                                description: ''
+                                            });
+                                            items.push({
+                                                id: 'hypervisor',
+                                                description: 'hypervisor'
+                                            });
+                                            items.push({
+                                                id: 'storage',
+                                                description: 'storage'
+                                            });
+                                            args.response.success({
+                                                data: items
+                                            });
+
+                                            args.$select.change(function() {
+                                                var $form = $(this).closest('form');
+                                                var $isCustomizedIops = $form.find('.form-item[rel=isCustomizedIops]');
+                                                var $minIops = $form.find('.form-item[rel=minIops]');
+                                                var $maxIops = $form.find('.form-item[rel=maxIops]');
+                                                var $diskBytesReadRate = $form.find('.form-item[rel=diskBytesReadRate]');
+                                                var $diskBytesWriteRate = $form.find('.form-item[rel=diskBytesWriteRate]');
+                                                var $diskIopsReadRate = $form.find('.form-item[rel=diskIopsReadRate]');
+                                                var $diskIopsWriteRate = $form.find('.form-item[rel=diskIopsWriteRate]');
+
+                                                var qosId = $(this).val();
+
+                                                if (qosId == 'storage') { // Storage QoS
+                                                    $diskBytesReadRate.hide();
+                                                    $diskBytesWriteRate.hide();
+                                                    $diskIopsReadRate.hide();
+                                                    $diskIopsWriteRate.hide();
+
+                                                    $minIops.css('display', 'inline-block');
+                                                    $maxIops.css('display', 'inline-block');
+                                                } else if (qosId == 'hypervisor') { // Hypervisor Qos
+                                                    $minIops.hide();
+                                                    $maxIops.hide();
+
+                                                    $diskBytesReadRate.css('display', 'inline-block');
+                                                    $diskBytesWriteRate.css('display', 'inline-block');
+                                                    $diskIopsReadRate.css('display', 'inline-block');
+                                                    $diskIopsWriteRate.css('display', 'inline-block');
+                                                } else { // No Qos
+                                                    $diskBytesReadRate.hide();
+                                                    $diskBytesWriteRate.hide();
+                                                    $diskIopsReadRate.hide();
+                                                    $diskIopsWriteRate.hide();
+                                                    $minIops.hide();
+                                                    $maxIops.hide();
+                                                }
+                                            });
+                                        }
+                                    },
+                                    minIops: {
+                                        label: 'label.disk.iops.min',
+                                        docID: 'helpDiskOfferingDiskIopsMin',
+                                        validation: {
+                                            required: false,
+                                            number: true
+                                        }
+                                    },
+                                    maxIops: {
+                                        label: 'label.disk.iops.max',
+                                        docID: 'helpDiskOfferingDiskIopsMax',
+                                        validation: {
+                                            required: false,
+                                            number: true
+                                        }
+                                    },
                                     diskBytesReadRate: {
                                         label: 'label.disk.bytes.read.rate',
                                         docID: 'helpSystemOfferingDiskBytesReadRate',
@@ -1255,25 +1331,43 @@
                                         networkrate: args.data.networkRate
                                     });
                                 }
-                                if (args.data.diskBytesReadRate != null && args.data.diskBytesReadRate.length > 0) {
-                                    $.extend(data, {
-                                        bytesreadrate: args.data.diskBytesReadRate
-                                    });
-                                }
-                                if (args.data.diskBytesWriteRate != null && args.data.diskBytesWriteRate.length > 0) {
-                                    $.extend(data, {
-                                        byteswriterate: args.data.diskBytesWriteRate
-                                    });
-                                }
-                                if (args.data.diskIopsReadRate != null && args.data.diskIopsReadRate.length > 0) {
-                                    $.extend(data, {
-                                        iopsreadrate: args.data.diskIopsReadRate
-                                    });
-                                }
-                                if (args.data.diskIopsWriteRate != null && args.data.diskIopsWriteRate.length > 0) {
-                                    $.extend(data, {
-                                        iopswriterate: args.data.diskIopsWriteRate
-                                    });
+
+                                if (args.data.qosType == 'storage') {
+                                    if (args.data.minIops != null && args.data.minIops.length > 0) {
+                                        $.extend(data, {
+                                            miniops: args.data.minIops
+                                        });
+                                    }
+
+                                    if (args.data.maxIops != null && args.data.maxIops.length > 0) {
+                                        $.extend(data, {
+                                            maxiops: args.data.maxIops
+                                        });
+                                    }
+                                } else if (args.data.qosType == 'hypervisor') {
+                                    if (args.data.diskBytesReadRate != null && args.data.diskBytesReadRate.length > 0) {
+                                        $.extend(data, {
+                                            bytesreadrate: args.data.diskBytesReadRate
+                                        });
+                                    }
+
+                                    if (args.data.diskBytesWriteRate != null && args.data.diskBytesWriteRate.length > 0) {
+                                        $.extend(data, {
+                                            byteswriterate: args.data.diskBytesWriteRate
+                                        });
+                                    }
+
+                                    if (args.data.diskIopsReadRate != null && args.data.diskIopsReadRate.length > 0) {
+                                        $.extend(data, {
+                                            iopsreadrate: args.data.diskIopsReadRate
+                                        });
+                                    }
+
+                                    if (args.data.diskIopsWriteRate != null && args.data.diskIopsWriteRate.length > 0) {
+                                        $.extend(data, {
+                                            iopswriterate: args.data.diskIopsWriteRate
+                                        });
+                                    }
                                 }
 
                                 $.extend(data, {
@@ -1476,6 +1570,24 @@
                                     networkrate: {
                                         label: 'label.network.rate'
                                     },
+                                    miniops: {
+                                        label: 'label.disk.iops.min',
+                                        converter: function(args) {
+                                            if (args > 0)
+                                                return args;
+                                            else
+                                                return "N/A";
+                                        }
+                                    },
+                                    maxiops: {
+                                        label: 'label.disk.iops.max',
+                                        converter: function(args) {
+                                            if (args > 0)
+                                                return args;
+                                            else
+                                                return "N/A";
+                                        }
+                                    },
                                     diskBytesReadRate: {
                                         label: 'label.disk.bytes.read.rate'
                                     },
@@ -2255,6 +2367,7 @@
                                     var $serviceofferingid = args.$form.find('.form-item[rel=serviceofferingid]');
                                     var $conservemode = args.$form.find('.form-item[rel=conservemode]');
                                     var $supportsstrechedl2subnet = args.$form.find('.form-item[rel=supportsstrechedl2subnet]');
+                                    var $supportspublicaccess = args.$form.find('.form-item[rel=supportspublicaccess]');
                                     var $serviceSourceNatRedundantRouterCapabilityCheckbox = args.$form.find('.form-item[rel="service.SourceNat.redundantRouterCapabilityCheckbox"]');
                                     var hasAdvancedZones = false;
 
@@ -2563,6 +2676,20 @@
                                         } else {
                                             $supportsstrechedl2subnet.hide();
                                         }
+
+                                        //PublicAccess checkbox should be displayed only when 'Connectivity' service is checked
+                                        if (args.$form.find('.form-item[rel=\"service.Connectivity.isEnabled\"]').find('input[type=checkbox]').is(':checked') && $guestTypeField.val() == 'Shared' &&
+                                            args.$form.find('.form-item[rel=\"service.Connectivity.provider\"]').find('select').val() == 'NuageVsp') {
+                                            $supportspublicaccess.css('display', 'inline-block');
+                                        } else {
+                                            $supportspublicaccess.hide();
+                                        }
+
+                                        //Uncheck specifyVlan checkbox when (1)guest type is Shared and (2)NuageVsp is selected as a Connectivity provider
+                                        if ($guestTypeField.val() == 'Shared') {
+                                            var $specifyVlanCheckbox = args.$form.find('.form-item[rel=specifyVlan]').find('input[type=checkbox]');
+                                            $specifyVlanCheckbox.attr('checked', args.$form.find('.form-item[rel=\"service.Connectivity.provider\"]').find('select').val() != 'NuageVsp')
+                                        }
                                     });
 
                                     args.$form.change();
@@ -2943,6 +3070,13 @@
                                         isHidden: true
                                     },
 
+                                    supportspublicaccess: {
+                                        label: 'label.supportspublicaccess',
+                                        isBoolean: true,
+                                        isChecked: false,
+                                        isHidden: true
+                                    },
+
                                     conservemode: {
                                         label: 'label.conserve.mode',
                                         isBoolean: true,
@@ -3075,18 +3209,23 @@
                                     }
                                 }
 
-                                //passing supportsstrechedl2subnet's value as capability
+                                //passing supportsstrechedl2subnet and supportspublicaccess's value as capability
                                 for (var k in inputData) {
                                     if (k == 'supportsstrechedl2subnet' && ("Connectivity" in serviceProviderMap)) {
-                                            inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].service'] = 'Connectivity';
-                                            inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilitytype'] = 'StretchedL2Subnet';
-                                            inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = true;
-                                            serviceCapabilityIndex++;
-                                            break;
+                                        inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].service'] = 'Connectivity';
+                                        inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilitytype'] = 'StretchedL2Subnet';
+                                        inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = true;
+                                        serviceCapabilityIndex++;
+                                    } else if (k == 'supportspublicaccess' && ("Connectivity" in serviceProviderMap) && serviceProviderMap['Connectivity'] == 'NuageVsp') {
+                                        inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].service'] = 'Connectivity';
+                                        inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilitytype'] = 'PublicAccess';
+                                        inputData['servicecapabilitylist[' + serviceCapabilityIndex + '].capabilityvalue'] = true;
+                                        serviceCapabilityIndex++;
                                     }
                                 }
-                                //removing supportsstrechedl2subnet from parameters, it has been set as capability
+                                //removing supportsstrechedl2subnet and supportspublicaccess from parameters, it has been set as capability
                                 delete inputData['supportsstrechedl2subnet'];
+                                delete inputData['supportspublicaccess'];
 
                                 // Make supported services list
                                 inputData['supportedServices'] = $.map(serviceProviderMap, function(value, key) {
@@ -3095,7 +3234,8 @@
 
 
                                 if (inputData['guestIpType'] == "Shared") { //specifyVlan checkbox is disabled, so inputData won't include specifyVlan
-                                    inputData['specifyVlan'] = true; //hardcode inputData['specifyVlan']
+                                    var $specifyVlanCheckbox = args.$form.find('.form-item[rel=specifyVlan]').find('input[type=checkbox]');
+                                    inputData['specifyVlan'] = $specifyVlanCheckbox.is(':checked'); //hardcode inputData['specifyVlan']
                                     inputData['specifyIpRanges'] = true;
                                     delete inputData.isPersistent; //if Persistent checkbox is unchecked, do not pass isPersistent parameter to API call since we need to keep API call's size as small as possible (p.s. isPersistent is defaulted as false at server-side)
                                 } else if (inputData['guestIpType'] == "Isolated") { //specifyVlan checkbox is shown
@@ -3426,6 +3566,10 @@
                                         label: 'label.supportsstrechedl2subnet',
                                         converter: cloudStack.converters.toBooleanText
                                     },
+                                    supportspublicaccess: {
+                                        label: 'label.supportspublicaccess',
+                                        converter: cloudStack.converters.toBooleanText
+                                    },
                                     supportedServices: {
                                         label: 'label.supported.services'
                                     },
diff --git a/ui/scripts/docs.js b/ui/scripts/docs.js
index 11622f1..938514f 100755
--- a/ui/scripts/docs.js
+++ b/ui/scripts/docs.js
@@ -1197,7 +1197,7 @@
         externalLink: ''
     },
     helpRegisterTemplateZone: {
-        desc: 'Choose the zone where you want the template to be available, or All Zones to make it available throughout the cloud',
+        desc: 'Choose one or more zones where you want the template to be available, or All Zones to make it available throughout the cloud. (Tip: Use Ctrl to choose multiple zones)',
         externalLink: ''
     },
     helpRegisterTemplateHypervisor: {
@@ -1333,4 +1333,4 @@
     helpLdapLinkDomainAdmin: {
         desc: 'domain admin of the linked domain. Specify a username in GROUP/OU of LDAP'
     }
-};
\ No newline at end of file
+};
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index d812d03..67f4709 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -28,6 +28,7 @@
             addRow: 'false',
             createForm: {
                 title: 'label.action.vmsnapshot.create',
+                desc: 'message.action.vmsnapshot.create',
                 fields: {
                     name: {
                         label: 'label.name',
@@ -429,7 +430,7 @@
                     path: 'storage.volumes',
                     label: 'label.volumes'
                 }, {
-                    path: 'vmsnapshots',
+                    path: 'storage.vmsnapshots',
                     label: 'label.snapshots'
                 }, {
                     path: 'affinityGroups',
@@ -503,6 +504,10 @@
                     if (includingSecurityGroupService == false) {
                         hiddenTabs.push("securityGroups");
                     }
+					
+					if (args.context.instances[0].state == 'Running') {
+						hiddenTabs.push("settings");
+					}
 
                     return hiddenTabs;
                 },
@@ -1480,113 +1485,130 @@
                         label: 'label.migrate.instance.to.host',
                         compactLabel: 'label.migrate.to.host',
                         messages: {
-                            confirm: function(args) {
-                                return 'message.migrate.instance.to.host';
-                            },
                             notification: function(args) {
                                 return 'label.migrate.instance.to.host';
                             }
                         },
-                        createForm: {
-                            title: 'label.migrate.instance.to.host',
-                            desc: '',
-                            fields: {
-                                hostId: {
-                                    label: 'label.host',
-                                    validation: {
-                                        required: true
-                                    },
-                                    select: function(args) {
-                                        $.ajax({
-                                            url: createURL("findHostsForMigration&VirtualMachineId=" + args.context.instances[0].id),
-                                            dataType: "json",
-                                            async: true,
-                                            success: function(json) {
-                                                if (json.findhostsformigrationresponse.host != undefined) {
-                                                    vmMigrationHostObjs = json.findhostsformigrationresponse.host;
-                                                    var items = [];
-                                                    $(vmMigrationHostObjs).each(function() {
-                                                        if (this.requiresStorageMotion == true) {
+                        action: {
+                            custom: cloudStack.uiCustom.migrate({
+                                listView: {
+                                    listView: {
+                                        id: 'availableHosts',
+                                        fields: {
+                                            availableHostName: {
+                                                label: 'label.name'
+                                            },
+                                            availableHostSuitability: {
+                                                 label: 'label.suitability',
+                                                 indicator: {
+                                                    'Suitable': 'suitable',
+                                                    'Suitable-Storage migration required': 'suitable suitable-storage-migration-required',
+                                                    'Not Suitable': 'notsuitable',
+                                                    'Not Suitable-Storage migration required': 'notsuitable notsuitable-storage-migration-required'
+                                                 }
+                                            },
+                                            cpuused: {
+                                                label: 'label.cpu.utilized'
+                                            },
+                                            memoryused: {
+                                                label: 'label.memory.used'
+                                            }
+                                        },
+                                        dataProvider: function(args) {
+                                             var data = {
+                                                page: args.page,
+                                                pagesize: pageSize
+                                            };
+                                            if (args.filterBy.search.value) {
+                                                data.keyword = args.filterBy.search.value;
+                                            }
+                                            $.ajax({
+                                                url: createURL("findHostsForMigration&VirtualMachineId=" + args.context.instances[0].id),
+                                                data: data,
+                                                dataType: "json",
+                                                async: true,
+                                                success: function(json) {
+                                                    if (json.findhostsformigrationresponse.host != undefined) {
+                                                        vmMigrationHostObjs = json.findhostsformigrationresponse.host;
+                                                        var items = [];
+                                                        $(vmMigrationHostObjs).each(function() {
+                                                            var suitability = (this.suitableformigration ? "Suitable" : "Not Suitable");
+                                                            if (this.requiresStorageMotion == true) {
+                                                                suitability += ("-Storage migration required");
+                                                            }
                                                             items.push({
                                                                 id: this.id,
-                                                                description: (this.name + " (" + (this.suitableformigration ? "Suitable, " : "Not Suitable, ") + "Storage migration required)")
+                                                                availableHostName: this.name,
+                                                                availableHostSuitability: suitability,
+                                                                cpuused: this.cpuused,
+                                                                memoryused: (parseFloat(this.memoryused)/(1024.0*1024.0*1024.0)).toFixed(2) + ' GB'
                                                             });
-
-                                                        } else {
-                                                            items.push({
-                                                                id: this.id,
-                                                                description: (this.name + " (" + (this.suitableformigration ? "Suitable" : "Not Suitable") + ")")
-                                                            });
+                                                        });
+                                                        args.response.success({
+                                                            data: items
+                                                        });
+                                                    } else if(args.page == 1) {
+                                                        args.response.success({
+                                                            data: null
+                                                        });
+                                                    } else {
+                                                         cloudStack.dialog.notice({
+                                                             message: _l('message.no.more.hosts.available')
+                                                         });
+                                                    }
+                                                }
+                                            });
+                                        }
+                                    }
+                                },
+                                action: function(args) {
+                                    var selectedHostObj;
+                                    if (args.context.selectedHost != null && args.context.selectedHost.length > 0) {
+                                        selectedHostObj = args.context.selectedHost[0];
+                                        if (selectedHostObj.requiresStorageMotion == true) {
+                                            $.ajax({
+                                                url: createURL("migrateVirtualMachineWithVolume&hostid=" + selectedHostObj.id + "&virtualmachineid=" + args.context.instances[0].id),
+                                                dataType: "json",
+                                                async: true,
+                                                success: function(json) {
+                                                    var jid = json.migratevirtualmachinewithvolumeresponse.jobid;
+                                                    args.response.success({
+                                                        _custom: {
+                                                            jobId: jid,
+                                                            getUpdatedItem: function(json) {
+                                                                return json.queryasyncjobresultresponse.jobresult.virtualmachine;
+                                                            },
+                                                            getActionFilter: function() {
+                                                                return vmActionfilter;
+                                                            }
                                                         }
                                                     });
+                                                }
+                                            });
+                                        } else {
+                                            $.ajax({
+                                                url: createURL("migrateVirtualMachine&hostid=" + selectedHostObj.id + "&virtualmachineid=" + args.context.instances[0].id),
+                                                dataType: "json",
+                                                async: true,
+                                                success: function(json) {
+                                                    var jid = json.migratevirtualmachineresponse.jobid;
                                                     args.response.success({
-                                                        data: items
+                                                        _custom: {
+                                                            jobId: jid,
+                                                            getUpdatedItem: function(json) {
+                                                                return json.queryasyncjobresultresponse.jobresult.virtualmachine;
+                                                            },
+                                                            getActionFilter: function() {
+                                                                return vmActionfilter;
+                                                            }
+                                                        }
                                                     });
-                                                } else {
-                                                    cloudStack.dialog.notice({
-                                                        message: _l('message.no.host.available')
-                                                    }); //Only a single host in the set up
                                                 }
-                                            }
-                                        });
+                                            });
+                                        }
                                     }
                                 }
-                            }
-                        },
-                        action: function(args) {
-                            var selectedHostObj;
-                            if (vmMigrationHostObjs != null) {
-                                for (var i = 0; i < vmMigrationHostObjs.length; i++) {
-                                    if (vmMigrationHostObjs[i].id == args.data.hostId) {
-                                        selectedHostObj = vmMigrationHostObjs[i];
-                                        break;
-                                    }
-                                }
-                            }
-                            if (selectedHostObj == null)
-                                return;
-
-                            if (selectedHostObj.requiresStorageMotion == true) {
-                                $.ajax({
-                                    url: createURL("migrateVirtualMachineWithVolume&hostid=" + args.data.hostId + "&virtualmachineid=" + args.context.instances[0].id),
-                                    dataType: "json",
-                                    async: true,
-                                    success: function(json) {
-                                        var jid = json.migratevirtualmachinewithvolumeresponse.jobid;
-                                        args.response.success({
-                                            _custom: {
-                                                jobId: jid,
-                                                getUpdatedItem: function(json) {
-                                                    return json.queryasyncjobresultresponse.jobresult.virtualmachine;
-                                                },
-                                                getActionFilter: function() {
-                                                    return vmActionfilter;
-                                                }
-                                            }
-                                        });
-                                    }
-                                });
-                            } else {
-                                $.ajax({
-                                    url: createURL("migrateVirtualMachine&hostid=" + args.data.hostId + "&virtualmachineid=" + args.context.instances[0].id),
-                                    dataType: "json",
-                                    async: true,
-                                    success: function(json) {
-                                        var jid = json.migratevirtualmachineresponse.jobid;
-                                        args.response.success({
-                                            _custom: {
-                                                jobId: jid,
-                                                getUpdatedItem: function(json) {
-                                                    return json.queryasyncjobresultresponse.jobresult.virtualmachine;
-                                                },
-                                                getActionFilter: function() {
-                                                    return vmActionfilter;
-                                                }
-                                            }
-                                        });
-                                    }
-                                });
-                            }
+                            })
                         },
                         notification: {
                             poll: pollAsyncJobResult
@@ -1911,7 +1933,50 @@
                         label: 'label.assign.instance.another',
                         createForm: {
                             title: 'label.assign.instance.another',
+                            desc: 'message.assign.instance.another',
+                            preFilter: function(args) {
+                                var zone;
+                                $.ajax({
+                                    url: createURL('listZones'),
+                                    data: {
+                                        id: args.context.instances[0].zoneid
+                                    },
+                                    async: false,
+                                    success: function(json) {
+                                        zone = json.listzonesresponse.zone[0];
+                                    }
+                                });
+                                if (zone.securitygroupsenabled == true) {
+                                    args.$form.find('.form-item[rel=securitygroup]').css('display', 'inline-block');
+                                } else {
+                                    args.$form.find('.form-item[rel=securitygroup]').hide();
+                                }
+                            },
                             fields: {
+                                accountType: {
+                                    label: 'Account Type',
+                                    select: function(args) {
+                                        var items = [];
+                                        items.push({id: 'account', description: 'Account'});
+                                        items.push({id: 'project', description: 'Project'});
+                                        args.response.success({data: items});
+
+                                        args.$select.change(function() {
+                                            var $form = $(this).closest('form');
+                                            var $account = $form.find('.form-item[rel=account]');
+                                            var $project = $form.find('.form-item[rel=project]');
+
+                                            var accountType = $(this).val();
+                                            if (accountType == 'account') { // Account
+                                                $account.css('display', 'inline-block');
+                                                $project.hide();
+                                            } else if (accountType == 'project') { // Project
+                                                $project.css('display', 'inline-block');
+                                                $account.hide();
+                                            }
+                                        });
+                                    }
+                                },
                                 domainid: {
                                     label: 'label.domain',
                                     validation: {
@@ -1947,25 +2012,216 @@
                                 },
                                 account: {
                                     label: 'label.account',
+                                    dependsOn: 'domainid',
                                     validation: {
                                         required: true
-                                    }
-                                }
+                                    },
+                                    select: function(args) {
+                                        var dataObj = {
+                                            domainId: args.domainid,
+                                            state: 'Enabled',
+                                            listAll: true,
+                                        };
+                                        $.ajax({
+                                            url: createURL('listAccounts', {
+                                                ignoreProject: true
+                                            }),
+                                            data: dataObj,
+                                            success: function(json) {
+                                                accountObjs = json.listaccountsresponse.account;
+                                                var items = [{
+                                                    id: null,
+                                                    description: ''
+                                                }];
+                                                $(accountObjs).each(function() {
+                                                    items.push({
+                                                        id: this.name,
+                                                        description: this.name
+                                                    });
+                                                })
+
+                                                args.response.success({
+                                                    data: items
+                                                });
+                                            }
+                                        });
+                                    },
+                                },
+                                project: {
+                                    label: 'label.project',
+                                    dependsOn: 'domainid',
+                                    validation: {
+                                        required: true
+                                    },
+                                    select: function(args) {
+                                        var dataObj = {
+                                            domainId: args.domainid,
+                                            state: 'Active',
+                                            listAll: true,
+                                        };
+                                        $.ajax({
+                                            url: createURL('listProjects', {
+                                                ignoreProject: true
+                                            }),
+                                            data: dataObj,
+                                            success: function(json) {
+                                                projectObjs = json.listprojectsresponse.project;
+                                                var items = [{
+                                                    id: null,
+                                                    description: ''
+                                                }];
+                                                $(projectObjs).each(function() {
+                                                    items.push({
+                                                        id: this.id,
+                                                        description: this.name
+                                                    });
+                                                })
+
+                                                args.response.success({
+                                                    data: items
+                                                });
+                                            }
+                                        });
+                                    },
+                                },
+                                network: {
+                                    label: 'label.network',
+                                    dependsOn: ['accountType', 'domainid', 'account', 'project'],
+                                    select: function(args) {
+                                        var dataObj = {
+                                            domainId: args.domainid,
+                                            listAll: true,
+                                            isrecursive: false
+                                        };
+                                        if (args.data.accountType == 'account' && args.data.account != null && args.data.account != '') {
+                                            $.extend(dataObj, {
+                                                account: args.data.account
+                                            });
+                                        } else if (args.data.accountType == 'project' && args.data.project != null && args.data.project != '') {
+                                            $.extend(dataObj, {
+                                                projectid: args.data.project
+                                            });
+                                        } else {
+                                            args.response.success({
+                                                data: null
+                                            });
+                                            return;
+                                        }
+                                        $.ajax({
+                                            url: createURL('listNetworks', {
+                                                ignoreProject: true
+                                            }),
+                                            data: dataObj,
+                                            success: function(json) {
+                                                var networkObjs = json.listnetworksresponse.network;
+                                                var items = [{
+                                                    id: null,
+                                                    description: ''
+                                                }];
+                                                $(networkObjs).each(function() {
+                                                    items.push({
+                                                        id: this.id,
+                                                        description: this.name
+                                                    });
+                                                })
+
+                                                args.response.success({
+                                                    data: items
+                                                });
+                                            }
+                                        });
+                                    },
+                                },
+                                securitygroup: {
+                                    label: 'label.security.group',
+                                    dependsOn: ['accountType', 'domainid', 'account', 'project'],
+                                    select: function(args) {
+                                        var dataObj = {
+                                            domainId: args.domainid,
+                                            listAll: true,
+                                            isrecursive: false
+                                        };
+                                        if (args.data.accountType == 'account' && args.data.account != null && args.data.account != '') {
+                                            $.extend(dataObj, {
+                                                account: args.data.account
+                                            });
+                                        } else if (args.data.accountType == 'project' && args.data.project != null && args.data.project != '') {
+                                            $.extend(dataObj, {
+                                                projectid: args.data.project
+                                            });
+                                        } else {
+                                            args.response.success({
+                                                data: null
+                                            });
+                                            return;
+                                        }
+                                        $.ajax({
+                                            url: createURL('listSecurityGroups', {
+                                                ignoreProject: true
+                                            }),
+                                            data: dataObj,
+                                            success: function(json) {
+                                                var sgObjs = json.listsecuritygroupsresponse.securitygroup;
+                                                var items = [{
+                                                    id: null,
+                                                    description: ''
+                                                }];
+                                                $(sgObjs).each(function() {
+                                                    items.push({
+                                                        id: this.id,
+                                                        description: this.name
+                                                    });
+                                                })
+
+                                                args.response.success({
+                                                    data: items
+                                                });
+                                            }
+                                        });
+                                    },
+                                },
                             }
                         },
                         action: function(args) {
-                            $.ajax({
-                                url: createURL('assignVirtualMachine'),
-                                data: {
-                                    virtualmachineid: args.context.instances[0].id,
-                                    domainid: args.data.domainid,
+                            var dataObj = {
+                                virtualmachineid: args.context.instances[0].id,
+                                domainid: args.data.domainid,
+                            };
+                            var ignoreProject = false;
+                            if (args.data.accountType == 'account') {
+                                ignoreProject = true;
+                                $.extend(dataObj, {
                                     account: args.data.account
-                                },
+                                });
+                            } else if (args.data.accountType == 'project') {
+                                $.extend(dataObj, {
+                                    projectid: args.data.project
+                                });
+                            }
+                            if (args.data.network != null && args.data.network != '') {
+                                $.extend(dataObj, {
+                                    networkIds: args.data.network
+                                });
+                            } 
+                            if (args.data.securitygroup != null && args.data.securitygroup != '') {
+                                $.extend(dataObj, {
+                                    securitygroupIds: args.data.securitygroup
+                                });
+                            }
+
+                            $.ajax({
+                                url: createURL('assignVirtualMachine', {
+                                    ignoreProject: ignoreProject
+                                }),
+                                data: dataObj,
                                 success: function(json) {
                                     var item = json.assignvirtualmachineresponse.virtualmachine;
                                     args.response.success({
                                         data: item
                                     });
+                                },
+                                error: function(data) {
+                                    args.response.error(parseXMLHttpResponse(data));
                                 }
                             });
                         },
@@ -2007,7 +2263,7 @@
                             if (isAdmin()) {
                                 hiddenFields = [];
                             } else {
-                                hiddenFields = ["hypervisor", 'xenserverToolsVersion61plus'];
+                                hiddenFields = ["hypervisor"];
                             }
 
                             if ('instances' in args.context && args.context.instances[0].hypervisor != 'XenServer') {
@@ -2125,12 +2381,7 @@
                             xenserverToolsVersion61plus: {
                                 label: 'label.Xenserver.Tools.Version61plus',
                                 isBoolean: true,
-                                isEditable: function () {
-                                    if (isAdmin())
-                                        return true;
-                                    else
-                                        return false;
-                                },
+                                isEditable: true,
                                 converter: cloudStack.converters.toBooleanText
                             },
 
@@ -2685,11 +2936,172 @@
                                 }
                             });
                         }
-                    }
+                    },
+					
+					/**
+                     * Settings tab
+                     */
+					settings: {
+						title: 'label.settings',
+						custom: cloudStack.uiCustom.granularDetails({
+							dataProvider: function(args) {
+								$.ajax({
+									url: createURL('listVirtualMachines&id=' + args.context.instances[0].id),
+									success: function(json) {
+										var details = json.listvirtualmachinesresponse.virtualmachine[0].details;
+										args.response.success({
+											data: parseDetails(details)
+										});
+									},
+
+									error: function(json) {
+										args.response.error(parseXMLHttpResponse(json));
+									}
+								});
+
+							},
+							actions: {
+								edit: function(args) {
+									var data = {
+										name: args.data.jsonObj.name,
+										value: args.data.value
+									};
+									var existingDetails;
+									$.ajax({
+										url: createURL('listVirtualMachines&id=' + args.context.instances[0].id),
+										async:false,
+										success: function(json) {
+											var details = json.listvirtualmachinesresponse.virtualmachine[0].details;
+											console.log(details);
+											existingDetails = details;
+										},
+
+										error: function(json) {
+											args.response.error(parseXMLHttpResponse(json));
+										}
+									});
+									console.log(existingDetails);
+									var newDetails = '';
+									for (d in existingDetails) {
+										if (d != data.name) {
+											newDetails += 'details[0].' + d + '=' + existingDetails[d] + '&';
+										}
+									}
+									newDetails += 'details[0].' + data.name + '=' + data.value;
+									
+									$.ajax({
+										url: createURL('updateVirtualMachine&id=' + args.context.instances[0].id + '&' + newDetails),
+										async:false,
+										success: function(json) {
+											var items = json.updatevirtualmachineresponse.virtualmachine.details;
+											args.response.success({
+												data: parseDetails(items)
+											});
+										},
+
+										error: function(json) {
+											args.response.error(parseXMLHttpResponse(json));
+										}
+									});
+								},
+								remove: function(args) {
+									var existingDetails;
+									$.ajax({
+										url: createURL('listVirtualMachines&id=' + args.context.instances[0].id),
+										async:false,
+										success: function(json) {
+											var details = json.listvirtualmachinesresponse.virtualmachine[0].details;
+											existingDetails = details;
+										},
+
+										error: function(json) {
+											args.response.error(parseXMLHttpResponse(json));
+										}
+									});
+									
+									var detailToDelete = args.data.jsonObj.name;
+									var newDetails = ''
+									for (detail in existingDetails) {
+										if (detail != detailToDelete) {
+											newDetails += 'details[0].' + detail + '=' + existingDetails[detail] + '&';
+										}
+									}
+									if (newDetails != '') {
+										newDetails = newDetails.substring(0, newDetails.length - 1);
+									}
+									else {
+										newDetails += 'cleanupdetails=true'
+									}
+									$.ajax({
+										url: createURL('updateVirtualMachine&id=' + args.context.instances[0].id + '&' + newDetails),
+										async:false,
+										success: function(json) {
+											var items = json.updatevirtualmachineresponse.virtualmachine.details;
+											args.response.success({
+												data: parseDetails(items)
+											});
+										},
+										error: function(json) {
+											args.response.error(parseXMLHttpResponse(json));
+										}
+									});
+								},
+								add: function(args) {
+									var name = args.data.name;
+									var value = args.data.value;
+									
+									var details;
+									$.ajax({
+										url: createURL('listVirtualMachines&id=' + args.context.instances[0].id),
+										async:false,
+										success: function(json) {
+											var dets = json.listvirtualmachinesresponse.virtualmachine[0].details;
+											details = dets;
+										},
+
+										error: function(json) {
+											args.response.error(parseXMLHttpResponse(json));
+										}
+									});
+									
+									var detailsFormat = '';
+									for (key in details) {
+										detailsFormat += "details[0]." + key + "=" + details[key] + "&";
+									}
+									// Add new detail to the existing ones
+									detailsFormat += "details[0]." + name + "=" + value;
+									$.ajax({
+										url: createURL('updateVirtualMachine&id=' + args.context.instances[0].id + "&" + detailsFormat),
+										async: false,
+										success: function(json) {
+											var items = json.updatevirtualmachineresponse.virtualmachine.details;
+											args.response.success({
+												data: parseDetails(items)
+											});
+										},
+										error: function(json) {
+											args.response.error(parseXMLHttpResponse(json));
+										}
+									});
+								}
+							}
+						})
+					}
                 }
             }
         }
     };
+	
+	var parseDetails = function(details) {
+		var listDetails = [];
+		for (detail in details){
+			var det = {};
+			det["name"] = detail;
+			det["value"] = details[detail];
+			listDetails.push(det);
+		}
+		return listDetails;
+	}
 
     var vmActionfilter = cloudStack.actionFilter.vmActionFilter = function(args) {
         var jsonObj = args.context.item;
@@ -2707,8 +3119,7 @@
             allowedActions.push("stop");
             allowedActions.push("restart");
 
-            if ((jsonObj.hypervisor != 'KVM' || g_kvmsnapshotenabled == true)
-                    && (jsonObj.hypervisor != 'LXC')) {
+            if (jsonObj.hypervisor != 'LXC') {
                 allowedActions.push("snapshot");
             }
 
@@ -2744,8 +3155,7 @@
             allowedActions.push("destroy");
             allowedActions.push("reinstall");
 
-            if ((jsonObj.hypervisor != 'KVM' || g_kvmsnapshotenabled == true)
-                    && (jsonObj.hypervisor != 'LXC')) {
+            if (jsonObj.hypervisor != 'KVM' && jsonObj.hypervisor != 'LXC') {
                 allowedActions.push("snapshot");
             }
 
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index 6b9257a..72aa3ad 100755
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -973,53 +973,15 @@
                                         if (args.context.networks[0].type == "Isolated") { //Isolated network
                                             cloudStack.dialog.confirm({
                                                 message: 'message.confirm.current.guest.CIDR.unchanged',
-                                                action: function() { //"Yes"    button is clicked
-                                                    $.extend(data, {
-                                                        changecidr: false
-                                                    });
-
-                                                    $.ajax({
-                                                        url: createURL('updateNetwork'),
-                                                        data: data,
-                                                        success: function(json) {
-                                                            var jid = json.updatenetworkresponse.jobid;
-                                                            args.response.success({
-                                                                _custom: {
-                                                                    jobId: jid,
-                                                                    getUpdatedItem: function(json) {
-                                                                        var item = json.queryasyncjobresultresponse.jobresult.network;
-                                                                        return {
-                                                                            data: item
-                                                                        };
-                                                                    }
-                                                                }
-                                                            });
-                                                        }
-                                                    });
+                                                action: function() { //"Yes" button is clicked
+                                                    getForcedInfoAndUpdateNetwork(data);
                                                 },
                                                 cancelAction: function() { //"Cancel" button is clicked
                                                     $.extend(data, {
                                                         changecidr: true
                                                     });
 
-                                                    $.ajax({
-                                                        url: createURL('updateNetwork'),
-                                                        data: data,
-                                                        success: function(json) {
-                                                            var jid = json.updatenetworkresponse.jobid;
-                                                            args.response.success({
-                                                                _custom: {
-                                                                    jobId: jid,
-                                                                    getUpdatedItem: function(json) {
-                                                                        var item = json.queryasyncjobresultresponse.jobresult.network;
-                                                                        return {
-                                                                            data: item
-                                                                        };
-                                                                    }
-                                                                }
-                                                            });
-                                                        }
-                                                    });
+                                                    getForcedInfoAndUpdateNetwork(data);
                                                 }
                                             });
                                             return;
@@ -1194,10 +1156,6 @@
                                 }
                             });
 
-                            if (!networkHavingELB) {
-                                hiddenTabs.push("addloadBalancer");
-                            }
-
                             if (isVPC || isAdvancedSGZone || isSharedNetwork) {
                                 hiddenTabs.push('egressRules');
                             }
@@ -1447,6 +1405,11 @@
                                                 label: 'label.cidr.list',
                                                 isOptional: true
                                             },
+                                            'destcidrlist': {
+                                                 edit: true,
+                                                 label: 'label.cidr.destination.list',
+                                                 isOptional: true
+                                             },
                                             'protocol': {
                                                 label: 'label.protocol',
                                                 select: function(args) {
@@ -1464,6 +1427,7 @@
                                                             var name = $(this).attr('rel');
 
                                                             return name != 'cidrlist' &&
+                                                                name != 'destcidrlist' &&
                                                                 name != 'icmptype' &&
                                                                 name != 'icmpcode' &&
                                                                 name != 'protocol' &&
@@ -1532,6 +1496,7 @@
                                                 var data = {
                                                     protocol: args.data.protocol,
                                                     cidrlist: args.data.cidrlist,
+                                                    destcidrlist: args.data.destcidrlist,
                                                     networkid: args.context.networks[0].id
                                                 };
 
@@ -1632,7 +1597,9 @@
                                                                     rule.endport = ' ';
                                                                 }
                                                             }
-
+                                                            if(!rule.destcidrlist){
+                                                                rule.destcidrlist = ' ';
+                                                            }
                                                             return rule;
                                                         })
                                                     });
@@ -1671,241 +1638,6 @@
                                 }
                             },
 
-                            addloadBalancer: { // EIP/ELB Basic zone: Add Load Balancer tab in network detailView
-                                title: 'label.add.load.balancer',
-                                custom: function(args) {
-                                    var context = args.context;
-
-                                    return $('<div>').addClass('loadBalancer').multiEdit({
-                                        context: context,
-                                        listView: $.extend(true, {}, cloudStack.sections.instances, {
-                                            listView: {
-                                                filters: false,
-
-                                                dataProvider: function(args) {
-                                                    var data = {
-                                                        page: args.page,
-                                                        pageSize: pageSize,
-                                                        domainid: g_domainid,
-                                                        account: g_account,
-                                                        networkid: args.context.networks[0].id,
-                                                        listAll: true
-                                                    };
-
-                                                    $.ajax({
-                                                        url: createURL('listVirtualMachines'),
-                                                        data: data,
-                                                        dataType: 'json',
-                                                        async: true,
-                                                        success: function(data) {
-                                                            args.response.success({
-                                                                data: $.grep(
-                                                                    data.listvirtualmachinesresponse.virtualmachine ?
-                                                                    data.listvirtualmachinesresponse.virtualmachine : [],
-                                                                    function(instance) {
-                                                                        var nonAutoScale = 0;
-                                                                        if (instance.displayname == null)
-                                                                            nonAutoScale = 1;
-                                                                        else {
-                                                                            if (instance.displayname.match(/AutoScale-LB-/) == null)
-                                                                                nonAutoScale = 1;
-                                                                            else {
-                                                                                if (instance.displayname.match(/AutoScale-LB-/).length)
-                                                                                    nonAutoScale = 0;
-                                                                            }
-                                                                        }
-                                                                        var isActiveState = $.inArray(instance.state, ['Destroyed', 'Expunging']) == -1;
-                                                                        return nonAutoScale && isActiveState;
-                                                                    }
-                                                                )
-                                                            });
-                                                        },
-                                                        error: function(data) {
-                                                            args.response.error(parseXMLHttpResponse(data));
-                                                        }
-                                                    });
-                                                }
-                                            }
-                                        }),
-                                        multipleAdd: true,
-                                        fields: {
-                                            'name': {
-                                                edit: true,
-                                                label: 'label.name'
-                                            },
-                                            'publicport': {
-                                                edit: true,
-                                                label: 'label.public.port'
-                                            },
-                                            'privateport': {
-                                                edit: true,
-                                                label: 'label.private.port'
-                                            },
-                                            'algorithm': {
-                                                label: 'label.algorithm',
-                                                select: function(args) {
-                                                    var data = [{
-                                                            id: 'roundrobin',
-                                                            name: 'roundrobin',
-                                                            description: _l('label.lb.algorithm.roundrobin')
-                                                        }, {
-                                                            id: 'leastconn',
-                                                            name: 'leastconn',
-                                                            description: _l('label.lb.algorithm.leastconn')
-                                                        }, {
-                                                            id: 'source',
-                                                            name: 'source',
-                                                            description: _l('label.lb.algorithm.source')
-                                                        }];
-                                                    if (typeof args.context != 'undefined') {
-                                                        var lbAlgs = getLBAlgorithms(args.context.networks[0]);
-                                                        data = (lbAlgs.length == 0) ? data : lbAlgs;
-                                                    }
-                                                    args.response.success({
-                                                        data: data
-                                                    });
-                                                }
-                                            },
-                                            'sticky': {
-                                                label: 'label.stickiness',
-                                                custom: {
-                                                    buttonLabel: 'label.configure',
-                                                    action: cloudStack.lbStickyPolicy.dialog()
-                                                }
-                                            },
-                                            'autoScale': {
-                                                label: 'label.autoscale',
-                                                custom: {
-                                                    requireValidation: true,
-                                                    buttonLabel: 'label.configure',
-                                                    action: cloudStack.uiCustom.autoscaler(cloudStack.autoscaler)
-                                                }
-                                            },
-                                            'add-vm': {
-                                                label: 'label.add.vms',
-                                                addButton: true
-                                            },
-                                            'state' : {
-                                                edit: 'ignore',
-                                                label: 'label.state'
-                                            }
-                                        },
-
-                                        add: { //basic zone - elastic IP - Add Load Balancer tab - Add VMs button
-                                            label: 'label.add.vms',
-                                            action: function(args) {
-                                                var data = {
-                                                    algorithm: args.data.algorithm,
-                                                    name: args.data.name,
-                                                    privateport: args.data.privateport,
-                                                    publicport: args.data.publicport,
-                                                    openfirewall: false,
-                                                    domainid: g_domainid,
-                                                    account: g_account
-                                                };
-
-                                                if ('vpc' in args.context) { //from VPC section
-                                                    if (args.data.tier == null) {
-                                                        args.response.error('Tier is required');
-                                                        return;
-                                                    }
-                                                    $.extend(data, {
-                                                        networkid: args.data.tier
-                                                    });
-                                                } else { //from Guest Network section
-                                                    $.extend(data, {
-                                                        networkid: args.context.networks[0].id
-                                                    });
-                                                }
-
-                                                var stickyData = $.extend(true, {}, args.data.sticky);
-
-                                                $.ajax({
-                                                    url: createURL('createLoadBalancerRule'),
-                                                    data: data,
-                                                    dataType: 'json',
-                                                    async: true,
-                                                    success: function(data) {
-                                                        var itemData = args.itemData;
-                                                        //var jobID = data.createloadbalancerruleresponse.jobid; //CS-16964: use jobid from assignToLoadBalancerRule instead of createLoadBalancerRule
-
-                                                        $.ajax({
-                                                            url: createURL('assignToLoadBalancerRule'),
-                                                            data: {
-                                                                id: data.createloadbalancerruleresponse.id,
-                                                                virtualmachineids: $.map(itemData, function(elem) {
-                                                                    return elem.id;
-                                                                }).join(',')
-                                                            },
-                                                            dataType: 'json',
-                                                            async: true,
-                                                            success: function(data) {
-                                                                var jobID = data.assigntoloadbalancerruleresponse.jobid; //CS-16964: use jobid from assignToLoadBalancerRule instead of createLoadBalancerRule
-                                                                var lbCreationComplete = false;
-
-                                                                args.response.success({
-                                                                    _custom: {
-                                                                        jobId: jobID
-                                                                    },
-                                                                    notification: {
-                                                                        label: 'label.add.load.balancer',
-                                                                        poll: function(args) {
-                                                                            var complete = args.complete;
-                                                                            var error = args.error;
-
-                                                                            pollAsyncJobResult({
-                                                                                _custom: args._custom,
-                                                                                complete: function(args) {
-                                                                                    if (lbCreationComplete) {
-                                                                                        return;
-                                                                                    }
-
-                                                                                    lbCreationComplete = true;
-                                                                                    cloudStack.dialog.notice({
-                                                                                        message: _l('message.add.load.balancer.under.ip') + args.data.loadbalancer.publicip
-                                                                                    });
-
-                                                                                    if (stickyData &&
-                                                                                        stickyData.methodname &&
-                                                                                        stickyData.methodname != 'None') {
-                                                                                        cloudStack.lbStickyPolicy.actions.add(
-                                                                                            args.data.loadbalancer.id,
-                                                                                            stickyData,
-                                                                                            complete, // Complete
-                                                                                            complete // Error
-                                                                                        );
-                                                                                    } else {
-                                                                                        complete();
-                                                                                    }
-                                                                                },
-                                                                                error: error
-                                                                            });
-                                                                        }
-                                                                    }
-                                                                });
-                                                            },
-                                                            error: function(data) {
-                                                                args.response.error(parseXMLHttpResponse(data));
-                                                            }
-                                                        });
-                                                    },
-                                                    error: function(data) {
-                                                        args.response.error(parseXMLHttpResponse(data));
-                                                    }
-                                                });
-                                            }
-                                        },
-
-
-                                        dataProvider: function(args) {
-                                            args.response.success({ //no LB listing in AddLoadBalancer tab
-                                                data: []
-                                            });
-                                        }
-                                    });
-                                }
-                            },
-
                             virtualRouters: {
                                 title: "label.virtual.appliances",
                                 listView: cloudStack.sections.system.subsections.virtualRouters.sections.routerNoGroup.listView
@@ -1995,11 +1727,16 @@
                     dataProvider: function(args) {
                         var data = {};
 
+                        if (args.filterBy.search.value != null) {
+                            data.keyword = args.filterBy.search.value;
+                        }
+
                         $.ajax({
                             url: createURL('listNics'),
                             data: {
                                 nicId: args.context.nics[0].id,
-                                virtualmachineid: args.context.instances[0].id
+                                virtualmachineid: args.context.instances[0].id,
+                                keyword: args.filterBy.search.value
                             },
                             success: function(json) {
                                 var ips = json.listnicsresponse.nic ? json.listnicsresponse.nic[0].secondaryip : [];
@@ -4886,7 +4623,7 @@
                                             label: 'label.cidr',
                                             isHidden: true,
                                             validation: {
-                                                ipv4cidr: true
+                                                ipv46cidr: true
                                             }
                                         },
                                         'accountname': {
@@ -5096,7 +4833,7 @@
                                             label: 'label.cidr',
                                             isHidden: true,
                                             validation: {
-                                                ipv4cidr: true
+                                                ipv46cidr: true
                                             }
                                         },
                                         'accountname': {
@@ -5488,23 +5225,6 @@
                                         label: 'label.DNS.domain.for.guest.networks'
                                         //format: FQDN
                                     },
-                                    publicLoadBalancerProvider: {
-                                        label: 'label.public.load.balancer.provider',
-                                        select: function(args) {
-                                            var items = [];
-                                            items.push({
-                                                id: 'VpcVirtualRouter',
-                                                description: 'VpcVirtualRouter'
-                                            });
-                                            items.push({
-                                                id: 'Netscaler',
-                                                description: 'Netscaler'
-                                            });
-                                            args.response.success({
-                                                data: items
-                                            });
-                                        }
-                                    },
                                     vpcoffering: {
                                         label: 'label.vpc.offering',
                                         validation: {
@@ -6033,10 +5753,6 @@
                                         select: function(args) {
                                             var items = [];
                                             items.push({
-                                                id: '3des',
-                                                description: '3des'
-                                            });
-                                            items.push({
                                                 id: 'aes128',
                                                 description: 'aes128'
                                             });
@@ -6048,6 +5764,10 @@
                                                 id: 'aes256',
                                                 description: 'aes256'
                                             });
+                                            items.push({
+                                                id: '3des',
+                                                description: '3des'
+                                            });
                                             args.response.success({
                                                 data: items
                                             });
@@ -6059,13 +5779,25 @@
                                         select: function(args) {
                                             var items = [];
                                             items.push({
-                                                id: 'md5',
-                                                description: 'md5'
-                                            });
-                                            items.push({
                                                 id: 'sha1',
                                                 description: 'sha1'
                                             });
+                                            items.push({
+                                                id: 'sha256',
+                                                description: 'sha256'
+                                            });
+                                            items.push({
+                                                id: 'sha384',
+                                                description: 'sha384'
+                                            });
+                                            items.push({
+                                                id: 'sha512',
+                                                description: 'sha512'
+                                            });
+                                            items.push({
+                                                id: 'md5',
+                                                description: 'md5'
+                                            });
                                             args.response.success({
                                                 data: items
                                             });
@@ -6076,18 +5808,39 @@
                                         docID: 'helpVPNGatewayIKEDH',
                                         select: function(args) {
                                             var items = [];
+                                            //  StrongSwan now requires a DH group to be specified...
+                                            //items.push({
+                                            //    id: '',
+                                            //    description: _l('label.none')
+                                            //});
                                             items.push({
-                                                id: '',
-                                                description: _l('label.none')
+                                                id: 'modp1536',
+                                                description: 'Group 5(modp1536)'
+                                            });
+                                            items.push({
+                                                id: 'modp2048',
+                                                description: 'Group 14(modp2048)'
+                                            });
+                                            items.push({
+                                                id: 'modp3072',
+                                                description: 'Group 15(modp3072)'
+                                            });
+                                            items.push({
+                                                id: 'modp4096',
+                                                description: 'Group 16(modp4096)'
+                                            });
+                                            items.push({
+                                                id: 'modp6144',
+                                                description: 'Group 17(modp6144)'
+                                            });
+                                            items.push({
+                                                id: 'modp8192',
+                                                description: 'Group 18(modp8192)'
                                             });
                                             items.push({
                                                 id: 'modp1024',
                                                 description: 'Group 2(modp1024)'
                                             });
-                                            items.push({
-                                                id: 'modp1536',
-                                                description: 'Group 5(modp1536)'
-                                            });
                                             args.response.success({
                                                 data: items
                                             });
@@ -6101,10 +5854,6 @@
                                         select: function(args) {
                                             var items = [];
                                             items.push({
-                                                id: '3des',
-                                                description: '3des'
-                                            });
-                                            items.push({
                                                 id: 'aes128',
                                                 description: 'aes128'
                                             });
@@ -6116,6 +5865,10 @@
                                                 id: 'aes256',
                                                 description: 'aes256'
                                             });
+                                            items.push({
+                                                id: '3des',
+                                                description: '3des'
+                                            });
                                             args.response.success({
                                                 data: items
                                             });
@@ -6127,13 +5880,25 @@
                                         select: function(args) {
                                             var items = [];
                                             items.push({
-                                                id: 'md5',
-                                                description: 'md5'
-                                            });
-                                            items.push({
                                                 id: 'sha1',
                                                 description: 'sha1'
                                             });
+                                            items.push({
+                                                id: 'sha256',
+                                                description: 'sha256'
+                                            });
+                                            items.push({
+                                                id: 'sha384',
+                                                description: 'sha384'
+                                            });
+                                            items.push({
+                                                id: 'sha512',
+                                                description: 'sha512'
+                                            });
+                                            items.push({
+                                                id: 'md5',
+                                                description: 'md5'
+                                            });
                                             args.response.success({
                                                 data: items
                                             });
@@ -6149,13 +5914,33 @@
                                                 description: _l('label.none')
                                             });
                                             items.push({
-                                                id: 'modp1024',
-                                                description: 'Group 2(modp1024)'
-                                            });
-                                            items.push({
                                                 id: 'modp1536',
                                                 description: 'Group 5(modp1536)'
                                             });
+                                            items.push({
+                                                id: 'modp2048',
+                                                description: 'Group 14(modp2048)'
+                                            });
+                                            items.push({
+                                                id: 'modp3072',
+                                                description: 'Group 15(modp3072)'
+                                            });
+                                            items.push({
+                                                id: 'modp4096',
+                                                description: 'Group 16(modp4096)'
+                                            });
+                                            items.push({
+                                                id: 'modp6144',
+                                                description: 'Group 17(modp6144)'
+                                            });
+                                            items.push({
+                                                id: 'modp8192',
+                                                description: 'Group 18(modp8192)'
+                                            });
+                                            items.push({
+                                                id: 'modp1024',
+                                                description: 'Group 2(modp1024)'
+                                            });
                                             args.response.success({
                                                 data: items
                                             });
@@ -6562,8 +6347,8 @@
                                         success: function(json) {
                                             var item = json.listvpncustomergatewaysresponse.vpncustomergateway[0];
 
-                                            //IKE POlicy
-                                            var a1 = item.ikepolicy.split('-'); //e.g. item.ikepolicy == '3des-md5' or '3des-md5;modp1024'
+                                            //IKE Policy
+                                            var a1 = item.ikepolicy.split('-'); //e.g. item.ikepolicy == '3des-md5;modp1024'
                                             item.ikeEncryption = a1[0];
                                             if (a1[1].indexOf(';') == -1) {
                                                 item.ikeHash = a1[1];
@@ -6710,4 +6495,79 @@
         return data;
     }
 
+    function getForcedInfoAndUpdateNetwork(data) {
+        if (isAdmin()) {
+            cloudStack.dialog.confirm({
+                message: "message.confirm.force.update",
+                action: function() {
+                    $.extend(data, {
+                        forced: true
+                    });
+
+                    $.ajax({
+                        url: createURL('updateNetwork'),
+                        async: false,
+                        data: data,
+                        success: function(json) {
+                            var jid = json.updatenetworkresponse.jobid;
+                            args.response.success({
+                                _custom: {
+                                    jobId: jid,
+                                    getUpdatedItem: function(json) {
+                                        var item = json.queryasyncjobresultresponse.jobresult.network;
+                                        return {
+                                            data: item
+                                        };
+                                    }
+                                }
+                            });
+                        }
+                    });
+                },
+                cancelAction: function() {
+                    $.ajax({
+                        url: createURL('updateNetwork'),
+                        async: false,
+                        data: data,
+                        success: function(json) {
+                            var jid = json.updatenetworkresponse.jobid;
+                            args.response.success({
+                                _custom: {
+                                    jobId: jid,
+                                    getUpdatedItem: function(json) {
+                                        var item = json.queryasyncjobresultresponse.jobresult.network;
+                                        return {
+                                            data: item
+                                        };
+                                    }
+                                }
+                            });
+                        }
+                    });
+                }
+            });
+        }
+        else {
+            $.ajax({
+                url: createURL('updateNetwork'),
+                async: false,
+                data: data,
+                success: function(json) {
+                    var jid = json.updatenetworkresponse.jobid;
+                    args.response.success({
+                        _custom: {
+                            jobId: jid,
+                            getUpdatedItem: function(json) {
+                                var item = json.queryasyncjobresultresponse.jobresult.network;
+                                return {
+                                    data: item
+                                };
+                            }
+                        }
+                    });
+                }
+            });
+        }
+    }
+
 })(cloudStack, jQuery);
diff --git a/ui/scripts/projects.js b/ui/scripts/projects.js
index f980f21..4f992ec 100644
--- a/ui/scripts/projects.js
+++ b/ui/scripts/projects.js
@@ -1013,6 +1013,9 @@
                                         label: 'label.display.name',
                                         isEditable: true
                                     },
+                                    id: {
+                                        label: 'label.id'
+                                    },
                                     domain: {
                                         label: 'label.domain'
                                     },
@@ -1022,6 +1025,28 @@
                                     state: {
                                         label: 'label.state'
                                     }
+                                }, {
+                                    vmtotal: {
+                                        label: 'label.total.vms'
+                                    },
+                                    memorytotal: {
+                                        label: 'label.memory.total'
+                                    },
+                                    cputotal: {
+                                        label: 'label.total.cpu'
+                                    },
+                                    volumetotal: {
+                                        label: 'label.volume'
+                                    },
+                                    primarystoragetotal: {
+                                        label: 'label.primary.storage'
+                                    },
+                                    iptotal: {
+                                        label: 'label.total.of.ip'
+                                    },
+                                    templatetotal: {
+                                        label: 'label.template'
+                                    }
                                 }],
 
                                 tags: cloudStack.api.tags({
diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js
index 88d728e..45b3239 100644
--- a/ui/scripts/sharedFunctions.js
+++ b/ui/scripts/sharedFunctions.js
@@ -932,7 +932,6 @@
                 args.$form.find('.form-item[rel=isPublic]').hide();
             }
             args.$form.find('.form-item[rel=isFeatured]').hide();
-            args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').hide();
         }
     },
     addLoadBalancerDevice: function(args) { //add netscaler device OR add F5 device
@@ -2318,7 +2317,7 @@
     if (parts[1] != Number(parts[1]).toString()) //making sure that "", " ", "00", "0 ","2  ", etc. will not pass
         return false;
 
-    if (Number(parts[1]) < 0 || Number(parts[1] > 32))
+    if (Number(parts[1]) < 0 || Number(parts[1] > 128))
         return false;
 
     return true;
@@ -2344,3 +2343,23 @@
 
     return true;
 }, "The specified IPv4 CIDR is invalid.");
+
+$.validator.addMethod("ipv46cidr", function(value, element) {
+    if (this.optional(element) && value.length == 0)
+        return true;
+
+    if ($.validator.methods.ipv4cidr.call(this, value, element) || $.validator.methods.ipv6cidr.call(this, value, element))
+        return true;
+
+    return false;
+}, "The specified IPv4/IPv6 CIDR is invalid.");
+
+
+$.validator.addMethod("allzonesonly", function(value, element){
+
+    if ((value.indexOf("-1") != -1) &&(value.length > 1))
+        return false;
+    return true;
+
+},
+"All Zones cannot be combined with any other zone");
diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js
index b26e60b..9638f1e 100644
--- a/ui/scripts/storage.js
+++ b/ui/scripts/storage.js
@@ -1289,9 +1289,8 @@
                                     desc: '',
                                     preFilter: function(args) {
                                         if (args.context.volumes[0].hypervisor == "XenServer") {
-                                            if (isAdmin()) {
-                                                args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').css('display', 'inline-block');
-                                            }
+                                            args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').css('display', 'inline-block');
+
                                         }
                                     },
                                     fields: {
@@ -1548,17 +1547,20 @@
                                 createForm: {
                                     title: 'label.action.resize.volume',
                                     preFilter: function(args) {
-                                        if (args.context.volumes != null && args.context.volumes[0].type == 'ROOT') {
+                                        var vol;
+                                        if (args.context.volumes != null) vol = args.context.volumes[0];
+                                        if (vol.type == "ROOT" && (vol.hypervisor == "XenServer" || vol.hypervisor == "KVM" || vol.hypervisor == "VMware")) {
                                             args.$form.find('.form-item[rel=newdiskoffering]').hide();
-
-                                            selectedDiskOfferingObj = null;
+                                            args.$form.find('.form-item[rel=newsize]').css('display', 'inline-block');
                                         } else {
+                                            args.$form.find('.form-item[rel=newdiskoffering]').css('display', 'inline-block');
                                             args.$form.find('.form-item[rel=newsize]').hide();
                                         }
                                     },
                                     fields: {
                                         newdiskoffering: {
                                             label: 'label.resize.new.offering.id',
+                                            isHidden: true,
                                             select: function(args) {
                                                 if (args.context.volumes != null && args.context.volumes[0].type == 'ROOT') {
                                                     args.response.success({
@@ -1586,6 +1588,11 @@
                                                 });
 
                                                 args.$select.change(function() {
+                                                    if(args.context.volumes[0].type == "ROOT") {
+                                                        selectedDiskOfferingObj = null;
+                                                        return;
+                                                    }
+
                                                     var diskOfferingId = $(this).val();
                                                     $(diskofferingObjs).each(function() {
                                                         if (this.id == diskOfferingId) {
@@ -1636,7 +1643,8 @@
                                         shrinkok: {
                                             label: 'label.resize.shrink.ok',
                                             isBoolean: true,
-                                            isChecked: false
+                                            isChecked: false,
+                                            isHidden: true
                                         },
                                         minIops: {
                                             label: 'label.disk.iops.min',
@@ -1658,38 +1666,47 @@
                                 },
                                 action: function(args) {
                                     var array1 = [];
-
-                                    if(args.$form.find('.form-item[rel=shrinkok]').css("display") != "none") {
-                                        array1.push("&shrinkok=" + (args.data.shrinkok == "on"));
-                                    }
-
-                                    var newDiskOffering = args.data.newdiskoffering;
                                     var newSize;
                                     if (selectedDiskOfferingObj == null || 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 (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));
+                                        }
+
+                                        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 (maxIops != null && maxIops.length > 0) {
+                                            array1.push("&maxiops=" + todb(maxIops));
+                                        }
                                     }
 
-                                    var minIops;
-                                    var maxIops;
-
-                                    if (selectedDiskOfferingObj != null && selectedDiskOfferingObj.iscustomizediops == true) {
-                                        minIops = args.data.minIops;
-                                        maxIops = args.data.maxIops;
-                                    }
-
-                                    if (minIops != null && minIops.length > 0) {
-                                        array1.push("&miniops=" + todb(minIops));
-                                    }
-
-                                    if (maxIops != null && maxIops.length > 0) {
-                                        array1.push("&maxiops=" + todb(maxIops));
-                                    }
 
                                     $.ajax({
                                         url: createURL("resizeVolume&id=" + args.context.volumes[0].id + array1.join("")),
@@ -2330,7 +2347,350 @@
                             }
                         }
                     }
-                }
+                },
+            },
+
+            /**
+             * VM Snapshots
+             */
+            vmsnapshots: {
+                type: 'select',
+		title: 'label.vmsnapshot',
+		listView: {
+		    id: 'vmsnapshots',
+		    isMaximized: true,
+		    fields: {
+		        displayname: {
+		            label: 'label.name'
+		        },
+		        state: {
+		            label: 'label.state',
+		            indicator: {
+		                'Ready': 'on',
+		                'Error': 'off'
+		            }
+		        },
+		        type: {
+		            label: 'label.vmsnapshot.type'
+		        },
+		        current: {
+		            label: 'label.vmsnapshot.current',
+		            converter: cloudStack.converters.toBooleanText
+		        },
+		        parentName: {
+		            label: 'label.vmsnapshot.parentname'
+		        },
+		        created: {
+		            label: 'label.date',
+		            converter: cloudStack.converters.toLocalDate
+		        }
+		    },
+
+                    advSearchFields: {
+                        name: {
+                            label: 'label.name'
+                        },
+
+                        domainid: {
+                            label: 'label.domain',
+                            select: function(args) {
+                                if (isAdmin() || isDomainAdmin()) {
+                                    $.ajax({
+                                        url: createURL('listDomains'),
+                                        data: {
+                                            listAll: true,
+                                            details: 'min'
+                                        },
+                                        success: function(json) {
+                                            var array1 = [{
+                                                id: '',
+                                                description: ''
+                                            }];
+                                            var domains = json.listdomainsresponse.domain;
+                                            if (domains != null && domains.length > 0) {
+                                                for (var i = 0; i < domains.length; i++) {
+                                                    array1.push({
+                                                        id: domains[i].id,
+                                                        description: domains[i].path
+                                                    });
+                                                }
+                                            }
+                                            array1.sort(function(a, b) {
+                                                return a.description.localeCompare(b.description);
+                                            });
+                                            args.response.success({
+                                                data: array1
+                                            });
+                                        }
+                                    });
+                                } else {
+                                    args.response.success({
+                                        data: null
+                                    });
+                                }
+                            },
+                            isHidden: function(args) {
+                                if (isAdmin() || isDomainAdmin())
+                                    return false;
+                                else
+                                    return true;
+                            }
+                        },
+
+                        account: {
+                            label: 'label.account',
+                            isHidden: function(args) {
+                                if (isAdmin() || isDomainAdmin())
+                                    return false;
+                                else
+                                    return true;
+                            }
+                        },
+                        tagKey: {
+                            label: 'label.tag.key'
+                        },
+                        tagValue: {
+                            label: 'label.tag.value'
+                        }
+                    },
+
+		    dataProvider: function(args) {
+                        var data = {};
+                        listViewDataProvider(args, data);
+
+		        if (args.context != null) {
+		            if ("instances" in args.context) {
+                                $.extend(data, {
+                                    virtualMachineId: args.context.instances[0].id
+                                });
+		            }
+		        }
+		        $.ajax({
+		            url: createURL('listVMSnapshot&listAll=true'),
+                            data: data,
+		            dataType: "json",
+		            async: true,
+		            success: function(json) {
+		                var jsonObj;
+		                jsonObj = json.listvmsnapshotresponse.vmSnapshot;
+		                args.response.success({
+                                    actionFilter: vmSnapshotActionfilter,
+		                    data: jsonObj
+		                });
+		            }
+		        });
+		    },
+		    //dataProvider end
+		    detailView: {
+		        tabs: {
+		            details: {
+		                title: 'label.details',
+		                fields: {
+		                    id: {
+		                        label: 'label.id'
+		                    },
+		                    name: {
+		                        label: 'label.name'
+		                    },
+		                    displayname: {
+		                        label: 'label.display.name'
+		                    },
+		                    type: {
+		                        label: 'label.vmsnapshot.type'
+		                    },
+		                    description: {
+		                        label: 'label.description'
+		                    },
+		                    state: {
+		                        label: 'label.state',
+		                        indicator: {
+		                            'Ready': 'on',
+		                            'Error': 'off'
+		                        }
+		                    },
+		                    current: {
+		                        label: 'label.vmsnapshot.current',
+		                        converter: cloudStack.converters.toBooleanText
+		                    },
+		                    parentName: {
+		                        label: 'label.vmsnapshot.parentname'
+		                    },
+                                    domain: {
+                                        label: 'label.domain'
+                                    },
+                                    account: {
+                                        label: 'label.account'
+                                    },
+                                    virtualmachineid: {
+                                        label: 'label.vm.id'
+                                    },
+		                    created: {
+		                        label: 'label.date',
+		                        converter: cloudStack.converters.toLocalDate
+		                    }
+		                },
+		                dataProvider: function(args) {
+		                    $.ajax({
+		                        url: createURL("listVMSnapshot&listAll=true&vmsnapshotid=" + args.context.vmsnapshots[0].id),
+		                        dataType: "json",
+		                        async: true,
+		                        success: function(json) {
+		                            var jsonObj;
+		                            jsonObj = json.listvmsnapshotresponse.vmSnapshot[0];
+		                            args.response.success({
+                                                actionFilter: vmSnapshotActionfilter,
+		                                data: jsonObj
+		                            });
+		                        }
+		                    });
+		                },
+		                tags: cloudStack.api.tags({
+		                    resourceType: 'VMSnapshot',
+		                    contextId: 'vmsnapshots'
+		                })
+		            }
+		        },
+		        actions: {
+		            //delete a snapshot
+		            remove: {
+		                label: 'label.action.vmsnapshot.delete',
+		                messages: {
+		                    confirm: function(args) {
+		                        return 'message.action.vmsnapshot.delete';
+		                    },
+		                    notification: function(args) {
+		                        return 'label.action.vmsnapshot.delete';
+		                    }
+		                },
+		                action: function(args) {
+		                    $.ajax({
+		                        url: createURL("deleteVMSnapshot&vmsnapshotid=" + args.context.vmsnapshots[0].id),
+		                        dataType: "json",
+		                        async: true,
+		                        success: function(json) {
+		                            var jid = json.deletevmsnapshotresponse.jobid;
+		                            args.response.success({
+		                                _custom: {
+		                                    jobId: jid
+		                                }
+		                            });
+		                        }
+		                    });
+		                },
+		                notification: {
+		                    poll: pollAsyncJobResult
+		                }
+		            },
+		            revertToVMSnapshot: {
+		                label: 'label.action.vmsnapshot.revert',
+		                messages: {
+		                    confirm: function(args) {
+		                        return 'label.action.vmsnapshot.revert';
+		                    },
+		                    notification: function(args) {
+		                        return 'message.action.vmsnapshot.revert';
+		                    }
+		                },
+		                action: function(args) {
+		                    $.ajax({
+		                        url: createURL("revertToVMSnapshot&vmsnapshotid=" + args.context.vmsnapshots[0].id),
+		                        dataType: "json",
+		                        async: true,
+		                        success: function(json) {
+		                            var jid = json.reverttovmsnapshotresponse.jobid;
+		                            args.response.success({
+		                                _custom: {
+		                                    jobId: jid
+		                                }
+		                            });
+		                        }
+		                    });
+
+		                },
+		                notification: {
+		                    poll: pollAsyncJobResult
+		                }
+		            },
+		            takeSnapshot: {
+		                label: 'Create Snapshot From VM Snapshot',
+		                messages: {
+		                    confirm: function(args) {
+		                        return 'Please confirm that you want to create a volume snapshot from the vm snapshot.';
+		                    },
+		                    notification: function(args) {
+		                        return 'Volume snapshot is created from vm snapshot';
+		                    }
+		                },
+		                createForm: {
+		                    title: 'label.action.take.snapshot',
+		                    desc: 'message.action.take.snapshot',
+		                    fields: {
+		                        name: {
+		                            label: 'label.name',
+		                        },
+                                        volume: {
+                                            label: 'label.volume',
+                                            validation: {
+                                                required: true
+                                            },
+                                            select: function(args) {
+                                                $.ajax({
+                                                    url: createURL("listVolumes&virtualMachineId=" + args.context.vmsnapshots[0].virtualmachineid),
+                                                    dataType: "json",
+                                                    async: true,
+                                                    success: function(json) {
+                                                        var volumes = json.listvolumesresponse.volume;
+                                                        var items = [];
+                                                        $(volumes).each(function() {
+                                                            items.push({
+                                                                id: this.id,
+                                                                description: this.name
+                                                            });
+                                                        });
+                                                        args.response.success({
+                                                            data: items
+                                                        });
+
+                                                    }
+                                                });
+                                            }
+                                        }
+		                    }
+		                },
+		                action: function(args) {
+		                    var data = {
+                                        volumeid: args.data.volume,
+		                        vmsnapshotid: args.context.vmsnapshots[0].id
+		                    };
+		                    if (args.data.name != null && args.data.name.length > 0) {
+		                        $.extend(data, {
+		                            name: args.data.name
+		                        });
+		                    }
+		                    $.ajax({
+		                        url: createURL("createSnapshotFromVMSnapshot"),
+		                        data: data,
+		                        dataType: "json",
+		                        async: true,
+		                        success: function(json) {
+		                            var jid = json.createsnapshotfromvmsnapshotresponse.jobid;
+		                            args.response.success({
+		                                _custom: {
+		                                    jobId: jid
+		                                }
+		                            });
+		                        }
+		                    });
+
+		                },
+		                notification: {
+		                    poll: pollAsyncJobResult
+		                }
+		            }
+		        }
+		    }
+		    //detailview end
+		}
             }
         }
     };
@@ -2365,7 +2725,7 @@
             }
         }
 
-        if (jsonObj.state == "Ready" || jsonObj.state == "Allocated") {
+        if ((jsonObj.type == "DATADISK"  || jsonObj.type == "ROOT") && (jsonObj.state == "Ready" || jsonObj.state == "Allocated")) {
             allowedActions.push("resize");
         }
 
@@ -2375,6 +2735,8 @@
             }
         }
 
+
+
         if (jsonObj.type == "ROOT" || jsonObj.type == "DATADISK") {
             if (jsonObj.state == "Ready" && isAdmin() && jsonObj.virtualmachineid != null) {
                 allowedActions.push("migrateVolume");
@@ -2423,6 +2785,23 @@
         allowedActions.push("remove");
 
         return allowedActions;
+    };
+
+    var vmSnapshotActionfilter = cloudStack.actionFilter.vmSnapshotActionfilter = function(args) {
+        var jsonObj = args.context.item;
+
+        if (jsonObj.state == 'Error') {
+            return ["remove"];
+        }
+
+        var allowedActions = [];
+        if (jsonObj.state == "Ready") {
+            allowedActions.push("remove");
+            allowedActions.push("revertToVMSnapshot");
+            allowedActions.push("takeSnapshot");
+        }
+
+        return allowedActions;
     }
 
 })(cloudStack);
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 5264b22..9cff595 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -19740,21 +19740,6 @@
                                             zonename: {
                                                 label: 'label.zone'
                                             },
-                                            details: {
-                                                label: 'label.details',
-                                                converter: function (array1) {
-                                                    var string1 = '';
-                                                    if (array1 != null) {
-                                                        for (var i = 0; i < array1.length; i++) {
-                                                            if (i > 0)
-                                                            string1 += ', ';
-
-                                                            string1 += array1[i].name + ': ' + array1[i].value;
-                                                        }
-                                                    }
-                                                    return string1;
-                                                }
-                                            },
                                             id: {
                                                 label: 'label.id'
                                             }
@@ -19775,28 +19760,58 @@
                                                 }
                                             });
                                         }
-                                    }
-
-                                    // Granular settings for storage pool for secondary storage is not required
-                                    /*  settings: {
-                                    title: 'label.menu.global.settings',
-                                    custom: cloudStack.uiCustom.granularSettings({
-                                    dataProvider: function(args) {
-                                    args.response.success({
-                                    data: [
-                                    { name: 'config.param.1', value: 1 },
-                                    { name: 'config.param.2', value: 2 }
-                                    ]
-                                    });
                                     },
-                                    actions: {
-                                    edit: function(args) {
-                                    // call updateStorageLevelParameters
-                                    args.response.success();
-                                    }
-                                    }
-                                    })
-                                    } */
+
+                                    // Granular settings for image store
+									settings: {
+										title: 'label.settings',
+										custom: cloudStack.uiCustom.granularSettings({
+											dataProvider: function (args) {
+
+												$.ajax({
+													url: createURL('listConfigurations&imagestoreuuid=' + args.context.secondaryStorage[0].id),
+													data: listViewDataProvider(args, {
+													},
+													{
+														searchBy: 'name'
+													}),
+													success: function (json) {
+														args.response.success({
+															data: json.listconfigurationsresponse.configuration
+														});
+													},
+
+													error: function (json) {
+														args.response.error(parseXMLHttpResponse(json));
+													}
+												});
+											},
+											actions: {
+												edit: function (args) {
+													// call updateStorageLevelParameters
+													var data = {
+														name: args.data.jsonObj.name,
+														value: args.data.value
+													};
+
+													$.ajax({
+														url: createURL('updateConfiguration&imagestoreuuid=' + args.context.secondaryStorage[0].id),
+														data: data,
+														success: function (json) {
+															var item = json.updateconfigurationresponse.configuration;
+															args.response.success({
+																data: item
+															});
+														},
+
+														error: function (json) {
+															args.response.error(parseXMLHttpResponse(json));
+														}
+													});
+												}
+											}
+										})
+									}
                                 }
                             }
                         }
diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js
old mode 100644
new mode 100755
index ce78564..1ab1b9b
--- a/ui/scripts/templates.js
+++ b/ui/scripts/templates.js
@@ -35,7 +35,7 @@
                     filters: {
                         all: {
                             preFilter: function(args) {
-                                if (isAdmin()) //"listTemplates&templatefilter=all" only works for root-admin, but no domain-admin. Domain-admin is unable to see all templates until listTemplates API supports a new type of templatefilter for domain-admin to see all templates in his domain.
+                                if (isAdmin()|| isDomainAdmin()) //"listTemplates&templatefilter=all" only for root-admin and domain-admin. Domain-admin is able to see all templates in his domain.
                                     return true;
                                 else
                                     return false;
@@ -137,6 +137,10 @@
                                     zone: {
                                         label: 'label.zone',
                                         docID: 'helpRegisterTemplateZone',
+                                        isMultiple: true,
+                                        validation: {
+                                            allzonesonly: true
+                                        },
                                         select: function(args) {
                                             if(g_regionsecondaryenabled == true) {
                                                 args.response.success({
@@ -182,60 +186,91 @@
                                         select: function(args) {
                                             if (args.zone == null)
                                                 return;
+                                            // We want only distinct Hypervisor entries to be visible to the user
+                                            var items = [];
+                                            var distinctHVNames = [];
+                                            var length = 1;
+                                            // When only one zone is selected, args.zone is NOT an array.
+                                            if (Object.prototype.toString.call( args.zone ) === '[object Array]')
+                                                length = args.zone.length;
+                                            for (var index = 0; index < length; index++)
+                                            {
+                                                var zoneId;
+                                                if (length == 1)
+                                                        zoneId = args.zone;
+                                                else
+                                                        zoneId = args.zone[index];
 
-                                            var apiCmd;
-                                            if (args.zone == -1) { //All Zones
-                                                //apiCmd = "listHypervisors&zoneid=-1"; //"listHypervisors&zoneid=-1" has been changed to return only hypervisors available in all zones (bug 8809)
-                                                apiCmd = "listHypervisors";
-                                            }
-                                            else {
-                                                apiCmd = "listHypervisors&zoneid=" + args.zone;
-                                            }
-
-                                            $.ajax({
-                                                url: createURL(apiCmd),
-                                                dataType: "json",
-                                                async: false,
-                                                success: function(json) {
-                                                    var hypervisorObjs = json.listhypervisorsresponse.hypervisor;
-                                                    var items = [];
-                                                    $(hypervisorObjs).each(function() {
-                                                        items.push({
-                                                            id: this.name,
-                                                            description: this.name
-                                                        });
-                                                    });
-                                                    args.response.success({
-                                                        data: items
-                                                    });
+                                                var apiCmd;
+                                                if (zoneId == -1) { //All Zones
+                                                    apiCmd = "listHypervisors";
                                                 }
-                                            });
+                                                else {
+                                                    apiCmd = "listHypervisors&zoneid=" + zoneId;
+                                                }
 
+                                                $.ajax({
+                                                    url: createURL(apiCmd),
+                                                    dataType: "json",
+                                                    async: false,
+                                                    success: function(json) {
+                                                        var hypervisorObjs = json.listhypervisorsresponse.hypervisor;
+
+                                                        $(hypervisorObjs).each(function() {
+                                                        // Only if this hypervisor isn't already part of this
+                                                        // list, then add to the drop down
+                                                           if (distinctHVNames.indexOf(this.name) < 0 ){
+                                                               distinctHVNames.push(this.name);
+                                                               items.push({
+                                                                   id: this.name,
+                                                                   description: this.name
+                                                               });
+                                                           }
+                                                        });
+                                                    }
+                                                });
+                                            }
                                             args.$select.change(function() {
                                                 var $form = $(this).closest('form');
                                                 if ($(this).val() == "VMware") {
                                                     $form.find('.form-item[rel=rootDiskControllerType]').css('display', 'inline-block');
                                                     $form.find('.form-item[rel=nicAdapterType]').css('display', 'inline-block');
                                                     $form.find('.form-item[rel=keyboardType]').css('display', 'inline-block');
-
                                                     $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide();
+                                                    $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide();
                                                 } else if ($(this).val() == "XenServer") {
                                                     $form.find('.form-item[rel=rootDiskControllerType]').hide();
                                                     $form.find('.form-item[rel=nicAdapterType]').hide();
                                                     $form.find('.form-item[rel=keyboardType]').hide();
+                                                    $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide();
 
                                                     if (isAdmin())
                                                         $form.find('.form-item[rel=xenserverToolsVersion61plus]').css('display', 'inline-block');
+                                                } else if ($(this).val() == "KVM") {
+                                                    $form.find('.form-item[rel=rootDiskControllerType]').hide();
+                                                    $form.find('.form-item[rel=nicAdapterType]').hide();
+                                                    $form.find('.form-item[rel=keyboardType]').hide();
+                                                    $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide();
+                                                    $form.find('.form-item[rel=rootDiskControllerTypeKVM]').css('display', 'inline-block');
+                                                    $form.find('.form-item[rel=xenserverToolsVersion61plus]').css('display', 'inline-block');
                                                 } else {
                                                     $form.find('.form-item[rel=rootDiskControllerType]').hide();
                                                     $form.find('.form-item[rel=nicAdapterType]').hide();
                                                     $form.find('.form-item[rel=keyboardType]').hide();
-
                                                     $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide();
+                                                    $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide();
                                                 }
                                             });
 
+                                            items.push({
+                                                id: "Any",
+                                                description: "Any"
+                                            });
+                                            args.response.success({
+                                                data: items
+                                            });
                                             args.$select.trigger('change');
+
                                         }
                                     },
 
@@ -243,7 +278,7 @@
                                         label: 'label.xenserver.tools.version.61.plus',
                                         isBoolean: true,
                                         isChecked: function (args) {
-                                            var b = false;
+                                             var b = true;
                                             if (isAdmin()) {
                                                 $.ajax({
                                                     url: createURL('listConfigurations'),
@@ -252,8 +287,8 @@
                                                     },
                                                     async: false,
                                                     success: function (json) {
-                                                        if (json.listconfigurationsresponse.configuration != null && json.listconfigurationsresponse.configuration[0].value == 'xenserver61') {
-                                                            b = true;
+                                                        if (json.listconfigurationsresponse.configuration != null && json.listconfigurationsresponse.configuration[0].value != 'xenserver61') {
+                                                            b = false;
                                                         }
                                                     }
                                                 });
@@ -263,6 +298,38 @@
                                         isHidden: true
                                     },
 
+                                    //fields for hypervisor == "KVM" (starts here)
+                                    rootDiskControllerTypeKVM: {
+                                        label: 'label.root.disk.controller',
+                                        isHidden: true,
+                                        select: function(args) {
+                                            var items = []
+                                            items.push({
+                                                id: "",
+                                                description: ""
+                                            });
+                                            items.push({
+                                                id: "ide",
+                                                description: "ide"
+                                            });
+                                            items.push({
+                                                id: "osdefault",
+                                                description: "osdefault"
+                                            });
+                                            items.push({
+                                                id: "scsi",
+                                                description: "virtio-scsi"
+                                            });
+                                            items.push({
+                                                id: "virtio",
+                                                description: "virtio"
+                                            });
+                                            args.response.success({
+                                                data: items
+                                            });
+                                        }
+                                    },
+
                                     //fields for hypervisor == "VMware" (starts here)
                                     rootDiskControllerType: {
                                         label: 'label.root.disk.controller',
@@ -504,11 +571,17 @@
                             },
 
                             action: function(args) {
+                                var zones = "";
+                                if (Object.prototype.toString.call( args.data.zone ) === '[object Array]'){
+                                    zones = args.data.zone.join(",");
+                                }
+                                else
+                                    zones = args.data.zone;
                                 var data = {
                                     name: args.data.name,
                                     displayText: args.data.description,
                                     url: args.data.url,
-                                    zoneid: args.data.zone,
+                                    zoneids: zones,
                                     format: args.data.format,
                                     isextractable: (args.data.isExtractable == "on"),
                                     passwordEnabled: (args.data.isPasswordEnabled == "on"),
@@ -549,6 +622,14 @@
                                 }
                                 //XenServer only (ends here)
 
+                                // KVM only (starts here)
+                                if (args.$form.find('.form-item[rel=rootDiskControllerTypeKVM]').css("display") != "none" && args.data.rootDiskControllerTypeKVM != "") {
+                                    $.extend(data, {
+                                        'details[0].rootDiskController': args.data.rootDiskControllerTypeKVM
+                                    });
+                                }
+                                // KVM only (ends here)
+
                                 //VMware only (starts here)
                                 if (args.$form.find('.form-item[rel=rootDiskControllerType]').css("display") != "none" && args.data.rootDiskControllerType != "") {
                                     $.extend(data, {
@@ -1483,9 +1564,6 @@
                                              copyTemplate: {
                                                  label: 'label.action.copy.template',
                                                  messages: {
-                                                     confirm: function(args) {
-                                                         return 'message.copy.template.confirm';
-                                                     },
                                                      success: function(args) {
                                                          return 'message.template.copying';
                                                      },
@@ -1493,76 +1571,102 @@
                                                          return 'label.action.copy.template';
                                                      }
                                                  },
-                                                 createForm: {
-                                                     title: 'label.action.copy.template',
-                                                     desc: '',
-                                                     fields: {
-                                                         destinationZoneId: {
-                                                             label: 'label.destination.zone',
-                                                             docID: 'helpCopyTemplateDestination',
-                                                             validation: {
-                                                                 required: true
-                                                             },
-                                                             select: function(args) {
-                                                                 $.ajax({
-                                                                     url: createURL("listZones&available=true"),
-                                                                     dataType: "json",
-                                                                     async: true,
-                                                                     success: function(json) {
-                                                                         var zoneObjs = [];
-                                                                         var items = json.listzonesresponse.zone;
-                                                                         if (items != null) {
-                                                                             for (var i = 0; i < items.length; i++) {
-                                                                                 if (args.context.zones[0].zoneid != items[i].id) {
-                                                                                     zoneObjs.push({
-                                                                                         id: items[i].id,
-                                                                                         description: items[i].name
+                                                action: {
+                                                    custom: cloudStack.uiCustom.copyTemplate({
+                                                        listView: {
+                                                            listView: {
+                                                                id: 'destinationZones',
+                                                                fields: {
+                                                                    destinationZoneName: {
+                                                                        label: 'label.name'
+                                                                    }
+                                                                },
+                                                                dataProvider: function(args) {
+                                                                     var data = {
+                                                                        page: args.page,
+                                                                        pagesize: pageSize
+                                                                    };
+                                                                    if (args.filterBy.search.value) {
+                                                                        data.keyword = args.filterBy.search.value;
+                                                                    }
+                                                                     $.ajax({
+                                                                             url: createURL("listZones&available=true"),
+                                                                             dataType: "json",
+                                                                             data: data,
+                                                                             async: true,
+                                                                             success: function(json) {
+                                                                                 var zoneObjs = [];
+                                                                                 var items = json.listzonesresponse.zone;
+                                                                                 if (items != null) {
+                                                                                     for (var i = 0; i < items.length; i++) {
+                                                                                         if (args.context.zones[0].zoneid != items[i].id) {
+                                                                                             zoneObjs.push({
+                                                                                                 id: items[i].id,
+                                                                                                 destinationZoneName: items[i].name
+                                                                                             });
+                                                                                         }
+                                                                                     }
+                                                                                     args.response.success({
+                                                                                         data: zoneObjs
                                                                                      });
-                                                                                 }
+                                                                                }else if(args.page == 1) {
+							                             args.response.success({
+                                                                                         data: []
+                                                                                     }); 
+                                                                            } else {
+							                             args.response.success({
+                                                                                         data: []
+                                                                                     }); 
+                                                                            }
+                                                                        }
+                                                                    });
+                                                                }
+                                                            }
+                                                        },
+                                                        action: function(args) {
+                                                            var zoneids = "";
+                                                            if (args.context.selectedZone != null &&
+                                                                    args.context.selectedZone.length > 0) {
+                                                                for (var i = 0; i < args.context.selectedZone.length; i++){
+                                                                    if (i != 0 )
+                                                                        zoneids += ",";
+                                                                    zoneids += args.context.selectedZone[i].id;
+                                                                }
+                                                            }
+                                                            if (zoneids == "")
+                                                                return;
+                                                            var data = {
+                                                                 id: args.context.templates[0].id,
+                                                                 destzoneids: zoneids,
+                                                                 sourcezoneid: args.context.zones[0].zoneid
+                                                            };
+
+                                                             $.ajax({
+                                                                 url: createURL('copyTemplate'),
+                                                                 data: data,
+                                                                 success: function(json) {
+                                                                     var jid = json.copytemplateresponse.jobid;
+                                                                     args.response.success({
+                                                                         _custom: {
+                                                                             jobId: jid,
+                                                                             getUpdatedItem: function(json) {
+                                                                                 return {}; //nothing in this template needs to be updated
+                                                                             },
+                                                                             getActionFilter: function() {
+                                                                                 return templateActionfilter;
                                                                              }
                                                                          }
-                                                                         args.response.success({
-                                                                             data: zoneObjs
-                                                                         });
-                                                                     }
-                                                                 });
-                                                             }
-                                                         }
-                                                     }
-                                                 },
-                                                 action: function(args) {
-                                                     var data = {
-                                                         id: args.context.templates[0].id,
-                                                         destzoneid: args.data.destinationZoneId
-                                                     };
-                                                     $.extend(data, {
-                                                         sourcezoneid: args.context.zones[0].zoneid
-                                                     });
-
-                                                     $.ajax({
-                                                         url: createURL('copyTemplate'),
-                                                         data: data,
-                                                         success: function(json) {
-                                                             var jid = json.copytemplateresponse.jobid;
-                                                             args.response.success({
-                                                                 _custom: {
-                                                                     jobId: jid,
-                                                                     getUpdatedItem: function(json) {
-                                                                         return {}; //nothing in this template needs to be updated
-                                                                     },
-                                                                     getActionFilter: function() {
-                                                                         return templateActionfilter;
-                                                                     }
+                                                                     });
                                                                  }
                                                              });
                                                          }
-                                                     });
+                                                    })
                                                  },
                                                  notification: {
                                                      poll: pollAsyncJobResult
                                                  }
-                                             }
-                                    },
+                                            }
+                                        },
 
                                     tabs: {
                                         details: {
@@ -1784,8 +1888,125 @@
                                         }
                                     }}
                                 }
-                            }
-                        }
+                            },
+                            /**
+							 * Settings tab
+							 */
+							settings: {
+								title: 'label.settings',
+								custom: cloudStack.uiCustom.granularDetails({
+									dataProvider: function(args) {
+										$.ajax({
+											url: createURL('listTemplates'),
+											data: {
+												templatefilter: "self",
+												id: args.context.templates[0].id
+											},
+											success: function(json) {
+												var details = json.listtemplatesresponse.template[0].details;
+												var listDetails = [];
+												for (detail in details){
+													var det = {};
+													det["name"] = detail;
+													det["value"] = details[detail];
+													listDetails.push(det);
+												}
+												args.response.success({
+													data: listDetails
+												});
+											},
+
+											error: function(json) {
+												args.response.error(parseXMLHttpResponse(json));
+											}
+										});
+
+									},
+									actions: {
+										edit: function(args) {
+											var data = {
+												name: args.data.jsonObj.name,
+												value: args.data.value
+											};
+											var existingDetails = args.context.templates[0].details;
+											var newDetails = '';
+											for (d in existingDetails) {
+												if (d != data.name) {
+													newDetails += 'details[0].' + d + '=' + existingDetails[d] + '&';
+												}
+											}
+											newDetails += 'details[0].' + data.name + '=' + data.value;
+											
+											$.ajax({
+												url: createURL('updateTemplate&id=' + args.context.templates[0].id + '&' + newDetails),
+												success: function(json) {
+													var template = json.updatetemplateresponse.template;
+													args.context.templates[0].details = template.details;
+													args.response.success({
+														data: template.details
+													});
+												},
+
+												error: function(json) {
+													args.response.error(parseXMLHttpResponse(json));
+												}
+											});
+										},
+										remove: function(args) {
+											var existingDetails = args.context.templates[0].details;
+											var detailToDelete = args.data.jsonObj.name;
+											var newDetails = ''
+											for (detail in existingDetails) {
+												if (detail != detailToDelete) {
+													newDetails += 'details[0].' + detail + '=' + existingDetails[detail] + '&';
+												}
+											}
+											if (newDetails != '') {
+												newDetails = newDetails.substring(0, newDetails.length - 1);
+											}
+											else {
+												newDetails += 'cleanupdetails=true';
+											}
+											$.ajax({
+												url: createURL('updateTemplate&id=' + args.context.templates[0].id + '&' + newDetails),
+												success: function(json) {
+													var template = json.updatetemplateresponse.template;
+													args.context.templates[0].details = template.details;
+													args.response.success({
+														data: template.details
+													});
+												},
+												error: function(json) {
+													args.response.error(parseXMLHttpResponse(json));
+												}
+											});
+										},
+										add: function(args) {
+											var name = args.data.name;
+											var value = args.data.value;
+											var details = args.context.templates[0].details;
+											var detailsFormat = '';
+											for (key in details) {
+												detailsFormat += "details[0]." + key + "=" + details[key] + "&";
+											}
+											// Add new detail to the existing ones
+											detailsFormat += "details[0]." + name + "=" + value;
+											$.ajax({
+												url: createURL('updateTemplate&id=' + args.context.templates[0].id + "&" + detailsFormat),
+												async: false,
+												success: function(json) {
+													var template = json.updatetemplateresponse.template;
+													args.context.templates[0].details = template.details;
+													args.response.success({
+														data: template.details
+													});
+												}
+											});
+										}
+									}
+								})
+							}
+						}
                     }
                 }
             },
@@ -1797,7 +2018,7 @@
                     filters: {
                         all: {
                             preFilter: function(args) {
-                                if (isAdmin()) //"listIsos&filter=all" only works for root-admin, but no domain-admin. Domain-admin is unable to see all Isos until listIsos API supports a new type of isofilter for domain-admin to see all Isos in his domain.
+                                if (isAdmin()||isDomainAdmin()) //"listIsos&filter=all" works for root-admin and domain-admin. Domain-admin is able to see all Isos in his domain.
                                     return true;
                                 else
                                     return false;
diff --git a/ui/scripts/ui-custom/copyTemplate.js b/ui/scripts/ui-custom/copyTemplate.js
new file mode 100644
index 0000000..60125fe
--- /dev/null
+++ b/ui/scripts/ui-custom/copyTemplate.js
@@ -0,0 +1,130 @@
+// 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.
+(function(cloudStack, $) {
+    cloudStack.uiCustom.copyTemplate = function(args) {
+        var listView = args.listView;
+        var action = args.action;
+
+        return function(args) {
+            var context = args.context;
+
+            var destZoneList = function(args) {
+                var $listView;
+
+                var destZones = $.extend(true, {}, args.listView, {
+                    context: context,
+                    uiCustom: true
+                });
+
+                destZones.listView.actions = {
+                    select: {
+                        label: _l('label.select.zone'),
+                        type: 'checkbox',
+                        action: {
+                            uiCustom: function(args) {
+                                var $item = args.$item;
+                                var $input = $item.find('td.actions input:visible');
+
+                                if ($input.attr('type') == 'checkbox') {
+                                    if ($input.is(':checked'))
+                                        $item.addClass('multi-edit-selected');
+                                    else
+                                        $item.removeClass('multi-edit-selected');
+                                } else {
+                                    $item.siblings().removeClass('multi-edit-selected');
+                                    $item.addClass('multi-edit-selected');
+                                }
+                            }
+                        }
+                    }
+                };
+
+                $listView = $('<div>').listView(destZones);
+
+                // Change action label
+                $listView.find('th.actions').html(_l('label.select'));
+
+                return $listView;
+            };
+
+            var $dataList = destZoneList({
+                listView: listView
+            }).dialog({
+                dialogClass: 'multi-edit-add-list panel copy-template-destination-list',
+                width: 625,
+                draggable: false,
+                title: _l('label.action.copy.template'),
+                buttons: [{
+                    text: _l('label.ok'),
+                    'class': 'ok copytemplateok',
+                    click: function() {
+                        var complete = args.complete;
+                         var selectedZoneObj = [];
+                        $dataList.find('tr.multi-edit-selected').map(function(index, elem) {
+                                var itemData = $(elem).data('json-obj');
+                                selectedZoneObj.push(itemData)        ;
+                                });
+                        if(selectedZoneObj != undefined) {
+                            $dataList.fadeOut(function() {
+                                action({
+                                    context: $.extend(true, {}, context, {
+                                        selectedZone: selectedZoneObj
+                                    }),
+                                    response: {
+                                        success: function(args) {
+                                            complete({
+                                                _custom: args._custom,
+                                                $item: $('<div>'),
+                                            });
+                                        },
+                                        error: function(args) {
+                                            cloudStack.dialog.notice({
+                                                message: args
+                                            });
+                                        }
+                                    }
+                                });
+                            });
+
+                            $('div.overlay').fadeOut(function() {
+                                $('div.overlay').remove();
+                            });
+                        }
+                        else {
+                            cloudStack.dialog.notice({
+				 message: _l('message.template.copy.select.zone')
+                            });
+                        }
+
+                    }
+                }, {
+                    text: _l('label.cancel'),
+                    'class': 'cancel copytemplatecancel',
+                    click: function() {
+                        $dataList.fadeOut(function() {
+                            $dataList.remove();
+                        });
+                        $('div.overlay').fadeOut(function() {
+                            $('div.overlay').remove();
+                            $(':ui-dialog').dialog('destroy');
+                        });
+                    }
+                }]
+            }).parent('.ui-dialog').overlay();
+        };
+    };
+}(cloudStack, jQuery));
diff --git a/ui/scripts/ui-custom/granularSettings.js b/ui/scripts/ui-custom/granularSettings.js
index 5ab60b7..5312394 100644
--- a/ui/scripts/ui-custom/granularSettings.js
+++ b/ui/scripts/ui-custom/granularSettings.js
@@ -54,4 +54,88 @@
             return $listView;
         }
     };
-}(jQuery, cloudStack));
+	cloudStack.uiCustom.granularDetails = function(args) {
+        var dataProvider = args.dataProvider;
+        var actions = args.actions;
+
+        return function(args) {
+            var context = args.context;
+
+            var listView = {
+                id: 'details',
+                fields: {
+                    name: {
+                        label: 'label.name'
+                    },
+                    value: {
+                        label: 'label.value',
+                        editable: true
+                    }
+                },
+                actions: {
+                    edit: {
+                        label: 'label.change.value',
+                        action: actions.edit
+                    },
+					remove: {
+						label: 'Remove Setting',
+						messages: {
+							confirm: function(args) {
+								return 'Delete Setting';
+							},
+							notification: function(args) {
+								return 'Setting deleted';
+							}
+						},
+						action: actions.remove,
+						notification: {
+							poll: function(args) {
+								args.complete();
+							}
+						}
+					},
+					add : {
+						label: 'Add Setting',
+						messages: {
+							confirm: function(args) {
+								return 'Add Setting';
+							},
+							notification: function(args) {
+								return 'Setting added';
+							}
+						},
+						preFilter: function(args) {
+							return true;
+						},
+						createForm: {
+							title: 'Add New Setting',
+							fields: {
+								name: {
+									label: 'label.name',
+									validation: {
+										required: true
+									}
+								},
+								value: {
+									label: 'label.value',
+									validation: {
+										required: true
+									}
+								}
+							}
+						},
+						action: actions.add
+					}
+                },
+                dataProvider: dataProvider
+            };
+
+            var $listView = $('<div>').listView({
+                context: context,
+                listView: listView
+            });
+
+            return $listView;
+        }
+    };
+}(jQuery, cloudStack));
\ No newline at end of file
diff --git a/ui/scripts/ui-custom/instanceWizard.js b/ui/scripts/ui-custom/instanceWizard.js
index f9f0781..23c7bf5 100644
--- a/ui/scripts/ui-custom/instanceWizard.js
+++ b/ui/scripts/ui-custom/instanceWizard.js
@@ -435,22 +435,22 @@
                                         var $target = $(this);
                                         var val = $target.val();
                                         var item = null;
-                                        if (item == null) {
+                                        if (item == null && args.data.templates.featuredtemplates != undefined) {
                                             item = $.grep(args.data.templates.featuredtemplates, function(elem) {
                                                 return elem.id == val;
                                             })[0];
                                         }
-                                        if (item == null) {
+                                        if (item == null && args.data.templates.communitytemplates != undefined) {
                                             item = $.grep(args.data.templates.communitytemplates, function(elem) {
                                                 return elem.id == val;
                                             })[0];
                                         }
-                                        if (item == null) {
+                                        if (item == null && args.data.templates.mytemplates!=undefined) {
                                             item = $.grep(args.data.templates.mytemplates, function(elem) {
                                                 return elem.id == val;
                                             })[0];
                                         }
-                                        if (item == null) {
+                                        if (item == null && args.data.templates.sharedtemplates!=undefined) {
                                             item = $.grep(args.data.templates.sharedtemplates, function(elem) {
                                                 return elem.id == val;
                                             })[0];
@@ -459,7 +459,7 @@
                                         if (!item) return true;
 
                                         var hypervisor = item['hypervisor'];
-                                        if (hypervisor == 'KVM') {
+                                        if (hypervisor == 'KVM' || hypervisor == 'XenServer' || hypervisor == 'VMware') {
                                             $step.find('.section.custom-size').show();
                                             $step.addClass('custom-disk-size');
                                         } else {
diff --git a/ui/scripts/ui-custom/migrate.js b/ui/scripts/ui-custom/migrate.js
new file mode 100644
index 0000000..fa94070
--- /dev/null
+++ b/ui/scripts/ui-custom/migrate.js
@@ -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.
+(function(cloudStack, $) {
+    cloudStack.uiCustom.migrate = function(args) {
+        var listView = args.listView;
+        var action = args.action;
+
+        return function(args) {
+            var context = args.context;
+
+            var hostList = function(args) {
+                var $listView;
+
+                var hosts = $.extend(true, {}, args.listView, {
+                    context: context,
+                    uiCustom: true
+                });
+
+                hosts.listView.actions = {
+                    select: {
+                        label: _l('label.select.host'),
+                        type: 'radio',
+                        action: {
+                            uiCustom: function(args) {
+                                var $item = args.$item;
+                                var $input = $item.find('td.actions input:visible');
+
+                                if ($input.attr('type') == 'checkbox') {
+                                    if ($input.is(':checked'))
+                                        $item.addClass('multi-edit-selected');
+                                    else
+                                        $item.removeClass('multi-edit-selected');
+                                } else {
+                                    $item.siblings().removeClass('multi-edit-selected');
+                                    $item.addClass('multi-edit-selected');
+                                }
+                            }
+                        }
+                    }
+                };
+
+                $listView = $('<div>').listView(hosts);
+
+                // Change action label
+                $listView.find('th.actions').html(_l('label.select'));
+
+                return $listView;
+            };
+
+            var $dataList = hostList({
+                listView: listView
+            }).dialog({
+                dialogClass: 'multi-edit-add-list panel migrate-vm-available-host-list',
+                width: 825,
+                draggable: false,
+                title: _l('label.migrate.instance.to.host'),
+                buttons: [{
+                    text: _l('label.ok'),
+                    'class': 'ok migrateok',
+                    click: function() {
+                        var complete = args.complete;
+                        var selectedHostObj = $dataList.find('tr.multi-edit-selected').data('json-obj');
+                        if(selectedHostObj != undefined) {
+                            $dataList.fadeOut(function() {
+                                action({
+                                    context: $.extend(true, {}, context, {
+                                        selectedHost: [
+                                            selectedHostObj
+                                        ]
+                                    }),
+                                    response: {
+                                        success: function(args) {
+                                            complete({
+                                                _custom: args._custom,
+                                                $item: $('<div>'),
+                                            });
+                                        },
+                                        error: function(args) {
+                                            cloudStack.dialog.notice({
+                                                message: args
+                                            });
+                                        }
+                                    }
+                                });
+                            });
+
+                            $('div.overlay').fadeOut(function() {
+                                $('div.overlay').remove();
+                            });
+                        }
+                        else {
+                            cloudStack.dialog.notice({
+                                message: _l('message.migrate.instance.select.host')
+                            });
+                        }
+                    }
+                }, {
+                    text: _l('label.cancel'),
+                    'class': 'cancel migratecancel',
+                    click: function() {
+                        $dataList.fadeOut(function() {
+                            $dataList.remove();
+                        });
+                        $('div.overlay').fadeOut(function() {
+                            $('div.overlay').remove();
+                            $(':ui-dialog').dialog('destroy');
+                        });
+                    }
+                }]
+            }).parent('.ui-dialog').overlay();
+        };
+    };
+}(cloudStack, jQuery));
diff --git a/ui/scripts/ui/dialog.js b/ui/scripts/ui/dialog.js
index 2f3f847..6f4fedc 100644
--- a/ui/scripts/ui/dialog.js
+++ b/ui/scripts/ui/dialog.js
@@ -276,6 +276,11 @@
 
                 // Determine field type of input
                 if (field.select) {
+                    var multiple = false;
+                    if (field.isMultiple != null){
+                        if (typeof(field.isMultiple) == 'boolean' && field.isMultiple == true)
+                            multiple = true;
+                    }
                     isAsync = true;
                     selectArgs = {
                         context: args.context,
@@ -321,10 +326,18 @@
                     };
 
                     selectFn = field.select;
-                    $input = $('<select>')
-                        .attr({
+                    var attrib = {};
+                    if (multiple)
+                        attrib = {
+                            name: key,
+                            multiple: 'multiple'
+                        };
+                    else
+                        attrib = {
                             name: key
-                        })
+                        }
+                    $input = $('<select>')
+                        .attr(attrib)
                         .data('dialog-select-fn', function(args) {
                             selectFn(args ? $.extend(true, {}, selectArgs, args) : selectArgs);
                         })
diff --git a/ui/scripts/vm_snapshots.js b/ui/scripts/vm_snapshots.js
deleted file mode 100644
index 98d7e37..0000000
--- a/ui/scripts/vm_snapshots.js
+++ /dev/null
@@ -1,198 +0,0 @@
-// 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.
-(function($, cloudStack) {
-    cloudStack.sections.vmsnapshots = {
-        title: 'label.vmsnapshot',
-        id: 'vmsnapshots',
-        listView: {
-            id: 'vmsnapshots',
-            isMaximized: true,
-            fields: {
-                displayname: {
-                    label: 'label.name'
-                },
-                state: {
-                    label: 'label.state',
-                    indicator: {
-                        'Ready': 'on',
-                        'Error': 'off'
-                    }
-                },
-                type: {
-                    label: 'label.vmsnapshot.type'
-                },
-                current: {
-                    label: 'label.vmsnapshot.current',
-                    converter: cloudStack.converters.toBooleanText
-                },
-                parentName: {
-                    label: 'label.vmsnapshot.parentname'
-                },
-                created: {
-                    label: 'label.date',
-                    converter: cloudStack.converters.toLocalDate
-                }
-            },
-
-            dataProvider: function(args) {
-                var apiCmd = "listVMSnapshot&listAll=true";
-                if (args.context != null) {
-                    if ("instances" in args.context) {
-                        apiCmd += "&virtualmachineid=" + args.context.instances[0].id;
-                    }
-                }
-                $.ajax({
-                    url: createURL(apiCmd),
-                    dataType: "json",
-                    async: true,
-                    success: function(json) {
-                        var jsonObj;
-                        jsonObj = json.listvmsnapshotresponse.vmSnapshot;
-                        args.response.success({
-                            data: jsonObj
-                        });
-                    }
-                });
-            },
-            //dataProvider end
-            detailView: {
-                tabs: {
-                    details: {
-                        title: 'label.details',
-                        fields: {
-                            id: {
-                                label: 'label.id'
-                            },
-                            name: {
-                                label: 'label.name'
-                            },
-                            displayname: {
-                                label: 'label.display.name'
-                            },
-                            type: {
-                                label: 'label.vmsnapshot.type'
-                            },
-                            description: {
-                                label: 'label.description'
-                            },
-                            state: {
-                                label: 'label.state',
-                                indicator: {
-                                    'Ready': 'on',
-                                    'Error': 'off'
-                                }
-                            },
-                            current: {
-                                label: 'label.vmsnapshot.current',
-                                converter: cloudStack.converters.toBooleanText
-                            },
-                            parentName: {
-                                label: 'label.vmsnapshot.parentname'
-                            },
-                            created: {
-                                label: 'label.date',
-                                converter: cloudStack.converters.toLocalDate
-                            }
-                        },
-                        dataProvider: function(args) {
-                            $.ajax({
-                                url: createURL("listVMSnapshot&listAll=true&vmsnapshotid=" + args.context.vmsnapshots[0].id),
-                                dataType: "json",
-                                async: true,
-                                success: function(json) {
-                                    var jsonObj;
-                                    jsonObj = json.listvmsnapshotresponse.vmSnapshot[0];
-                                    args.response.success({
-                                        //actionFilter: vmActionfilter,
-                                        data: jsonObj
-                                    });
-                                }
-                            });
-                        },
-                        tags: cloudStack.api.tags({
-                            resourceType: 'VMSnapshot',
-                            contextId: 'vmsnapshots'
-                        })
-                    }
-                },
-                actions: {
-                    //delete a snapshot
-                    remove: {
-                        label: 'label.action.vmsnapshot.delete',
-                        messages: {
-                            confirm: function(args) {
-                                return 'message.action.vmsnapshot.delete';
-                            },
-                            notification: function(args) {
-                                return 'label.action.vmsnapshot.delete';
-                            }
-                        },
-                        action: function(args) {
-                            $.ajax({
-                                url: createURL("deleteVMSnapshot&vmsnapshotid=" + args.context.vmsnapshots[0].id),
-                                dataType: "json",
-                                async: true,
-                                success: function(json) {
-                                    var jid = json.deletevmsnapshotresponse.jobid;
-                                    args.response.success({
-                                        _custom: {
-                                            jobId: jid
-                                        }
-                                    });
-                                }
-                            });
-                        },
-                        notification: {
-                            poll: pollAsyncJobResult
-                        }
-                    },
-                    restart: {
-                        label: 'label.action.vmsnapshot.revert',
-                        messages: {
-                            confirm: function(args) {
-                                return 'label.action.vmsnapshot.revert';
-                            },
-                            notification: function(args) {
-                                return 'message.action.vmsnapshot.revert';
-                            }
-                        },
-                        action: function(args) {
-                            $.ajax({
-                                url: createURL("revertToVMSnapshot&vmsnapshotid=" + args.context.vmsnapshots[0].id),
-                                dataType: "json",
-                                async: true,
-                                success: function(json) {
-                                    var jid = json.reverttovmsnapshotresponse.jobid;
-                                    args.response.success({
-                                        _custom: {
-                                            jobId: jid
-                                        }
-                                    });
-                                }
-                            });
-
-                        },
-                        notification: {
-                            poll: pollAsyncJobResult
-                        }
-                    }
-                }
-            }
-            //detailview end
-        }
-    }
-})(jQuery, cloudStack);
diff --git a/usage/pom.xml b/usage/pom.xml
index 32845a2..6ec8165 100644
--- a/usage/pom.xml
+++ b/usage/pom.xml
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>
@@ -53,17 +53,17 @@
      <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
-        <version>1.7.21</version>
+        <version>1.7.22</version>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-log4j12</artifactId>
-        <version>1.7.21</version>
+        <version>1.7.22</version>
       </dependency>
     <dependency>
       <groupId>org.dbunit</groupId>
       <artifactId>dbunit</artifactId>
-      <version>2.5.2</version>
+      <version>2.5.3</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
diff --git a/usage/resources/usageApplicationContext.xml b/usage/resources/usageApplicationContext.xml
index f5cc9a3..f44f08b 100644
--- a/usage/resources/usageApplicationContext.xml
+++ b/usage/resources/usageApplicationContext.xml
@@ -20,13 +20,13 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
 	xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
 	<context:annotation-config />
 	<context:component-scan
diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java
index 8864056..840b02c 100644
--- a/usage/src/com/cloud/usage/UsageManagerImpl.java
+++ b/usage/src/com/cloud/usage/UsageManagerImpl.java
@@ -169,6 +169,7 @@
     private Future _scheduledFuture = null;
     private Future _heartbeat = null;
     private Future _sanity = null;
+    private boolean  usageSnapshotSelection = false;
 
     public UsageManagerImpl() {
     }
@@ -208,6 +209,7 @@
         String sanityCheckInterval = configs.get("usage.sanity.check.interval");
         String quotaEnable = configs.get("quota.enable.service");
         _runQuota = Boolean.valueOf(quotaEnable == null ? "false" : quotaEnable );
+        usageSnapshotSelection  = Boolean.valueOf(configs.get("usage.snapshot.virtualsize.select"));
         if (sanityCheckInterval != null) {
             _sanityCheckInterval = Integer.parseInt(sanityCheckInterval);
         }
@@ -1535,7 +1537,11 @@
 
         long snapId = event.getResourceId();
         if (EventTypes.EVENT_SNAPSHOT_CREATE.equals(event.getType())) {
-            snapSize = event.getSize();
+            if (usageSnapshotSelection){
+                snapSize =  event.getVirtualSize();
+            }else {
+                snapSize = event.getSize();
+            }
             zoneId = event.getZoneId();
         }
 
diff --git a/usage/test/resources/UsageManagerTestContext.xml b/usage/test/resources/UsageManagerTestContext.xml
index 52f9bf0..152de68 100644
--- a/usage/test/resources/UsageManagerTestContext.xml
+++ b/usage/test/resources/UsageManagerTestContext.xml
@@ -12,13 +12,13 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+                      http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:annotation-config />
 
diff --git a/utils/pom.xml b/utils/pom.xml
index c1f1d00..ba8a70c 100755
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -26,7 +26,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <dependencies>
@@ -157,7 +157,7 @@
     <dependency>
       <groupId>commons-net</groupId>
       <artifactId>commons-net</artifactId>
-      <version>3.4</version>
+      <version>3.5</version>
     </dependency>
     <dependency>
       <groupId>com.google.code.gson</groupId>
diff --git a/utils/src/main/java/com/cloud/utils/HttpUtils.java b/utils/src/main/java/com/cloud/utils/HttpUtils.java
index d2e844a..a5d9f6a 100644
--- a/utils/src/main/java/com/cloud/utils/HttpUtils.java
+++ b/utils/src/main/java/com/cloud/utils/HttpUtils.java
@@ -50,6 +50,17 @@
         else {
             resp.addHeader("X-XSS-Protection", "1;mode=block");
         }
+
+        if (resp.containsHeader("content-security-policy")) {
+            resp.setIntHeader("content-security-policy", 1);
+        }else {
+            resp.addIntHeader("content-security-policy", 1);
+        }
+        resp.addHeader("content-security-policy","default-src=none");
+        resp.addHeader("content-security-policy","script-src=self");
+        resp.addHeader("content-security-policy","connect-src=self");
+        resp.addHeader("content-security-policy","img-src=self");
+        resp.addHeader("content-security-policy","style-src=self");
     }
 
     public static void writeHttpResponse(final HttpServletResponse resp, final String response,
diff --git a/utils/src/main/java/com/cloud/utils/net/NetUtils.java b/utils/src/main/java/com/cloud/utils/net/NetUtils.java
index 7b48fc0..4972070 100644
--- a/utils/src/main/java/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/main/java/com/cloud/utils/net/NetUtils.java
@@ -83,9 +83,19 @@
     public final static int DEFAULT_AUTOSCALE_POLICY_INTERVAL_TIME = 30;
     public final static int DEFAULT_AUTOSCALE_POLICY_QUIET_TIME = 5 * 60;
     private final static Random s_rand = new Random(System.currentTimeMillis());
+    private final static long prefix = 0x1e;
 
-    public static long createSequenceBasedMacAddress(final long macAddress) {
-        return macAddress | 0x060000000000l | (long)s_rand.nextInt(32768) << 25 & 0x00fffe000000l;
+    public static long createSequenceBasedMacAddress(final long macAddress, long globalConfig) {
+        /*
+            Logic for generating MAC address:
+            Mac = B1:B2:B3:B4:B5:B6 (Bx is a byte).
+            B1 -> Presently controlled by prefix variable. The value should be such that the MAC is local and unicast.
+            B2 -> This will be configurable for each deployment/installation. Controlled by the global config MACIdentifier
+            B3 -> A randomly generated number between 0 - 255
+            B4,5,6 -> These bytes are based on the unique DB identifier associated with the IP address for which MAC is generated (refer to mac_address field in user_ip_address table).
+         */
+
+        return macAddress | prefix<<40 | globalConfig << 32 & 0x00ff00000000l | (long)s_rand.nextInt(255) << 24;
     }
 
     public static String getHostName() {
@@ -557,6 +567,12 @@
         if (cidr == null || cidr.isEmpty()) {
             return false;
         }
+
+        try {
+            IPv6Network.fromString(cidr);
+            return true;
+        } catch (IllegalArgumentException e) {}
+
         final String[] cidrPair = cidr.split("\\/");
         if (cidrPair.length != 2) {
             return false;
@@ -1184,7 +1200,10 @@
         return false;
     }
 
-    public static boolean isValidS2SVpnPolicy(final String policys) {
+    public static boolean isValidS2SVpnPolicy(final String policyType, final String policys) {
+        if (policyType == null || policyType.isEmpty()) {
+            return false;
+        }
         if (policys == null || policys.isEmpty()) {
             return false;
         }
@@ -1205,14 +1224,17 @@
             if (!cipher.matches("3des|aes128|aes192|aes256")) {
                 return false;
             }
-            if (!hash.matches("md5|sha1")) {
+            if (!hash.matches("md5|sha1|sha256|sha384|sha512")) {
                 return false;
             }
-            String pfsGroup = null;
+            String group = null;
             if (!policy.equals(cipherHash)) {
-                pfsGroup = policy.split(";")[1];
+                group = policy.split(";")[1];
             }
-            if (pfsGroup != null && !pfsGroup.matches("modp1024|modp1536")) {
+            if (group == null && policyType.toLowerCase().matches("ike")) {
+                return false; // StrongSwan requires a DH group for the IKE policy
+            }
+            if (group != null && !group.matches("modp1024|modp1536|modp2048|modp3072|modp4096|modp6144|modp8192")) {
                 return false;
             }
         }
@@ -1581,5 +1603,24 @@
         return !isInRange;
     }
 
+    public static IPv6Address EUI64Address(final IPv6Network cidr, final String macAddress) {
+        if (cidr.getNetmask().asPrefixLength() > 64) {
+            throw new IllegalArgumentException("IPv6 subnet " + cidr.toString() + " is not 64 bits or larger in size");
+        }
+
+        String mac[] = macAddress.toLowerCase().split(":");
+
+        return IPv6Address.fromString(cidr.getFirst().toString() +
+                Integer.toHexString(Integer.parseInt(mac[0], 16) ^ 2) +
+                mac[1] + ":" + mac[2] + "ff:fe" + mac[3] +":" + mac[4] + mac[5]);
+    }
+
+    public static IPv6Address EUI64Address(final String cidr, final String macAddress) {
+        return EUI64Address(IPv6Network.fromString(cidr), macAddress);
+    }
+
+    public static IPv6Address ipv6LinkLocal(final String macAddress) {
+        return EUI64Address(IPv6Network.fromString("fe80::/64"), macAddress);
+    }
 
 }
diff --git a/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java b/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java
index f10c44b..fb769de 100644
--- a/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java
+++ b/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java
@@ -105,18 +105,25 @@
 
     @Test
     public void testIsValidS2SVpnPolicy() {
-        assertTrue(NetUtils.isValidS2SVpnPolicy("aes128-sha1"));
-        assertTrue(NetUtils.isValidS2SVpnPolicy("3des-sha1"));
-        assertTrue(NetUtils.isValidS2SVpnPolicy("3des-sha1,aes256-sha1"));
-        assertTrue(NetUtils.isValidS2SVpnPolicy("3des-md5;modp1024"));
-        assertTrue(NetUtils.isValidS2SVpnPolicy("3des-sha1,aes128-sha1;modp1536"));
-        assertFalse(NetUtils.isValidS2SVpnPolicy("des-md5;modp1024,aes128-sha1;modp1536"));
-        assertFalse(NetUtils.isValidS2SVpnPolicy("des-sha1"));
-        assertFalse(NetUtils.isValidS2SVpnPolicy("abc-123,ase-sha1"));
-        assertFalse(NetUtils.isValidS2SVpnPolicy("de-sh,aes-sha1"));
-        assertFalse(NetUtils.isValidS2SVpnPolicy(""));
-        assertFalse(NetUtils.isValidS2SVpnPolicy(";modp1536"));
-        assertFalse(NetUtils.isValidS2SVpnPolicy(",aes;modp1536,,,"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("esp", "aes128-sha1"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("esp", "3des-sha1"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("esp", "3des-sha1,aes256-sha1"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("esp", "3des-md5;modp1024"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("esp", "3des-sha256,aes128-sha512;modp1536"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha1;modp3072,aes128-sha1;modp1536"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "3des-md5;modp1024"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha1;modp3072,aes128-sha1;modp1536"));
+        assertTrue(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha256;modp3072,aes128-sha512;modp1536"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("ike", "aes128-sha1"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha1"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("ike", "3des-sha1,aes256-sha1"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("esp", "des-md5;modp1024,aes128-sha1;modp1536"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("esp", "des-sha1"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("esp", "abc-123,ase-sha1"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("esp", "de-sh,aes-sha1"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("esp", ""));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("esp", ";modp1536"));
+        assertFalse(NetUtils.isValidS2SVpnPolicy("esp", ",aes;modp1536,,,"));
     }
 
     @Test
@@ -245,6 +252,10 @@
         assertTrue(NetUtils.isValidCIDR(cidrFirst));
         assertTrue(NetUtils.isValidCIDR(cidrSecond));
         assertTrue(NetUtils.isValidCIDR(cidrThird));
+        assertTrue(NetUtils.isValidCIDR("2001:db8::/64"));
+        assertTrue(NetUtils.isValidCIDR("2001:db8::/48"));
+        assertTrue(NetUtils.isValidCIDR("2001:db8:fff::/56"));
+        assertFalse(NetUtils.isValidCIDR("2001:db8:gggg::/56"));
     }
 
     @Test
@@ -256,6 +267,8 @@
         assertTrue(NetUtils.isValidCidrList(cidrFirst));
         assertTrue(NetUtils.isValidCidrList(cidrSecond));
         assertTrue(NetUtils.isValidCidrList(cidrThird));
+        assertTrue(NetUtils.isValidCidrList("2001:db8::/64,2001:db8:ffff::/48"));
+        assertTrue(NetUtils.isValidCidrList("2001:db8::/64,2001:db8:ffff::/48,192.168.0.0/24"));
     }
 
     @Test
@@ -545,4 +558,38 @@
         assertFalse(NetUtils.isNetworkorBroadcastIP("192.168.0.63","255.255.255.128"));
     }
 
+    @Test
+    public void testIPv6EUI64Address() {
+        assertEquals(IPv6Address.fromString("2001:db8:100::47a:88ff:fe00:8b"),
+                NetUtils.EUI64Address("2001:db8:100::/64", "06:7a:88:00:00:8b"));
+
+        assertEquals(IPv6Address.fromString("2a00:f10:121:b00:434:a0ff:fe00:1bc7"),
+                NetUtils.EUI64Address("2a00:f10:121:b00::/64", "06:34:a0:00:1b:c7"));
+
+        assertEquals(IPv6Address.fromString("2001:980:7936:0:ea2a:eaff:fe58:eb98"),
+                NetUtils.EUI64Address("2001:980:7936::/64", "e8:2a:ea:58:eb:98"));
+
+        assertEquals(IPv6Address.fromString("2001:980:7936:0:c23f:d5ff:fe68:2808"),
+                NetUtils.EUI64Address("2001:980:7936::/64", "c0:3f:d5:68:28:08"));
+    }
+
+    @Test
+    public void testcreateSequenceBasedMacAddress(){
+        long mac1 = NetUtils.createSequenceBasedMacAddress(10l,10l);
+        assertEquals(10l,(mac1 & (0x0al<<32)) >> 32);
+        assertEquals(10l,mac1 & 0x0al);
+        assertEquals(30l, mac1>>40);
+
+        long mac2 = NetUtils.createSequenceBasedMacAddress(20l,15l);
+        assertEquals(15l, (mac2 & (0x0fl << 32)) >> 32);
+        assertEquals(20l, mac2 & 0x14l);
+        assertEquals(30l, mac1>>40);
+    }
+
+    @Test
+    public void testIPv6LinkLocal() {
+        assertEquals(IPv6Address.fromString("fe80::fc54:ff:fe00:3e05"), NetUtils.ipv6LinkLocal("fe:54:00:00:3e:05"));
+        assertEquals(IPv6Address.fromString("fe80::42:e0ff:fee8:d6a3"), NetUtils.ipv6LinkLocal("02:42:e0:e8:d6:a3"));
+        assertEquals(IPv6Address.fromString("fe80::47a:88ff:fe00:8b"), NetUtils.ipv6LinkLocal("06:7a:88:00:00:8b"));
+    }
 }
diff --git a/utils/src/test/resources/com/cloud/utils/QualifierTestContext.xml b/utils/src/test/resources/com/cloud/utils/QualifierTestContext.xml
index 39f494b..b62c098 100644
--- a/utils/src/test/resources/com/cloud/utils/QualifierTestContext.xml
+++ b/utils/src/test/resources/com/cloud/utils/QualifierTestContext.xml
@@ -25,13 +25,13 @@
   xmlns:tx="http://www.springframework.org/schema/tx" 
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">                     
+                      http://www.springframework.org/schema/context/spring-context.xsd">
   <context:annotation-config />
   <context:component-scan base-package="org.apache.cloudstack, com.cloud" />
 
diff --git a/utils/src/test/resources/com/cloud/utils/db/transactionContextBuilderTest.xml b/utils/src/test/resources/com/cloud/utils/db/transactionContextBuilderTest.xml
index 81ca058..91e383f 100644
--- a/utils/src/test/resources/com/cloud/utils/db/transactionContextBuilderTest.xml
+++ b/utils/src/test/resources/com/cloud/utils/db/transactionContextBuilderTest.xml
@@ -25,13 +25,13 @@
   xmlns:tx="http://www.springframework.org/schema/tx" 
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 
-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop
-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">                     
+                      http://www.springframework.org/schema/context/spring-context.xsd">
   <context:annotation-config />
   <context:component-scan base-package="org.apache.cloudstack, com.cloud" />
 
diff --git a/utils/src/test/resources/testContext.xml b/utils/src/test/resources/testContext.xml
index cb5b9b8..9c31675 100644
--- a/utils/src/test/resources/testContext.xml
+++ b/utils/src/test/resources/testContext.xml
@@ -24,13 +24,13 @@
   xmlns:tx="http://www.springframework.org/schema/tx" 

   xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="http://www.springframework.org/schema/beans

-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

+                      http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://www.springframework.org/schema/tx 

-                      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

+                      http://www.springframework.org/schema/tx/spring-tx.xsd
                       http://www.springframework.org/schema/aop

-                      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

+                      http://www.springframework.org/schema/aop/spring-aop.xsd
                       http://www.springframework.org/schema/context

-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd">                     

+                      http://www.springframework.org/schema/context/spring-context.xsd">
 

   <context:annotation-config />

 

diff --git a/vmware-base/pom.xml b/vmware-base/pom.xml
index a9427ef..7579599 100644
--- a/vmware-base/pom.xml
+++ b/vmware-base/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.cloudstack</groupId>
     <artifactId>cloudstack</artifactId>
-    <version>4.9.4.0-SNAPSHOT</version>
+    <version>4.10.1.0-SNAPSHOT</version>
   </parent>
   <dependencies>
     <dependency>
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
index fbba33e..290e1a0 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
@@ -282,7 +282,7 @@
 
             if (parentFileName.startsWith("/")) {
                 // when parent file is not at the same directory as it is, assume it is at parent directory
-                // this is only valid in cloud.com primary storage deployment
+                // this is only valid in Apache CloudStack primary storage deployment
                 DatastoreFile dsFile = new DatastoreFile(currentVmdkFullPath);
                 String dir = dsFile.getDir();
                 if (dir != null && dir.lastIndexOf('/') > 0)
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
index 9af845b..731cfea 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HostDatastoreSystemMO.java
@@ -49,7 +49,7 @@
     }
 
     public ManagedObjectReference findDatastore(String name) throws Exception {
-        // added cloud.com specific name convention, we will use custom field "cloud.uuid" as datastore name as well
+        // added Apache CloudStack specific name convention, we will use custom field "cloud.uuid" as datastore name as well
         CustomFieldsManagerMO cfmMo = new CustomFieldsManagerMO(_context, _context.getServiceContent().getCustomFieldsManager());
         int key = cfmMo.getCustomFieldKey("Datastore", CustomFieldConstants.CLOUD_UUID);
         assert (key != 0);
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
index 22c0b5a..3cf3ad1 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
@@ -751,6 +751,13 @@
         return (VirtualMachineConfigInfo)_context.getVimClient().getDynamicProperty(_mor, "config");
     }
 
+    public boolean isToolsInstallerMounted() throws Exception {
+        return _context.getVimClient().getDynamicProperty(_mor, "runtime.toolsInstallerMounted");
+    }
+    public GuestInfo getGuestInfo() throws Exception {
+        return (GuestInfo)_context.getVimClient().getDynamicProperty(_mor, "guest");
+    }
+
     public VirtualMachineConfigSummary getConfigSummary() throws Exception {
         return (VirtualMachineConfigSummary)_context.getVimClient().getDynamicProperty(_mor, "summary.config");
     }